/* ==========================================================================
   Pesolan Leipomo — design system
   Tämä tiedosto vastaa sitä CSS:ää joka menee Astra-lapsiteemaan.
   Lähde: Premium-build index.html (2026-06-30), laajennettuna WooCommercelle.
   ========================================================================== */

@font-face{font-family:'Bricolage';font-weight:800;font-display:swap;src:url('fonts/bricolage-grotesque-800.woff2') format('woff2');}
@font-face{font-family:'Bricolage';font-weight:700;font-display:swap;src:url('fonts/bricolage-grotesque-700.woff2') format('woff2');}
@font-face{font-family:'DM Sans';font-weight:400;font-display:swap;src:url('fonts/dm-sans-400.woff2') format('woff2');}
@font-face{font-family:'DM Sans';font-weight:500;font-display:swap;src:url('fonts/dm-sans-500.woff2') format('woff2');}

:root{
  --bg:#f4f1ea; --surface:#ece6da; --ink:#2a1d12; --accent:#bd7a2c; --accent-deep:#9a5f1f;
  --muted:rgba(42,29,18,.58); --line:rgba(42,29,18,.14); --green:#5a8a4a;
  --ease:cubic-bezier(.16,1,.3,1); --pad:clamp(20px,5vw,76px);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{width:100%;background:var(--bg);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;}
body{overflow-x:hidden;}
::selection{background:var(--accent);color:var(--bg);}
img{display:block;max-width:100%;}
a{color:inherit;}
h1,h2,h3{font-family:'Bricolage',sans-serif;font-weight:800;line-height:.96;letter-spacing:-.02em;}

#grain{position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.045;mix-blend-mode:multiply;}

/* ---------- NAV ---------- */
nav{position:fixed;top:0;left:0;right:0;height:72px;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);transition:background .4s,backdrop-filter .4s,height .4s;}
nav.scrolled{background:rgba(244,241,234,.86);backdrop-filter:blur(14px);height:62px;box-shadow:0 1px 0 var(--line);}
nav .brand{display:flex;align-items:center;}
nav .brand img{height:46px;width:auto;transition:height .4s;}
nav.scrolled .brand img{height:40px;}
nav .links{display:flex;gap:clamp(14px,2vw,32px);align-items:center;}
nav .links a{text-decoration:none;font-size:14px;font-weight:500;color:var(--ink);opacity:.82;transition:opacity .2s,color .2s;}
nav .links a:hover,nav .links a[aria-current]{opacity:1;color:var(--accent-deep);}
nav .nav-cta{padding:11px 22px;background:var(--ink);color:var(--bg)!important;border-radius:999px;opacity:1!important;font-weight:500;will-change:transform;transition:transform .12s ease,background .3s;}
nav .nav-cta:hover{background:var(--accent-deep);}
.cart-link{position:relative;display:inline-flex;align-items:center;gap:7px;}
.cart-link .count{background:var(--accent);color:#2a1d12;font-size:11px;font-weight:600;min-width:19px;height:19px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;}
.burger{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:transparent;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px;}
.burger span{display:block;width:17px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease),opacity .2s;}
nav.open .burger span:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
nav.open .burger span:nth-child(2){opacity:0;}
nav.open .burger span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);}
@media(max-width:900px){
  .burger{display:flex;}
  nav .links{position:fixed;inset:0 0 auto;top:0;padding:96px var(--pad) 34px;background:var(--bg);flex-direction:column;align-items:flex-start;gap:4px;transform:translateY(-100%);transition:transform .45s var(--ease);box-shadow:0 24px 60px -30px rgba(42,29,18,.5);}
  nav.open .links{transform:translateY(0);}
  nav .links a{font-family:'Bricolage',sans-serif;font-weight:700;font-size:26px;padding:10px 0;}
  nav .nav-cta{margin-top:14px;font-family:'DM Sans',system-ui,sans-serif;font-size:15px;}
  nav .cart-link{order:-1;}
}

section{position:relative;padding:clamp(70px,11vh,150px) var(--pad);}
.wrap{max-width:1320px;margin:0 auto;}
.eyebrow{font-family:'DM Sans',system-ui,sans-serif;font-weight:500;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent-deep);display:block;}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:15px 30px;border-radius:999px;font-size:15px;font-weight:500;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:'DM Sans',system-ui,sans-serif;transition:transform .12s ease,background .3s,box-shadow .3s,color .3s,border-color .3s;will-change:transform;}
.btn-primary{background:var(--accent);color:#2a1d12;}
.btn-primary:hover{background:var(--accent-deep);color:#fff;box-shadow:0 10px 28px -10px var(--accent-deep);}
.btn-primary:active{transform:scale(.97);}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line);}
.btn-ghost:hover{border-color:var(--accent-deep);color:var(--accent-deep);}
.btn-sm{padding:11px 20px;font-size:14px;}

/* ---------- HERO ---------- */
.hero{min-height:100svh;display:grid;grid-template-columns:.92fr 1.18fr;gap:clamp(22px,3.2vw,52px);align-items:center;padding-top:96px;padding-bottom:clamp(40px,6vh,80px);}
.hero-copy{position:relative;z-index:2;}
.hero .tagline{font-family:'Bricolage',sans-serif;font-weight:700;font-size:clamp(18px,1.7vw,24px);color:var(--accent-deep);margin-bottom:14px;}
.hero h1{font-size:clamp(48px,6.8vw,98px);}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.04em;}
@keyframes heroWord{from{transform:translateY(112%)}to{transform:translateY(0)}}
.hero h1 .word{display:inline-block;animation:heroWord .85s var(--ease) backwards;}
.hero h1 .line:nth-child(1) .word{animation-delay:.08s;}
.hero h1 .line:nth-child(2) .word{animation-delay:.18s;}
.hero h1 .line:nth-child(3) .word{animation-delay:.28s;}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.hero .tagline{animation:fadeUp .7s var(--ease) .04s backwards;}
.hero .lead{animation:fadeUp .7s var(--ease) .42s backwards;}
.hero-meta{animation:fadeUp .7s var(--ease) .52s backwards;}
.hero-actions{animation:fadeUp .7s var(--ease) .62s backwards;}
.hero .lead{font-size:clamp(16px,1.3vw,19px);color:var(--muted);max-width:46ch;line-height:1.65;margin:26px 0 16px;}
.hero-meta{display:flex;align-items:center;gap:12px;font-size:14px;margin-bottom:30px;font-weight:500;}
.hero-meta .dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(90,138,74,.2);}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap;}
.hero-visual{position:relative;align-self:stretch;min-height:clamp(480px,78vh,880px);}
.hero-visual .frame{position:absolute;inset:0;border-radius:14px;overflow:hidden;box-shadow:0 40px 80px -30px rgba(42,29,18,.45);}
.hero-visual .frame img,.hero-visual .frame video{width:100%;height:100%;object-fit:cover;display:block;background:var(--surface);}
.hero-badge{position:absolute;left:-26px;bottom:34px;z-index:3;background:var(--bg);border-radius:999px;padding:14px 22px;box-shadow:0 18px 40px -16px rgba(42,29,18,.4);display:flex;flex-direction:column;line-height:1.05;}
.hero-badge b{font-family:'Bricolage',sans-serif;font-weight:800;font-size:26px;color:var(--accent-deep);}
.hero-badge span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:2px;}
@media(max-width:860px){
  .hero{grid-template-columns:1fr;min-height:auto;padding-top:108px;}
  .hero-visual{min-height:56vh;margin-top:8px;}
  .hero-badge{left:auto;right:16px;}
}

/* ---------- HERO v2: POIKKILEIKKAUS ----------
   Sivu on ikään kuin leikattu auki ja liike näkyy raosta. Kaista on
   koko leveydeltään reunasta reunaan (ei pystyreunoja näkyvissä), ja
   ylä- ja alareuna häivytetään maskilla paperiin — ei kehystä, ei
   varjoa, ei pyöristettyjä kulmia. */
.hero-cut{min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  gap:clamp(16px,2.2vh,26px);padding-left:0;padding-right:0;padding-top:clamp(86px,10vh,110px);}
.cut-inner{max-width:1320px;margin:0 auto;width:100%;padding:0 var(--pad);}

.hero-cut .tagline{font-family:'Bricolage',sans-serif;font-weight:700;font-size:clamp(17px,1.6vw,23px);color:var(--accent-deep);margin-bottom:12px;animation:fadeUp .7s var(--ease) .04s backwards;}
.hero-cut h1{font-size:clamp(44px,7.6vw,118px);}
.hero-cut h1 .line{display:block;overflow:hidden;padding-bottom:.04em;}
.hero-cut h1 .word{display:inline-block;animation:heroWord .85s var(--ease) backwards;}
.hero-cut h1 .line:nth-child(1) .word{animation-delay:.08s;}
.hero-cut h1 .line:nth-child(2) .word{animation-delay:.2s;}

.cut-band{--slant:3.5deg;--fadeH:200px;
  position:relative;width:100%;height:clamp(300px,44vh,460px);overflow:hidden;
  animation:cutOpen 1.15s var(--ease) .34s backwards;}
.cut-band img,.cut-band video{width:100%;height:100%;object-fit:cover;display:block;background:var(--surface);}
/* Viisto leikkaus: kaksi kierrettyä häivytyspalkkia paperin värillä.
   Kierretty maskiliukuväri EI toimi tässä — matalassa ja leveässä laatikossa
   se leikkaa vain kulmat ja jättää muualle kovan vaakasuoran reunan.
   Kierto on yksiselitteinen: rotate(-4deg) nostaa oikeaa reunaa, jolloin
   leikkaus kulkee ala-vasemmalta ylä-oikealle. */
.cut-band::before,.cut-band::after{content:"";position:absolute;left:-8%;width:116%;
  height:var(--fadeH);z-index:2;pointer-events:none;transform:rotate(calc(-1 * var(--slant)));}
.cut-band::before{top:calc(var(--fadeH) * -0.46);
  background:linear-gradient(to bottom,var(--bg) 0,var(--bg) 46%,transparent 100%);}
.cut-band::after{bottom:calc(var(--fadeH) * -0.46);
  background:linear-gradient(to top,var(--bg) 0,var(--bg) 46%,transparent 100%);}
@keyframes cutOpen{from{clip-path:inset(50% 0 50% 0)}to{clip-path:inset(0 0 0 0)}}

.cut-badge{position:absolute;left:var(--pad);bottom:clamp(58px,13vh,116px);z-index:3;
  background:var(--bg);border-radius:999px;padding:12px 20px;display:flex;flex-direction:column;
  line-height:1.05;box-shadow:0 14px 34px -18px rgba(42,29,18,.55);
  animation:fadeUp .7s var(--ease) 1.05s backwards;}
.cut-badge b{font-family:'Bricolage',sans-serif;font-weight:800;font-size:23px;color:var(--accent-deep);}
.cut-badge span{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:2px;}

.cut-bottom{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(20px,4vw,60px);align-items:end;}
.cut-bottom .lead{font-size:clamp(16px,1.25vw,19px);color:var(--muted);max-width:48ch;line-height:1.65;
  animation:fadeUp .7s var(--ease) .95s backwards;}
.cut-bottom .right{display:flex;flex-direction:column;gap:16px;align-items:flex-start;}
.cut-bottom .hero-meta{margin-bottom:0;animation:fadeUp .7s var(--ease) 1.05s backwards;}
.cut-bottom .hero-actions{animation:fadeUp .7s var(--ease) 1.15s backwards;}
@media(max-width:860px){
  .hero-cut{min-height:auto;padding-bottom:clamp(40px,6vh,70px);}
  .cut-band{height:clamp(300px,48vh,440px);--slant:3deg;--fadeH:150px;}
  .cut-bottom{grid-template-columns:1fr;align-items:start;gap:22px;}
}

/* ---------- SIVUOTSIKKO (alasivut) ---------- */
.page-hero{padding-top:clamp(120px,16vh,190px);padding-bottom:clamp(30px,5vh,54px);}
.page-hero h1{font-size:clamp(44px,7vw,104px);margin:14px 0 18px;}
.page-hero p{font-size:clamp(16px,1.3vw,19px);color:var(--muted);max-width:56ch;line-height:1.65;}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:6px;}
.crumbs a{text-decoration:none;}
.crumbs a:hover{color:var(--accent-deep);}

/* ---------- STORY ---------- */
.story{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,5vw,80px);align-items:center;}
.story-img{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 30px 70px -34px rgba(42,29,18,.5);}
.story-img img{width:100%;height:100%;object-fit:cover;}
.story h2{font-size:clamp(34px,4.6vw,68px);margin:14px 0 22px;}
.story h2 em{font-style:normal;color:var(--accent-deep);}
.story p{font-size:clamp(15px,1.15vw,18px);color:var(--muted);line-height:1.75;max-width:50ch;margin-bottom:18px;}
.story .stats{display:flex;gap:38px;margin-top:30px;flex-wrap:wrap;}
.story .stat b{font-family:'Bricolage',sans-serif;font-weight:800;font-size:clamp(30px,3.4vw,46px);display:block;line-height:1;}
.story .stat span{font-size:13px;color:var(--muted);}
@media(max-width:860px){ .story{grid-template-columns:1fr;} }

/* ---------- TUNNUSTUOTE-KAISTA ---------- */
.feature-band{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:16px;overflow:hidden;background:var(--ink);color:var(--bg);margin-bottom:clamp(30px,5vh,54px);}
.feature-band .fb-img{position:relative;min-height:340px;}
.feature-band .fb-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.feature-band .fb-copy{padding:clamp(30px,4vw,60px);display:flex;flex-direction:column;justify-content:center;}
.feature-band .tag{display:inline-block;align-self:flex-start;font-size:11px;letter-spacing:.18em;text-transform:uppercase;background:var(--accent);color:#2a1d12;padding:5px 12px;border-radius:999px;margin-bottom:16px;font-weight:600;}
.feature-band h3{font-size:clamp(30px,3.6vw,52px);color:var(--bg);margin-bottom:14px;}
.feature-band p{color:rgba(244,241,234,.72);line-height:1.7;max-width:42ch;margin-bottom:24px;font-size:clamp(15px,1.1vw,17px);}
.feature-band .fb-actions{display:flex;gap:11px;flex-wrap:wrap;align-items:center;}
.feature-band .price{font-family:'Bricolage',sans-serif;font-weight:700;font-size:20px;color:var(--accent);}
@media(max-width:860px){ .feature-band{grid-template-columns:1fr;} .feature-band .fb-img{min-height:240px;} }

/* ---------- WOO-TUOTERUUDUKKO ---------- */
.prod-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(30px,5vh,52px);}
.prod-head h2{font-size:clamp(40px,6.5vw,98px);}
.prod-head p{font-size:15px;color:var(--muted);max-width:34ch;line-height:1.6;}
.woo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.6vw,24px);}
.woo-grid.cols-3{grid-template-columns:repeat(3,1fr);}
@media(max-width:1080px){ .woo-grid,.woo-grid.cols-3{grid-template-columns:repeat(3,1fr);} }
@media(max-width:820px){ .woo-grid,.woo-grid.cols-3{grid-template-columns:repeat(2,1fr);} }
@media(max-width:340px){ .woo-grid,.woo-grid.cols-3{grid-template-columns:1fr;} }

.woo-card{display:flex;flex-direction:column;background:transparent;text-decoration:none;height:100%;min-width:0;overflow:hidden;}
.woo-card .thumb{position:relative;border-radius:12px;overflow:hidden;background:var(--surface);aspect-ratio:4/3;}
.woo-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.woo-card:hover .thumb img{transform:scale(1.05);}
.woo-card .badge{position:absolute;top:10px;left:10px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;background:rgba(244,241,234,.92);color:var(--ink);padding:4px 9px;border-radius:999px;backdrop-filter:blur(6px);}
/* Grid eikä flex: neljäs rivi (hinta + nappi) on aina viimeinen ja siten
   pohjassa. margin-top:auto toimii vain jos flex-ketju pysyy ehjänä. */
.woo-card .meta{padding:14px 2px 0;display:grid;grid-template-rows:auto auto 1fr auto;
  flex:1 1 auto;min-height:0;}
.woo-card .cat{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.woo-card h3{font-family:'Bricolage',sans-serif;font-weight:700;font-size:clamp(17px,1.35vw,21px);line-height:1.12;margin-bottom:6px;overflow-wrap:anywhere;hyphens:auto;}
.woo-card .desc{font-size:12.5px;color:var(--muted);letter-spacing:.04em;line-height:1.5;margin-bottom:14px;flex:1;}
.woo-card .row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:4px;}
.woo-card .price{font-family:'Bricolage',sans-serif;font-weight:700;font-size:19px;}
.woo-card .add{border:1px solid var(--line);background:transparent;color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:13px;font-weight:500;padding:9px 15px;border-radius:999px;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .12s ease;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.woo-card .add:hover{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.woo-card .add:active{transform:scale(.96);}
.woo-card .add.added{background:var(--green);border-color:var(--green);color:#fff;}

@media(max-width:560px){
  .woo-grid,.woo-grid.cols-3{gap:12px;}
  .woo-card .meta{padding-top:11px;}
  .woo-card .cat{font-size:10px;letter-spacing:.1em;margin-bottom:4px;}
  .woo-card h3{font-size:16px;line-height:1.16;}
  .woo-card .desc{font-size:11.5px;margin-bottom:10px;}
  .woo-card .row{flex-direction:column;align-items:stretch;gap:8px;}
  .woo-card .price{font-size:17px;}
  .woo-card .add{width:100%;padding:9px 8px;font-size:12.5px;}
}

/* ---------- KAUPAN TYÖKALURIVI ---------- */
.shop-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid var(--line);}
.chips{display:flex;gap:8px;flex-wrap:wrap;}
.chip{border:1px solid var(--line);background:transparent;color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:13.5px;font-weight:500;padding:9px 16px;border-radius:999px;cursor:pointer;transition:background .25s,color .25s,border-color .25s;}
.chip:hover{border-color:var(--accent-deep);color:var(--accent-deep);}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.chip .n{opacity:.5;margin-left:5px;font-size:12px;}
.result-count{font-size:14px;color:var(--muted);}
.shop-sort{border:1px solid var(--line);background:transparent;color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:13.5px;padding:9px 14px;border-radius:999px;cursor:pointer;}

/* ---------- KAHVILA ---------- */
.kahvila{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,5vw,72px);align-items:center;}
.kahvila-img{border-radius:14px;overflow:hidden;aspect-ratio:16/10;box-shadow:0 30px 70px -34px rgba(42,29,18,.5);}
.kahvila-img img{width:100%;height:100%;object-fit:cover;}
.kahvila h2{font-size:clamp(34px,4.6vw,66px);margin:14px 0 22px;}
.kahvila p{font-size:clamp(15px,1.15vw,18px);color:var(--muted);line-height:1.72;max-width:46ch;margin-bottom:26px;}
.hours{border-top:1px solid var(--line);padding-top:22px;}
.hours-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px;}
.hours-row b{font-family:'Bricolage',sans-serif;font-weight:700;}
.hours-row .open{color:var(--green);font-weight:500;font-size:13px;}
@media(max-width:860px){ .kahvila{grid-template-columns:1fr;} }

.tlabel{font-family:'DM Sans',system-ui,sans-serif;font-weight:500;font-size:12.5px;color:var(--accent-deep);display:block;}

/* ---------- TEASERIT ---------- */
.teasers{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,26px);}
@media(max-width:860px){ .teasers{grid-template-columns:1fr;} }
.teaser{border:1px solid var(--line);border-radius:16px;padding:clamp(26px,3.2vw,46px);display:flex;flex-direction:column;transition:border-color .35s,transform .35s var(--ease),box-shadow .35s;background:var(--bg);}
.teaser:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 24px 50px -34px rgba(42,29,18,.5);}
.teaser h3{font-size:clamp(26px,2.8vw,40px);margin:14px 0 14px;}
.teaser p{color:var(--muted);line-height:1.7;font-size:15.5px;margin-bottom:22px;max-width:42ch;}
.teaser .tstats{display:flex;gap:30px;margin-bottom:24px;}
.teaser .tstats b{font-family:'Bricolage',sans-serif;font-weight:800;font-size:clamp(26px,2.6vw,36px);display:block;line-height:1;color:var(--accent-deep);}
.teaser .tstats span{font-size:12.5px;color:var(--muted);}
.teaser .go{margin-top:auto;font-weight:500;font-size:15px;text-decoration:none;display:inline-flex;align-items:center;gap:9px;color:var(--ink);transition:gap .25s var(--ease),color .25s;}
.teaser:hover .go{gap:15px;color:var(--accent-deep);}

/* ---------- LEVIKKIALUE ---------- */
.lev-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,3vw,44px);}
@media(max-width:820px){ .lev-grid{grid-template-columns:1fr;} }
.lev-region{border-top:2px solid var(--ink);padding-top:20px;}
.lev-region > h2{font-size:clamp(22px,2.2vw,30px);margin-bottom:4px;}
.lev-region .rcount{font-size:12.5px;color:var(--muted);letter-spacing:.02em;margin-bottom:16px;display:block;}
.lev-town{padding:13px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(110px,.42fr) 1fr;gap:14px;align-items:baseline;}
.lev-town b{font-family:'Bricolage',sans-serif;font-weight:700;font-size:16px;}
.lev-town span{font-size:14px;color:var(--muted);line-height:1.55;}
@media(max-width:460px){ .lev-town{grid-template-columns:1fr;gap:3px;} }
.lev-search{width:100%;max-width:420px;border:1px solid var(--line);background:transparent;color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:15px;padding:14px 20px;border-radius:999px;margin-bottom:clamp(26px,4vh,44px);}
.lev-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(189,122,44,.18);}
.lev-empty{color:var(--muted);font-size:15px;padding:20px 0;display:none;}

/* ---------- LEVIKKIKARTTA ---------- */
.map-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;
  flex-wrap:wrap;margin-bottom:clamp(14px,2vh,22px);}
.map-head h2{font-size:clamp(26px,3vw,42px);}
.map-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.map-tools button{border:1px solid var(--line);background:rgba(244,241,234,.9);color:var(--ink);
  font-family:'DM Sans',system-ui,sans-serif;font-size:13.5px;font-weight:500;padding:9px 16px;
  border-radius:999px;cursor:pointer;transition:background .22s,color .22s,border-color .22s;}
.map-tools button:hover{border-color:var(--accent-deep);color:var(--accent-deep);}
.map-tools .zbtn{width:38px;height:38px;padding:0;font-size:19px;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;}

.map-stage{position:relative;border-radius:14px;overflow:hidden;background:var(--bg);
  border:1px solid var(--line);cursor:grab;
  /* pan-y: yhden sormen pystyveto vierittää sivua, kahden sormen ele jää meille */
  touch-action:pan-y;
  /* kiinteä korkeus: koko Suomi on pysty, joten kartta tarvitsee korkeutta
     eikä leveyttä. viewBoxin kuvasuhde lasketaan JS:ssä tästä laatikosta. */
  height:min(80vh,880px);max-width:780px;margin:0 auto;}
@media(max-width:760px){ .map-stage{height:min(72vh,620px);max-width:none;} }
.map-stage.dragging{cursor:grabbing;}
.map-main{width:100%;height:100%;display:block;}
.map-hint{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;
  padding:24px;text-align:center;background:rgba(42,29,18,.44);color:var(--bg);
  font-family:'DM Sans',system-ui,sans-serif;font-size:clamp(14px,1.3vw,16px);font-weight:500;
  opacity:0;pointer-events:none;transition:opacity .26s;}
.map-hint.on{opacity:1;}
.map-hint kbd{font:inherit;background:rgba(244,241,234,.18);border:1px solid rgba(244,241,234,.4);
  border-radius:6px;padding:2px 8px;margin:0 2px;}

.map-float{position:absolute;right:14px;bottom:14px;display:flex;flex-direction:column;gap:7px;z-index:4;}
.map-scale{position:absolute;left:14px;bottom:14px;z-index:4;font-size:11px;color:var(--muted);
  background:rgba(244,241,234,.86);padding:5px 10px;border-radius:999px;backdrop-filter:blur(6px);}

/* maakunnat */
.reg{fill:var(--surface);stroke:rgba(42,29,18,.34);stroke-width:.9;stroke-linejoin:round;
  vector-effect:non-scaling-stroke;transition:fill .3s;}
.reg.cover{fill:#e0d2b4;stroke:rgba(42,29,18,.46);stroke-width:1.3;}
.reg-name{font-family:'DM Sans',system-ui,sans-serif;font-size:8px;font-weight:500;
  letter-spacing:.06em;fill:rgba(42,29,18,.45);text-anchor:middle;pointer-events:none;
  paint-order:stroke;stroke:var(--bg);stroke-width:calc(4px * var(--tk,1));transition:opacity .3s;}
.reg-name.cover{fill:var(--accent-deep);font-weight:600;}
.map-main.z2 .reg-name{opacity:0;}

/* kunnat: näkyviin vasta zoomatessa */
.muni{fill:none;stroke:rgba(42,29,18,.20);stroke-width:.55;vector-effect:non-scaling-stroke;
  opacity:0;transition:opacity .3s;pointer-events:none;}
.muni-name{font-family:'DM Sans',system-ui,sans-serif;font-size:calc(12.5px * var(--tk,1));fill:rgba(42,29,18,.5);
  text-anchor:middle;pointer-events:none;opacity:0;transition:opacity .3s;
  paint-order:stroke;stroke:var(--bg);stroke-width:calc(3.6px * var(--tk,1));}
.map-main.z2 .muni{opacity:1;}
.map-main.z3 .muni-name{opacity:1;}

/* neulat: vakiokokoisia ruudulla, JS vastaskaalaa */
.pin{cursor:pointer;}
.pin circle{fill:var(--accent);stroke:var(--bg);stroke-width:2.2;transition:fill .25s,opacity .25s;}
.pin .halo{fill:var(--accent);opacity:.16;stroke:none;transition:opacity .25s;}
.pin text{font-family:'DM Sans',system-ui,sans-serif;font-size:13px;font-weight:500;fill:var(--ink);
  paint-order:stroke;stroke:var(--bg);stroke-width:4.4px;stroke-linejoin:round;
  pointer-events:none;opacity:0;transition:opacity .2s;}
.pin:hover text,.pin.on text{opacity:1;}
.map-main.z2 .pin.labelled text{opacity:1;}
.map-main.z3 .pin text{opacity:1;}
.pin:hover circle,.pin.on circle{fill:var(--accent-deep);}
.pin:hover .halo,.pin.on .halo{opacity:.34;}
.pin.dim{opacity:.14;}
.pin.dim text{opacity:0!important;}
.pin.home{pointer-events:none;}
.pin.home circle{fill:var(--ink);}
.pin.home .halo{fill:var(--ink);opacity:.10;}
.pin.home .ring{fill:none;stroke:var(--ink);stroke-width:2.4;opacity:.85;}
.pin.home text{font-weight:700;font-size:15px;}
/* kauas zoomattaessa neulat kutistuvat pisteiksi ja laput piiloon */
.map-main.zout .pin text{opacity:0!important;}
.map-main.zout .pin circle{r:4;stroke-width:1.4;}
.map-main.zout .pin .halo{r:9;}
.map-main.zout .pin.home circle{r:4.6;}
.map-main.zout .pin.home .ring{r:11;}
.map-main.zout .pin.home .halo{r:19;}
.map-main.zout .reg-name{opacity:1;}
.map-main.zout .muni{opacity:0!important;}

/* kapealla näytöllä maakuntien nimet menevät neulojen päälle -> vain
   loitonnetussa näkymässä, jossa niille on tilaa */
@media(max-width:760px){
  .reg-name{opacity:0;}
  .map-main.zout .reg-name{opacity:1;}
}

.map-note{font-size:12.5px;color:var(--muted);line-height:1.6;margin-top:14px;max-width:62ch;}
.map-note b{font-weight:500;color:var(--ink);background:rgba(42,29,18,.07);
  border-radius:5px;padding:1px 6px;}

/* ---------- LEVIKKITAULUKKO ---------- */
.lev-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px;}
.lev-search{flex:1;min-width:220px;border:1px solid var(--line);background:transparent;color:var(--ink);
  font-family:'DM Sans',system-ui,sans-serif;font-size:15px;padding:13px 19px;border-radius:999px;}
.lev-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(189,122,44,.18);}
.lev-count{font-size:13.5px;color:var(--muted);white-space:nowrap;}

.lev-table{width:100%;border-collapse:collapse;}
.lev-table caption{text-align:left;font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent-deep);padding-bottom:12px;}
.lev-table th{text-align:left;font-family:'DM Sans',system-ui,sans-serif;font-size:11.5px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:0 12px 10px 0;
  border-bottom:2px solid var(--ink);white-space:nowrap;}
.lev-table th.sortable{cursor:pointer;user-select:none;}
.lev-table th.sortable:hover{color:var(--accent-deep);}
.lev-table th .arrow{opacity:0;font-size:9px;margin-left:4px;}
.lev-table th[aria-sort] .arrow{opacity:1;}
.lev-table td{padding:13px 12px 13px 0;border-bottom:1px solid var(--line);vertical-align:top;font-size:14.5px;}
.lev-table tbody tr{transition:background .2s;cursor:pointer;}
.lev-table tbody tr:hover,.lev-table tbody tr.on{background:rgba(189,122,44,.09);}
.lev-table .t-town{font-family:'Bricolage',sans-serif;font-weight:700;font-size:16px;white-space:nowrap;}
.lev-table .t-region{color:var(--muted);font-size:12.5px;white-space:nowrap;}
.lev-table .t-shops{color:var(--muted);line-height:1.55;}
.lev-table .t-n{text-align:right;font-family:'Bricolage',sans-serif;font-weight:700;
  color:var(--accent-deep);white-space:nowrap;padding-right:0;}
@media(max-width:620px){
  .lev-table thead{display:none;}
  .lev-table tr{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:14px 0;border-bottom:1px solid var(--line);}
  .lev-table td{border:0;padding:0;}
  .lev-table .t-region{grid-column:1;}
  .lev-table .t-n{grid-row:1;grid-column:2;}
  .lev-table .t-shops{grid-column:1/-1;padding-top:6px;}
}
.lev-empty{color:var(--muted);font-size:15px;padding:22px 0;display:none;}

/* ---------- TEKSTISIVUT (ehdot, tietosuoja) ---------- */
.legal{max-width:74ch;}
.legal h2{font-size:clamp(21px,2.1vw,28px);margin:clamp(30px,4vh,46px) 0 12px;}
.legal h2:first-child{margin-top:0;}
.legal p{color:var(--muted);line-height:1.8;font-size:15.5px;margin-bottom:14px;}
.legal p b,.legal strong{color:var(--ink);font-weight:500;}
.legal a{color:var(--accent-deep);}
.legal .meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:18px 0;margin-bottom:clamp(26px,4vh,42px);display:grid;gap:2px;}
.legal .meta div{display:grid;grid-template-columns:minmax(120px,.3fr) 1fr;gap:14px;padding:7px 0;font-size:15px;}
.legal .meta b{font-family:'Bricolage',sans-serif;font-weight:700;font-size:14px;}
.legal .meta span{color:var(--muted);}
@media(max-width:520px){ .legal .meta div{grid-template-columns:1fr;gap:2px;} }
.legal-updated{font-size:12.5px;color:var(--muted);margin-top:clamp(30px,4vh,44px);
  padding-top:16px;border-top:1px solid var(--line);}

.account{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,70px);align-items:start;}
@media(max-width:820px){ .account{grid-template-columns:1fr;} }
.account .panel{border:1px solid var(--line);border-radius:16px;padding:clamp(24px,3vw,38px);}
.account .panel h2{font-size:clamp(22px,2.2vw,30px);margin-bottom:8px;}
.account .panel p{color:var(--muted);line-height:1.7;font-size:15px;margin-bottom:20px;}
.account .checkbox{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--muted);}
.account .forgot-note{font-size:12.5px;color:var(--muted);line-height:1.6;margin-top:14px;}

/* ---------- LOMAKE ---------- */
.form{display:grid;gap:16px;max-width:560px;}
.field{display:flex;flex-direction:column;gap:7px;}
.field label{font-size:13px;font-weight:500;letter-spacing:.02em;}
.field label .req{color:var(--accent-deep);}
.field input,.field textarea{border:1px solid var(--line);background:transparent;color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:15.5px;padding:14px 16px;border-radius:10px;transition:border-color .25s;}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(189,122,44,.18);}
.field textarea{min-height:130px;resize:vertical;}
.form-note{font-size:12.5px;color:var(--muted);line-height:1.6;}
.two-col{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(34px,5vw,80px);align-items:start;}
@media(max-width:900px){ .two-col{grid-template-columns:1fr;} }

.info-list{display:grid;gap:2px;}
.info-row{display:grid;grid-template-columns:minmax(96px,.32fr) 1fr;gap:16px;padding:15px 0;border-bottom:1px solid var(--line);align-items:baseline;}
.info-row b{font-family:'Bricolage',sans-serif;font-weight:700;font-size:15px;}
.info-row span,.info-row a{font-size:15.5px;color:var(--muted);text-decoration:none;line-height:1.55;}
.info-row a:hover{color:var(--accent-deep);}

.offer{border:1px solid var(--line);border-radius:16px;padding:clamp(24px,3vw,40px);background:var(--bg);}
.offer h3{font-size:clamp(23px,2.4vw,32px);margin:12px 0 12px;}
.offer p{color:var(--muted);line-height:1.7;font-size:15.5px;}
.offers{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,24px);margin-bottom:clamp(34px,5vh,60px);}
@media(max-width:820px){ .offers{grid-template-columns:1fr;} }

/* ---------- CTA + FOOTER ---------- */
.cta{background:var(--ink);color:var(--bg);border-radius:20px;margin:0 var(--pad) clamp(40px,6vh,80px);padding:clamp(50px,8vh,100px) clamp(24px,5vw,80px);text-align:center;position:relative;overflow:hidden;}
.cta .eyebrow{color:var(--accent);}
.cta h2{font-size:clamp(40px,7vw,104px);color:var(--bg);margin:18px 0 14px;}
.cta .lead{font-size:clamp(16px,1.3vw,19px);color:rgba(244,241,234,.7);max-width:44ch;margin:0 auto 18px;line-height:1.6;}
.cta-info{display:flex;gap:14px 40px;justify-content:center;flex-wrap:wrap;margin:30px 0 36px;font-size:15px;}
.cta-info a{color:var(--bg);text-decoration:none;display:inline-flex;align-items:center;gap:9px;transition:color .25s;}
.cta-info a:hover{color:var(--accent);}
.cta-actions{display:flex;gap:13px;justify-content:center;flex-wrap:wrap;}
.cta .btn-ghost{color:var(--bg);border-color:rgba(244,241,234,.3);}
.cta .btn-ghost:hover{color:var(--accent);border-color:var(--accent);}

footer{padding:44px var(--pad) 30px;border-top:1px solid var(--line);}
.foot-top{display:grid;grid-template-columns:auto repeat(3,1fr);gap:34px;align-items:start;max-width:1320px;margin:0 auto;}
@media(max-width:860px){ .foot-top{grid-template-columns:1fr 1fr;gap:26px;} }
@media(max-width:520px){ .foot-top{grid-template-columns:1fr;} }
footer img.flogo{height:52px;width:auto;}
.fcol b{font-family:'Bricolage',sans-serif;font-weight:700;font-size:14px;display:block;margin-bottom:9px;}
.fcol a,.fcol span{display:block;font-size:13.5px;color:var(--muted);text-decoration:none;line-height:1.85;}
.fcol a:hover{color:var(--accent-deep);}
.foot-bottom{max-width:1320px;margin:34px auto 0;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);}
.foot-bottom a{text-decoration:none;}
.foot-bottom a:hover{color:var(--accent-deep);}

/* ---------- ARTIKKELI ---------- */
.article{max-width:66ch;}
.article h2{font-size:clamp(24px,2.6vw,36px);margin:clamp(38px,5vh,58px) 0 16px;}
.article h2:first-child{margin-top:0;}
.article p{color:var(--muted);line-height:1.85;font-size:16.5px;margin-bottom:18px;}
.article p strong,.article strong{color:var(--ink);font-weight:500;}
.article .kicker{font-size:clamp(18px,1.6vw,22px);color:var(--ink);line-height:1.65;
  margin-bottom:26px;font-weight:400;}
.article ul{list-style:none;margin:0 0 20px;padding:0;}
.article ul li{color:var(--muted);line-height:1.75;font-size:16px;padding:11px 0 11px 26px;
  border-bottom:1px solid var(--line);position:relative;}
.article ul li::before{content:"";position:absolute;left:4px;top:20px;width:7px;height:7px;
  border-radius:50%;background:var(--accent);}
.article ul li b{color:var(--ink);font-weight:500;}

.pull{border-left:2px solid var(--accent);padding:6px 0 6px 24px;margin:clamp(30px,4vh,44px) 0;}
.pull p{font-family:'Bricolage',sans-serif;font-weight:700;font-size:clamp(20px,2.2vw,28px);
  line-height:1.3;color:var(--ink);letter-spacing:-.01em;margin:0;}

/* Kohta jossa tarvitaan asiakkaan oikeaa tietoa. Nämä EIVÄT saa päätyä
   julkaistavaksi keksittynä — siksi ne on merkitty näkyvästi. */
.slot{border:1px dashed rgba(189,122,44,.55);border-radius:12px;background:rgba(189,122,44,.06);
  padding:18px 20px;margin:24px 0;}
.slot b{display:block;font-family:'DM Sans',system-ui,sans-serif;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--accent-deep);margin-bottom:8px;}
.slot p{margin:0;font-size:15px;line-height:1.7;color:var(--ink);}
.slot p + p{margin-top:8px;color:var(--muted);font-size:14px;}

.faq{border-top:1px solid var(--line);margin-top:clamp(40px,6vh,64px);padding-top:8px;}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{cursor:pointer;padding:18px 0;font-family:'Bricolage',sans-serif;font-weight:700;
  font-size:17px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-size:22px;color:var(--accent-deep);font-weight:400;}
.faq details[open] summary::after{content:"\2212";}
.faq details p{color:var(--muted);line-height:1.8;font-size:15.5px;padding:0 0 18px;margin:0;}

.article-foot{border-top:1px solid var(--line);margin-top:clamp(36px,5vh,54px);padding-top:22px;
  font-size:13px;color:var(--muted);line-height:1.7;}
.article-foot a{color:var(--accent-deep);}

/* ---------- KUVAPAIKAT ----------
   AI-kuvat poistettu. Kehykset jäävät paikoilleen ja toimivat samalla
   spesifikaationa: mitat kertovat mitä WordPressiin ladataan. */
.ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:7px;text-align:center;padding:20px;
  background:var(--surface);
  background-image:repeating-linear-gradient(135deg,transparent 0 11px,rgba(42,29,18,.035) 11px 22px);
  border:1px dashed rgba(42,29,18,.22);border-radius:inherit;}
.ph b{font-family:'Bricolage',sans-serif;font-weight:700;font-size:14px;color:var(--ink);opacity:.75;}
.ph span{font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);}
.ph-static{position:relative;width:100%;height:100%;}

/* ---------- OSTOSKORI ---------- */
.cart-overlay{position:fixed;inset:0;background:rgba(42,29,18,.42);z-index:300;
  opacity:0;pointer-events:none;transition:opacity .32s var(--ease);backdrop-filter:blur(2px);}
.cart-overlay.on{opacity:1;pointer-events:auto;}

.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100vw);z-index:301;
  background:var(--bg);display:flex;flex-direction:column;
  box-shadow:-24px 0 60px -30px rgba(42,29,18,.6);
  transform:translateX(101%);transition:transform .38s var(--ease);}
.cart-drawer.on{transform:translateX(0);}

.cart-head{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:22px var(--cart-pad,26px) 16px;border-bottom:1px solid var(--line);}
.cart-head b{font-family:'Bricolage',sans-serif;font-weight:800;font-size:22px;}
.cart-close{border:0;background:transparent;color:var(--ink);font-size:30px;line-height:1;
  cursor:pointer;padding:0 4px;opacity:.6;transition:opacity .2s;}
.cart-close:hover{opacity:1;}

.cart-body{flex:1;overflow-y:auto;padding:6px var(--cart-pad,26px) 10px;}
.cart-foot{padding:16px var(--cart-pad,26px) 24px;border-top:1px solid var(--line);}

.cart-line{display:grid;grid-template-columns:62px 1fr auto;gap:13px;align-items:center;
  padding:15px 0;border-bottom:1px solid var(--line);}
.cart-line img{width:62px;height:47px;object-fit:cover;border-radius:8px;background:var(--surface);}
.cart-line .nm{font-family:'Bricolage',sans-serif;font-weight:700;font-size:15px;line-height:1.2;}
.cart-line .pu{font-size:12.5px;color:var(--muted);margin-top:3px;}
.cart-line .rm{border:0;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;
  padding:2px 0;text-decoration:underline;margin-top:5px;}
.cart-line .rm:hover{color:var(--accent-deep);}
.qty{display:flex;align-items:center;gap:9px;}
.qty button{width:27px;height:27px;border:1px solid var(--line);background:transparent;color:var(--ink);
  border-radius:50%;cursor:pointer;font-size:15px;line-height:1;display:flex;align-items:center;
  justify-content:center;transition:border-color .2s,color .2s;}
.qty button:hover{border-color:var(--accent-deep);color:var(--accent-deep);}
.qty b{font-family:'Bricolage',sans-serif;font-weight:700;font-size:15px;min-width:16px;text-align:center;}

.cart-sum{display:flex;justify-content:space-between;align-items:baseline;font-size:15px;margin-bottom:6px;}
.cart-sum.total{font-family:'Bricolage',sans-serif;font-weight:800;font-size:21px;margin:12px 0 16px;}
.cart-empty{text-align:center;color:var(--muted);font-size:15px;line-height:1.7;padding:48px 10px;}
.cart-note{font-size:12.5px;color:var(--muted);line-height:1.6;margin-top:12px;}
.cart-demo{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-deep);
  border:1px dashed rgba(189,122,44,.5);border-radius:8px;padding:8px 11px;margin-top:14px;text-align:center;}

.cart-field{display:flex;flex-direction:column;gap:7px;margin-bottom:15px;}
.cart-field label{font-size:13px;font-weight:500;}
.cart-field select,.cart-field input{border:1px solid var(--line);background:transparent;color:var(--ink);
  font-family:'DM Sans',system-ui,sans-serif;font-size:15px;padding:12px 14px;border-radius:10px;}
.cart-field select:focus,.cart-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(189,122,44,.18);}
.cart-done{text-align:center;padding:34px 8px;}
.cart-done .tick{width:54px;height:54px;border-radius:50%;background:var(--green);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:27px;margin:0 auto 18px;}
.cart-done h3{font-size:24px;margin-bottom:10px;}
.cart-done p{color:var(--muted);line-height:1.7;font-size:15px;}
@media(max-width:460px){ .cart-drawer{--cart-pad:18px;} }

/* ---------- REVEAL ---------- */
html.js .reveal{opacity:0;transform:translateY(32px);}
html.js h2.wipe{clip-path:inset(0 100% 0 0);}

/* ?static — kuvakaappauksia varten: kaikki lopputilassa, ei animaatioita */
html.static *,html.static *::before,html.static *::after{animation:none!important;transition:none!important;}
@media(max-width:640px){
  section{padding:clamp(48px,7vh,72px) var(--pad);}
  .chip{font-size:12.5px;padding:7px 12px;}
  .chip .n{font-size:11px;}
  .shop-toolbar{gap:12px;padding-bottom:16px;margin-bottom:18px;}
  .prod-head{margin-bottom:clamp(22px,3.4vh,34px);}
}

html.static .reveal{opacity:1!important;transform:none!important;}
html.static .hero{min-height:auto;padding-top:120px;}
html.static .hero-visual{min-height:640px;}
html.static .hero-cut{min-height:auto;padding-bottom:60px;}
html.static .cut-band{clip-path:none!important;}
html.static h2.wipe{clip-path:none!important;}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
  .reveal{opacity:1!important;transform:none!important;}
  h2.wipe{clip-path:none!important;}
  .hero h1 .word{transform:none!important;}
}

/* ---------- NÄPPÄIMISTÖFOKUS ----------
   Selaimen oletusrengas katoaa lämpimää taustaa vasten. Tämä koskee vain
   :focus-visible, joten hiirellä klikkaaminen ei piirrä rengasta. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--accent-deep);outline-offset:3px;border-radius:4px;}
