/* Sand & Slopes v1.03 — global polish layer */
:root{
  --ss-blue:#3f9fd3;
  --ss-blue-dark:#236b9f;
  --ss-ink:#172b3d;
  --ss-muted:#5b7184;
  --ss-line:rgba(34,84,119,.14);
  --ss-surface:rgba(255,255,255,.92);
  --ss-shadow:0 18px 50px rgba(24,58,84,.12);
  --ss-shadow-hover:0 24px 64px rgba(24,58,84,.18);
  --ss-radius:22px;
}

html{scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{
  min-height:100vh;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:rgba(77,168,218,.24);color:var(--ss-ink)}

.skip-link{
  position:fixed;left:16px;top:12px;z-index:99999;
  padding:11px 16px;border-radius:999px;background:#fff;color:var(--ss-ink);
  border:1px solid var(--ss-line);box-shadow:var(--ss-shadow);
  transform:translateY(-150%);transition:transform .2s ease;font-weight:800;
}
.skip-link:focus{transform:translateY(0)}

:is(a,button,input,select,textarea,summary):focus-visible{
  outline:3px solid rgba(77,168,218,.48)!important;
  outline-offset:3px!important;
}

img{max-width:100%;height:auto;image-rendering:auto}
img[data-ss-loaded="false"]{opacity:.01}
img[data-ss-loaded="true"]{opacity:1;transition:opacity .35s ease}

.topbar,
header.topbar{
  border:1px solid rgba(255,255,255,.78)!important;
  box-shadow:0 10px 34px rgba(24,58,84,.11)!important;
  transition:box-shadow .25s ease,transform .25s ease,background-color .25s ease!important;
  backdrop-filter:saturate(150%) blur(16px);
  -webkit-backdrop-filter:saturate(150%) blur(16px);
}
body.ss-scrolled .topbar,
body.ss-scrolled header.topbar{
  box-shadow:0 14px 42px rgba(24,58,84,.17)!important;
  background:rgba(255,255,255,.94)!important;
}
.brand img{filter:drop-shadow(0 5px 12px rgba(23,55,80,.10))}

:is(.btn,.slope-btn,.actions a,.cta-row a,.trip-cta-actions a,button[type="submit"],input[type="submit"]){
  position:relative;isolation:isolate;overflow:hidden;
  border-radius:999px!important;
  font-weight:800!important;
  letter-spacing:-.01em;
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease,border-color .2s ease!important;
  -webkit-tap-highlight-color:transparent;
}
:is(.btn,.slope-btn,.actions a,.cta-row a,.trip-cta-actions a,button[type="submit"],input[type="submit"]):hover{
  transform:translateY(-2px);
  filter:saturate(1.05);
}
:is(.btn,.slope-btn,.actions a,.cta-row a,.trip-cta-actions a,button[type="submit"],input[type="submit"]):active{
  transform:translateY(0) scale(.985);
}
:is(.primary,.btn-primary,button[type="submit"],input[type="submit"]){
  box-shadow:0 10px 24px rgba(47,120,183,.24)!important;
}
:is(.primary,.btn-primary,button[type="submit"],input[type="submit"]):hover{
  box-shadow:0 15px 34px rgba(47,120,183,.32)!important;
}

:is(.card,.hero-card,.trip-card,.trust-card,.process-card,.review-card,.faq-card,.content-panel,.panel,.side-card,.trip-cta-box,.policy-section,.tip-box){
  border-color:var(--ss-line)!important;
  box-shadow:0 12px 36px rgba(24,58,84,.08)!important;
}
:is(.trip-card,.trust-card,.process-card,.review-card,.faq-card,.side-card){
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease!important;
}
:is(.trip-card,.trust-card,.process-card,.review-card,.faq-card,.side-card):hover{
  transform:translateY(-4px);
  box-shadow:var(--ss-shadow-hover)!important;
  border-color:rgba(63,159,211,.30)!important;
}
.trip-card-link:focus-visible .trip-card{transform:translateY(-4px);box-shadow:var(--ss-shadow-hover)!important}

:is(.hero-image,.trip-illustration,.about-card img,.hero-card img){
  overflow:hidden;
  box-shadow:0 18px 46px rgba(23,55,80,.15)!important;
}
:is(.hero-image img,.trip-illustration img,.about-card img,.hero-card img){
  transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s ease!important;
  filter:saturate(1.03) contrast(1.02);
}
:is(.hero-image,.trip-card,.about-card,.hero-card):hover img{transform:scale(1.025)}

:is(h1,h2,h3,.page-title,.section-title,.trip-name){
  text-wrap:balance;
  letter-spacing:-.025em;
}
:is(p,.lead,.section-copy,.trip-copy){text-wrap:pretty}
.eyebrow,.section-kicker,.trip-tag{letter-spacing:.06em!important}

:is(input,select,textarea){
  border-radius:14px!important;
  border-color:rgba(34,84,119,.20)!important;
  background:rgba(255,255,255,.94)!important;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease!important;
}
:is(input,select,textarea):hover{border-color:rgba(63,159,211,.44)!important}
:is(input,select,textarea):focus{
  border-color:var(--ss-blue)!important;
  box-shadow:0 0 0 4px rgba(77,168,218,.13)!important;
  background:#fff!important;
}
textarea{resize:vertical;min-height:120px}

.faq-item,
details{scroll-margin-top:110px}
details > summary{cursor:pointer}
details[open]{border-color:rgba(63,159,211,.28)!important}

.site-footer,.footer{
  position:relative;
  border-top:1px solid rgba(34,84,119,.10)!important;
}
.footer-contact,.footer-privacy{transition:color .2s ease,opacity .2s ease}
.footer-contact:hover,.footer-privacy:hover{color:var(--ss-blue-dark)!important}

.mobile-sticky-cta{
  box-shadow:0 -12px 36px rgba(24,58,84,.16)!important;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}

@media (max-width:760px){
  body{padding-bottom:76px}
  .page,.wrap{padding-left:16px!important;padding-right:16px!important}
  .topbar,header.topbar{width:calc(100% - 20px)!important;top:10px!important;border-radius:17px!important}
  :is(.hero,.hero-grid){gap:22px!important}
  :is(.card,.hero-card,.trip-card,.content-panel,.panel,.side-card,.trip-cta-box){border-radius:18px!important}
  :is(h1,.page-title){font-size:clamp(2rem,10vw,3.2rem)!important;line-height:1.02!important}
  :is(h2,.section-title){font-size:clamp(1.65rem,7vw,2.35rem)!important}
  .cta-row,.trip-cta-actions,.actions{gap:10px!important}
  .cta-row > *, .trip-cta-actions > *{min-height:48px}
}

@media (hover:none){
  :is(.trip-card,.trust-card,.process-card,.review-card,.faq-card,.side-card):hover{transform:none}
  :is(.hero-image,.trip-card,.about-card,.hero-card):hover img{transform:none}
}

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

@media print{
  .topbar,.mobile-sticky-cta,.skip-link{display:none!important}
  body{background:#fff!important;color:#000!important}
  *{box-shadow:none!important;text-shadow:none!important}
}

/* Sand & Slopes v1.03 — launch-grade finishing layer */
:root{--ss-focus:#1677ad;--ss-success:#176b45;--ss-danger:#a63232}
body{font-variant-numeric:lining-nums;text-underline-offset:.18em}
a:not(.btn):not(.primary):not(.secondary):not(.trip-card-link):hover{text-decoration-thickness:2px}
.ss-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.form-privacy-note{grid-column:1/-1;margin:2px 0 0!important;font-size:.82rem!important;line-height:1.5!important;color:var(--ss-muted)!important}
.form-status{grid-column:1/-1;padding:12px 14px;border-radius:14px;background:rgba(63,159,211,.09);border:1px solid rgba(63,159,211,.22);font-weight:700;color:var(--ss-ink)}
.form-status[data-state="error"]{background:rgba(166,50,50,.07);border-color:rgba(166,50,50,.24);color:var(--ss-danger)}
form.ss-submitting button[type="submit"],form.ss-submitting input[type="submit"]{cursor:wait;opacity:.82}
img[width][height]{height:auto}
.trip-breadcrumbs{line-height:1.5}
.trip-breadcrumbs a{text-decoration:underline;text-decoration-color:transparent;transition:text-decoration-color .2s ease}
.trip-breadcrumbs a:hover{text-decoration-color:currentColor}
.disney-picker-tools{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.back-to-top{position:fixed;right:18px;bottom:92px;z-index:900;width:46px;height:46px;border-radius:999px;border:1px solid var(--ss-line);background:rgba(255,255,255,.94);box-shadow:0 10px 28px rgba(24,58,84,.16);display:grid;place-items:center;color:var(--ss-ink);font-size:1.25rem;font-weight:900;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s ease}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{transform:translateY(-2px)}
@media (min-width:761px){.back-to-top{bottom:24px}}
@media (max-width:520px){.footer-right{justify-content:center}.footer-contact{overflow-wrap:anywhere}.disney-picker-tools .btn{width:100%}}
