:root {
  --navy: #182944;
  --navy-deep: #101f36;
  --navy-mid: #263b59;
  --gold: #bda16b;
  --gold-light: #e8dbbf;
  --cream: #faf8f4;
  --cream-dark: #f0eee9;
  --ink: #24334a;
  --muted: #657185;
  --rule: #e4e0d7;
  --max: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 102px; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: 'DM Sans', Arial, sans-serif; font-size: 17px; line-height: 1.73; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; }
a { color: inherit; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
::selection { background: var(--gold-light); color: var(--navy-deep); }

.skip-link { position: absolute; z-index: 30; top: -90px; left: 15px; background: #fff; padding: 10px 16px; color: var(--navy); }
.skip-link:focus { top: 10px; }
.reading-progress { position: fixed; top: 0; left: 0; width: 100%; height: 3px; z-index: 25; pointer-events: none; }
.reading-progress-bar { height: 100%; width: 0; background: var(--gold); transition: width .1s linear; }
.site-header { position: sticky; z-index: 20; top: 0; height: 92px; background: rgba(250,248,244,.97); border-bottom: 1px solid rgba(24,41,68,.09); backdrop-filter: blur(20px); }
.header-inner { max-width: 1350px; margin: 0 auto; padding: 0 40px; height: 100%; display: flex; align-items: center; gap: 38px; }
.brand { display: flex; align-items: center; overflow: hidden; width: 152px; flex: 0 0 152px; height: 78px; text-decoration: none; }
.brand img { display: block; width: 151px; height: 78px; object-fit: contain; }
.header-nav { display: flex; gap: 28px; align-items: center; margin-left: auto; }
.header-nav a, .sources-link { font: 600 12px/1.2 'Manrope', sans-serif; letter-spacing: .045em; text-decoration: none; white-space: nowrap; transition: color .18s; }
.header-nav a:hover { color: var(--gold); }
.sources-link { border: 1px solid var(--gold); color: var(--navy); padding: 12px 18px; border-radius: 2px; }
.sources-link span { color: var(--gold); margin-left: 6px; }
.sources-link:hover { background: var(--navy); color: white; border-color: var(--navy); }
.menu-toggle { display: none; border: 0; background: transparent; width: 38px; height: 38px; padding: 7px; cursor: pointer; }
.menu-toggle span { display: block; height: 2px; width: 22px; background: var(--navy); margin: 5px 0; }
.mobile-nav { display: none; }

.hero { position: relative; isolation: isolate; overflow: hidden; background: var(--navy); color: #fff; }
.hero-inner { max-width: 1360px; min-height: 625px; margin: auto; display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; padding: 82px 60px 88px; position: relative; z-index: 2; }
.hero-content { max-width: 760px; }
.hero-mesh { position: absolute; inset: 0; pointer-events: none; opacity: .5; background: radial-gradient(ellipse at 94% 35%,rgba(189,161,107,.2),transparent 43%),linear-gradient(125deg,transparent 44%,rgba(255,255,255,.023) 44.2%,transparent 44.5%),linear-gradient(135deg,transparent 78%,rgba(255,255,255,.038) 78.15%,transparent 78.4%); }
.eyebrow { display: flex; gap: 14px; align-items: center; color: var(--gold-light); letter-spacing: .22em; font: 700 12px/1.4 'Manrope',sans-serif; text-transform: uppercase; margin-bottom: 29px; }
.eyebrow-rule { display: block; width: 34px; height: 2px; background: var(--gold); }
.hero h1 { font-family: 'Manrope',sans-serif; font-weight: 600; font-size: clamp(45px,5.1vw,76px); line-height: 1.14; letter-spacing: -.065em; margin: 0; }
.hero h1 em { font-style: normal; color: var(--gold); font-weight: 500; }
.hero-subtitle { margin: 30px 0 38px; font-size: 19px; max-width: 590px; line-height: 1.65; color: #d3dce9; }
.hero-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 32px; text-decoration: none; color: var(--navy); background: var(--gold); padding: 16px 22px; min-width: 248px; font: 700 12px/1 'Manrope',sans-serif; letter-spacing: .035em; transition: transform .2s,background .2s; }
.hero-button:hover { transform: translateY(-2px); background: #dec89d; }
.hero-art { position: relative; height: 475px; max-width: 470px; width: 100%; margin: auto; }
.art-frame { position: absolute; display: block; border: 1.2px solid rgba(189,161,107,.54); width: 70%; aspect-ratio: 1; transform: rotate(26deg); }
.frame-one { right: 7%; top: 12%; }
.frame-two { right: 24%; top: 1%; opacity: .45; }
.frame-three { right: 3%; top: 33%; opacity: .34; }
.art-orbit { position: absolute; width: 52%; aspect-ratio: 1; border-radius: 50%; border: 1px solid rgba(232,219,191,.4); top: 28%; right: 23%; box-shadow: 0 0 0 32px rgba(255,255,255,.012), 0 0 0 65px rgba(255,255,255,.008); }
.art-orbit::before { content: ''; display: block; position: absolute; inset: 27%; border-radius: 50%; background: var(--gold); opacity: .8; }
.hero-bottom-line { height: 7px; background: linear-gradient(90deg,var(--gold) 0 24%,var(--navy-mid) 24% 100%); }

.report-body > section.level1 { max-width: var(--max); margin: 0 auto; padding: 94px 46px 104px; border-bottom: 1px solid var(--rule); scroll-margin-top: 102px; }
.report-body h1, .report-body h2, .report-body h3 { font-family: 'Manrope',sans-serif; color: var(--navy); letter-spacing: -.045em; }
.report-body h1 { font-size: clamp(31px,3.2vw,43px); line-height: 1.22; font-weight: 700; margin: 0 0 30px; max-width: 1000px; }
.report-body h2 { font-size: clamp(22px,2.3vw,27px); line-height: 1.35; margin: 44px 0 18px; font-weight: 700; }
.report-body h3 { font-size: 21px; }
.report-body p { margin: 0 0 20px; }
.report-body li { margin: 0 0 13px; padding-left: 8px; }
.report-body ul, .report-body ol { padding-left: 28px; margin: 20px 0 29px; }
.report-body strong { color: var(--navy); font-weight: 700; }
.report-body img { display: block; width: 100%; height: auto; border: 1px solid rgba(24,41,68,.09); box-shadow: 0 20px 50px rgba(24,41,68,.075); background: #fff; }
.report-body p:has(> img) { margin: 34px 0 5px; }

#executive-recommendation { position: relative; }
#executive-recommendation::before { content: '01 / VISION'; position: absolute; font: 700 11px/1 'Manrope',sans-serif; letter-spacing: .18em; color: #aa8e58; top: 63px; }
#executive-recommendation h1 { padding-top: 5px; }
#executive-recommendation p:first-of-type { color: var(--navy); font-size: 20px; line-height: 1.7; font-weight: 500; }
#executive-recommendation p:last-of-type { max-width: 950px; }

/* Research tables remain full and unabridged, with horizontal scrolling on phones. */
.table-scroll { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e3e1dc; border-radius: 3px; margin: 28px 0 36px; background: white; }
.report-body table { border-collapse: collapse; width: 100%; min-width: 680px; font-size: 14px; line-height: 1.55; }
.report-body th { padding: 17px 18px; text-align: left; color: white; background: var(--navy); font: 700 12px/1.5 'Manrope',sans-serif; border-right: 1px solid rgba(255,255,255,.16); vertical-align: middle; }
.report-body th strong { color: white; }
.report-body td { padding: 16px 18px; border-top: 1px solid #e5e6e4; border-right: 1px solid #ebebe9; vertical-align: top; }
.report-body tr:nth-child(even) td { background: #f7f7f4; }
.report-body td:first-child { font-weight: 700; color: var(--navy); }
.report-body td:last-child, .report-body th:last-child { border-right: 0; }
[id="1-research-evidence-and-strategic-conclusions"] { background: var(--cream); }
#what-our-2026-research-adds { margin-top: 50px; }
#what-our-2026-research-adds > h2 { margin-bottom: 22px; padding-top: 8px; }
#what-our-2026-research-adds ul { columns: 2; column-gap: 48px; }
#what-our-2026-research-adds li { break-inside: avoid; }
#what-our-2026-research-adds p:has(img) { clear: both; margin-top: 44px; }
#what-our-2026-research-adds img { border-radius: 8px; }

/* The explicitly highlighted three traffic engines. */
[id="2-three-complementary-traffic-engines"].level1 { max-width: none; background: var(--navy); border: 0; padding: 92px max(40px,calc((100vw - 1180px)/2)) 108px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
[id="2-three-complementary-traffic-engines"] > h1 { grid-column: 1/-1; color: #fff; margin: 0 0 28px; }
[id="2-three-complementary-traffic-engines"] > section.level2 { border-top: 4px solid var(--gold); padding: 29px 25px 22px; min-width: 0; background: #223653; }
[id="2-three-complementary-traffic-engines"] h2 { color: #e5cf9e; margin: 0 0 20px; font-size: 23px; line-height: 1.3; }
[id="2-three-complementary-traffic-engines"] p { color: #e4e9ef; font-size: 15.5px; line-height: 1.8; margin-bottom: 0; }

/* Paired editorial blocks: report text stays verbatim, figures sit to the right. */
[id="4-flagship-park-and-the-broader-entertainment-mix"],
[id="51-palisades-climb-as-the-signature-visual-landmark"],
[id="52-climbzone-on-level-3"] { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); column-gap: 52px; align-items: start; }
[id="4-flagship-park-and-the-broader-entertainment-mix"] > h1,
[id="51-palisades-climb-as-the-signature-visual-landmark"] > h2,
[id="52-climbzone-on-level-3"] > h2 { grid-column: 1 / -1; }
[id="4-flagship-park-and-the-broader-entertainment-mix"] > p:not(:has(img)),
[id="51-palisades-climb-as-the-signature-visual-landmark"] > p:not(:has(img)),
[id="52-climbzone-on-level-3"] > p:not(:has(img)) { grid-column: 1; }
[id="4-flagship-park-and-the-broader-entertainment-mix"] > p:has(img),
[id="51-palisades-climb-as-the-signature-visual-landmark"] > p:has(img),
[id="52-climbzone-on-level-3"] > p:has(img) { grid-column: 2; grid-row: 2 / span 6; margin: 0; align-self: start; }
[id="4-flagship-park-and-the-broader-entertainment-mix"] > p:has(img) img,
[id="51-palisades-climb-as-the-signature-visual-landmark"] > p:has(img) img,
[id="52-climbzone-on-level-3"] > p:has(img) img { border-radius: 3px; }
[id="5-revitalizing-the-ropes-course-and-climbing-experience"] > section.level2 { margin-top: 10px; }
[id="5-revitalizing-the-ropes-course-and-climbing-experience"] > section.level2 + section.level2 { padding-top: 32px; border-top: 1px solid var(--rule); margin-top: 54px; }

[id="6-one-digital-family-identity-and-rewards-economy"] ol { counter-reset: journey; list-style: none; padding: 0; margin: 27px 0 28px; }
[id="6-one-digital-family-identity-and-rewards-economy"] ol li { position: relative; padding: 0 0 24px 55px; margin: 0; border-left: 1px solid var(--gold-light); margin-left: 19px; }
[id="6-one-digital-family-identity-and-rewards-economy"] ol li::before { counter-increment: journey; content: counter(journey,decimal-leading-zero); position: absolute; top: 0; left: -20px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--gold); color: var(--navy); background: var(--cream); font: 700 12px 'Manrope',sans-serif; }
[id="6-one-digital-family-identity-and-rewards-economy"] ol li:last-child { border-left-color: transparent; padding-bottom: 0; }

[id="8-an-event-every-weekend-and-activity-throughout-the-day"] { display: flow-root; }
[id="8-an-event-every-weekend-and-activity-throughout-the-day"] > p:has(img) { width: 46%; float: right; margin: 12px 0 20px 42px; }
[id="8-an-event-every-weekend-and-activity-throughout-the-day"] > p:has(img) img { border-radius: 3px; }

#final-strategic-position.level1 { max-width: none; background: var(--navy); color: white; padding: 88px max(40px,calc((100vw - 1180px)/2)) 94px; border: 0; }
#final-strategic-position h1 { color: var(--gold-light); }
#final-strategic-position p { max-width: 1060px; font-size: 21px; line-height: 1.85; color: #e6ebf2; }

#reference-sources.level1 { padding-bottom: 90px; }
#reference-sources h1 { margin-bottom: 24px; }
#reference-sources p { font-size: 14px; line-height: 1.7; padding: 7px 0 7px 0; margin: 0; color: var(--muted); }
#reference-sources p:last-child { border-top: 1px solid var(--rule); margin-top: 25px; padding-top: 20px; }
#reference-sources p a { color: var(--navy); text-decoration-line: underline; text-decoration-color: var(--gold); text-underline-offset: 4px; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
#reference-sources p a:hover { color: #946d34; }
#reference-sources p a u { text-decoration: none; }

.site-footer { background: #eae6dd; border-top: 1px solid #d9d0bf; }
.footer-inner { max-width: 1300px; margin: auto; padding: 30px 45px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.footer-brand img { width: 170px; height: 90px; object-fit: contain; }
.footer-right { display: flex; align-items: center; gap: 38px; font: 600 12px/1.5 'Manrope',sans-serif; color: var(--muted); }
.footer-right a { color: var(--navy); text-decoration: none; }
.footer-right a:hover { text-decoration: underline; }

@media (max-width: 1100px) {
  .header-inner { gap: 20px; padding: 0 26px; }
  .header-nav { gap: 18px; }
  .hero-inner { grid-template-columns: 1.5fr .5fr; padding-inline: 40px; }
  .hero-art { opacity: .5; }
  .report-body > section.level1 { padding-left: 32px; padding-right: 32px; }
  [id="2-three-complementary-traffic-engines"].level1 { padding-left: 32px; padding-right: 32px; }
}
@media (max-width: 850px) {
  .site-header { height: 79px; }
  .header-nav, .sources-link { display: none; }
  .header-inner { justify-content: space-between; padding: 0 24px; }
  .brand, .brand img { height: 69px; }
  .menu-toggle { display: block; }
  .mobile-nav:not([hidden]) { display: grid; position: absolute; top: 79px; left: 0; right: 0; padding: 18px 28px 28px; background: var(--cream); box-shadow: 0 15px 30px rgba(24,41,68,.15); }
  .mobile-nav a { display: block; padding: 12px 4px; border-bottom: 1px solid var(--rule); text-decoration: none; font: 600 14px 'Manrope',sans-serif; }
  .hero-inner { min-height: 535px; display: block; padding: 84px 30px; }
  .hero-art { position: absolute; width: 48%; height: 340px; right: -12%; bottom: 20px; opacity: .24; z-index: -1; }
  .hero h1 { font-size: clamp(42px,7.4vw,64px); }
  .hero-subtitle { max-width: 520px; }
  [id="2-three-complementary-traffic-engines"].level1 { grid-template-columns: 1fr; }
  [id="2-three-complementary-traffic-engines"] > h1 { margin-bottom: 15px; }
  [id="2-three-complementary-traffic-engines"] > section.level2 { padding: 27px; }
  [id="4-flagship-park-and-the-broader-entertainment-mix"],
  [id="51-palisades-climb-as-the-signature-visual-landmark"],
  [id="52-climbzone-on-level-3"] { display: block; }
  [id="4-flagship-park-and-the-broader-entertainment-mix"] > p:has(img),
  [id="51-palisades-climb-as-the-signature-visual-landmark"] > p:has(img),
  [id="52-climbzone-on-level-3"] > p:has(img) { margin: 30px 0 10px; }
  #what-our-2026-research-adds ul { columns: 1; }
}
@media (max-width: 620px) {
  html { scroll-padding-top: 82px; }
  .hero-inner { min-height: 495px; padding: 68px 23px 75px; }
  .hero h1 { font-size: 41px; letter-spacing: -.055em; }
  .hero-subtitle { font-size: 16px; }
  .hero-art { width: 70%; right: -31%; }
  .report-body > section.level1 { padding: 70px 22px 74px; }
  .report-body h1 { font-size: 30px; }
  .report-body h2 { font-size: 22px; }
  .report-body p { font-size: 16px; }
  #executive-recommendation::before { top: 43px; }
  #executive-recommendation p:first-of-type { font-size: 18px; }
  [id="2-three-complementary-traffic-engines"].level1 { padding: 72px 22px 78px; }
  [id="2-three-complementary-traffic-engines"] h2 { font-size: 20px; }
  [id="8-an-event-every-weekend-and-activity-throughout-the-day"] > p:has(img) { width: 100%; float: none; margin: 27px 0; }
  #final-strategic-position.level1 { padding: 70px 22px; }
  #final-strategic-position p { font-size: 18px; }
  .footer-inner { padding: 24px 20px; }
  .footer-brand img { width: 130px; }
  .footer-right { flex-direction: column; gap: 9px; align-items: flex-end; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { transition: none !important; }
}

/* Updated report presentation — clean navigation, editorial section markers. */
.header-nav { margin-left: 0; }
.sources-link { margin-left: auto; }
.footer-right { margin-left: auto; }
.report-body section[data-kicker] { position: relative; }
.report-body section[data-kicker]::before {
  content: attr(data-kicker);
  display: block;
  position: static;
  font: 700 11px/1.4 'Manrope',sans-serif;
  letter-spacing: .18em;
  color: #aa8e58;
  margin-bottom: 24px;
}
#executive-recommendation[data-kicker]::before { position: static; top: auto; }
[id="2-three-complementary-traffic-engines"]::before { grid-column: 1 / -1; color: var(--gold-light) !important; margin-bottom: 0 !important; }

/* Every accompanying figure now sits right of the text and starts at the top. */
.report-body section[data-editorial] {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) minmax(0,.91fr);
  column-gap: 52px;
  align-items: start;
}
.report-body section[data-editorial] > h1,
.report-body section[data-editorial] > h2,
.report-body section[data-editorial]::before { grid-column: 1 / -1; }
.report-body section[data-editorial] > p,
.report-body section[data-editorial] > .table-scroll,
.report-body section[data-editorial] > table { grid-column: 1; }
.report-body section[data-editorial] > .section-visual {
  grid-column: 2;
  grid-row: 3 / span 30;
  align-self: start;
  margin: 0 0 25px;
  min-width: 0;
}
.report-body section.level2[data-editorial] > .section-visual { grid-row: 2 / span 30; }
.report-body .section-visual img { border-radius: 3px; width: 100%; height: auto; }

/* Unnumbered but fully linked source bibliography. */
#reference-sources ul.reference-list { list-style: disc; margin: 16px 0 26px; padding-left: 25px; columns: 2; column-gap: 48px; }
#reference-sources ul.reference-list li { break-inside: avoid; font-size: 14px; line-height: 1.6; padding: 2px 0 2px 4px; margin: 0 0 13px; color: var(--muted); }
#reference-sources ul.reference-list a { color: var(--navy); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 4px; overflow-wrap: anywhere; }
#reference-sources ul.reference-list a:hover { color: #946d34; }
#reference-sources ul.reference-list u { text-decoration: none; }

@media (max-width: 850px) {
  .report-body section[data-editorial] { display: block !important; }
  .report-body section[data-editorial] > .section-visual { margin: 18px 0 28px; }
  #reference-sources ul.reference-list { columns: 1; }
}

/* November 2026 hero: actual family destination illustration, gently mouse-led. */
.hero-inner { grid-template-columns: minmax(0,1fr) minmax(0,1.03fr); gap: 24px; }
.hero-art {
  position: relative;
  width: 56%;
  max-width: 340px;
  height: auto;
  margin: 0 auto;
  opacity: 1;
  transform: translate3d(var(--hero-shift-x,0px),var(--hero-shift-y,0px),0);
  transition: transform .36s ease-out;
  will-change: transform;
}
.hero-illustration { display: block; width: 100%; height: auto; object-fit: contain; }

/* Event copy above the full-width rhythm table. */
.report-body section[data-event-layout] { display: block; }
.report-body .event-feature {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,.91fr);
  align-items: start;
  column-gap: 52px;
  margin: 0 0 38px;
}
.report-body .event-copy > p { margin-bottom: 20px; }
.report-body .event-feature .section-visual { width: 100%; margin: 0; }
.report-body .event-feature .section-visual img { border-radius: 3px; }

@media (max-width: 1100px) {
  .hero-inner { grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); }
  .hero-art { width: 57.5%; }
}
@media (max-width: 850px) {
  .hero-inner { display: flex; flex-direction: column; align-items: stretch; min-height: 0; gap: 18px; padding-bottom: 42px; }
  .hero-art { position: relative; right: auto; bottom: auto; margin: 2px auto 0; width: 50%; max-width: 335px; height: auto; opacity: 1; z-index: 0; }
  .report-body .event-feature { display: block; }
  .report-body .event-feature .section-visual { margin: 28px 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-art { transform: none !important; }
}

/* Clean, text-only hero. Each part of the title occupies exactly one line. */
.hero-type-only .hero-inner {
  min-height: 450px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 90px 18px;
}
.hero-type-only .hero-content {
  max-width: none;
  width: 100%;
  text-align: center;
}
.hero-type-only h1 {
  margin: 0;
  font-size: clamp(23px, 5vw, 74px);
  line-height: 1.22;
  letter-spacing: -.06em;
}
.hero-type-only .hero-title-line { display: block; white-space: nowrap; }
@media (max-width: 850px) {
  .hero-type-only .hero-inner { min-height: 330px; padding: 70px 12px; }
  .hero-type-only h1 { font-size: clamp(22px, 5vw, 48px); }
}
