/* Sand & Slopes v2.12 — mobile-first finishing layer */
html{
  max-width:100%;
  overflow-x:hidden;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{max-width:100%;overflow-x:hidden}
img,svg,video,canvas,iframe{max-width:100%}
img{display:block}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
input,select,textarea{max-width:100%}
section[id],aside[id]{scroll-margin-top:112px}

@media (max-width:900px){
  .site-shell-header{
    width:calc(100% - 20px);
    margin:10px auto 0;
    border-radius:20px;
  }
  .shell-header-inner{
    min-height:0;
    gap:8px;
    padding:9px 10px 8px;
  }
  .shell-brand{gap:9px}
  .shell-brand img{width:48px!important;height:42px!important}
  .shell-brand-name{font-size:.96rem}
  .shell-brand-note{font-size:.7rem}
  .shell-nav{
    width:calc(100% + 4px);
    margin-inline:-2px;
    gap:5px;
    padding:2px 2px 3px;
    scroll-snap-type:x proximity;
    overscroll-behavior-inline:contain;
  }
  .shell-nav a{
    min-height:44px;
    padding:10px 13px;
    font-size:.82rem;
    scroll-snap-align:start;
  }
  .shell-nav .shell-cta{margin-left:0;padding-inline:15px}

  main{padding-top:18px!important}
  .page{padding-top:16px!important}
  .hero{padding-top:0!important}
  .hero-grid,.content-grid,.section-grid,.about-wrap,.advisor-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .hero-copy,.hero-image,.card,.panel,.advisor-card{min-width:0}
  .hero-image img{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:16/10;
    object-fit:cover!important;
    object-position:center;
  }
  .sidebar{position:static!important}
  .cta-row,.trip-hero-cta,.trip-cta-actions{gap:10px}
  .btn,.cta-row a,.trip-hero-cta a,.trip-cta-actions a{
    min-height:48px;
  }
  .content-verification{padding:18px!important}
  .source-links a{min-height:44px;display:inline-flex;align-items:center}
}

@media (max-width:760px){
  :root{--mobile-edge:12px}
  .wrap,.page,.past-trips,.info-section,.why-travel-advisor-section{
    width:calc(100% - (var(--mobile-edge) * 2))!important;
    margin-inline:auto!important;
  }
  .page{padding-inline:0!important;padding-bottom:104px!important}
  main{padding-bottom:28px!important}
  h1,.hero h1,.hero-h1{font-size:clamp(1.85rem,8.4vw,2.55rem)!important;line-height:1.05!important}
  h2{font-size:clamp(1.45rem,6.4vw,2rem)!important}
  p,li{overflow-wrap:anywhere}

  .panel,.builder,.form-panel,.card,.hero-copy,.hero-image,.advisor-card,
  .elevated-wrap,.content-verification{
    padding:18px!important;
    border-radius:20px!important;
  }
  .hero{gap:14px!important}
  .hero-image img{border-radius:15px!important;aspect-ratio:4/3}

  .inquiry input,.inquiry select,.inquiry textarea,
  input,select,textarea{
    width:100%;
    min-height:48px;
    padding:12px 13px;
    font-size:16px!important;
  }
  textarea{min-height:132px}
  .form-actions .btn,.cta-strip-button{width:100%!important;min-height:50px}
  .summary-line{overflow-wrap:anywhere}

  .question-stage{min-height:0!important}
  .question-title br{display:none}
  .choices,.quiz-options,.choice-grid{
    grid-template-columns:1fr!important;
  }
  .choice,.choices button,.quiz-options button{min-height:50px!important}
  .controls{
    grid-template-columns:1fr 1fr!important;
    align-items:center;
  }
  .controls .helper{grid-column:1 / -1;grid-row:1;text-align:center}
  .controls #backBtn{grid-column:1;grid-row:2}
  .controls #nextBtn{grid-column:2;grid-row:2}

  .past-trips-grid,.trip-grid,.trips-grid,.destination-grid,.card-grid{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  .trip-card{
    min-height:220px!important;
    border-radius:20px!important;
    isolation:isolate;
  }
  .trip-card::before{
    background-position:center!important;
    background-size:cover!important;
  }
  .trip-content{padding:18px!important}

  .trust-grid,.reviews-grid,.process-grid,.faq-grid,.about-list{
    grid-template-columns:1fr!important;
  }
  .cta-strip{align-items:stretch!important;padding:20px!important}
  .about-photo{
    width:100%!important;
    min-height:0!important;
    aspect-ratio:4/5;
    border-radius:22px!important;
    background:transparent!important;
  }
  .about-photo > img{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    object-fit:cover!important;
    object-position:center top!important;
  }

  .site-shell-footer{
    width:calc(100% - 20px)!important;
    margin:24px auto 10px!important;
    border-radius:22px!important;
  }
  .shell-footer-main{grid-template-columns:1fr;gap:25px;padding:27px 22px 23px}
  .shell-footer-brand{grid-column:auto}
  .shell-footer-links a{min-height:44px;display:inline-flex;align-items:center}
  .shell-footer-bottom{align-items:flex-start;flex-direction:column;padding:16px 22px}
  .shell-footer-legal{gap:5px 16px}
  .shell-footer-legal a{min-height:36px;display:inline-flex;align-items:center}
  .shell-travel-note{padding:10px 22px 20px}

  .mobile-sticky-cta{
    left:10px!important;
    right:10px!important;
    bottom:max(10px,env(safe-area-inset-bottom))!important;
    padding:9px!important;
    border-radius:17px!important;
  }
  .mobile-sticky-cta a{min-height:48px;padding:10px!important}
  body{padding-bottom:calc(86px + env(safe-area-inset-bottom))!important}

  .not-found-main{padding-top:18px}
  .not-found-hero{width:calc(100% - 20px);gap:14px}
  .not-found-copy,.not-found-map{border-radius:22px}
  .not-found-copy{padding:28px 22px}
  .not-found-actions{display:grid;grid-template-columns:1fr}
  .not-found-actions a{justify-content:center}
}

@media (max-width:480px){
  .site-shell-header{width:calc(100% - 14px);margin-top:7px;border-radius:17px}
  .shell-header-inner{padding:8px 8px 7px}
  .shell-brand img{width:43px!important;height:38px!important}
  .shell-brand-note{display:none}
  .shell-nav a{padding-inline:11px;font-size:.79rem}
  .panel,.builder,.form-panel,.card,.hero-copy,.hero-image,.advisor-card,
  .elevated-wrap,.content-verification{padding:15px!important}
  .hero-image img{aspect-ratio:16/11}
  .cta-row,.trip-hero-cta,.trip-cta-actions{display:grid;grid-template-columns:1fr}
  .cta-row a,.trip-hero-cta a,.trip-cta-actions a{width:100%}
  .trip-card{min-height:210px!important}
  .trip-copy{display:block!important}
  .about-photo{aspect-ratio:3/4}
  .about-photo-overlay{padding:54px 15px 15px!important}
  .about-photo-role{font-size:.78rem!important}
  .mobile-sticky-cta{gap:7px!important}
  .mobile-sticky-cta a{font-size:.84rem!important}
}

@media (max-width:360px){
  .shell-brand-name{font-size:.9rem}
  .shell-nav a{padding-inline:10px}
  .controls{grid-template-columns:1fr!important}
  .controls .helper,.controls #backBtn,.controls #nextBtn{grid-column:1;grid-row:auto}
  .mobile-sticky-cta{flex-direction:column}
  body{padding-bottom:calc(136px + env(safe-area-inset-bottom))!important}
}

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

/* v2.12 — resilient destination photography and final visual polish */
img{
  max-width:100%;
}

.intro-photo img,
.about-photo > img{
  opacity:1!important;
  visibility:visible!important;
}

html.js .trip-card:not(.is-photo-ready)::before,
.trip-card::before{
  opacity:1!important;
}

.trip-card{
  background:#dceef7;
  border-color:rgba(255,255,255,.92);
  box-shadow:0 14px 32px rgba(20,49,72,.14);
}

.trip-card::before{
  filter:brightness(.92) saturate(1.1) contrast(1.03)!important;
}

.trip-card::after{
  background:linear-gradient(180deg,rgba(8,27,40,.02) 0%,rgba(8,27,40,.12) 44%,rgba(8,27,40,.58) 100%)!important;
}

.trip-card.is-disney::before{background-position:center 28%!important}
.trip-card.is-vermont::before{background-position:center 36%!important}
.trip-card.is-puertorico::before,
.trip-card.is-sanjuan::before{background-position:center 44%!important}

.trip-content{
  width:100%;
  border:1px solid rgba(255,255,255,.58);
  box-shadow:0 10px 26px rgba(6,28,42,.14);
}

@media (hover:hover) and (pointer:fine){
  .trip-card-link:hover .trip-card{
    transform:translateY(-5px);
    box-shadow:0 20px 40px rgba(20,49,72,.18);
  }
}

@media (hover:none){
  .trip-card:hover{
    transform:none!important;
  }
}

@media (max-width:640px){
  .shell-header-inner{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    align-items:center!important;
    gap:8px!important;
    padding:8px!important;
  }

  .shell-brand{
    padding-inline:4px;
  }

  .shell-nav{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    gap:5px!important;
    overflow:visible!important;
  }

  .shell-nav a{
    grid-column:span 2;
    min-width:0!important;
    min-height:38px!important;
    padding:7px 4px!important;
    font-size:.72rem!important;
    line-height:1.1!important;
    text-align:center;
  }

  .shell-nav a:nth-child(4),
  .shell-nav a:nth-child(5){
    grid-column:span 3;
  }

  .shell-nav .shell-cta{
    margin:0!important;
  }
}
