
/* =====================================================================
   HYBRID FORM v2 — asiakaskäyttöliittymä
   Visuaalinen benchmark: noutopalvelut.fi "Nopea noutopyyntö"
   ===================================================================== */
#hf2{
  --acc:#1E7A45; --acc-strong:#175E36; --acc-soft:#E8F5EE; --acc-line:#BFE3CC; --acc-ink:#1B5E3B;
  --c1:#2F9D63; --c2:#3B82C4; --c3:#7C5CC4; --c4:#D98E32;
  --ink:#1E2A32; --tx:#4A5860; --soft:#7A8790;
  --bg:#F4F6F5; --card:#FFFFFF; --line:#E6EAE8; --line2:#D5DCD8;
  --warm:#8A5A0B; --warmbg:#FCF6E8; --warmln:#F0E2C2;
  --red:#B3261E; --redbg:#FCEFEE;
  --r:18px; --rs:12px;
  --sh:0 1px 2px rgba(20,40,30,.04), 0 20px 44px -26px rgba(20,40,30,.22);
  --sh-sm:0 1px 2px rgba(20,40,30,.05), 0 8px 20px -14px rgba(20,40,30,.16);
  font-family:'Outfit',system-ui,-apple-system,'Segoe UI',sans-serif;
  color:var(--tx); font-size:16px; line-height:1.55;
  background:
    radial-gradient(900px 380px at 12% -4%, rgba(47,157,99,.10), transparent 60%),
    radial-gradient(800px 360px at 96% 4%, rgba(59,130,196,.08), transparent 55%),
    var(--bg);
  padding:clamp(18px,4vw,52px) clamp(12px,3vw,28px);
  min-height:100vh; box-sizing:border-box;
  -webkit-font-smoothing:antialiased;
}
#hf2[data-brand="turun"]{
  --acc:#1E3A30; --acc-strong:#14261F; --acc-soft:#EAEFE8; --acc-line:#C6D3C6; --acc-ink:#1E3A30;
  --c1:#2A4C3F; --c2:#3B82C4; --c3:#2F9D63; --c4:#D98E32;
  background:
    radial-gradient(900px 380px at 12% -4%, rgba(30,58,48,.10), transparent 60%),
    radial-gradient(800px 360px at 96% 4%, rgba(47,157,99,.08), transparent 55%),
    var(--bg);
}
#hf2 *,#hf2 *::before,#hf2 *::after{box-sizing:border-box;margin:0;padding:0}
#hf2 button{font-family:inherit;cursor:pointer}
#hf2 input,#hf2 select,#hf2 textarea{font-family:inherit;font-size:16px;color:var(--ink)}
#hf2 :focus-visible{outline:3px solid #3B82C4;outline-offset:2px;border-radius:6px}
@media (prefers-reduced-motion:reduce){#hf2 *{animation:none!important;transition:none!important}}

/* ---------- runko: sivupalkki + sisältö ---------- */
#hf2 .n-wrap{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:322px minmax(0,1fr);gap:26px;column-gap:clamp(32px,4%,50px);align-items:start} /* v1.15: +10% leveämpi */
#hf2 .n-wrap>*{min-width:0}
/* v1.50: työpöydän sivupaneeli ja sen alapuolinen etusivupainike */
#hf2 .n-sidecol{position:sticky;top:24px;display:flex;flex-direction:column;gap:14px;min-width:0}
#hf2 .n-steps{max-width:100%}
#hf2 .n-side{position:static;top:auto;display:flex;flex-direction:column;gap:22px;padding:26px 22px;background:#EEF2EC;border:1px solid #DCE6DC;border-radius:20px}
#hf2 .n-brand{display:flex;align-items:center;gap:11px}
#hf2 .n-brand-icon-link,#hf2 .n-brand-name-link{color:inherit;text-decoration:none}
#hf2 .n-brand-icon-link{display:block;flex:none;border-radius:13px}
#hf2 .n-brand-name-link{display:flex;flex-direction:column;min-width:0;border-radius:8px}
#hf2 .n-brand .bm{width:42px;height:42px;border-radius:13px;background:var(--acc);display:grid;place-items:center;color:#fff;flex:none;box-shadow:var(--sh-sm);transition:transform .16s,box-shadow .16s,background .16s}
#hf2 .n-brand .bm svg{width:21px;height:21px}
#hf2 .n-brand b{font-size:15.5px;color:var(--ink);display:block;line-height:1.2;font-weight:700;transition:color .16s}
#hf2 .n-brand span{font-size:12.5px;color:var(--soft)}
#hf2 .n-brand-icon-link:hover .bm{transform:translateY(-2px);box-shadow:var(--sh);background:var(--acc-strong)}
#hf2 .n-brand-name-link:hover b{color:var(--acc)}
#hf2 .n-homebtn{display:none;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:15px 17px;background:#EEF2EC;border:1px solid #DCE6DC;border-radius:18px;color:var(--ink);text-decoration:none;box-shadow:var(--sh-sm);transition:transform .16s,box-shadow .16s,border-color .16s,background .16s}
#hf2 .n-homebtn-label{min-width:0;font-size:15px;font-weight:750;color:var(--ink);line-height:1.25}
#hf2 .n-homebtn-arrow{width:21px;height:21px;margin-left:auto;color:var(--acc);flex:none;transition:transform .16s}
#hf2 .n-homebtn-arrow svg{width:21px;height:21px;display:block}
#hf2 .n-homebtn:hover{transform:translateY(-2px);border-color:var(--acc-line);box-shadow:var(--sh);background:#F3F5FA}
#hf2 .n-homebtn:hover .n-homebtn-arrow{transform:translateX(-3px)}
@media (min-width:981px){#hf2 .n-homebtn{display:flex}}

/* v1.51: poistumisvahvistus — sama sävy kuin työpöydän sivupaneelissa. */
html.hf2-exit-open,body.hf2-exit-open{overflow:hidden!important}
.hf2-exitmodal[hidden]{display:none!important}
.hf2-exitmodal{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:20px;font-family:'Outfit',system-ui,-apple-system,'Segoe UI',sans-serif}
.hf2-exitmodal-backdrop{position:absolute;inset:0;background:rgba(12,18,32,.70);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.hf2-exitdialog{position:relative;width:min(470px,calc(100vw - 32px));background:#EEF2EC;border:1px solid #DCE6DC;border-radius:20px;box-shadow:0 28px 80px -22px rgba(8,14,30,.72);padding:26px;color:#1E2A32;animation:hf2modalin .18s ease both}
.hf2-exitdialog h2{font-size:22px;line-height:1.25;font-weight:800;letter-spacing:-.01em;color:#1E2A32;margin:0}
.hf2-exitdialog p{font-size:15.5px;line-height:1.55;color:#4A5860;margin:12px 0 0}
.hf2-exitactions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
.hf2-exitactions button{font:inherit;font-size:15px;font-weight:750;min-height:46px;border-radius:999px;padding:11px 20px;cursor:pointer;transition:transform .14s,box-shadow .14s,border-color .14s,background .14s}
.hf2-exitcancel{background:#fff;color:#14261F;border:1.5px solid #C6D3C6}
.hf2-exitcancel:hover{border-color:#1E3A30;background:#F7F9FC;transform:translateY(-1px)}
.hf2-exitconfirm{background:#14261F;color:#fff;border:1.5px solid #14261F;box-shadow:0 7px 18px -10px rgba(20,50,40,.8)}
.hf2-exitconfirm:hover{background:#14261F;border-color:#14261F;transform:translateY(-1px)}
.hf2-exitactions button:focus-visible{outline:3px solid #3B82C4;outline-offset:2px}
@keyframes hf2modalin{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@media (max-width:520px){
  .hf2-exitmodal{padding:16px}
  .hf2-exitdialog{padding:22px 18px;border-radius:18px}
  .hf2-exitdialog h2{font-size:20px}
  .hf2-exitactions{flex-direction:column}
  .hf2-exitactions button{width:100%}
}
@media (prefers-reduced-motion:reduce){.hf2-exitdialog{animation:none}.hf2-exitactions button{transition:none}}
#hf2 .n-hero h1{font-size:clamp(28px,3vw,34px);line-height:1.08;color:var(--ink);font-weight:800;letter-spacing:-.015em}
#hf2 .n-hero h1 em{font-style:normal;color:var(--acc)}
#hf2 .n-hero h1 .ttl-m,#hf2 .n-hero h1 .hero-fast{display:none} /* v1.40: vain mobiilissa */
#hf2 .n-hero p{font-size:14.5px;color:var(--tx);margin-top:10px;max-width:34ch}
#hf2 .n-steps{display:flex;flex-direction:column;gap:6px;margin-top:2px}
#hf2 .n-step{display:flex;gap:13px;align-items:flex-start;padding:11px 13px;border-radius:14px;border:1px solid transparent;transition:background .2s,border-color .2s,box-shadow .2s}
#hf2 .n-step.go{cursor:pointer}
#hf2 .n-step.go:hover{background:var(--card);border-color:var(--line);box-shadow:var(--sh-sm)}
#hf2 .n-step .ix{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:14px;font-weight:700;background:#E7ECEA;color:var(--soft);transition:all .2s}
#hf2 .n-step b{font-size:15px;color:var(--ink);display:block;line-height:1.25;font-weight:700}
#hf2 .n-step span{font-size:12.5px;color:var(--soft)}
#hf2 .n-step.on{background:var(--card);border-color:var(--line);box-shadow:var(--sh-sm)}
#hf2 .n-step.on .ix{background:var(--acc);color:#fff}
#hf2 .n-step.done .ix{background:var(--acc-soft);color:var(--acc)} /* v1.30: kiekko vaalea, vain rengas vihreä */
#hf2 .n-step .ix svg{width:15px;height:15px;display:block}
#hf2 .n-badges{margin-top:auto;display:flex;flex-direction:column;gap:9px;padding-top:8px}
#hf2 .n-badge{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:9px 15px;width:max-content;box-shadow:var(--sh-sm)}
#hf2 .n-badge .dot{width:9px;height:9px;border-radius:50%;background:var(--c1);flex:none}

/* ---------- päälomake ---------- */
#hf2 .n-main{min-width:0;display:flex;flex-direction:column;gap:16px}
#hf2 .n-mobilehead{display:none}
#hf2 .n-stage{display:flex;flex-direction:column;gap:16px}
#hf2 .n-sec{
  background:var(--sabg);border:1px solid var(--saline);border-radius:var(--r);
  box-shadow:var(--sh);padding:clamp(20px,3vw,28px);
  border-top:4px solid var(--sa);
  animation:nrise .32s ease both;
}
@keyframes nrise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
#hf2 .n-stage.no-anim .n-sec{animation:none}
/* v1.6: jokaisella osiolla oma yksilöllinen värinsä (ei teeman tummansinistä):
   otsikko + yläreuna + hyvin kevyt taustasävy + aktiivisen osion hehku */
#hf2 .n-sec{--sa:#0E7490;--sabg:#F2F9FB;--saline:#C9E4EC;--saglow:rgba(14,116,144,.20)}
#hf2 .n-sec[data-tone="1"]{--sa:#0E7490;--sabg:#F2F9FB;--saline:#C9E4EC;--saglow:rgba(14,116,144,.20)}   /* petrooli — palvelu */
#hf2 .n-sec[data-tone="2"]{--sa:#7C3AED;--sabg:#F7F5FE;--saline:#DFD2F8;--saglow:rgba(124,58,237,.18)}  /* violetti — kohteen tiedot */
#hf2 .n-sec[data-tone="3"]{--sa:#A21CAF;--sabg:#FBF4FC;--saline:#ECCFF0;--saglow:rgba(162,28,175,.16)}  /* marja — lisäpalvelut */
#hf2 .n-sec[data-tone="4"]{--sa:#B45309;--sabg:#FBF6EE;--saline:#EDD8B9;--saglow:rgba(180,83,9,.18)}    /* meripihka — osoite */
#hf2 .n-sec[data-tone="5"]{--sa:#BE185D;--sabg:#FCF4F8;--saline:#F1CCDC;--saglow:rgba(190,24,93,.16)}   /* rusko — ajankohta */
#hf2 .n-sec[data-tone="6"]{--sa:#15803D;--sabg:#F3F9F5;--saline:#C9E6D2;--saglow:rgba(21,128,61,.18)}   /* vihreä — kuvat */
#hf2 .n-sec[data-tone="7"]{--sa:#C2410C;--sabg:#FCF5F1;--saline:#F1D2C1;--saglow:rgba(194,65,12,.18)}   /* oranssi — yhteystiedot */
#hf2 .n-sec[data-tone="8"]{--sa:#0D9488;--sabg:#F1FAF8;--saline:#C6E8E2;--saglow:rgba(13,148,136,.18)}  /* merenvihreä — arviokäynti */
#hf2 .n-sec[data-tone="9"]{--sa:#0F766E;--sabg:#F0F9F7;--saline:#C3E4DE;--saglow:rgba(15,118,110,.18)}  /* petroolinvihreä — kerros & kulku */
/* v1.16: harvinaisempien kohdetyyppien laajennus */
#hf2 .n-sitetail{margin-top:10px}
#hf2 .n-sitetail summary{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;font-weight:650;color:var(--acc-strong);background:#fff;border:1.5px dashed var(--line2);border-radius:999px;padding:9px 16px;list-style:none;transition:border-color .15s}
#hf2 .n-sitetail summary::-webkit-details-marker{display:none}
#hf2 .n-sitetail summary:hover{border-color:var(--acc)}
#hf2 .n-sitetail summary svg{width:15px;height:15px}
/* aktiivinen osio: hienovarainen sykkivä hehku reunuksella — kertoo mihin vastataan */
#hf2 .n-sec.n-live{animation:hfsecglow 2.6s ease-in-out infinite}
@keyframes hfsecglow{
  0%,100%{box-shadow:var(--sh),0 0 0 0 var(--saglow)}
  50%{box-shadow:var(--sh),0 0 0 5px var(--saglow),0 0 20px 2px var(--saglow)}
}
@media (prefers-reduced-motion:reduce){
  #hf2 .n-sec.n-live{animation:none;box-shadow:var(--sh),0 0 0 3px var(--saglow)}
  #hf2 .n-waitnote .dot{animation:none}
}
/* v1.7/v1.8: elävä lomake — jokainen elementti reagoi hiireen selvällä
   mikroliikkeellä (nosto + varjo + ikonin kasvu) ja klikkaus "painuu". */
#hf2 .n-sec{transition:box-shadow .22s ease,border-color .22s ease,transform .22s ease}
#hf2 .n-sec:hover{box-shadow:var(--sh),0 10px 26px rgba(30,42,50,.09);transform:translateY(-2px)}
#hf2 .n-svc:hover{border-color:var(--acc);box-shadow:var(--sh);transform:translateY(-3px)}
#hf2 .n-svc:hover .ic{transform:scale(1.12) rotate(-3deg)}
#hf2 .n-svc:active{transform:translateY(-1px) scale(.99)}
#hf2 .n-opt{transition:border-color .16s,box-shadow .16s,background .16s,transform .16s}
#hf2 .n-opt:hover{border-color:var(--acc);box-shadow:var(--sh);transform:translateY(-3px)}
#hf2 .n-opt:hover .ic{transform:scale(1.12) rotate(-3deg)}
#hf2 .n-opt:active{transform:translateY(-1px) scale(.99)}
#hf2 .n-addon{transition:border-color .16s,box-shadow .16s,background .16s,transform .16s}
#hf2 .n-addon:hover{border-color:var(--acc);box-shadow:var(--sh);transform:translateY(-3px)}
#hf2 .n-addon:active{transform:translateY(-1px) scale(.99)}
#hf2 .n-chip:hover{transform:translateY(-2px);box-shadow:var(--sh-sm)}
#hf2 .n-chip:active{transform:translateY(0) scale(.97)}
#hf2 .n-day{will-change:transform}
#hf2 .n-day:hover:not(:disabled):not(.sel):not(.lock){transform:scale(1.1)}
#hf2 .n-day:active:not(:disabled):not(.lock){transform:scale(.95)}
#hf2 .n-drop{transition:border-color .18s,background .18s,box-shadow .18s}
#hf2 .n-drop:hover{border-color:var(--acc);box-shadow:var(--sh-sm)}
#hf2 .n-drop button:hover{transform:translateY(-2px)}
#hf2 .n-in:hover:not(:focus),#hf2 .n-sel:hover:not(:focus),#hf2 .n-ta:hover:not(:focus){border-color:#9FABA5;box-shadow:0 2px 8px rgba(30,42,50,.06)}
#hf2 .n-gdpr{transition:border-color .18s,box-shadow .18s}
#hf2 .n-gdpr:hover{border-color:var(--acc-line);box-shadow:var(--sh-sm)}
#hf2 .n-datechip{transition:box-shadow .15s,transform .15s}
#hf2 .n-datechip:hover{box-shadow:var(--sh-sm);transform:translateY(-2px)}
#hf2 .n-file{transition:box-shadow .15s,transform .15s}
#hf2 .n-file:hover{box-shadow:var(--sh);transform:translateY(-2px) scale(1.03)}
#hf2 .n-cal-nav{transition:border-color .15s,color .15s,transform .15s}
#hf2 .n-cal-nav:hover:not(:disabled){transform:translateY(-1px)}
#hf2 .n-cal-nav:active:not(:disabled){transform:scale(.94)}
#hf2 .n-step{transition:background .18s,box-shadow .18s,transform .18s}
#hf2 .n-step.go:hover{transform:translateX(4px)}
#hf2 .n-next:hover{transform:translateY(-2px);box-shadow:var(--sh)}
#hf2 .n-next:active{transform:translateY(0) scale(.98)}
#hf2 .n-prev:hover{transform:translateY(-2px)}
#hf2 .n-switch button:hover{transform:translateY(-2px)}
#hf2 .n-vpnav button:hover{transform:translateY(-1px)}
@media (prefers-reduced-motion:reduce){
  #hf2 .n-sec:hover,#hf2 .n-svc:hover,#hf2 .n-opt:hover,#hf2 .n-addon:hover,#hf2 .n-chip:hover,
  #hf2 .n-day:hover:not(:disabled):not(.sel),#hf2 .n-datechip:hover,#hf2 .n-file:hover,
  #hf2 .n-step.go:hover,#hf2 .n-next:hover,#hf2 .n-prev:hover,#hf2 .n-switch button:hover{transform:none}
}
#hf2 .n-sechead{display:flex;gap:14px;align-items:flex-start;margin-bottom:6px}
#hf2 .n-ix{font-size:13px;font-weight:800;color:var(--sa);background:#fff;border:1px solid var(--saline);border-radius:8px;padding:4px 9px;flex:none;font-variant-numeric:tabular-nums;letter-spacing:.04em;margin-top:3px}
#hf2 .n-sec h2{font-size:clamp(18px,2.2vw,21px);color:var(--ink);font-weight:750;letter-spacing:-.01em;line-height:1.25} /* v1.7: otsikot takaisin neutraaleiksi — osion väri näkyy numerossa, reunassa ja taustasävyssä */
#hf2 .n-sub{font-size:14px;color:var(--soft);margin:2px 0 18px;padding-left:0}
#hf2 .n-sechead + .n-sub{margin-top:4px}

/* teeman button-tyylien suojaus (mm. white-space:nowrap) */
#hf2 button{white-space:normal}
#hf2 .n-chip,#hf2 .n-next,#hf2 .n-prev,#hf2 .n-day{white-space:nowrap}
/* tekstipalsta ei koskaan valintamerkin alle */
#hf2 .n-svc .t,#hf2 .n-opt .t,#hf2 .n-addon .t{flex:1 1 auto;min-width:0}

/* ---------- palvelukortit (STEP 1) ---------- */
#hf2 .n-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#hf2 .n-svc{
  position:relative;display:flex;gap:14px;align-items:flex-start;text-align:left;
  border:1.5px solid var(--line2);border-radius:16px;background:#fff;
  padding:16px 48px 16px 16px;min-height:76px;width:100%;
  transition:border-color .16s, box-shadow .16s, background .16s, transform .16s;
}
#hf2 .n-svc:hover{border-color:var(--acc);box-shadow:var(--sh-sm);transform:translateY(-1px)}
#hf2 .n-svc .ic{width:44px;height:44px;border-radius:13px;flex:none;background:var(--acc-soft);color:var(--acc);display:grid;place-items:center;transition:all .16s}
#hf2 .n-svc .ic svg{width:23px;height:23px}
#hf2 .n-svc .t b{display:block;font-size:15.5px;font-weight:700;color:var(--ink);line-height:1.3}
#hf2 .n-svc .t span{display:block;font-size:13px;color:var(--soft);margin-top:3px;line-height:1.45}
#hf2 .n-svc .mk{position:absolute;top:14px;right:14px;width:22px;height:22px;border-radius:50%;border:2px solid var(--line2);background:#fff;display:grid;place-items:center;color:#fff;transition:all .16s}
#hf2 .n-svc .mk svg{width:12px;height:12px;opacity:0}
#hf2 .n-svc[aria-pressed="true"]{border-color:var(--acc);background:var(--acc-soft);box-shadow:0 0 0 1px var(--acc) inset, var(--sh-sm)}
#hf2 .n-svc[aria-pressed="true"] .ic{background:var(--acc);color:#fff}
#hf2 .n-svc[aria-pressed="true"] .mk{background:var(--acc);border-color:var(--acc)}
#hf2 .n-svc[aria-pressed="true"] .mk svg{opacity:1}

/* ---------- isot valintakortit (kunto ym.) ---------- */
#hf2 .n-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#hf2 .n-opts.one{grid-template-columns:1fr}
#hf2 .n-opt{
  position:relative;display:flex;gap:13px;align-items:flex-start;text-align:left;
  border:1.5px solid var(--line2);border-radius:15px;background:#fff;
  padding:15px 42px 15px 15px;min-height:64px;width:100%;
  transition:border-color .16s, box-shadow .16s, background .16s;
}
#hf2 .n-opt:hover{border-color:var(--acc)}
#hf2 .n-opt .ic{width:40px;height:40px;border-radius:12px;flex:none;background:#F0F4F2;color:var(--acc);display:grid;place-items:center;transition:all .16s}
#hf2 .n-opt .ic svg{width:20px;height:20px}
#hf2 .n-opt .t b{display:block;font-size:15px;font-weight:700;color:var(--ink);line-height:1.3}
#hf2 .n-opt .t span{display:block;font-size:12.5px;color:var(--soft);margin-top:2px;line-height:1.4}
#hf2 .n-opt .t span.good{color:var(--acc);font-weight:600}
#hf2 .n-opt .mk{position:absolute;top:13px;right:13px;width:21px;height:21px;border-radius:50%;border:2px solid var(--line2);background:#fff;display:grid;place-items:center;color:#fff;transition:all .16s}
#hf2 .n-opt.sq .mk{border-radius:7px}
#hf2 .n-opt .mk svg{width:11px;height:11px;opacity:0}
#hf2 .n-opt[aria-pressed="true"]{border-color:var(--acc);background:var(--acc-soft);box-shadow:0 0 0 1px var(--acc) inset}
#hf2 .n-opt[aria-pressed="true"] .ic{background:var(--acc);color:#fff}
#hf2 .n-opt[aria-pressed="true"] .mk{background:var(--acc);border-color:var(--acc)}
#hf2 .n-opt[aria-pressed="true"] .mk svg{opacity:1}

/* ---------- chipit (tavarat ym.) ---------- */
#hf2 .n-chips{display:flex;flex-wrap:wrap;gap:10px}
#hf2 .n-chip{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  border:1.5px solid var(--line2);border-radius:999px;background:#fff;
  padding:11px 18px;font-size:14.5px;font-weight:600;color:var(--ink);
  min-height:46px;min-width:62px;transition:all .15s;line-height:1.2;
}
#hf2 .n-chip svg{width:18px;height:18px;color:var(--soft);transition:color .15s}
#hf2 .n-chip:hover{border-color:var(--acc)}
#hf2 .n-chip[aria-pressed="true"]{border-color:var(--acc);background:var(--acc);color:#fff;box-shadow:var(--sh-sm)}
#hf2 .n-chip[aria-pressed="true"] svg{color:#fff}

/* ---------- kentät ---------- */
#hf2 .n-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
#hf2 .n-grid .full{grid-column:1/-1}
#hf2 .n-f{display:flex;flex-direction:column;gap:7px;margin-top:20px} /* v1.44: sama rytmi kuin .n-group — kenttä ei liimaudu ylläolevaan */
#hf2 .n-grid .n-f{margin-top:0}      /* ruudukossa gap + ruudukon oma marginaali hoitavat välit */
#hf2 .n-morebody .n-f{margin-top:12px} /* Lisätiedot-laatikon sisällä tiiviimpi */
#hf2 .n-f label{font-size:14px;font-weight:650;color:var(--ink)}
#hf2 .n-f .opt{font-weight:400;color:var(--soft);font-size:12.5px}
#hf2 .n-in,#hf2 .n-sel,#hf2 .n-ta{
  width:100%;border:1.5px solid var(--line2);border-radius:12px;
  background:#fff;padding:13px 15px;transition:border-color .15s, box-shadow .15s;
}
#hf2 .n-in:focus,#hf2 .n-sel:focus,#hf2 .n-ta:focus{border-color:var(--acc);outline:none;box-shadow:0 0 0 3px var(--acc-soft)}
#hf2 .n-ta{min-height:96px;resize:vertical}
#hf2 .n-sel{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237A8790' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
#hf2 .n-err{display:none;font-size:13px;color:var(--red);font-weight:600}
#hf2 .n-f.err .n-in,#hf2 .n-f.err .n-sel,#hf2 .n-f.err .n-ta{border-color:var(--red);background:var(--redbg)}
#hf2 .n-f.err .n-err{display:block}
#hf2 .n-group{margin-top:20px}
#hf2 .n-group>.glabel{display:block;font-size:14.5px;font-weight:700;color:var(--ink);margin-bottom:11px}
#hf2 .n-group>.glabel .opt{font-weight:400;color:var(--soft);font-size:12.5px}
#hf2 .n-group.err .n-gerr{display:block;margin-top:8px}
#hf2 .n-gerr{display:none;font-size:13px;color:var(--red);font-weight:600}

/* ---------- infokortit ---------- */
#hf2 .n-note{display:flex;gap:12px;align-items:flex-start;border-radius:14px;padding:14px 16px;font-size:14px;line-height:1.55;margin-top:14px}
#hf2 .n-note .nic{width:34px;height:34px;border-radius:10px;flex:none;display:grid;place-items:center}
#hf2 .n-note .nic svg{width:18px;height:18px}
#hf2 .n-note.gr{background:var(--acc-soft);border:1px solid var(--acc-line);color:var(--acc-ink)}
#hf2 .n-note.gr .nic{background:rgba(255,255,255,.7);color:var(--acc)}
#hf2 .n-note.am{background:var(--warmbg);border:1px solid var(--warmln);color:var(--warm)}
#hf2 .n-note.am .nic{background:rgba(255,255,255,.7);color:var(--c4)}
#hf2 .n-note.bl{background:#EEF4FB;border:1px solid #CCDDF1;color:#2B4A6F}
#hf2 .n-note.bl .nic{background:rgba(255,255,255,.75);color:var(--c2)}
#hf2 .n-note b{font-weight:700}

/* primary + collapsed -palvelut (P1-01) */
#hf2 .n-morebtn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:12px;font-size:14.5px;font-weight:650;color:var(--acc-strong);background:transparent;border:1.5px dashed var(--line2);border-radius:14px;padding:14px;transition:all .15s}
#hf2 .n-morebtn:hover{border-color:var(--acc);background:var(--acc-soft)}
#hf2 .n-morebtn svg{width:16px;height:16px}
#hf2 .n-morehead{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin:18px 0 10px}

/* valinnaiset tarkennukset (P1-02 / 6.2) */
#hf2 .n-morebox{margin-top:16px;border:1.5px dashed var(--line2);border-radius:14px;background:#FBFCFB}
#hf2 .n-morebox summary{display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer;padding:13px 16px;font-size:14px;font-weight:650;color:var(--acc-strong);border-radius:14px}
#hf2 .n-morebox summary::-webkit-details-marker{display:none}
#hf2 .n-morebox summary svg{width:15px;height:15px;transition:transform .15s}
#hf2 .n-morebox[open] summary svg{transform:rotate(45deg)}
#hf2 .n-morebox summary:hover{background:var(--acc-soft)}
#hf2 .n-morebox .n-morebody{padding:2px 16px 16px}
#hf2 .n-morebox .opt{font-weight:500;color:var(--soft)}

/* kuolinpesä-haara noutopolussa (P1-03) */
#hf2 .n-branch{margin-top:14px}
#hf2 .n-branch .n-switch{margin-top:10px}

/* lähetysvirhe */
#hf2 .n-senderr{display:none;margin-top:14px}
#hf2 .n-senderr.show{display:block}

/* progressive disclosure */
#hf2 .n-gated{display:none!important}
#hf2 .n-new{animation:nrise .3s ease both}
#hf2 .n-sec{animation:none}

/* "contact patch" -näkymäalue (FORM-WHEEL-REQ-001) */
#hf2 .n-vp{position:relative}
#hf2 .n-vpscroll{
  /* v1.8: näkymä ulottuu lähes sivun alalaitaan — alatila ≈ ylätila */
  height:min(calc(100vh - 215px),1080px);min-height:520px;overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:var(--line2) transparent;
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 91%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0,#000 91%,transparent 100%);
}
#hf2 .n-vpscroll::-webkit-scrollbar{width:7px}
#hf2 .n-vpscroll::-webkit-scrollbar-thumb{background:var(--line2);border-radius:99px}
#hf2 .n-vp .n-stage{padding:30px 24px 150px 4px}
/* ylähäivytys erillisenä kerroksena: katoaa kokonaan, kun vieritetään ylös — palaa alas vieritettäessä */
#hf2 .n-fadetop{position:absolute;left:0;right:0;top:0;height:9%;pointer-events:none;z-index:5;
  background:linear-gradient(180deg,var(--bg) 0,rgba(244,246,245,0) 100%);opacity:1;transition:opacity .35s ease}
#hf2 .n-fadetop.off{opacity:0}
#hf2 .n-vpnav{position:absolute;right:-58px;top:50%;bottom:auto;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px;z-index:6}
@media (max-width:1280px){#hf2 .n-vpnav{right:-46px}}
#hf2 .n-vpnav button{width:38px;height:38px;border-radius:50%;background:#fff;border:1.5px solid var(--line2);box-shadow:var(--sh-sm);display:grid;place-items:center;color:var(--acc-strong);cursor:pointer;transition:all .15s;padding:0}
#hf2 .n-vpnav button:hover{border-color:var(--acc);background:var(--acc-soft)}
#hf2 .n-vpnav button svg{width:16px;height:16px}
/* vastatut osiot himmenevät kevyesti — silti luettavia ja klikattavia.
   Kun käyttäjä vierittää takaisin tarkistamaan, himmennys POISTUU (n-focus). */
#hf2 .n-sec.n-past{opacity:.62;transition:opacity .25s}
#hf2 .n-sec.n-past:hover,#hf2 .n-sec.n-past:focus-within,#hf2 .n-sec.n-past.n-focus{opacity:1}
@media (max-width:980px){
  /* v1.46 FIX-07: mobiilin runko uusiksi — .n-vp on pystysuora flex-
     säiliö, jonka korkeus on dvh-pohjainen (v1.28-mitat säilyvät):
     sisällä vieritysalue (flex:1, min-height:0) ja sen ALLA #nNav-
     alapalkki (.n-nav) — palkki EI enää ole vieritysalueen sisällä,
     joten Lähetä on aina näkyvissä ilman vieritystä eikä näppäimistö
     tai overscroll piilota sitä. */
  #hf2 .n-vp{display:flex;flex-direction:column;height:max(460px,calc(100dvh - 300px));transition:height .35s ease}
  #hf2.hf-started .n-vp{height:max(500px,calc(100dvh - 172px))}
  #hf2 .n-vpscroll{height:auto;min-height:0;flex:1 1 auto;
    /* FIX-07: alahäivytys enintään 24px (oli 9 % ≈ 50–90px) */
    -webkit-mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 24px),transparent 100%);
    mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 24px),transparent 100%)}
  /* nuolinapit alapalkin YLÄPUOLELLE — JS päivittää --hfnavh:n (0 kun palkki piilossa) */
  #hf2 .n-vpnav{right:2px;top:auto;bottom:calc(12px + var(--hfnavh,0px));transform:none;transition:bottom .2s ease}
  /* v1.28: tyhjä kaista pois — häivytys hoitaa rajan */
  #hf2 .n-wrap{gap:8px}
  #hf2 .n-main{gap:8px}
  #hf2 .n-fadetop{height:44px;opacity:1!important;border-radius:0}
}

/* ---------- polunvaihto ---------- */
#hf2 .n-switch{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}
#hf2 .n-switch button{font-size:13.5px;font-weight:650;color:var(--acc-strong);background:#fff;border:1.5px solid var(--acc-line);border-radius:999px;padding:9px 16px;transition:all .15s}
#hf2 .n-switch button:hover{background:var(--acc-soft);border-color:var(--acc)}

/* ---------- kalenteri ---------- */
#hf2 .n-quick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
/* v1.7: tiiviimpi kalenteri, päivillä näkyvä reunus, hover vain reunuksella */
#hf2 .n-cal{border:1.5px solid var(--line);border-radius:14px;overflow:hidden;max-width:392px;background:#fff}
#hf2 .n-cal-h{display:flex;align-items:center;justify-content:space-between;background:#F6F8F7;padding:9px 11px;border-bottom:1px solid var(--line)}
#hf2 .n-cal-h b{font-size:14.5px;color:var(--ink);text-transform:capitalize;font-weight:700}
#hf2 .n-cal-nav{width:30px;height:30px;border-radius:9px;border:1px solid var(--line2);background:#fff;display:grid;place-items:center;color:var(--ink);transition:border-color .15s,color .15s}
#hf2 .n-cal-nav:hover:not(:disabled){border-color:var(--acc);color:var(--acc)}
#hf2 .n-cal-nav:disabled{opacity:.3;cursor:default}
#hf2 .n-cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:10px}
#hf2 .n-cal-g .dow{font-size:10.5px;font-weight:700;color:var(--soft);text-align:center;text-transform:uppercase;letter-spacing:.05em;padding:2px 0}
#hf2 .n-day{aspect-ratio:1;border:1.5px solid var(--line2);border-radius:9px;background:#fff;font-size:13.5px;font-weight:600;color:var(--tx);display:grid;place-items:center;transition:border-color .15s,background .15s,color .15s,transform .15s;min-height:30px}
#hf2 .n-day:hover:not(:disabled):not(.lock){border-color:var(--acc);background:#fff}
#hf2 .n-day:disabled{color:#C7CFCA;border-color:#EEF1EF;background:transparent;cursor:default}
#hf2 .n-day.sel{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:700}
#hf2 .n-day.sel:hover:not(:disabled):not(.lock){background:var(--acc);border-color:var(--acc);color:#fff}
#hf2 .n-day.today:not(.sel){border-color:var(--acc)}
/* v1.8: valitut päivät kalenterin OIKEALLA puolella — näkyvät ilman vieritystä */
#hf2 .n-calrow{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
#hf2 .n-calrow .n-cal{flex:none}
#hf2 .n-dates{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex:1 1 170px;min-width:170px;margin-top:2px}
#hf2 .n-dates-t{font-size:12.5px;font-weight:700;color:var(--soft);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}
/* v1.13: pääkalenterin chipit sarakkeittain, ENINTÄÄN 5 / sarake — loput
   seuraavaan sarakkeeseen oikealle */
#hf2 .n-dates-list{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-start}
#hf2 .n-datecolgrp{display:flex;flex-flow:column wrap;align-content:flex-start;gap:8px 10px;max-height:222px}
/* v1.13: arviokäyntikalenterin chipit VAAKARIVEINÄ vasemmalta oikealle —
   rivi täyttyy → jatkuu alle; huomautukset aina chipien ALLA */
#hf2 .n-dates.h .n-dates-list{flex-flow:row wrap;max-height:none;align-items:flex-start}
/* kalenterin viereiset huomautukset (lukittu päivä / seuraukset / sama päivä) */
#hf2 .n-calnote{font-size:13px;line-height:1.55;border-radius:10px;padding:10px 13px;margin-top:4px;max-width:420px}
#hf2 .n-calnote.err{background:var(--redbg);border:1px solid #EFC7C7;color:var(--red)}
#hf2 .n-calnote.warn{background:#FFF7E8;border:1px solid #F1E2C0;color:#8A6D2B}
/* pehmeästi lukitut päivät (palvelupäivän jälkeen) */
#hf2 .n-day.lock{color:#C7CFCA;border-color:#EEF1EF;background:transparent;cursor:not-allowed}
#hf2 .n-day.lock:hover{transform:none;border-color:#E4B8B8}
/* v1.13: koko chip klikattava poistoon; × isompi, selkeämpi ja kauempana tekstistä */
#hf2 .n-datechip{display:inline-flex;align-items:center;gap:12px;font-size:13.5px;font-weight:650;color:var(--acc-ink);background:var(--acc-soft);border:1px solid var(--acc-line);border-radius:999px;padding:6px 8px 6px 15px;cursor:pointer}
#hf2 .n-datechip button{border:1px solid var(--acc-line);background:#fff;border-radius:50%;width:24px;height:24px;font-size:15px;font-weight:700;line-height:1;color:var(--acc-strong);cursor:pointer;flex:none;display:grid;place-items:center;transition:background .15s,color .15s,transform .15s}
#hf2 .n-datechip:hover button{background:var(--acc);border-color:var(--acc);color:#fff;transform:scale(1.06)}

/* v1.13: SAAVUTETTAVUUS — selitystekstit tummiksi työpöydällä (heikkonäköisille) */
@media (min-width:981px){
  #hf2 .n-sub,
  #hf2 .n-svc .t span,#hf2 .n-opt .t span,#hf2 .n-addon .t span,
  #hf2 .n-f .opt,#hf2 .n-group>.glabel .opt,#hf2 .n-f label .opt,
  #hf2 .n-fmeta,#hf2 .n-drop span,
  #hf2 .n-waitnote,#hf2 .n-dates-t,
  #hf2 .n-assure div,#hf2 .n-rcnote,#hf2 .n-rcnote a,
  #hf2 .n-side p,#hf2 .n-step span,#hf2 .n-brand span,
  #hf2 .n-help{color:var(--ink)}
  #hf2 .n-opt .t span.good{color:var(--acc)} /* positiiviset korostukset säilyvät */
}

/* ===== v1.15: pientekstit +10 % — luettavuus ===== */
#hf2 .n-sub{font-size:15.5px}
#hf2 .n-svc .t b{font-size:17px}
#hf2 .n-svc .t span{font-size:14.5px}
#hf2 .n-opt .t b{font-size:16.5px}
#hf2 .n-opt .t span{font-size:14px}
#hf2 .n-addon .t b{font-size:16.5px}
#hf2 .n-addon .t span{font-size:14px}
#hf2 .n-chip{font-size:16px}
#hf2 .n-day{font-size:15px}
#hf2 .n-cal-g .dow{font-size:11.5px}
#hf2 .n-cal-h b{font-size:16px}
#hf2 .n-datechip{font-size:15px}
#hf2 .n-dates-t{font-size:14px}
#hf2 .n-calnote{font-size:14.5px}
#hf2 .n-waitnote{font-size:14.5px}
#hf2 .n-f label{font-size:15.5px}
#hf2 .n-f .opt,#hf2 .n-group>.glabel .opt{font-size:14px}
#hf2 .n-group>.glabel{font-size:16px}
#hf2 .n-err,#hf2 .n-gerr{font-size:14.5px}
#hf2 .n-gdpr label{font-size:15.5px}
#hf2 .n-note{font-size:15.5px}
#hf2 .n-rcnote{font-size:13.5px}
#hf2 .n-fmeta{font-size:14.5px}
#hf2 .n-drop b{font-size:18px}
#hf2 .n-drop span{font-size:15px}
#hf2 .n-switch button{font-size:15px}
#hf2 .n-assure div{font-size:14.5px}
#hf2 .n-badge{font-size:15px}
#hf2 .n-step b{font-size:16.5px}
#hf2 .n-step span{font-size:14px}
#hf2 .n-brand b{font-size:17px}
#hf2 .n-brand span{font-size:14px}
#hf2 .n-side p{font-size:15.5px}
#hf2 .n-fact{font-size:15px}
#hf2 .n-pill{font-size:14px}
#hf2 .n-ix{font-size:14.5px}

/* ---------- lataus ---------- */
#hf2 .n-drop{
  border:2px dashed var(--acc-line);border-radius:16px;
  padding:clamp(22px,3vw,32px);text-align:center;background:linear-gradient(180deg,#FDFEFD, var(--acc-soft) 160%);
  transition:all .15s;
}
#hf2 .n-drop.over{border-color:var(--acc);background:var(--acc-soft)}
#hf2 .n-drop .dic{width:52px;height:52px;border-radius:16px;background:var(--acc-soft);color:var(--acc);display:grid;place-items:center;margin:0 auto 12px}
#hf2 .n-drop .dic svg{width:26px;height:26px}
#hf2 .n-drop b{font-size:16.5px;color:var(--ink);display:block;font-weight:750}
#hf2 .n-drop span{font-size:13.5px;color:var(--soft);display:block;margin-top:4px}
#hf2 .n-drop button{margin-top:14px;font-size:15px;font-weight:700;color:#fff;background:var(--acc);border:none;border-radius:999px;padding:12px 26px;box-shadow:var(--sh-sm);transition:transform .12s;display:inline-flex;align-items:center;gap:9px}
#hf2 .n-drop button svg{width:18px;height:18px;flex:none}
#hf2 .n-drop button:hover{transform:translateY(-1px)}
#hf2 .n-files{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:9px;margin-top:14px}
#hf2 .n-file{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#F1F4F2;aspect-ratio:1}
#hf2 .n-file img,#hf2 .n-file video{width:100%;height:100%;object-fit:cover;display:block}
#hf2 .n-file .ext{position:absolute;inset:0;display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--soft);text-transform:uppercase}
#hf2 .n-file .rm{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:50%;border:none;background:rgba(20,30,25,.75);color:#fff;font-size:13px;line-height:1}
#hf2 .n-fmeta{font-size:13px;color:var(--soft);margin-top:10px;text-align:center}

/* ---------- add-on suositukset ---------- */
#hf2 .n-addons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#hf2 .n-addon{
  position:relative;display:flex;gap:12px;align-items:center;text-align:left;
  border:1.5px dashed var(--line2);border-radius:14px;background:#FDFEFD;
  padding:13px 42px 13px 14px;width:100%;transition:all .16s;
}
#hf2 .n-addon .pl{width:34px;height:34px;border-radius:50%;flex:none;background:var(--acc-soft);color:var(--acc);display:grid;place-items:center;transition:all .16s}
#hf2 .n-addon .pl svg{width:17px;height:17px}
#hf2 .n-addon .t b{display:block;font-size:14.5px;font-weight:700;color:var(--ink)}
#hf2 .n-addon .t span{display:block;font-size:12.5px;color:var(--soft);margin-top:1px}
#hf2 .n-addon:hover{border-color:var(--acc)}
#hf2 .n-addon[aria-pressed="true"]{border-style:solid;border-color:var(--acc);background:var(--acc-soft)}
#hf2 .n-addon[aria-pressed="true"] .pl{background:var(--acc);color:#fff}

/* ---------- suostumus ---------- */
#hf2 .n-gdpr{display:flex;gap:12px;align-items:flex-start;border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;margin-top:16px;background:#fff}
#hf2 .n-gdpr input{width:20px;height:20px;margin-top:2px;accent-color:var(--acc);flex:none}
#hf2 .n-gdpr label{font-size:14px;color:var(--tx);line-height:1.55}
#hf2 .n-gdpr.err{border-color:var(--red);background:var(--redbg)}
#hf2 .n-waitnote{display:flex;align-items:center;gap:9px;margin-top:12px;font-size:13px;color:var(--soft)}
#hf2 .n-waitnote .dot{width:8px;height:8px;border-radius:50%;background:var(--acc);animation:hfpulse 1.1s ease-in-out infinite;flex:none}
@keyframes hfpulse{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
/* ---------- v1.39: älykäs reittiehdotus (nouto) ---------- */
#hf2 .n-fork{border:1.5px solid var(--acc-line);background:var(--acc-soft);border-radius:14px;padding:15px 16px 14px;margin-top:14px}
#hf2 .n-fork.err{border-color:var(--red);background:var(--redbg)}
#hf2 .n-fork-t{font-weight:800;font-size:15px;color:var(--ink);margin-bottom:5px}
#hf2 .n-fork-x{font-size:13.5px;color:var(--tx);line-height:1.55;margin-bottom:11px}
#hf2 .n-fork-b{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
#hf2 .n-fork-b button{font:inherit;font-size:13.5px;font-weight:700;border-radius:11px;padding:9px 14px;cursor:pointer;line-height:1.25;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
#hf2 .n-fork-b .p{background:var(--acc);border:1.5px solid var(--acc);color:#fff}
#hf2 .n-fork-b .p:hover{background:var(--acc-strong)}
#hf2 .n-fork-b .s{background:#fff;border:1.5px solid var(--acc);color:var(--acc)}
#hf2 .n-fork-b .s:hover{background:var(--acc-soft)}
#hf2 .n-fork-b .g{background:transparent;border:1.5px solid transparent;color:var(--soft);text-decoration:underline;text-underline-offset:3px}
#hf2 .n-fork-b .g:hover{color:var(--tx)}
#hf2 .n-fork-b .p.on,#hf2 .n-fork-b .g.on{box-shadow:0 0 0 2.5px var(--c3)}
#hf2 .n-fork-b .g.on{background:#fff;border-color:var(--acc-line);color:var(--acc-ink);text-decoration:none}
@media (max-width:640px){#hf2 .n-fork-b{flex-direction:column;align-items:stretch}#hf2 .n-fork-b button{width:100%;text-align:center}}
/* ---------- v1.42: tavararyhmien kaksitasoinen valitsin ---------- */
#hf2 .n-catsub{display:block;font-size:13px;color:var(--soft);margin:-2px 0 10px;line-height:1.5}
#hf2 .n-itemcats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
#hf2 .n-itemcat{border:1.5px solid var(--line);border-radius:13px;background:var(--card);overflow:hidden;min-width:0}
#hf2 .n-itemcat.has{border-color:var(--acc)}
#hf2 .n-itemcat-head{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;background:none;border:none;cursor:pointer;font:inherit;text-align:left;min-height:44px}
#hf2 .n-itemcat-head:focus-visible{outline:2.5px solid var(--c3);outline-offset:-2px;border-radius:13px}
#hf2 .n-itemcat-ic{flex:0 0 auto;width:34px;height:34px;border-radius:9px;background:var(--acc-soft);color:var(--acc);display:grid;place-items:center}
#hf2 .n-itemcat-ic svg{width:20px;height:20px}
#hf2 .n-itemcat.has .n-itemcat-ic{background:var(--acc);color:#fff}
#hf2 .n-itemcat-text{flex:1 1 auto;min-width:0;font-weight:700;font-size:14px;color:var(--ink);line-height:1.3}
#hf2 .n-itemcat-count{flex:0 0 auto;font-size:11.5px;font-weight:700;color:var(--acc-ink);background:var(--acc-soft);border:1px solid var(--acc-line);border-radius:999px;padding:3px 9px;white-space:nowrap}
#hf2 .n-itemcat-chev{flex:0 0 auto;width:18px;height:18px;color:var(--soft);transition:transform .2s}
#hf2 .n-itemcat-chev svg{width:18px;height:18px}
#hf2 .n-itemcat.open .n-itemcat-chev{transform:rotate(180deg)}
#hf2 .n-subitems{display:flex;flex-wrap:wrap;gap:7px;padding:2px 12px 12px}
#hf2 .n-itchip{display:inline-flex;align-items:center;gap:6px}
#hf2 .n-itchip .tick{display:none;width:13px;height:13px;flex:0 0 auto}
#hf2 .n-itchip .tick svg{width:13px;height:13px;display:block}
#hf2 .n-itchip[aria-pressed="true"] .tick{display:inline-flex}
#hf2 .n-morecats{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:13.5px;font-weight:700;color:var(--acc);background:none;border:1.5px dashed var(--acc-line);border-radius:11px;padding:10px 14px;cursor:pointer;margin:2px 0 8px;min-height:44px}
#hf2 .n-morecats svg{width:15px;height:15px;flex:0 0 auto}
#hf2 .n-morecats:focus-visible{outline:2.5px solid var(--c3);outline-offset:2px}
#hf2 .n-selected-items{border:1.5px solid var(--line);background:var(--bg);border-radius:13px;padding:11px 13px;margin-top:8px}
#hf2 .n-selhead{display:block;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--soft);margin-bottom:8px}
#hf2 .n-selwrap{display:flex;flex-wrap:wrap;gap:7px}
#hf2 .n-selitem{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line2);border-radius:999px;padding:5px 6px 5px 12px;font-size:12.5px;font-weight:600;color:var(--ink)}
#hf2 .n-selitem button{width:22px;height:22px;border-radius:50%;border:none;background:var(--acc-soft);color:var(--acc-ink);font-size:14px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0;flex:0 0 auto}
#hf2 .n-selitem button:hover{background:var(--redbg);color:var(--red)}
#hf2 .n-selitem button:focus-visible{outline:2.5px solid var(--c3);outline-offset:1px}
/* ---------- v1.45: pikavalitsin + laajennettu valitsin ---------- */
.hf-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
#hf2 .n-quickitems{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
#hf2 .n-quickitems .n-chip{min-height:44px}
#hf2 .n-qgroup{display:inline-flex;align-items:center;gap:7px;border-style:dashed}
#hf2 .n-qgroup .qarr{font-weight:800;color:var(--acc);margin-left:1px}
#hf2 .n-addmore{display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:14px;font-weight:700;color:var(--acc);background:var(--card);border:1.5px dashed var(--acc-line);border-radius:12px;padding:11px 16px;cursor:pointer;min-height:44px}
#hf2 .n-addmore svg{width:15px;height:15px;flex:0 0 auto}
#hf2 .n-addmore:hover{background:var(--acc-soft)}
#hf2 .n-addmore:focus-visible{outline:2.5px solid var(--c3);outline-offset:2px}
#hf2 .n-advpick{margin-top:12px;border:1.5px solid var(--line);border-radius:14px;background:var(--bg);padding:12px}
#hf2 .n-advsearch{margin-bottom:10px}
#hf2 .n-advsearch .n-in{margin:0;width:100%;box-sizing:border-box}
#hf2 .n-advpick .n-itemcat{background:var(--card);margin-bottom:7px}
#hf2 .n-searchres{padding:2px 2px 6px;background:transparent}
#hf2 .n-advempty{font-size:13.5px;color:var(--tx);padding:8px 4px 10px}
/* v1.47 FIX-1: kohdennettu osio — otsikko = klikatun pikavalinnan teksti */
#hf2 .n-focuspanel{background:var(--card);border:1.5px solid var(--acc-line);border-radius:13px;padding:12px;margin-bottom:8px}
#hf2 .n-focushead{display:flex;align-items:center;gap:10px;font-weight:800;font-size:15px;color:var(--ink);margin-bottom:10px}
#hf2 .n-focushead .n-itemcat-ic{width:30px;height:30px;flex:0 0 auto}
#hf2 .n-focuspanel .n-focusitems{padding:0 0 4px}
#hf2 .n-focusall{display:block;width:100%;margin-top:8px;font:inherit;font-size:13.5px;font-weight:700;color:var(--acc);background:none;border:1.5px dashed var(--acc-line);border-radius:11px;padding:10px 14px;cursor:pointer;min-height:44px}
#hf2 .n-focusall:hover{background:var(--acc-soft)}
#hf2 .n-focusall:focus-visible{outline:2.5px solid var(--c3);outline-offset:2px}
#hf2 .n-focusall-g{font-weight:600;color:var(--soft)}
#hf2 .n-advclose{display:block;width:100%;margin-top:6px;font:inherit;font-size:13.5px;font-weight:700;color:var(--tx);background:var(--card);border:1.5px solid var(--line2);border-radius:11px;padding:10px 14px;cursor:pointer;min-height:44px}
#hf2 .n-advclose:hover{border-color:var(--acc);color:var(--acc)}
#hf2 .n-advclose:focus-visible{outline:2.5px solid var(--c3);outline-offset:2px}
#hf2 .n-itemsum{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1.5px solid var(--acc-line);background:var(--acc-soft);border-radius:13px;padding:12px 14px}
#hf2 .n-itemsum-t{font-size:14.5px;font-weight:700;color:var(--acc-ink);min-width:0}
#hf2 .n-itemsum-edit{font:inherit;font-size:13.5px;font-weight:800;color:var(--acc);background:var(--card);border:1.5px solid var(--acc-line);border-radius:999px;padding:8px 16px;cursor:pointer;flex:0 0 auto;min-height:40px}
#hf2 .n-itemsum-edit:hover{background:var(--acc);color:#fff}
#hf2 .n-itemsum-edit:focus-visible{outline:2.5px solid var(--c3);outline-offset:2px}
#hf2 .n-itemsdone{display:block;width:100%;margin-top:16px;font:inherit;font-size:15px;font-weight:800;color:#fff;background:var(--acc);border:1.5px solid var(--acc);border-radius:13px;padding:14px 18px;cursor:pointer;min-height:48px;transition:background .15s}
#hf2 .n-itemsdone:hover{background:var(--acc-strong)}
#hf2 .n-itemsdone:disabled{background:#C6CDC9;border-color:#C6CDC9;color:#F7F9F8;cursor:not-allowed}
#hf2 .n-itemsdone:focus-visible{outline:2.5px solid var(--c3);outline-offset:2px}
#hf2 .n-rcnote{margin-top:14px;font-size:12px;color:var(--soft);line-height:1.6}
#hf2 .n-rcnote a{color:var(--soft);text-decoration:underline}
/* reCAPTCHA-badge piilotettu — pakollinen seloste näytetään lomakkeessa (.n-rcnote) */
.grecaptcha-badge{visibility:hidden!important}
#hf2 .n-assure{display:flex;flex-direction:column;gap:7px;margin-top:14px}
#hf2 .n-assure div{display:flex;gap:9px;align-items:center;font-size:13px;color:var(--soft)}
#hf2 .n-assure svg{width:15px;height:15px;color:var(--c1);flex:none}

/* ---------- navigointi ---------- */
@property --hfsubmitprog{syntax:'<percentage>';inherits:true;initial-value:0%}
#hf2 .n-nav{display:flex;align-items:center;gap:12px;padding:4px 2px 0}
#hf2 .n-help{font-size:13.5px;color:var(--soft);margin-right:auto}
#hf2 .n-help b{color:var(--ink)}
#hf2 .n-next{
  --hfsubmitprog:0%;
  position:relative;isolation:isolate;overflow:visible;
  display:inline-flex;align-items:center;gap:9px;
  background:var(--acc-strong);color:#fff;border:none;border-radius:999px;
  font-size:16px;font-weight:750;padding:15px 30px;
  box-shadow:0 6px 18px -8px rgba(20,60,40,.55);
  transition:transform .12s,box-shadow .12s,background .18s,color .18s,--hfsubmitprog .7s ease;
}
/* v1.48: sama vihreä edistymisrengas kuin vaiheiden numeroissa, mutta
   pillin muotoisena koko Lähetä-napin ympärillä. */
#hf2 .n-next::before{
  content:'';position:absolute;inset:-4px;border-radius:inherit;padding:3px;
  background:conic-gradient(from -90deg,#2F9D63 var(--hfsubmitprog),#E3E8E5 0);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
  pointer-events:none;
}
#hf2[data-brand="turun"] .n-next{box-shadow:0 6px 18px -8px rgba(20,50,40,.55)}
#hf2 .n-next:not(:disabled){background:var(--acc-strong);color:#fff}
#hf2 .n-next:disabled:not(.is-sending){
  background:#D9DEDC;color:var(--acc-strong);box-shadow:none;
  cursor:not-allowed;opacity:1;transform:none;
}
#hf2 .n-next:disabled:not(.is-sending):hover{background:#D9DEDC;color:var(--acc-strong);box-shadow:none;transform:none}
#hf2 .n-next.is-sending{background:var(--acc-strong);color:#fff;cursor:wait;box-shadow:0 6px 18px -8px rgba(20,50,40,.55)}
#hf2 .n-next:hover:not(:disabled){transform:translateY(-1px)}
@media (prefers-reduced-motion:reduce){#hf2 .n-next{transition:none}}
@media (min-width:981px){
  /* v1.48: työpöydällä noin kaksinkertainen aiempaan alapuskuriin nähden. */
  #hf2{--hf-desktop-submit-gap:32px}
}
#hf2 .n-prev{background:#fff;color:var(--ink);border:1.5px solid var(--line2);border-radius:999px;font-size:14.5px;font-weight:650;padding:13px 22px;transition:border-color .15s}
#hf2 .n-prev:hover{border-color:var(--acc)}
#hf2 .n-prev:disabled{opacity:.35;cursor:default}
#hf2 .n-steperr{display:none;background:var(--redbg);border:1px solid #EFCFCC;color:var(--red);font-size:14px;font-weight:600;border-radius:14px;padding:13px 16px}
#hf2 .n-steperr.show{display:block}

/* ---------- valmis ---------- */
#hf2 .n-done{text-align:center;padding:26px 8px 10px}
#hf2 .n-done .big{width:76px;height:76px;border-radius:50%;background:var(--acc-soft);border:2px solid var(--acc-line);color:var(--acc);display:grid;place-items:center;margin:0 auto 18px}
#hf2 .n-done .big svg{width:36px;height:36px}
#hf2 .n-done h2{font-size:clamp(24px,3vw,29px);color:var(--ink);font-weight:800;letter-spacing:-.01em}
#hf2 .n-done .p{font-size:15px;color:var(--tx);margin:12px auto 0;max-width:52ch}
#hf2 .n-facts{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:22px}
#hf2 .n-fact{font-size:13.5px;font-weight:650;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 17px;box-shadow:var(--sh-sm)}
/* v1.14: päivämäärät pillereinä kiitossivulla */
#hf2 .n-fact.wide{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;border-radius:18px;max-width:100%}
#hf2 .n-pill{display:inline-flex;align-items:center;background:var(--acc-soft);border:1px solid var(--acc-line);color:var(--acc-ink);border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:650;white-space:nowrap}
#hf2 .n-fact span{color:var(--soft);font-weight:500}

/* ---------- responsiivisuus ---------- */
@media (max-width:980px){
  #hf2 .n-wrap{grid-template-columns:1fr}
  #hf2 .n-sidecol{position:static;display:block}
  #hf2 .n-homebtn{display:none}
  #hf2 .n-side{position:static;gap:14px;padding:18px 16px}
  #hf2 .n-hero p{max-width:none}
  #hf2 .n-steps{flex-direction:row;overflow-x:auto;gap:8px;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  #hf2 .n-step{flex:1 0 auto;padding:9px 13px;background:var(--card);border-color:var(--line)}
  #hf2 .n-step span{display:none}
  #hf2 .n-badges{flex-direction:row;flex-wrap:wrap;margin-top:0}
  #hf2 .n-badge{font-size:12.5px;padding:8px 13px}
}
@media (max-width:680px){
  #hf2 .n-services{grid-template-columns:1fr}
  #hf2 .n-opts{grid-template-columns:1fr}
  #hf2 .n-addons{grid-template-columns:1fr}
  #hf2 .n-grid{grid-template-columns:1fr}
  #hf2 .n-quick{grid-template-columns:1fr}
  #hf2 .n-nav{position:sticky;bottom:0;background:linear-gradient(180deg,transparent,var(--bg) 26%);padding:14px 0 6px;z-index:5}
  #hf2 .n-help{display:none}
  #hf2 .n-next{flex:1;justify-content:center;padding:16px 22px}
  #hf2 .n-hero h1{font-size:27px}
  #hf2 .n-cal{max-width:none}
}


/* =====================================================================
   v1.17 — MOBIILIN YLÄOSA + TIIVIS ASETTELU (vain ≤980 px).
   Työpöytä ennallaan. Sijoitettu tyylien loppuun → voittaa aiemmat
   samantasoiset säännöt.
   ===================================================================== */
@media (max-width:980px){
  /* --- 1) ylätunniste: C-tyyli — brändi liukuu pois ensivalinnan jälkeen --- */
  #hf2 .n-side{padding:12px 14px 10px;gap:12px}
  #hf2 .n-brand{max-height:64px;overflow:hidden;transition:max-height .35s ease,opacity .3s ease,margin-bottom .35s ease}
  #hf2.hf-started .n-brand{max-height:0;opacity:0;margin-bottom:-12px;pointer-events:none}
  /* v1.40: "Tarjouspyyntö" + "Nopea tarjous" -pilleri samalla rivillä */
  #hf2 .n-hero h1{font-size:21px;margin:0;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
  #hf2 .n-hero h1 .ttl-d{display:none}
  #hf2 .n-hero h1 .ttl-m{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #hf2 .n-hero h1 .hero-fast{display:inline-flex;align-items:center;gap:7px;flex:none;font-size:11.5px;font-weight:700;color:var(--acc-ink);background:var(--card);border:1px solid var(--acc-line);border-radius:999px;padding:6px 11px;white-space:nowrap;box-shadow:var(--sh-sm)}
  #hf2 .n-hero h1 .hero-fast .dot{width:7px;height:7px;border-radius:50%;background:#2F9D63;animation:hfpulse 1.6s ease-in-out infinite;flex:none}
  #hf2 .n-hero p{display:none}
  /* v1.20: luottamusmerkit ENNEN vaiheilmaisinta; piiloon heti kun
     käyttäjä aloittaa (vieritys tai 1. valinta) */
  #hf2 .n-side{display:flex}
  #hf2 .n-brand{order:0}
  #hf2 .n-hero{order:1}
  #hf2 .n-badges{order:2;transition:opacity .3s ease}
  #hf2 .n-steps{order:3}
  #hf2 .n-badges{display:none} /* v1.40: mobiilissa merkit korvaa otsikon pikatarjous-pilleri */
  #hf2 .n-steps{gap:6px;padding-bottom:2px}
  /* v1.41: ei epäsymmetristä valkoista taustaa numeroiden takana —
     vain aktiivinen vaihe saa pillerin, ja edistymisrengas (−6.5px)
     mahtuu kokonaan pehmusteen (8px) sisään joka suunnassa */
  #hf2 .n-step{padding:8px;border-radius:999px;gap:8px;align-items:center;flex:0 1 auto;background:transparent;border-color:transparent;box-shadow:none}
  #hf2 .n-step .ix{width:23px;height:23px;font-size:11.5px}
  #hf2 .n-step div{display:none}
  #hf2 .n-step.on{padding:8px 13px 8px 8px;background:var(--card);border-color:var(--line);box-shadow:var(--sh-sm)}
  #hf2 .n-step.on div{display:block}
  #hf2 .n-step.on div b{font-size:12.5px;line-height:1.2}
  #hf2 .n-step div span,#hf2 .n-step.on div span{display:none}
  #hf2 .n-badges .n-badge{font-size:11.5px;padding:6px 10px}

  /* --- 2) v1.46 FIX-07: kiinteä alapalkki .n-vp:n pohjassa — nappi
     harmaana kunnes kaikki pakolliset on täytetty (v1.25-logiikka) --- */
  /* v1.47 FIX-2: juuren alapehmuste palkin alla pois (max 4px) ja
     min-height-venytys pois — palkin alle EI jää kuollutta tilaa.
     safe-area lasketaan VAIN palkin paddingissa (env alla), juuri ei
     lisää omaansa. */
  #hf2{padding-bottom:2px;min-height:0}
  #hf2 .n-nav{position:sticky;bottom:0;flex:0 0 auto;z-index:30;margin:0;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));
    background:rgba(244,246,245,.98);border-top:1.5px solid var(--line);
    box-shadow:0 -6px 16px -10px rgba(20,32,26,.35)}
  #hf2 .n-nav .n-next{width:100%;flex:1;justify-content:center}
  /* v1.48: sama odotustila työpöydällä ja mobiilissa — harmaa pohja,
     teeman tummansininen teksti; lähetyksen aikana sininen säilyy. */
  #hf2 .n-next:disabled:not(.is-sending){background:#D9DEDC;color:var(--acc-strong);box-shadow:none;cursor:not-allowed;transform:none;opacity:1}
  #hf2 .n-next:disabled:not(.is-sending):hover{background:#D9DEDC;color:var(--acc-strong);transform:none;box-shadow:none}

  /* --- 3) pienemmät pehmusteet --- */
  #hf2 .n-sec{padding:15px 12px 17px}
  #hf2 .n-stage{gap:12px}
  #hf2 .n-sec h2{font-size:17.5px}
  #hf2 .n-sub{font-size:13px}

  /* --- 4) osionumero otsikon YLLE; korttikuvakkeet tekstin ylle + pienemmiksi --- */
  #hf2 .n-sechead{flex-direction:column;align-items:flex-start;gap:7px;margin-bottom:8px}
  #hf2 .n-ix{margin-top:0}
  /* v1.19: palvelukortit VAAKANA (kuvake vasemmalla) ja allekkain */
  #hf2 .n-svc{gap:10px;padding:11px 36px 11px 12px;min-height:0;align-items:center}
  #hf2 .n-svc .ic{width:30px;height:30px;border-radius:9px}
  #hf2 .n-svc .ic svg{width:16px;height:16px}
  #hf2 .n-svc .t b{font-size:13.5px;line-height:1.25}
  #hf2 .n-svc .t span{font-size:12px;margin-top:2px;line-height:1.35}
  #hf2 .n-svc .mk{top:50%;transform:translateY(-50%);right:11px}
  /* v1.18: isot valintakortit VAAKANA (kuvake vasemmalla) ja allekkain */
  #hf2 .n-opt{gap:10px;padding:11px 36px 11px 12px;min-height:0;align-items:center}
  #hf2 .n-opt .ic{width:28px;height:28px;border-radius:8px}
  #hf2 .n-opt .ic svg{width:15px;height:15px}
  #hf2 .n-opt .t b{font-size:13.5px;line-height:1.25}
  #hf2 .n-opt .t span{font-size:12px;line-height:1.35;margin-top:1px}
  #hf2 .n-opt .mk{top:50%;transform:translateY(-50%);right:11px}

  /* --- 5) tiiviimmät välit + kentät --- */
  #hf2 .n-chips{gap:7px}
  #hf2 .n-grid{gap:10px}
  #hf2 .n-in,#hf2 .n-sel,#hf2 .n-ta{padding:11px 12px}
  #hf2 .n-f label{font-size:13px}

  /* --- 6) kalenteri koko osion levyinen --- */
  #hf2 .n-cal{max-width:none;width:100%}
  #hf2 .n-calrow .n-cal{flex:1 1 100%}
  #hf2 .n-dates{flex:1 1 100%;min-width:0}

  /* --- 7) masonry: kortit kahteen sarakkeeseen myös kapealla --- */
  #hf2 .n-services{grid-template-columns:1fr;gap:8px} /* v1.19: allekkain */
  #hf2 .n-opts{grid-template-columns:1fr;gap:8px} /* v1.18: allekkain kuten ennen */
  #hf2 .n-addons{grid-template-columns:1fr;gap:8px}
  #hf2 .n-quick{grid-template-columns:1fr;gap:8px}
  #hf2 .n-grid{grid-template-columns:1fr} /* v1.22: kentät allekkain */

  /* --- 9) kerrosvalinnat: numerot 3/rivi, pidemmät 2/rivi (v1.23) --- */
  #hf2 [data-f="floor_level"] .n-chips{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
  #hf2 [data-f="floor_level"] .n-chip{grid-column:span 3;padding:8px 6px;font-size:12.5px;min-width:0}
  #hf2 [data-f="floor_level"] .n-chip[data-v^="floor_"]{grid-column:span 2}
  #hf2 [data-f="floor_level"] .n-chip[data-v="floor_10_plus"]{grid-column:span 3}
  #hf2 [data-f="floor_level"] .n-chip[data-v="ground_level"]{grid-column:1/-1} /* v1.24: oma rivi Kellarin alla */

  /* --- 10) chipit: rivittyvät, hieman pienemmät, eivät ylitä reunaa --- */
  #hf2 .n-chip{font-size:13px;padding:8.5px 12px;min-height:38px;min-width:0;max-width:100%;white-space:normal;text-align:center;line-height:1.25}
  #hf2 .n-chip svg{width:15px;height:15px;flex:none}

  /* muut pikkusäädöt */
  #hf2 .n-datechip{font-size:12.5px;padding:5px 7px 5px 12px;gap:9px}
  #hf2 .n-calnote{max-width:none}
  #hf2 .n-morebox summary{font-size:13px}

  /* --- v1.43: MOBIILITYPOGRAFIA + KESKITYS + TIIVIIMMÄT PEHMUSTEET ---
     1) lomake keskelle: sisäkehyksen epäsymmetrinen pehmuste pois
        (oli 4px vasen / 24px oikea → 20px hukkatilaa oikealla) ja
        alapehmuste 150px → 26px (nappi on nykyään virran sisällä);
     2) laatikoiden pehmusteet −15% → tilaa teksteille;
     3) otsikot +10%, kuvaustekstit otsikoiden alla +20% ja selvästi
        tummemmat (haalea #7A8790 → tumma #2B3944). */
  #hf2 .n-vp .n-stage{padding:16px 8px 20px 8px} /* v1.46 FIX-07: alapehmuste 20px (palkki on virran ulkopuolella) */
  #hf2 .n-sec{padding:13px 10px 14px}
  #hf2 .n-side{padding:10px 12px 9px}
  #hf2 .n-svc{padding:9px 33px 9px 10px}
  #hf2 .n-opt{padding:9px 33px 9px 10px}
  #hf2 .n-sec h2{font-size:19.5px}
  #hf2 .n-svc .t b,#hf2 .n-opt .t b{font-size:15px}
  #hf2 .n-group>.glabel{font-size:17.5px}
  #hf2 .n-f label{font-size:14.5px}
  #hf2 .n-sub{font-size:15.5px;color:#2B3944}
  #hf2 .n-svc .t span,#hf2 .n-opt .t span{font-size:14.5px;color:#2B3944}
  #hf2 .n-catsub{font-size:15.5px;color:#2B3944}
  #hf2 .n-waitnote{font-size:14px;color:#2B3944}

  /* --- v1.45: pikavalitsin mobiilissa --- */
  #hf2 .n-quickitems{gap:7px}
  #hf2 .n-quickitems .n-chip{flex:1 1 calc(50% - 4px);justify-content:center;min-width:0;min-height:45px}
  #hf2 .n-addmore{width:100%;justify-content:center}
  #hf2 .n-advpick{padding:10px}
  #hf2 .n-itemsdone{scroll-margin-bottom:80px}
  #hf2 .n-itemsum{padding:11px 12px}
  /* --- v1.46 FIX-02: AIDOT ≥44px kosketuskohteet tavaravalitsimessa ---
     laajennetun valitsimen tavara-chipit + hakutulokset, Muokkaa-nappi
     ja valittujen tavaroiden poistonapit (44×44). Ei vaakavuotoa:
     chipit rivittyvät (flex-wrap) ja kutistuvat (min-width:0). */
  #hf2 .n-subitems{gap:8px}
  #hf2 .n-subitems .n-itchip{min-height:44px;padding:10px 13px}
  #hf2 .n-itemsum-edit{min-height:44px;padding:10px 18px}
  #hf2 .n-selwrap{gap:8px}
  #hf2 .n-selitem{min-height:44px;padding:3px 4px 3px 13px;font-size:13.5px}
  #hf2 .n-selitem button{width:44px;height:44px;font-size:17px}

  /* --- v1.42: tavararyhmät mobiilissa — kuvakkeet AINA näkyvissä tekstin vieressä --- */
  #hf2 .n-itemcats{grid-template-columns:1fr;gap:7px}
  #hf2 .n-itemcat-head{padding:10px 11px;gap:9px}
  #hf2 .n-itemcat-ic{width:31px;height:31px;border-radius:8px}
  #hf2 .n-itemcat-ic svg{width:18px;height:18px}
  #hf2 .n-itemcat-text{font-size:15px;white-space:normal}
  #hf2 .n-itemcat-count{font-size:11px;padding:3px 8px}
  #hf2 .n-subitems{padding:0 11px 11px;gap:6px}
  #hf2 .n-focuspanel .n-focusitems{padding:0 0 4px} /* v1.47: kohdennettu osio ilman sisennystä */
  #hf2 .n-selected-items{padding:10px 11px}
}

/* ===== v1.21: vaiheilmaisimen edistymisrengas ===== */
@property --hfprog{syntax:'<percentage>';inherits:true;initial-value:0%}
#hf2 .n-step .ix{position:relative;transition:--hfprog .7s ease}
#hf2 .n-step .ix::before{
  content:'';position:absolute;inset:-6.5px;border-radius:50%; /* v1.30: pieni rako kiekon ja renkaan väliin */
  background:conic-gradient(#2F9D63 var(--hfprog),#E3E8E5 0); /* vihreä edistymisrengas */
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2.4px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2.4px));
  pointer-events:none;
}
/* v1.26: Google-osoite-ehdotusten pudotusvalikko */
.pac-container{z-index:2147483000!important;border-radius:12px;box-shadow:0 14px 34px -12px rgba(15,35,28,.4);border:1px solid #E6EAE8;font-family:inherit;margin-top:4px}
.pac-item{padding:9px 12px;font-size:13.5px;line-height:1.4;cursor:pointer}
.pac-item:hover{background:#F0F4F2}
.pac-item-query{font-size:14px;font-weight:600}
.pac-logo:after{opacity:.6}
/* v1.29: ristiriitainen (poiskytketty) vaihtoehto */
