:root{--color-primary:#124a42;--color-primary-dark:#0c3731;--color-accent:#a92f2c;--color-text:#172c2b;--color-text-muted:#5f6a67;--color-surface:#fffaf0;--color-surface-alt:#f5ecdd;--color-border:rgba(23,44,43,.14);--color-success:#166c4f;--color-warning:#8b5e13;--ui-radius:18px;--ui-shadow:0 12px 30px rgba(10,42,36,.08)}
html{scroll-padding-top:88px}section[id],article[id]{scroll-margin-top:88px}.button,.btn-primary,.btn-secondary,.btn-ghost,.btn-link{min-height:46px;padding:10px 18px;border-radius:999px;font-weight:800;letter-spacing:.01em;transition:background-color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.button:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-ghost:focus-visible,.btn-link:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid #f4b63e;outline-offset:3px}.button-primary,.btn-primary{background:var(--color-accent);color:#fff}.button-primary:hover,.btn-primary:hover{background:#872420;transform:translateY(-1px);box-shadow:0 8px 20px rgba(132,36,32,.2)}.button-light,.btn-secondary{border-color:rgba(255,255,255,.7);background:#fff;color:var(--color-primary-dark)}.button-ghost,.btn-ghost{border-color:rgba(255,255,255,.72)}.btn-link{min-height:auto;padding:0;border:0;background:transparent;color:var(--color-accent)}
.release-hero{min-height:clamp(540px,48vw,650px)}.release-hero-backdrop{background:linear-gradient(90deg,rgba(16,42,37,.86) 0%,rgba(16,42,37,.64) 42%,rgba(16,42,37,.16) 78%),url('../../images/toan_canh_le_hoi.jpg') center/cover}.release-hero-content{padding-block:92px 78px}.release-hero h1{max-width:680px;font-size:clamp(3.1rem,5.6vw,5.5rem);line-height:.96}.hero-kicker{max-width:620px;font-size:clamp(.94rem,1.6vw,1.2rem);line-height:1.35}.hero-lead{max-width:570px;font-size:clamp(1rem,1.7vw,1.23rem)}.hero-actions{gap:10px}.hero-info-row{gap:10px;margin-top:26px}.hero-info-row li{min-width:0;border-radius:14px;background:rgba(5,29,25,.44)}
.contest-announcement{padding:26px 0 0;background:linear-gradient(#fffaf0 72%,#fff 72%)}.contest-announcement-panel{gap:20px;padding:20px 24px;border-radius:var(--ui-radius);box-shadow:none}.contest-announcement-panel:before{content:"";width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:var(--color-accent);box-shadow:inset 0 0 0 7px #f8dca4}.contest-announcement-panel>div{margin-right:auto}.contest-announcement h2{font-size:clamp(1.35rem,2.3vw,1.9rem)}.contest-announcement p:not(.eyebrow){margin-top:5px;font-size:.95rem}
.release-section{padding-block:clamp(52px,5vw,72px)}.section-heading{margin-bottom:28px}.section-heading h2,.communication-panel h2{font-size:clamp(1.7rem,2.8vw,2.55rem);letter-spacing:-.035em;line-height:1.08}.section-heading>p:last-child{max-width:620px}.visitor-quick-section{padding-block:46px;background:#fcf6ec}.visitor-quick-grid{gap:18px}.visitor-quick-card{min-height:178px;border-radius:var(--ui-radius);box-shadow:none}.visitor-quick-card>span{width:50px;height:50px;background:#f7e2af}.visitor-quick-card>span svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.visitor-quick-card h3{margin-top:14px}.visitor-quick-card p{font-size:.88rem}
.activity-card,.continuous-card,.culture-space,.release-place-card,.gift-card{border-radius:var(--ui-radius);box-shadow:0 5px 14px rgba(20,47,40,.035)}.activity-card{padding:20px}.activity-card.is-highlight{box-shadow:0 8px 20px rgba(150,104,27,.09)}.highlights-section{padding-bottom:14px}.continuous-section{padding-top:14px;background:#ece8dc}.continuous-section:before{display:block;content:"NGÀY HỘI CÓ GÌ?";width:min(1240px,calc(100% - 40px));margin:0 auto 14px;color:var(--color-primary);font-size:clamp(.72rem,1.1vw,.82rem);font-weight:900;letter-spacing:.14em;text-transform:uppercase;opacity:.65}.cultural-grid,.checkin-grid{gap:18px}.culture-space{min-height:260px}.checkin-card{border-radius:var(--ui-radius)}.checkin-card img{transition:transform .25s ease}.checkin-card:hover img,.checkin-card:focus-within img{transform:scale(1.025)}
.photo-gallery{gap:14px}.gallery-section{background:#e9e4d8}.gallery-item{border-radius:var(--ui-radius);min-height:205px}.gallery-item img{aspect-ratio:4/3;decoding:async}.photo-gallery:not(.is-expanded) .gallery-item:nth-child(n+13){display:none}.gallery-more-wrap{margin-top:24px;text-align:center}.gallery-more-wrap[hidden]{display:none}.gallery-more-wrap .button{border:1px solid var(--color-border);background:#fff;color:var(--color-primary)}.gallery-more-wrap .button:hover{border-color:var(--color-primary);background:#f6fbf9}.gift-grid{gap:18px}.gift-card>img{aspect-ratio:4/3;height:auto}.ocop-panel{border-radius:var(--ui-radius)}
.communication-section{padding-block:48px;background:var(--color-surface-alt)}.communication-panel{align-items:flex-start;border-radius:24px;background:linear-gradient(120deg,#164b42,#246957)}.communication-panel .communication-actions{margin-left:auto;max-width:460px}.communication-panel .share-actions{margin-top:18px}.communication-panel .share-message{position:static;margin-top:12px;color:#ffecc6}.communication-panel .button-light{color:#fff;background:transparent;border-color:rgba(255,255,255,.65)}.share-section{display:none}.site-footer{padding-block:48px 34px}.footer-inner{align-items:flex-start}.footer-columns{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:28px}.footer-columns h2{margin:0 0 10px;color:#fff;font-size:.7rem;letter-spacing:.12em}.footer-columns a{display:block;margin:7px 0;font-size:.9rem}
.contest-hero{padding:clamp(5rem,9vw,7rem) 0 clamp(3.5rem,6vw,5rem)}.contest-hero:not([style]){background:linear-gradient(110deg,rgba(4,49,51,.94),rgba(0,114,104,.72)),url('../../images/toan_canh_le_hoi.jpg') center/cover}.contest-hero h1{max-width:830px;font-size:clamp(2.2rem,4.2vw,4.3rem);line-height:1.06}.contest-hero>div>p:not(.eyebrow):not(.contest-theme){max-width:650px}.contest-card-public{border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}.contest-card-public>div{padding:clamp(1.35rem,3.5vw,2.25rem)}.contest-card-public img{aspect-ratio:16/10;min-height:0}.contest-status{border:1px solid transparent}.contest-status-closed{border-color:#d7cbb7;background:#f1eee8;color:#584c3a}.contest-status-open{border-color:#b9dfc9}.contest-local-nav{top:70px}.contest-info-card,.contest-media-card{border-radius:var(--ui-radius);box-shadow:0 5px 14px rgba(9,62,55,.04)}
@media (max-width:900px){.visitor-quick-grid{grid-template-columns:repeat(2,1fr)}.photo-gallery{grid-template-columns:repeat(3,1fr)}.continuous-section:before{width:min(100% - 40px,1240px)}.communication-panel .communication-actions{margin:22px 0 0;max-width:none}.footer-columns{width:100%}}
@media (max-width:680px){.site-shell{width:min(100% - 28px,1240px)}.release-hero{min-height:0}.release-hero-content{padding-block:74px 42px}.release-hero h1{max-width:350px;font-size:clamp(2.5rem,12vw,3.35rem);line-height:.98}.hero-kicker{margin-top:14px;font-size:.95rem}.hero-lead{margin:13px 0 22px;font-size:.98rem}.hero-actions{display:grid;grid-template-columns:1fr 1fr}.hero-actions .button-primary{grid-column:1/-1}.hero-actions .button{min-height:44px;padding-inline:10px;font-size:.9rem}.hero-info-row{grid-template-columns:1fr 1fr;margin-top:20px}.hero-info-row li{width:auto;padding:10px 12px}.contest-announcement-panel{display:grid;grid-template-columns:28px 1fr;padding:18px}.contest-announcement-panel .button{grid-column:1/-1;width:100%;margin-top:0}.contest-announcement-panel p:not(.eyebrow){font-size:.88rem}.release-section{padding-block:56px}.section-heading{margin-bottom:23px}.section-heading h2{font-size:clamp(1.8rem,8vw,2.25rem)}.visitor-quick-grid{grid-template-columns:repeat(2,1fr);gap:12px}.visitor-quick-card{min-height:155px;padding:18px 15px}.visitor-quick-card>span{width:42px;height:42px}.visitor-quick-card h3{margin-top:11px;font-size:1rem}.visitor-quick-card p{display:none}.activity-grid,.highlight-grid,.continuous-grid,.cultural-grid,.checkin-grid{gap:12px}.photo-gallery{grid-template-columns:repeat(2,1fr);gap:9px}.gallery-item,.gallery-item:nth-child(5n+1){min-height:155px;grid-row:auto}.gallery-item:first-child{grid-row:span 2;min-height:319px}.continuous-section:before{width:min(100% - 28px,1240px);margin-bottom:10px;font-size:.7rem}.communication-panel{padding:28px 22px}.communication-panel .share-actions{display:grid;grid-template-columns:1fr 1fr}.communication-panel .share-actions .button:first-child{grid-column:1/-1}.footer-columns{grid-template-columns:1fr 1fr;gap:22px}.contest-hero h1{font-size:clamp(2rem,9.5vw,2.8rem)}.contest-card-public{border-radius:16px}.contest-card-public img{max-height:none}.contest-local-nav{top:66px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* ============================================================
   FINAL VISUAL REPAIR V3.1 — 2026-08-13
   Consolidated styling, photography-free gift cards, UI polish
   ============================================================ */

/* CTA / final-section heading smaller than main section H2 */
.communication-section .communication-panel h2,
#communication-title {
  font-size: clamp(1.4rem, 2.2vw, 2rem);
}

/* Reduce "Trải nghiệm xuyên suốt ngày hội" heading */
#continuous-title {
  font-size: clamp(1.55rem, 2.4vw, 2.15rem);
}

/* Site shell max-width guard */
.site-shell {
  width: min(1240px, calc(100% - 40px));
}

/* Communication contest visual language */
.communication-contest-hero {
  background-image: linear-gradient(110deg, rgba(8, 47, 39, .92), rgba(8, 47, 39, .56)), url('../../images/toan_canh_le_hoi.jpg');
  background-position: center;
  background-size: cover;
}
.communication-contest-hero h1 { max-width: 920px; text-wrap: balance; }
.communication-narrow { max-width: 980px; }
.communication-steps .contest-info-card { min-height: 230px; }
.communication-share-panel { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr); gap: 24px; align-items: center; padding: 28px; background: #f1eee5; border: 1px solid #ded7c7; border-radius: 18px; }
.communication-share-panel h3 { margin-top: 0; }
.communication-share-panel .share-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.communication-share-panel .share-message { width: 100%; min-height: 1.4em; margin: 0; }
.communication-info-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.communication-faq { display: grid; gap: 10px; }
.communication-faq details { padding: 16px 18px; border: 1px solid #ded7c7; border-radius: 12px; background: #fff; }
.communication-faq summary { cursor: pointer; font-weight: 700; }
.communication-faq p { margin: 12px 0 0; }
@media (max-width: 760px) {
  .communication-share-panel, .communication-info-grid { grid-template-columns: 1fr; }
  .communication-contest-hero h1 { font-size: clamp(2rem, 10vw, 3.4rem); }
}

/* Stat cards height */
.stat-card {
  min-height: 112px;
  padding: 20px 20px;
}
.stat-card strong {
  font-size: 2.05rem;
}

/* Video section: responsive 16:9, opacity-1 thumbnail & play button center */
.video-card {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: var(--ui-radius);
}

.youtube-facade {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--ui-radius);
  background: var(--color-primary-dark);
}

.video-facade-trigger {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
}

.video-facade-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 1;
  transition: transform .22s ease;
}

.youtube-facade:hover .video-facade-poster,
.youtube-facade:focus-within .video-facade-poster {
  transform: scale(1.02);
}

.youtube-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: var(--ui-radius);
}

.video-card img {
  opacity: 1;
  transition: transform .22s ease;
}
.video-card:hover img,
.video-card:focus-visible img {
  transform: scale(1.03);
}

.video-card:after,
.youtube-facade::after {
  background: linear-gradient(
    0deg,
    rgba(4, 18, 15, .90) 0%,
    rgba(4, 18, 15, .48) 38%,
    rgba(4, 18, 15, .05) 70%
  );
  pointer-events: none;
}

.video-play {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 64px;
  height: 64px;
  font-size: 1.25rem;
  background: var(--color-accent);
  color: #fff;
  box-shadow: 0 6px 20px rgba(169,47,44,.35);
  transition: transform .18s ease, box-shadow .18s ease;
}
.video-card:hover .video-play,
.video-card:focus-visible .video-play {
  transform: translate(-50%, -50%) scale(1.1);
  box-shadow: 0 10px 28px rgba(169,47,44,.45);
}

.video-copy {
  left: 24px;
  right: 24px;
  bottom: 22px;
}
.video-copy strong {
  font-size: clamp(.98rem, 1.8vw, 1.35rem);
  line-height: 1.3;
}
.video-copy small {
  margin-top: 5px;
  font-size: clamp(.78rem, 1.2vw, .9rem);
  line-height: 1.4;
  color: #d7ede6;
}

.video-fallback {
  font-size: clamp(1.5rem, 3.5vw, 2.4rem);
}

.video-card-primary {
  min-height: clamp(280px, 36vw, 460px);
}

/* Highlight cards: a light surface keeps programme details legible in every viewport. */
.activity-card.activity-card-compact,
.activity-card.activity-card-compact.is-highlight {
  min-height: 205px;
  padding: 22px;
  background: #fff;
  color: #34433f;
  border: 1px solid #d6e1dc;
  box-shadow: 0 7px 18px rgba(20, 52, 47, .08);
}
.activity-card-compact h3 {
  color: #17342f;
  font-size: clamp(1rem, 1.6vw, 1.1rem);
  line-height: 1.35;
}
.activity-card-compact .activity-time {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 999px;
  background: #fff0e7;
  color: #a84022;
  font-size: .82rem;
  font-weight: 900;
}
.activity-card-compact .activity-venue,
.activity-card-compact .activity-note {
  color: #40504b;
  font-size: .88rem;
  line-height: 1.55;
  opacity: 1;
}
.activity-card-compact .activity-link {
  color: #9a391f;
  font-weight: 900;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.activity-card-compact .activity-link:hover,
.activity-card-compact .activity-link:focus-visible {
  color: #6f2918;
  outline: none;
}
@media (max-width: 680px) {
  .activity-card-compact {
    min-height: 0;
    padding: 20px;
  }
}

/* Managed homepage banner: Admin supplies only validated root-relative banner URLs. */
.release-hero.hero-banner-managed .release-hero-backdrop {
  background-image: linear-gradient(90deg, rgb(16 42 37 / var(--hero-overlay, .42)), rgb(16 42 37 / var(--hero-overlay, .42))), var(--hero-image);
  background-position: var(--hero-position, center center);
  background-repeat: no-repeat;
  background-size: cover;
}
.release-hero.hero-artwork .release-hero-backdrop {
  background-size: contain;
  background-color: #102a25;
}
.release-hero.hero-artwork .release-hero-content {
  display: flex;
  min-height: inherit;
  flex-direction: column;
  justify-content: flex-end;
}
.release-hero.hero-artwork .release-hero-content > .eyebrow,
.release-hero.hero-artwork .hero-kicker,
.release-hero.hero-artwork .hero-lead,
.release-hero.hero-artwork .hero-info-row,
.release-hero.hero-artwork .release-hero-content > h1 {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.release-hero.hero-artwork .hero-actions {
  margin-top: auto;
  padding: 10px;
  border: 1px solid rgb(255 255 255 / .35);
  border-radius: 16px;
  background: rgb(6 30 26 / .72);
  backdrop-filter: blur(6px);
}
@media (max-width:680px) {
  .release-hero.hero-banner-managed .release-hero-backdrop {
    background-image: linear-gradient(90deg, rgb(16 42 37 / var(--hero-overlay, .42)), rgb(16 42 37 / var(--hero-overlay, .42))), var(--hero-image-mobile, var(--hero-image));
  }
  .release-hero.hero-artwork .release-hero-content {
    min-height: 440px;
    padding-bottom: 22px;
  }
  .release-hero.hero-artwork .hero-actions {
    width: 100%;
  }
}

/* Photography-free gift cards styling */
.gift-card-graphic {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 175px;
  background: linear-gradient(135deg, #103f38 0%, #1a5c51 60%, #12483f 100%);
  color: #fff;
  border-bottom: 3px solid #f4b63e;
  position: relative;
  overflow: hidden;
}
.gift-card-graphic::before {
  content: "";
  position: absolute;
  inset: -50%;
  background: radial-gradient(circle, rgba(244,182,62,0.12) 0%, transparent 65%);
  pointer-events: none;
}
.gift-graphic-label {
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #ffd37a;
}

/* Event Poster Cards & AI Disclosure Badge */
.activity-poster-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 12px;
  background-color: #0f172a;
  margin-bottom: 14px;
}
.activity-poster-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.3s ease;
}
.activity-card:hover .activity-poster-img {
  transform: scale(1.03);
}
.activity-poster-badge {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: rgba(15, 23, 42, 0.82);
  color: #f8fafc;
  padding: 3px 8px;
  font-size: 10px;
  font-weight: 700;
  border-radius: 6px;
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  pointer-events: none;
  letter-spacing: 0.02em;
}

/* 5-Day Schedule Banner */
.schedule-banner-wrap {
  position: relative;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto 24px auto;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 25px rgba(15, 76, 129, 0.12);
  border: 1px solid #d6e1dc;
  background-color: #0f172a;
}
.schedule-banner-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
.schedule-banner-badge {
  position: absolute;
  bottom: 10px;
  right: 12px;
  background: rgba(15, 23, 42, 0.85);
  color: #f8fafc;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 700;
  border-radius: 8px;
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  pointer-events: none;
}

/* Featured Lead Card Grid Layout */
.activity-card.activity-card-lead {
  grid-column: span 2;
}
.activity-card.activity-card-lead .activity-poster-wrap {
  aspect-ratio: 21 / 9;
}

@media (max-width: 768px) {
  .activity-card.activity-card-lead {
    grid-column: span 1;
  }
  .activity-card.activity-card-lead .activity-poster-wrap {
    aspect-ratio: 16 / 9;
  }
}

/* Secondary share buttons */
.communication-actions .share-actions .button {
  font-size: .86rem;
  min-height: 40px;
  padding: 8px 14px;
}

/* Mobile adjustments */
@media (max-width:680px) {
  .video-play {
    width: 52px;
    height: 52px;
    font-size: 1.05rem;
  }
  .video-card-primary {
    min-height: 240px;
  }
  .stat-card {
    min-height: 100px;
    padding: 18px 14px;
  }
  .stat-card strong {
    font-size: 1.85rem;
  }
}

/* ============================================================
   PUBLIC V4 VISUAL READABILITY REPAIRS — 2026-08-15
   Lightened Hero artwork, vivid video thumbnails, unobscured media
   ============================================================ */

/* 1. Hero Artwork Brightness & Localized Gradient */
.release-hero-backdrop {
  background: linear-gradient(90deg, rgba(8, 32, 28, 0.65) 0%, rgba(8, 32, 28, 0.38) 42%, rgba(8, 32, 28, 0.06) 75%, transparent 100%), url('../../images/toan_canh_le_hoi.jpg') center/cover;
}
.official-hero .release-hero-backdrop {
  background: linear-gradient(90deg, rgba(28, 16, 14, 0.65) 0%, rgba(28, 16, 14, 0.35) 45%, rgba(12, 32, 28, 0.08) 80%, transparent 100%), url('../../images/toan_canh_le_hoi.jpg') center/cover;
}
.release-hero h1 {
  text-shadow: 0 3px 12px rgba(0, 0, 0, 0.55);
}
.release-hero .hero-kicker,
.release-hero .hero-lead,
.release-hero .eyebrow {
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.50);
}
@media (max-width: 680px) {
  .release-hero-backdrop {
    background: linear-gradient(180deg, rgba(8, 32, 28, 0.60) 0%, rgba(8, 32, 28, 0.35) 60%, rgba(8, 32, 28, 0.15) 100%), url('../../images/toan_canh_le_hoi.jpg') center/cover;
  }
}

/* 2. Video Facade Poster & Central Play Button */
.video-card img {
  opacity: 1 !important;
  filter: none !important;
}
.video-card:after {
  background: linear-gradient(0deg, rgba(5, 22, 19, 0.40) 0%, rgba(5, 22, 19, 0.05) 50%, transparent 100%) !important;
}
.video-play {
  background: rgba(247, 183, 51, 0.95);
  color: #123447;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  transition: transform 0.25s ease, background-color 0.25s ease;
}
.video-card:hover .video-play {
  transform: scale(1.1);
  background: #ffffff;
}

/* 3. Video Playback & Lightbox Modal Clarity */
.video-card iframe,
.modal-player iframe {
  position: relative;
  z-index: 10;
  opacity: 1 !important;
  filter: none !important;
}
.modal-backdrop {
  background: rgba(0, 0, 0, 0.75);
}
.modal-player img,
.modal-player video {
  opacity: 1 !important;
  filter: none !important;
}

/* ============================================================
   TOURISM UX ENGAGEMENT V5 POLISH — 2026-08-15
   Header Brand Prominence, Photography-led Quick Cards & Culture Cards
   ============================================================ */

/* 1. Header & Brand Prominence */
.site-header {
  background: rgba(255, 250, 240, 0.96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(18, 74, 66, 0.12);
  box-shadow: 0 4px 20px rgba(10, 36, 31, 0.05);
}
.header-inner {
  height: 86px;
  align-items: center;
}
.brand {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
}
.brand-text-block {
  display: flex;
  flex-direction: column;
}
.brand-title {
  font-size: 1.5rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--color-primary-dark, #0c3b33);
  line-height: 1.1;
  white-space: nowrap;
}
.brand-subtitle {
  font-size: 0.92rem;
  font-weight: 800;
  color: #b45309;
  letter-spacing: 0.04em;
  font-style: normal;
  text-transform: none;
}
.header-cta-btn {
  margin-left: 12px;
  min-height: 40px !important;
  padding: 8px 18px !important;
  font-size: 0.9rem !important;
  font-weight: 800 !important;
}
.primary-nav a:not(.header-cta-btn) {
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--color-primary-dark, #0c3b33);
  padding: 6px 10px;
  position: relative;
  transition: color 0.18s ease;
}
.primary-nav a:not(.header-cta-btn):hover,
.primary-nav a:not(.header-cta-btn):focus-visible,
.primary-nav a:not(.header-cta-btn).is-active {
  color: var(--color-accent, #c0392b);
}
.primary-nav a:not(.header-cta-btn).is-active::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 10px;
  right: 10px;
  height: 3px;
  background: var(--color-accent, #c0392b);
  border-radius: 2px;
}

/* 2. Photography-Led Quick Discovery Cards */
.visitor-quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: 24px;
}
.visitor-photo-card {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  min-height: 240px;
  max-height: 280px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 18px;
  text-decoration: none;
  border: 1.5px solid rgba(18, 74, 66, 0.15);
  box-shadow: 0 6px 20px rgba(10, 36, 31, 0.08);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
  cursor: pointer;
}
.visitor-photo-card:hover,
.visitor-photo-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(10, 36, 31, 0.15);
  border-color: rgba(18, 74, 66, 0.35);
}
.visitor-photo-card:focus-visible {
  outline: 3px solid #f59e0b;
  outline-offset: 2px;
}
.quick-card-img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.35s ease;
  z-index: 1;
  display: block;
}
.visitor-photo-card:hover .quick-card-img {
  transform: scale(1.03);
}
.quick-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 32, 28, 0.2) 0%, rgba(8, 32, 28, 0.88) 100%);
  z-index: 2;
}
.quick-card-content {
  position: relative;
  z-index: 3;
  color: #ffffff;
  display: flex;
  flex-direction: column;
}
.quick-card-tag {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #f7b733;
  margin-bottom: 4px;
  text-transform: uppercase;
}
.quick-card-content h3 {
  font-size: 1.22rem;
  font-weight: 900;
  margin: 0 0 4px 0;
  color: #ffffff;
  line-height: 1.2;
}
.quick-card-content p {
  font-size: 0.84rem;
  font-weight: 500;
  opacity: 0.92;
  margin: 0 0 8px 0;
  color: #f1f5f9;
  line-height: 1.35;
}
.quick-card-arrow {
  font-size: 0.82rem;
  font-weight: 800;
  color: #ffd37a;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: transform 0.2s ease;
}
.visitor-photo-card:hover .quick-card-arrow {
  transform: translateX(4px);
}

/* 3. Schedule Day Selector Tabs & Banner */
.schedule-banner-wrap {
  position: relative;
  max-height: 280px;
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 24px;
  box-shadow: 0 6px 20px rgba(10, 36, 31, 0.08);
}
.schedule-banner-img {
  width: 100%;
  height: 280px;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.schedule-banner-badge {
  position: absolute;
  bottom: 12px;
  right: 14px;
  background: rgba(8, 32, 28, 0.8);
  color: #ffffff;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 6px;
  backdrop-filter: blur(4px);
}
.programme-tabs {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-bottom: 24px;
  padding-bottom: 4px;
}
.programme-day-card {
  min-height: 80px;
  padding: 12px 10px;
  border-radius: 14px;
  background: #ffffff;
  border: 2px solid rgba(18, 74, 66, 0.16);
  box-shadow: 0 4px 14px rgba(10, 36, 31, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.programme-tab-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}
.programme-tab-date {
  font-size: 1.4rem;
  font-weight: 900;
  color: var(--color-primary-dark, #0c3b33);
  line-height: 1.1;
}
.programme-tab-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: #64748b;
  letter-spacing: 0.02em;
}
.programme-day-card:hover,
.programme-day-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(10, 36, 31, 0.15);
  border-color: var(--color-primary-dark, #0c3b33);
}
.programme-day-card.is-active {
  background: linear-gradient(135deg, #0c3b33 0%, #175e52 100%) !important;
  border-color: #f59e0b !important;
  box-shadow: 0 8px 24px rgba(12, 59, 51, 0.3) !important;
}
.programme-day-card.is-active .programme-tab-date {
  color: #f59e0b !important;
}
.programme-day-card.is-active .programme-tab-label {
  color: #ffffff !important;
}

/* 4. Continuous Experience Section Polish */
.continuous-card {
  background: #ffffff;
  border: 1.5px solid rgba(18, 74, 66, 0.14);
  border-radius: 14px;
  padding: 22px;
  box-shadow: 0 4px 16px rgba(10, 36, 31, 0.05);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
.continuous-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(10, 36, 31, 0.12);
  border-color: rgba(18, 74, 66, 0.3);
}
.continuous-time {
  display: inline-block;
  padding: 4px 12px;
  background: #ecfdf5;
  color: #065f46;
  font-weight: 800;
  font-size: 0.8rem;
  border-radius: 20px;
  border: 1px solid #a7f3d0;
  margin-bottom: 12px;
}
.continuous-card h3 {
  font-size: 1.2rem;
  font-weight: 800;
  color: #092e27;
  margin: 0 0 8px 0;
  line-height: 1.3;
}
.continuous-card p {
  font-size: 0.92rem;
  color: #334155;
  margin: 0 0 6px 0;
  font-weight: 600;
}
.continuous-card small {
  color: #64748b;
  font-size: 0.84rem;
  line-height: 1.4;
}

/* 5. Cultural Spaces High Contrast Polish */
.culture-space,
.culture-photo-card {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  background: #ffffff !important;
  border: 1.5px solid rgba(18, 74, 66, 0.14) !important;
  box-shadow: 0 6px 20px rgba(10, 36, 31, 0.06);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}
.culture-photo-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(10, 36, 31, 0.14);
}
.culture-photo-wrap {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.culture-photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
  display: block;
}
.culture-photo-card:hover .culture-photo-img {
  transform: scale(1.04);
}
.culture-card-body {
  padding: 20px;
  display: flex;
  flex-direction: column;
  flex: 1;
  background: #ffffff !important;
}
.culture-card-body h3,
.culture-space h3 {
  font-size: 1.35rem !important;
  font-weight: 900 !important;
  color: #082823 !important;
  margin: 0 0 10px 0 !important;
}
.culture-card-body ul,
.culture-space ul {
  margin: 0 0 14px 0 !important;
  padding: 0 0 0 18px !important;
  color: #334155 !important;
  list-style: disc !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}
.culture-card-body li,
.culture-space li {
  color: #334155 !important;
  font-weight: 600 !important;
  font-size: 0.92rem !important;
  line-height: 1.55 !important;
}
.culture-card-body li::before,
.culture-space li::before {
  display: none !important;
}
.culture-card-arrow {
  margin-top: auto !important;
  padding-top: 10px !important;
  font-size: 0.9rem !important;
  font-weight: 800 !important;
  color: #b45309 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  text-decoration: none !important;
  transition: transform 0.2s ease, color 0.2s ease;
}
.culture-photo-card:hover .culture-card-arrow {
  transform: translateX(4px) !important;
  color: #c0392b !important;
}

/* 6. Footer High Contrast Polish */
.site-footer {
  background: #061916;
  color: #e2e8f0;
  padding: 56px 0 36px 0;
}
.site-footer .brand-title {
  color: #ffffff;
  font-size: 1.45rem;
  font-weight: 900;
}
.site-footer .brand-subtitle {
  color: #f59e0b;
  font-size: 0.92rem;
  font-weight: 800;
  font-style: normal;
  letter-spacing: 0.04em;
  text-transform: none;
}
.site-footer p {
  color: #cbd5e1;
  font-size: 0.92rem;
  line-height: 1.6;
}
.footer-columns h2 {
  color: #ffffff;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  margin-bottom: 14px;
}
.footer-columns a {
  color: #94a3b8;
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 600;
  transition: color 0.18s ease;
  display: block;
  margin-bottom: 8px;
}
.footer-columns a:hover,
.footer-columns a:focus-visible {
  color: #fbbf24;
}
.back-to-top-btn {
  background: #0f3630;
  color: #fbbf24 !important;
  border: 1.5px solid rgba(251, 191, 36, 0.4);
  padding: 8px 18px;
  border-radius: 20px;
  font-weight: 800;
  font-size: 0.88rem;
  text-decoration: none;
  transition: all 0.2s ease;
  display: inline-block;
}
.back-to-top-btn:hover,
.back-to-top-btn:focus-visible {
  background: #fbbf24;
  color: #061916 !important;
  border-color: #fbbf24;
  transform: translateY(-2px);
}

@media (max-width: 1023px) {
  .visitor-quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
  .cultural-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
}
@media (max-width: 680px) {
  .header-inner {
    height: 72px;
  }
  .brand-title {
    font-size: 1.15rem;
  }
  .brand-subtitle {
    font-size: 0.78rem;
  }
  .header-cta-btn {
    display: none;
  }
  .visitor-quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .visitor-photo-card {
    min-height: 190px;
    padding: 12px;
  }
  .quick-card-content h3 {
    font-size: 1.05rem;
  }
  .quick-card-content p {
    font-size: 0.78rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .programme-tabs {
    display: flex;
    overflow-x: auto;
    gap: 8px;
    padding-bottom: 8px;
    -webkit-overflow-scrolling: touch;
  }
  .programme-day-card {
    flex: 0 0 100px;
    min-height: 72px;
    padding: 10px 8px;
  }
  .programme-tab-date {
    font-size: 1.2rem;
  }
  .cultural-grid {
    grid-template-columns: 1fr;
  }
}

/* ====== Contest Homepage Block ====== */
.contest-homepage-block { background: #fff7e4; border-top: 3px solid #ffd879; border-bottom: 3px solid #ffd879; padding: 3rem 0; text-align: center; }
.contest-homepage-block .eyebrow { color: #a84022; font-weight: 700; letter-spacing: 0.1em; margin-bottom: 0.5rem; }
.contest-homepage-block h2 { color: #17342f; font-size: clamp(1.4rem, 3.5vw, 2.1rem); line-height: 1.3; margin-bottom: 0.75rem; max-width: 700px; margin-left: auto; margin-right: auto; }
.contest-theme { font-size: 1.05rem; color: #40504b; font-weight: 500; margin-bottom: 1rem; }
.contest-start-notice { color: #a84022; font-size: 1rem; margin-bottom: 1.75rem; }
.contest-cta-group { display: flex; flex-wrap: wrap; gap: 0.85rem; justify-content: center; }
.contest-cta-group .button-primary { background: #a84022; color: #fff; border-color: #a84022; font-size: 1rem; padding: 0.75rem 1.75rem; }
.contest-cta-group .button-primary:hover { background: #8c3118; border-color: #8c3118; }
.contest-cta-group .button-secondary { font-size: 0.95rem; padding: 0.7rem 1.35rem; }
@media (max-width: 480px) { .contest-cta-group { flex-direction: column; align-items: center; } .contest-cta-group .button { width: 100%; max-width: 320px; text-align: center; } }

/* HOMEPAGE UI/UX FINAL V2 — concise, content-first homepage flow */
.release-section { padding-block: clamp(64px, 5.4vw, 88px); }
.video-section { padding-top: clamp(58px, 5vw, 80px); }
.hero-actions-compact { align-items:stretch; gap:10px; }
.hero-actions-compact .button { min-height:46px; white-space:nowrap; }

.contest-homepage-block.contest-compact-strip {
  margin:0;
  padding:24px 0;
  border:0;
  background:linear-gradient(105deg,#143f38,#1d6558);
  color:#fff;
  text-align:left;
}
.contest-compact-strip .site-shell {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-areas:"eyebrow title actions" "eyebrow theme actions";
  column-gap:18px;
  align-items:center;
}
.contest-compact-strip .eyebrow {
  grid-area:eyebrow;
  margin:0;
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:999px;
  color:#f9d985;
  font-size:.68rem;
  line-height:1.25;
  letter-spacing:.1em;
  text-align:center;
}
.contest-compact-strip h2 {
  grid-area:title;
  max-width:660px;
  margin:0;
  color:#fff;
  font-size:clamp(1.05rem,1.8vw,1.35rem);
  line-height:1.25;
}
.contest-compact-strip .contest-theme {
  grid-area:theme;
  margin:5px 0 0;
  color:#dbece6;
  font-size:.9rem;
  font-weight:700;
}
.contest-compact-strip .contest-cta-group {
  grid-area:actions;
  justify-content:flex-end;
}
.contest-compact-strip .contest-cta-group .button-primary {
  min-height:44px;
  padding:10px 15px;
  border-color:#f4b63e;
  background:#f4b63e;
  color:#17342f;
  font-size:.82rem;
}
.contest-compact-strip .contest-cta-group .button-secondary {
  display:none;
}

.gift-section .section-heading-split { gap:16px; }
.gift-section .text-link { color:#8c3118; }
.programme-section .section-heading { margin-bottom:18px; }
.programme-section .section-heading > p:last-child { margin-bottom:0; }

@media (max-width:767px) {
  .release-section { padding-block:clamp(40px,11vw,56px); }
  .video-section { padding-top:46px; }
  .hero-actions-compact { display:grid; grid-template-columns:1fr; }
  .hero-actions-compact .button { width:100%; }
  .contest-homepage-block.contest-compact-strip { padding:20px 0; }
  .contest-compact-strip .site-shell {
    display:grid;
    grid-template-columns:1fr;
    grid-template-areas:"eyebrow" "title" "theme" "actions";
    gap:8px;
  }
  .contest-compact-strip .eyebrow { justify-self:start; }
  .contest-compact-strip .contest-theme { margin:0; }
  .contest-compact-strip .contest-cta-group { justify-content:stretch; margin-top:5px; }
  .contest-compact-strip .contest-cta-group .button-primary { width:100%; }
  .gift-section .section-heading-split { align-items:flex-start; }
  .gift-section .text-link { margin-top:0; }
}

/* Post-2/9 tourism mode: retain archival routes but remove dated homepage campaigns. */
body.post-event-tourism .contest-homepage-block,
body.post-event-tourism .tet-program-section,
body.post-event-tourism .quick-stats {
  display:none !important;
}

body.post-event-tourism .official-hero .release-hero-backdrop {
  background:linear-gradient(90deg,rgba(19,52,47,.84),rgba(19,52,47,.38) 60%,rgba(20,51,43,.58)),url('../../images/toan_canh_le_hoi.jpg') center/cover;
}

body.post-event-tourism .visitor-quick-section {
  padding-top:clamp(48px,7vw,76px);
}
