@import url('./hhn-event-hub.css');
.party-hub { --party-accent:#7052b8; --party-soft:#f2eefb; --party-bright:#d7f083; --party-deep:#211638; --hhn-blue:var(--party-accent); --hhn-ember:var(--party-bright); }
.party-hub[data-party="mickey"] { --party-accent:#b84b12; --party-soft:#fff1e8; --party-bright:#ffb968; --party-deep:#231836; }
.party-hub .hhn-hero { min-height:0; padding-bottom:0; }
.party-hub .hhn-hero__inner { padding-top:6.5rem; padding-bottom:4rem; }
.party-hub .hhn-hero__copy { max-width:50rem; }
.party-hub .hhn-hero h1 { max-width:16ch; font-size:clamp(2.6rem,4.9vw,4.9rem); line-height:1.05; }
.party-hub .hhn-hero__dek { max-width:43rem; font-size:clamp(1rem,1.35vw,1.2rem); line-height:1.7; }
.party-hub .hhn-hero__frame img { object-position:65% 0%; }
.party-hub .hhn-hero__media::after { background:linear-gradient(90deg,rgba(10,15,38,.96),rgba(10,15,38,.74) 48%,rgba(10,15,38,.16)),linear-gradient(0deg,rgba(10,15,38,.8),transparent 35%); }
.party-hub .hhn-hero__media figcaption { font-size:.68rem; max-width:26rem; }
.party-hero-links { display:flex; gap:1.6rem; margin-top:1.7rem; flex-wrap:wrap; }
.party-hero-links a { color:#fff; font-size:.86rem; font-weight:850; text-underline-offset:5px; }
.party-hero-links a:first-child { color:var(--party-bright); }
.party-hub .hhn-pulse__metric { padding:1.5rem; min-height:9.5rem; }
.party-hub .hhn-pulse__metric strong { font-size:1.55rem; }
.party-hub .hhn-pulse__metric--primary strong { font-size:3rem; }
.party-hub .hhn-pulse__metric span { font-size:.77rem; }
/* The wrapper owns page spacing; do not add the article-template inset again. */
.party-hub .hhn-guide-canvas { padding-top:1.5rem; padding-bottom:3rem; }
.party-hub .hhn-main.guide-copy { min-width:0; padding:0; }
.party-hub .hhn-mobile-map { margin:0 0 1.5rem; }
.party-hub .hhn-main > section { scroll-margin-top:7rem; }
.party-hub .hhn-main a { color:#075ca6; }
.party-hub .hhn-main h2 { letter-spacing:-.035em; }
.party-hub .hhn-main p { line-height:1.75; }
.party-hub .hhn-event-calendars { grid-template-columns:repeat(3,minmax(0,1fr)); }
.party-hub .hhn-calendar-day { font-size:.76rem; }
.party-hub .hhn-date-panel { margin-top:0; }
.party-hub .hhn-calendar-legend i { border-radius:3px; }
.party-hub .hhn-calendar-day.is-past { opacity:.63; }
.party-note { font-size:.78rem!important; color:var(--hhn-muted); margin:.8rem 0!important; }
.party-section { margin:2.5rem 0; }
.party-hub .party-section > h2 { margin-top:0; }
.party-hub .hhn-main > .party-section:last-of-type { margin-bottom:1.5rem; }
.party-section > header { margin-bottom:1.4rem; }
.party-section > header h2 { margin:0 0 .5rem; font-size:2rem; }
.party-section > header p { margin:0; max-width:49rem; }
.party-wait-table { width:100%; border-collapse:collapse; font-size:.88rem; }
.party-wait-table th { text-align:left; color:#5b6472; font-size:.7rem; letter-spacing:.04em; text-transform:uppercase; padding:.7rem; background:#eef3f8; }
.party-wait-table td { padding:1rem .7rem; border-bottom:1px solid #d8e0e9; }
.party-wait-table th:not(:first-child),.party-wait-table td:not(:first-child) { text-align:right; white-space:nowrap; }
.party-wait-table a { font-weight:800; text-decoration:none; }
.party-ride-name { font-weight:800; color:var(--hhn-night); }
.party-wait-table td:nth-child(2) { font-weight:850; font-size:1.08rem; }
.party-wait-table td:last-child { color:#657080; font-size:.76rem; }
.party-comparison { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1.5rem; }
.party-comparison > div { border:1px solid #d4dfe8; padding:1.3rem; border-radius:12px; background:white; }
.party-comparison strong { display:block; font-size:1.65rem; color:var(--hhn-night); margin:.3rem 0; }
.party-comparison span { font-size:.8rem; color:#556172; }
.party-itinerary { border-radius:18px; background:#071d3e; color:#fff; padding:2rem; position:relative; overflow:hidden; }
.party-itinerary::before { content:""; position:absolute; width:7rem; height:7rem; right:-2rem; top:-2rem; border:1px solid #ffffff28; border-radius:50%; box-shadow:0 0 0 2.5rem #ffffff08,0 0 0 5rem #ffffff04; pointer-events:none; }
.party-itinerary h2 { color:#fff!important; margin:0; font-size:2rem; }
.party-itinerary .hhn-section-label { color:var(--party-bright); }
.party-itinerary > p { color:#d0d9e7; max-width:43rem; margin:.7rem 0 1.6rem; font-size:.9rem; }
.party-itinerary ol { list-style:none; margin:0; padding:0; }
.party-itinerary li { display:grid; grid-template-columns:5.7rem 1fr; gap:1.3rem; position:relative; padding:0 0 1.7rem; }
.party-itinerary li:last-child { padding-bottom:0; }
.party-itinerary-time { color:var(--party-bright); font-weight:850; font-size:.84rem; padding-top:.2rem; }
.party-itinerary-label { display:block; color:var(--party-bright); font-size:.65rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.35rem; }
.party-hub .party-itinerary a { color:#fff; text-decoration-color:var(--party-bright); text-underline-offset:4px; text-decoration-thickness:1px; }
.party-hub .party-itinerary a:hover { color:var(--party-bright); }
.party-itinerary-ride > div { border-left-color:var(--party-bright); }
.party-itinerary li > div { border-left:1px solid #ffffff35; padding-left:1.8rem; position:relative; }
.party-itinerary li > div::before { content:""; width:9px; height:9px; background:var(--party-bright); border:4px solid #071d3e; border-radius:50%; position:absolute; left:-9px; top:.25rem; }
.party-itinerary h3 { color:white; font-size:1.03rem; margin:0 0 .45rem; }
.party-itinerary li p { font-size:.85rem; color:#c6d3e7; margin:0; line-height:1.7; }
.party-itinerary a { color:var(--party-bright)!important; }
.party-ride { border-radius:18px; overflow:hidden; border:1px solid #d5dfe9; background:#fff; margin:2rem 0; scroll-margin-top:6rem; }
.party-ride > figure { margin:0; position:relative; background:#0b1f42; }
.party-ride > figure img { width:100%; height:auto; object-fit:contain; display:block; }
.party-ride > figure figcaption { position:absolute; right:.8rem; bottom:.7rem; border-radius:4px; background:#071d3edb; color:#fff; font-size:.62rem; padding:.2rem .5rem; }
.party-ride > figure figcaption a { color:white!important; }
.party-ride-copy { padding:1.8rem 2rem 1rem; }
.party-ride-copy .hhn-section-label { color:var(--party-accent); font-size:.73rem; margin:0 0 .4rem; }
.party-ride h3 { font-size:clamp(1.45rem,2.8vw,2.1rem); line-height:1.2; margin:0 0 .8rem; letter-spacing:-.035em; color:var(--hhn-night); }
.party-ride-copy > p { font-size:.95rem; margin:.7rem 0; }
.party-ride-facts { color:#667080; font-size:.75rem!important; }
.party-recommendation { display:grid; grid-template-columns:2.1rem 1fr; gap:.8rem; margin:.7rem 2rem 1.6rem; padding:1.1rem 1.3rem; border-radius:12px; background:var(--party-soft); border:1px solid color-mix(in srgb,var(--party-accent),white 78%); }
.party-recommendation > span { width:2rem; height:2rem; display:grid; place-items:center; border-radius:50%; color:white; background:var(--party-accent); font-size:1.1rem; }
.party-recommendation strong { display:block; color:var(--party-accent); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.4rem; }
.party-recommendation p { font-size:1rem; font-weight:650; margin:0; }
.party-ride-data { padding:0 2rem 1.8rem; }
.party-ride-metrics { display:grid; grid-template-columns:repeat(3,1fr); padding:1rem 0 1.4rem; gap:1rem; border-bottom:1px solid #d8e0e9; }
.party-ride-metrics span { color:#606d7d; display:block; font-size:.74rem; }
.party-ride-metrics strong { display:block; color:var(--hhn-night); font-size:1.65rem; margin:.3rem 0; }
.party-charts { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; padding-top:1.4rem; }
.party-chart { min-width:0; }
.party-chart h4 { font-size:.86rem; margin:0 0 .15rem; color:var(--hhn-night); }
.party-chart p { font-size:.69rem!important; margin:0 0 .6rem; color:#667080; }
.party-chart svg { width:100%; height:auto; display:block; overflow:visible; }
.party-chart .axis { font:11px 'Plus Jakarta Sans',sans-serif; fill:#5d6878; }
.party-chart .grid { stroke:#dce3ed; stroke-width:1; }
.party-chart .curve { fill:none; stroke:var(--party-accent); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.party-chart .area { fill:var(--party-soft); }
.party-chart circle { fill:#fff; stroke:var(--party-accent); stroke-width:2.5; }
.party-empty { padding:2rem 1rem; background:#f3f6fa; font-size:.83rem; color:#596577; border-radius:8px; }
.party-chart-values { font-size:.72rem; color:#566275; margin-top:.5rem; }
.party-chart-values summary { cursor:pointer; min-height:2rem; display:flex; align-items:center; gap:.5rem; }
.party-chart-values summary::before { content:'+'; }
.party-chart-values[open] summary::before { content:'−'; }
.party-chart-values table { width:100%; border-collapse:collapse; }
.party-chart-values th,.party-chart-values td { text-align:left; border-bottom:1px solid #dce3ed; padding:.3rem; }
.party-feature { display:grid; grid-template-columns:1fr 1fr; gap:0; border-radius:16px; overflow:hidden; background:#071d3e; color:white; margin:1.5rem 0; }
.party-feature figure { margin:0; min-width:0; }
.party-feature--text { grid-template-columns:1fr; }
.party-feature figure img { width:100%; height:100%; object-fit:cover; min-height:20rem; }
.party-feature > div { padding:2rem; }
.party-feature h3 { color:white; font-size:1.45rem; line-height:1.3; margin:.4rem 0 1rem; }
.party-feature p { color:#d5dfed; font-size:.9rem; }
.party-feature p:last-child { margin-bottom:0; }
.party-feature .party-feature-label { color:var(--party-bright); font-size:.68rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.party-feature a { color:var(--party-bright)!important; }
.party-feature figcaption { padding:.4rem .8rem; font-size:.6rem; background:#071d3e; }
.party-extras { display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; }
.party-extra { padding:1.4rem; border:1px solid #d4dfeb; border-radius:13px; background:white; }
.party-extra h3 { color:var(--hhn-night); margin:0 0 .6rem; font-size:1.06rem; }
.party-extra p { font-size:.88rem; margin:0; }
.party-hub .photo-grid { margin:1.3rem 0; }
.party-hub .photo-grid figcaption { font-size:.76rem; line-height:1.6; }
.party-hub .photo-grid img { max-height:25rem; background:#eaf0f6; }
.party-more { border-top:1px solid #d3dfe9; border-bottom:1px solid #d3dfe9; margin:1.5rem 0; padding:.9rem 0; }
.party-more > summary { color:var(--hhn-night); font-weight:850; cursor:pointer; min-height:2rem; }
.party-faq details { border-top:1px solid #d3dfe9; padding:1rem 0; }
.party-faq summary { font-size:1rem; font-weight:800; cursor:pointer; color:var(--hhn-night); }
.party-faq p { font-size:.9rem; }
.party-footer { padding:2rem; background:#071d3e; color:white; text-align:center; font-size:.8rem; }
.party-footer a { color:#ffce73; margin:0 .6rem; }
.party-hub :focus-visible { outline:3px solid #0780c5; outline-offset:4px; }
@media(max-width:1050px) { .party-charts{grid-template-columns:1fr} .party-hub .hhn-hero__inner{padding-top:5.5rem} }
@media(max-width:820px) {
  .party-hub .hhn-pulse__metric--primary,.party-hub .hhn-pulse__metric:last-child{grid-column:auto}
}
@media(max-width:720px) {
  .party-hub .hhn-hero__inner{padding:5.5rem 1.2rem 4rem}.party-hub .hhn-hero h1{font-size:2.55rem}.party-hub .hhn-hero__media::after{background:linear-gradient(90deg,#080f27ed,#080f27a8)}
  .party-hub .hhn-hero__dek{font-size:.95rem}.party-hub .hhn-pulse__inner{grid-template-columns:1fr 1fr}.party-hub .hhn-pulse__metric{min-height:8rem;padding:1rem}.party-hub .hhn-pulse__metric strong{font-size:1.22rem}.party-hub .hhn-pulse__metric--primary strong{font-size:2.4rem}
  .party-hub .hhn-event-calendars{grid-template-columns:1fr}.party-hub .hhn-event-month{max-width:22rem;width:100%;margin:auto}.party-hub .hhn-calendar-day{font-size:.85rem;aspect-ratio:1.25}
  .party-hub .hhn-main{min-width:0}.party-hub .hhn-date-panel{padding:1.3rem}.party-section{margin:2rem 0}.party-section > header h2{font-size:1.65rem}
  .party-wait-table th,.party-wait-table td{padding:.8rem .3rem}.party-wait-table th{font-size:.59rem}.party-wait-table td:first-child{font-size:.8rem;max-width:42%;}.party-wait-table td:nth-child(2){font-size:.98rem}.party-wait-table td:last-child{white-space:normal;max-width:5.7rem;font-size:.68rem}
  .party-itinerary{padding:1.5rem 1rem}.party-itinerary h2{font-size:1.65rem}.party-itinerary li{grid-template-columns:4.7rem 1fr;gap:.4rem}.party-itinerary li > div{padding-left:1rem}.party-itinerary-time{font-size:.72rem}
  .party-ride-copy{padding:1.3rem 1.1rem .5rem}.party-ride > figure img{aspect-ratio:1.6}.party-recommendation{margin:.8rem 1.1rem 1rem;padding:1rem;grid-template-columns:1fr}.party-recommendation > span{display:none}.party-recommendation p{font-size:.94rem}.party-ride-data{padding:0 1.1rem 1.3rem}.party-ride-metrics{gap:.6rem}.party-ride-metrics strong{font-size:1.2rem}.party-ride-metrics span{font-size:.65rem}
  .party-feature,.party-extras{grid-template-columns:1fr}.party-feature figure img{min-height:0;height:auto;max-height:26rem;object-fit:contain}.party-feature > div{padding:1.4rem}.party-comparison{gap:.7rem}.party-comparison > div{padding:1rem}
}
@media(prefers-reduced-motion:reduce) { .party-hub * { scroll-behavior:auto!important; transition:none!important; } }
