@media (max-width: 760px){
  #planner.panel,
  .builder{
    overflow: visible !important;
  }

  .quiz-shell{
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
    padding: 16px !important;
  }

  .progress-wrap,
  .question-stage,
  .question-main,
  .choices-wrap,
  .choices,
  .controls{
    min-width: 0 !important;
    width: 100% !important;
  }

  .question-stage,
  .question-main{
    overflow: visible !important;
  }

  .choices-wrap{
    margin-top: 16px !important;
    padding-top: 0 !important;
  }

  .choices{
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    align-items: stretch !important;
  }

  .choice{
    position: relative !important;
    min-height: 92px !important;
    height: auto !important;
    padding: 14px !important;
    justify-content: center !important;
    -webkit-tap-highlight-color: transparent;
  }

  .choice-title,
  .choice-sub{
    word-break: normal !important;
    overflow-wrap: anywhere;
  }

  .controls{
    position: static !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    margin-top: 16px !important;
    padding-top: 0 !important;
    background: transparent !important;
  }

  .controls .helper{
    display: none !important;
  }

  .controls .btn,
  #backBtn,
  #nextBtn{
    width: 100% !important;
    min-height: 48px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  #backBtn[disabled]{
    opacity: .55 !important;
  }

  .unlock-screen{
    min-height: 0 !important;
    padding: 4px 0 !important;
  }

  .unlock-card{
    width: 100% !important;
    padding: 22px 16px !important;
  }
}

@media (max-width: 480px){
  .question-title{
    font-size: clamp(1.45rem, 8vw, 1.95rem) !important;
    line-height: 1.08 !important;
  }

  .question-copy{
    font-size: .96rem !important;
    line-height: 1.55 !important;
  }

  .controls{
    grid-template-columns: 1fr !important;
  }
}



@media (max-width: 760px){
  .mobile-sticky-cta,
  .floating-text-btn{
    display:none !important;
  }
  body{
    padding-bottom:24px !important;
  }
  #planner,
  #planner .builder,
  #planner .quiz-shell,
  #planner .question-stage,
  #planner .question-main,
  #planner .choices-wrap,
  #planner .choices,
  #planner .controls,
  #form,
  #form form{
    overflow:visible !important;
    min-width:0 !important;
    width:100% !important;
  }
  #planner .quiz-shell{
    display:block !important;
    height:auto !important;
    min-height:0 !important;
    padding:16px !important;
  }
  #planner .progress-wrap{
    margin-bottom:14px !important;
  }
  #planner .question-title{
    font-size:clamp(1.4rem, 7vw, 1.95rem) !important;
    line-height:1.1 !important;
    max-width:none !important;
  }
  #planner .question-copy{
    font-size:.96rem !important;
    line-height:1.5 !important;
  }
  #planner .choices{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
  }
  #planner .choice{
    position:relative !important;
    display:flex !important;
    min-height:96px !important;
    height:auto !important;
    padding:14px !important;
    border-radius:16px !important;
    touch-action:manipulation !important;
  }
  #planner .controls{
    position:static !important;
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
    margin-top:14px !important;
    padding-top:0 !important;
    background:transparent !important;
  }
  #planner .controls .helper{
    display:none !important;
  }
  #planner .controls .btn,
  #planner #backBtn,
  #planner #nextBtn{
    width:100% !important;
    min-height:48px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
  #planner .unlock-screen{
    min-height:0 !important;
    padding:8px 0 0 !important;
  }
  #planner .unlock-card{
    width:100% !important;
    padding:20px 16px !important;
  }
}
@media (max-width: 480px){
  #planner .controls{
    grid-template-columns:1fr !important;
  }
}



@media (max-width: 760px){
  #planner,
  #planner .builder,
  #planner .quiz-shell,
  #planner #questionStage,
  #planner .question-main,
  #planner .choices-wrap,
  #planner #choices,
  #planner .controls{
    overflow:visible !important;
    max-height:none !important;
    height:auto !important;
  }

  #planner .quiz-shell{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:14px !important;
  }

  #planner #questionStage{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:14px !important;
  }

  #planner .question-main{
    flex:0 0 auto !important;
    min-height:0 !important;
  }

  #planner .choices-wrap{
    flex:0 0 auto !important;
    margin-top:0 !important;
    padding-top:0 !important;
  }

  #planner #choices{
    display:grid !important;
    grid-template-columns:1fr !important;
    align-items:stretch !important;
    gap:12px !important;
  }

  #planner #choices .choice{
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:flex-start !important;
    width:100% !important;
    min-height:92px !important;
    height:auto !important;
    visibility:visible !important;
    opacity:1 !important;
    transform:none !important;
    white-space:normal !important;
  }

  #planner #choices .choice-title,
  #planner #choices .choice-sub{
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }

  #planner .controls{
    position:static !important;
    inset:auto !important;
    margin-top:2px !important;
  }
}



.conversion-zone,.blueprint-section{max-width:var(--max);margin:34px auto 0;padding:0 20px}
.conversion-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:24px;align-items:start}
.panel-lite{background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(246,251,255,.98));border:1px solid rgba(77,168,218,.14);border-radius:28px;box-shadow:0 18px 50px rgba(28,54,79,.08);padding:30px}
.trust-points{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}
.trust-point{display:flex;gap:14px;align-items:flex-start;padding:18px;border-radius:20px;background:#fff;border:1px solid rgba(15,23,42,.06)}
.trust-point h3{margin:0 0 6px;font-size:1.02rem}
.trust-point p{margin:0;color:var(--muted);line-height:1.6}
.trust-icon{width:42px;height:42px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#4da8da,#85d5f2);color:#fff;font-weight:800;flex:0 0 42px}
.example-cards{display:grid;gap:16px;margin-top:22px}
.example-card{padding:22px;border-radius:22px;background:#fff;border:1px solid rgba(15,23,42,.06);box-shadow:0 10px 26px rgba(28,54,79,.05)}
.example-card.featured{background:linear-gradient(180deg,#103c55,#185a7b);color:#fff;border-color:transparent}
.example-card.featured p,.example-card.featured li{color:rgba(255,255,255,.92)}
.example-card h3{margin:6px 0 8px;font-size:1.18rem}
.example-price{margin:0 0 12px;font-weight:800;color:#1d5f84}
.example-card.featured .example-price{color:#c8efff}
.example-card ul{margin:0;padding-left:18px;color:var(--muted);line-height:1.65}
.example-badge{display:inline-flex;padding:8px 12px;border-radius:999px;background:#eaf6fd;color:#176c9d;font-size:.8rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.example-card.featured .example-badge{background:rgba(255,255,255,.14);color:#fff}
.blueprint-shell{display:grid;grid-template-columns:.88fr 1.12fr;gap:24px;align-items:stretch;background:linear-gradient(135deg,#0e3348 0%,#134d6b 55%,#1f7096 100%);border-radius:32px;padding:30px;box-shadow:0 24px 60px rgba(15,23,42,.16)}
.blueprint-copy{color:#fff;padding:8px 4px}
.blueprint-copy .section-title,.blueprint-copy .section-copy{color:#fff}
.blueprint-mini-points{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.blueprint-mini-points span{display:inline-flex;padding:10px 12px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);color:#fff;font-weight:700;font-size:.92rem}
.blueprint-builder{padding:24px;background:rgba(255,255,255,.97)}
.blueprint-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.blueprint-fields .full{grid-column:1 / -1}
.blueprint-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.blueprint-output{margin-top:18px;border-radius:24px;background:linear-gradient(180deg,#f8fbfd,#eef7fc);border:1px solid rgba(77,168,218,.16);padding:22px;min-height:270px}
.blueprint-placeholder{color:var(--muted);line-height:1.7}
.blueprint-plan{display:grid;gap:16px}
.blueprint-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap}
.blueprint-head h3{margin:0;font-size:1.35rem}
.blueprint-tag{display:inline-flex;padding:8px 12px;border-radius:999px;background:#103c55;color:#fff;font-size:.82rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.blueprint-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.bp-stat{padding:14px;border-radius:18px;background:#fff;border:1px solid rgba(15,23,42,.06)}
.bp-stat .label{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-2);margin-bottom:4px}
.bp-stat strong{font-size:1rem}
.bp-body{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bp-card{padding:18px;border-radius:20px;background:#fff;border:1px solid rgba(15,23,42,.06)}
.bp-card h4{margin:0 0 8px;font-size:1rem}
.bp-card p,.bp-card ul{margin:0;color:var(--muted);line-height:1.65}
.bp-card ul{padding-left:18px}
.blueprint-note{padding:16px 18px;border-radius:18px;background:rgba(16,60,85,.06);color:#234256;line-height:1.65}
@media (max-width: 980px){.conversion-grid,.blueprint-shell{grid-template-columns:1fr}.trust-points,.blueprint-fields,.bp-body,.blueprint-stats{grid-template-columns:1fr 1fr}}
@media (max-width: 760px){.conversion-zone,.blueprint-section{padding:0 14px}.panel-lite,.blueprint-shell{padding:20px}.trust-points,.blueprint-fields,.bp-body,.blueprint-stats{grid-template-columns:1fr}.blueprint-actions .btn{width:100%}.blueprint-output{min-height:auto}}

/* Sand & Slopes v2.0 — editorial homepage hero */
.site-intro{
  width:min(1280px,calc(100% - 32px));
  margin:22px auto 26px;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(520px,1.1fr);
  min-height:560px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.88);
  border-radius:32px;
  background:
    radial-gradient(circle at 12% 8%,rgba(121,197,233,.25),transparent 34%),
    linear-gradient(145deg,#0d344a 0%,#144f6d 58%,#1d6f95 100%);
  color:#fff;
  box-shadow:0 28px 72px rgba(16,60,85,.23);
}
.site-intro-copy{
  align-self:center;
  padding:62px 30px 62px 56px;
}
.site-intro-kicker{
  display:inline-flex;
  align-items:center;
  padding:9px 13px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#dff5ff;
  font-size:.78rem;
  font-weight:850;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.site-intro h1{
  max-width:690px;
  margin:22px 0 18px;
  color:#fff;
  font-size:clamp(3rem,5.15vw,5.2rem);
  line-height:.96;
  letter-spacing:-.055em;
}
.site-intro-copy>p{
  max-width:650px;
  margin:0;
  color:rgba(255,255,255,.85);
  font-size:clamp(1.03rem,1.35vw,1.22rem);
  line-height:1.7;
}
.site-intro-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.site-intro-actions .btn{min-height:50px;padding:13px 21px}
.site-intro-actions .primary{background:#fff!important;color:#103c55!important}
.site-intro-actions .secondary{
  border-color:rgba(255,255,255,.35)!important;
  background:rgba(255,255,255,.08)!important;
  color:#fff!important;
}
.site-intro-proof{display:flex;flex-wrap:wrap;gap:9px 18px;margin-top:24px}
.site-intro-proof span{position:relative;padding-left:18px;color:#d9f2ff;font-size:.88rem;font-weight:750}
.site-intro-proof span::before{content:"✓";position:absolute;left:0;color:#91dcff;font-weight:900}
.site-intro-gallery{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(190px,.6fr);
  grid-template-rows:1fr 1fr;
  gap:12px;
  min-width:0;
  padding:16px;
}
.intro-photo{
  position:relative;
  min-width:0;
  min-height:0;
  margin:0;
  overflow:hidden;
  border-radius:22px;
  background:#d9edf8;
}
.intro-photo-main{grid-row:1 / span 2}
.intro-photo img{width:100%!important;height:100%!important;display:block;object-fit:cover!important;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.intro-photo:hover img{transform:scale(1.025)}
.intro-photo::after{
  content:"";
  position:absolute;
  inset:48% 0 0;
  background:linear-gradient(180deg,transparent,rgba(5,24,36,.72));
  pointer-events:none;
}
.intro-photo figcaption{
  position:absolute;
  z-index:1;
  left:18px;
  bottom:16px;
  color:#fff;
  font-size:.9rem;
  font-weight:850;
  letter-spacing:.015em;
  text-shadow:0 2px 12px rgba(0,0,0,.4);
}
.quiz-heading{max-width:860px}
@media (max-width:1020px){
  .site-intro{grid-template-columns:1fr;min-height:0}
  .site-intro-copy{padding:52px 38px 34px}
  .site-intro-gallery{min-height:390px}
}
@media (max-width:640px){
  .site-intro{width:calc(100% - 20px);margin:12px auto 20px;border-radius:24px}
  .site-intro-copy{padding:38px 22px 26px}
  .site-intro h1{font-size:clamp(2.55rem,13vw,3.7rem)}
  .site-intro-actions{display:grid;grid-template-columns:1fr}
  .site-intro-actions .btn{width:100%}
  .site-intro-proof{display:grid;gap:9px}
  .site-intro-gallery{grid-template-columns:1fr 1fr;grid-template-rows:230px 150px;min-height:0;padding:10px;gap:9px}
  .intro-photo-main{grid-column:1 / -1;grid-row:auto}
  .intro-photo{border-radius:17px}
  .intro-photo figcaption{left:12px;bottom:10px;font-size:.78rem}
}
/* v2.3 final image fixes */
html.js .trip-card.is-banff::before,
html.js .trip-card.is-banff:not(.is-photo-ready)::before,
.trip-card.is-banff::before{
  background-image:linear-gradient(180deg,rgba(12,24,38,.16),rgba(12,24,38,.44)),url('../images/banff-card.webp')!important;
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}

.about-photo{
  overflow:hidden!important;
  background:#fff!important;
}

.about-photo > img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:scale(1.035)!important;
}

/* v2.5 — close the space between the in-flow header and homepage hero. */
.page{
  padding-top:8px!important;
}

.site-intro{
  margin-top:0!important;
}

@media (max-width:640px){
  .page{
    padding-top:5px!important;
  }

  .site-intro{
    margin-top:0!important;
  }
}
