
:root{--snow:#f5f2eb;--paper:#fcfaf5;--night:#122833;--pine:#24493d;--frost:#dbe6e8;--graphite:#263238;--smoke:#667178;--line:rgba(18,40,51,.16);--line2:rgba(18,40,51,.09);--serif:ui-serif,"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--sans:"Avenir Next",Avenir,Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--snow);color:var(--graphite);font-family:var(--sans);line-height:1.55}button,a{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}.shell{width:min(1240px,calc(100% - 64px));margin:auto}.view{display:none}.view.active{display:block}.kicker{color:var(--pine);font-size:.66rem;font-weight:760;letter-spacing:.18em;text-transform:uppercase}.display,.title,.h2{font-family:var(--serif);color:var(--night);font-weight:500;text-wrap:balance}.display{font-size:clamp(4.1rem,7.1vw,7.6rem);line-height:.91;letter-spacing:-.052em;max-width:8.4ch;margin:.3em 0 0}.title{font-size:clamp(4rem,6.5vw,7rem);line-height:.9;letter-spacing:-.052em;max-width:7.6ch;margin:.3em 0 0}.h2{font-size:clamp(2.5rem,4.4vw,4.5rem);line-height:.98;letter-spacing:-.04em;margin:.3em 0 0}.lede{max-width:58ch;color:#526168;font-size:clamp(1.05rem,1.45vw,1.22rem);line-height:1.72}.muted{color:var(--smoke)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 22px;border-radius:2px;border:1px solid var(--pine);background:var(--pine);color:#fff;font-size:.78rem;font-weight:760;letter-spacing:.025em}.btn.light{background:transparent;color:var(--night);border-color:var(--line)}.link{font-size:.78rem;font-weight:720;border-bottom:1px solid var(--line);padding-bottom:2px}.header{border-bottom:1px solid var(--line2);background:var(--snow)}.head{height:88px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px}.mark{width:29px;color:var(--pine)}.mark svg{width:29px;height:29px}.word{display:grid;line-height:1}.word b{font-family:var(--serif);font-size:1.18rem;color:var(--night);font-weight:600;letter-spacing:-.03em}.word small{margin-top:4px;font-size:.56rem;text-transform:uppercase;letter-spacing:.17em;color:#65727a;font-weight:760}.nav{display:flex;align-items:center;gap:30px;font-size:.75rem;font-weight:700;letter-spacing:.035em;color:#495961}.nav .navcta{background:var(--night);color:#fff;padding:12px 18px;border-radius:2px}.mobile-menu{display:none}
.hero{padding:62px 0 125px}.hero-grid{display:grid;grid-template-columns:minmax(0,.78fr) minmax(500px,1.22fr);gap:clamp(54px,7vw,116px);align-items:center}.hero-copy{position:relative}.hero-copy:before{content:'01';position:absolute;top:-28px;color:rgba(18,40,51,.3);font-family:var(--serif);font-size:.8rem}.hero-actions{display:flex;align-items:center;gap:22px;margin-top:34px}.proof{counter-reset:p;margin-top:42px;padding-top:19px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.proof span{counter-increment:p;color:#69757a;font-size:.69rem;font-weight:690}.proof span:before{content:'0' counter(p);display:block;margin-bottom:5px;color:#8b969a;font-family:var(--serif);font-size:.58rem}.hero-media{position:relative}.hero-media:before{content:'FINNISH LAPLAND · WINTER';position:absolute;left:-34px;top:14px;z-index:2;writing-mode:vertical-rl;transform:rotate(180deg);font-size:.54rem;font-weight:760;letter-spacing:.19em;color:#748087}.hero-media img{width:100%;height:680px;object-fit:cover;display:block}.caption{position:absolute;right:14px;bottom:11px;color:#fff;font-size:.52rem;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 1px 8px #0008}.destsec{padding:105px 0 150px;border-top:1px solid var(--line2)}.destlist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:48px;border-top:1px solid var(--line)}.destitem{padding:34px 30px 34px 0;border-bottom:1px solid var(--line);position:relative;min-width:0}.destitem+ .destitem{padding-left:30px;border-left:1px solid var(--line2)}.destitem:nth-child(3n+1){padding-left:0;border-left:0}.destitem h3{font:500 clamp(2.65rem,4vw,4.5rem)/.94 var(--serif);letter-spacing:-.05em;color:var(--night);margin:26px 0 14px}.destitem p{max-width:36ch}.desttop{display:flex;align-items:center;justify-content:space-between;gap:12px}.idx{font:500 .68rem var(--serif);color:#8c979b}.destfoot{margin-top:26px;font-size:.61rem;line-height:1.55;letter-spacing:.075em;text-transform:uppercase;color:#6c777d}
.desthero{padding:52px 0 125px}.destgrid{display:grid;grid-template-columns:minmax(0,.78fr) minmax(520px,1.22fr);grid-template-areas:'copy image';gap:clamp(58px,8vw,128px);align-items:stretch}.destgrid.reverse{grid-template-columns:minmax(520px,1.15fr) minmax(0,.85fr);grid-template-areas:'image copy'}.destcopy{grid-area:copy;display:flex;flex-direction:column;justify-content:center}.destmedia{grid-area:image;position:relative}.destmedia img{width:100%;height:660px;object-fit:cover;display:block}.crumb{font-size:.64rem;color:#79848a;letter-spacing:.06em}.facts{margin-top:28px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:9px;font-size:.75rem;color:#66737a}.facts b{color:var(--night)}
.band{background:#e9eff0}.section{padding:100px 0 125px}.editorialgrid{display:grid;grid-template-columns:minmax(220px,.42fr) minmax(0,1fr);gap:80px}.sectionhead .h2{font-size:clamp(2.15rem,3.2vw,3.35rem);max-width:9ch}.rows{border-top:1px solid #28404b3b}.row{padding:28px 0 23px;border-bottom:1px solid var(--line2)}.row h3{font:500 clamp(1.9rem,2.7vw,2.7rem)/1.02 var(--serif);letter-spacing:-.035em;color:var(--night);margin:8px 0 9px}.row p{max-width:65ch}.row .meta{margin-top:12px;font-size:.75rem;color:#355247;font-weight:720}.cta-band{background:var(--night);color:#fff;padding:55px 60px;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end}.cta-band .h2{color:#f8f4ea;max-width:12ch}.cta-band p{color:#bdc9ce}
.planner{padding:38px 0 110px}.back{font-size:.68rem;color:#6f7b80;letter-spacing:.045em}.planner-shell{display:grid;grid-template-columns:170px minmax(0,1fr);grid-template-areas:'image image' 'rail stage' 'rail controls' 'rail support';gap:0 70px;margin-top:30px}.planimg{grid-area:image;position:relative;margin-bottom:54px}.planimg img{width:100%;height:310px;object-fit:cover}.rail{grid-area:rail}.railhead{padding-bottom:18px;border-bottom:1px solid var(--line)}.steptext{font-size:.61rem;color:#829096;text-transform:uppercase;letter-spacing:.08em}.progress{margin-top:22px}.prog{position:relative;min-height:54px;padding-left:20px;border-left:1px solid #1228332e;color:#8c969a;display:grid;grid-template-columns:26px 1fr;font-size:.7rem}.prog:before{content:'';position:absolute;left:-3px;top:7px;width:5px;height:5px;border-radius:50%;background:#a5aeb2}.prog.current{color:var(--night)}.prog.current:before{width:9px;height:9px;left:-5px;top:5px;background:var(--pine)}.prog.done{color:#5f766c}.prog.done:before{background:var(--pine)}.stage{grid-area:stage}.stage .h2{font-size:clamp(3rem,5vw,5.35rem);max-width:12ch}.choices{margin-top:28px}.choice{display:block;width:100%;text-align:left;padding:24px 56px 24px 0;border:0;border-bottom:1px solid var(--line);background:transparent;position:relative;color:inherit}.choice:first-child{border-top:1px solid var(--line)}.choice:before{content:'';position:absolute;right:4px;top:26px;width:18px;height:18px;border:1px solid #aab4b7;border-radius:50%}.choice.selected{padding-left:14px}.choice.selected:before{background:var(--pine);border-color:var(--pine);box-shadow:inset 0 0 0 4px var(--snow)}.choice h3{font:500 1.7rem var(--serif);color:var(--night);margin:5px 0}.controls{grid-area:controls;display:flex;justify-content:space-between;align-items:center;padding-top:26px}.transport{margin-top:26px;background:var(--night);color:#fff;padding:34px}.transport h3{font:500 2rem var(--serif);margin:18px 0 8px}.transport p{color:#c5d0d4}.transport ol{padding-left:18px;color:#e8edee}.summary{display:grid;grid-template-columns:repeat(4,1fr);margin:34px 0 38px;border-block:1px solid var(--line)}.summary div{padding:18px;border-right:1px solid var(--line2)}.summary div:first-child{padding-left:0}.summary div:last-child{border-right:0}.summary span{display:block;font-size:.54rem;color:#879196;text-transform:uppercase;letter-spacing:.13em}.summary b{display:block;margin-top:5px;font:600 1.06rem var(--serif);color:var(--night)}.booking{border-top:1px solid var(--line)}.bookrow{padding:22px 0;border-bottom:1px solid var(--line2);display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px}.bookrow.primary{margin-top:0;padding:30px 28px;background:#e6ece8;border:0}.bookrow h3{font:600 1.45rem var(--serif);color:var(--night);margin:4px 0}.bookrow.primary h3{font-size:2.35rem}.readyimg{position:relative;margin-top:50px}.readyimg img{width:100%;height:300px;object-fit:cover;display:block}
.footer{background:var(--night);color:#e7edef;margin-top:0}.foot{padding:58px 0 38px;display:flex;justify-content:space-between;gap:40px}.footbrand{font:600 1.55rem var(--serif)}.foot p{color:#aebbc0}.footlinks{display:grid;grid-template-columns:repeat(2,auto);gap:10px 25px;font-size:.75rem}.legal{padding:20px 0 30px;border-top:1px solid #ffffff21;font-size:.67rem;color:#aebbc0;display:flex;justify-content:space-between;gap:30px}
@media(max-width:1020px){.shell{width:min(100% - 40px,1240px)}.hero-grid,.destgrid,.destgrid.reverse{grid-template-columns:1fr;grid-template-areas:'copy' 'image';gap:38px}.hero-media:before{display:none}.hero-media img{height:min(650px,70vw)}.destmedia img{height:auto;aspect-ratio:16/9}.editorialgrid{grid-template-columns:1fr;gap:34px}.planner-shell{grid-template-columns:150px 1fr;gap:0 45px}}
@media(max-width:980px) and (min-width:721px){
  .destlist{grid-template-columns:repeat(2,minmax(0,1fr))}
  .destitem,.destitem+ .destitem,.destitem:nth-child(3n+1){padding:32px 28px;border-left:1px solid var(--line2)}
  .destitem:nth-child(2n+1){padding-left:0;border-left:0}
  .destitem h3{font-size:clamp(2.8rem,5vw,3.8rem)}
}
@media(max-width:720px){.shell{width:min(100% - 28px,1240px)}.header{position:sticky;top:0;z-index:30;background:#f5f2ebee;backdrop-filter:blur(16px)}.head{height:68px}.nav{display:none}.mobile-menu{display:block;font-size:.72rem}.display{font-size:clamp(3.35rem,15vw,4.75rem);max-width:8.2ch}.title{font-size:clamp(3.35rem,15vw,4.9rem);max-width:8.4ch}.h2{font-size:clamp(2.5rem,11vw,3.35rem)}.hero{padding:42px 0 72px}.hero-grid{gap:31px}.hero-actions{flex-direction:column;align-items:stretch;gap:13px}.hero-actions .btn{width:100%}.proof{grid-template-columns:1fr;gap:8px;margin-top:30px}.proof span:before{display:inline-block;margin-right:9px}.hero-media img{height:auto;aspect-ratio:4/3}.destsec{padding:72px 0 94px}.destlist{grid-template-columns:1fr}.destitem,.destitem+.destitem,.destitem:nth-child(3n+1){padding:27px 0;border-left:0}.destitem h3{font-size:3.25rem}.desthero{padding:36px 0 76px}.destmedia img{aspect-ratio:4/3}.section{padding:70px 0 80px}.editorialgrid{gap:28px}.cta-band{grid-template-columns:1fr;padding:34px 25px}.planner{padding:24px 0 78px}.planner-shell{display:block;margin-top:22px}.planimg{margin-bottom:32px}.planimg img{height:160px}.rail{border-bottom:1px solid var(--line);padding-bottom:22px}.progress{display:grid;grid-template-columns:repeat(5,1fr);margin-top:14px}.prog{min-height:38px;padding:10px 0 0;border-left:0;border-top:1px solid var(--line);display:block;text-align:center}.prog:before{left:50%;top:-3px;transform:translateX(-50%)}.prog.current:before{left:50%;top:-5px}.prog b{display:none}.prog span{display:none}.prog.current span{display:block;font-size:.58rem}.stage{margin-top:30px}.stage .h2{font-size:clamp(2.85rem,13vw,4rem)}.choice{padding:20px 48px 20px 0}.controls{flex-direction:column-reverse;gap:10px}.controls .btn{width:100%}.summary{grid-template-columns:1fr 1fr}.summary div{padding:14px 12px}.summary div:nth-child(even){border-right:0}.bookrow{grid-template-columns:1fr}.bookrow .btn{width:100%}.readyimg img{height:190px}.foot{flex-direction:column}.legal{flex-direction:column}.caption{font-size:.49rem}}

/* Final premium polish: device-safe spacing, touch feedback and Ready hierarchy. */
:where(a,button):focus-visible{outline:2px solid var(--pine);outline-offset:4px}
a,button{-webkit-tap-highlight-color:transparent}
@media(hover:none){.btn:active{transform:scale(.992)}.choice:active{background:#ffffff94}.choice.selected:active{background:#e7f0ea}}
@media(max-width:720px){
  .header{padding-top:env(safe-area-inset-top)}
  .head{height:62px;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .hero{padding-top:30px;padding-bottom:58px}
  .hero .display{font-size:clamp(2.9rem,13.2vw,4.05rem);line-height:.965;max-width:8.6ch}
  .hero .lede{margin-top:1.15rem}
  .hero-actions{margin-top:1.45rem}
  .proof{margin-top:1.55rem}
  #rovaniemi .destmedia img{object-position:48% 54%}#levi .destmedia img{object-position:57% 48%}
  .caption{right:9px;bottom:8px;max-width:calc(100% - 18px);font-size:.49rem;line-height:1.25;letter-spacing:.105em}
  .stage .h2{max-width:10.5ch}
  .choice{min-height:58px;padding:18px 48px 18px 16px;touch-action:manipulation}.choice.selected{padding-left:16px}.choice:before{right:15px;top:19px}
  .bookrow:not(.primary){padding-block:17px}.bookrow:not(.primary) h3{font-size:1.16rem;line-height:1.25}.bookrow.primary{padding-block:22px}
  .readyimg{margin-top:38px}.readyimg img{height:155px}
}
@media(min-width:721px) and (pointer:coarse){.choice{min-height:76px}.btn{min-height:54px}}

/* Image Placement & Art Direction Pass V1 */
.hero-media img{
  height:620px;
  object-position:center center;
}
#rovaniemi .destmedia img,
#levi .destmedia img{
  height:590px;
  object-fit:cover;
}
#rovaniemi .destmedia img{object-position:center 52%}
#levi .destmedia img{object-position:center 48%}

#planner .planimg{
  margin-bottom:46px;
  overflow:hidden;
}
#planner .planimg img{
  height:260px;
  object-fit:cover;
  object-position:center 55%;
  display:block;
}

.transport-support-image,
.activity-support-image{
  margin-top:28px;
  overflow:hidden;
  border-top:1px solid var(--line2);
}
.transport-support-image img{
  width:100%;
  height:205px;
  object-fit:cover;
  object-position:center 58%;
  display:block;
}
.activity-support-image img{
  width:100%;
  height:360px;
  object-fit:cover;
  object-position:center 58%;
  display:block;
}

#planner .readyimg{
  margin-top:42px;
  overflow:hidden;
}
#planner .readyimg img{
  height:240px;
  object-fit:cover;
  object-position:center 52%;
}

@media(max-width:1020px){
  .hero-media img{height:auto;aspect-ratio:4/3}
  #rovaniemi .destmedia img,
  #levi .destmedia img{height:auto;aspect-ratio:4/3}
}

@media(max-width:720px){
  .hero-media img{
    height:auto;
    aspect-ratio:4/3;
    object-position:center center;
  }
  #rovaniemi .destmedia img,
  #levi .destmedia img{
    height:auto;
    aspect-ratio:4/3;
  }
  #planner .planimg{margin-bottom:28px}
  #planner .planimg img{
    height:145px;
    object-position:center 55%;
  }
  .transport-support-image{margin-top:22px}
  .transport-support-image img{
    height:138px;
    object-position:center 56%;
  }
  .activity-support-image{margin-top:24px}
  .activity-support-image img{
    height:255px;
    object-position:center 60%;
  }
  #planner .readyimg{
    margin-top:34px;
  }
  #planner .readyimg img{
    height:155px;
    object-position:center 52%;
  }
}


.planner-destination-switch{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:20px;
}
.planner-destination-switch button{
  appearance:none;
  flex:0 1 auto;
  border:1px solid var(--line);
  background:transparent;
  color:var(--muted);
  padding:9px 13px 8px;
  font:600 .64rem/1.1 Avenir,Inter,Arial,sans-serif;
  letter-spacing:.06em;
  cursor:pointer;
}
.planner-destination-switch button:hover{
  color:var(--ink);
  border-color:var(--ink);
}
.planner-destination-switch button.active{
  background:var(--night);
  border-color:var(--night);
  color:var(--paper);
}
@media(max-width:720px){
  .planner-destination-switch{
    gap:6px;
    margin-top:16px;
  }
  .planner-destination-switch button{
    padding:8px 10px 7px;
    font-size:.59rem;
  }
}


/* Destination Consistency & Mobile QA V1 */
.activity-choice .before{
  margin:8px 0 0;
  max-width:72ch;
  font-size:.69rem;
  line-height:1.55;
  color:#737e82;
}
.activity-choice .before strong{color:var(--night);font-weight:700}

.planner-destination-switch{
  scrollbar-width:none;
}
.planner-destination-switch::-webkit-scrollbar{display:none}

@media(max-width:720px){
  /* Five destinations should remain one compact control, not become several rows. */
  .planner-destination-switch{
    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x proximity;
    gap:6px;
    margin-left:-14px;
    margin-right:-14px;
    padding:0 14px 7px;
  }
  .planner-destination-switch button{
    flex:0 0 auto;
    white-space:nowrap;
    scroll-snap-align:start;
    min-height:38px;
    padding:9px 11px 8px;
    font-size:.58rem;
  }
  .stage{margin-top:26px}
  .stage .h2{
    font-size:clamp(2.55rem,11.5vw,3.55rem);
    line-height:.98;
    max-width:11ch;
  }
  .stage .lede{
    font-size:.94rem;
    line-height:1.58;
  }
  .choice{
    padding-top:18px;
    padding-bottom:18px;
  }
  .choice h3{
    font-size:1.48rem;
    line-height:1.14;
  }
  .activity-choice .before{
    font-size:.82rem;
    line-height:1.52;
    padding-right:8px;
  }
  .transport{
    padding:26px 20px;
  }
  .transport h3{
    font-size:1.65rem;
    line-height:1.08;
  }
  .transport .btn{
    width:100%;
    text-align:center;
  }
  .summary{
    margin-top:26px;
    margin-bottom:30px;
  }
  .summary b{
    font-size:.97rem;
    overflow-wrap:anywhere;
  }
  .bookrow.primary{
    padding:22px 18px;
  }
  .bookrow.primary h3{
    font-size:1.85rem;
    line-height:1.05;
  }
  .bookrow .muted{
    overflow-wrap:anywhere;
  }
  .controls{
    position:relative;
    padding-bottom:env(safe-area-inset-bottom);
  }
}

@media(max-width:390px){
  .shell{width:min(100% - 22px,1240px)}
  .stage .h2{font-size:clamp(2.35rem,11.4vw,3.1rem)}
  .choice h3{font-size:1.38rem}
  .summary{grid-template-columns:1fr}
  .summary div,
  .summary div:first-child{
    padding:12px 0;
    border-right:0;
    border-bottom:1px solid var(--line2);
  }
  .summary div:last-child{border-bottom:0}
}


/* Destination Image Integration Pass V1 */
.secondary-desthero{
  padding:64px 0 92px;
}
.secondary-destgrid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  align-items:center;
  gap:74px;
}
.secondary-destcopy{
  max-width:520px;
}
.secondary-destcopy .title{
  font-size:clamp(3.9rem,6.7vw,6.8rem);
  max-width:8.8ch;
  margin-top:12px;
}
.secondary-destcopy .lede{
  max-width:39ch;
  margin-top:22px;
}
.secondary-proof{
  display:grid;
  gap:9px;
  margin:28px 0 30px;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.45;
}
.secondary-proof span{
  position:relative;
  padding-left:17px;
}
.secondary-proof span:before{
  content:'';
  position:absolute;
  left:0;
  top:.6em;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--pine);
}
.secondary-destmedia{
  position:relative;
  overflow:hidden;
}
.secondary-destmedia img{
  display:block;
  width:100%;
  height:520px;
  object-fit:cover;
}
#yllas .secondary-destmedia img{object-position:center 48%}
#saariselka .secondary-destmedia img{object-position:center 48%}
#pyha .secondary-destmedia img{object-position:center 46%}

@media(max-width:1020px){
  .secondary-destgrid{
    grid-template-columns:1fr;
    gap:36px;
  }
  .secondary-destcopy{
    max-width:650px;
  }
  .secondary-destmedia img{
    height:auto;
    aspect-ratio:16/9;
  }
}

@media(max-width:720px){
  .secondary-desthero{
    padding:36px 0 76px;
  }
  .secondary-destgrid{
    gap:28px;
  }
  .secondary-destcopy .title{
    font-size:clamp(3.05rem,14vw,4.6rem);
    max-width:9ch;
  }
  .secondary-destcopy .lede{
    margin-top:16px;
  }
  .secondary-proof{
    margin:22px 0 26px;
    gap:7px;
    font-size:.68rem;
  }
  .secondary-destcopy .btn{
    width:100%;
  }
  .secondary-destmedia img{
    aspect-ratio:4/3;
  }
  #yllas .secondary-destmedia img{object-position:center 48%}
  #saariselka .secondary-destmedia img{object-position:center 50%}
  #pyha .secondary-destmedia img{object-position:center 47%}
}


/* Quality Fix V1.1 — planner supporting media */
#planner .transport-support-image,
#planner .activity-support-image{
  grid-area:support;
  min-width:0;
}


/* Quality Fix V1.1 — trust/legal pages */
.info-section{padding:82px 0 110px}
.info-shell{max-width:820px}
.info-shell .h2{margin:10px 0 18px}
.info-shell .lede{max-width:48ch;margin-bottom:42px}
.info-copy{border-top:1px solid var(--line);margin-bottom:42px}
.info-copy h2{font:600 1.45rem var(--serif);color:var(--night);margin:30px 0 8px}
.info-copy p{color:var(--muted);line-height:1.72;max-width:72ch}
@media(max-width:720px){
  .info-section{padding:48px 0 82px}
  .info-shell .h2{font-size:clamp(2.7rem,12vw,3.8rem)}
  .info-copy h2{font-size:1.28rem}
}


/* Quality Fix V1.4 */
.planner-note{
  margin-top:18px;
  max-width:42ch;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.55;
}
.summary span{
  color:#65757a;
  font-size:.58rem;
}
.secondary-reason-band{
  border-top:1px solid var(--line);
  background:#eeebe3;
}
.secondary-reason-grid{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:70px;
  padding-top:44px;
  padding-bottom:48px;
}
.secondary-reason-title{
  margin:8px 0 0;
  font:600 clamp(2rem,3.2vw,3.2rem)/1 var(--serif);
  color:var(--night);
}
.secondary-reason-list{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.secondary-reason-list p{
  margin:0;
  padding-top:13px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.74rem;
  line-height:1.55;
}
@media(max-width:720px){
  .planner-destination-switch{
    margin-left:0;
    margin-right:0;
    padding-left:0;
    padding-right:0;
    max-width:100%;
  }
  .secondary-reason-grid{
    grid-template-columns:1fr;
    gap:26px;
    padding-top:34px;
    padding-bottom:38px;
  }
  .secondary-reason-list{
    grid-template-columns:1fr;
    gap:12px;
  }
  .secondary-reason-list p{
    padding-top:11px;
  }
}


/* V1.6 Final Content & Pixel Fix */

/* Reset text-link buttons so they never look like native system buttons. */
button.link{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  box-shadow:none;
  font:inherit;
  color:inherit;
  text-align:left;
  cursor:pointer;
  border-radius:0;
}
button.link:hover{
  color:var(--pine);
}
button.link:focus-visible{
  outline:2px solid var(--pine);
  outline-offset:4px;
}

/* Captions were too small on snow/bright imagery. */
.caption{
  font-size:.62rem;
  line-height:1.35;
  letter-spacing:.1em;
  text-shadow:0 1px 8px rgba(0,0,0,.22);
}
@media(max-width:720px){
  .caption{
    font-size:.58rem;
    line-height:1.35;
    letter-spacing:.095em;
  }
}

/* Give the horizontally scrollable destination switch a subtle visual cue. */
@media(max-width:720px){
  .rail{
    position:relative;
  }
  .planner-destination-switch{
    position:relative;
    padding-right:28px;
    -webkit-mask-image:linear-gradient(to right, #000 0%, #000 90%, transparent 100%);
    mask-image:linear-gradient(to right, #000 0%, #000 90%, transparent 100%);
  }
  .planner-destination-switch:after{
    content:'';
    flex:0 0 14px;
  }
}


/* V2.0 Commercial Launch Readiness */
.commercial-note{
  margin:26px 0 18px;
  padding:14px 16px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.34);
  color:var(--muted);
  font-size:.68rem;
  line-height:1.55;
}
.commercial-note strong{color:var(--night)}
.affiliate-flag{
  display:inline-block;
  margin:4px 0 2px;
  color:var(--pine);
  font-size:.57rem;
  font-weight:760;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.activity-access-check{
  display:inline-block;
  margin:4px 0 2px;
  color:var(--pine);
  font-size:.57rem;
  font-weight:760;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.reviewed-note{
  margin-top:24px;
  color:var(--muted);
  font-size:.68rem;
  line-height:1.55;
}
@media(max-width:720px){
  .commercial-note{margin-top:22px;padding:13px 14px;font-size:.66rem}
}


/* V2.1 User Test Fix — focused usability changes only */

/* Disabled primary actions should clearly look unavailable. */
.btn:disabled{
  opacity:.42;
  cursor:not-allowed;
  filter:saturate(.45);
  transform:none !important;
}

/* Generic planner entry: destination is the first decision. */
.destination-entry-grid{
  margin-top:30px;
  border-top:1px solid var(--line);
}
.destination-entry-choice{
  appearance:none;
  width:100%;
  min-height:68px;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  color:var(--night);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:18px 4px 18px 0;
  text-align:left;
  font:500 clamp(1.55rem,2.2vw,2.1rem)/1.1 var(--serif);
  letter-spacing:-.025em;
  cursor:pointer;
}
.destination-entry-choice span:last-child{
  font-family:var(--sans);
  font-size:.8rem;
  color:var(--muted);
}
.destination-entry-choice:hover{
  color:var(--pine);
}

/* Activities are multi-select: use a checkbox-style marker instead of radio styling. */
.activity-choice:before{
  border-radius:2px;
}
.activity-choice.selected:before{
  background:var(--pine);
  border-color:var(--pine);
  box-shadow:none;
}
.activity-choice.selected:after{
  content:'✓';
  position:absolute;
  right:8px;
  top:24px;
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  color:#fff;
  font:800 .72rem/1 var(--sans);
  pointer-events:none;
}

/* Keep the activity step shorter on first view. */
.show-more-activities{
  appearance:none;
  border:0;
  background:transparent;
  color:var(--night);
  margin-top:18px;
  padding:0 0 3px;
  border-bottom:1px solid var(--line);
  font-size:.76rem;
  font-weight:720;
  cursor:pointer;
}
.show-more-activities:hover{color:var(--pine)}

/* Official timetable is supporting information, not the main conversion CTA. */
.transport-source-link{
  display:inline-block;
  color:#e8edee;
  font-size:.75rem;
  font-weight:720;
  border-bottom:1px solid rgba(255,255,255,.35);
  padding-bottom:2px;
}
.transport-source-link:hover{
  border-bottom-color:#fff;
}

/* Commercial note stays visible without interrupting the booking moment. */
.commercial-note.compact{
  padding:11px 13px;
  font-size:.66rem;
  line-height:1.5;
}

@media(max-width:720px){
  .destination-entry-choice{
    min-height:60px;
    padding:16px 2px 16px 0;
    font-size:1.48rem;
  }
  .activity-choice.selected:after{
    right:15px;
    top:19px;
  }
  .show-more-activities{
    margin-top:16px;
    min-height:38px;
  }
}

/* V2.2 Final Usability Fix */
.planner-destination-switch.is-hidden{
  display:none !important;
}
.planning-from{
  margin:14px 0 0;
  padding-top:12px;
  border-top:1px solid var(--line2);
  color:var(--muted);
  font-size:.72rem;
  line-height:1.5;
}
.planning-from strong{
  color:var(--night);
  font-weight:700;
}

/* V2.3 Final UX Safety Fix */
@media(max-width:720px){
  #planner .planner-shell{
    display:flex;
    flex-direction:column;
  }
  #planner .planimg{order:0}
  #planner .rail{order:1}
  #planner .stage{order:2}
  #planner .controls{order:3}
  #planner .transport-support-image,
  #planner .activity-support-image{order:4}
}


/* V2.6.3 · Visual balance polish */

/* Desktop: keep five equal destinations, but let the second row fill the width. */
@media(min-width:981px){
  .destlist{
    grid-template-columns:repeat(6,minmax(0,1fr));
  }
  .destitem,
  .destitem + .destitem,
  .destitem:nth-child(3n+1){
    grid-column:span 2;
    padding:34px 30px;
    border-left:1px solid var(--line2);
  }
  .destitem:nth-child(1),
  .destitem:nth-child(4){
    padding-left:0;
    border-left:0;
  }
  .destitem:nth-child(3),
  .destitem:nth-child(5){
    padding-right:0;
  }
  .destitem:nth-child(4),
  .destitem:nth-child(5){
    grid-column:span 3;
  }
}

/* Keep Home as the strongest editorial moment; make the planner more product-like. */
@media(min-width:721px){
  .stage .h2{
    font-size:clamp(2.75rem,4.45vw,4.8rem);
    line-height:.99;
    max-width:12.5ch;
  }
}

/* Raise ordinary metadata above the tiny-display threshold. Decorative captions/counters stay smaller. */
.kicker,
.destfoot,
.steptext,
.summary span,
.crumb,
.back{
  font-size:.69rem;
}
.destfoot{
  letter-spacing:.06em;
}
.planner-destination-switch button{
  font-size:.69rem;
}

/* Lighter mobile header CTA and readable mobile progress metadata. */
@media(max-width:720px){
  .prog.current span{
    font-size:.69rem;
  }
  .planner-destination-switch button{
    font-size:.69rem;
  }
  .mobile-menu{
    min-height:40px;
    padding:0 14px;
    font-size:.69rem;
    letter-spacing:.02em;
  }
}


/* V2.6.4 · Final destination-grid polish */

/* Desktop: three equal cards, then two equal cards centred on the second row. */
@media(min-width:981px){
  .destitem,
  .destitem + .destitem,
  .destitem:nth-child(3n+1){
    grid-column:span 2;
    border-left-color:rgba(18,40,51,.055);
  }
  .destitem:nth-child(4){
    grid-column:2 / span 2;
    padding-left:0;
    padding-right:30px;
    border-left:0;
  }
  .destitem:nth-child(5){
    grid-column:4 / span 2;
    padding-left:30px;
    padding-right:0;
    border-left:1px solid rgba(18,40,51,.055);
  }
}

/* Keep proof and navigation visually related on larger screens. */
.destproof,
.destguide{
  display:inline;
}
.destproof::after{
  content:" · ";
}
.destguide{
  white-space:nowrap;
}

/* Mobile: proof first, navigation action on its own line. */
@media(max-width:720px){
  .destfoot .destproof,
  .destfoot .destguide{
    display:block;
  }
  .destfoot .destproof::after{
    content:"";
  }
  .destfoot .destguide{
    margin-top:7px;
    color:var(--night);
    letter-spacing:.055em;
  }
}


/* V2.6.5 · Final visual lock */
@media(min-width:981px){
  .destitem[data-page="yllas"] h3{
    font-size:clamp(2.4rem,3.55vw,4.05rem);
    line-height:.96;
  }
}

#destinations{scroll-margin-top:84px}

/* V2.6.7 · Final conversion + visual polish */
@media(min-width:1021px){
  .hero .display{
    font-size:clamp(4rem,6.8vw,7.25rem);
    max-width:9.15ch;
  }
}

/* 2) Compact Ready to Book trip confirmation. */
.ready-summary{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  margin:26px 0 28px;
  border-block:1px solid var(--line);
}
.ready-summary .ready-tripline{
  padding:14px 20px;
  min-width:0;
  color:var(--smoke);
  font-size:.8rem;
  line-height:1.45;
}
.ready-summary .ready-tripline:first-child{
  padding-left:0;
  border-right:1px solid var(--line2);
}
.ready-summary b{
  color:var(--night);
  font:600 1rem var(--serif);
}
.ready-summary span{
  color:var(--smoke);
}

/* 3) A subtle selected state without turning choices into cards. */
.choice.selected{
  background:rgba(36,73,61,.045);
}
@media(hover:hover){
  .choice.selected:hover{
    background:rgba(36,73,61,.06);
  }
}

@media(max-width:720px){
  .ready-summary{
    grid-template-columns:1fr;
    margin:22px 0 24px;
  }
  .ready-summary .ready-tripline,
  .ready-summary .ready-tripline:first-child{
    padding:11px 0;
    border-right:0;
  }
  .ready-summary .ready-tripline:first-child{
    border-bottom:1px solid var(--line2);
  }
}


/* V2.6.8 · Final visual lock */

/* Intentional two-line treatment for the long Ylläs / Äkäslompolo name on desktop. */
@media(min-width:981px){
  .destitem[data-page="yllas"] .yllas-title span{
    display:block;
  }
  .destitem[data-page="yllas"] .yllas-title{
    font-size:clamp(2.55rem,3.75vw,4.2rem);
    line-height:.93;
  }
}

/* Slightly softer destination-grid rules. */
.destlist{
  border-top-color:rgba(18,40,51,.11);
}
.destitem{
  border-bottom-color:rgba(18,40,51,.11);
}
@media(min-width:721px){
  .destitem,
  .destitem + .destitem,
  .destitem:nth-child(3n+1){
    border-left-color:rgba(18,40,51,.04);
  }
}

/* Affiliate disclosure belongs to the hotel booking block, not a separate legal box. */
.ready-affiliate-inline{
  margin:10px 0 0;
  max-width:68ch;
  color:var(--smoke);
  font-size:.74rem;
  line-height:1.55;
}
@media(max-width:720px){
  .ready-affiliate-inline{
    margin-top:9px;
    font-size:.76rem;
  }
}


/* V2.6.9 · Accessibility + native-control visual polish */

/* Remove browser-native button chrome from editorial destination choices. */
.destitem{
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  margin:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
  border-bottom:1px solid rgba(18,40,51,.11);
}
@media(min-width:721px){
  .destitem,
  .destitem + .destitem,
  .destitem:nth-child(3n+1){
    border-left:1px solid rgba(18,40,51,.04);
  }
}
@media(min-width:981px){
  .destitem:nth-child(1),
  .destitem:nth-child(4){
    border-left:0;
  }
}

/* Keep planner return navigation in the same editorial system. */
.back{
  -webkit-appearance:none;
  appearance:none;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  padding:0;
  color:#5f6b70;
  cursor:pointer;
  text-decoration:none;
  transition:color .18s ease,border-color .18s ease;
}
.back:hover{
  color:var(--night);
}
.back:focus-visible{
  outline:2px solid var(--pine);
  outline-offset:4px;
}

/* Important booking guidance must be comfortably readable. */
.before,
.activity-choice .before{
  font-size:.76rem;
  line-height:1.58;
  color:#5f6b70;
}
.before strong,
.activity-choice .before strong{
  color:var(--night);
}
.destfoot,
.ready-affiliate-inline{
  color:#5f6b70;
}

/* Destination pages: calmer mobile headline scale than the Home hero. */
@media(max-width:720px){
  .desthero .title{
    font-size:clamp(3rem,13.5vw,4.25rem);
    line-height:.94;
    max-width:9ch;
  }
  .before,
  .activity-choice .before{
    font-size:.82rem;
  }
  .mobile-menu{
    min-height:44px;
    padding:0 15px;
  }
}


/* V2.7.0 · Destination decision support */
.destination-entry-choice{
  min-height:84px;
  align-items:center;
}
.destination-entry-copy{
  display:grid;
  gap:5px;
  min-width:0;
}
.destination-entry-name{
  display:block;
  font:500 clamp(1.55rem,2.2vw,2.1rem)/1.08 var(--serif);
  letter-spacing:-.025em;
  color:var(--night);
}
.destination-entry-meta{
  display:block;
  font:600 .72rem/1.45 var(--sans);
  letter-spacing:.015em;
  color:#5f6b70;
}
.destination-entry-action{
  flex:0 0 auto;
  font:700 .76rem/1.2 var(--sans);
  letter-spacing:.025em;
  color:var(--smoke);
}
.destination-entry-choice:hover .destination-entry-name,
.destination-entry-choice:hover .destination-entry-action{
  color:var(--pine);
}

@media(max-width:720px){
  .destination-entry-choice{
    min-height:78px;
    gap:14px;
    padding:14px 2px 14px 0;
  }
  .destination-entry-name{
    font-size:1.42rem;
  }
  .destination-entry-meta{
    font-size:.72rem;
    line-height:1.4;
    max-width:30ch;
  }
  .destination-entry-action{
    font-size:.7rem;
  }
}


/* V2.7.2 · Equal hotel choice comparison */
.hotel-choice-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:18px;
}
.hotel-fit-reason{
  margin:11px 0 0;
  max-width:64ch;
  color:#5f6b70;
  font-size:.75rem;
  line-height:1.55;
}
.hotel-fit-reason strong{
  color:var(--night);
  font-weight:760;
}
@media(max-width:720px){
  .hotel-choice-head{
    gap:12px;
  }
  .hotel-fit-reason{
    margin-top:10px;
    padding-right:4px;
    font-size:.8rem;
    line-height:1.5;
  }
}


/* V2.7.4 · Activity progressive disclosure + zero-activity proof fix */
.activity-option{
  border-bottom:1px solid var(--line);
}
.activity-option:first-child{
  border-top:1px solid var(--line);
}
.activity-option .activity-choice{
  border:0;
  width:100%;
}
.activity-option.selected{
  background:rgba(36,73,61,.045);
}
.activity-option.selected .activity-choice,
.activity-option.selected .activity-choice:hover{
  background:transparent;
}
.activity-details{
  margin:0;
  padding:0 48px 12px 0;
  color:#5f6b70;
}
.activity-details summary{
  width:max-content;
  max-width:100%;
  min-height:36px;
  display:flex;
  align-items:center;
  gap:7px;
  cursor:pointer;
  color:var(--night);
  font:720 .72rem/1.35 var(--sans);
  list-style:none;
  user-select:none;
}
.activity-details summary::-webkit-details-marker{
  display:none;
}
.activity-details summary::after{
  content:'↓';
  color:var(--smoke);
  font-size:.78rem;
  transition:transform .18s ease;
}
.activity-details[open] summary::after{
  transform:rotate(180deg);
}
.activity-details p{
  margin:3px 0 7px;
  max-width:72ch;
  color:#5f6b70;
  font-size:.76rem;
  line-height:1.55;
}
.activity-details[open]{
  padding-bottom:15px;
}
.activity-details summary:focus-visible{
  outline:2px solid var(--pine);
  outline-offset:3px;
}

@media(max-width:720px){
  .activity-details{
    padding:0 48px 10px 16px;
  }
  .activity-details summary{
    min-height:44px;
    font-size:.78rem;
  }
  .activity-details p{
    margin-top:2px;
    padding-right:4px;
    font-size:.82rem;
    line-height:1.52;
  }
  .activity-details[open]{
    padding-bottom:14px;
  }
}


/* V2.7.5 · Activity disclosure accessibility context */
.activity-sr-only{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}


/* V2.7.8 · Accommodation availability fallback */
.availability-note{
  margin:20px 0 0;
  padding-top:14px;
  border-top:1px solid var(--line2);
  max-width:72ch;
  color:#5f6b70;
  font-size:.74rem;
  line-height:1.55;
}
.availability-note strong,
.availability-fallback strong{
  color:var(--night);
  font-weight:760;
}
.availability-fallback{
  margin:14px 28px 0;
  padding-top:14px;
  border-top:1px solid rgba(18,40,51,.12);
  max-width:72ch;
}
.availability-question{
  margin:0 0 5px;
  color:var(--night);
  font-size:.76rem;
  line-height:1.45;
}
.availability-fallback-link{
  display:inline-block;
  color:var(--pine);
  font-size:.78rem;
  font-weight:760;
  line-height:1.45;
  text-decoration:none;
  border-bottom:1px solid rgba(36,73,61,.3);
}
.availability-fallback-link:hover{
  border-bottom-color:var(--pine);
}
.availability-fallback-link:focus-visible{
  outline:2px solid var(--pine);
  outline-offset:4px;
}
.availability-guidance{
  margin:8px 0 0;
  color:#5f6b70;
  font-size:.72rem;
  line-height:1.55;
}
.availability-fallback .affiliate-flag{
  margin:0 0 7px;
}
@media(max-width:720px){
  .availability-note{
    margin-top:17px;
    padding-top:13px;
    font-size:.8rem;
    line-height:1.52;
  }
  .availability-fallback{
    margin:13px 18px 0;
    padding-top:13px;
  }
  .availability-question{
    font-size:.82rem;
  }
  .availability-fallback-link{
    min-height:44px;
    display:inline-flex;
    align-items:center;
    font-size:.82rem;
  }
  .availability-guidance{
    margin-top:4px;
    padding-right:2px;
    font-size:.8rem;
    line-height:1.52;
  }
}


/* V2.7.26 · Mobile Planner Visual Polish */
.planner-destination-current{display:none}
.steptext{color:#5f6b70}
.prog{color:#5f6b70}
.summary span{color:#5f6b70}

@media(max-width:720px){
  /* Slightly tighter hero scale keeps the image and CTA closer to the first viewport. */
  .hero .display{
    font-size:clamp(2.7rem,12.2vw,3.8rem);
    line-height:.98;
    max-width:9ch;
  }

  /* Once a base is selected, keep destination changing available without a scrolling chip row. */
  .planner-destination-current{
    width:100%;
    min-height:38px;
    margin-top:10px;
    padding:8px 0 7px;
    border:0;
    border-top:1px solid var(--line2);
    border-bottom:1px solid var(--line);
    background:transparent;
    color:var(--night);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    text-align:left;
    font-size:.72rem;
    font-weight:720;
    letter-spacing:.015em;
  }
  .planner-destination-current.is-hidden{display:none !important}
  .planner-destination-change{
    color:#5f6b70;
    font-size:.66rem;
    font-weight:700;
    white-space:nowrap;
  }
  .planner-destination-switch{
    display:none;
    margin:0;
    padding:0;
    overflow:visible;
    border-bottom:1px solid var(--line);
  }
  .planner-destination-switch.is-open{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
  }
  .planner-destination-switch.is-open button{
    width:100%;
    min-height:40px;
    padding:9px 0 8px;
    border:0;
    border-bottom:1px solid var(--line2);
    background:transparent;
    color:#5f6b70;
    text-align:left;
    font-size:.66rem;
    letter-spacing:.035em;
  }
  .planner-destination-switch.is-open button:last-child{border-bottom:0}
  .planner-destination-switch.is-open button.active{
    background:transparent;
    color:var(--pine);
    font-weight:780;
  }

  /* Keep the supporting planner image, but let the decision UI arrive sooner. */
  #planner .planimg{margin-bottom:24px}
  #planner .planimg img{height:124px}
}


/* V2.7.33 · Final Visual Polish */
/* In the planner, the page itself already provides the primary action. */
.header.planner-active .navcta,
.header.planner-active .mobile-menu{
  display:none !important;
}

/* Editorial image captions sit below images rather than over photography. */
.caption{
  position:static;
  display:block;
  margin-top:7px;
  padding-right:2px;
  color:#6f7b80;
  font-size:.60rem;
  line-height:1.45;
  letter-spacing:.015em;
  text-transform:none;
  text-shadow:none;
}

@media(max-width:720px){
  .caption{
    margin-top:6px;
    font-size:.64rem;
    line-height:1.45;
  }

  /* Important decision-support text should remain comfortably readable on phones. */
  .secondary-proof,
  .desthero .facts{
    font-size:.78rem;
    line-height:1.5;
  }
  .planner-note,
  .planning-from,
  .secondary-reason-list p{
    font-size:.78rem;
    line-height:1.52;
  }
  .destination-entry-meta{
    font-size:.76rem;
    line-height:1.45;
  }
}


/* V2.7.34 · Final visual lock */
/* Keep the planning image atmospheric on desktop without pushing the first decision too low. */
@media(min-width:721px){
  #planner .planimg img{height:218px}
}

/* On phones, supporting photography should never compete with the current task. */
@media(max-width:720px){
  #planner .transport-support-image,
  #planner .activity-support-image,
  #planner .readyimg{
    display:none !important;
  }

  /* Give the four Ready-to-Book reasons a clearer scan rhythm without turning them into cards. */
  #planner .facts[aria-label="Why this trip works without a car"]{
    gap:15px;
    line-height:1.46;
  }
}


/* V2.7.35 · Final readability + hierarchy polish */

/* Home: the hero proof points are real value propositions, not decorative metadata. */
.proof span{
  font-size:.77rem;
  line-height:1.45;
}

/* Home: remove the isolated editorial sequence number; the proof counters remain. */
.hero-copy:before{
  content:none;
  display:none;
}

/* Planner progress: keep location in the flow easy to read. */
.steptext{
  font-size:.70rem;
}
@media(max-width:720px){
  .prog.current span{
    font-size:.70rem;
    line-height:1.25;
  }
}

/* Editorial disclosure captions remain quiet, but comfortably readable. */
.caption{
  font-size:.67rem;
  line-height:1.5;
}
@media(max-width:720px){
  .caption{
    font-size:.67rem;
  }
}

/* Footer legal copy should not rely on tiny type for visual restraint. */
.legal{
  font-size:.73rem;
  line-height:1.55;
}


/* V2.7.43 · Destination hero height final */
/* Desktop destination heroes: one shared 595px image height across all five destinations. */
@media(min-width:1021px){
  #rovaniemi .destmedia img,
  #levi .destmedia img,
  #yllas .secondary-destmedia img,
  #saariselka .secondary-destmedia img,
  #pyha .secondary-destmedia img{
    height:595px;
  }

  /* Keep supporting photography secondary to the decision and CTA. */
  #planner .activity-support-image img{
    height:292px;
  }

  /* Slightly tighter desktop planner rail without changing the flow. */
  #planner .planner-shell{
    grid-template-columns:158px minmax(0,1fr);
    gap:0 58px;
  }
}

/* Keep editorial disclosure captions visually attached to their image. */
.caption{
  margin-top:5px;
}
@media(max-width:720px){
  .caption{margin-top:5px;}
}

/* V2.7.44 · Rovaniemi + Levi hero typography balance */
@media(min-width:1021px){
  #rovaniemi .destgrid,
  #levi .destgrid{
    grid-template-columns:minmax(0,.92fr) minmax(500px,1.08fr);
    gap:clamp(54px,6vw,92px);
  }
  #rovaniemi .title,
  #levi .title{
    font-size:clamp(4rem,5vw,5.2rem);
    line-height:.94;
    max-width:10.5ch;
    letter-spacing:-.045em;
  }
}
@media(max-width:720px){
  #rovaniemi .title,
  #levi .title{
    font-size:clamp(3.15rem,13.5vw,4.45rem);
    line-height:.94;
    max-width:100%;
  }
}


/* V2.7.45 · Production visual QA fixes */

/* Rovaniemi + Levi: close the 721–1020px typography gap found in tablet QA. */
@media (min-width:721px) and (max-width:1020px){
  #rovaniemi .title,
  #levi .title{
    font-size:clamp(3.56rem,6.25vw,4rem);
    line-height:.95;
    max-width:11.5ch;
    letter-spacing:-.045em;
  }
}

/* Mobile: keep secondary actions visually quiet while giving them reliable touch areas. */
@media (max-width:720px){
  .back,
  button.link,
  .show-more-activities,
  .planner-destination-current,
  .planner-destination-switch.is-open button,
  .transport-source-link{
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }

  .planner-destination-current{
    display:flex;
  }

  .planner-destination-switch.is-open button{
    display:flex;
    width:100%;
  }

  /* Preserve the existing underline treatment while expanding the tap target around text links. */
  button.link,
  .show-more-activities,
  .transport-source-link{
    padding-top:9px;
    padding-bottom:9px;
  }
}


/* V2.7.52 · Complete Planner Site Integration V1 */
.complete-planner-home{
  padding:96px 0 104px;
  border-top:1px solid var(--line2);
  background:var(--paper);
}
.complete-planner-home-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(130px,176px);
  gap:clamp(42px,7vw,92px);
  align-items:center;
}
.complete-planner-home-copy .h2{max-width:10.5ch}
.complete-planner-home-copy .lede{margin:18px 0 0;max-width:58ch}
.complete-planner-home-link,
.complete-planner-ready-link{
  display:inline-flex;
  min-height:44px;
  align-items:center;
  margin-top:18px;
  color:var(--night);
  font-size:.78rem;
  font-weight:720;
  border-bottom:1px solid var(--line);
}
.complete-planner-home-cover{
  display:block;
  width:100%;
  max-width:176px;
  justify-self:end;
  padding:8px;
  border:1px solid var(--line2);
  background:#fff;
}
.complete-planner-home-cover img{display:block;width:100%;height:auto}
.complete-planner-ready{
  max-width:760px;
  margin-top:42px;
  padding-top:28px;
  border-top:1px solid var(--line);
}
.complete-planner-ready h3{
  margin:8px 0 0;
  color:var(--night);
  font:500 1.7rem/1.08 var(--serif);
  letter-spacing:-.025em;
}
.complete-planner-ready p{
  max-width:66ch;
  margin:11px 0 0;
  color:var(--smoke);
  font-size:.82rem;
  line-height:1.6;
}
@media(max-width:1020px){
  .complete-planner-home{padding:82px 0 90px}
  .complete-planner-home-grid{grid-template-columns:minmax(0,1fr) 140px;gap:40px}
}
@media(max-width:720px){
  .complete-planner-home{padding:68px 0 76px}
  .complete-planner-home-grid{grid-template-columns:1fr;gap:0}
  .complete-planner-home-cover{display:none}
  .complete-planner-home-copy .h2{max-width:10ch}
  .complete-planner-ready{margin-top:34px;padding-top:24px}
  .complete-planner-ready h3{font-size:1.55rem}
  .complete-planner-ready p{font-size:.82rem}
}


/* Hotel Choice System · destination preview consistency */
.destination-stay-compare{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  margin-top:18px;
}
@media(max-width:720px){
  .destination-stay-compare{
    margin-top:14px;
    font-size:.8rem;
  }
}


/* P2/P3 launch polish: keep small customer-facing metadata readable on phones. */
@media(max-width:720px){
  .kicker,
  .destfoot,
  .destguide,
  .steptext,
  .summary span,
  .crumb,
  .back,
  .prog.current span,
  .planner-destination-current,
  .planner-destination-switch.is-open button{
    font-size:.72rem;
  }
  .caption{font-size:.70rem;}
  .legal{font-size:.75rem;line-height:1.58;}
}

.view{display:block}
