/* ============================================================================
   OTTICA FLORO — main bundle
   Token e componenti derivati da Linee guida.html e Homepage.html (fonte di
   verità visiva). Mobile-first, CSS vanilla con custom properties.
   ========================================================================== */

/* ─── DESIGN TOKENS ─────────────────────────────────────────────────────── */
:root{
  /* Color — brand Floro (rosa cipria · teal · oro) */
  --bg:            #FFF4F1;   /* rosa cipria chiarissimo — base */
  --bg-warm:       #FBE7E0;   /* stacco caldo per sezioni */
  --surface:       #F6DFD7;   /* superfici / card */
  --ink:           #14262B;   /* testo — teal-nero per coesione */
  --ink-2:         #2E4950;
  --muted:         #566B70;   /* AA su --bg */
  --muted-2:       #94A2A5;
  --line:          #F1DED7;
  --line-2:        #E7D0C8;

  --accent:        #0E606B;   /* teal scuro — accento primario */
  --accent-2:      #1697A6;   /* teal — accento secondario / hover */
  --gold:          #FFC24B;   /* oro — evidenza */
  --gold-ink:      #3A2A00;   /* testo su oro */
  --accent-ink:    #FFF4F1;   /* testo su accento */
  --ink-dark:      #0A3138;   /* teal profondissimo — sezioni scure */
  --accent-soft:   color-mix(in oklab, var(--accent) 8%, var(--bg));

  /* Type */
  --ff-display: "Geist", ui-sans-serif, system-ui, sans-serif;
  --ff-body:    "Geist", ui-sans-serif, system-ui, sans-serif;

  --fs-eyebrow:  11px;
  --fs-body-s:   14px;
  --fs-body:     16px;
  --fs-body-l:   18px;
  --fs-h4:       22px;
  --fs-h3:       28px;
  --fs-h2:       40px;
  --fs-h1:       56px;
  --fs-display:  88px;
  --fs-display-l:128px;

  /* Spacing scale (4-based) */
  --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
  --sp-5: 24px; --sp-6: 32px; --sp-7: 48px; --sp-8: 64px;
  --sp-9: 96px; --sp-10:128px; --sp-11:160px;

  /* Radii */
  --r-0: 0; --r-1: 2px; --r-2: 4px; --r-3: 8px; --r-4: 12px;

  /* Motion */
  --dur-fast:  200ms;
  --dur:       400ms;
  --dur-slow:  600ms;
  --dur-xslow: 800ms;
  --ease:      cubic-bezier(.22,1,.36,1);
  --ease-soft: cubic-bezier(.4,0,.2,1);

  /* Shadow */
  --shadow-1: 0 1px 0 var(--line);
  --shadow-2: 0 12px 32px -16px rgba(26,26,26,.18);

  /* Layout */
  --max:    1320px;
  --gutter: clamp(20px, 4vw, 56px);
}

/* ─── RESET & BASE ──────────────────────────────────────────────────────── */
*,*::before,*::after{ box-sizing:border-box }
html,body{ margin:0; padding:0 }
html{ scroll-behavior:smooth; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale }
body{
  font-family:var(--ff-body);
  font-size:var(--fs-body);
  line-height:1.55;
  color:var(--ink);
  background:var(--bg);
  font-feature-settings:"ss01","cv11";
  text-rendering:optimizeLegibility;
}
img,svg{ display:block; max-width:100% }
a{ color:inherit; text-decoration:none }
button{ font:inherit; color:inherit; cursor:pointer; background:none; border:0; padding:0 }
::selection{ background:var(--accent); color:var(--accent-ink) }
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:var(--r-1) }

.screen-reader-text{
  border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%);
  height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; width:1px; word-wrap:normal;
}

/* Container */
.wrap{ max-width:var(--max); margin:0 auto; padding:0 var(--gutter) }
.wrap--wide{ max-width:1480px }

/* Type helpers */
.eyebrow{
  font-size:var(--fs-eyebrow);
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:500;
  color:var(--muted);
}
.h1,.h2,.h3{ font-family:var(--ff-display); font-weight:400; letter-spacing:-.02em; line-height:1.05; margin:0 }
.h1{ font-size:clamp(44px, 6.5vw, var(--fs-display)); letter-spacing:-.03em }
.h2{ font-size:clamp(32px, 4vw, var(--fs-h1)); letter-spacing:-.025em; line-height:1.08; text-wrap:balance }
.h3{ font-size:var(--fs-h3); letter-spacing:-.015em; line-height:1.2 }
p{ margin:0 }
.muted{ color:var(--muted) }
.lead{ font-size:var(--fs-body-l); color:var(--ink-2); line-height:1.55; max-width:54ch }

/* ─── BUTTONS ───────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 22px; border-radius:999px;
  font-size:var(--fs-body-s); font-weight:500; letter-spacing:.01em;
  border:1px solid transparent;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease),
              border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
  white-space:nowrap; cursor:pointer;
}
.btn--primary{ background:var(--accent); color:var(--accent-ink) }
.btn--primary:hover{ background:color-mix(in oklab, var(--accent) 88%, black) }
.btn--secondary{ background:transparent; color:var(--ink); border-color:var(--ink) }
.btn--secondary:hover{ background:var(--ink); color:var(--bg) }
.btn--ghost{ background:transparent; color:var(--ink); padding:14px 0 }
.btn--ghost .arr{ transition:transform var(--dur) var(--ease) }
.btn--ghost:hover .arr{ transform:translateX(4px) }
.btn .arr{ width:14px; height:14px }
.btn--lg{ padding:18px 30px; font-size:var(--fs-body) }

/* Underline reveal link */
.link-u{ position:relative; display:inline-block; padding-bottom:2px }
.link-u::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:currentColor; transform:scaleX(.2); transform-origin:left;
  transition:transform var(--dur) var(--ease);
}
.link-u:hover::after{ transform:scaleX(1) }

/* ─── ANNOUNCEMENT BAR ──────────────────────────────────────────────────── */
/* ─── HEADER ────────────────────────────────────────────────────────────── */
.header{
  position:sticky; top:0; z-index:50;
  background:color-mix(in oklab, var(--bg) 90%, transparent);
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  border-bottom:1px solid transparent;
  transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.header.is-scrolled{ border-color:var(--line) }
.header__inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 0;
}
.logo{ display:flex; align-items:center; line-height:0 }
.logo__img{ display:block; height:52px !important; width:auto !important; max-height:52px }
@media (max-width:880px){ .logo__img{ height:42px !important; max-height:42px } }

.nav{ display:flex; align-items:center; gap:6px }
.nav__link, .nav .menu-item a{
  padding:10px 16px; font-size:14px; font-weight:450;
  color:var(--ink-2); border-radius:999px;
  transition: color var(--dur) var(--ease), background var(--dur) var(--ease);
  display:inline-block;
}
.nav__link:hover, .nav .menu-item a:hover{
  color:var(--ink); background:color-mix(in oklab, var(--ink) 5%, transparent);
}
.nav .current-menu-item > a,
.nav__link.is-active{ color:var(--accent) }
.nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:6px }

.header__actions{ display:flex; align-items:center; gap:4px }
.icon-btn{
  width:40px; height:40px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--ink); position:relative;
  transition:background var(--dur) var(--ease);
}
.icon-btn:hover{ background:color-mix(in oklab, var(--ink) 6%, transparent) }
.icon-btn svg{ width:18px; height:18px; stroke-width:1.6 }
.cart-count{
  position:absolute; top:6px; right:6px;
  background:var(--accent); color:var(--accent-ink);
  font-size:10px; font-weight:600;
  min-width:16px; height:16px; padding:0 4px; border-radius:999px;
  display:flex; align-items:center; justify-content:center;
}
.cart-count:empty,
.cart-count[data-count="0"]{ display:none }

.burger{ display:none }
@media (max-width:920px){
  .nav{ display:none }
  .burger{ display:inline-flex }
}

/* ─── HERO ──────────────────────────────────────────────────────────────── */
.hero{
  position:relative;
  display:flex; align-items:center;
  min-height: calc(100svh - 88px);   /* riempie il viewport meno l'header (52px logo + 2×18px padding) */
  padding-top: clamp(20px, 3vh, 48px);
  padding-bottom: clamp(20px, 3vh, 48px);
}
.hero > .wrap{ width:100% }
.hero__grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap:clamp(32px, 5vw, 80px);
  align-items:center;
}
.hero__copy{ padding-bottom:0 }

/* Intro hero: maschere per l'h1 + pre-hide degli altri elementi (solo con JS/GSAP) */
.hero__title .hero__line{ display:block; overflow:hidden; padding-bottom:.06em }
.hero__title .hero__line > span{ display:block }
.js-gsap .hero__title{ opacity:0 }
.js-gsap .hero__eyebrow,
.js-gsap .hero__ctas,
.js-gsap .hero__visual,
.js-gsap .hero__meta{ opacity:0 }
@media (prefers-reduced-motion: reduce){
  .js-gsap .hero__title,
  .js-gsap .hero__eyebrow,
  .js-gsap .hero__ctas,
  .js-gsap .hero__visual,
  .js-gsap .hero__meta{ opacity:1 }
}

.hero__eyebrow{ display:flex; align-items:center; gap:14px; margin-bottom:36px }
.hero__eyebrow .line{ flex:0 0 36px; height:1px; background:var(--ink); opacity:.4 }
.hero h1{
  font-size:clamp(48px, 8vw, 112px);
  font-weight:300;
  line-height:.98;
  letter-spacing:-.035em;
  margin-bottom:32px;
  text-wrap:balance;
}
.hero__lead{ max-width:46ch; margin-bottom:40px; color:var(--ink-2); font-size:clamp(16px, 1.4vw, 19px); line-height:1.55 }
.hero__ctas{ display:flex; gap:12px; flex-wrap:wrap; align-items:center }

.hero__visual{
  position:relative;
  aspect-ratio: 4 / 5;
  max-height: calc(100svh - 88px - clamp(40px, 6vh, 96px)); /* non esce mai dal viewport */
  border-radius:var(--r-3);
  overflow:hidden;
  background:var(--surface);
  isolation:isolate;
}
.hero__visual::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(0,0,0,.12));
  pointer-events:none;
}
.hero__visual img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition: transform 1.4s var(--ease);
}
.hero__visual:hover img{ transform:scale(1.025) }
.hero__caption{
  position:absolute; left:18px; bottom:16px; z-index:2;
  color:var(--bg); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  opacity:.85;
}

.hero__meta{
  margin-top:clamp(40px, 5vw, 72px);
  padding-top:24px;
  border-top:1px solid var(--line);
  display:grid; grid-template-columns:repeat(4, 1fr); gap:24px;
}
.hero__meta dt{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; font-weight:500 }
.hero__meta dd{ margin:0; font-size:15px; color:var(--ink) }

@media (max-width:880px){
  .hero{ min-height: calc(100svh - 78px) }   /* header più basso su mobile (42px logo) */
  .hero__grid{ grid-template-columns:1fr; gap:clamp(24px,4vh,36px) }
  .hero__visual{ aspect-ratio: 4 / 3; max-height:46svh }
  .hero__meta{ grid-template-columns:repeat(2,1fr) }
}

/* ─── SECTION HEADER ────────────────────────────────────────────────────── */
.section{ padding:clamp(72px, 9vw, 140px) 0 }
.section--tight{ padding:clamp(48px, 6vw, 96px) 0 }
.section__head{
  display:grid; grid-template-columns: 1fr auto; align-items:end; gap:24px;
  margin-bottom:clamp(40px, 5vw, 72px);
}
.section__head .eyebrow{ margin-bottom:18px; display:block }
.section__head .h2{ max-width:18ch }
.section__head .actions{ display:flex; gap:8px }
@media (max-width:720px){
  .section__head{ grid-template-columns:1fr }
  .section__head .actions{ margin-top:8px }
}

/* ─── CATEGORIES (staggered) ────────────────────────────────────────────── */
.cats{
  display:grid;
  grid-template-columns: 7fr 5fr;
  gap:clamp(20px, 3vw, 40px) clamp(20px, 3vw, 48px);
  align-items:start;
}
.cat{
  display:block; position:relative; overflow:hidden;
  border-radius:var(--r-3);
  background:var(--surface);
}
.cat__img{ position:relative; overflow:hidden; aspect-ratio: 4 / 5 }
.cat__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease); z-index:1 }
.cat__num{ z-index:2 }
.cat:hover .cat__img img{ transform:scale(1.03) }
.cat__body{
  display:flex; justify-content:space-between; align-items:end; gap:16px;
  padding:20px 22px 22px;
}
.cat__title{ font-family:var(--ff-display); font-size:24px; font-weight:400; letter-spacing:-.01em; line-height:1.1; margin:0 }
.cat__title small{ display:block; font-family:var(--ff-body); font-size:13px; font-weight:400; color:var(--muted); margin-top:6px; letter-spacing:0 }
.cat__cta{
  width:44px; height:44px; border-radius:999px; border:1px solid var(--line-2);
  display:flex; align-items:center; justify-content:center; flex:0 0 44px;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease),
              border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.cat:hover .cat__cta{ background:var(--ink); color:var(--bg); border-color:var(--ink); transform:translate(2px,-2px) }
.cat__cta svg{ width:14px; height:14px }
.cat__num{
  position:absolute; top:18px; left:22px; z-index:2;
  font-size:11px; letter-spacing:.14em; color:var(--bg); opacity:.85;
}
.cat--lg .cat__img{ aspect-ratio: 4 / 5.4 }
.cat--sm .cat__img{ aspect-ratio: 5 / 5.2 }
.cat--lg .cat__title{ font-size:32px }

.cats .cat:nth-child(2){ margin-top:clamp(40px, 7vw, 96px) }
.cats .cat:nth-child(3){ margin-top:-1px }
.cats .cat:nth-child(4){ margin-top:clamp(-80px, -6vw, -40px) }

/* Categoria singola: card orizzontale 50-50 */
.cats--single{ grid-template-columns:1fr; max-width:none }
.cats--single .cat{ display:grid; grid-template-columns:1fr 1fr; min-height:460px; margin-top:0 !important; border-radius:var(--r-3) }
.cats--single .cat__img{ aspect-ratio:auto; height:100%; border-radius:var(--r-3) 0 0 var(--r-3) }
.cats--single .cat__body{ flex-direction:column; justify-content:flex-end; padding:clamp(28px,4vw,48px); gap:20px }
.cats--single .cat__title{ font-size:clamp(26px,3.5vw,40px) }

@media (max-width:880px){
  .cats{ grid-template-columns:1fr }
  .cats .cat{ margin-top:0 !important }
  .cat--lg .cat__img{ aspect-ratio: 4 / 3.5 }
}
@media (max-width:640px){
  .cats--single .cat{ grid-template-columns:1fr; min-height:auto }
  .cats--single .cat__img{ aspect-ratio:4/3; height:auto; border-radius:var(--r-3) var(--r-3) 0 0 }
}

/* ─── BRAND MARQUEE ─────────────────────────────────────────────────────── */
.brands{
  padding:clamp(40px, 5vw, 64px) 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
.brands__label{ text-align:center; margin-bottom:28px }
.marquee{
  overflow:hidden;
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee__track{
  display:flex; gap:clamp(40px, 7vw, 96px);
  width:max-content;
  animation: marquee 38s linear infinite;
}
.brand{
  font-family:var(--ff-display);
  font-size:clamp(22px, 2.4vw, 30px);
  font-weight:400; letter-spacing:-.01em;
  color:var(--ink-2);
  white-space:nowrap;
  opacity:.78;
  transition:opacity var(--dur) var(--ease), color var(--dur) var(--ease);
}
.brand:hover{ opacity:1; color:var(--accent) }
@keyframes marquee {
  from { transform: translateX(0) }
  to   { transform: translateX(-50%) }
}

/* ─── STORIA ────────────────────────────────────────────────────────────── */
.storia{
  display:grid; grid-template-columns: 1fr 1fr; gap:clamp(40px, 6vw, 96px);
  align-items:center;
}
.storia__year{
  font-family:var(--ff-display);
  font-size:clamp(120px, 18vw, 240px);
  font-weight:200;
  letter-spacing:-.06em;
  line-height:.85;
  color:var(--ink);
  margin-bottom:24px;
}
.storia__year .acc{ color:var(--accent) }
.storia__years{
  display:flex; gap:20px; font-size:13px; color:var(--muted); margin-bottom:36px;
  flex-wrap:wrap;
}
.storia__years span{ display:inline-flex; align-items:center; gap:8px }
.storia__years span::before{ content:""; width:6px; height:6px; border-radius:99px; background:var(--accent) }
.storia__copy{ font-size:var(--fs-body-l); color:var(--ink-2); max-width:46ch; line-height:1.55 }
.storia__copy p + p{ margin-top:16px }
.storia__img{
  position:relative; aspect-ratio:4/5; border-radius:var(--r-3); overflow:hidden; background:var(--surface);
}
.storia__img img{ width:100%; height:100%; object-fit:cover }
@media (max-width:880px){ .storia{ grid-template-columns:1fr } }

/* ─── SEDI ──────────────────────────────────────────────────────────────── */
.sedi{ display:grid; grid-template-columns:repeat(4, 1fr); gap:clamp(16px, 2vw, 28px) }
.sede{
  display:flex; flex-direction:column;
  background:transparent;
  border-radius:var(--r-3);
  overflow:hidden;
  transition:transform var(--dur-slow) var(--ease);
}
.sede__img{ aspect-ratio:4/5; background:var(--surface); overflow:hidden; border-radius:var(--r-3); position:relative }
.sede__img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease) }
.sede:hover .sede__img img{ transform:scale(1.04) }
.sede__body{ padding:18px 4px 0 }
.sede__name{ font-family:var(--ff-display); font-size:20px; font-weight:500; letter-spacing:-.01em; margin:0 0 4px }
.sede__addr{ font-size:14px; color:var(--muted); margin-bottom:14px; line-height:1.5; white-space:pre-line }
.sede__meta{ display:flex; justify-content:space-between; align-items:baseline; font-size:13px; color:var(--ink-2); border-top:1px solid var(--line); padding-top:14px; gap:12px }
.sede__hrs{ font-variant-numeric:tabular-nums }
@media (max-width:980px){ .sedi:not(.sedi--single){ grid-template-columns:repeat(2,1fr); gap:24px } }
@media (max-width:520px){ .sedi{ grid-template-columns:1fr } }

/* Sede unica (homepage): 50-50 immagine + testo dentro l'article */
.sedi--single{ grid-template-columns:1fr; align-items:stretch; gap:0 }
.sedi--single .sede{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); align-items:center }
.sedi--single .sede__img{ aspect-ratio:1; height:auto; border-radius:var(--r-3) }
.sedi--single .sede__body{ padding:0 }
@media (max-width:640px){ .sedi--single .sede{ grid-template-columns:1fr } }

/* ─── SERVIZI ───────────────────────────────────────────────────────────── */
.servizi{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:clamp(20px, 2.5vw, 40px);
  padding:clamp(40px, 6vw, 72px) 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.serv{ display:flex; flex-direction:column; gap:12px }
.serv__icon{
  width:36px; height:36px; color:var(--accent);
  display:flex; align-items:center; justify-content:center;
}
.serv__icon svg{ width:32px; height:32px; stroke-width:1.4 }
.serv__title{ font-size:16px; font-weight:500; margin:0 }
.serv__desc{ font-size:14px; color:var(--muted); line-height:1.5 }
@media (max-width:720px){ .servizi{ grid-template-columns:repeat(2,1fr) } }

/* ─── CTA banner ────────────────────────────────────────────────────────── */
.cta-banner{
  position:relative;
  background:var(--ink); color:var(--bg);
  border-radius:var(--r-4);
  padding:clamp(48px, 7vw, 96px) clamp(28px, 5vw, 80px);
  overflow:hidden;
  display:grid; grid-template-columns: 1fr auto; align-items:end; gap:32px;
}
.cta-banner::before{
  content:""; position:absolute; right:-80px; top:-80px;
  width:380px; height:380px; border-radius:999px;
  background:var(--accent); filter:blur(0); opacity:.92;
}
.cta-banner__copy{ position:relative; z-index:1 }
.cta-banner .h2{ color:var(--bg); margin-bottom:18px; max-width:18ch }
.cta-banner__lead{ color:rgba(250,250,247,.74); max-width:46ch; font-size:17px }
.cta-banner__cta{ position:relative; z-index:1 }
.cta-banner__cta .btn--primary{ background:var(--bg); color:var(--ink) }
.cta-banner__cta .btn--primary:hover{ background:var(--gold); color:var(--gold-ink) }
@media (max-width:720px){ .cta-banner{ grid-template-columns:1fr } }

/* ─── FOOTER ────────────────────────────────────────────────────────────── */
.footer{
  padding:clamp(72px, 8vw, 120px) 0 32px;
  background:var(--bg);
  border-top:1px solid var(--line);
}
.footer__grid{
  display:grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr; gap:48px;
  margin-bottom:80px;
}
.footer__brand .h3{ font-size:32px; font-weight:300; letter-spacing:-.02em; margin-bottom:16px; max-width:14ch }
.footer__brand .muted{ font-size:14px; max-width:30ch }
.footer__col h4{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); font-weight:500; margin:0 0 18px;
}
.footer__col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px }
.footer__col a, .footer__col li > a{ font-size:14px; color:var(--ink-2); transition:color var(--dur) var(--ease) }
.footer__col a:hover{ color:var(--accent) }
.footer__bottom{
  display:flex; justify-content:space-between; align-items:center; gap:24px;
  padding-top:24px; border-top:1px solid var(--line);
  font-size:12px; color:var(--muted);
}
@media (max-width:880px){
  .footer__grid{ grid-template-columns:1fr 1fr; gap:32px }
  .footer__brand{ grid-column:span 2 }
  .footer__bottom{ flex-direction:column; align-items:flex-start; text-align:left }
}

/* ─── POWERED BY (bannerino sotto il footer) ────────────────────────────── */
.footer-credit{ background:var(--ink); padding:14px 0 }
.footer-credit__inner{ display:flex; justify-content:center; align-items:center;
  font-size:12px; letter-spacing:.02em; color:color-mix(in oklab, var(--bg) 65%, transparent) }
.footer-credit a{ color:var(--bg); font-weight:600; text-decoration:underline; text-underline-offset:3px; margin-left:4px }
.footer-credit a:hover{ opacity:.75 }

/* ─── MINI CART DRAWER ──────────────────────────────────────────────────── */
.scrim{
  position:fixed; inset:0; background:rgba(26,26,26,.42); z-index:50;
  opacity:0; pointer-events:none;
  transition:opacity var(--dur) var(--ease);
}
.scrim.is-open{ opacity:1; pointer-events:auto }

#cart{
  position:fixed; top:0; right:0; bottom:0; z-index:60;
  width:min(440px, 100vw);
  background:var(--bg);
  transform:translateX(100%);
  transition:transform var(--dur-slow) var(--ease);
  display:flex; flex-direction:column;
  box-shadow:-12px 0 40px -16px rgba(26,26,26,.18);
}
#cart.is-open{ transform:translateX(0) }
.cart__head{
  display:flex; justify-content:space-between; align-items:center;
  padding:22px 28px; border-bottom:1px solid var(--line);
}
.cart__head h3{ font-family:var(--ff-display); font-size:20px; font-weight:500; margin:0 }
.cart__body{ flex:1; overflow:auto; padding:24px 28px; display:flex; flex-direction:column; gap:20px }
.cart__empty{ padding:48px 0; text-align:center; color:var(--muted); font-size:14px }
.cart-item{ display:grid; grid-template-columns:80px 1fr auto; gap:16px; align-items:start }
.cart-item__img{ width:80px; height:80px; background:var(--surface); border-radius:var(--r-2); overflow:hidden; position:relative }
.cart-item__img img{ width:100%; height:100%; object-fit:cover }
.cart-item__name{ font-size:14px; margin:0 0 2px; font-weight:500 }
.cart-item__brand{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:8px }
.cart-item__qty{
  display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:999px; padding:2px;
}
.cart-item__qty button{ width:24px; height:24px; border-radius:999px; font-size:14px; cursor:pointer }
.cart-item__qty button:hover{ background:var(--surface) }
.cart-item__qty span{ width:24px; text-align:center; font-size:13px; font-variant-numeric:tabular-nums }
.cart-item__price{ font-size:14px; font-variant-numeric:tabular-nums; text-align:right; min-width:64px }
.cart__foot{ padding:24px 28px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:14px }
.cart__total{ display:flex; justify-content:space-between; font-size:15px; font-weight:500 }
.cart__total .muted{ font-weight:400 }
.cart__note{ font-size:12px; color:var(--muted); text-align:center }

/* Mini-cart WooCommerce dentro il drawer #cart */
#cart-body .widget_shopping_cart_content{ display:flex; flex-direction:column; gap:20px }
#cart-body .woocommerce-mini-cart{ list-style:none; margin:0; padding:0 }
#cart-body .woocommerce-mini-cart-item{
  position:relative; min-height:64px; margin:0 0 18px; padding:0 34px 18px 78px;
  background:none; border:0; border-bottom:1px solid var(--line);
}
#cart-body .woocommerce-mini-cart-item:last-child{ margin-bottom:0; border-bottom:0; padding-bottom:0 }
#cart-body .woocommerce-mini-cart-item > a:not(.remove){
  display:block; color:var(--ink); text-decoration:none; font-size:14px; font-weight:500; line-height:1.4;
}
#cart-body .woocommerce-mini-cart-item > a:not(.remove) img{
  position:absolute; left:0; top:0; width:64px; height:64px; margin:0;
  object-fit:cover; border-radius:var(--r-2); background:var(--surface);
}
#cart-body .woocommerce-mini-cart-item .quantity{
  display:block; margin-top:6px; font-size:13px; color:var(--muted); font-variant-numeric:tabular-nums;
}
#cart-body .woocommerce-mini-cart-item dl.variation{
  margin:6px 0 0; font-size:12px; color:var(--muted);
}
#cart-body .woocommerce-mini-cart-item dl.variation dt,
#cart-body .woocommerce-mini-cart-item dl.variation dd{ display:inline; margin:0 }
#cart-body .woocommerce-mini-cart-item dl.variation dd:after{ content:""; display:block }
#cart-body a.remove{
  position:absolute; right:0; top:0; width:24px; height:24px; padding:0;
  display:flex; align-items:center; justify-content:center;
  border-radius:999px; font-size:15px; line-height:1; text-decoration:none;
  color:var(--muted); background:var(--surface);
  transition:color var(--dur) var(--ease), background var(--dur) var(--ease);
}
#cart-body a.remove:hover{ color:#B85C42; background:var(--surface) }
#cart-body .woocommerce-mini-cart__empty-message{ padding:48px 0; text-align:center; color:var(--muted); font-size:14px }
#cart-body .woocommerce-mini-cart__total{
  display:flex; justify-content:space-between; align-items:baseline;
  margin:0; padding-top:18px; border-top:1px solid var(--line); font-size:15px;
}
#cart-body .woocommerce-mini-cart__total strong{ font-weight:500 }
#cart-body .woocommerce-mini-cart__total .woocommerce-Price-amount{ font-weight:500; font-variant-numeric:tabular-nums }
#cart-body .woocommerce-mini-cart__buttons{ display:flex; gap:10px; margin:0 }
#cart-body .woocommerce-mini-cart__buttons .button{
  flex:1; text-align:center; padding:13px 18px; border-radius:999px;
  font-size:14px; font-weight:500; text-decoration:none; border:1px solid var(--line);
  background:var(--bg); color:var(--ink);
  transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
#cart-body .woocommerce-mini-cart__buttons .button:hover{ background:var(--surface) }
#cart-body .woocommerce-mini-cart__buttons .checkout{
  background:var(--accent); border-color:var(--accent); color:var(--accent-ink);
}
#cart-body .woocommerce-mini-cart__buttons .checkout:hover{
  background:color-mix(in oklab, var(--accent) 88%, black); border-color:transparent;
}

/* ─── MOBILE DRAWER ─────────────────────────────────────────────────────── */
.mdrawer{
  position:fixed; inset:0; z-index:70;
  background:var(--bg);
  transform:translateY(-100%);
  transition:transform var(--dur-slow) var(--ease);
  display:flex; flex-direction:column;
}
.mdrawer.is-open{ transform:translateY(0) }
.mdrawer__head{
  display:flex; justify-content:space-between; align-items:center;
  padding:18px var(--gutter); border-bottom:1px solid var(--line);
}
.mdrawer__body{ padding:32px var(--gutter); flex:1; overflow:auto }
.mdrawer__nav{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:4px }
.mdrawer__nav a{
  display:block; padding:14px 0;
  font-family:var(--ff-display); font-size:32px; font-weight:400; letter-spacing:-.02em;
  border-bottom:1px solid var(--line);
  opacity:0; transform:translateY(8px);
  transition: opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);
}
.mdrawer.is-open .mdrawer__nav a{ opacity:1; transform:translateY(0) }
.mdrawer.is-open .mdrawer__nav li:nth-child(1) a{ transition-delay: 60ms }
.mdrawer.is-open .mdrawer__nav li:nth-child(2) a{ transition-delay:120ms }
.mdrawer.is-open .mdrawer__nav li:nth-child(3) a{ transition-delay:180ms }
.mdrawer.is-open .mdrawer__nav li:nth-child(4) a{ transition-delay:240ms }
.mdrawer.is-open .mdrawer__nav li:nth-child(5) a{ transition-delay:300ms }
.mdrawer.is-open .mdrawer__nav li:nth-child(6) a{ transition-delay:360ms }
.mdrawer.is-open .mdrawer__nav li:nth-child(7) a{ transition-delay:420ms }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.01ms !important; animation-iteration-count:1 !important;
     transition-duration:0.01ms !important; scroll-behavior:auto !important }
}

/* ─── PLACEHOLDER PHOTO FRAMES ─────────────────────────────────────────── */
.ph{
  position:absolute; inset:0;
  background:
    radial-gradient(120% 70% at 20% 20%, color-mix(in oklab, var(--surface) 90%, white) 0%, var(--surface) 60%, color-mix(in oklab, var(--surface) 70%, black) 100%);
}
.ph--warm { background:linear-gradient(150deg, #E8DCC7 0%, #C9A87C 55%, #8E6D4A 100%) }
.ph--olive{ background:linear-gradient(150deg, #DDD9C0 0%, #8C946A 60%, #3D4A2A 100%) }
.ph--blue { background:linear-gradient(150deg, #C8CDD4 0%, #5E6E7E 60%, #1E2A38 100%) }
.ph--terra{ background:linear-gradient(150deg, #ECC7B8 0%, #B85C42 60%, #6E2F1F 100%) }
.ph--sand { background:linear-gradient(150deg, #F2EAD8 0%, #D9C49A 60%, #9C8458 100%) }
.ph--ink  { background:linear-gradient(150deg, #6A6960 0%, #2F2D27 100%) }

/* ─── WOOCOMMERCE OVERRIDES — base, da estendere in fase 4/5 ───────────── */
.woocommerce-wrap{ padding-top:clamp(48px, 6vw, 96px); padding-bottom:clamp(48px, 6vw, 96px) }
.woocommerce ul.products{ display:grid; grid-template-columns:repeat(3, 1fr); gap:clamp(20px, 3vw, 40px); list-style:none; padding:0; margin:0 }
@media (max-width:880px){ .woocommerce ul.products{ grid-template-columns:repeat(2,1fr) } }
@media (max-width:560px){ .woocommerce ul.products{ grid-template-columns:1fr } }
/* Reset del layout float/width 22.05% imposto da woocommerce-layout.css:
   senza questo le card vengono ristrette al 22% della colonna grid → immagini minuscole. */
.woocommerce ul.products li.product{ background:transparent; border:0; float:none; width:auto; margin:0 }
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--ff-display); font-size:16px; font-weight:500; letter-spacing:-.01em; padding:14px 0 4px;
}
.woocommerce ul.products li.product .price{
  font-size:14px; color:var(--ink-2); font-variant-numeric:tabular-nums;
}
.woocommerce-breadcrumb{ font-size:12px; letter-spacing:.06em; color:var(--muted); text-transform:uppercase; margin-bottom:clamp(24px, 4vw, 48px) }
.woocommerce-result-count{ color:var(--muted); font-size:13px }

/* ─── SHOP / ARCHIVE PRODUCT ────────────────────────────────────────────── */
.shop-head{ margin:clamp(40px,5vw,72px) 0 clamp(40px,5vw,72px) }
.shop-head__title{ margin-bottom:18px; max-width:18ch }
.shop-layout{
  display:grid; grid-template-columns:260px 1fr;
  gap:clamp(28px, 4vw, 64px);
  align-items:flex-start;
}
.shop-filters{
  position:sticky; top:96px;
  max-height:calc(100vh - 120px);
  overflow:auto;
}
.shop-main{ min-width:0 }
.shop-toolbar{
  display:flex; justify-content:space-between; align-items:center; gap:12px 16px;
  flex-wrap:wrap;
  padding-bottom:clamp(20px, 3vw, 32px); margin-bottom:clamp(20px, 3vw, 32px);
  border-bottom:1px solid var(--line);
  font-size:13px;
}
.shop-toolbar select{ font:inherit; color:inherit; padding:8px 12px; border:1px solid var(--line); border-radius:999px; background:transparent }
.filters__group{ padding:18px 0; border-top:1px solid var(--line) }
.filters__group:first-child{ border-top:0; padding-top:0 }
.filters__title{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:500; margin:0 0 12px }
.filters__list, .filters__group ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px }
.filters__group a{ font-size:14px; color:var(--ink-2); display:flex; justify-content:space-between; transition:color var(--dur) var(--ease) }
.filters__group a:hover{ color:var(--accent) }

/* Toggle filtri — nascosto su desktop, il pannello è sempre aperto. */
.shop-filters__toggle{ display:none }
.shop-filters__panel{ display:block }

@media (max-width:880px){
  .shop-layout{ grid-template-columns:1fr; gap:0 }

  /* La barra filtri diventa una pillola sticky che segue lo scorrimento.
     L'offset top usa l'altezza reale dell'header (calcolata in JS) così la
     barra resta sempre visibile sotto l'header, qualunque sia la sua altezza. */
  .shop-filters{
    position:sticky; top:calc(var(--floro-header-h, 60px) + 10px); z-index:40;
    max-height:none; overflow:visible;
    margin-bottom:clamp(24px, 4vw, 36px);
    background:var(--bg);
  }
  .shop-filters__toggle{
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    width:100%; padding:13px 20px;
    font:inherit; font-size:14px; color:var(--ink);
    background:var(--bg); border:1px solid var(--line-2); border-radius:999px;
    cursor:pointer; transition:border-color var(--dur) var(--ease);
  }
  .shop-filters__toggle:hover{ border-color:var(--ink) }
  .shop-filters__toggle-text{ display:inline-flex; align-items:center }
  .shop-filters__count{
    display:inline-flex; align-items:center; justify-content:center;
    min-width:20px; height:20px; padding:0 6px; margin-left:8px;
    background:var(--accent); color:var(--accent-ink);
    font-size:11px; font-variant-numeric:tabular-nums; border-radius:999px;
  }
  .shop-filters__count[hidden]{ display:none }
  .shop-filters__chevron{ flex:none; transition:transform var(--dur) var(--ease) }
  .shop-filters.is-open .shop-filters__chevron{ transform:rotate(180deg) }

  /* Pannello a tendina: appare sopra ai prodotti, non li spinge giù. */
  .shop-filters__panel{
    display:none;
    position:absolute; left:0; right:0; top:calc(100% + 8px);
    background:var(--bg); border:1px solid var(--line-2); border-radius:var(--r-4);
    box-shadow:var(--shadow-2);
    max-height:min(65vh, 520px); overflow:auto;
    padding:8px 22px 22px; z-index:45;
  }
  .shop-filters.is-open .shop-filters__panel{ display:block }
}

/* Product card */
.product-card{ list-style:none; position:relative }
.product-card__link{ display:block }
.product-card__media{
  position:relative; aspect-ratio:1/1; overflow:hidden;
  border-radius:var(--r-3); background:#fff;
}
.product-card__media .ph{ position:absolute; inset:0 }
/* Usato solo sui prodotti in homepage (.home-products) che ancora usano <img> */
.product-card__img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; margin:0;
  transition: opacity var(--dur-slow) var(--ease), transform var(--dur-xslow) var(--ease);
}
/* Div background-image — non toccato da nessuna regola WC img */
.product-card__bg{
  transition: opacity var(--dur-slow) var(--ease), transform var(--dur-xslow) var(--ease);
}
/* Hover card: solo zoom sull'immagine principale, nessuna seconda foto. */
.product-card:hover .product-card__bg{ transform:scale(1.06) }
.product-card__flag{
  position:absolute; top:14px; left:14px;
  background:var(--accent); color:var(--accent-ink);
  font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  padding:6px 10px; border-radius:999px; z-index:2;
}
.product-card__body{ padding:16px 4px 0 }
.product-card__brand{ display:block; margin-bottom:6px }
.product-card__title{
  font-family:var(--ff-display); font-size:16px; font-weight:500; letter-spacing:-.01em;
  margin:0 0 4px;
}
.product-card__price{ font-size:14px; color:var(--ink-2); font-variant-numeric:tabular-nums }
.product-card__price del{ color:var(--muted-2); margin-right:6px }
.product-card__price ins{ text-decoration:none; color:var(--accent) }

/* ─── SINGLE PRODUCT ────────────────────────────────────────────────────── */
.product-single{ padding:clamp(32px, 4vw, 56px) 0 clamp(72px, 8vw, 120px) }
.product-single__grid{
  display:grid; grid-template-columns:6fr 4fr; gap:clamp(32px, 5vw, 80px);
  align-items:start;
}
.product-single__media{ position:sticky; top:96px }
.product-single__media .woocommerce-product-gallery{ background:var(--surface); border-radius:var(--r-3); overflow:hidden }
.product-single__media .woocommerce-product-gallery img{ display:block; width:100%; height:auto }
.product-single__summary{ padding-top:8px }
.product-single__brand{ display:block; margin-bottom:14px }
.product-single__title{ margin-bottom:18px; max-width:20ch }
.product-single__price{
  font-size:clamp(28px,3vw,40px); font-variant-numeric:tabular-nums;
  font-weight:300; letter-spacing:-.02em;
  margin-bottom:28px; padding-bottom:24px;
  border-bottom:1px solid var(--line);
}
.product-single__price .price{ font-size:inherit; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap }
.product-single__price del{ color:var(--muted-2); font-size:.65em; font-weight:400 }
.product-single__price ins{ text-decoration:none; color:var(--ink) }
.product-single__excerpt{ margin-bottom:28px; font-size:17px }
.product-single__cart{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-bottom:14px }
.product-single__cart .quantity input{
  width:64px; padding:12px; border:1px solid var(--line); border-radius:999px;
  text-align:center; font:inherit; font-variant-numeric:tabular-nums;
}
.product-single__cart button.single_add_to_cart_button{
  background:var(--accent); color:var(--accent-ink);
  border:0; border-radius:999px; padding:14px 26px; font-size:14px; font-weight:500;
  cursor:pointer; transition: background var(--dur) var(--ease);
}
.product-single__cart button.single_add_to_cart_button:hover{ background:color-mix(in oklab, var(--accent) 88%, black) }
.product-single__secondary{ margin-bottom:32px }
.product-single__meta{
  display:flex; flex-direction:column; gap:8px;
  padding-top:24px; border-top:1px solid var(--line);
  font-size:13px; color:var(--muted);
}
.product-single__meta div{ display:flex; gap:10px }
.product-single__meta dt{ color:var(--muted); margin:0 }
.product-single__meta dd{ color:var(--ink-2); margin:0 }
@media (max-width:880px){
  .product-single__grid{ grid-template-columns:1fr; gap:32px }
  .product-single__media{ position:static }
}

/* Quick specs inline — visibili senza aprire la tab */
.product-quick-specs{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  margin-bottom:28px; padding:14px 16px;
  background:var(--surface); border-radius:var(--r-3);
  font-size:13px;
}
.product-quick-specs__item{
  display:inline-flex; align-items:center; gap:4px;
  padding:4px 10px; border-radius:999px;
  background:var(--bg); border:1px solid var(--line);
  color:var(--ink-2); white-space:nowrap;
}
.product-quick-specs__dim{
  font-variant-numeric:tabular-nums; letter-spacing:.01em;
  font-family:ui-monospace, monospace; font-size:12px;
}
.product-quick-specs__dim span{ color:var(--ink) }
.product-quick-specs__link{
  margin-left:auto; font-size:12px; color:var(--muted);
  text-decoration:underline; text-underline-offset:2px;
  white-space:nowrap;
}
.product-quick-specs__link:hover{ color:var(--ink) }

/* Tabs prodotto */
.product-single__tabs{ margin-top:clamp(40px,5vw,64px) }
.product-single__tabs .woocommerce-tabs ul.tabs{
  list-style:none; padding:0; margin:0 0 32px; display:flex; gap:0;
  border-bottom:1px solid var(--line);
}
.product-single__tabs .woocommerce-tabs ul.tabs li{ margin:0 }
.product-single__tabs .woocommerce-tabs ul.tabs li a{
  display:inline-block; padding:14px 20px; font-size:13px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted);
  border-bottom:2px solid transparent; margin-bottom:-1px;
  transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.product-single__tabs .woocommerce-tabs ul.tabs li.active a,
.product-single__tabs .woocommerce-tabs ul.tabs li a:hover{
  color:var(--ink); border-bottom-color:var(--accent);
}
.product-single__tabs .woocommerce-tabs .panel{
  padding:0; animation:fadeUp .25s var(--ease) both;
}

/* Product specs table */
.product-specs{ display:grid; grid-template-columns:1fr 1fr; gap:0 40px; max-width:760px }
.product-specs > div{
  display:grid; grid-template-columns:130px 1fr;
  padding:12px 0; border-top:1px solid var(--line); font-size:14px;
}
.product-specs dt{ color:var(--muted); margin:0 }
.product-specs dd{ margin:0; font-variant-numeric:tabular-nums; color:var(--ink-2) }
@media (max-width:560px){ .product-specs{ grid-template-columns:1fr } }

@keyframes fadeUp{
  from{ opacity:0; transform:translateY(8px) }
  to{   opacity:1; transform:none }
}

/* ─── PAGINA SEDI (full) ────────────────────────────────────────────────── */
.sede--full{ background:transparent }
.sede--full .sede__img{ aspect-ratio:5/4 }

.map{
  width:100%; aspect-ratio:16/9; min-height:360px;
  border-radius:var(--r-3); overflow:hidden; background:var(--surface);
}

/* ─── FORM ──────────────────────────────────────────────────────────────── */
.booking-form{ margin-top:clamp(32px,4vw,56px); display:flex; flex-direction:column; gap:18px; position:relative }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px }
@media (max-width:560px){ .form-row{ grid-template-columns:1fr } }
.form-field{ display:flex; flex-direction:column; gap:8px }
.form-label{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:500 }
.form-field input[type="text"],
.form-field input[type="tel"],
.form-field input[type="email"],
.form-field input[type="date"],
.form-field input[type="file"],
.form-field select,
.form-field textarea{
  font:inherit; color:var(--ink); background:var(--bg);
  border:1px solid var(--line); border-radius:var(--r-3);
  padding:14px 16px; transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  outline:none; border-color:var(--ink); background:var(--bg);
}
.form-field textarea{ resize:vertical; min-height:120px; line-height:1.55 }
.form-field--check{
  flex-direction:row; align-items:flex-start; gap:10px;
  font-size:14px; color:var(--ink-2);
}
.form-field--check input{ margin-top:3px }
.form-actions{ display:flex; align-items:center; gap:16px; margin-top:8px }
.form-status{ font-size:13px; color:var(--muted); margin:0 }
.form-status.is-ok{ color:var(--accent) }
.form-status.is-error{ color:#B85C42 }
.form-status.is-loading{ color:var(--ink-2) }

.rx-block{ flex:1 0 100%; order:-1; margin:0 0 4px; display:flex; flex-direction:column; gap:14px; text-align:left }
.rx-toggle{ align-items:center; gap:12px; font-size:15px; color:var(--ink-2); cursor:pointer }
.rx-toggle input{ margin-top:0; flex:0 0 auto; width:18px; height:18px; accent-color:var(--accent); cursor:pointer }
.rx-panel{
  display:flex; flex-direction:column; gap:24px; padding:22px;
  background:var(--accent-soft); border:1px solid var(--line); border-radius:var(--r-3);
}
.rx-panel[hidden], .rx-manual[hidden], .rx-upload[hidden]{ display:none }
.rx-manual{ display:flex; flex-direction:column; gap:24px }
.rx-eye{ display:flex; flex-direction:column; gap:14px; align-items:stretch }
.rx-eye + .rx-eye{ padding-top:24px; border-top:1px solid var(--line) }
.rx-eye-label{ margin:0; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); font-weight:600; text-align:left }
.rx-grid{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px }
.rx-field{ display:flex; flex-direction:column; gap:7px; min-width:0; text-align:left }
.rx-field--mode{ max-width:360px }
.rx-label{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:500 }
.rx-field select,
.rx-field input[type="file"]{
  width:100%; font:inherit; color:var(--ink); background:var(--bg);
  border:1px solid var(--line); border-radius:var(--r-3); padding:13px 14px;
  text-align:left; font-variant-numeric:tabular-nums;
  transition:border-color var(--dur) var(--ease);
}
.rx-field select:focus,
.rx-field input:focus{ outline:none; border-color:var(--ink) }
@media (max-width:520px){ .rx-grid{ grid-template-columns:1fr 1fr } }

/* ─── CHECKOUT ──────────────────────────────────────────────────────────── */
.checkout-page{
  min-height:100vh;
  padding-bottom:clamp(72px, 8vw, 120px);
}
.checkout-page__head{
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:18px var(--gutter); max-width:var(--max); margin:0 auto;
  border-bottom:1px solid var(--line); margin-bottom:clamp(40px,5vw,72px);
}
.checkout-steps{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--muted) }
.checkout-step{ color:var(--muted) }
.checkout-step.is-active{ color:var(--ink); font-weight:500 }
.checkout-step__sep{ color:var(--line-2) }

.checkout-grid{
  display:grid; grid-template-columns: 1fr 420px;
  gap:clamp(40px, 5vw, 80px);
  max-width:var(--max); margin:0 auto;
  padding:0 var(--gutter);
  align-items:start;
}
@media (max-width:920px){ .checkout-grid{ grid-template-columns:1fr } }

/* Form blocks */
.checkout-block{
  border:0; margin:0 0 clamp(32px, 4vw, 48px); padding:0;
}
.checkout-block__title{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); font-weight:500; margin:0 0 22px; padding:0;
}
.checkout-block .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px }
.checkout-block .form-row:last-child{ margin-bottom:0 }
@media (max-width:560px){ .checkout-block .form-row{ grid-template-columns:1fr } }

/* WC field wrapper override */
.checkout-block .form-row p.form-row{
  margin:0; padding:0; display:flex; flex-direction:column; gap:6px;
}
.checkout-block .form-row p.form-row label{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:500;
}
.checkout-block input.input-text,
.checkout-block select,
.checkout-block textarea{
  font:inherit; color:var(--ink); background:var(--bg);
  border:1px solid var(--line); border-radius:var(--r-3);
  padding:13px 16px; width:100%;
  transition:border-color var(--dur) var(--ease);
}
.checkout-block input.input-text:focus,
.checkout-block select:focus,
.checkout-block textarea:focus{
  outline:none; border-color:var(--ink);
}
.checkout-block .woocommerce-input-wrapper{ width:100% }
.checkout-block .required{ color:var(--accent) }

/* Ship to different address toggle */
.shipping-fields{ display:none }
.shipping-fields.is-open{ display:block }

/* Payment methods */
#payment{
  background:transparent;
  border:0;
}
#payment ul.payment_methods{
  list-style:none; padding:0; margin:0 0 24px; display:flex; flex-direction:column; gap:12px;
}
#payment ul.payment_methods li{
  border:1px solid var(--line); border-radius:var(--r-3); overflow:hidden;
  transition:border-color var(--dur) var(--ease);
}
#payment ul.payment_methods li.payment_method_selected,
#payment ul.payment_methods li:hover{ border-color:var(--ink) }
#payment ul.payment_methods li label{
  display:flex; align-items:center; gap:14px;
  padding:16px 20px; cursor:pointer; font-size:15px; font-weight:500;
}
#payment ul.payment_methods li label img{ height:24px; width:auto }
#payment ul.payment_methods input[type="radio"]{ accent-color:var(--accent) }
#payment .payment_box{
  padding:16px 20px; border-top:1px solid var(--line);
  background:var(--bg-warm); font-size:14px; color:var(--ink-2);
}
#payment .place-order{ margin-top:8px }
#payment #place_order{
  width:100%; background:var(--accent); color:var(--accent-ink);
  border:0; border-radius:999px; padding:18px 32px;
  font:inherit; font-size:16px; font-weight:500; cursor:pointer;
  transition:background var(--dur) var(--ease);
}
#payment #place_order:hover{ background:color-mix(in oklab, var(--accent) 88%, black) }
#payment .woocommerce-terms-and-conditions-wrapper{
  font-size:13px; color:var(--ink-2); margin-bottom:20px;
}
#payment .woocommerce-terms-and-conditions-wrapper a{ border-bottom:1px solid var(--line-2); transition:border-color var(--dur) var(--ease) }
#payment .woocommerce-terms-and-conditions-wrapper a:hover{ border-color:var(--accent) }

/* Checkout summary (right col) */
.checkout-summary__inner{
  position:sticky; top:96px;
  background:var(--bg-warm); border-radius:var(--r-4); padding:clamp(24px,3vw,36px);
}
.checkout-summary__title{
  font-family:var(--ff-display); font-size:18px; font-weight:500; margin:0 0 20px;
}
.checkout-summary__table{
  width:100%; border-collapse:collapse; font-size:14px;
}
.checkout-summary__table thead th{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
  font-weight:500; padding-bottom:12px; border-bottom:1px solid var(--line); text-align:left;
}
.checkout-summary__table thead th:last-child{ text-align:right }
.checkout-summary__table tbody tr{ border-bottom:1px solid var(--line) }
.checkout-summary__table tbody td{ padding:14px 0; vertical-align:middle }
.checkout-summary__table tbody td:last-child{ text-align:right; font-variant-numeric:tabular-nums }
.checkout-summary__thumb{
  display:inline-block; width:52px; height:52px; border-radius:var(--r-2);
  overflow:hidden; vertical-align:middle; margin-right:10px; background:var(--surface);
}
.checkout-summary__thumb img{ width:100%; height:100%; object-fit:cover }
.checkout-summary__name{ vertical-align:middle }
.checkout-summary__qty{ font-size:12px }
.checkout-summary__price{ font-variant-numeric:tabular-nums }
.checkout-summary__subtotal th,
.checkout-summary__coupon th,
.checkout-summary__shipping th,
.checkout-summary__tax th{ color:var(--muted); font-weight:400; padding:10px 0 0 }
.checkout-summary__subtotal td,
.checkout-summary__coupon td,
.checkout-summary__shipping td,
.checkout-summary__tax td{
  font-variant-numeric:tabular-nums; text-align:right; padding:10px 0 0;
}
.checkout-summary__total th,
.checkout-summary__total td{
  padding-top:16px; font-size:16px; font-weight:600; border-top:1px solid var(--line-2);
  font-variant-numeric:tabular-nums;
}
.checkout-summary__total td{ text-align:right }
.checkout-summary__note{ font-size:12px; margin:14px 0 0 }

/* Thank you */
.checkout-thankyou{ max-width:720px; margin:0 auto; padding:0 var(--gutter) }

/* ─── CART page ─────────────────────────────────────────────────────────── */
.floro-cart{ padding:clamp(48px,6vw,96px) 0 }
.floro-cart .woocommerce table.shop_table{
  width:100%; border-collapse:collapse;
}
.floro-cart .woocommerce table.shop_table th{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted);
  font-weight:500; text-align:left; padding:12px 8px; border-bottom:1px solid var(--line);
}
.floro-cart .woocommerce table.shop_table td{
  padding:18px 8px; border-bottom:1px solid var(--line); font-size:14px; vertical-align:middle;
}
.floro-cart .woocommerce table.shop_table td.product-thumbnail img{
  width:80px; height:80px; object-fit:cover; border-radius:var(--r-2);
}
.floro-cart .quantity input{
  width:56px; padding:8px; border:1px solid var(--line); border-radius:999px; text-align:center;
}
.floro-cart .cart_totals{ margin-top:32px; max-width:420px; margin-left:auto }
.floro-cart .cart_totals h2{ font-family:var(--ff-display); font-size:22px; font-weight:500; margin:0 0 16px }

/* ─── FILTRI AJAX ───────────────────────────────────────────────────────── */
.filters__check{
  display:flex; align-items:center; gap:8px; cursor:pointer;
  font-size:14px; color:var(--ink-2); padding:2px 0;
  transition:color var(--dur) var(--ease);
}
.filters__check:hover{ color:var(--ink) }
.filters__check input[type="checkbox"]{
  width:16px; height:16px; border:1px solid var(--line-2);
  border-radius:var(--r-1); accent-color:var(--accent);
  flex-shrink:0; cursor:pointer;
}
.filters__check-label{ flex:1 }
.filters__cat-link{ font-size:14px; color:var(--ink-2); display:flex; justify-content:space-between; transition:color var(--dur) var(--ease) }
.filters__cat-link:hover, .filters__cat-link.is-active{ color:var(--accent) }
.filters__cat-link.is-active{ font-weight:500 }

/* Stato di caricamento del blocco prodotti */
.shop-main.is-loading{
  opacity:.5; pointer-events:none;
  transition:opacity var(--dur) var(--ease);
}
.shop-empty{ padding:clamp(48px,6vw,96px) 0; display:flex; flex-direction:column; gap:20px }

/* ─── GALLERIA PRODOTTO CUSTOM ──────────────────────────────────────────── */
.floro-gallery{
  display:grid;
  grid-template-columns:88px 1fr;
  gap:10px;
  align-items:start;
}
@media (max-width:640px){
  .floro-gallery{ grid-template-columns:1fr; gap:12px; }
}

.floro-gallery__strip{
  grid-column:1; grid-row:1;
  display:flex; flex-direction:column; gap:8px;
  max-height:520px; overflow-y:auto; overflow-x:hidden;
  scrollbar-width:none;
}
.floro-gallery__strip::-webkit-scrollbar{ display:none }
@media (max-width:640px){
  .floro-gallery__strip{
    grid-column:1; grid-row:2;
    flex-direction:row; overflow-x:auto; overflow-y:hidden;
    max-height:none;
  }
}

.floro-gallery__thumb{
  width:88px; height:88px; flex-shrink:0;
  border-radius:var(--r-2); overflow:hidden;
  background:var(--surface); cursor:pointer;
  border:2px solid transparent;
  transition:border-color var(--dur) var(--ease), opacity var(--dur) var(--ease);
  padding:4px;
}
@media (max-width:640px){
  .floro-gallery__thumb{ width:72px; height:72px; padding:3px }
}
.floro-gallery__thumb img{ width:100%; height:100%; object-fit:contain; display:block }
.floro-gallery__thumb:hover{ border-color:var(--muted-2); opacity:.9 }
.floro-gallery__thumb.is-active{ border-color:var(--accent) }
.floro-gallery__thumb:focus-visible{ outline:2px solid var(--accent); outline-offset:2px }

.floro-gallery__main{
  grid-column:2; grid-row:1;
  overflow:hidden;
  border-radius:var(--r-3);
  background:transparent;
  position:relative; cursor:zoom-in;
}
.floro-gallery__main--single{ grid-column:1 / -1 }
.floro-gallery__main:only-child{ grid-column:1 / -1 }
@media (max-width:640px){
  .floro-gallery__main{ grid-column:1; grid-row:1; cursor:default }
}

.floro-gallery__img{
  width:100%; height:auto;
  display:block;
  transition:opacity .2s var(--ease), transform .25s var(--ease);
}
.floro-gallery__img.is-swapping{ opacity:0; transform:scale(.98) }
.floro-gallery__main--zoom:hover .floro-gallery__img{ transform:scale(1.06) }

/* Frecce navigazione */
.floro-gallery__arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.85); backdrop-filter:blur(6px);
  border:1px solid var(--line); border-radius:50%;
  color:var(--ink); cursor:pointer;
  opacity:0; transition:opacity var(--dur-fast) var(--ease);
  z-index:2;
}
.floro-gallery__arrow--prev{ left:12px }
.floro-gallery__arrow--next{ right:12px }
.floro-gallery__main:hover .floro-gallery__arrow{ opacity:1 }
.floro-gallery__arrow:hover{ background:var(--bg); border-color:var(--muted-2) }
.floro-gallery__arrow:focus-visible{ opacity:1; outline:2px solid var(--accent); outline-offset:2px }
@media (max-width:640px){
  .floro-gallery__arrow{ opacity:.7 }
}

/* Contatore immagini */
.floro-gallery__counter{
  position:absolute; bottom:12px; right:12px;
  font-size:11px; letter-spacing:.04em; color:var(--muted);
  background:rgba(255,255,255,.75); backdrop-filter:blur(4px);
  padding:3px 8px; border-radius:999px; pointer-events:none;
  border:1px solid var(--line);
}

/* ─── SWATCHES VARIANTI ──────────────────────────────────────────────────── */
.swatch-group{
  display:flex; flex-wrap:wrap; gap:8px; margin-top:8px;
}
.swatch-btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:40px; height:40px; padding:0 14px;
  border:1.5px solid var(--line); border-radius:999px;
  font-size:13px; color:var(--ink-2); cursor:pointer;
  transition:border-color var(--dur) var(--ease), color var(--dur) var(--ease), background var(--dur) var(--ease);
  white-space:nowrap;
}
.swatch-btn:hover:not(:disabled){ border-color:var(--ink); color:var(--ink) }
.swatch-btn.is-active{ border-color:var(--ink); color:var(--ink); font-weight:500 }
.swatch-btn:disabled{ opacity:.35; cursor:not-allowed }
/* Variante colore */
.swatch-btn--color{
  width:36px; height:36px; padding:0; min-width:36px;
  background:var(--sw, var(--surface));
  border-color:transparent;
}
.swatch-btn--color.swatch-btn--light{ border-color:var(--line) }
.swatch-btn--color.is-active{ box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--ink) }
.swatch-btn--color:hover:not(:disabled){ box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--muted) }

/* ─── MY ACCOUNT ─────────────────────────────────────────────────────────── */
.account-page{ padding:clamp(48px,6vw,96px) 0 }
.account-page__head{ margin-bottom:clamp(32px,4vw,56px) }
.account-page__title{ margin-top:12px }

.account-layout{
  display:grid; grid-template-columns:220px 1fr;
  gap:clamp(32px,5vw,72px); align-items:start;
}
@media (max-width:760px){
  .account-layout{ grid-template-columns:1fr }
}

.account-nav{ position:sticky; top:96px }
.account-menu{ list-style:none; padding:0; margin:0 }
.account-menu ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:2px }
.account-menu li a{
  display:block; padding:11px 16px; border-radius:var(--r-2);
  font-size:14px; color:var(--ink-2);
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.account-menu li a:hover{ background:var(--bg-warm); color:var(--ink) }
.account-menu li.is-active a,
.account-menu li.woocommerce-MyAccount-navigation-link--is-active a{
  background:var(--accent-soft); color:var(--accent); font-weight:500;
}

/* WC account content generic overrides */
.account-content .woocommerce-MyAccount-content h2,
.account-content .woocommerce-MyAccount-content h3{
  font-family:var(--ff-display); font-weight:400; letter-spacing:-.02em;
  margin:0 0 20px;
}
.account-content .woocommerce-orders-table,
.account-content .woocommerce-table{
  width:100%; border-collapse:collapse; font-size:14px;
}
.account-content .woocommerce-orders-table th,
.account-content .woocommerce-table th{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); font-weight:500; text-align:left;
  padding:10px 8px; border-bottom:1px solid var(--line);
}
.account-content .woocommerce-orders-table td,
.account-content .woocommerce-table td{
  padding:14px 8px; border-bottom:1px solid var(--line); vertical-align:middle;
}
.account-content .woocommerce-Address-title{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px }
.account-content .woocommerce-Address-title h3{ font-family:var(--ff-display); font-weight:400; font-size:18px; letter-spacing:-.02em; margin:0 }
.account-content .woocommerce-Address-title a{ font-size:13px; color:var(--accent); text-decoration:none; white-space:nowrap; margin-left:12px }
.account-content .woocommerce-Address-title a:hover{ text-decoration:underline }
.account-content address{ font-style:normal; font-size:15px; line-height:1.7; color:var(--ink-2) }

/* Griglia indirizzi (fatturazione + spedizione) */
.account-content .woocommerce-Addresses{
  display:grid; grid-template-columns:1fr 1fr; gap:32px;
}
.account-content .woocommerce-Address{
  padding:24px; border:1px solid var(--line); border-radius:var(--r-3);
}
@media (max-width:600px){ .account-content .woocommerce-Addresses{ grid-template-columns:1fr } }

/* Dashboard link list */
.account-content .woocommerce-MyAccount-content > p{ font-size:15px; color:var(--ink-2); line-height:1.7; margin-bottom:16px }

.account-content .woocommerce-form input[type="text"],
.account-content .woocommerce-form input[type="email"],
.account-content .woocommerce-form input[type="password"]{
  font:inherit; color:var(--ink); background:var(--bg);
  border:1px solid var(--line); border-radius:var(--r-3);
  padding:12px 16px; width:100%;
  transition:border-color var(--dur) var(--ease);
}
.account-content .woocommerce-form input:focus{ outline:none; border-color:var(--ink) }
.account-content .woocommerce-form p{ margin-bottom:16px }
.account-content .woocommerce-form label{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:500; display:block; margin-bottom:6px }

/* ─── CHI SIAMO ──────────────────────────────────────────────────────────── */
.about-hero{ padding:clamp(64px,8vw,120px) 0 clamp(48px,6vw,80px) }
.about-hero__inner{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(32px,5vw,80px); align-items:center;
}
@media (max-width:760px){
  .about-hero__inner{ grid-template-columns:1fr }
}
.about-hero__title{ margin:18px 0 22px; max-width:16ch }
.about-hero__visual{
  position:relative; aspect-ratio:4/5; border-radius:var(--r-3); overflow:hidden;
}
.about-hero__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block }

.about-numbers{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:clamp(32px,4vw,56px) 0 }
.about-numbers__grid{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:clamp(24px,3vw,48px); text-align:center;
}
@media (max-width:640px){ .about-numbers__grid{ grid-template-columns:1fr 1fr } }
.about-num__value{
  display:block; font-family:var(--ff-display); font-size:clamp(36px,5vw,64px);
  font-weight:300; letter-spacing:-.04em; color:var(--ink); line-height:1;
  margin-bottom:8px;
}
.about-num__label{ font-size:13px; color:var(--muted); text-transform:uppercase; letter-spacing:.1em }

.about-values__grid{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(24px,3vw,48px);
}
@media (max-width:640px){ .about-values__grid{ grid-template-columns:1fr } }
.about-val{ display:flex; flex-direction:column; gap:14px }
.about-val__icon{ width:44px; height:44px; color:var(--accent) }
.about-val__icon svg{ width:100%; height:100% }
.about-val__title{ font-family:var(--ff-display); font-size:var(--fs-h3); font-weight:400; margin:0; letter-spacing:-.02em }

/* Timeline */
.timeline{
  list-style:none; padding:0; margin:clamp(32px,4vw,56px) 0 0;
  display:flex; flex-direction:column; gap:0;
  border-left:1px solid var(--line); padding-left:clamp(24px,4vw,48px);
}
.timeline__item{
  position:relative; padding:0 0 clamp(28px,3vw,40px);
  display:grid; grid-template-columns:64px 1fr; gap:24px; align-items:start;
}
.timeline__item::before{
  content:''; position:absolute; left:calc(-1*clamp(24px,4vw,48px) - 4px);
  top:6px; width:8px; height:8px;
  border-radius:50%; background:var(--accent);
}
.timeline__year{
  font-size:13px; font-weight:500; color:var(--muted);
  letter-spacing:.06em; padding-top:3px;
}
.timeline__body{ font-size:15px; color:var(--ink-2) }
.timeline__body strong{ display:block; font-weight:500; color:var(--ink); margin-bottom:4px; font-family:var(--ff-display); letter-spacing:-.01em }
.timeline__body p{ margin:0; line-height:1.6 }
@media (max-width:480px){
  .timeline__item{ grid-template-columns:1fr }
  .timeline__year{ font-size:11px }
}

/* ─── SERVIZI ────────────────────────────────────────────────────────────── */
.services-hero{ padding:clamp(64px,8vw,120px) 0 clamp(40px,5vw,64px) }
.services-grid{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(24px,3vw,48px);
}
@media (max-width:760px){ .services-grid{ grid-template-columns:1fr } }

.service-card{
  border:1px solid var(--line); border-radius:var(--r-4);
  padding:clamp(24px,3vw,40px);
  display:flex; gap:24px; align-items:flex-start;
  transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.service-card:hover{ border-color:var(--muted-2); box-shadow:var(--shadow-2) }
.service-card--alt{ background:var(--bg-warm); border-color:transparent }
.service-card--alt:hover{ border-color:var(--line-2) }

.service-card__icon{
  width:40px; height:40px; flex-shrink:0; color:var(--accent);
  margin-top:4px;
}
.service-card__icon svg{ width:100%; height:100% }
.service-card__title{
  font-family:var(--ff-display); font-size:clamp(18px,2.5vw,24px);
  font-weight:400; letter-spacing:-.02em; margin:0 0 12px;
}
.service-card__lead{ font-size:16px; margin:0 0 18px }
.service-card__list{
  padding:0 0 0 18px; margin:0;
  display:flex; flex-direction:column; gap:6px;
  font-size:14px; color:var(--ink-2);
}
.service-card__list li::marker{ color:var(--accent) }
@media (max-width:640px){
  .service-card{ flex-direction:column; gap:16px }
}

/* ─── WC NOTICES ────────────────────────────────────────────────────────── */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
ul.woocommerce-error{
  list-style:none; padding:14px 18px; margin:0 0 24px;
  border-radius:var(--r-3); font-size:14px; line-height:1.5;
  display:flex; align-items:flex-start; gap:12px;
}
.woocommerce-message{ background:color-mix(in oklab, var(--accent) 8%, var(--bg)); border-left:3px solid var(--accent) }
.woocommerce-error,
ul.woocommerce-error{ background:#fdf1ee; border-left:3px solid #B85C42 }
.woocommerce-info{ background:#eef3fb; border-left:3px solid #3a6ab8 }
.woocommerce-message a,
.woocommerce-error a,
ul.woocommerce-error a,
.woocommerce-info a{ font-weight:500; border-bottom:1px solid currentColor }
ul.woocommerce-error{ flex-direction:column; gap:6px }
ul.woocommerce-error li{ display:flex; align-items:baseline; gap:8px }

/* ─── PAGINAZIONE ───────────────────────────────────────────────────────── */
.woocommerce-pagination ul,
nav.navigation.pagination .nav-links,
.page-numbers{
  display:flex; flex-wrap:wrap; gap:6px; list-style:none;
  padding:0; margin:clamp(40px,5vw,64px) 0 0; justify-content:center;
}
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span,
nav.navigation.pagination .nav-links a,
nav.navigation.pagination .nav-links span,
.page-numbers li a,
.page-numbers li span{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:40px; height:40px; padding:0 12px;
  border:1px solid var(--line); border-radius:999px;
  font-size:13px; color:var(--ink-2);
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.woocommerce-pagination ul li a:hover,
nav.navigation.pagination .nav-links a:hover,
.page-numbers li a:hover{
  background:var(--bg-warm); border-color:var(--ink); color:var(--ink);
}
.woocommerce-pagination ul li span.current,
.page-numbers li .current{
  background:var(--accent); color:var(--accent-ink); border-color:var(--accent);
}
.page-numbers li .dots{ border:0; background:transparent; color:var(--muted) }

/* ─── BLOG / POST CARD ──────────────────────────────────────────────────── */
.posts-page{ padding-top:clamp(48px,6vw,96px); padding-bottom:clamp(72px,8vw,120px) }
.posts-grid{ display:flex; flex-direction:column; gap:0 }

.post-card{
  padding:clamp(24px,3vw,40px) 0;
  border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:1fr; gap:16px;
}
.post-card__media{
  aspect-ratio:16/9; overflow:hidden; border-radius:var(--r-3); background:var(--surface);
  display:block;
}
.post-card__media img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 1.4s var(--ease);
}
.post-card:hover .post-card__media img{ transform:scale(1.025) }
.post-card__meta{
  font-size:12px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); margin:0;
}
.post-card__meta a{ color:inherit; transition:color var(--dur) var(--ease) }
.post-card__meta a:hover{ color:var(--accent) }
.post-card__title{
  font-family:var(--ff-display); font-size:clamp(20px,3vw,28px);
  font-weight:400; letter-spacing:-.02em; margin:0; line-height:1.15;
}
.post-card__title a{ transition:color var(--dur) var(--ease) }
.post-card__title a:hover{ color:var(--accent) }
.post-card__excerpt{ font-size:15px; color:var(--ink-2); line-height:1.55; margin:0 }
.post-card__cta{
  display:inline-flex; align-items:center; gap:8px;
  font-size:14px; font-weight:500; color:var(--accent);
}
.post-card__cta .arr{ width:12px; height:12px; transition:transform var(--dur) var(--ease) }
.post-card:hover .post-card__cta .arr{ transform:translateX(4px) }

@media (min-width:720px){
  .post-card{
    grid-template-columns:280px 1fr;
    gap:0 clamp(28px,4vw,48px);
    align-items:start;
  }
  .post-card__media{ grid-row:1/-1; aspect-ratio:4/3 }
  .post-card__meta,.post-card__title,.post-card__excerpt,.post-card__cta{ grid-column:2 }
}

/* ─── SINGLE BLOG POST ──────────────────────────────────────────────────── */
.post-single{ padding-bottom:clamp(72px,8vw,120px) }

.post-single__head{
  padding:clamp(56px,7vw,112px) var(--gutter) clamp(32px,4vw,56px);
  text-align:center;
}
.post-single__head .wrap{ max-width:860px }
.post-single__title{
  margin:14px auto 0;
  max-width:20ch;
}
.post-single__meta{
  display:flex; justify-content:center; gap:12px; flex-wrap:wrap;
  margin-top:16px;
}

.post-single__cover{
  width:100%; max-width:var(--max); margin:0 auto clamp(40px,5vw,72px);
  aspect-ratio:16/9; overflow:hidden; background:var(--surface);
}
.post-single__cover img{ width:100%; height:100%; object-fit:cover; display:block }

.post-single__body{ max-width:720px }

/* Navigazione articoli */
.post-nav{ margin-top:clamp(48px,6vw,80px); padding-top:32px; border-top:1px solid var(--line) }
.post-nav__inner{ display:grid; grid-template-columns:1fr 1fr; gap:20px }
@media (max-width:560px){ .post-nav__inner{ grid-template-columns:1fr } }
.post-nav__link{
  display:flex; flex-direction:column; gap:6px;
  padding:20px 22px; border:1px solid var(--line); border-radius:var(--r-3);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.post-nav__link:hover{ border-color:var(--ink); box-shadow:var(--shadow-2) }
.post-nav__link--next{ text-align:right }
.post-nav__title{
  font-family:var(--ff-display); font-size:16px; font-weight:400;
  letter-spacing:-.01em; color:var(--ink); line-height:1.3;
}

/* ─── ENTRY CONTENT ─────────────────────────────────────────────────────── */
.entry-content{
  font-size:var(--fs-body-l); line-height:1.72; color:var(--ink-2);
}
.entry-content h2,.entry-content h3,.entry-content h4{
  font-family:var(--ff-display); font-weight:400; letter-spacing:-.02em;
  color:var(--ink); margin:2.4em 0 .7em; line-height:1.15;
}
.entry-content h2{ font-size:clamp(22px,3vw,32px) }
.entry-content h3{ font-size:clamp(18px,2.4vw,24px) }
.entry-content h4{ font-size:18px }
.entry-content p{ margin:0 0 1.4em }
.entry-content p:last-child{ margin-bottom:0 }
.entry-content a{
  color:inherit; border-bottom:1px solid var(--line-2);
  transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.entry-content a:hover{ color:var(--accent); border-color:var(--accent) }
.entry-content ul,.entry-content ol{
  padding-left:1.5em; margin:0 0 1.4em;
  display:flex; flex-direction:column; gap:6px;
}
.entry-content li::marker{ color:var(--accent) }
.entry-content blockquote{
  margin:2em 0; padding:20px 24px;
  border-left:3px solid var(--accent); background:var(--bg-warm);
  border-radius:0 var(--r-3) var(--r-3) 0;
  font-size:18px; font-style:italic; color:var(--ink);
}
.entry-content blockquote p{ margin:0 }
.entry-content figure{ margin:2em 0 }
.entry-content figure img{ border-radius:var(--r-3); width:100% }
.entry-content figcaption{ font-size:13px; color:var(--muted); margin-top:8px; text-align:center }
.entry-content hr{ border:0; border-top:1px solid var(--line); margin:2.5em 0 }
.entry-content code{ font-size:.88em; background:var(--bg-warm); padding:2px 6px; border-radius:var(--r-1) }
.entry-content pre{
  background:var(--ink); color:var(--bg);
  padding:20px 24px; border-radius:var(--r-3);
  overflow-x:auto; font-size:14px; line-height:1.6;
}
.entry-content pre code{ background:transparent; padding:0; font-size:inherit }

/* ─── PAGINA 404 ────────────────────────────────────────────────────────── */
.page-404{
  display:flex; flex-direction:column; align-items:center;
  padding:clamp(80px,10vw,160px) var(--gutter);
  text-align:center;
}
.page-404__num{
  font-family:var(--ff-display); font-size:clamp(96px,18vw,200px);
  font-weight:200; letter-spacing:-.06em; line-height:.85;
  color:var(--line-2); margin:0 0 36px;
  user-select:none;
}
.page-404 .h1{ margin:0 auto 18px; max-width:14ch }
.page-404 .lead{ margin:0 auto 36px; max-width:46ch }
.page-404__actions{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center }

/* ─── SEARCH RESULTS ────────────────────────────────────────────────────── */
.search-results-page{
  max-width:820px; margin:0 auto;
  padding:clamp(48px,6vw,96px) var(--gutter) clamp(72px,8vw,120px);
}
.search-results-list{ display:flex; flex-direction:column }
.search-result{
  padding:clamp(20px,2.5vw,28px) 0;
  border-bottom:1px solid var(--line);
}
.search-result__type{
  display:block; font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); font-weight:500; margin-bottom:8px;
}
.search-result__title{
  font-family:var(--ff-display); font-size:clamp(18px,2.5vw,24px);
  font-weight:400; letter-spacing:-.015em; margin:0 0 8px; line-height:1.2;
}
.search-result__title a{ transition:color var(--dur) var(--ease) }
.search-result__title a:hover{ color:var(--accent) }
.search-result__excerpt{ font-size:15px; color:var(--ink-2); line-height:1.55 }
.search-empty{
  padding:clamp(48px,6vw,80px) 0; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:20px;
}
.search-empty .h2{ max-width:22ch; margin:0 }
.search-empty .lead{ max-width:46ch; margin:0 }

/* ─── SEARCH OVERLAY ────────────────────────────────────────────────────── */
.search-overlay{
  position:fixed; inset:0; z-index:80;
  background:color-mix(in oklab, var(--bg) 96%, transparent);
  backdrop-filter:blur(20px) saturate(1.4);
  -webkit-backdrop-filter:blur(20px) saturate(1.4);
  display:flex; flex-direction:column; align-items:center;
  padding:clamp(20px,4vw,56px) var(--gutter) clamp(32px,5vw,64px);
  opacity:0; pointer-events:none;
  transition:opacity var(--dur) var(--ease);
}
.search-overlay.is-open{ opacity:1; pointer-events:auto }

.search-overlay__head{
  width:100%; max-width:720px;
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:clamp(24px,4vw,48px);
}

.search-overlay__form{
  width:100%; max-width:720px; position:relative;
}
.search-overlay__input{
  width:100%; font:inherit;
  font-size:clamp(22px,3.5vw,44px); font-weight:300; letter-spacing:-.025em;
  background:transparent; border:0; border-bottom:1.5px solid var(--ink);
  padding:10px 52px 10px 0; color:var(--ink); outline:none; line-height:1.2;
}
.search-overlay__input::placeholder{ color:var(--muted-2) }
.search-overlay__submit{
  position:absolute; right:0; top:50%; transform:translateY(-50%);
  width:44px; height:44px; display:flex; align-items:center; justify-content:center;
  color:var(--ink); cursor:pointer;
}
.search-overlay__submit svg{ width:20px; height:20px }

.search-overlay__hints{
  margin-top:clamp(24px,3vw,40px); width:100%; max-width:720px;
}
.search-overlay__hints > p{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); font-weight:500; margin:0 0 14px;
}
.search-overlay__tags{ display:flex; flex-wrap:wrap; gap:10px }
.search-overlay__tags a{
  padding:8px 16px; border:1px solid var(--line); border-radius:999px;
  font-size:14px; color:var(--ink-2);
  transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.search-overlay__tags a:hover{ background:var(--ink); color:var(--bg); border-color:var(--ink) }

/* ─── TOAST ─────────────────────────────────────────────────────────────── */
.toast-stack{
  position:fixed; bottom:clamp(20px,3vw,32px); left:50%;
  transform:translateX(-50%);
  z-index:100; display:flex; flex-direction:column; gap:10px;
  align-items:center; pointer-events:none;
}
.toast{
  display:inline-flex; align-items:center; gap:12px;
  padding:13px 22px; border-radius:999px;
  background:var(--ink); color:var(--bg);
  font-size:14px; font-weight:500; white-space:nowrap;
  box-shadow: 0 8px 32px -8px rgba(26,26,26,.32);
  pointer-events:auto;
  opacity:0; transform:translateY(10px);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.toast.is-in{ opacity:1; transform:none }
.toast.is-out{ opacity:0; transform:translateY(-6px) }
.toast--ok{ background:var(--accent) }
.toast--err{ background:#B85C42 }

/* ─── OUT-OF-STOCK ──────────────────────────────────────────────────────── */
.product-card__oos{
  position:absolute; inset:0; z-index:3;
  border-radius:inherit;
  background:rgba(250,250,247,.72);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  display:flex; align-items:center; justify-content:center;
}
.product-card__oos span{
  padding:8px 18px; border-radius:999px;
  background:var(--bg); border:1px solid var(--line-2);
  font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:500;
}

/* ─── COOKIE BANNER ─────────────────────────────────────────────────────── */
.cookie-banner{
  position:fixed; bottom:clamp(14px,2vw,24px); left:50%;
  transform:translateX(-50%) translateY(20px);
  z-index:90; width:min(580px,calc(100vw - 32px));
  background:var(--ink); color:var(--bg);
  border-radius:var(--r-4); padding:clamp(14px,2vw,20px) clamp(18px,3vw,28px);
  display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px;
  box-shadow: 0 16px 48px -16px rgba(26,26,26,.42);
  opacity:0; pointer-events:none;
  transition: opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);
}
.cookie-banner.is-visible{
  opacity:1; transform:translateX(-50%) translateY(0); pointer-events:auto;
}
.cookie-banner__text{
  flex:1; font-size:13px; line-height:1.5;
  color:rgba(250,250,247,.8); min-width:220px; margin:0;
}
.cookie-banner__text a{
  color:var(--bg); border-bottom:1px solid rgba(250,250,247,.4);
  transition:border-color var(--dur) var(--ease);
}
.cookie-banner__text a:hover{ border-color:var(--bg) }
.cookie-banner__actions{ display:flex; gap:8px; flex-shrink:0; flex-wrap:wrap }
.cookie-banner__accept{
  padding:10px 18px; border-radius:999px;
  background:var(--bg); color:var(--ink);
  font:inherit; font-size:13px; font-weight:500; cursor:pointer; border:0;
  transition:background var(--dur) var(--ease);
}
.cookie-banner__accept:hover{ background:#fff }
.cookie-banner__decline{
  padding:10px 14px; border-radius:999px;
  background:transparent; color:rgba(250,250,247,.55);
  font:inherit; font-size:13px; cursor:pointer; border:0;
  transition:color var(--dur) var(--ease);
}
.cookie-banner__decline:hover{ color:var(--bg) }

/* ─── QUANTITÀ +/− ───────────────────────────────────────────────────────── */
.qty-wrap{
  display:inline-flex; align-items:center;
  border:1px solid var(--line); border-radius:999px;
  overflow:hidden; background:var(--bg);
  height:48px;
}
.qty-wrap .qty-btn{
  width:44px; height:100%; flex-shrink:0;
  font-size:20px; font-weight:300; line-height:1;
  color:var(--ink-2); cursor:pointer;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
  display:flex; align-items:center; justify-content:center;
}
.qty-wrap .qty-btn:hover{ background:var(--bg-warm); color:var(--ink) }
.qty-wrap .qty-btn:active{ background:var(--surface) }
.qty-wrap input.qty{
  width:44px; border:0; border-left:1px solid var(--line); border-right:1px solid var(--line);
  text-align:center; font:inherit; font-size:15px; font-variant-numeric:tabular-nums;
  color:var(--ink); background:var(--bg); -moz-appearance:textfield;
  padding:0;
}
.qty-wrap input.qty::-webkit-inner-spin-button,
.qty-wrap input.qty::-webkit-outer-spin-button{ -webkit-appearance:none }
.qty-wrap input.qty:focus{ outline:none }

/* Cart page + mini-cart: qty compatto */
.floro-cart .qty-wrap{ height:40px }
.cart-item .qty-wrap{ height:34px }
.cart-item .qty-wrap .qty-btn{ width:34px; font-size:17px }
.cart-item .qty-wrap input.qty{ width:34px; font-size:13px }

/* ─── VARIANTI PRODOTTO ──────────────────────────────────────────────────── */
table.variations{
  width:100%; border:0; border-collapse:collapse; margin-bottom:20px;
}
table.variations tr{ display:flex; flex-direction:column; gap:8px; margin-bottom:18px }
table.variations td.label{
  padding:0; width:auto;
}
table.variations td.label label{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); font-weight:500; margin:0;
}
table.variations td.value{
  padding:0; display:flex; flex-wrap:wrap; align-items:center; gap:10px;
}
.reset_variations{
  font-size:12px; color:var(--muted); text-decoration:none;
  border-bottom:1px solid var(--line); display:none;
}
.reset_variations.is-visible,
table.variations tr:has(select:not([value=""])) .reset_variations{ display:inline }

.single_variation_wrap{ margin-top:8px }
.woocommerce-variation-price .price{ font-size:20px; font-variant-numeric:tabular-nums }
.woocommerce-variation-description{ font-size:14px; color:var(--ink-2); margin:8px 0 0 }
.woocommerce-variation-add-to-cart{
  display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:20px;
}

/* Out of stock variation */
.woocommerce-variation-add-to-cart-disabled .single_add_to_cart_button{
  opacity:.4; cursor:not-allowed; pointer-events:none;
}

/* ─── STAR RATING (WC nativo) ────────────────────────────────────────────── */
.star-rating{
  display:inline-flex; align-items:center;
  overflow:hidden; position:relative; height:1em;
  font-family:star; font-size:14px; line-height:1;
  color:var(--line-2);
}
.star-rating::before{
  content:'\53\53\53\53\53';
  color:var(--line-2); letter-spacing:2px;
}
.star-rating span{
  overflow:hidden; position:absolute; top:0; left:0; height:100%;
}
.star-rating span::before{
  content:'\53\53\53\53\53';
  color:var(--accent); letter-spacing:2px;
}
/* Fallback con unicode stelle */
.star-rating{ font-family:inherit; font-size:0 }
.star-rating::before{ content:none }
.star-rating span::before{ content:none }

/* Override con stelle Unicode */
.woocommerce .star-rating{
  display:inline-flex; gap:1px; align-items:center;
  position:static; width:auto; height:auto; overflow:visible;
}
.woocommerce .star-rating::before,
.woocommerce .star-rating span{ display:none }

/* Usiamo gli pseudo-elementi dei child .star */
.woocommerce-product-rating{ display:flex; align-items:center; gap:8px; margin:0 0 18px }
.woocommerce-product-rating .woocommerce-review-link{
  font-size:12px; color:var(--muted); letter-spacing:.06em;
}

/* Rating semplificato: barra CSS come 5 stelle */
.star-rating[style*="width"]{
  display:inline-block; position:relative;
  width:70px !important; height:14px; overflow:hidden;
}
.star-rating[style*="width"]::before{
  content:"★★★★★";
  display:block; font-size:14px; line-height:1; letter-spacing:1px;
  color:var(--line-2);
}
.star-rating[style*="width"] span{
  position:absolute; top:0; left:0; height:100%; overflow:hidden;
  display:block;
}
.star-rating[style*="width"] span::before{
  content:"★★★★★";
  display:block; font-size:14px; line-height:1; letter-spacing:1px;
  color:var(--accent);
  white-space:nowrap;
}
.star-rating[style*="width"] .rating,
.star-rating[style*="width"] .max-rating{ display:none }

/* ─── ACCOUNT LOGIN ──────────────────────────────────────────────────────── */
.account-login-page{
  padding:clamp(48px,6vw,96px) 0 clamp(72px,8vw,120px);
}
.account-login__head{ margin-bottom:clamp(32px,4vw,56px) }
.account-login__title{ margin-top:12px; max-width:16ch }

.account-login__grid{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(40px,6vw,80px);
  align-items:start;
}
@media (max-width:760px){ .account-login__grid{ grid-template-columns:1fr } }
.account-login__grid--single{ grid-template-columns:1fr; max-width:520px; }

.account-login__col{
  padding:clamp(28px,3vw,40px);
  border:1px solid var(--line); border-radius:var(--r-4);
}
.account-login__col--register{ background:var(--bg-warm); border-color:transparent }
.account-login__subtitle{
  font-family:var(--ff-display); font-size:clamp(18px,2.5vw,24px);
  font-weight:400; letter-spacing:-.02em; margin:0 0 24px;
}

.account-form{ display:flex; flex-direction:column; gap:16px }
.account-form__footer{
  display:flex; justify-content:space-between; align-items:center;
  gap:12px; flex-wrap:wrap; margin-top:4px;
}
.account-form input[type="text"],
.account-form input[type="email"],
.account-form input[type="password"]{
  font:inherit; color:var(--ink); background:var(--bg);
  border:1px solid var(--line); border-radius:var(--r-3);
  padding:13px 16px; width:100%;
  transition:border-color var(--dur) var(--ease);
}
.account-form input:focus{ outline:none; border-color:var(--ink) }

/* ─── TESTIMONIANZE ──────────────────────────────────────────────────────── */
.testimonials__grid{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:clamp(20px,3vw,40px);
}
@media (max-width:1024px){ .testimonials__grid{ grid-template-columns:1fr 1fr } }
@media (max-width:560px){ .testimonials__grid{ grid-template-columns:1fr } }

.testimonial{
  display:flex; flex-direction:column; gap:20px;
  padding:clamp(24px,3vw,36px);
  border:1px solid var(--line); border-radius:var(--r-4);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.testimonial:hover{ border-color:var(--muted-2); box-shadow:var(--shadow-2) }

.testimonial__stars{
  display:flex; gap:3px; color:var(--accent);
}
.testimonial__stars svg{ width:14px; height:14px }

.testimonial__text{
  margin:0; flex:1;
  font-size:15px; color:var(--ink-2); line-height:1.65; font-style:normal;
}
.testimonial__text p{ margin:0 }

.testimonial__author{
  display:flex; flex-direction:column; gap:2px;
  padding-top:18px; border-top:1px solid var(--line);
}
.testimonial__name{ font-size:14px; font-weight:500; color:var(--ink) }
.testimonial__city{ font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted) }

/* ─── GUTENBERG BLOCKS — frontend ───────────────────────────────────────── */

/* Allineamenti wide / full (richiede useRootPaddingAwareAlignments in theme.json) */
.entry-content .alignwide{
  max-width:var(--max);
  margin-left:auto; margin-right:auto;
}
.entry-content .alignfull{
  max-width:100vw;
  margin-left:calc(-1 * var(--gutter));
  margin-right:calc(-1 * var(--gutter));
}
.wrap .entry-content .alignfull,
.page-content .alignfull{
  margin-left:calc(-1 * var(--gutter));
  margin-right:calc(-1 * var(--gutter));
}

/* Bottone WP (wp-block-button) → stile Floro */
.wp-block-button .wp-block-button__link{
  background:var(--accent); color:var(--accent-ink);
  border-radius:999px; padding:14px 22px;
  font-size:14px; font-weight:500; font-family:inherit;
  text-decoration:none; display:inline-flex; align-items:center; gap:8px;
  border:1px solid transparent;
  transition: background var(--dur) var(--ease);
}
.wp-block-button .wp-block-button__link:hover{
  background:color-mix(in oklab, var(--accent) 88%, black);
}
.wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent; color:var(--ink); border-color:var(--ink);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover{
  background:var(--ink); color:var(--bg);
}
.wp-block-buttons{ gap:12px }

/* Immagine */
.wp-block-image{ margin:2em 0 }
.wp-block-image img{ border-radius:var(--r-3); max-width:100% }
.wp-block-image figcaption{
  font-size:13px; color:var(--muted); text-align:center; margin-top:8px;
}

/* Galleria */
.wp-block-gallery{
  margin:2em 0;
}
.wp-block-gallery figure img{ border-radius:var(--r-2) }

/* Citazione */
.wp-block-quote{
  margin:2em 0; padding:20px 24px;
  border-left:3px solid var(--accent); background:var(--bg-warm);
  border-radius:0 var(--r-3) var(--r-3) 0;
  font-style:normal;
}
.wp-block-quote p{ font-size:18px; color:var(--ink); margin:0 }
.wp-block-quote cite{ font-size:13px; color:var(--muted); font-style:normal; margin-top:10px; display:block }

/* Pullquote */
.wp-block-pullquote{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:2em 0; margin:2.5em 0;
  text-align:center;
}
.wp-block-pullquote blockquote{ border:0; background:transparent; padding:0; margin:0 }
.wp-block-pullquote p{ font-size:clamp(20px,2.5vw,28px); font-weight:300; letter-spacing:-.02em; color:var(--ink) }
.wp-block-pullquote cite{ font-size:13px; color:var(--muted); font-style:normal }

/* Separatore */
.wp-block-separator{
  border:0; border-top:1px solid var(--line); margin:2.5em auto;
}
.wp-block-separator.is-style-wide{ max-width:100% }
.wp-block-separator.is-style-dots{
  border:0; text-align:center; line-height:1;
}
.wp-block-separator.is-style-dots::before{
  content:"· · ·"; font-size:20px; color:var(--muted-2); letter-spacing:.4em;
}

/* Codice */
.wp-block-code{
  background:var(--ink); color:var(--bg);
  padding:20px 24px; border-radius:var(--r-3);
  overflow-x:auto; font-size:14px; line-height:1.6;
}
.wp-block-code code{ font-size:inherit }
.wp-block-preformatted{ background:var(--bg-warm); padding:16px 20px; border-radius:var(--r-2); font-size:14px }

/* Codice inline */
.wp-block-paragraph code{
  font-size:.88em; background:var(--bg-warm); padding:2px 6px; border-radius:var(--r-1);
}

/* Colonne */
.wp-block-columns{ gap:clamp(20px,3vw,48px); margin:2em 0 }
.wp-block-column{ min-width:0 }

/* Tabella */
.wp-block-table table{ border-collapse:collapse; width:100%; font-size:15px }
.wp-block-table th{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); font-weight:500; padding:10px 12px;
  border-bottom:1px solid var(--line); text-align:left;
}
.wp-block-table td{
  padding:12px; border-bottom:1px solid var(--line); color:var(--ink-2);
}
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) td{
  background:var(--bg-warm);
}

/* Cover */
.wp-block-cover{
  border-radius:var(--r-3); overflow:hidden; min-height:280px;
}
.wp-block-cover__inner-container{ padding:clamp(24px,4vw,48px) }

/* Embed (video, iframe) */
.wp-block-embed{ margin:2em 0 }
.wp-block-embed figcaption{ font-size:13px; color:var(--muted); margin-top:8px }

/* Spacer */
.wp-block-spacer{ display:block }

/* Media e testo */
.wp-block-media-text{ gap:clamp(24px,4vw,48px) }
.wp-block-media-text img{ border-radius:var(--r-3) }

/* ─── CONTATTI ───────────────────────────────────────────────────────────── */
.contact-hero{ padding:clamp(56px,7vw,112px) 0 clamp(8px,2vw,24px) }
.contact-hero__title{ margin:18px 0 22px }

.contact-grid{
  display:grid; grid-template-columns:minmax(280px,360px) 1fr;
  gap:clamp(32px,5vw,72px); align-items:start;
}
@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr } }

.contact-info{ display:flex; flex-direction:column; gap:12px }
.contact-card{
  display:flex; align-items:flex-start; gap:14px;
  padding:18px 20px; border:1px solid var(--line); border-radius:var(--r-3);
  background:var(--bg); color:var(--ink); text-decoration:none;
  transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
a.contact-card:hover{ border-color:var(--ink); background:var(--bg-warm) }
.contact-card--static{ cursor:default }
.contact-card__icon{ flex:0 0 auto; width:22px; height:22px; color:var(--accent); margin-top:2px }
.contact-card__icon svg{ width:100%; height:100%; display:block }
.contact-card__body{ display:flex; flex-direction:column; gap:3px; min-width:0 }
.contact-card__label{
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); font-weight:500;
}
.contact-card__value{ font-size:15px; color:var(--ink); line-height:1.45; word-break:break-word }

.contact-social{
  display:flex; flex-direction:column; gap:10px;
  padding:18px 20px; border-top:1px solid var(--line); margin-top:4px;
}
.contact-social__links{ display:flex; gap:18px }

.contact-form-wrap{ max-width:640px }
.contact-form-wrap .booking-form{ margin-top:24px }

/* ─── HOME PRODUCTS ──────────────────────────────────────────────────────── */
.home-products{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:clamp(16px,2.5vw,32px); list-style:none; padding:0; margin:0;
  margin-top:clamp(32px,5vw,56px);
}
@media (max-width:880px){ .home-products{ grid-template-columns:repeat(2,1fr) } }
@media (max-width:480px){ .home-products{ grid-template-columns:1fr } }

/* ─── SEZIONI SCURE (stacchi al nero) ────────────────────────────────────── */
.section--dark{
  background:var(--ink-dark, #0A3138);
  color:#EAF0EF;
  position:relative;
}
.section--dark .eyebrow{ color:var(--gold) }
.section--dark .h2{ color:#FFF4F1 }
.section__head--dark{ border-bottom-color:rgba(255,255,255,.12) }
.btn--ghost-on-dark{ color:#FFF4F1 }
.btn--ghost-on-dark:hover{ color:var(--gold) }
.btn--ghost-on-dark .arr{ transition:transform var(--dur) var(--ease) }
.btn--ghost-on-dark:hover .arr{ transform:translateX(4px) }

/* ─── GALLERIA MASONRY ───────────────────────────────────────────────────── */
.masonry{
  columns:4 240px;
  column-gap:clamp(12px,1.6vw,20px);
  margin-top:clamp(32px,5vw,56px);
}
.masonry__item{
  display:block;
  break-inside:avoid;
  margin:0 0 clamp(12px,1.6vw,20px);
  border-radius:var(--r-3);
  overflow:hidden;
  background:#1A1A17;
  position:relative;
  will-change:transform;
}
.masonry__img{
  display:block; width:100%; height:auto;
  transition:transform var(--dur-slow) var(--ease), filter var(--dur) var(--ease);
  filter:saturate(.96);
}
.masonry__item::after{
  content:""; position:absolute; inset:0;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
  border-radius:inherit; pointer-events:none;
}
.masonry__item:hover .masonry__img{ transform:scale(1.05); filter:saturate(1.05) }
@media (max-width:900px){ .masonry{ columns:2 160px } }
@media (max-width:520px){ .masonry{ columns:2 130px; column-gap:12px } }

/* ─── MANIFESTO (stacco scuro editoriale) ────────────────────────────────── */
.manifesto{ text-align:center }
.manifesto .eyebrow{ display:block; margin-bottom:clamp(20px,3vw,32px) }
.manifesto__lead{
  font-family:var(--ff-display);
  font-weight:300; letter-spacing:-.02em;
  font-size:clamp(28px,4.6vw,60px);
  line-height:1.12; color:#FFF4F1;
  max-width:20ch; margin:0 auto;
}
.manifesto__lead em{ font-style:italic; color:var(--accent-soft) }
.manifesto__cta{ margin-top:clamp(32px,4vw,48px) }

/* ─── REVEAL ON SCROLL (progressive enhancement via GSAP) ────────────────── */
.js-gsap [data-reveal]{ opacity:0; will-change:transform,opacity }
@media (prefers-reduced-motion: reduce){
  .js-gsap [data-reveal]{ opacity:1 !important; transform:none !important }
}

