:root {
  --lc-shell-width: min(80vw, 1600px);
  --lc-prose-width: 1000px;
  --lc-v2-green: #07553a;
  --lc-v2-green-dark: #063728;
  --lc-v2-ink: #13201b;
  --lc-v2-muted: #52635c;
  --lc-v2-line: #d7e1dc;
  --lc-v2-surface: #f5f8f6;
  --lc-v2-radius: 18px;
}

html,
body.lc-layout-v2 { overflow-x: clip; }

body.lc-layout-v2 *,
body.lc-layout-v2 *::before,
body.lc-layout-v2 *::after { box-sizing: border-box; }

/* The canonical shell belongs to the complete header row. The injected
   navigation must size to the remaining flex space, never claim a second
   80vw shell beside the logo. */
body.lc-layout-v2 header > .wp-block-group > .wp-block-group.alignwide:has(.lc-primary-nav) {
  width: var(--lc-shell-width) !important;
  max-width: none !important;
  margin-inline: auto !important;
}
body.lc-layout-v2 header .wp-block-group:has(> .lc-primary-nav) {
  flex: 1 1 auto;
  min-width: 0;
}
body.lc-layout-v2 header .lc-primary-nav {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
}

body.lc-layout-v2:has(.lc-php-template-header) #header,
body.lc-layout-v2:has(.lc-php-template-header) #header + hr { display: none; }
body.lc-layout-v2 .lc-php-template-header { width: 100%; background: #fff; }
body.lc-layout-v2 .lc-php-template-header-inner {
  display: flex;
  width: var(--lc-shell-width);
  max-width: none;
  margin-inline: auto;
  align-items: center;
  gap: clamp(24px, 4vw, 64px);
  padding-block: 28px;
}
body.lc-layout-v2 .lc-template-brand { display: flex; flex: 0 0 auto; align-items: center; gap: 18px; }
body.lc-layout-v2 .lc-template-brand .custom-logo { display: block; width: 54px; height: 54px; object-fit: contain; }
body.lc-layout-v2 .lc-template-site-title { color: var(--lc-v2-ink); font-size: 1.25rem; font-weight: 850; text-decoration: none; white-space: nowrap; }
body.lc-layout-v2 .lc-php-template-header .lc-primary-nav { flex: 1 1 auto; }

body.lc-layout-v2 :where(header, footer) > .alignwide,
body.lc-layout-v2 #header > .alignwide,
body.lc-layout-v2 #footer > .alignwide,
body.lc-layout-v2 .lc-primary-nav,
body.lc-layout-v2 .lc-foot,
body.lc-layout-v2 .lc-hub-hero-v2,
body.lc-layout-v2 .lca-outer,
body.lc-layout-v2 .lc-sann,
body.lc-layout-v2 .lc-hub-current-events,
body.lc-layout-v2 .lc-world-cup-current-events,
body.lc-layout-v2 .lc-world-cup-related-guides,
body.lc-layout-v2 .lc-architecture,
body.lc-layout-v2 .lc-home-wrap,
body.lc-layout-v2 .lc-inner,
body.lc-layout-v2 .lcap-container,
body.lc-layout-v2 .lp2-stats-inner,
body.lc-layout-v2 .lp2-nav-inner,
body.lc-layout-v2 .lp2-grid,
body.lc-layout-v2 .lp2-sec,
body.lc-layout-v2 .lp2-faq,
body.lc-layout-v2 .lp2-cta-wrap,
body.lc-layout-v2.single-post main .entry-content,
body.lc-layout-v2.single-lc_event main .entry-content {
  width: var(--lc-shell-width) !important;
  max-width: none !important;
  margin-inline: auto !important;
}

body.lc-layout-v2 :where(.lc-home-hero, .lc-home-wrap, .lc-attractions-page, .lp2, .lc-architecture) {
  left: auto !important;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  transform: none !important;
}

body.lc-layout-v2 :where(.lc-inner, .lcap-container, .lp2-stats-inner, .lp2-nav-inner, .lp2-grid, .lp2-sec, .lp2-faq, .lp2-cta-wrap, .lc-architecture > *, .lc-home-wrap > *) {
  max-width: none;
}

body.lc-layout-v2.single-post main .entry-content > :where(p, h1, h2, h3, h4, ul, ol, blockquote),
body.lc-layout-v2.single-lc_event .lc-event-single > :where(p, h2, h3, ul, ol, blockquote) {
  width: min(100%, var(--lc-prose-width));
  margin-inline: auto;
}

.lc-hub-hero-v2 {
  position: relative;
  min-height: 510px;
  margin-block: 28px 24px !important;
  overflow: hidden;
  border-radius: 24px;
  background: var(--lc-v2-green-dark);
  box-shadow: 0 18px 52px rgba(6, 55, 40, .18);
  color: #fff;
  isolation: isolate;
}

.lc-hub-hero-track,
.lc-hub-hero-slide,
.lc-hub-hero-link { min-height: inherit; }

.lc-hub-hero-slide { display: none; position: relative; }
.lc-hub-hero-slide.is-active { display: block; }
.lc-hub-hero-link { display: block; position: relative; color: #fff !important; text-decoration: none !important; }
.lc-hub-hero-link > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.lc-hub-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5, 30, 21, .94) 0%, rgba(5, 30, 21, .74) 48%, rgba(5, 30, 21, .22) 100%); }
.lc-hub-hero-copy { position: relative; z-index: 1; display: flex; width: min(720px, 64%); min-height: 510px; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(36px, 5vw, 82px); }
.lc-hub-hero-kicker { display: inline-flex; margin-bottom: 14px; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; padding: 5px 11px; background: rgba(255,255,255,.14); font-size: .78rem; font-weight: 850; letter-spacing: .06em; }
.lc-hub-hero-v2 :where(h1, h2) { max-width: 760px; margin: 0 0 14px; color: #fff !important; font-size: clamp(2.15rem, 4.4vw, 4.65rem); line-height: 1.03; text-wrap: balance; }
.lc-hub-hero-description { max-width: 700px; color: rgba(255,255,255,.9); font-size: clamp(1rem, 1.7vw, 1.22rem); line-height: 1.65; }
.lc-hub-hero-cta { display: inline-flex; margin-top: 24px; border-radius: 999px; padding: 11px 18px; background: #fff; color: var(--lc-v2-green-dark); font-weight: 900; }
.lc-hub-hero-link:hover .lc-hub-hero-cta { background: #f3d56a; }

.lc-hub-hero-controls { position: absolute; z-index: 4; right: 22px; bottom: 20px; display: flex; align-items: center; gap: 8px; }
.lc-hub-hero-controls button { min-width: 42px; min-height: 42px; border: 1px solid rgba(255,255,255,.7); border-radius: 999px; background: rgba(5,30,21,.72); color: #fff; font-weight: 850; cursor: pointer; }
.lc-hub-hero-controls :where(.lc-hub-hero-prev, .lc-hub-hero-next) { font-size: 1.55rem; line-height: 1; }
.lc-hub-hero-dots { display: flex; gap: 6px; }
.lc-hub-hero-dots .lc-hub-hero-dot { width: 12px; min-width: 12px; min-height: 12px; border: 0; padding: 0; background: rgba(255,255,255,.55); }
.lc-hub-hero-dots .lc-hub-hero-dot.is-active { width: 30px; background: #fff; }
.lc-hub-hero-pause { padding-inline: 14px; font-size: .78rem; }
.lc-hub-hero-v2 button:focus-visible,
.lc-hub-hero-v2 a:focus-visible { outline: 4px solid #f3d56a; outline-offset: -4px; }

body.lc-layout-v2 .lc-hub-current-events,
body.lc-layout-v2 .lc-world-cup-current-events { width: 100%; padding-block: clamp(28px, 4vw, 52px); }
body.lc-layout-v2 .lc-hub-current-events > h2,
body.lc-layout-v2 .lc-world-cup-current-events > h2 { margin: 0 0 22px; color: var(--lc-v2-ink); font-size: clamp(1.65rem, 3vw, 2.5rem); }

body.lc-layout-v2 .lc-event-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
body.lc-layout-v2 .lc-event-card {
  display: grid;
  grid-template-columns: minmax(0, 28fr) minmax(0, 52fr) minmax(190px, 20fr);
  min-height: 210px;
  overflow: hidden;
  border: 1px solid var(--lc-v2-line);
  border-radius: var(--lc-v2-radius);
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 48, 35, .07);
}
body.lc-layout-v2 .lc-event-media { display: block; min-height: 210px; aspect-ratio: 16 / 9; overflow: hidden; background: #e5ece8; }
body.lc-layout-v2 .lc-event-media img { display: block; width: 100%; height: 100%; min-height: 210px; object-fit: cover; opacity: 1 !important; visibility: visible !important; filter: none !important; transition: transform .25s ease; }
body.lc-layout-v2 .lc-event-media:hover img { transform: scale(1.025); }
body.lc-layout-v2 .lc-event-card-body { display: flex; min-width: 0; flex-direction: column; justify-content: center; gap: 10px; padding: clamp(22px, 2.4vw, 36px); }
body.lc-layout-v2 .lc-event-category { width: fit-content; border-radius: 999px; padding: 4px 9px; background: #eaf3ee; color: var(--lc-v2-green-dark); font-size: .72rem; font-weight: 850; }
body.lc-layout-v2 .lc-event-title { margin: 0; font-size: clamp(1.2rem, 1.7vw, 1.65rem); line-height: 1.25; }
body.lc-layout-v2 .lc-event-title a { color: var(--lc-v2-ink); text-decoration: none; }
body.lc-layout-v2 .lc-event-summary { margin: 0; color: var(--lc-v2-muted); line-height: 1.62; }
body.lc-layout-v2 .lc-event-location { margin: 0; color: var(--lc-v2-green-dark); font-size: .9rem; font-weight: 750; }
body.lc-layout-v2 .lc-event-actions { display: flex; flex-direction: column; justify-content: center; align-items: stretch; gap: 11px; border-left: 1px solid var(--lc-v2-line); padding: 24px; background: var(--lc-v2-surface); }
body.lc-layout-v2 .lc-event-price { color: var(--lc-v2-ink); font-size: .88rem; line-height: 1.45; }
body.lc-layout-v2 .lc-event-actions .lc-button { width: 100%; border-radius: 10px; text-align: center; }
body.lc-layout-v2 .lc-button-secondary { background: #fff !important; color: var(--lc-v2-green) !important; }

body.lc-layout-v2 .lc-event-filters { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.lc-layout-v2 .lc-world-cup-results-disclosure { border: 1px solid var(--lc-v2-line); border-radius: var(--lc-v2-radius); padding: 18px; background: #fff; }
body.lc-layout-v2 .lc-world-cup-results-disclosure > summary { cursor: pointer; color: var(--lc-v2-green-dark); font-size: 1.1rem; font-weight: 850; }

@media (min-width: 1200px) {
  body.lc-layout-v2 .lc-event-card { grid-template-columns: minmax(0, 28fr) minmax(0, 52fr) minmax(190px, 20fr); }
}

/* Localized legacy-home World Cup cards. The source-language inline style is
   removed with the old grid and the shared Hub stylesheet owns the layout. */
.lc-hub-layout-v2 .lc-wcfw-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px}
.lc-hub-layout-v2 .lc-wcfw-card{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid #e6ece9;border-radius:12px;padding:14px 16px;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.05);transition:border-color .15s}
.lc-hub-layout-v2 .lc-wcfw-card:hover{border-color:#c2410c}
.lc-hub-layout-v2 .lc-wcfw-city{font-weight:900;color:#101828;font-size:1rem}
.lc-hub-layout-v2 .lc-wcfw-desc{color:#5a6b66;font-size:.88rem;line-height:1.5;margin:0}
.lc-hub-layout-v2 .lc-wcfw-cta{color:#c2410c;font-weight:800;font-size:.86rem}
.lc-hub-layout-v2 .lc-photo-credit-note{font-size:.78rem;color:#8a978f;margin:8px 0 0}

.lc-locale-explore-summary {
  width: var(--lc-shell-width);
  max-width: 1600px;
  margin: 0 auto clamp(2rem, 5vw, 4rem);
}

@media (min-width: 768px) and (max-width: 1199px) {
  :root { --lc-shell-width: 90vw; }
  body.lc-layout-v2 .lc-event-card { grid-template-columns: minmax(220px, 31%) minmax(0, 1fr); }
  body.lc-layout-v2 .lc-event-actions { grid-column: 1 / -1; display: grid; grid-template-columns: auto minmax(180px, 1fr) repeat(2, minmax(150px, auto)); align-items: center; border-top: 1px solid var(--lc-v2-line); border-left: 0; }
  .lc-hub-hero-copy { width: 72%; }
}

@media (max-width: 1024px) {
  body.lc-layout-v2 header > .wp-block-group > .wp-block-group.alignwide:has(.lc-primary-nav) { flex-wrap: wrap !important; }
  body.lc-layout-v2 header .wp-block-group:has(> .lc-primary-nav) { flex-basis: 100%; width: 100%; }
  body.lc-layout-v2 .lc-php-template-header-inner { flex-wrap: wrap; gap: 8px; padding-block: 20px; }
  body.lc-layout-v2 .lc-php-template-header .lc-primary-nav { flex-basis: 100%; }
}

@media (max-width: 767px) {
  :root { --lc-shell-width: calc(100vw - 32px); }
  .lc-hub-hero-v2 { min-height: 540px; margin-block: 16px 18px !important; border-radius: 18px; }
  .lc-hub-hero-track,
  .lc-hub-hero-slide,
  .lc-hub-hero-link { min-height: 540px; }
  .lc-hub-hero-shade { background: linear-gradient(0deg, rgba(5,30,21,.96) 0%, rgba(5,30,21,.75) 62%, rgba(5,30,21,.15) 100%); }
  .lc-hub-hero-copy { width: 100%; min-height: 540px; justify-content: flex-end; padding: 28px 22px 92px; }
  .lc-hub-hero-v2 :where(h1, h2) { font-size: clamp(2rem, 10vw, 3rem); }
  .lc-hub-hero-description { font-size: .98rem; line-height: 1.55; }
  .lc-hub-hero-controls { right: 16px; bottom: 16px; left: 16px; justify-content: center; }
  .lc-hub-hero-pause { position: absolute; right: 0; overflow: hidden; width: 42px; padding: 0; text-indent: -999px; }
  .lc-hub-hero-pause::after { content: "Ⅱ"; display: block; text-indent: 0; }
  body.lc-layout-v2 .lc-event-card { grid-template-columns: 1fr; }
  body.lc-layout-v2 .lc-event-media,
  body.lc-layout-v2 .lc-event-media img { min-height: 0; aspect-ratio: 16 / 9; }
  body.lc-layout-v2 .lc-event-card-body { padding: 22px; }
  body.lc-layout-v2 .lc-event-actions { border-top: 1px solid var(--lc-v2-line); border-left: 0; padding: 20px 22px 22px; }
  body.lc-layout-v2 .lc-event-actions .lc-button { min-height: 46px; }
  body.lc-layout-v2 .lc-event-filters { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .lc-hub-hero-v2 *,
  body.lc-layout-v2 .lc-event-card * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
