/* CampervanDeal Campervan Finder — theme-matched UI */
.cvd-finder{
  --cvd-ink:#16202a;
  --cvd-heading:#101820;
  --cvd-muted:#66727d;
  --cvd-line:#e4e8eb;
  --cvd-line-strong:#cfd6db;
  --cvd-soft:#f6f8f8;
  --cvd-soft-2:#fbfcfc;
  --cvd-white:#fff;
  --cvd-success:#24735f;
  --cvd-shadow:0 10px 30px rgba(16,24,32,.055);
  max-width:1120px;
  margin:40px auto;
  padding:0;
  color:var(--cvd-ink);
  font-family:inherit;
  font-size:16px;
}
.cvd-finder[hidden],.cvd-finder [hidden]{display:none!important}
.cvd-finder *{box-sizing:border-box}
.cvd-finder button,.cvd-finder input{font:inherit}
.cvd-finder button,.cvd-finder a.cvd-btn{touch-action:manipulation}
.cvd-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cvd-finder h3[tabindex="-1"]:focus-visible,.cvd-finder h2[tabindex="-1"]:focus-visible{outline:3px solid rgba(36,115,95,.28);outline-offset:6px;border-radius:4px}
.cvd-finder__intro,.cvd-finder__quiz,.cvd-finder__results{
  background:var(--cvd-white);
  border:1px solid var(--cvd-line);
  border-radius:20px;
  padding:clamp(28px,4vw,54px);
  box-shadow:var(--cvd-shadow);
}
.cvd-finder__intro{max-width:100%;position:relative;overflow:hidden}
.cvd-finder__intro:after{
  content:"";
  position:absolute;
  right:-80px;
  bottom:-110px;
  width:270px;
  height:270px;
  border-radius:50%;
  background:var(--cvd-soft);
  z-index:0;
}
.cvd-finder__intro>*{position:relative;z-index:1}
.cvd-finder__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0 0 13px;
  color:var(--cvd-muted);
  font-size:.76rem;
  line-height:1;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.cvd-finder__eyebrow:before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--cvd-success);
}
.cvd-finder h2,.cvd-finder h3{color:var(--cvd-heading);font-family:inherit;font-weight:750;letter-spacing:-.025em}
.cvd-finder h2{max-width:760px;font-size:clamp(2rem,4.3vw,3.45rem);line-height:1.04;margin:0 0 16px}
.cvd-finder h3{font-size:clamp(1.5rem,2.7vw,2.05rem);line-height:1.14;margin:0 0 10px}
.cvd-finder p{color:var(--cvd-muted);line-height:1.65}
.cvd-finder__intro>p{max-width:690px;font-size:1.02rem;margin:0 0 26px}
.cvd-btn{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid transparent;
  border-radius:11px;
  padding:12px 20px;
  font-weight:750;
  line-height:1.2;
  cursor:pointer;
  text-decoration:none!important;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease;
}
.cvd-btn--primary{background:var(--cvd-heading);color:#fff!important;box-shadow:0 5px 14px rgba(16,24,32,.12)}
.cvd-btn--primary:hover{background:#26313a;color:#fff!important;transform:translateY(-1px);box-shadow:0 8px 18px rgba(16,24,32,.15)}
.cvd-btn--primary:active{transform:translateY(0) scale(.97)}
.cvd-btn--primary:focus-visible,.cvd-back:focus-visible,.cvd-options input:focus-visible+span,.cvd-counter button:focus-visible{outline:3px solid rgba(36,115,95,.22);outline-offset:3px}

.cvd-finder__topbar{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;gap:20px;align-items:center;margin-bottom:42px}
.cvd-back{appearance:none;background:transparent;border:0;padding:4px 0;color:var(--cvd-muted);font-weight:700;cursor:pointer;white-space:nowrap}
.cvd-back:hover{color:var(--cvd-heading)}
.cvd-progress{height:5px;background:#edf0f1;border-radius:999px;overflow:hidden}
.cvd-progress span{display:block;width:0;height:100%;background:var(--cvd-heading);border-radius:999px;transition:width .25s ease}
.cvd-progress-text{font-size:.82rem;font-weight:650;color:var(--cvd-muted);white-space:nowrap}
.cvd-step{max-width:900px;margin:0 auto}
.cvd-step__lead{margin:0 0 2px}
.cvd-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:26px 0 0}
.cvd-options label{display:block;cursor:pointer;margin:0}
.cvd-options input{position:absolute;opacity:0;pointer-events:none}
.cvd-options label>span{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:6px;
  min-height:94px;
  padding:18px 20px;
  background:var(--cvd-white);
  border:1px solid var(--cvd-line);
  border-radius:13px;
  color:var(--cvd-heading);
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;
}
.cvd-options label>span:hover{border-color:var(--cvd-line-strong);background:var(--cvd-soft-2);transform:translateY(-1px)}
.cvd-options label:active>span{transform:translateY(0) scale(.98)}
.cvd-options input:checked+span{border-color:var(--cvd-heading);background:var(--cvd-soft-2);box-shadow:inset 0 0 0 1px var(--cvd-heading),0 5px 16px rgba(16,24,32,.045)}
.cvd-options input:checked+span:after{
  content:"✓";
  position:absolute;
  top:13px;
  right:14px;
  display:grid;
  place-items:center;
  width:23px;
  height:23px;
  border-radius:50%;
  background:var(--cvd-heading);
  color:#fff;
  font-size:.73rem;
  font-weight:800;
}
.cvd-options b{font-size:.97rem;font-weight:750;padding-right:28px}
.cvd-options small{color:var(--cvd-muted);font-size:.88rem;line-height:1.45;padding-right:10px}
.cvd-options--compact{grid-template-columns:repeat(4,minmax(0,1fr))}
.cvd-options--compact label>span{min-height:64px;padding:14px 12px;align-items:center;text-align:center}
.cvd-options--compact input:checked+span:after{display:none}
.cvd-step--error .cvd-options{border-radius:14px;box-shadow:0 0 0 3px rgba(180,56,56,.10)}
.cvd-step-error{display:flex;align-items:center;gap:8px;margin:16px 0 0;padding:11px 15px;border-radius:11px;background:#fdecec;border:1px solid #f4c6c6;color:#9a2f2f;font-size:.88rem;font-weight:650}
.cvd-step-error:before{content:"!";display:grid;place-items:center;flex:0 0 auto;width:18px;height:18px;border-radius:50%;background:#c0433f;color:#fff;font-size:.72rem;font-weight:800}

.cvd-counter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:26px 0 0}
.cvd-counter-card{background:var(--cvd-soft-2);border:1px solid var(--cvd-line);border-radius:14px;padding:20px}
.cvd-counter-card>span{display:block;margin-bottom:16px;color:var(--cvd-heading);font-weight:750}
.cvd-counter{display:flex;align-items:center;justify-content:space-between;gap:20px}
.cvd-counter button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--cvd-line-strong);border-radius:10px;background:#fff;color:var(--cvd-heading);font-size:1.35rem;line-height:1;cursor:pointer;transition:background .16s ease,transform .1s ease}
.cvd-counter button:hover{background:var(--cvd-soft)}
.cvd-counter button:active{transform:scale(.92)}
.cvd-counter strong{font-size:1.55rem;color:var(--cvd-heading)}
.cvd-child-ages{margin-top:22px;padding-top:22px;border-top:1px solid var(--cvd-line)}
.cvd-child-ages>label{display:block;color:var(--cvd-heading);font-weight:750}
.cvd-info{margin-top:18px;padding:15px 17px;border:1px solid #dbe7e2;border-radius:12px;background:#f5faf8;color:#53635e;font-size:.9rem;line-height:1.55}
.cvd-info:before{content:"NZ travel note";display:block;margin-bottom:4px;color:#315d51;font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.cvd-step-actions{max-width:900px;margin:28px auto 0;display:flex;justify-content:flex-end}
.cvd-step-actions .cvd-btn{min-width:148px}

.cvd-result-hero{max-width:820px;padding:6px 0 30px}
.cvd-result-hero>p{margin-bottom:0;font-size:1.01rem}
.cvd-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cvd-result-card{position:relative;min-height:190px;padding:22px;background:#fff;border:1px solid var(--cvd-line);border-radius:14px}
.cvd-result-card>span{display:inline-flex;margin-bottom:7px;color:var(--cvd-muted);font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.cvd-result-card h3{font-size:1.23rem;line-height:1.2;margin:4px 0 9px}
.cvd-result-card p{margin:0;font-size:.9rem;line-height:1.55}
.cvd-result-card--featured{border-color:var(--cvd-heading);background:var(--cvd-soft-2);box-shadow:inset 0 0 0 1px var(--cvd-heading)}
.cvd-result-card--featured:after{content:"Best fit";position:absolute;right:14px;top:14px;padding:5px 8px;border-radius:999px;background:var(--cvd-heading);color:#fff;font-size:.67rem;font-weight:800;letter-spacing:.03em}
.cvd-result-card--featured>span{padding-right:58px}
.cvd-result-columns{display:grid;grid-template-columns:1.08fr .92fr;gap:14px;margin-top:14px}
.cvd-result-panel,.cvd-priority-panel{padding:22px;background:var(--cvd-soft);border:1px solid #edf0f1;border-radius:14px}
.cvd-result-panel h3,.cvd-priority-panel h3{font-size:1.08rem;margin-bottom:14px;letter-spacing:-.01em}
.cvd-result-panel ul{margin:0;padding:0;list-style:none}
.cvd-result-panel li{position:relative;margin:11px 0;padding-left:24px;color:#53606a;line-height:1.5}
.cvd-result-panel li:before{content:"✓";position:absolute;left:0;top:0;color:var(--cvd-success);font-weight:900}
.cvd-specs{margin:0}
.cvd-specs div{display:grid;grid-template-columns:132px 1fr;gap:18px;padding:11px 0;border-bottom:1px solid #e2e7e8}
.cvd-specs div:last-child{border-bottom:0;padding-bottom:0}
.cvd-specs dt{color:var(--cvd-heading);font-weight:750}
.cvd-specs dd{margin:0;color:var(--cvd-muted);text-align:right}
.cvd-priority-panel{margin-top:14px;background:#fff;border-color:var(--cvd-line)}
.cvd-priority-row{margin:13px 0}
.cvd-priority-row>div:first-child{display:flex;justify-content:space-between;gap:20px;margin-bottom:7px;color:#53606a;font-size:.87rem}
.cvd-priority-row strong{color:var(--cvd-heading)}
.cvd-priority-track{height:5px;overflow:hidden;background:#e9edef;border-radius:999px}
.cvd-priority-track span{display:block;height:100%;background:var(--cvd-heading);border-radius:999px}
.cvd-results-cta{margin-top:22px}
.cvd-disclaimer{max-width:830px;margin:15px 0 0;font-size:.78rem!important;line-height:1.55!important}
.cvd-back--results{margin-bottom:12px}

@media(max-width:900px){
  .cvd-finder{margin:28px auto}
  .cvd-result-grid{grid-template-columns:1fr}
  .cvd-result-card{min-height:auto}
  .cvd-result-columns{grid-template-columns:1fr}
}
@media(max-width:700px){
  .cvd-finder{margin:18px 0}
  .cvd-finder__intro,.cvd-finder__quiz,.cvd-finder__results{padding:22px 18px;border-radius:15px;box-shadow:none}
  .cvd-finder__intro:after{width:180px;height:180px;right:-80px;bottom:-90px}
  .cvd-finder h2{font-size:clamp(1.8rem,9vw,2.45rem)}
  .cvd-finder h3{font-size:1.45rem}
  .cvd-finder__intro>p{font-size:.96rem}
  .cvd-finder__topbar{grid-template-columns:auto 1fr;gap:14px;margin-bottom:30px}
  .cvd-progress-text{grid-column:1/-1;text-align:right;margin-top:-8px}
  .cvd-options,.cvd-counter-grid{grid-template-columns:1fr;gap:9px}
  .cvd-options--compact{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cvd-options label>span{min-height:76px;padding:15px 16px}
  .cvd-options b{font-size:.94rem}
  .cvd-options small{font-size:.84rem}
  .cvd-counter-card{padding:17px}
  .cvd-result-card{padding:18px}
  .cvd-result-panel,.cvd-priority-panel{padding:18px}
  .cvd-specs div{grid-template-columns:1fr;gap:3px}
  .cvd-specs dd{text-align:left}
  .cvd-result-card--featured:after{top:12px;right:12px}

  /* Keep the primary action within thumb reach on small screens instead of
     requiring a scroll to the bottom of a long question list. */
  .cvd-finder__form{padding-bottom:104px}
  .cvd-step-actions{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    margin:0;
    max-width:none;
    padding:14px 18px calc(14px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-top:1px solid var(--cvd-line);
    box-shadow:0 -10px 24px rgba(16,24,32,.09);
    z-index:20;
  }
  .cvd-step-actions .cvd-btn,.cvd-btn{width:100%}
}

/* Entrance animation: each question and the results content ease in as they
   appear. Because [hidden] elements aren't rendered, this fires naturally
   whenever a step or the results panel is revealed — no extra JS needed. */
@keyframes cvdFadeUp{
  from{opacity:0; transform:translateY(10px)}
  to{opacity:1; transform:translateY(0)}
}
.cvd-step:not([hidden]){animation:cvdFadeUp .32s cubic-bezier(.16,1,.3,1)}
.cvd-finder__results:not([hidden]) .cvd-result-hero{animation:cvdFadeUp .32s cubic-bezier(.16,1,.3,1)}
.cvd-finder__results:not([hidden]) .cvd-result-card{animation:cvdFadeUp .4s cubic-bezier(.16,1,.3,1) backwards}
.cvd-finder__results:not([hidden]) .cvd-result-card:nth-child(1){animation-delay:.06s}
.cvd-finder__results:not([hidden]) .cvd-result-card:nth-child(2){animation-delay:.13s}
.cvd-finder__results:not([hidden]) .cvd-result-card:nth-child(3){animation-delay:.2s}
.cvd-finder__results:not([hidden]) .cvd-result-columns{animation:cvdFadeUp .4s cubic-bezier(.16,1,.3,1) backwards;animation-delay:.24s}
.cvd-finder__results:not([hidden]) .cvd-priority-panel{animation:cvdFadeUp .4s cubic-bezier(.16,1,.3,1) backwards;animation-delay:.3s}

@media(prefers-reduced-motion:reduce){
  .cvd-finder *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
