:root {
  --navy: #0c345c;
  --blue: #5c8cb4;
  --pale: #e8f4fd;
  --ink: #17324d;
  --muted: #587087;
  --white: #fff;
  --line: #c6dfef;
  --page-gutter: max(24px, calc((100% - 1120px) / 2));
}

* { box-sizing: border-box; }
html { overflow-x: hidden; -webkit-text-size-adjust: 100%; }
body { margin: 0; overflow-x: hidden; color: var(--ink); font: 16px/1.6 Georgia, serif; }
img { display: block; max-width: 100%; }
.site-header, main > section, footer { padding-left: var(--page-gutter); padding-right: var(--page-gutter); }

.site-header {
  position: relative;
  z-index: 10;
  min-height: 76px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  border-bottom: 1px solid var(--line);
  background: #fff;
  font-family: Arial, sans-serif;
}
.brand { flex: 0 0 auto; color: var(--navy); font-size: 1.13rem; font-weight: 800; text-decoration: none; }
.brand span { color: var(--blue); }
nav { display: flex; align-items: center; justify-content: flex-end; gap: 14px; }
nav a, footer a { color: var(--navy); font-size: .9rem; font-weight: 700; text-decoration: none; }
nav a:hover, nav a:focus-visible, footer a:hover, footer a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
nav a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--blue); text-decoration-thickness: 3px; text-underline-offset: 7px; }
.nav-cta, .button { border-radius: 7px; background: var(--navy); color: #fff !important; padding: 12px 18px; }
.nav-cta:hover, .nav-cta:focus-visible { text-decoration: none; background: var(--blue); }
.nav-toggle, .nav-backdrop, .mobile-nav-intro { display: none; }

.nav-dropdown { position: relative; flex: 0 0 auto; }
.nav-dropdown summary { display: flex; align-items: center; gap: 6px; min-height: 42px; color: var(--navy); font-size: .9rem; font-weight: 700; cursor: pointer; list-style: none; }
.nav-dropdown summary::-webkit-details-marker { display: none; }
.nav-dropdown summary::after { content: ""; width: 7px; height: 7px; margin-top: -4px; border-right: 2px solid var(--blue); border-bottom: 2px solid var(--blue); transform: rotate(45deg); transition: transform .18s ease; }
.nav-dropdown[open] summary::after { margin-top: 3px; transform: rotate(225deg); }
.nav-dropdown summary:hover, .nav-dropdown summary:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.nav-dropdown summary:focus-visible { outline: 3px solid var(--line); outline-offset: 4px; border-radius: 3px; }
.dropdown-menu { position: absolute; top: calc(100% + 10px); left: 50%; z-index: 30; display: none; width: 310px; padding: 10px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 20px 48px rgba(12,52,92,.2); transform: translateX(-50%); }
.nav-dropdown[open] .dropdown-menu { display: grid; }
.dropdown-menu::before { content: ""; position: absolute; top: -7px; left: calc(50% - 7px); width: 12px; height: 12px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); background: #fff; transform: rotate(45deg); }
.dropdown-menu a { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 42px; padding: 9px 11px; border-radius: 8px; font-size: .86rem; }
.dropdown-menu a:hover, .dropdown-menu a:focus-visible { color: #fff; background: var(--navy); text-decoration: none; }
.dropdown-menu .dropdown-brand { display: block; margin-bottom: 6px; padding: 14px; border-bottom: 1px solid var(--line); border-radius: 9px; color: var(--navy); background: var(--pale); text-align: center; }
.dropdown-menu .dropdown-brand:hover, .dropdown-menu .dropdown-brand:focus-visible { color: var(--navy); background: #d8ebf8; }
.dropdown-brand small { display: block; margin-top: 3px; color: var(--muted); font: 600 .68rem Arial, sans-serif; letter-spacing: .04em; }
.brand-logo { display: block; object-fit: contain; }
.dropdown-brand .brand-logo { margin: 0 auto; }
.dropdown-brand .brand-logo-sandals { width: 150px; height: 44px; }
.dropdown-brand .brand-logo-beaches { width: 168px; height: 68px; border-radius: 7px; object-fit: cover; object-position: center; }
.partner-wordmark { display: inline-block; font: italic 800 1.75rem/1 Georgia, serif; letter-spacing: -.05em; }
.partner-wordmark sup { position: relative; top: -.4em; margin-left: 2px; font: 700 .42em Arial, sans-serif; letter-spacing: 0; }
.partner-wordmark-sandals { color: #17374d; }
.partner-wordmark-beaches { color: #057a9c; }
.external-mark { color: var(--blue); font-size: .78em; }
.shop-nav-link { padding: 8px 11px; border-radius: 7px; background: var(--pale); }
.shop-nav-link:hover, .shop-nav-link:focus-visible { background: #d8ebf8; text-decoration: none; }
.nav-group > summary { min-height: 40px; padding: 0 13px; border: 1px solid transparent; border-radius: 999px; }
.nav-group-about-services > summary { background: #f3f7fa; }
.nav-group-suppliers > summary { background: #edf8f8; }
.nav-group-extras > summary { background: #fff1f8; }
.nav-group > summary:hover, .nav-group > summary:focus-visible, .nav-group[open] > summary { border-color: var(--line); text-decoration: none; }
.nav-group-current > summary { box-shadow: inset 0 -3px 0 var(--blue); }
.nav-group-menu { width: 340px; padding: 8px; }
.nav-group-heading { margin: 0 4px 6px; padding: 8px 9px 10px; border-bottom: 1px solid var(--line); color: var(--blue); font: 800 .67rem/1.2 Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.nav-group-menu a { align-items: flex-start; padding: 10px 11px; }
.nav-group-menu a[aria-current="page"] { background: var(--pale); box-shadow: inset 3px 0 0 var(--blue); }
.nav-group-copy { display: grid; gap: 2px; }
.nav-group-copy strong { color: var(--navy); font-size: .88rem; }
.nav-group-copy small { color: var(--muted); font: 500 .72rem/1.35 Arial, sans-serif; }
.nav-link-mark { flex: 0 0 auto; color: var(--blue); font-size: .9rem; }
.nav-group-menu a:hover .nav-group-copy strong, .nav-group-menu a:focus-visible .nav-group-copy strong,
.nav-group-menu a:hover .nav-group-copy small, .nav-group-menu a:focus-visible .nav-group-copy small,
.nav-group-menu a:hover .nav-link-mark, .nav-group-menu a:focus-visible .nav-link-mark { color: #fff; }

.home-hero {
  position: relative;
  isolation: isolate;
  min-height: 650px;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding-top: 82px;
  padding-bottom: 82px;
  background: var(--navy);
}
.home-hero > div:first-child {
  position: relative;
  z-index: 2;
  width: min(720px, calc(100% - 48px));
  padding: clamp(30px, 5vw, 56px);
  border-radius: 16px;
  background: linear-gradient(115deg, rgba(5,34,61,.96), rgba(5,34,61,.80));
  box-shadow: 0 20px 55px rgba(0,0,0,.22);
}
.kicker { margin: 0 0 12px; color: var(--blue); font: 700 .76rem/1.2 Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
h1, h2, h3 { color: var(--navy); font-family: Arial, sans-serif; line-height: 1.14; }
h1 { max-width: 760px; margin: 0; font-size: clamp(2.6rem, 5vw, 4.65rem); letter-spacing: -.045em; }
h2 { margin: 0 0 26px; font-size: clamp(2rem, 3.5vw, 3rem); letter-spacing: -.035em; }
.home-hero .kicker { color: #b6d9f3; }
.home-hero h1 { color: #fff; }
.hero-copy { max-width: 650px; margin: 24px 0; color: #eef8ff; font-size: 1.2rem; }
.actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 26px; }
.button { display: inline-block; border: 0; cursor: pointer; font: 700 .95rem Arial, sans-serif; text-decoration: none; }
.button:hover, .button:focus-visible { background: var(--blue); }
.home-hero .button { background: #fff; color: var(--navy) !important; }
.home-hero .button:hover, .home-hero .button:focus-visible { background: #d9edfb; }
.text-link { color: var(--navy); font: 700 .95rem Arial, sans-serif; }
.home-hero .text-link { color: #fff; }
.microcopy { margin-bottom: 0; color: #eef8ff; font-size: .85rem; }

.travel-slideshow { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: var(--navy); }
.slide { position: absolute; inset: 0; opacity: 0; transition: opacity .7s ease; }
.slide.active { opacity: 1; }
.slide-media, .slide-backdrop { position: absolute; width: 100%; height: 100%; }
.slide-media { inset: 0; z-index: 1; object-fit: cover; }
.slide-backdrop { inset: -8%; width: 116%; height: 116%; object-fit: cover; filter: blur(24px) saturate(.9) brightness(.7); transform: scale(1.04); }
.slide-portrait .slide-media { object-fit: contain; filter: drop-shadow(0 8px 18px rgba(3,23,43,.38)); }
.slide::after { content: ""; position: absolute; inset: 0; z-index: 2; background: linear-gradient(90deg, rgba(3,23,43,.72), rgba(3,23,43,.28) 54%, rgba(3,23,43,.12)); }
.slide p { display: none !important; }
.slide-controls { position: absolute; z-index: 4; right: 18px; bottom: 18px; display: flex; align-items: center; gap: 8px; }
.slide-button, .slide-dots button, .pause-slideshow { border: 0; color: #fff; background: rgba(12,52,92,.88); cursor: pointer; }
.slide-button { width: 38px; height: 38px; border-radius: 50%; font-size: 1.65rem; line-height: 1; }
.slide-dots { display: flex; gap: 7px; }
.slide-dots button { width: 11px; height: 11px; padding: 0; border: 1px solid #fff; border-radius: 50%; }
.slide-dots button.active { background: #fff; }
.pause-slideshow { position: absolute; z-index: 4; top: 14px; right: 14px; border-radius: 5px; padding: 8px 10px; font: 700 .72rem Arial, sans-serif; }
.slide-button:focus-visible, .slide-dots button:focus-visible, .pause-slideshow:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

.section { padding-top: 94px; padding-bottom: 94px; }
.intro { text-align: center; }
.intro > p:not(.kicker) { max-width: 780px; margin-left: auto; margin-right: auto; }
.feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 42px; text-align: left; }
.feature-grid article { min-width: 0; padding: 28px; border: 1px solid var(--line); border-radius: 12px; }
.feature-grid h3 { margin: 12px 0 8px; }
.feature-grid p { margin: 0; color: var(--muted); }
.icon { color: var(--blue); font: 1.8rem Arial, sans-serif; }
.services-band { background: var(--navy); color: #fff; }
.services-band h2, .services-band .kicker { color: #fff; }
.service-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 38px 0; }
.service-list a { min-width: 0; padding: 20px; border: 1px solid rgba(255,255,255,.34); border-radius: 10px; color: #fff; text-decoration: none; }
.service-list a:hover, .service-list a:focus-visible { border-color: #fff; background: rgba(255,255,255,.08); }
.service-list span { display: block; margin-top: 5px; color: #d6eaf8; font-size: .92rem; }
.button-light { background: #fff; color: var(--navy) !important; }
.process { text-align: center; }
.process ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin: 42px 0 0; padding: 0; list-style: none; text-align: left; }
.process li { min-width: 0; }
.process li span { color: var(--blue); font: 800 1rem Arial, sans-serif; }
.process h3 { margin: 9px 0; }
.process p { margin: 0; color: var(--muted); }
.final-cta { padding-top: 88px; padding-bottom: 94px; text-align: center; background: var(--pale); }
.final-cta > p:not(.kicker) { max-width: 620px; margin: -8px auto 28px; color: var(--muted); }
.services-hero { background: linear-gradient(135deg, #e8f4fd, #fff 62%, #dceef8); }
.inline-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 24px; margin-top: 28px; }

.shop-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); align-items: center; gap: clamp(36px, 7vw, 88px); min-height: 610px; padding-top: 82px; padding-bottom: 82px; background: radial-gradient(circle at 88% 15%, rgba(92,140,180,.2), transparent 26%), linear-gradient(125deg, #f8fcff, var(--pale)); }
.shop-hero-copy { max-width: 720px; }
.shop-hero .hero-copy { color: var(--muted); }
.shop-provider-note { color: var(--muted); font: 700 .82rem/1.4 Arial, sans-serif; }
.shop-hero-card { position: relative; isolation: isolate; min-height: 390px; display: flex; align-items: center; justify-content: center; flex-direction: column; overflow: hidden; padding: 38px; border-radius: 24px; color: #fff; background: linear-gradient(145deg, #082b4e, var(--navy) 55%, #316d9c); box-shadow: 0 28px 70px rgba(12,52,92,.25); text-align: center; }
.shop-hero-card::before, .shop-hero-card::after { content: ""; position: absolute; z-index: -1; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; }
.shop-hero-card::before { top: -100px; right: -95px; width: 280px; height: 280px; }
.shop-hero-card::after { bottom: -135px; left: -105px; width: 330px; height: 330px; }
.shop-monogram { display: flex; flex-direction: column; color: #fff; font: 800 clamp(2.4rem, 5vw, 4.25rem)/.82 Arial, sans-serif; letter-spacing: -.07em; text-transform: uppercase; }
.shop-monogram span:nth-child(2) { color: #b6d9f3; }
.shop-monogram small { margin-top: 14px; color: #fff; font-size: .28em; letter-spacing: .38em; }
.shop-hero-card p { margin: 30px 0 0; font: 800 .72rem Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.shop-card-rule { width: 54px; height: 2px; margin: 18px 0; background: #b6d9f3; }
.shop-hero-card > span { color: #dceefb; font-size: .92rem; }
.shop-details { background: #fff; }
.shop-feature-grid { text-align: left; }
.shop-feature-grid article { background: #fbfdff; }
.shop-step { color: var(--blue); font: 800 1rem Arial, sans-serif; }
.shop-cta { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding-top: 68px; padding-bottom: 68px; color: #fff; background: var(--navy); }
.shop-cta .kicker, .shop-cta h2 { color: #fff; }
.shop-cta h2 { margin-bottom: 10px; }
.shop-cta p:last-child { margin-bottom: 0; color: #d6eaf8; }
.shop-cta .button { flex: 0 0 auto; }
footer { display: flex; justify-content: space-between; gap: 20px; padding-top: 25px; padding-bottom: 25px; color: var(--muted); font: .85rem Arial, sans-serif; }
footer p { margin: 0; }
.site-footer { align-items: flex-start; padding-top: 38px; padding-bottom: 38px; background: #f7fafc; }
.footer-business { max-width: 570px; }
.footer-business strong { display: block; margin-bottom: 5px; color: var(--navy); font-size: 1rem; }
.footer-business address { margin-top: 8px; font-style: normal; line-height: 1.65; }
.footer-business a, .footer-links a { color: var(--navy); }
.footer-links { max-width: 460px; justify-content: flex-end; }

.page-carousel-section { display: grid; grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr); align-items: center; gap: clamp(30px, 6vw, 72px); padding-top: 72px; padding-bottom: 72px; background: #f7fbfe; }
.page-carousel-heading h2 { margin-bottom: 0; font-size: clamp(1.8rem, 3vw, 2.7rem); }
.page-carousel { position: relative; inset: auto; min-height: 410px; border-radius: 18px; background: var(--navy); box-shadow: 0 24px 60px rgba(12,52,92,.18); }
.page-carousel .slide::after { background: linear-gradient(180deg, transparent 55%, rgba(3,23,43,.42)); }
.page-carousel .pause-slideshow { background: rgba(255,255,255,.9); color: var(--navy); }
.page-carousel .pause-slideshow:focus-visible { outline-color: var(--navy); }

.partners-hero { min-height: 530px; display: flex; align-items: center; padding-top: 82px; padding-bottom: 82px; color: #fff; background: radial-gradient(circle at 86% 20%, rgba(112,200,220,.5), transparent 28%), linear-gradient(125deg, #092d51, #155d7b 58%, #46a0af); }
.partners-hero > div { max-width: 760px; }
.partners-hero .kicker, .partners-hero h1 { color: #fff; }
.partners-hero p:not(.kicker) { max-width: 650px; margin: 24px 0 30px; color: #eaf8fb; font-size: 1.17rem; }
.partners-hero .button { background: #fff; color: var(--navy) !important; }
.partner-section { background: #fff; }
.section-heading { max-width: 780px; margin-bottom: 42px; }
.section-heading > p:last-child { color: var(--muted); font-size: 1.06rem; }
.partner-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.partner-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 16px 42px rgba(12,52,92,.1); }
.partner-card-top { min-height: 190px; padding: 34px; }
.sandals-card .partner-card-top { background: linear-gradient(135deg, #e9f4f5, #fff); }
.beaches-card .partner-card-top { background: linear-gradient(135deg, #e5f8fb, #fff1ce); }
.partner-card-top .brand-logo-sandals { width: min(230px, 70%); height: 66px; }
.partner-card-top .brand-logo-beaches { width: 220px; height: 92px; border-radius: 9px; object-fit: cover; object-position: center; }
.partner-card-top p { max-width: 470px; margin: 20px 0 0; color: var(--muted); }
.partner-links { margin: 0; padding: 10px 22px 24px; list-style: none; }
.partner-links li + li { border-top: 1px solid var(--line); }
.partner-links a { display: flex; justify-content: space-between; gap: 18px; padding: 14px 10px; color: var(--navy); font: 700 .92rem Arial, sans-serif; text-decoration: none; }
.partner-links a:hover, .partner-links a:focus-visible { color: #087493; }
.disney-card { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: clamp(28px, 5vw, 50px); color: #fff; background: radial-gradient(circle at 80% 20%, rgba(255,255,255,.18), transparent 25%), linear-gradient(120deg, #132c61, #4b4f9f 58%, #9a5d98); }
.disney-card .partner-card-top { min-height: 0; max-width: 650px; padding: 0; }
.disney-card h3 { margin: 5px 0 12px; color: #fff; font-size: clamp(1.8rem, 3vw, 2.7rem); }
.disney-card .partner-card-top p { margin-top: 0; color: #f2efff; }
.disney-card-label { font: 800 .76rem Arial, sans-serif !important; letter-spacing: .14em; text-transform: uppercase; }
.disney-button { flex: 0 0 auto; background: #fff; color: #27366f !important; }

@media (max-width: 1190px) {
  :root { --page-gutter: 24px; }
  .site-header { flex-wrap: wrap; padding-top: 16px; padding-bottom: 16px; }
  .site-header nav { width: 100%; justify-content: space-between; }
  .site-header:not(.nav-ready) nav { flex-wrap: wrap; }
  .site-header.nav-ready { z-index: 60; min-height: 68px; flex-wrap: nowrap; gap: 16px; padding-top: 0; padding-bottom: 0; }
  .site-header.nav-ready .brand { position: relative; z-index: 64; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .site-header.nav-ready .nav-toggle { position: relative; z-index: 64; flex: 0 0 auto; min-width: 92px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 9px 13px; border: 1px solid var(--line); border-radius: 999px; color: var(--navy); background: #fff; cursor: pointer; font: 800 .82rem Arial, sans-serif; }
  .site-header.nav-ready .nav-toggle:hover, .site-header.nav-ready .nav-toggle:focus-visible { border-color: var(--blue); background: var(--pale); }
  .site-header.nav-ready .nav-toggle:focus-visible { outline: 3px solid rgba(92,140,180,.35); outline-offset: 2px; }
  .nav-toggle-icon { position: relative; width: 18px; height: 14px; display: block; }
  .nav-toggle-icon span { position: absolute; left: 0; width: 18px; height: 2px; border-radius: 2px; background: currentColor; transition: top .18s ease, transform .18s ease, opacity .18s ease; }
  .nav-toggle-icon span:nth-child(1) { top: 0; }
  .nav-toggle-icon span:nth-child(2) { top: 6px; }
  .nav-toggle-icon span:nth-child(3) { top: 12px; }
  .site-header.nav-open .nav-toggle-icon span:nth-child(1) { top: 6px; transform: rotate(45deg); }
  .site-header.nav-open .nav-toggle-icon span:nth-child(2) { opacity: 0; }
  .site-header.nav-open .nav-toggle-icon span:nth-child(3) { top: 6px; transform: rotate(-45deg); }
  .site-header.nav-ready .nav-backdrop { position: fixed; inset: 0; z-index: 61; display: block; background: rgba(5,31,52,.48); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .22s ease, visibility 0s linear .22s; }
  .site-header.nav-ready.nav-open .nav-backdrop { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity .22s ease, visibility 0s; }
  .site-header.nav-ready nav { position: fixed; inset: 0 0 0 auto; z-index: 62; width: min(88vw, 380px); height: 100vh; height: 100dvh; display: flex; align-items: stretch; justify-content: flex-start; flex-direction: column; gap: 0; overflow-y: auto; overscroll-behavior: contain; padding: 78px 24px 28px; background: #fff; box-shadow: -20px 0 54px rgba(5,31,52,.24); transform: translateX(104%); visibility: hidden; pointer-events: none; transition: transform .24s ease, visibility 0s linear .24s; }
  .site-header.nav-ready.nav-open nav { transform: translateX(0); visibility: visible; pointer-events: auto; transition: transform .24s ease, visibility 0s; }
  .site-header.nav-ready nav .mobile-nav-intro { display: block; margin: 0 0 12px; padding-bottom: 14px; border-bottom: 1px solid var(--line); color: var(--blue); font: 800 .72rem/1.2 Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
  .site-header.nav-ready nav > a, .site-header.nav-ready .nav-dropdown > summary { width: 100%; min-height: 50px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 4px; border: 0; border-bottom: 1px solid #dfecf4; border-radius: 0; background: transparent; text-align: left; }
  .site-header.nav-ready nav > a:hover, .site-header.nav-ready nav > a:focus-visible, .site-header.nav-ready .nav-dropdown > summary:hover, .site-header.nav-ready .nav-dropdown > summary:focus-visible { color: var(--navy); background: var(--pale); text-decoration: none; }
  .site-header.nav-ready nav > a[aria-current="page"] { background: linear-gradient(90deg, var(--pale), transparent); text-decoration: none; box-shadow: inset 4px 0 0 var(--blue); }
  .site-header.nav-ready .nav-dropdown { width: 100%; flex: 0 0 auto; }
  .site-header.nav-ready .nav-dropdown summary::after { margin-right: 7px; }
  .site-header.nav-ready .dropdown-menu { position: static; width: 100%; padding: 8px; border: 0; border-radius: 10px; background: #f5faff; box-shadow: none; transform: none; }
  .site-header.nav-ready .dropdown-menu::before { display: none; }
  .site-header.nav-ready .dropdown-menu a { min-height: 44px; padding: 9px 10px; border: 0; text-align: left; }
  .site-header.nav-ready nav .shop-nav-link { padding-right: 10px; padding-left: 10px; background: #f2f8fc; }
  .site-header.nav-ready .nav-group > summary { min-height: 52px; margin-top: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; }
  .site-header.nav-ready .nav-group-about-services > summary { background: #f3f7fa; }
  .site-header.nav-ready .nav-group-suppliers > summary { background: #edf8f8; }
  .site-header.nav-ready .nav-group-extras > summary { background: #fff1f8; }
  .site-header.nav-ready .nav-group-current > summary { box-shadow: inset 4px 0 0 var(--blue); }
  .site-header.nav-ready .nav-group-menu { margin-top: 5px; padding: 5px 7px 9px; background: #fff; }
  .site-header.nav-ready .nav-group-heading { margin-top: 2px; }
  .site-header.nav-ready .nav-group-menu a { min-height: 54px; padding: 10px 11px; }
  .site-header.nav-ready .nav-cta { min-height: 48px; justify-content: center; margin-top: 18px; padding: 12px 18px; border: 0; border-radius: 8px; color: #fff; background: var(--navy); text-align: center; }
  body.nav-menu-open { overflow: hidden; }
  .home-hero { min-height: 620px; padding-top: 58px; padding-bottom: 58px; }
  .home-hero > div:first-child { width: min(680px, 100%); }
  h1 { font-size: clamp(2.45rem, 8vw, 4rem); }
  .page-carousel-section { grid-template-columns: 1fr; }
  .page-carousel-heading { max-width: 720px; }
  .partner-grid { grid-template-columns: 1fr; }
  .disney-card { grid-column: auto; align-items: flex-start; flex-direction: column; }
  .shop-hero { grid-template-columns: 1fr; min-height: 0; }
  .shop-hero-card { min-height: 340px; }
  .shop-cta { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 600px) {
  :root { --page-gutter: 16px; }
  .site-header:not(.nav-ready) { gap: 14px; }
  .site-header:not(.nav-ready) .brand { width: 100%; text-align: center; }
  .site-header:not(.nav-ready) nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .site-header:not(.nav-ready) nav a { display: flex; min-height: 44px; align-items: center; justify-content: center; padding: 8px; border: 1px solid var(--line); border-radius: 7px; text-align: center; }
  .site-header:not(.nav-ready) nav .dropdown-menu a { min-height: 42px; justify-content: space-between; padding: 9px 11px; border: 0; text-align: left; }
  .site-header:not(.nav-ready) nav .dropdown-brand { display: block; text-align: center; }
  .site-header:not(.nav-ready) .nav-dropdown summary { min-height: 44px; justify-content: center; padding: 8px; border: 1px solid var(--line); border-radius: 7px; text-align: center; }
  .site-header:not(.nav-ready) .nav-dropdown-sandals .dropdown-menu { left: 0; transform: none; }
  .site-header:not(.nav-ready) .nav-dropdown-beaches .dropdown-menu { right: 0; left: auto; transform: none; }
  .site-header:not(.nav-ready) .dropdown-menu::before { display: none; }
  .site-header:not(.nav-ready) .nav-cta { border-color: var(--navy); }
  .site-header:not(.nav-ready) nav .shop-nav-link { background: var(--pale); }
  .site-header.nav-ready { gap: 10px; }
  .site-header.nav-ready .brand { width: auto; font-size: clamp(.93rem, 4.25vw, 1.05rem); text-align: left; }
  .site-header.nav-ready nav { width: min(90vw, 360px); padding-right: 20px; padding-left: 20px; }
  .home-hero { min-height: 590px; padding-top: 36px; padding-bottom: 70px; }
  .home-hero > div:first-child { width: 100%; padding: 26px 22px; border-radius: 12px; }
  h1 { font-size: clamp(2.15rem, 10vw, 2.65rem); }
  h2 { font-size: clamp(1.85rem, 9vw, 2.5rem); }
  .hero-copy { margin: 20px 0; font-size: 1.04rem; }
  .actions { align-items: stretch; flex-direction: column; gap: 14px; }
  .actions .button { width: 100%; text-align: center; }
  .text-link { text-align: center; }
  .microcopy { text-align: center; }
  .slide::after { background: rgba(3,23,43,.48); }
  .pause-slideshow { top: 10px; right: 10px; }
  .slide-controls { right: 12px; bottom: 14px; }
  .section { padding-top: 64px; padding-bottom: 64px; }
  .feature-grid, .service-list, .process ol { grid-template-columns: 1fr; }
  .feature-grid { gap: 14px; margin-top: 30px; }
  .feature-grid article { padding: 22px; }
  .service-list { margin: 28px 0; }
  .process ol { gap: 24px; margin-top: 30px; }
  .final-cta { padding-top: 64px; padding-bottom: 68px; }
  .page-carousel-section { gap: 26px; padding-top: 52px; padding-bottom: 56px; }
  .page-carousel { min-height: 330px; border-radius: 13px; }
  .partners-hero { min-height: 470px; padding-top: 62px; padding-bottom: 64px; }
  .partner-card-top { min-height: 0; padding: 27px 24px; }
  .partner-card-top .brand-logo-sandals { width: min(210px, 76%); }
  .partner-card-top .brand-logo-beaches { width: 190px; height: 82px; }
  .partner-links { padding-right: 14px; padding-left: 14px; }
  .disney-card { gap: 26px; }
  .disney-button { width: 100%; text-align: center; }
  .shop-hero { gap: 30px; padding-top: 48px; padding-bottom: 54px; }
  .shop-hero-card { min-height: 300px; padding: 28px 22px; border-radius: 16px; }
  .shop-provider-note { width: 100%; text-align: center; }
  .shop-cta { padding-top: 54px; padding-bottom: 58px; }
  .shop-cta .button { width: 100%; text-align: center; }
  .inline-actions { align-items: stretch; flex-direction: column; }
  .inline-actions .button, .inline-actions .text-link { text-align: center; }
  footer { align-items: flex-start; flex-direction: column; }
}

/* Journey Atlas */
.atlas-home-section { background: linear-gradient(180deg, #f8fcff, #e8f4fd); }
.atlas-home-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 32px; }
.atlas-home-heading > div:first-child { max-width: 720px; }
.atlas-home-heading > div:first-child > p:last-child { margin-bottom: 0; color: var(--muted); font-size: 1.06rem; }
.atlas-home-stats, .atlas-summary { display: flex; gap: clamp(18px, 4vw, 42px); margin: 0; font-family: Arial, sans-serif; }
.atlas-home-stats div, .atlas-summary div { text-align: center; }
.atlas-home-stats dt, .atlas-summary dt { color: var(--navy); font-size: clamp(1.45rem, 3vw, 2.2rem); font-weight: 800; line-height: 1; }
.atlas-home-stats dd, .atlas-summary dd { margin: 7px 0 0; color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.journey-atlas-map { position: relative; overflow: hidden; background-color: #142433; background-image: radial-gradient(ellipse at 22% 30%, rgba(196,181,145,.13) 0 9%, transparent 9.5%), radial-gradient(ellipse at 66% 48%, rgba(213,202,172,.1) 0 14%, transparent 14.5%), repeating-radial-gradient(ellipse at 52% 45%, transparent 0 20px, rgba(226,208,161,.09) 21px, transparent 22px); }
.journey-atlas-map-preview { min-height: 430px; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 24px 60px rgba(12,52,92,.18); }
.journey-atlas-map-full { height: min(690px, 72vh); min-height: 480px; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 24px 60px rgba(12,52,92,.18); }
.atlas-map-canvas { position: absolute; inset: 0; }
.atlas-map-loading { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; padding: 30px; color: #f4e8c9; background: rgba(20,36,51,.86); font: 800 .82rem Arial, sans-serif; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.atlas-map-unavailable .atlas-map-loading { background: transparent; }
.atlas-map-legend { position: absolute; left: 16px; bottom: 16px; z-index: 4; display: flex; flex-wrap: wrap; gap: 8px 14px; padding: 9px 12px; border: 1px solid rgba(12,52,92,.14); border-radius: 999px; color: var(--navy); background: rgba(255,253,245,.94); box-shadow: 0 8px 22px rgba(12,52,92,.14); font: 700 .7rem/1.2 Arial,sans-serif; }
.atlas-map-legend span { display: inline-flex; align-items: center; gap: 6px; }
.atlas-legend-dot { display: inline-block; width: 9px; height: 9px; border: 2px solid #fffdf5; border-radius: 50%; box-shadow: 0 0 0 1px rgba(12,52,92,.18); }
.atlas-legend-historical { background: #c72436; }
.atlas-legend-upcoming { width: 12px; height: 12px; background: #e4a62e; box-shadow: 0 0 0 3px rgba(228,166,46,.24); }
.atlas-preview-link { position: absolute; right: 18px; bottom: 18px; z-index: 4; padding: 12px 17px; border-radius: 999px; color: #fff; background: rgba(12,52,92,.94); box-shadow: 0 9px 24px rgba(12,52,92,.25); font: 700 .82rem Arial, sans-serif; text-decoration: none; }
.atlas-preview-link:hover, .atlas-preview-link:focus-visible { background: var(--blue); }
.atlas-page { background: #f8fcff; }
.atlas-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 56px; padding-top: 78px; padding-bottom: 62px; background: radial-gradient(circle at 88% 10%, rgba(92,140,180,.2), transparent 23%), linear-gradient(135deg, #e8f4fd, #fff); }
.atlas-hero > div { max-width: 800px; }
.atlas-hero h1 { max-width: 780px; margin-bottom: 20px; font-size: clamp(2.35rem, 5vw, 4.9rem); }
.atlas-hero > div > p:last-child { max-width: 720px; color: var(--muted); font-size: 1.12rem; }
.atlas-explorer { padding-top: 56px; padding-bottom: 74px; }
.atlas-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 24px; }
.atlas-toolbar h2 { margin: 0; }
.atlas-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.atlas-filters label { display: grid; gap: 5px; color: var(--muted); font: 700 .66rem Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.atlas-filters select { min-width: 132px; min-height: 42px; padding: 8px 34px 8px 11px; border: 1px solid var(--line); border-radius: 8px; color: var(--navy); background: #fff; font: 700 .82rem Arial, sans-serif; }
.atlas-live-summary { margin: 15px 2px 0; color: var(--muted); font: 700 .8rem Arial, sans-serif; }
.atlas-popup-card { display: grid; gap: 4px; min-width: 175px; color: #fff; font-family: Arial, sans-serif; }
.atlas-popup-card strong { font-size: .92rem; }
.atlas-popup-card span { color: #dceefa; font-size: .75rem; line-height: 1.35; }
.maplibregl-popup-content { border-radius: 10px; background: var(--navy); box-shadow: 0 15px 36px rgba(12,52,92,.28); }
.maplibregl-popup-tip { border-top-color: var(--navy) !important; }
.maplibregl-popup-close-button { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; color: #fff; font-size: 1.25rem; line-height: 1; }
.maplibregl-popup-close-button:hover, .maplibregl-popup-close-button:focus-visible { color: var(--navy); background: #f4e8c9; }
.maplibregl-popup-close-button:focus-visible { outline: 3px solid #e4a62e; outline-offset: 2px; }
.maplibregl-ctrl-attrib { font-family: Arial, sans-serif; }
.atlas-accessible-list { padding-top: 58px; padding-bottom: 64px; background: #fff; }
.atlas-accessible-list h2 { margin-bottom: 28px; }
.atlas-accessible-list ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 9px 28px; margin: 0; padding: 0; list-style: none; }
.atlas-accessible-list li { padding: 9px 0; border-bottom: 1px solid var(--line); color: var(--navy); font-weight: 700; }
@media (max-width: 900px) {
  .atlas-home-heading, .atlas-toolbar { align-items: flex-start; flex-direction: column; }
  .atlas-hero { grid-template-columns: 1fr; align-items: start; gap: 25px; }
  .atlas-filters { justify-content: flex-start; }
}
@media (max-width: 600px) {
  .atlas-home-stats, .atlas-summary { width: 100%; justify-content: space-between; gap: 10px; }
  .journey-atlas-map-preview .atlas-map-legend { bottom: 72px; }
  .atlas-map-legend { max-width: calc(100% - 32px); border-radius: 12px; }
  .journey-atlas-map-preview { min-height: 340px; border-radius: 13px; }
  .journey-atlas-map-full { height: 62vh; min-height: 430px; border-radius: 13px; }
  .atlas-hero { padding-top: 52px; padding-bottom: 45px; }
  .atlas-explorer { padding-top: 42px; }
  .atlas-filters { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .atlas-filters label:last-child { grid-column: 1 / -1; }
  .atlas-filters select { width: 100%; min-width: 0; }
  .atlas-preview-link { right: 12px; bottom: 24px; left: 12px; text-align: center; }
}

/* Search landing pages */
.seo-landing-hero { position: relative; overflow: hidden; padding: clamp(72px, 10vw, 132px) max(24px, calc((100% - 1120px) / 2)); color: #fff; background: linear-gradient(115deg, rgba(5,45,76,.96), rgba(8,70,103,.82)), url('../assets/optimized/images/04-mickey-holding-family-portrait-on-main-street-usa.webp') center/cover; }
.seo-landing-hero.cruise-landing, .seo-landing-hero.royal-landing { background-image: linear-gradient(115deg, rgba(5,45,76,.96), rgba(8,70,103,.76)), url('../assets/optimized/images/01-cruise-at-sunset.webp'); }
.seo-landing-hero.local-landing { background-image: linear-gradient(115deg, rgba(5,45,76,.97), rgba(8,70,103,.82)), url('../assets/optimized/images/02-family-walking-coastal-trail.webp'); }
.seo-landing-hero > div { max-width: 780px; }
.seo-landing-hero h1 { max-width: 900px; margin: 10px 0 22px; color: #fff; font-size: clamp(2.55rem, 6vw, 5.3rem); line-height: .98; }
.seo-landing-hero .hero-copy { max-width: 760px; color: #f5fbff; }
.seo-landing-hero .kicker, .seo-landing-hero .microcopy { color: #cde8fb; }
.seo-landing-hero .text-link { color: #fff; }
.seo-landing-hero .button { background: #fff; color: #0b3a63 !important; }
.services-band a:not(.button) { color: #fff; }
.seo-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding: 0; list-style: none; counter-reset: seo-step; }
.seo-steps li { position: relative; min-height: 190px; padding: 28px; border: 1px solid #d5e3eb; border-radius: 18px; background: #fff; box-shadow: 0 12px 35px rgba(9,48,76,.07); counter-increment: seo-step; }
.seo-steps li::before { content: '0' counter(seo-step); display: block; margin-bottom: 28px; color: #5a92c3; font: 700 .83rem Arial, sans-serif; letter-spacing: .12em; }
.seo-steps strong, .seo-steps span { display: block; }
.seo-steps strong { margin-bottom: 10px; color: #0b3a63; font-size: 1.2rem; }
.seo-steps span { color: #48677d; line-height: 1.6; }
.faq-stack { display: grid; gap: 12px; }
.faq-stack details { border: 1px solid #d5e3eb; border-radius: 14px; background: #fff; }
.faq-stack summary { padding: 20px 54px 20px 22px; color: #0b3a63; cursor: pointer; font-weight: 750; }
.faq-stack p { margin: 0; padding: 0 22px 22px; color: #48677d; }
@media (max-width: 760px) { .seo-steps { grid-template-columns: 1fr; } .seo-landing-hero { padding-top: 62px; padding-bottom: 62px; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.about-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); align-items: center; gap: 48px; min-height: 560px; padding-top: 80px; padding-bottom: 80px; background: linear-gradient(120deg, #fff, var(--pale)); }
.about-hero .hero-copy { color: var(--muted); }
.hero-card { padding: 32px; border-radius: 16px; color: #fff; background: var(--navy); box-shadow: 0 20px 50px rgba(12,52,92,.2); }
.card-label { color: #b6d9f3; font: 700 .75rem Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.hero-card ul { margin: 20px 0 0; padding-left: 22px; }
.hero-card li { margin: 12px 0; }
.newsletter-cta { display: flex; align-items: center; justify-content: space-between; gap: 36px; padding-top: 58px; padding-bottom: 58px; color: #fff; background: var(--blue); }
.newsletter-cta .kicker, .newsletter-cta h2 { color: #fff; }
.newsletter-cta h2 { margin-bottom: 10px; }
.newsletter-cta p:last-child { margin-bottom: 0; }
.footer-links { display: flex; flex-wrap: wrap; gap: 18px; }
.newsletter-hero { padding-top: 78px; padding-bottom: 78px; color: #fff; background: linear-gradient(125deg, var(--navy), #285f8c); }
.newsletter-hero > div { max-width: 780px; }
.newsletter-hero h1, .newsletter-hero .kicker { color: #fff; }
.newsletter-hero p:last-child { max-width: 680px; margin-bottom: 0; font-size: 1.12rem; }
.newsletter-section { padding-top: 70px; padding-bottom: 80px; background: #f7fbfe; }
.newsletter-form { display: grid; gap: 26px; max-width: 880px; margin: 0 auto; padding: clamp(24px, 5vw, 46px); border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 18px 45px rgba(12,52,92,.11); font-family: Arial, sans-serif; }
.newsletter-form fieldset { min-width: 0; margin: 0; padding: 0 0 26px; border: 0; border-bottom: 1px solid var(--line); }
.newsletter-form legend { margin-bottom: 18px; color: var(--navy); font-size: 1.25rem; font-weight: 800; }
.newsletter-form label, .field-label { display: block; color: var(--navy); font-size: .92rem; font-weight: 700; }
.newsletter-form input:not([type=checkbox]), .newsletter-form select, .newsletter-form textarea { width: 100%; min-height: 48px; padding: 11px 12px; border: 1px solid var(--blue); border-radius: 8px; color: #111; background: #fff; font: 16px/1.4 Georgia, serif; }
.newsletter-form label > input:not([type=checkbox]), .newsletter-form label > select, .newsletter-form label > textarea { margin-top: 7px; }
.newsletter-form textarea { min-height: 120px; resize: vertical; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.full-field { grid-column: 1 / -1; }
.field-label { margin: 20px 0 10px; }
.field-intro, .optional-text, .form-fine-print { color: var(--muted); font-weight: 400; }
.interest-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.check-option { display: flex !important; align-items: flex-start; grid-template-columns: none !important; gap: 9px !important; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; font-weight: 400 !important; cursor: pointer; }
.check-option input { flex: 0 0 auto; margin-top: 3px; accent-color: var(--navy); }
.consent-option { padding: 14px; background: var(--pale); }
.newsletter-form .button { justify-self: start; }
.newsletter-errors, .success-message { max-width: 880px; margin: 0 auto 24px; padding: 18px 20px; border-radius: 8px; font-family: Arial, sans-serif; }
.newsletter-errors { border-left: 4px solid #8e281f; color: #7c211b; background: #fff3f1; }
.newsletter-errors ul { margin-bottom: 0; }
.success-message { border-left: 4px solid #247054; color: #164d3a; background: #ebf8f2; }
.success-message h2 { margin-bottom: 6px; color: #164d3a; font-size: 1.55rem; }
.success-message p { margin: 0; }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.compact-form { max-width: 560px; }
.privacy-hero { padding-top: 74px; padding-bottom: 62px; color: #fff; background: linear-gradient(125deg, var(--navy), #285f8c); }
.privacy-hero h1, .privacy-hero .kicker { color: #fff; }
.privacy-hero p:last-child { margin-bottom: 0; }
.privacy-content { max-width: 900px; padding-top: 62px; padding-bottom: 78px; }
.privacy-content h2 { margin-top: 42px; font-size: clamp(1.55rem, 3vw, 2.15rem); }
.privacy-content p { max-width: 780px; }
.privacy-update { margin-top: 46px; padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted); }
.analytics-consent { position: fixed; right: 18px; bottom: 18px; z-index: 1000; width: min(560px, calc(100% - 36px)); padding: 20px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: #fff; box-shadow: 0 18px 55px rgba(5,34,60,.28); font: .9rem/1.45 Arial, sans-serif; }
.analytics-consent p { margin: 0 0 14px; }
.analytics-consent div { display: flex; flex-wrap: wrap; gap: 10px; }
.analytics-consent button { min-height: 42px; padding: 9px 14px; border: 1px solid var(--navy); border-radius: 6px; color: #fff; background: var(--navy); cursor: pointer; font-weight: 700; }
.analytics-consent button:last-child { color: var(--navy); background: #fff; }
.analytics-consent button:focus-visible { outline: 3px solid var(--line); outline-offset: 2px; }

/* Tyler’s Takes and articles */
.blog-hero { min-height: 520px; display: flex; align-items: center; padding-top: 84px; padding-bottom: 84px; color: #fff; background: linear-gradient(110deg, rgba(21,45,65,.88), rgba(42,96,103,.52)), url('../assets/optimized/images/04-mickey-holding-family-portrait-on-main-street-usa.webp') center/cover; }
.blog-hero > div { max-width: 820px; }
.blog-hero h1 { color: #fff; }
.blog-hero .kicker { color: #ffe1a1; }
.blog-index { background: #fffaf1; }
.blog-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 38px; }
.blog-card { position: relative; overflow: hidden; padding: clamp(26px, 4vw, 40px); border: 1px solid #ead8bd; border-radius: 4px 28px 4px 28px; background: #fffdf8; box-shadow: 0 16px 42px rgba(79,52,31,.1); }
.blog-card::before { content: "✦"; position: absolute; top: 18px; right: 22px; color: #dc7a5b; font-size: 1.35rem; }
.blog-card h3 { margin: 10px 0 14px; font-size: clamp(1.45rem, 3vw, 2rem); }
.blog-card h3 a { color: var(--navy); text-decoration: none; }
.blog-card h3 a:hover, .blog-card h3 a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.blog-card > p:not(.blog-card-meta) { color: var(--muted); }
.blog-card-meta { color: #bb654d; font: 800 .74rem Arial, sans-serif; letter-spacing: .11em; text-transform: uppercase; }
.article-hero { --article-hero-image: url('../assets/optimized/images/04-mickey-holding-family-portrait-on-main-street-usa.webp'); position: relative; isolation: isolate; min-height: 650px; display: flex; align-items: flex-end; padding: clamp(80px, 12vw, 150px) var(--page-gutter) clamp(58px, 8vw, 94px); color: #fff; background: #173b4c var(--article-hero-image) center 42%/cover no-repeat; }
.article-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(16,43,58,.94) 0%, rgba(18,53,66,.76) 52%, rgba(16,43,58,.15) 100%), linear-gradient(0deg, rgba(10,30,39,.45), transparent 50%); }
.article-hero::after { content: "✦  ·  ✧  ·  ✦"; position: absolute; right: var(--page-gutter); bottom: 28px; color: #ffd07e; font: 1rem Arial, sans-serif; letter-spacing: .55em; }
.article-hero-copy { max-width: 880px; }
.article-hero h1 { max-width: 880px; color: #fff8e9; font: 700 clamp(2.65rem, 6.4vw, 5.65rem)/.98 Georgia, serif; letter-spacing: -.045em; text-wrap: balance; }
.article-hero .kicker { color: #ffd994; }
.article-deck { max-width: 700px; margin: 25px 0 24px; color: #fff9ee; font-size: clamp(1.08rem, 2vw, 1.28rem); }
.article-byline { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; color: #f4e7d1; font: 700 .86rem Arial, sans-serif; }
.byline-avatar { display: inline-grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; color: #193b4b; background: #ffd27f; font-family: Georgia, serif; }
.article-layout { display: grid; grid-template-columns: minmax(0, 750px) minmax(270px, 340px); justify-content: center; align-items: start; gap: clamp(42px, 7vw, 86px); padding: clamp(58px, 8vw, 100px) var(--page-gutter); background: linear-gradient(90deg, #fff 0%, #fff 72%, #fffaf1 72%); }
.article-content { min-width: 0; color: #263f49; font-size: 1.08rem; line-height: 1.82; }
.article-content > p:first-child { margin-top: 0; color: #1f5960; font-size: 1.3rem; line-height: 1.65; }
.article-content h2 { position: relative; margin: 2.55em 0 .8em; padding-top: 24px; font: 700 clamp(1.85rem, 4vw, 2.65rem)/1.1 Georgia, serif; letter-spacing: -.035em; }
.article-content h2::before { content: ""; position: absolute; top: 0; left: 0; width: 72px; height: 4px; border-radius: 4px; background: linear-gradient(90deg, #d06f55 0 38%, #e6ae5a 38% 70%, #4e9390 70%); }
.article-content h3 { margin: 2em 0 .55em; font-size: clamp(1.3rem, 3vw, 1.65rem); }
.article-content ul, .article-content ol { display: grid; gap: 10px; margin: 1.45em 0; padding: 0; list-style: none; counter-reset: article-list; }
.article-content li { position: relative; margin: 0; padding: 13px 16px 13px 45px; border-left: 3px solid #e4aa58; border-radius: 0 10px 10px 0; background: #fff8eb; }
.article-content ul li::before { content: "✦"; position: absolute; left: 17px; top: 13px; color: #c9644d; font-family: Arial, sans-serif; }
.article-content ol li { counter-increment: article-list; }
.article-content ol li::before { content: counter(article-list); position: absolute; left: 14px; top: 12px; width: 22px; height: 22px; border-radius: 50%; color: #fff; background: #397b78; font: 800 .72rem/22px Arial, sans-serif; text-align: center; }
.article-content a { color: #176d73; text-decoration-color: #e6a54b; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.article-content strong { color: #173f4b; }
.tyler-note { position: relative; margin: 34px -22px; padding: 28px 32px 28px 68px; border: 1px solid #e5cda6; border-radius: 4px 24px 4px 24px; color: #244853; background: #fff7e6; box-shadow: 7px 7px 0 #eaf4f1; font-size: 1.08rem; line-height: 1.65; transform: rotate(-.35deg); }
.tyler-note::before { content: "T"; position: absolute; top: 25px; left: 22px; display: grid; width: 33px; height: 33px; place-items: center; border-radius: 50%; color: #fff; background: #c7674f; font: 700 1rem Georgia, serif; }
.article-photo { margin: 44px -42px; }
.article-photo img { width: 100%; max-height: 500px; object-fit: cover; border-radius: 4px 32px 4px 32px; box-shadow: 10px 12px 0 #f4dfbd; }
.article-photo figcaption { margin: 13px 18px 0; color: #7d6654; font: italic .82rem Georgia, serif; }
.article-sidebar { position: sticky; top: 28px; padding: 28px 28px 30px; border: 1px solid #d8bb8d; border-radius: 3px; color: #29434c; background: #fffaf0; box-shadow: 9px 11px 0 #dfeeea, 0 20px 45px rgba(70,48,27,.1); transform: rotate(1deg); }
.article-sidebar::before { content: ""; position: absolute; top: 12px; right: 14px; width: 52px; height: 42px; border: 2px dashed #d98062; opacity: .55; }
.article-sidebar h2 { margin-bottom: 14px; font: 700 1.85rem/1.1 Georgia, serif; }
.article-sidebar p:not(.kicker):not(.postcard-stamp) { color: #5f6c6e; }
.article-sidebar .button { background: #c8644d; }
.article-sidebar .button:hover, .article-sidebar .button:focus-visible { background: #1f6668; }
.postcard-stamp { margin: 0 0 34px; color: #bd634e; font: italic 700 .8rem Georgia, serif; transform: rotate(-4deg); }
.sidebar-signoff { margin: 24px 0 0; font-style: italic; }
.sidebar-signoff strong { color: #235762; font-size: 1.2rem; }
.blog-next { padding-top: 68px; padding-bottom: 72px; text-align: center; background: #e8f1ec; }
.blog-next h2 { margin-bottom: 16px; }
@media (max-width: 900px) { .article-layout { grid-template-columns: 1fr; background: #fff; } .article-sidebar { position: static; max-width: 560px; transform: none; } }
@media (max-width: 700px) { .blog-card-grid { grid-template-columns: 1fr; } .blog-hero { min-height: 440px; padding-top: 64px; padding-bottom: 64px; } .article-hero { min-height: 590px; background-position: 62% center; } .article-hero::before { background: linear-gradient(0deg, rgba(13,38,50,.96) 0%, rgba(15,43,54,.72) 72%, rgba(15,43,54,.25)); } .article-content { font-size: 1rem; } .article-photo, .tyler-note { margin-right: 0; margin-left: 0; } .tyler-note { padding: 62px 22px 24px; } .tyler-note::before { top: 18px; left: 22px; } }

/* Articles without the storybook flag retain the established live treatment. */
.article-legacy .article-hero { min-height: 0; display: block; padding: clamp(64px, 9vw, 112px) var(--page-gutter); color: #fff; background: linear-gradient(118deg, var(--navy), #285f8c); }
.article-legacy .article-hero::before, .article-legacy .article-hero::after { display: none; }
.article-legacy .article-hero h1 { max-width: 980px; color: #fff; font: 700 clamp(2.5rem, 6vw, 5rem)/1.14 Arial, sans-serif; letter-spacing: -.045em; }
.article-legacy .article-hero .kicker { color: #b6d9f3; }
.article-legacy .article-deck { max-width: 760px; margin: 24px 0 18px; color: #eef8ff; font-size: 1.2rem; }
.article-legacy .article-byline { display: block; margin: 0; color: #cde8fb; font: 700 .86rem Arial, sans-serif; }
.article-legacy .article-layout { grid-template-columns: minmax(0, 760px) minmax(260px, 330px); padding: clamp(54px, 8vw, 94px) var(--page-gutter); background: #fff; }
.article-legacy .article-content { color: var(--ink); font-size: 1.08rem; line-height: 1.78; }
.article-legacy .article-content > p:first-child { color: var(--ink); font-size: 1.2rem; }
.article-legacy .article-content h2 { margin: 2.4em 0 .7em; padding: 0; font: 700 clamp(1.8rem, 4vw, 2.55rem)/1.14 Arial, sans-serif; letter-spacing: -.035em; }
.article-legacy .article-content h2::before { display: none; }
.article-legacy .article-content ul, .article-legacy .article-content ol { display: block; margin: 1em 0; padding-left: 40px; list-style: revert; }
.article-legacy .article-content li { margin: .45em 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.article-legacy .article-content li::before { display: none; }
.article-legacy .article-content a { color: #155f91; text-decoration-color: currentColor; text-decoration-thickness: auto; text-underline-offset: 3px; }
.article-legacy .article-sidebar { position: sticky; top: 28px; padding: 28px; border: 1px solid var(--line); border-radius: 16px; color: var(--ink); background: var(--pale); box-shadow: none; transform: none; }
.article-legacy .article-sidebar::before { display: none; }
.article-legacy .article-sidebar h2 { margin-bottom: 14px; font: 700 1.75rem/1.14 Arial, sans-serif; }
.article-legacy .article-sidebar p:not(.kicker) { color: var(--muted); }
.article-legacy .article-sidebar .button { background: var(--navy); }
@media (max-width: 900px) { .article-legacy .article-layout { grid-template-columns: 1fr; } .article-legacy .article-sidebar { position: static; } }
@media (max-width: 700px) { .article-legacy .article-hero { min-height: 0; } .article-legacy .article-content { font-size: 1rem; } }

/* Whimsical travel-themed 404 */
.error-page { background: #10241f; }
.lost-page { overflow: hidden; }
.lost-hero {
  position: relative;
  isolation: isolate;
  min-height: 680px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
  align-items: center;
  gap: clamp(38px, 7vw, 96px);
  padding-top: clamp(64px, 9vw, 110px);
  padding-bottom: clamp(72px, 10vw, 124px);
  background: linear-gradient(150deg, #183a34 0%, #224a3d 48%, #0d211c 100%);
}
.lost-hero::before {
  content: "";
  position: absolute;
  inset: auto -8% -150px -8%;
  z-index: 1;
  height: 340px;
  border-radius: 50% 50% 0 0;
  background: linear-gradient(180deg, #183c30, #0b1c18);
  opacity: .92;
  transform: rotate(-2deg);
}
.lost-forest { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.lost-forest::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 77% 18%, rgba(250,218,146,.24), transparent 18%), linear-gradient(90deg, rgba(7,25,21,.28), transparent 50%, rgba(7,25,21,.18)); }
.lost-forest::after { content: ""; position: absolute; right: -8%; bottom: -80px; left: -8%; height: 230px; border-radius: 50% 50% 0 0; background: #143128; box-shadow: 0 -24px 70px rgba(4,17,14,.38); transform: rotate(2deg); }
.forest-glow { position: absolute; top: 7%; right: 14%; width: 170px; height: 170px; border-radius: 50%; background: #f3d88d; box-shadow: 0 0 0 24px rgba(243,216,141,.05), 0 0 100px rgba(243,216,141,.36); opacity: .82; }
.forest-tree { position: absolute; bottom: 9%; width: 190px; height: 520px; background: #0a211b; clip-path: polygon(50% 0, 64% 18%, 58% 18%, 75% 39%, 66% 39%, 86% 65%, 58% 65%, 58% 100%, 42% 100%, 42% 65%, 14% 65%, 34% 39%, 25% 39%, 42% 18%, 36% 18%); filter: drop-shadow(0 12px 18px rgba(0,0,0,.16)); transform-origin: bottom center; }
.tree-one { left: -42px; transform: scale(1.22); opacity: .68; }
.tree-two { left: 17%; bottom: 16%; transform: scale(.68); background: #2f6251; opacity: .58; }
.tree-three { left: 38%; bottom: 12%; transform: scale(.78); background: #1b493c; opacity: .48; }
.tree-four { right: 34%; bottom: 14%; transform: scale(.7); background: #315e4e; opacity: .5; }
.tree-five { right: 8%; transform: scale(1.08); opacity: .64; }
.tree-six { right: -78px; bottom: 3%; transform: scale(1.45); opacity: .92; }
.forest-path { position: absolute; right: 13%; bottom: -2%; z-index: 2; width: 310px; height: 58%; background: linear-gradient(90deg, #8b724e, #d1b77a 48%, #7e694b); clip-path: polygon(48% 0, 54% 0, 92% 100%, 4% 100%); opacity: .58; transform: rotate(-4deg); }
.lost-copy { position: relative; z-index: 3; max-width: 680px; }
.lost-copy .kicker { color: #f2c96f; text-shadow: 0 2px 12px rgba(0,0,0,.25); }
.lost-code {
  display: flex;
  align-items: center;
  gap: clamp(10px, 2vw, 20px);
  margin: 0 0 8px;
  color: #f2c96f;
  font: 700 clamp(4.8rem, 11vw, 8.4rem)/.84 Georgia, serif;
  letter-spacing: -.08em;
  text-shadow: 0 5px 24px rgba(0,0,0,.28);
}
.lost-compass {
  display: grid;
  width: clamp(58px, 8vw, 86px);
  height: clamp(58px, 8vw, 86px);
  place-items: center;
  border: 3px solid #f2c96f;
  border-radius: 50%;
  color: #f5df9f;
  background: rgba(10,36,29,.88);
  box-shadow: 0 0 0 7px rgba(242,201,111,.13);
  font: 700 clamp(2.1rem, 5vw, 3.5rem)/1 Arial, sans-serif;
  letter-spacing: 0;
  transform: rotate(17deg);
}
.lost-copy h1 {
  max-width: 620px;
  color: #fff6df;
  font: 700 clamp(2.55rem, 5vw, 4.1rem)/1.02 Georgia, serif;
  letter-spacing: -.045em;
  text-shadow: 0 4px 26px rgba(0,0,0,.32);
  text-wrap: balance;
}
.lost-deck { max-width: 620px; margin: 24px 0 30px; color: #e3eee8; font-size: clamp(1.05rem, 2vw, 1.23rem); text-shadow: 0 2px 15px rgba(0,0,0,.28); }
.lost-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 24px; }
.lost-primary { border-radius: 999px; background: #c8644d; box-shadow: 0 7px 0 #8e4939; }
.lost-primary:hover, .lost-primary:focus-visible { background: #1f6668; box-shadow: 0 7px 0 #164b4d; transform: translateY(-1px); }
.lost-link { color: #fff1c3; font: 800 .92rem Arial, sans-serif; text-decoration: none; text-shadow: 0 2px 12px rgba(0,0,0,.3); }
.lost-link:hover, .lost-link:focus-visible { text-decoration: underline; text-decoration-color: #e6a54b; text-decoration-thickness: 3px; text-underline-offset: 5px; }
.lost-note {
  position: relative;
  max-width: 560px;
  margin: 42px 0 0 10px;
  padding: 20px 24px 20px 62px;
  border: 1px solid #dfc18f;
  border-radius: 3px 18px 3px 18px;
  background: rgba(255,253,247,.88);
  box-shadow: 7px 8px 0 rgba(228,170,88,.28);
  transform: rotate(-.6deg);
}
.lost-note > span { position: absolute; top: 18px; left: 20px; display: grid; width: 29px; height: 29px; place-items: center; border-radius: 50%; color: #fff; background: #1f6668; font: 700 .9rem Georgia, serif; }
.lost-note p { margin: 0; color: #5e625c; font-size: .94rem; }
.lost-note strong { color: #a7503d; }
.lost-scene { position: relative; z-index: 2; min-height: 510px; }
.lost-sun { position: absolute; top: 16px; right: 26px; width: 108px; height: 108px; border-radius: 50%; background: rgba(244,218,151,.2); box-shadow: 0 0 0 18px rgba(244,218,151,.04), 0 0 70px rgba(244,218,151,.14); }
.lost-cloud { display: none; }
.lost-cloud-one { top: 72px; left: 0; transform: scale(.75); }
.lost-cloud-two { top: 178px; right: -24px; transform: scale(.52); }
.lost-route { position: absolute; top: 40px; left: 20px; width: 78%; height: 218px; border-top: 4px dashed #f2c96f; border-radius: 50%; opacity: .78; transform: rotate(14deg); }
.lost-route span { position: absolute; right: -20px; top: 52px; color: #fff1c3; font: 2.5rem Arial, sans-serif; text-shadow: 0 3px 14px rgba(0,0,0,.35); transform: rotate(28deg); }
.lost-suitcase { position: absolute; right: 7%; bottom: 38px; z-index: 2; width: min(340px, 76%); height: 330px; transform: rotate(2deg); }
.suitcase-handle { position: absolute; top: 0; left: 50%; width: 112px; height: 70px; border: 14px solid #173f4b; border-bottom: 0; border-radius: 24px 24px 0 0; transform: translateX(-50%); }
.suitcase-shell { position: absolute; inset: 56px 0 22px; overflow: hidden; border: 11px solid #173f4b; border-radius: 42px 42px 34px 34px; background: linear-gradient(135deg, #de8065, #c45945); box-shadow: 17px 18px 0 rgba(23,63,75,.18); }
.suitcase-shell::before, .suitcase-shell::after { content: ""; position: absolute; top: 0; bottom: 0; width: 17px; background: #e8b45a; box-shadow: inset 0 0 0 3px rgba(111,71,25,.16); }
.suitcase-shell::before { left: 34px; }
.suitcase-shell::after { right: 34px; }
.suitcase-sticker { position: absolute; z-index: 2; display: grid; place-items: center; color: #173f4b; background: #fff5d8; font: 800 .75rem Arial, sans-serif; }
.sticker-ms { top: 28px; left: 78px; width: 62px; height: 50px; border: 3px solid #1f6668; border-radius: 50%; transform: rotate(-12deg); }
.sticker-palm { top: 42px; right: 65px; width: 54px; height: 54px; border-radius: 8px; color: #fff; background: #397b78; transform: rotate(9deg); }
.sticker-toml { bottom: 42px; left: 82px; padding: 9px 12px; border: 3px double #a7503d; transform: rotate(7deg); }
.sticker-star { right: 76px; bottom: 44px; width: 54px; height: 54px; border: 3px dashed #bd634e; border-radius: 50%; color: #bd634e; font-size: 1.6rem; transform: rotate(-8deg); }
.suitcase-wheel { position: absolute; bottom: 0; width: 35px; height: 35px; border: 8px solid #173f4b; border-radius: 50%; background: #f0bd5d; }
.wheel-left { left: 48px; }
.wheel-right { right: 48px; }
.lost-tag { position: absolute; left: 0; bottom: 4px; z-index: 4; padding: 22px 25px 20px 46px; border: 2px dashed #bd634e; border-radius: 5px 20px 5px 20px; color: #7d6654; background: #fff7df; box-shadow: 8px 9px 0 rgba(5,24,19,.28); font: 700 .78rem Arial, sans-serif; letter-spacing: .08em; transform: rotate(-8deg); }
.lost-tag::before { content: ""; position: absolute; top: 15px; left: 15px; width: 14px; height: 14px; border: 3px solid #dfc18f; border-radius: 50%; }
.lost-tag span, .lost-tag strong { display: block; }
.lost-tag strong { margin-top: 4px; color: #1f6668; font-size: 1.05rem; }
@media (max-width: 900px) {
  .lost-hero { grid-template-columns: 1fr; padding-top: 62px; }
  .lost-copy { max-width: 760px; }
  .lost-scene { width: min(620px, 100%); min-height: 460px; margin: -10px auto 0; }
  .tree-two { left: 34%; }
  .tree-three, .tree-four { opacity: .28; }
  .forest-path { right: 18%; height: 44%; }
}
@media (max-width: 560px) {
  .lost-hero { gap: 22px; padding-top: 48px; padding-bottom: 78px; }
  .lost-code { font-size: clamp(4.2rem, 24vw, 6.5rem); }
  .lost-compass { width: 56px; height: 56px; border-width: 2px; font-size: 2rem; }
  .lost-actions { align-items: stretch; flex-direction: column; }
  .lost-primary, .lost-link { width: 100%; text-align: center; }
  .lost-link { padding: 9px; }
  .lost-note { margin-left: 0; padding: 58px 20px 20px; }
  .lost-note > span { top: 17px; }
  .lost-scene { min-height: 380px; }
  .forest-tree { width: 150px; height: 410px; }
  .tree-one { left: -74px; }
  .tree-two { left: 42%; }
  .tree-three, .tree-four, .tree-five { display: none; }
  .tree-six { right: -88px; }
  .forest-glow { right: 3%; width: 115px; height: 115px; }
  .forest-path { right: 8%; width: 240px; height: 38%; }
  .lost-sun { width: 76px; height: 76px; }
  .lost-route { width: 70%; }
  .lost-suitcase { right: 4%; width: 265px; height: 280px; }
  .suitcase-shell { top: 48px; border-width: 9px; }
  .sticker-ms { left: 62px; }
  .sticker-palm { right: 50px; }
  .sticker-toml { left: 62px; }
  .sticker-star { right: 56px; }
  .lost-tag { bottom: 0; padding: 18px 19px 16px 42px; }
}
@media (max-width: 900px) { .about-hero { grid-template-columns: 1fr; gap: 28px; min-height: 0; padding-top: 60px; padding-bottom: 60px; } .newsletter-cta { align-items: flex-start; flex-direction: column; } }
@media (max-width: 600px) { .about-hero { padding-top: 48px; padding-bottom: 48px; } .hero-card { padding: 24px; } .newsletter-hero, .privacy-hero { padding-top: 54px; padding-bottom: 56px; } .newsletter-section { padding-top: 38px; padding-bottom: 50px; } .privacy-content { padding-top: 42px; padding-bottom: 56px; } .newsletter-form { gap: 22px; padding: 22px 18px; border-radius: 12px; } .form-grid, .interest-grid { grid-template-columns: 1fr; } .newsletter-form .button { width: 100%; } .site-footer { display: block; } .footer-links { flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 24px; } .analytics-consent { right: 10px; bottom: 10px; width: calc(100% - 20px); padding: 16px; } .analytics-consent div { align-items: stretch; flex-direction: column; } .analytics-consent button { width: 100%; } }

/* Disney planning tools */
.disney-tools-page { background: #fffdf8; }
.disney-tools-hero { display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:clamp(28px,6vw,80px);align-items:center;padding-top:clamp(64px,9vw,110px);padding-bottom:clamp(64px,9vw,110px);background:linear-gradient(135deg,#f9efd4 0%,#edf7f3 62%,#d9efea 100%); }
.disney-tools-hero h1 { max-width:820px;font:700 clamp(2.65rem,6vw,5rem)/.98 Georgia,serif;letter-spacing:-.055em;color:#163b3c;text-wrap:balance; }
.disney-tools-hero p:not(.kicker) { max-width:760px;margin:24px 0 30px;color:#4d625f;font-size:clamp(1.08rem,2vw,1.25rem); }
.disney-tools-hero aside { display:flex;flex-wrap:wrap;gap:10px;padding:28px;border:1px solid #b8d9cf;border-radius:24px;background:rgba(255,255,255,.78);box-shadow:0 18px 45px rgba(21,78,71,.1);transform:rotate(1deg); }
.disney-tools-hero aside strong { flex-basis:100%;margin-bottom:6px;color:#176965;font:700 1.12rem Georgia,serif; }
.disney-tools-hero aside span { padding:9px 12px;border-radius:999px;background:#fff4d3;color:#6a5730;font:700 .78rem Arial,sans-serif; }
.tool-section { padding-top:clamp(58px,8vw,96px);padding-bottom:clamp(58px,8vw,96px); }
.tool-tint { background:#edf7f3; }
.tool-heading { max-width:860px;margin-bottom:30px; }
.tool-heading h2,.split-tools h2,.my-disney-note h2 { color:#163b3c;font:700 clamp(2rem,4vw,3.2rem)/1.05 Georgia,serif;letter-spacing:-.035em; }
.tool-heading > p:not(.kicker),.split-tools > div > p { color:#5b6967;font-size:1.06rem; }
.tool-panel { padding:clamp(22px,4vw,38px);border:1px solid #d5ddd8;border-radius:20px;background:#fff;box-shadow:0 16px 38px rgba(21,60,60,.08); }
.tool-form-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px; }
.tool-panel label { display:grid;gap:8px;color:#284a49;font:700 .92rem Arial,sans-serif; }
.tool-panel input,.tool-panel select,.tool-panel textarea { width:100%;padding:13px 14px;border:1px solid #9db7b0;border-radius:9px;color:#183b3b;background:#fff;font:400 1rem/1.35 Arial,sans-serif; }
.tool-panel input:focus,.tool-panel select:focus,.tool-panel textarea:focus { outline:3px solid rgba(230,165,75,.3);border-color:#176965; }
.tool-panel .full-field { grid-column:1/-1; }
.field-help { color:#66736f;font:400 .88rem/1.45 Arial,sans-serif; }
.tool-panel > .button { margin-top:22px; }
.tool-microcopy,.tool-source-note,.tool-updated { color:#687773;font-size:.88rem; }
.timeline-results { display:grid;grid-template-columns:190px 1fr;gap:26px;margin-top:28px; }
.countdown-card { align-self:start;display:grid;place-items:center;padding:24px;border-radius:20px;color:#fff;background:#176965;box-shadow:8px 9px 0 #e8b45a;text-align:center; }
.countdown-card span { font:700 .75rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em; }
.countdown-card strong { font:700 4.6rem/1 Georgia,serif; }
.countdown-card small { font:700 1rem Arial,sans-serif; }
.timeline-list { overflow:hidden;border:1px solid #d2dfda;border-radius:18px;background:#fff; }
.timeline-list article { display:grid;grid-template-columns:minmax(165px,.38fr) 1fr;gap:24px;padding:21px 24px;border-bottom:1px solid #e3ebe7; }
.timeline-list article:last-child { border-bottom:0; }
.timeline-list time { color:#b25643;font:800 .9rem Arial,sans-serif; }
.timeline-list h3 { margin:0;color:#173f40;font:700 1.08rem Georgia,serif; }
.timeline-list p { margin:5px 0 0;color:#5e6e6b;font-size:.94rem; }
.timeline-results .tool-source-note { grid-column:2; }
.strategy-result { margin-top:26px;padding:clamp(24px,4vw,40px);border-radius:22px;color:#fff;background:#173f40; }
.strategy-verdict { margin:0 0 22px;color:#f6d17c;font:italic 700 clamp(1.35rem,3vw,2rem)/1.2 Georgia,serif; }
.strategy-result > div { display:grid;grid-template-columns:repeat(3,1fr);gap:18px; }
.strategy-result article { padding:20px;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:rgba(255,255,255,.06); }
.strategy-result span { color:#f6d17c;font:800 .76rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.07em; }
.strategy-result p { margin:9px 0 0;color:#e6f0ed; }
.split-tools { display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,7vw,90px);align-items:start; }
.tool-note,.allergy-safety-note { padding:26px;border:1px solid #e1c990;border-radius:6px 20px 6px 20px;background:#fff5d9;box-shadow:8px 9px 0 rgba(213,157,67,.18); }
.tool-note strong,.allergy-safety-note strong { color:#9f4e3d;font:700 1.08rem Georgia,serif; }
.tool-note p,.allergy-safety-note p { margin-bottom:0;color:#655f51; }
.tool-actions { display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:22px; }
.button-secondary { color:#176965!important;background:#fff!important;box-shadow:inset 0 0 0 2px #176965; }
.tool-actions a { color:#176965;font-weight:700; }
.allergy-send-explainer { margin-top:24px;padding:17px 19px;border-left:5px solid #e6a54b;border-radius:0 10px 10px 0;background:#fff8e6; }
.allergy-send-explainer strong { color:#244b49;font:700 1rem Georgia,serif; }
.allergy-send-explainer p { margin:5px 0 0;color:#62706d;font-size:.92rem; }
.tool-copy-button { padding:11px 4px;border:0;color:#176965;background:transparent;font:800 .86rem Arial,sans-serif;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;cursor:pointer; }
.tool-action-status { min-height:1.4em;margin:13px 0 0;color:#176965;font:700 .88rem Arial,sans-serif; }
.allergy-safety-note { margin-top:24px; }
.reminder-form { display:grid;gap:17px; }
.reminder-form > .button { margin-top:0; }
.reminder-form .check-option { display:flex;align-items:flex-start; }
.reminder-form .check-option input { width:auto;margin-top:3px; }
.my-disney-note { text-align:center; }
.my-disney-note > * { max-width:850px;margin-right:auto;margin-left:auto; }
@media (max-width:850px) { .disney-tools-hero,.split-tools { grid-template-columns:1fr; }.strategy-result > div { grid-template-columns:1fr; }.timeline-results { grid-template-columns:1fr; }.countdown-card { width:190px; }.timeline-results .tool-source-note { grid-column:1; } }
@media (max-width:600px) { .tool-form-grid,.timeline-list article { grid-template-columns:1fr; }.timeline-list article { gap:7px; }.tool-actions { align-items:stretch;flex-direction:column; }.tool-actions .button { width:100%; }.disney-tools-hero aside { transform:none; } }
@media print { .site-header,.site-footer,.analytics-consent,.tool-actions { display:none!important; }.disney-tools-page { background:#fff; }.tool-section { padding:20px; } }
