/* ============================================================
   COZELIA - Design system condiviso (self-contained, no CDN)
   Palette Latte/Miele/Pino/Cacao. Serif caldo + sans umanista.
   ============================================================ */
:root{
  --latte:#FBF7F0; --panna:#F3EBDD; --sabbia:#EADFCB; --corda:#E0D2BB;
  --cacao:#221A14; --ink:#241C15; --ink-2:#5B4C3D; --ink-3:#9A8B79;
  --miele:#C9822E; --miele-lum:#E0A155; --miele-text:#8A5514; --miele-soft:#F6E7CE;
  --pino:#2E5B49; --pino-scuro:#234437; --pino-soft:#E3EDE7;
  --coccio:#CF5638; --coccio-deep:#B5391D; --stella:#A16A16;
  --bg:var(--latte); --surface:#FFFFFF; --line:var(--corda);
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --sans:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --r-s:10px; --r-m:16px; --r-l:22px; --r-xl:30px; --pill:999px;
  --sh-1:0 1px 3px rgba(34,26,20,.06); --sh-2:0 6px 22px rgba(34,26,20,.10); --sh-3:0 18px 48px rgba(34,26,20,.16);
  --maxw:1200px; --ease:cubic-bezier(.2,.85,.25,1);
}
@media (prefers-color-scheme:dark){:root{
  --latte:#191410; --panna:#211A13; --sabbia:#2C241A; --corda:#382E22;
  --cacao:#F3EBDD; --ink:#F4ECDF; --ink-2:#C3B6A3; --ink-3:#8F8171;
  --surface:#211A13; --line:#382E22; --miele-text:#E0A155; --miele-soft:#33271A; --pino-soft:#1B342A;
  --sh-2:0 6px 22px rgba(0,0,0,.5); --sh-3:0 18px 48px rgba(0,0,0,.6);
}}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;padding-bottom:64px}
@media(min-width:768px){body{padding-bottom:0}}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.12;letter-spacing:-.015em;margin:0;text-wrap:balance;color:var(--ink)}
p{margin:0} a{color:inherit;text-decoration:none}
img{display:block;max-width:100%} button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--pino);outline-offset:2px;border-radius:4px}
@media(prefers-color-scheme:dark){:focus-visible{outline-color:var(--miele-lum)}}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.section{padding-block:clamp(48px,8vw,84px)}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11.5px;font-weight:800;color:var(--miele-text)}
.lead{font-size:1.14rem;color:var(--ink-2);max-width:62ch}
.muted{color:var(--ink-2)} .tnum{font-variant-numeric:tabular-nums} .center{text-align:center}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.hr{border:0;border-top:1px solid var(--line);margin:0}
.skip{position:absolute;left:-9999px;top:0;background:var(--pino);color:#FBF7F0;padding:12px 18px;border-radius:0 0 var(--r-s) 0;z-index:200}
.skip:focus{left:0}

/* headings scale */
.h-page{font-size:clamp(2rem,4.6vw,3.1rem);margin:0 0 .3em}
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:30px;flex-wrap:wrap}
.sec-h h2{font-size:clamp(1.6rem,3.4vw,2.4rem)}
.sec-h .more{color:var(--pino);font-weight:800;font-size:14.5px;display:inline-flex;gap:6px;align-items:center}
@media(prefers-color-scheme:dark){.sec-h .more{color:var(--miele-lum)}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:800;font-size:15px;
  border-radius:var(--pill);padding:14px 28px;min-height:50px;border:1.5px solid transparent;line-height:1;
  transition:transform .18s var(--ease),background .18s,box-shadow .18s}
.btn-primary{background:var(--pino);color:#FBF7F0} .btn-primary:hover{background:var(--pino-scuro);transform:translateY(-2px);box-shadow:0 12px 26px rgba(46,91,73,.26)}
.btn-amber{background:var(--miele-lum);color:#221A14} .btn-amber:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(201,130,46,.28)}
.btn-ghost{border-color:currentColor;color:var(--pino)} .btn-ghost:hover{background:var(--panna)}
@media(prefers-color-scheme:dark){.btn-ghost{color:var(--miele-lum)}}
.btn-block{width:100%}
.link-u{color:var(--pino);font-weight:800;border-bottom:2px solid var(--miele);padding-bottom:1px}
@media(prefers-color-scheme:dark){.link-u{color:var(--miele-lum)}}

/* badges */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;padding:5px 10px;border-radius:var(--pill);text-transform:uppercase;letter-spacing:.03em}
.b-sale{background:var(--coccio-deep);color:#fff} .b-new{background:var(--pino);color:#fff} .b-best{background:var(--miele-soft);color:var(--miele-text)}
.pill{font-size:12.5px;font-weight:700;padding:5px 12px;border-radius:var(--pill);border:1px solid var(--line);background:var(--panna);color:var(--ink-2)}
.pill.on{background:var(--pino-soft);color:var(--pino);border-color:color-mix(in srgb,var(--pino) 30%,transparent)}
.pills{display:flex;flex-wrap:wrap;gap:8px}

/* breadcrumb */
.crumb{display:flex;gap:8px;font-size:13px;color:var(--ink-3);margin-bottom:18px;flex-wrap:wrap}
.crumb a:hover{color:var(--miele-text)} .crumb span{color:var(--ink-3)}

/* cards + grid */
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(3,1fr)} .g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:860px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:22px;box-shadow:var(--sh-1)}
.card h3{font-size:1.16rem;margin:0 0 .4em} .card h4{font-family:var(--sans);font-weight:800;font-size:1rem;margin:0 0 .35em}
.card p{color:var(--ink-2);font-size:.96rem;margin:.25em 0}
.callout{background:var(--miele-soft);border-left:3px solid var(--miele);border-radius:0 var(--r-s) var(--r-s) 0;padding:16px 20px;margin:18px 0}
.callout p{margin:.25em 0;color:var(--ink-2)} .callout b{color:var(--ink)}
ul.clean li{padding:6px 0 6px 22px;position:relative;color:var(--ink-2)}
ul.clean li::before{content:"";position:absolute;left:0;top:12px;width:8px;height:8px;border-radius:2px;background:var(--miele)}

/* image field placeholder (in produzione: foto reale in images/) */
.field{width:100%;height:100%;background:radial-gradient(120% 120% at 30% 20%,var(--sabbia),var(--panna))}
.f-tomato{background:radial-gradient(120% 120% at 30% 20%,#E8C79A,#D99A6E 55%,#B06A3E)}
.f-sage{background:radial-gradient(120% 120% at 70% 20%,#CFE0CE,#8FB49B 55%,#4E7A63)}
.f-clay{background:radial-gradient(120% 120% at 40% 30%,#EAD3B4,#D3A574 55%,#A9713F)}
.f-plum{background:radial-gradient(120% 120% at 60% 25%,#E3C9B0,#C79C86 55%,#8C5C4B)}
.f-linen{background:radial-gradient(120% 120% at 35% 25%,#F1E6D4,#E0CBA6 55%,#C1A472)}
.f-honey{background:radial-gradient(120% 120% at 50% 20%,#F3DDB0,#E0A155 60%,#B87A2E)}
.f-pine{background:radial-gradient(120% 120% at 40% 25%,#BFD3C7,#6E9A85 55%,#2E5B49)}
.imgbox{position:relative;overflow:hidden;border-radius:var(--r-m)}
.imgbox .field{position:absolute;inset:0}
.imgbox .obj{position:absolute;inset:0;margin:auto;width:52%;color:var(--pino)}
.imgbox img.ph,.prod .pimg img.ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* product card */
.prodgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:900px){.prodgrid{grid-template-columns:repeat(2,1fr)}}
.prod{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--sh-1);transition:transform .2s var(--ease),box-shadow .2s}
.prod:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.prod .pimg{position:relative;aspect-ratio:1;overflow:hidden;display:block}
.prod .pimg .badges{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:6px;z-index:2}
.prod .pimg .pseal{position:absolute;bottom:10px;right:10px;color:var(--miele);z-index:2}
.prod .pbody{padding:16px;display:flex;flex-direction:column;gap:6px;flex:1}
.prod .pcat{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);font-weight:800}
.prod .pname{font-weight:800;font-size:.98rem;line-height:1.3;color:var(--ink);text-decoration:none;display:block}
.prod a.pname:hover{text-decoration:underline}
.rating{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2);font-weight:800}
.stars{display:inline-flex;color:var(--stella)} .stars svg{width:15px;height:15px}
.price{font-family:var(--serif);font-size:1.3rem;font-weight:600;font-variant-numeric:tabular-nums}
.price s{color:var(--ink-3);font-size:.85rem;font-weight:400;margin-left:6px}
.pdeliv{font-size:12px;color:var(--pino);font-weight:800;display:flex;align-items:center;gap:6px}
@media(prefers-color-scheme:dark){.pdeliv,.cod-tag{color:var(--miele-lum)}}
.cod-tag{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--pino);font-weight:800}
.add{margin-top:auto;width:100%;min-height:44px;border-radius:var(--pill);border:1.5px solid var(--pino);color:var(--pino);background:transparent;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .16s,color .16s}
.add:hover{background:var(--pino);color:#FBF7F0}
@media(prefers-color-scheme:dark){.add{border-color:var(--miele-lum);color:var(--miele-lum)}}

/* seal + trust */
.seal{color:var(--miele);flex:none}
.cod-tag .seal{width:22px;height:22px}
.pseal svg,.pseal .seal{width:36px;height:36px}
.hero-copy .cod-tag{margin:10px 0}
.trustrow{display:flex;gap:20px;flex-wrap:wrap;color:var(--ink-2);font-size:13.5px;font-weight:800}
.trustrow li{display:inline-flex;align-items:center;gap:8px} .trustrow svg{width:18px;height:18px;color:var(--pino)}
@media(prefers-color-scheme:dark){.trustrow svg{color:var(--miele-lum)}}

/* tables */
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:14px}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--sabbia);font-weight:800;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2)}
tbody tr:last-child td{border-bottom:none} td b{color:var(--ink)}

/* forms */
.form{display:flex;flex-direction:column;gap:16px;max-width:560px}
.field-row{display:flex;flex-direction:column;gap:6px}
.field-row label{font-weight:700;font-size:14px}
.form input,.form select,.form textarea{width:100%;min-height:50px;border:1.5px solid var(--line);border-radius:var(--r-s);
  padding:0 16px;background:var(--surface);color:var(--ink);font:inherit}
.form textarea{min-height:120px;padding:12px 16px}
.form .help{font-size:12.5px;color:var(--ink-2)}
.radio-card{display:flex;gap:12px;align-items:flex-start;border:1.5px solid var(--line);border-radius:var(--r-m);padding:16px;cursor:pointer}
.radio-card.sel{border-color:var(--pino);background:var(--pino-soft)}

/* FAQ / accordion */
details.faq{border-top:1px solid var(--line)}
details.faq:last-of-type{border-bottom:1px solid var(--line)}
details.faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:14px 4px;font-family:var(--serif);font-size:1.1rem;cursor:pointer}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";color:var(--miele);font-size:1.5rem}
details.faq[open] summary::after{content:"\2013"}
details.faq .ans{color:var(--ink-2);max-width:66ch;padding:0 4px 18px}

/* steps / journey */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:760px){.steps{grid-template-columns:1fr}}
.step .num{width:46px;height:46px;display:grid;place-items:center;font-family:var(--serif);font-size:1.25rem;color:var(--pino);background:var(--surface);border:2px solid var(--miele);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;margin-bottom:14px}
@media(prefers-color-scheme:dark){.step .num{color:var(--miele-lum)}}
.step h3{font-size:1.15rem;margin-bottom:6px} .step p{color:var(--ink-2)}

/* review */
.review{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:24px;box-shadow:var(--sh-1)}
.review .who{display:flex;align-items:center;gap:11px;margin-top:14px;color:var(--ink-2);font-size:13px}
.review .who .av{width:38px;height:38px;border-radius:50%;background:var(--pino);color:#FBF7F0;display:grid;place-items:center;font-weight:800;flex:none}
.review .who b{color:var(--ink)}

/* hero banner (generic page hero) */
.pagehero{background:radial-gradient(120% 90% at 15% 0%,var(--panna),var(--bg));padding-block:clamp(40px,7vw,72px)}
.stat .n{font-family:var(--serif);font-size:clamp(2rem,5vw,2.8rem);color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}
.stat .l{color:var(--ink-2);font-size:13px;margin-top:6px}

/* ===== Header (iniettato da site.js) ===== */
.topbar{background:var(--cacao);color:#EFE6D6;font-size:13px}
@media(prefers-color-scheme:dark){.topbar{background:#000;color:#EFE6D6}}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;min-height:40px;gap:12px}
.topbar .promise{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.topbar .promise svg{width:16px;height:16px;color:var(--miele-lum)}
.topbar .ctry{color:#B7A88E;font-weight:800}
@media(max-width:600px){.topbar .ctry{display:none}}
.sitehead{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hrow{display:flex;align-items:center;gap:20px;height:72px}
.brand{display:inline-flex;align-items:center;gap:10px;flex:none}
.brand .mk{width:32px;height:32px} .brand .wm{font-family:var(--serif);font-size:1.6rem;font-weight:600}
.brand .wm .z{color:var(--miele)}
.mainnav ul{display:flex;gap:22px;flex-wrap:wrap}
.mainnav a{font-weight:600;font-size:14.5px;padding:6px 0;position:relative;color:var(--ink)}
.mainnav a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--miele);transform:scaleX(0);transform-origin:left;transition:transform .18s var(--ease)}
.mainnav a:hover::after,.mainnav a.act::after{transform:scaleX(1)}
.mainnav a.sale{color:var(--cacao);font-weight:800;display:inline-flex;align-items:center;gap:7px}
.mainnav a.sale::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--coccio);flex:none}
.hact{display:flex;align-items:center;gap:10px;margin-left:auto}
.iconb{width:44px;height:44px;border-radius:var(--pill);display:inline-flex;align-items:center;justify-content:center;position:relative}
.iconb:hover{background:var(--panna)} .iconb svg{width:22px;height:22px}
.cartn{position:absolute;top:6px;right:6px;min-width:17px;height:17px;padding:0 4px;border-radius:var(--pill);background:var(--coccio);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center}
.hamb{display:none}
@media(max-width:900px){.mainnav{display:none}.hamb{display:inline-flex}}

/* ===== Footer ===== */
.sitefoot{background:var(--cacao);color:#B7A88E;padding:52px 0 30px}
@media(prefers-color-scheme:light),(prefers-color-scheme:no-preference){.sitefoot{background:#221A14;color:#B7A88E}}
.sitefoot .fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px}
@media(max-width:860px){.sitefoot .fgrid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.sitefoot .fgrid{grid-template-columns:1fr}}
.sitefoot h4{color:#FBF7F0;font-family:var(--sans);font-size:12.5px;text-transform:uppercase;letter-spacing:.12em;margin:0 0 13px}
.sitefoot a{display:block;color:#B7A88E;font-size:14px;padding:4px 0} .sitefoot a:hover{color:var(--miele-lum)}
.sitefoot .fwm{font-family:var(--serif);font-size:1.5rem;color:#FBF7F0} .sitefoot .fwm .z{color:var(--miele-lum)}
.sitefoot .fbottom{border-top:1px solid rgba(251,247,240,.14);margin-top:26px;padding-top:20px;display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;font-size:12.5px;color:#8F8171}

/* mobile sticky bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:45;display:none;justify-content:space-around;
  background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--line);
  padding:8px 0 calc(8px + env(safe-area-inset-bottom))}
.mbar a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;font-weight:800;color:var(--ink-2)}
.mbar svg{width:22px;height:22px}
@media(max-width:767px){.mbar{display:flex}}
.wabubble{position:fixed;right:16px;bottom:78px;z-index:46;width:52px;height:52px;border-radius:50%;background:var(--pino);display:grid;place-items:center;color:#fff;box-shadow:var(--sh-2)}
@media(min-width:768px){.wabubble{bottom:20px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ============================================================
   CORREZIONI UX/UI (mobile-first + desktop)
   ============================================================ */
/* contrasto testo secondario (WCAG AA) in tema chiaro */
@media(prefers-color-scheme:light),(prefers-color-scheme:no-preference){:root{--ink-3:#6F6152}}

/* griglia prodotti: 1 colonna su telefono */
@media(max-width:520px){.prodgrid{grid-template-columns:1fr}}
/* g2 collassa prima (hero, righe carrello, coppie testo/immagine) */
@media(max-width:768px){.g2{grid-template-columns:1fr}}
/* "spesso comprati insieme": 3 colonne vere, non 4 con colonna vuota */
.prodgrid.g3{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.prodgrid.g3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.prodgrid.g3{grid-template-columns:1fr}}
/* steps adattivi a 3/4/5 elementi */
.steps{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}

/* footer leggibile in dark mode */
@media(prefers-color-scheme:dark){.sitefoot{background:#171009}.sitefoot .fbottom{border-top-color:rgba(251,247,240,.12)}}

/* toolbar categoria + ordinamento */
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.sortby{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--ink-2)}
.sortby select{min-height:44px;border:1.5px solid var(--line);border-radius:var(--r-s);padding:0 12px;background:var(--surface);color:var(--ink);font:inherit}
@media(max-width:520px){.sortby{width:100%}.sortby select{flex:1}}

/* categoria: filtri + prodotti responsive */
.catlayout{display:grid;grid-template-columns:280px 1fr;gap:28px;align-items:start}
@media(max-width:820px){.catlayout{grid-template-columns:1fr}}
.filters input[type=checkbox]{width:20px;height:20px;accent-color:var(--pino);vertical-align:-3px}

/* stepper quantità: resta in riga */
.qty{display:grid;grid-template-columns:46px 1fr 46px;gap:8px;align-items:center;max-width:190px}
.qty button{min-height:46px;border:1.5px solid var(--line);border-radius:var(--r-s);font-weight:800;color:var(--pino)}
.qty input{min-height:46px;text-align:center;border:1.5px solid var(--line);border-radius:var(--r-s);background:var(--surface);color:var(--ink);font:inherit}

/* gruppi CTA coerenti e full-width su telefono */
.hero-cta,.ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
@media(max-width:480px){.hero-cta,.ctas{flex-direction:column;align-items:stretch}.hero-cta>.btn,.ctas>.btn{width:100%}}
.center .lead{margin-inline:auto}

/* corpo articolo: misura di lettura + ritmo verticale */
.prose{max-width:68ch}
.prose p{margin:.9em 0;color:var(--ink-2)}
.prose h2{margin:1.5em 0 .4em} .prose h3{margin:1.2em 0 .3em}
.prose ul.clean{margin:.6em 0}

/* card intera cliccabile (guide): affordance hover */
a.card{display:block;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
a.card:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}

/* radio-card checkout: prezzo/etichetta allineati */
.radio-card>div{flex:1}

/* target di tocco su telefono */
@media(max-width:767px){
  body{padding-bottom:90px}
  .crumb a,.crumb span{padding:3px 0}
  .sitefoot a{padding:9px 0}
  .more{min-height:44px}
}

/* ============================================================
   ANTI-OVERFLOW ORIZZONTALE - nessuno scroll a destra, mai.
   Si elimina la CAUSA (elementi più larghi del viewport), NON
   si usa overflow-x:clip/hidden sul root (romperebbe lo scroll
   verticale). body{overflow-x:hidden} (regola base) resta come
   rete di sicurezza; non rompe lo scroll perché html resta il
   contenitore di scorrimento.
   - min-width:0 permette a figli flex/grid di restringersi sotto
     il loro contenuto (causa n.1 di overflow su mobile).
   - max-width:100% impedisce a media di sfondare.
   ============================================================ */
*{min-width:0}
img,svg,video,iframe,pre{max-width:100%}
/* logo mark (arco Cozelia): dimensione fissa ovunque, mai gonfiato.
   Era la causa principale dell'overflow: nel footer non era dentro
   .brand, quindi restava senza larghezza e si gonfiava a tutta la colonna. */
.mk{width:32px;height:32px;flex:none}
.sitefoot .mk{width:38px;height:38px}

/* ===== Menu mobile (drawer aperto dall'hamburger) ===== */
.mdrawer{position:fixed;inset:0;z-index:120;visibility:hidden;transition:visibility 0s linear .3s}
.mdrawer.open{visibility:visible;transition:visibility 0s}
.mdrawer-scrim{position:absolute;inset:0;background:rgba(20,15,10,.5);opacity:0;transition:opacity .25s var(--ease)}
.mdrawer.open .mdrawer-scrim{opacity:1}
.mdrawer-panel{position:absolute;top:0;left:0;bottom:0;width:min(86vw,330px);background:var(--surface);box-shadow:var(--sh-3);
  padding:16px 18px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow-y:auto;
  transform:translateX(-100%);transition:transform .26s var(--ease)}
.mdrawer.open .mdrawer-panel{transform:translateX(0)}
.mdrawer-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.mdrawer-top .brand .mk{width:30px;height:30px} .mdrawer-top .wm{font-family:var(--serif);font-size:1.5rem;font-weight:600}
.mdrawer-top .wm .z{color:var(--miele)}
.mdrawer-x{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--pill);color:var(--ink);flex:none}
.mdrawer-x:hover{background:var(--panna)} .mdrawer-x svg{width:24px;height:24px}
.mdrawer-nav{display:flex;flex-direction:column;border-top:1px solid var(--line);margin-top:4px}
.mdrawer-nav a{padding:15px 4px;font-family:var(--serif);font-size:1.16rem;color:var(--ink);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:9px;min-height:52px}
.mdrawer-nav a.sale{color:var(--coccio-deep);font-weight:700}
.mdrawer-nav a.sale::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--coccio);flex:none}
.mdrawer-links{display:flex;flex-direction:column;margin-top:16px}
.mdrawer-links a{padding:11px 4px;font-size:14.5px;color:var(--ink-2);font-weight:700;min-height:44px;display:flex;align-items:center}
.mdrawer-links a:hover{color:var(--miele-text)}
@media(prefers-reduced-motion:reduce){.mdrawer-scrim,.mdrawer-panel{transition:none}}

/* footer: disclosure affiliazione + link legali */
.sitefoot .faff{color:#8F8171;font-size:12.5px;max-width:95ch;margin:22px 0 0;line-height:1.6}
.flegal{display:flex;flex-wrap:wrap;gap:2px 16px}
.flegal a{display:inline-block;padding:6px 0;color:#B7A88E;font-size:12.5px}
.flegal a:hover{color:var(--miele-lum)}
.sitefoot .fbottom{align-items:center}

/* banner consenso cookie */
.ckbanner{position:fixed;left:0;right:0;bottom:0;z-index:130;background:#241C15;color:#EFE6D6;border-top:1px solid rgba(251,247,240,.15);box-shadow:0 -8px 30px rgba(0,0,0,.25);padding:14px 0 calc(14px + env(safe-area-inset-bottom))}
.ckbanner-in{max-width:var(--maxw);margin:0 auto;padding:0 22px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:space-between}
.ckbanner p{margin:0;font-size:13px;line-height:1.5;color:#EFE6D6;max-width:66ch}
.ckbanner a{color:var(--miele-lum);text-decoration:underline}
.ckbanner-btn{display:flex;gap:10px;flex-wrap:wrap}
.ckbanner .btn{min-height:44px;padding:11px 18px;font-size:14px}
.ckbanner .btn-ghost{color:#EFE6D6;border-color:rgba(251,247,240,.45)}
.ckbanner .btn-ghost:hover{background:rgba(251,247,240,.08)}
@media(max-width:767px){.ckbanner{bottom:64px}}

/* ============================================================
   RIFINITURE A11Y / RESILIENZA (append, nessuna regola duplicata)
   ============================================================ */
/* word-break: nomi, email e URL lunghi non sfondano il viewport a 390px */
body{overflow-wrap:break-word}
.prose,.pname{overflow-wrap:anywhere}

/* fallback tabelle senza .tablewrap: scrollabili entro il proprio
   contenitore, cosi non rompono mai il viewport. Le tabelle dentro
   .tablewrap restano table normali (lo scroll lo gestisce il wrapper). */
table:not(.tablewrap *){display:block;overflow-x:auto;max-width:100%}

/* focus-visible da tastiera: stessa enfasi degli stati hover */
.prod:focus-within{transform:translateY(-4px);box-shadow:var(--sh-2)}
a.card:focus-visible{transform:translateY(-3px);box-shadow:var(--sh-2)}
.mainnav a:focus-visible::after{transform:scaleX(1)}
.add:focus-visible{background:var(--pino);color:#FBF7F0}

/* font minimi >=12px (leggibilita / target AA) */
.prod .pcat{font-size:12px}
.badge{font-size:12px}
.cartn{font-size:12px}
/* .eyebrow: contrasto AA verificato - #8A5514 (miele-text) su --latte
   e' >4.5:1; in dark usa --miele-lum su superficie scura. Alziamo il
   corpo a 12px mantenendo il tracking. */
.eyebrow{font-size:12px}

/* .imgbox / img.ph: cover + riempimento box gia' definiti sopra
   (.imgbox position:relative a riga 99; img.ph object-fit:cover a
   riga 102). Ribadito qui per garanzia anti-CLS. */
.imgbox{position:relative}
.imgbox img.ph{object-fit:cover;width:100%;height:100%}

/* ===== Selettore lingua (iniettato da js/i18n.js) ===== */
.langsel{background:transparent;color:#B7A88E;font-weight:800;font-size:13px;
  border:1px solid rgba(183,168,142,.4);border-radius:6px;padding:4px 8px;
  cursor:pointer;font-family:inherit;-webkit-appearance:menulist;appearance:menulist}
.langsel:hover{color:#EFE6D6;border-color:#EFE6D6}
.langsel:focus-visible{outline:2px solid var(--miele-lum);outline-offset:2px}
.langsel option{color:#241C15;background:#FFFFFF}
.mdrawer-lang{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.mdrawer-lang .langsel{width:100%;min-height:44px;background:var(--surface);color:var(--ink);
  border:1.5px solid var(--line);border-radius:var(--r-s);font-size:15px;padding:0 12px}
.mdrawer-lang .langsel:hover{color:var(--ink);border-color:var(--pino)}

/* FOUC guard: nascosto solo durante il fetch del dizionario (lingua != it),
   rimosso da js/i18n.js al termine o dopo 1.5s di sicurezza (mai pagina bloccata). */
html.i18n-pending body{visibility:hidden}
