/*
Theme Name: Castello di Cantone e Vecchia Masseria
Description: Il tema dei due siti, dal Figma di Castello di Cantone (tavola 1920 px). Stessa struttura; logo e colori cambiano col marchio del dominio (classe marchio-cantone / marchio-masseria sul body).
Version: 0.3.0
Text Domain: cantone-masseria
*/

/* ---------- Token: i valori del Figma. --cm-vw è il px della tavola da 1920, così le misure scalano ---------- */
:root {
  --cm-vw: calc(100vw / 1920);
  --cm-nero: #000000;
  --cm-bianco: #ffffff;
  --cm-oro: #c69c6d;
  --cm-grigio: #707070;
  --cm-titoli: "Sentient", "Sentient Variable", Georgia, serif;
  --cm-testo: "Plus Jakarta Sans", system-ui, sans-serif;
  /* H1 83.786/100.543 · H2 50/60 · H3 46/52 · body 20/24 · mini 18/21.6 · label 17.4/20.9 semibold · cta Sentient Medium 20 */
  --cm-h1: clamp(40px, calc(83.786 * var(--cm-vw)), 83.786px);
  --cm-h1-lh: 1.2;
  --cm-h2: clamp(30px, calc(50 * var(--cm-vw)), 50px);
  --cm-h3: clamp(26px, calc(46 * var(--cm-vw)), 46px);
  --cm-body: clamp(17px, calc(20 * var(--cm-vw)), 20px);
  --cm-mini: clamp(15px, calc(18 * var(--cm-vw)), 18px);
  --cm-label: clamp(13px, calc(17.406 * var(--cm-vw)), 17.406px);
  --cm-cta: clamp(17px, calc(20 * var(--cm-vw)), 20px);
  --cm-nav: clamp(18px, calc(28 * var(--cm-vw)), 28px);
  --cm-cornice: clamp(12px, calc(46 * var(--cm-vw)), 46px);   /* il «frame nero» attorno alla testa */
  --cm-margine: clamp(16px, calc(122 * var(--cm-vw)), 122px); /* il margine del piè di pagina e dei blocchi */
  --cm-sfondo: var(--cm-nero);
  --cm-inchiostro: var(--cm-bianco);
}
body.cm-chiaro { --cm-sfondo: var(--cm-bianco); --cm-inchiostro: var(--cm-nero); }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--cm-sfondo); color: var(--cm-inchiostro); font-family: var(--cm-testo); font-size: var(--cm-body); line-height: 1.2; font-weight: 400; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3, .cm-h3 { font-family: var(--cm-titoli); font-weight: 400; margin: 0; }
h1 { font-size: var(--cm-h1); line-height: var(--cm-h1-lh); }
h2 { font-size: var(--cm-h2); line-height: 1.2; }
h3, .cm-h3 { font-size: var(--cm-h3); line-height: 1.13; }
p { margin: 0; }
em, .cm-oro { color: var(--cm-oro); font-style: normal; }
.cm-salta { position: absolute; left: -999px; top: 0; background: var(--cm-oro); color: var(--cm-nero); padding: 8px 12px; z-index: 100; }
.cm-salta:focus { left: 8px; }
.cm-svg { display: block; width: 100%; height: auto; }
.cm-finestrelle { display: block; width: clamp(40px, calc(54.5 * var(--cm-vw)), 54.5px); }
.cm-etichetta { font-family: var(--cm-testo); font-weight: 600; font-size: var(--cm-label); line-height: 1.2; text-transform: uppercase; color: var(--cm-inchiostro); }
.cm-etichetta--oro { color: var(--cm-oro); }
.cm-mini { font-size: var(--cm-mini); line-height: 1.2; }
.cm-cta { display: inline-block; font-family: var(--cm-titoli); font-weight: 500; font-size: var(--cm-cta); line-height: 1.23; color: var(--cm-inchiostro); text-decoration: none; padding: 7px 0; border-top: 2px solid var(--cm-oro); border-bottom: 2px solid var(--cm-oro); background: linear-gradient(var(--cm-sfondo), var(--cm-sfondo)) left top / 100% 2px no-repeat; }
.cm-cta { border-image: none; }
/* Nel Figma le due righe d'oro sono larghe 55 px, non quanto il testo. */
.cm-cta { position: relative; border: 0; padding: 7px 0; }
.cm-cta::before, .cm-cta::after { content: ""; position: absolute; left: 0; width: 55px; height: 2px; background: var(--cm-oro); }
.cm-cta::before { top: 0; }
.cm-cta::after { bottom: 0; }
.cm-cta:hover { color: var(--cm-oro); }

/* ---------- Testata: logo 222×97 a (75,66), burger 45×43 a (1798,88) ---------- */
.cm-testata { position: absolute; inset: 0 0 auto 0; z-index: 20; display: flex; justify-content: space-between; align-items: flex-start; padding: clamp(18px, calc(66 * var(--cm-vw)), 66px) clamp(18px, calc(78 * var(--cm-vw)), 78px) 0 clamp(18px, calc(75 * var(--cm-vw)), 75px); pointer-events: none; }
.cm-testata > * { pointer-events: auto; }
.cm-testata__logo .cm-logo { width: clamp(120px, calc(222 * var(--cm-vw)), 222px); height: auto; }
.cm-burger { background: none; border: 0; padding: 0; cursor: pointer; width: clamp(32px, calc(45 * var(--cm-vw)), 45px); margin-top: clamp(0px, calc(22 * var(--cm-vw)), 22px); }
.cm-burger .cm-svg { width: 100%; }

/* La linguetta SHOP: 183×49 d'oro sul bordo destro, a 475 px dall'alto */
.cm-linguetta { position: fixed; right: 0; top: clamp(200px, calc(475 * var(--cm-vw)), 475px); z-index: 19; background: var(--cm-oro); color: var(--cm-nero); font-weight: 600; font-size: clamp(15px, calc(21 * var(--cm-vw)), 21px); line-height: 1.2; padding: clamp(8px, calc(12 * var(--cm-vw)), 12px) clamp(14px, calc(20 * var(--cm-vw)), 20px); min-width: clamp(90px, calc(183 * var(--cm-vw)), 183px); text-decoration: none; }
.cm-linguetta__conto { font-weight: 400; margin-left: 6px; }

/* Il menu a tutto schermo: nero, tre archi d'oro (2023×746 a y=230), voci Sentient 50 centrate */
.cm-menu { position: fixed; inset: 0; z-index: 30; background: var(--cm-nero); color: var(--cm-bianco); overflow: hidden; }
.cm-menu[hidden] { display: none; }
.cm-menu__testa { position: absolute; inset: 0 0 auto 0; display: flex; justify-content: space-between; align-items: flex-start; padding: clamp(18px, calc(66 * var(--cm-vw)), 66px) clamp(18px, calc(78 * var(--cm-vw)), 78px) 0 clamp(18px, calc(75 * var(--cm-vw)), 75px); }
.cm-menu__chiudi { background: none; border: 0; padding: 0; cursor: pointer; width: clamp(32px, calc(46 * var(--cm-vw)), 46px); margin-top: clamp(0px, calc(10 * var(--cm-vw)), 10px); }
.cm-menu__archi { position: absolute; left: calc(-52 * var(--cm-vw)); top: calc(230 * var(--cm-vw)); width: calc(2024 * var(--cm-vw)); height: auto; }
.cm-menu__voci { position: absolute; inset: 0; display: grid; place-items: center; }
.cm-menu__lista { list-style: none; margin: 0; padding: 0; text-align: center; font-family: var(--cm-titoli); font-size: var(--cm-h2); line-height: 1.2; }
.cm-menu__lista a { text-decoration: none; }
.cm-menu__lista .attiva a, .cm-menu__lista a:hover { color: var(--cm-oro); }
body.cm-menu-aperto { overflow: hidden; }
@media (max-width: 760px) { .cm-menu__archi { display: none; } }

/* ---------- Testa di pagina: immagine 1920×1080 dentro la cornice nera, titolo centrato ---------- */
.cm-testa { position: relative; background: var(--cm-nero); color: var(--cm-bianco); padding: var(--cm-cornice); }
.cm-testa__dentro { position: relative; min-height: calc(1080 * var(--cm-vw) - 2 * var(--cm-cornice)); display: grid; grid-template-rows: 1fr auto; overflow: hidden; }
.cm-testa__foto, .cm-testa__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cm-testa__dentro::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.07) 3.5%, rgba(0,0,0,.7) 60%); mix-blend-mode: multiply; pointer-events: none; }
.cm-testa__testo { position: relative; z-index: 2; text-align: center; align-self: center; padding: clamp(120px, calc(300 * var(--cm-vw)), 300px) 16px clamp(32px, calc(60 * var(--cm-vw)), 60px); }
.cm-testa__testo .cm-finestrelle { margin: 0 auto clamp(14px, calc(26 * var(--cm-vw)), 26px); }
.cm-testa__titolo { color: var(--cm-bianco); }
.cm-testa__sotto-titolo { max-width: 512px; margin: clamp(16px, calc(26 * var(--cm-vw)), 26px) auto 0; font-size: var(--cm-body); line-height: 1.2; }
.cm-testa__azione { margin-top: clamp(20px, calc(40 * var(--cm-vw)), 40px); }
/* La barra di navigazione in fondo alla testa: Sentient 28, voce attiva con la sottolineatura d'oro (90×14) */
.cm-testa__nav, .cm-testa__sotto { position: relative; z-index: 2; padding: 0 16px clamp(28px, calc(66 * var(--cm-vw)), 66px); }
.cm-testa__nav ul, .cm-testa__sotto ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(14px, calc(50 * var(--cm-vw)), 50px); font-family: var(--cm-titoli); font-size: var(--cm-nav); line-height: 1.2; }
.cm-testa__nav a, .cm-testa__sotto a { text-decoration: none; display: inline-block; padding-bottom: 14px; position: relative; }
.cm-testa__nav .attiva a::after, .cm-testa__sotto .attiva a::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 90px; height: 14px; transform: translateX(-50%); background: url("assets/img/sottolinea.svg") center / contain no-repeat; }
/* La testa corta delle sottopagine (La nostra esperienza, I vigneti…): solo il titolo a y=272 e le finestrelle a y=400 */
.cm-testa--corta { padding-bottom: 0; }
.cm-testa--corta .cm-testa__dentro { min-height: 0; }
.cm-testa--corta .cm-testa__dentro::after { display: none; }
.cm-testa--corta .cm-testa__testo { padding-top: clamp(110px, calc(226 * var(--cm-vw)), 226px); padding-bottom: 0; }
.cm-testa--corta .cm-testa__testo .cm-finestrelle { margin: clamp(16px, calc(28 * var(--cm-vw)), 28px) auto 0; }
/* La testa chiara (vini, contatti): bianca con la cornice nera, titolo nero a y=220 */
body.cm-chiaro .cm-testa { background: var(--cm-bianco); color: var(--cm-nero); border: var(--cm-cornice) solid var(--cm-nero); padding: 0; }
body.cm-chiaro .cm-testa__titolo { color: var(--cm-nero); }
body.cm-chiaro .cm-testa--corta .cm-testa__testo { padding-top: clamp(100px, calc(174 * var(--cm-vw)), 174px); padding-bottom: clamp(40px, calc(90 * var(--cm-vw)), 90px); }

/* ---------- Home: «La nostra essenza», immagine 1855×992 a (42,1035) con velo nero al 50 % ---------- */
.cm-essenza { position: relative; margin: 0 var(--cm-cornice); min-height: calc(992 * var(--cm-vw)); color: var(--cm-bianco); display: grid; grid-template-columns: 1fr 1fr; align-items: center; overflow: hidden; }
.cm-essenza__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cm-essenza::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.5); mix-blend-mode: multiply; }
.cm-essenza__sinistra, .cm-essenza__destra { position: relative; z-index: 1; }
.cm-essenza__sinistra { padding: clamp(40px, calc(300 * var(--cm-vw)), 300px) 16px clamp(40px, calc(130 * var(--cm-vw)), 130px) clamp(16px, calc(155 * var(--cm-vw)), 155px); }
.cm-essenza__sinistra .cm-etichetta { margin: 0 0 clamp(20px, calc(46 * var(--cm-vw)), 46px) clamp(0px, calc(7 * var(--cm-vw)), 7px); }
.cm-essenza__sinistra .cm-h3 { max-width: calc(607 * var(--cm-vw) + 80px); }
.cm-essenza__destra { padding: clamp(24px, calc(300 * var(--cm-vw)), 300px) 16px clamp(40px, calc(130 * var(--cm-vw)), 130px) clamp(16px, calc(300 * var(--cm-vw)), 300px); max-width: calc(510 * var(--cm-vw) + 320px); }
.cm-essenza__destra .cm-finestrelle { margin-bottom: clamp(24px, calc(45 * var(--cm-vw)), 45px); }
.cm-essenza__destra p + p { margin-top: 1.2em; }
@media (max-width: 760px) { .cm-essenza { grid-template-columns: 1fr; margin: 0; } .cm-essenza__sinistra, .cm-essenza__destra { padding: 32px 16px; } }

/* ---------- I blocchi delle pagine (il contenuto delle pagine usa queste classi) ---------- */
.cm-contenuto { padding-bottom: clamp(48px, calc(120 * var(--cm-vw)), 120px); }
.cm-contenuto > * + * { margin-top: clamp(40px, calc(120 * var(--cm-vw)), 120px); }
/* Blocco di testo: H3 largo 874 a sinistra (x=322), o centrato (978) */
.cm-blocco { padding: 0 16px; margin-left: calc(322 * var(--cm-vw) - 16px); max-width: calc(874 * var(--cm-vw) + 32px); }
.cm-blocco--centro { margin-left: auto; margin-right: auto; max-width: calc(978 * var(--cm-vw) + 32px); text-align: center; }
.cm-blocco .cm-finestrelle { margin-bottom: clamp(24px, calc(55 * var(--cm-vw)), 55px); }
.cm-blocco--centro .cm-finestrelle { margin-left: auto; margin-right: auto; }
.cm-blocco .cm-azione { margin-top: clamp(24px, calc(66 * var(--cm-vw)), 66px); }
.cm-blocco .cm-etichetta { margin-bottom: clamp(24px, calc(70 * var(--cm-vw)), 70px); }
.cm-blocco p.cm-body + p.cm-body { margin-top: 1.2em; }
/* Foto: larga 1242 centrata; sinistra 1028 (x=64) o 951 (x=47); destra 534 (x=1199); piena 1930 */
.cm-foto { margin: 0; position: relative; }
.cm-foto img { width: 100%; height: auto; object-fit: cover; }
.cm-foto::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(180deg, rgba(0,0,0,0), var(--cm-nero)); pointer-events: none; }
.cm-foto--larga { width: calc(1242 * var(--cm-vw)); margin-left: auto; margin-right: auto; }
.cm-foto--larga img { aspect-ratio: 1242 / 778; }
.cm-foto--sinistra { width: calc(1028 * var(--cm-vw)); margin-left: calc(64 * var(--cm-vw)); }
.cm-foto--sinistra img { aspect-ratio: 1028 / 685; }
.cm-foto--piena { width: 100%; }
.cm-foto--piena img { aspect-ratio: 1930 / 882; }
.cm-foto--piena::after { inset: 0; background: rgba(0,0,0,.35); }
/* Riga: a destra (x=1269 o 1203) finestrelle e testo largo 448 */
.cm-riga { display: grid; grid-template-columns: 1fr calc(448 * var(--cm-vw) + 100px); gap: 32px; padding: 0 16px; }
.cm-riga__testo { padding-right: calc(170 * var(--cm-vw)); }
.cm-riga__testo .cm-finestrelle { margin-bottom: clamp(24px, calc(45 * var(--cm-vw)), 45px); }
.cm-riga__testo p + p { margin-top: 1.2em; }
.cm-riga__testo .cm-azione { margin-top: clamp(24px, calc(50 * var(--cm-vw)), 50px); }
/* Due colonne: etichetta + H3 a sinistra (x=288, 687), foto a destra (534×802) */
.cm-due { display: grid; grid-template-columns: 1fr calc(534 * var(--cm-vw)); gap: clamp(24px, calc(200 * var(--cm-vw)), 200px); align-items: start; padding: 0 calc(197 * var(--cm-vw)) 0 calc(288 * var(--cm-vw)); }
.cm-due .cm-etichetta { margin-bottom: clamp(24px, calc(70 * var(--cm-vw)), 70px); }
.cm-due .cm-foto img { aspect-ratio: 534 / 802; }
/* Scena a tutto schermo (Esperienze): foto di sfondo con velo 70 %, H3 a sinistra (288, 693), colonna destra 448 (x=1269) */
.cm-scena { position: relative; min-height: calc(1180 * var(--cm-vw)); display: grid; grid-template-columns: calc(693 * var(--cm-vw)) calc(448 * var(--cm-vw)); justify-content: space-between; align-content: center; gap: 32px; padding: clamp(48px, calc(140 * var(--cm-vw)), 140px) calc(190 * var(--cm-vw)) clamp(48px, calc(140 * var(--cm-vw)), 140px) calc(288 * var(--cm-vw)); color: var(--cm-bianco); background: var(--cm-sfondo-scena, var(--cm-nero)) center / cover no-repeat; }
.cm-scena::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.7); mix-blend-mode: multiply; }
.cm-scena > * { position: relative; }
.cm-scena__destra { align-self: end; }
.cm-scena__destra .cm-finestrelle { margin-bottom: clamp(24px, calc(66 * var(--cm-vw)), 66px); }
.cm-scena__destra .cm-azione { margin-top: clamp(24px, calc(50 * var(--cm-vw)), 50px); }
.cm-contenuto > .cm-scena + .cm-scena { margin-top: 0; }
@media (max-width: 900px) {
  .cm-blocco { margin-left: 0; max-width: none; }
  .cm-riga, .cm-due, .cm-scena { grid-template-columns: 1fr; padding: 32px 16px; }
  .cm-riga__testo { padding-right: 0; }
  .cm-foto--larga, .cm-foto--sinistra { width: auto; margin-left: 16px; margin-right: 16px; }
  .cm-scena { min-height: 0; }
}

/* ---------- Vini: griglia 2×2 di foto scure 924×561, nome Sentient 46 oro in basso a sinistra (x+40, y+450) ---------- */
.cm-vini { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: var(--cm-nero); padding: 0 2px 2px; }
.cm-vino { position: relative; display: block; aspect-ratio: 924 / 561; background: #0b0b0b; overflow: hidden; text-decoration: none; }
.cm-vino__scena { width: 100%; height: 100%; object-fit: cover; }
.cm-vino__bottiglia { position: absolute; inset: 8% 0; display: grid; place-items: center; }
.cm-vino__bottiglia img { height: 100%; width: auto; object-fit: contain; }
.cm-vino__nome { position: absolute; left: calc(40 * var(--cm-vw)); bottom: calc(50 * var(--cm-vw)); font-family: var(--cm-titoli); font-size: var(--cm-h3); line-height: 1.13; color: var(--cm-oro); text-shadow: 0 2px 12px rgba(0,0,0,.6); }
@media (max-width: 760px) { .cm-vini { grid-template-columns: 1fr; } }

/* ---------- Scheda del vino: bottiglia 537×1200 a (224,207); titolo oro a x=883; etichette oro; testi 20 neri larghi 628 ---------- */
.cm-scheda { background: var(--cm-bianco); color: var(--cm-nero); border: var(--cm-cornice) solid var(--cm-nero); border-bottom: 0; display: grid; grid-template-columns: calc(660 * var(--cm-vw)) 1fr; gap: 0 clamp(24px, calc(130 * var(--cm-vw)), 130px); padding: clamp(100px, calc(207 * var(--cm-vw)), 207px) clamp(16px, calc(240 * var(--cm-vw)), 240px) clamp(48px, calc(120 * var(--cm-vw)), 120px) clamp(16px, calc(224 * var(--cm-vw)), 224px); }
.cm-scheda__foto { position: sticky; top: 24px; }
.cm-scheda__foto img, .cm-scheda__foto .woocommerce-product-gallery__image img { width: 100%; max-height: calc(1200 * var(--cm-vw)); object-fit: contain; }
.cm-scheda__foto .flex-control-thumbs { display: flex; gap: 8px; list-style: none; padding: 0; margin: 12px 0 0; }
.cm-scheda__foto .flex-control-thumbs img { width: 56px; }
.cm-scheda__titolo { color: var(--cm-oro); max-width: calc(671 * var(--cm-vw) + 60px); margin-top: clamp(0px, calc(118 * var(--cm-vw)), 118px); }
.cm-scheda__denominazione { margin-top: 12px; }
.cm-scheda__testi { margin-top: clamp(32px, calc(100 * var(--cm-vw)), 100px); max-width: calc(654 * var(--cm-vw) + 40px); }
.cm-scheda__testi .cm-etichetta { margin-bottom: 17px; }
.cm-scheda__testi .cm-etichetta + p + .cm-etichetta, .cm-scheda__testi p + .cm-etichetta { margin-top: clamp(28px, calc(70 * var(--cm-vw)), 70px); }
.cm-scheda__testi p { line-height: 1.2; white-space: pre-line; }
.cm-scheda__acquisto { margin-top: clamp(32px, calc(70 * var(--cm-vw)), 70px); }
.cm-scheda__prezzo { font-family: var(--cm-titoli); font-size: var(--cm-h3); margin-bottom: 20px; }
.cm-scheda__nota { font-size: var(--cm-mini); color: var(--cm-grigio); margin-top: 16px; }
.cm-scheda__ungulus { margin-top: 24px; }
.cm-scheda__tecnica { margin-top: clamp(32px, calc(70 * var(--cm-vw)), 70px); display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px 32px; }
.cm-scheda__tecnica div { border-top: 1px solid rgba(0,0,0,.15); padding-top: 10px; }
.cm-scheda__tecnica dt { font-size: var(--cm-label); font-weight: 600; text-transform: uppercase; color: var(--cm-oro); }
.cm-scheda__tecnica dd { margin: 6px 0 0; }
.cm-scheda__pdf { margin-top: 24px; }
.cm-scheda .cm-cta { color: var(--cm-nero); }
@media (max-width: 900px) { .cm-scheda { grid-template-columns: 1fr; padding: 100px 16px 48px; } .cm-scheda__foto { position: static; } }

/* Il modulo d'acquisto di WooCommerce dentro la scheda */
.cm-scheda__acquisto table.variations { border: 0; margin: 0 0 16px; }
.cm-scheda__acquisto table.variations td, .cm-scheda__acquisto table.variations th { border: 0; padding: 4px 0; vertical-align: middle; }
.cm-scheda__acquisto table.variations th.label { padding-right: 16px; font-size: var(--cm-label); font-weight: 600; text-transform: uppercase; color: var(--cm-oro); }
.cm-scheda__acquisto select, .cm-scheda__acquisto input.qty, .cm-woo select, .cm-woo input[type="text"], .cm-woo input[type="email"], .cm-woo input[type="tel"], .cm-woo input[type="password"], .cm-woo input[type="number"], .cm-woo textarea { font: inherit; font-size: var(--cm-mini); padding: 10px 12px; border: 1px solid var(--cm-nero); background: var(--cm-bianco); border-radius: 0; color: var(--cm-nero); }
.cm-scheda__acquisto .reset_variations { display: none !important; }
.cm-scheda__acquisto .woocommerce-variation-price { display: none; }
.cm-scheda__acquisto .woocommerce-variation-add-to-cart { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.cm-scheda__acquisto input.qty { width: 72px; }
.cm-bottone, .cm-scheda__acquisto button.single_add_to_cart_button, .cm-woo button.button, .cm-woo .button, .cm-woo a.button, .cm-woo button[type="submit"] { display: inline-block; background: var(--cm-oro) !important; color: var(--cm-nero) !important; font-family: var(--cm-testo); font-weight: 600 !important; font-size: var(--cm-label) !important; text-transform: uppercase; line-height: 1.2; padding: 14px 24px !important; border: 0 !important; border-radius: 0 !important; cursor: pointer; text-decoration: none; }
.cm-bottone:hover, .cm-scheda__acquisto button.single_add_to_cart_button:hover, .cm-woo .button:hover, .cm-woo button[type="submit"]:hover { background: var(--cm-nero) !important; color: var(--cm-bianco) !important; }

/* ---------- Contatti: tre archi 1417×558 a (250,388) ---------- */
.cm-contatti { background: var(--cm-bianco); color: var(--cm-nero); border: var(--cm-cornice) solid var(--cm-nero); padding: clamp(100px, calc(223 * var(--cm-vw)), 223px) 16px clamp(48px, calc(130 * var(--cm-vw)), 130px); text-align: center; }
.cm-contatti h1 { color: var(--cm-nero); }
.cm-contatti__archi { position: relative; width: calc(1417 * var(--cm-vw)); max-width: 100%; margin: clamp(40px, calc(65 * var(--cm-vw)), 65px) auto 0; }
.cm-contatti__archi > .cm-svg { width: 100%; height: auto; }
.cm-contatti__colonne { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(103 * var(--cm-vw)); align-items: start; padding-top: 36%; }
.cm-contatti__colonne .cm-etichetta { margin-bottom: 17px; }
.cm-contatti__colonne .cm-etichetta + .cm-mini + .cm-etichetta { margin-top: clamp(24px, calc(60 * var(--cm-vw)), 60px); }
.cm-contatti__colonne a { text-decoration: none; }
@media (max-width: 760px) { .cm-contatti__archi > .cm-svg { display: none; } .cm-contatti__colonne { position: static; grid-template-columns: 1fr; gap: 40px; padding-top: 0; } }

/* ---------- Piè di pagina: 1072 alto; sinistra nera 839 (menu Sentient 46), destra bianca (H2 50, link legali) ---------- */
.cm-piede { display: grid; grid-template-columns: calc(839 * var(--cm-vw)) 1fr; min-height: calc(1072 * var(--cm-vw)); background: var(--cm-bianco); color: var(--cm-nero); }
.cm-piede__sinistra { background: var(--cm-nero); color: var(--cm-bianco); padding: clamp(48px, calc(355 * var(--cm-vw)), 355px) 16px clamp(32px, calc(50 * var(--cm-vw)), 50px) var(--cm-margine); display: grid; grid-template-rows: auto auto 1fr auto; }
.cm-piede__menu { list-style: none; margin: 0; padding: 0; font-family: var(--cm-titoli); font-size: var(--cm-h3); line-height: 1.13; }
.cm-piede__menu a { text-decoration: none; }
.cm-piede__menu a:hover, .cm-piede__menu .attiva a { color: var(--cm-oro); }
.cm-piede__finestrelle { margin: clamp(10px, calc(12 * var(--cm-vw)), 12px) 0 clamp(16px, calc(26 * var(--cm-vw)), 26px); }
.cm-piede__indirizzo { font-size: var(--cm-mini); line-height: 1.2; }
.cm-piede__indirizzo a { text-decoration: none; }
.cm-piede__piva { font-size: var(--cm-mini); line-height: 1.2; margin-top: clamp(24px, calc(130 * var(--cm-vw)), 130px); }
.cm-piede__destra { padding: clamp(48px, calc(380 * var(--cm-vw)), 380px) 16px clamp(32px, calc(50 * var(--cm-vw)), 50px) calc(74 * var(--cm-vw)); display: grid; grid-template-rows: 1fr auto; }
.cm-piede__shop { display: block; max-width: calc(529 * var(--cm-vw) + 120px); font-family: var(--cm-titoli); font-size: var(--cm-h2); line-height: 1.2; text-decoration: none; }
.cm-piede__shop:hover { color: var(--cm-oro); }
.cm-piede__legali ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 8px; font-size: var(--cm-mini); text-transform: uppercase; }
.cm-piede__legali li + li::before { content: "|"; margin-right: 8px; }
.cm-piede__legali a { text-decoration: none; }
@media (max-width: 760px) { .cm-piede { grid-template-columns: 1fr; } .cm-piede__sinistra, .cm-piede__destra { padding: 48px 16px; } }

/* ---------- Carrello, cassa, account: pagine chiare sopra gli stili di WooCommerce ---------- */
.cm-woo { max-width: 1200px; margin: 0 auto; padding: clamp(40px, calc(90 * var(--cm-vw)), 90px) 16px clamp(48px, calc(120 * var(--cm-vw)), 120px); color: var(--cm-nero); }
.cm-woo h1 { margin-bottom: .8em; }
.cm-woo table.shop_table { border: 0; border-collapse: collapse; }
.cm-woo table.shop_table th, .cm-woo table.shop_table td { border: 0; border-bottom: 1px solid rgba(0,0,0,.15); padding: 14px 8px; }
.cm-woo table.shop_table img { width: 64px; height: 96px; object-fit: contain; }
.cm-woo .woocommerce-message, .cm-woo .woocommerce-info, .cm-woo .woocommerce-error { border-top-color: var(--cm-oro); background: #fafafa; }
.cm-woo .woocommerce-message::before, .cm-woo .woocommerce-info::before { color: var(--cm-oro); }
.cm-woo #payment { background: #fafafa; border: 1px solid rgba(0,0,0,.1); }
.cm-woo .woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; }
.cm-woo .woocommerce-MyAccount-navigation a { display: block; padding: 10px 0; border-bottom: 1px solid rgba(0,0,0,.15); text-decoration: none; }
.cm-woo .woocommerce-MyAccount-navigation .is-active a { color: var(--cm-oro); font-weight: 600; }
.cm-woo label { font-size: var(--cm-mini); }
.cm-woo .woocommerce-pagination ul.page-numbers { border: 0; }
body.cm-chiaro .cm-testa + .cm-woo { padding-top: 0; }

/* ---------- Timeline (la Storia di Vecchia Masseria) e prosa generica ---------- */
.cm-prosa { max-width: 760px; margin: 0 auto; padding: 0 16px; line-height: 1.4; }
.cm-prosa p + p { margin-top: 1em; }
.cm-timeline { list-style: none; margin: 32px 0; padding: 0 0 0 32px; border-left: 2px solid var(--cm-oro); }
.cm-tappa { position: relative; padding: 0 0 40px; }
.cm-tappa::before { content: ""; position: absolute; left: -41px; top: 6px; width: 16px; height: 16px; border-radius: 50%; background: var(--cm-sfondo); border: 3px solid var(--cm-oro); }
.cm-tappa__anno { font-family: var(--cm-titoli); font-size: var(--cm-h2); line-height: 1; color: var(--cm-oro); display: block; margin-bottom: 8px; }
.cm-tappa__testo h3 { font-size: var(--cm-body); font-family: var(--cm-testo); font-weight: 600; margin-bottom: .3em; }

/* ---------- 404 ---------- */
.cm-404 { text-align: center; padding: 160px 16px 120px; }
.cm-404 h1 { margin-bottom: .5em; }
