/* ==========================================================================
   EreditàChiara — brand.css
   Una stanza in ordine con la luce del mattino: lino, inchiostro verde
   bosco, un solo tratto di luce. Le regole sono in DESIGN.md.
   ========================================================================== */

:root {
  --lino: #F4F5F0;
  --foglio: #FDFDFB;
  --inchiostro: #17231E;
  --pietra: #526159;
  --salvia: #2B5A4A;
  --salvia-scura: #21483B;
  --salvia-fondo: #E6EEEA;
  --su-salvia: #FDFDFB;
  --luce: #AA7A22;
  --luce-testo: #8A6114;
  --luce-fondo: #F6EEDD;
  --mattone: #9C4A36;
  --mattone-fondo: #F7E9E4;
  --linea: rgba(23, 35, 30, 0.13);
  --linea-tenue: rgba(23, 35, 30, 0.07);
  --ombra: 0 1px 2px rgba(23, 35, 30, 0.05), 0 6px 18px rgba(23, 35, 30, 0.05);
  --piede: #17231E;
  --su-piede: #E8ECE7;

  --titoli: "Newsreader", Georgia, "Times New Roman", serif;
  --testo: "Atkinson Chiara", -apple-system, "Segoe UI", sans-serif;
  --codice: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --raggio: 12px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --lino: #111815;
    --foglio: #18211D;
    --inchiostro: #E8ECE7;
    --pietra: #A3B0A8;
    --salvia: #7FC2A2;
    --salvia-scura: #6AAE8E;
    --salvia-fondo: #1D2E27;
    --su-salvia: #111815;
    --luce: #D9A850;
    --luce-testo: #E6BC6A;
    --luce-fondo: #2A2415;
    --mattone: #E08A73;
    --mattone-fondo: #2E1B16;
    --linea: rgba(232, 236, 231, 0.14);
    --linea-tenue: rgba(232, 236, 231, 0.07);
    --ombra: 0 1px 2px rgba(0, 0, 0, 0.3), 0 6px 18px rgba(0, 0, 0, 0.2);
    --piede: #0B100E;
    --su-piede: #E8ECE7;
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--lino);
  color: var(--inchiostro);
  font-family: var(--testo);
  font-size: 18px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: var(--salvia); text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--salvia); outline-offset: 2px; border-radius: 4px; }
h1, h2, h3, h4 { font-family: var(--titoli); font-weight: 500; line-height: 1.15; letter-spacing: -0.012em; text-wrap: balance; color: var(--inchiostro); }
h1 { font-size: clamp(2.1rem, 5vw, 3.1rem); }
h2 { font-size: clamp(1.6rem, 3.6vw, 2.1rem); }
h3 { font-size: 1.3rem; }
p, li { max-width: 64ch; }
em, i { font-style: italic; }
strong, b { font-weight: 600; }
img { max-width: 100%; height: auto; }
.ec-mono, code { font-family: var(--codice); font-size: 0.9em; }
.ec-quota { font-variant-numeric: diagonal-fractions; font-feature-settings: "frac" 1; }
.ec-voce { font-family: var(--titoli); font-style: italic; font-weight: 400; }
.ec-etichetta {
  font-family: var(--codice); font-size: 0.74rem; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--pietra); margin: 0 0 0.6rem;
}
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }

/* ---------- bottoni: uno pieno per schermata, gli altri col bordo ---------- */
.ec-btn, .wp-element-button, .wp-block-button__link,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce .button.alt,
.woocommerce-page #payment #place_order {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 52px; padding: 0.8rem 1.4rem;
  font-family: var(--testo); font-weight: 600; font-size: 1.02rem; line-height: 1.2;
  border-radius: var(--raggio); border: 1.5px solid var(--salvia);
  background: transparent; color: var(--salvia);
  text-decoration: none; cursor: pointer;
  transition: background-color 200ms ease-out, color 200ms ease-out;
}
.ec-btn:hover { background: var(--salvia-fondo); }
.ec-btn--pieno, .wp-element-button, .wp-block-button__link,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce .single_add_to_cart_button,
.woocommerce-page #payment #place_order, .woocommerce .checkout-button {
  background: var(--salvia) !important; color: var(--su-salvia) !important; border-color: var(--salvia) !important;
}
.ec-btn--pieno:hover, .wp-element-button:hover, .woocommerce .single_add_to_cart_button:hover,
.woocommerce-page #payment #place_order:hover, .woocommerce .checkout-button:hover {
  background: var(--salvia-scura) !important; border-color: var(--salvia-scura) !important;
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* ------------------------------ testata ------------------------------ */
.ec-testata {
  position: sticky; top: 0; z-index: 20;
  background: var(--lino);
  border-bottom: 1px solid var(--linea-tenue);
}
.ec-testata__in {
  max-width: 1120px; margin: 0 auto; padding: 0.85rem 20px;
  display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; flex-wrap: wrap;
}
.ec-marchio { display: inline-flex; line-height: 0; }
.ec-marchio img { height: 30px; width: auto; display: block; }
.ec-nav { display: flex; align-items: center; gap: 0.3rem 1.3rem; flex-wrap: wrap; font-size: 0.98rem; }
.ec-nav a { color: var(--inchiostro); text-decoration: none; padding: 0.35rem 0; }
.ec-nav a:hover { color: var(--salvia); text-decoration: underline; }
.ec-nav .ec-nav__area {
  border: 1.5px solid var(--linea); border-radius: 999px; padding: 0.4rem 0.95rem; font-weight: 600;
}
@media (max-width: 640px) {
  .ec-marchio img { height: 24px; }
  .ec-nav { width: 100%; justify-content: space-between; font-size: 0.94rem; }
}

/* ------------------------------ piè di pagina ------------------------------ */
.ec-piede { background: var(--piede); color: var(--su-piede); margin-top: 5rem; }
.ec-piede a { color: var(--su-piede); }
.ec-piede__in { max-width: 1120px; margin: 0 auto; padding: 3.5rem 20px 2.5rem; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; }
.ec-piede__marchio img { height: 28px; width: auto; display: block; }
.ec-piede__claim { font-family: var(--titoli); font-style: italic; font-size: 1.15rem; line-height: 1.45; margin: 1rem 0 0; opacity: 0.92; }
.ec-piede ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; font-size: 0.98rem; }
.ec-piede h2 { font-family: var(--codice); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: #A3B0A8; margin: 0 0 1rem; font-weight: 400; }
.ec-piede__fondo { border-top: 1px solid rgba(232, 236, 231, 0.12); max-width: 1120px; margin: 0 auto; padding: 1.5rem 20px 2.5rem; font-size: 0.86rem; color: #A3B0A8; display: flex; flex-direction: column; gap: 0.6rem; }
.ec-piede__fondo p { max-width: none; margin: 0; }
@media (max-width: 800px) { .ec-piede__in { grid-template-columns: minmax(0, 1fr); gap: 2rem; } }

/* ------------------------------ home ------------------------------ */
.ec-sezione { max-width: 1120px; margin: 0 auto; padding: 4.5rem 20px 0; }
.ec-sezione--stretta { max-width: 760px; }
.ec-apertura { max-width: 1120px; margin: 0 auto; padding: 4.5rem 20px 1rem; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 3.5rem; align-items: center; }
.ec-apertura h1 { font-size: clamp(2.4rem, 6vw, 3.8rem); line-height: 1.05; margin: 0 0 1.4rem; }
.ec-apertura h1 em { font-weight: 400; }
.ec-apertura__sotto { font-size: 1.18rem; color: var(--pietra); margin: 0 0 2rem; max-width: 34rem; }
.ec-apertura__azioni { display: flex; flex-wrap: wrap; gap: 0.8rem; align-items: center; }
.ec-apertura__nota { font-size: 0.94rem; color: var(--pietra); margin-top: 1.2rem; }
@media (max-width: 860px) { .ec-apertura { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; padding-top: 3rem; } }

/* il fascicolo d'esempio, in apertura: mostra il prodotto invece di descriverlo */
.ec-esempio {
  background: var(--foglio); border: 1px solid var(--linea-tenue); border-radius: 16px;
  box-shadow: var(--ombra); padding: 1.5rem 1.4rem;
}
.ec-esempio__testa { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; margin-bottom: 1rem; }
.ec-esempio__nome { font-family: var(--titoli); font-size: 1.45rem; margin: 0; }
.ec-esempio__nota { font-size: 0.78rem; color: var(--pietra); font-family: var(--codice); letter-spacing: 0.06em; text-transform: uppercase; }

/* la scadenza: detta con calma, mai un conto alla rovescia */
.ec-scadenza { background: var(--luce-fondo); border-radius: 10px; padding: 0.75rem 1rem; font-size: 0.98rem; line-height: 1.45; margin: 0 0 1.1rem; }

/* il percorso: otto passi, sempre nello stesso ordine */
.ec-percorso { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ec-passo { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 0.8rem; position: relative; padding-bottom: 0.9rem; }
.ec-passo::before { content: ""; position: absolute; left: 12px; top: 26px; bottom: 2px; width: 1.5px; background: var(--linea); }
.ec-passo:last-child { padding-bottom: 0; }
.ec-passo:last-child::before { display: none; }
.ec-passo__segno {
  width: 25px; height: 25px; border-radius: 50%; border: 1.5px solid var(--pietra); background: var(--foglio);
  display: grid; place-items: center; position: relative; z-index: 1; margin-top: 1px;
}
.ec-passo--fatto .ec-passo__segno { background: var(--salvia); border-color: var(--salvia); }
.ec-passo--fatto .ec-passo__segno::after {
  content: ""; width: 8px; height: 4.5px; border-left: 2px solid var(--su-salvia); border-bottom: 2px solid var(--su-salvia);
  transform: translateY(-1px) rotate(-45deg);
}
.ec-passo--ora .ec-passo__segno { border-color: var(--luce); border-width: 2px; }
.ec-passo--ora .ec-passo__segno::after { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--luce); }
.ec-passo__nome { font-weight: 600; line-height: 1.35; }
.ec-passo--futuro .ec-passo__nome { font-weight: 400; color: var(--pietra); }
.ec-passo__nota { font-size: 0.92rem; color: var(--pietra); line-height: 1.45; margin-top: 0.15rem; }
.ec-passo--ora .ec-passo__nota { color: var(--inchiostro); }

/* il percorso grande, in home: con la spiegazione di ogni passo */
.ec-percorso--grande .ec-passo { padding-bottom: 1.6rem; grid-template-columns: 30px minmax(0, 1fr); gap: 1.1rem; }
.ec-percorso--grande .ec-passo__segno { width: 29px; height: 29px; }
.ec-percorso--grande .ec-passo::before { left: 14px; top: 30px; }
.ec-percorso--grande .ec-passo__nome { font-family: var(--titoli); font-size: 1.3rem; font-weight: 500; color: var(--inchiostro); }
.ec-percorso--grande .ec-passo__nota { font-size: 1rem; color: var(--pietra); }
.ec-percorso--grande .ec-chi { font-family: var(--codice); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--pietra); margin-left: 0.5rem; font-weight: 400; }
.ec-due { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 3.5rem; align-items: start; }
@media (max-width: 860px) { .ec-due { grid-template-columns: minmax(0, 1fr); gap: 2rem; } }

/* i prezzi */
.ec-listino { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; margin-top: 2rem; }
.ec-prezzo {
  background: var(--foglio); border: 1px solid var(--linea-tenue); border-radius: 14px; padding: 1.6rem 1.4rem;
  display: flex; flex-direction: column; gap: 0.8rem;
}
.ec-prezzo--consigliato { border: 1.5px solid var(--salvia); }
.ec-prezzo__nome { font-family: var(--titoli); font-size: 1.4rem; margin: 0; }
.ec-prezzo__cifra { font-size: 2.1rem; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1; }
.ec-prezzo__cifra small { font-size: 0.95rem; font-weight: 400; color: var(--pietra); }
.ec-prezzo__per { color: var(--pietra); font-size: 0.98rem; margin: 0; }
.ec-prezzo ul { margin: 0; padding: 0 0 0 1.1rem; font-size: 0.95rem; display: flex; flex-direction: column; gap: 0.35rem; }
.ec-prezzo .ec-btn { margin-top: auto; }
.ec-listino__piede { margin-top: 1.4rem; color: var(--pietra); font-size: 0.98rem; }
@media (max-width: 900px) { .ec-listino { grid-template-columns: minmax(0, 1fr); } }

.ec-ingresso {
  margin-top: 1.2rem; background: var(--salvia-fondo); border-radius: 14px; padding: 1.4rem 1.5rem;
  display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; justify-content: space-between;
}
.ec-ingresso p { margin: 0; }

/* diciamo per primi quando non serve */
.ec-onesto { border-left: 3px solid var(--salvia); padding: 0.4rem 0 0.4rem 1.4rem; }
.ec-onesto p + p { margin-top: 0.8rem; }

/* domande */
.ec-domande { border-top: 1px solid var(--linea); margin-top: 1.5rem; }
.ec-domande details { border-bottom: 1px solid var(--linea); padding: 1.1rem 0; }
.ec-domande summary { cursor: pointer; font-weight: 600; font-size: 1.06rem; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.ec-domande summary::-webkit-details-marker { display: none; }
.ec-domande summary::after { content: "+"; font-family: var(--codice); color: var(--pietra); }
.ec-domande details[open] summary::after { content: "–"; }
.ec-domande details p { margin: 0.8rem 0 0; color: var(--pietra); }

/* "In ordine." */
.ec-in-ordine { font-family: var(--titoli); font-style: italic; font-weight: 400; font-size: clamp(2.6rem, 8vw, 3.8rem); line-height: 1.05; margin: 0; }
.ec-in-ordine .ec-punto { color: var(--luce); }

/* ------------------------------ guide ------------------------------ */
.ec-guida-corpo { font-size: 1.06rem; }
.ec-guida-corpo h2 { margin-top: 2.4rem; }
.ec-guida-corpo h3 { margin-top: 1.8rem; }
.ec-guida-corpo .ec-risposta,
.ec-guida-corpo .ec-inbreve { background: var(--foglio); border: 1px solid var(--linea-tenue); border-radius: var(--raggio); padding: 1rem 1.2rem; }
.ec-guida-corpo li + li { margin-top: 0.45rem; }
/* Le tabelle delle guide: franchigie, quote, costi. Cifre in colonna, righe sottili. */
.ec-guida-corpo table { width: 100%; border-collapse: collapse; margin: 1.4rem 0; font-size: 0.97rem; font-variant-numeric: tabular-nums; }
.ec-guida-corpo th, .ec-guida-corpo td { text-align: left; vertical-align: top; padding: 0.6rem 0.9rem 0.6rem 0; border-bottom: 1px solid var(--linea-tenue); }
.ec-guida-corpo thead th { font-weight: 600; border-bottom: 1px solid var(--linea); }
.ec-guida-corpo th:last-child, .ec-guida-corpo td:last-child { padding-right: 0; }
/* Le fonti in coda e la data di aggiornamento: presenti, ma un passo indietro. */
.ec-guida-corpo ul:has(+ .ec-aggiornata) { font-size: 0.92rem; color: var(--pietra); }
.ec-guida-corpo .ec-aggiornata { margin-top: 1.6rem; font-size: 0.92rem; color: var(--pietra); }
.ec-guida-cta { margin-top: 3rem; background: var(--salvia-fondo); border-radius: 14px; padding: 1.6rem 1.5rem; }

/* ------------------------------ WooCommerce ------------------------------ */
.woocommerce .woocommerce-breadcrumb { display: none; }
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1.1rem; margin: 2rem 0 0 !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product {
  width: auto !important; margin: 0 !important; float: none !important;
  background: var(--foglio); border: 1px solid var(--linea-tenue); border-radius: 14px; padding: 1.4rem !important;
  display: flex; flex-direction: column; gap: 0.6rem;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--titoli); font-size: 1.35rem !important; font-weight: 500; padding: 0 !important; }
.woocommerce ul.products li.product .price { color: var(--inchiostro) !important; font-size: 1.3rem !important; font-weight: 600; font-variant-numeric: tabular-nums; }
.woocommerce ul.products li.product .button { margin-top: auto; }
.woocommerce ul.products li.product img { display: none; }

.woocommerce div.product .product_title { font-size: clamp(2rem, 5vw, 2.9rem); margin-bottom: 0.6rem; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--inchiostro) !important; font-size: 2rem !important; font-weight: 600; font-variant-numeric: tabular-nums; }
.woocommerce div.product .woocommerce-product-details__short-description { font-size: 1.1rem; color: var(--pietra); }
.woocommerce div.product div.images { display: none; }
.woocommerce div.product div.summary { width: 100% !important; float: none !important; max-width: 720px; }
.woocommerce div.product .woocommerce-tabs { clear: both; max-width: 720px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: none; }
.woocommerce div.product .woocommerce-tabs .panel { margin: 0; }
.woocommerce div.product form.cart .quantity { display: none; }
.ec-fiducia { list-style: none; margin: 1.6rem 0 0; padding: 1.2rem 0 0; border-top: 1px solid var(--linea); display: flex; flex-direction: column; gap: 0.5rem; font-size: 0.98rem; color: var(--pietra); }
.ec-fiducia li { padding-left: 1.5rem; position: relative; }
.ec-fiducia li::before { content: ""; position: absolute; left: 0.2rem; top: 0.62em; width: 7px; height: 7px; border-radius: 50%; background: var(--salvia); }

/* moduli: etichetta sopra, campo alto, spiegazione sotto */
.woocommerce form .form-row { margin-bottom: 1.1rem; padding: 0; }
.woocommerce form .form-row label { font-weight: 600; font-size: 0.98rem; margin-bottom: 0.35rem; display: block; line-height: 1.4; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce form .form-row textarea.input-text, /* più specifico dello stile di WooCommerce, che la faceva bianca anche di sera */
.woocommerce-page form .form-row input.input-text, .select2-container .select2-selection--single {
  min-height: 52px; padding: 0.7rem 0.9rem; font-size: 1.02rem; font-family: var(--testo);
  background: var(--foglio); color: var(--inchiostro);
  border: 1.5px solid var(--linea); border-radius: 10px; width: 100%;
}
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus {
  outline: 2px solid var(--salvia); outline-offset: 2px; border-color: var(--salvia);
}
.woocommerce form .form-row .description, .ec-aiuto { font-size: 0.9rem; color: var(--pietra); margin-top: 0.3rem; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--mattone); }
/* Un campo compilato non ha bisogno del bordo verde di WooCommerce: segnaliamo solo cosa va corretto. */
.woocommerce form .form-row.woocommerce-validated input.input-text,
.woocommerce form .form-row.woocommerce-validated textarea.input-text,
.woocommerce form .form-row.woocommerce-validated select { border-color: var(--linea); }
.woocommerce form .form-row .required { color: var(--pietra); text-decoration: none; }

.woocommerce-checkout #payment, .woocommerce-cart .cart-collaterals .cart_totals, .woocommerce table.shop_table {
  background: var(--foglio) !important; border: 1px solid var(--linea-tenue) !important; border-radius: 14px !important;
}
.woocommerce form .form-row textarea.input-text::placeholder, .woocommerce form .form-row input.input-text::placeholder { color: var(--pietra); opacity: 1; }
/* La scatola del metodo di pagamento: di serie è lilla, e resta chiara anche col tema scuro. */
.woocommerce-checkout #payment div.payment_box { background: var(--lino) !important; color: var(--inchiostro) !important; border-radius: 10px; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--lino) !important; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--linea-tenue) !important; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--linea-tenue) !important; }
.woocommerce table.shop_table .amount { font-variant-numeric: tabular-nums; }

.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notices-wrapper > div {
  border-radius: 10px !important; border: 0 !important; border-left: 3px solid var(--salvia) !important;
  background: var(--salvia-fondo) !important; color: var(--inchiostro) !important; padding: 1rem 1.2rem 1rem 1.4rem !important;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none !important; }
.woocommerce-error { border-left-color: var(--mattone) !important; background: var(--mattone-fondo) !important; list-style: none; }
/* Gli avvisi dei blocchi WooCommerce hanno colori propri, fissi sul chiaro: col tema scuro
   il bottone dell'avviso diventava grigio scuro su fondo scuro. Qui prendono i nostri. */
.wc-block-components-notice-banner {
  background: var(--salvia-fondo) !important; color: var(--inchiostro) !important;
  border: 0 !important; border-left: 3px solid var(--salvia) !important; border-radius: 10px !important;
  font-size: 1rem !important;
}
.wc-block-components-notice-banner.is-error { background: var(--mattone-fondo) !important; border-left-color: var(--mattone) !important; }
.wc-block-components-notice-banner.is-info { background: var(--luce-fondo) !important; border-left-color: var(--luce) !important; }
.wc-block-components-notice-banner > svg { background-color: var(--salvia) !important; fill: var(--su-salvia) !important; }
.wc-block-components-notice-banner.is-error > svg { background-color: var(--mattone) !important; }
.wc-block-components-notice-banner.is-info > svg { background-color: var(--luce) !important; }
.wc-block-components-notice-banner > .wc-block-components-notice-banner__content .wc-forward {
  color: var(--salvia) !important; opacity: 1 !important; font-weight: 600;
}

/* ------------------------------ area riservata ------------------------------ */
.ec-accesso { max-width: 460px; margin: 1rem auto 0; background: var(--foglio); border: 1px solid var(--linea-tenue); border-radius: 16px; padding: 2rem 1.6rem; box-shadow: var(--ombra); }
.ec-accesso h2 { font-size: 1.7rem; margin: 0 0 0.4rem; }
.ec-accesso__sotto { color: var(--pietra); margin: 0 0 1.4rem; }
.ec-accesso__switch { display: grid; grid-template-columns: 1fr 1fr; gap: 0.3rem; background: var(--lino); border-radius: 12px; padding: 0.3rem; margin-bottom: 1.4rem; }
.ec-accesso__switch button { min-height: 44px; border: 0; background: transparent; border-radius: 9px; font: 600 0.98rem var(--testo); color: var(--pietra); cursor: pointer; }
.ec-accesso__switch button.is-attivo { background: var(--foglio); color: var(--inchiostro); box-shadow: var(--ombra); }
.ec-accesso .u-column2, .ec-accesso.mostra-registrati .u-column1 { display: none; }
.ec-accesso.mostra-registrati .u-column2 { display: block; }
.ec-accesso .col2-set .col-1, .ec-accesso .col2-set .col-2 { width: 100% !important; float: none !important; }
.ec-accesso h2 + form, .ec-accesso .u-column1 > h2, .ec-accesso .u-column2 > h2 { margin-top: 0; }
.ec-accesso .u-column1 > h2, .ec-accesso .u-column2 > h2 { display: none; }
.ec-accesso__alt { font-size: 0.94rem; color: var(--pietra); margin: 1rem 0 0; }
.ec-accesso form.login, .ec-accesso form.register { border: 0 !important; padding: 0 !important; margin: 0 !important; }

.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 2rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: inline-block; padding: 0.5rem 0.95rem; border-radius: 999px; border: 1.5px solid var(--linea); text-decoration: none; color: var(--inchiostro); font-size: 0.96rem; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--inchiostro); color: var(--lino); border-color: var(--inchiostro); }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { width: 100% !important; float: none !important; }

/* il fascicolo, anche sul sito */
.ec-fascicolo-web { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; margin: 1rem 0 2.5rem; }
.ec-fascicolo-web__colonna { display: flex; flex-direction: column; gap: 1.2rem; }
.ec-card { background: var(--foglio); border: 1px solid var(--linea-tenue); border-radius: var(--raggio); padding: 1.2rem 1.3rem; }
.ec-card h3 { font-family: var(--testo); font-size: 1rem; font-weight: 600; margin: 0 0 0.6rem; }
.ec-card ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.7rem; }
.ec-immobile__dove { font-weight: 600; }
.ec-immobile__dati { font-family: var(--codice); font-size: 0.86rem; color: var(--pietra); }
.ec-messaggio { border-left: 2px solid var(--linea); padding-left: 0.9rem; }
.ec-messaggio__chi { font-weight: 600; font-size: 0.94rem; }
.ec-messaggio__quando { color: var(--pietra); font-size: 0.84rem; }
@media (max-width: 860px) { .ec-fascicolo-web { grid-template-columns: minmax(0, 1fr); } }

.ec-app-invito { margin-top: 1.5rem; background: var(--salvia-fondo); border-radius: var(--raggio); padding: 1.2rem 1.3rem; }
.ec-app-invito p { margin: 0; }

/* ---------- il fascicolo sul sito: il primo passo, i documenti, i messaggi ---------- */
.ec-fascicolo-di { font-family: var(--titoli); font-style: italic; color: var(--pietra); margin: 0; font-size: 1.05rem; }
.ec-fascicolo-nome { font-size: clamp(1.7rem, 3vw, 2.2rem); margin: 0 0 0.3rem; }
.ec-titoletto { font-family: var(--testo); font-size: 1rem; font-weight: 600; margin: 0.6rem 0 0; }
.ec-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.8rem; }
.ec-codice { font-family: var(--codice); font-size: 0.86rem; }
.ec-aiuto { color: var(--pietra); font-size: 0.94rem; }
.ec-ok { color: var(--salvia); font-weight: 600; font-size: 0.94rem; }
.ec-da-fare { border-left: 3px solid var(--luce); }
.ec-da-fare h3, .ec-dati h3 { font-family: var(--titoli); font-weight: 500; font-size: 1.4rem; margin-bottom: 0.4rem; }
.ec-modulo fieldset { border: 0; padding: 0; margin: 1.6rem 0 0; min-width: 0; }
.ec-modulo legend { font-family: var(--codice); font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pietra); padding: 0; margin: 0 0 0.9rem; }
.ec-modulo .ec-cf { text-transform: uppercase; font-family: var(--codice); letter-spacing: 0.04em; }
.ec-erede { background: var(--lino); border-radius: var(--raggio); padding: 1rem 1.1rem 0.3rem; margin: 0 0 1rem; }
.ec-erede__testa { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.6rem; }
.ec-erede__testa h4 { margin: 0; font-family: var(--testo); font-size: 1rem; font-weight: 600; }
.ec-togli { background: none; border: 0; color: var(--mattone); font: 600 0.95rem var(--testo); min-height: 44px; padding: 0 0.4rem; cursor: pointer; }
.ec-togli[hidden] { display: none; }
.ec-scelta__opzioni { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ec-scelta__opzioni label { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 48px; padding: 0 1rem; border: 1.5px solid var(--linea); border-radius: 10px; background: var(--foglio); cursor: pointer; font-weight: 400; margin: 0; }
.ec-scelta__opzioni label:has(input:checked) { border-color: var(--salvia); background: var(--salvia-fondo); }
.ec-scelta__opzioni input { accent-color: var(--salvia); width: 1.1rem; height: 1.1rem; margin: 0; }
.ec-errori { background: var(--mattone-fondo); border-left: 3px solid var(--mattone); border-radius: 10px; padding: 0.9rem 1.1rem; margin: 1rem 0; }
.ec-errori:focus { outline: 2px solid var(--mattone); outline-offset: 2px; }
.ec-errori p { margin: 0; }
.ec-errori ul { margin: 0.4rem 0 0; padding-left: 1.1rem; }
.ec-errori a { color: var(--mattone); }
.ec-errore-campo { display: block; margin-top: 0.4rem; color: var(--mattone); background: var(--mattone-fondo); border-radius: 8px; padding: 0.45rem 0.7rem; font-size: 0.94rem; }
.ec-invio-nascosto { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ec-modulo__invio { margin: 1.6rem 0 0; }
.ec-modulo__invio .ec-btn { width: 100%; }
.ec-conti { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.ec-conti th, .ec-conti td { padding: 0.45rem 0; border-bottom: 1px solid var(--linea-tenue); font-weight: 400; text-align: left; }
.ec-conti td { text-align: right; white-space: nowrap; }
.ec-conti__totale th, .ec-conti__totale td { font-weight: 600; border-bottom: 0; padding-top: 0.7rem; }
.ec-messaggio--studio { border-left-color: var(--salvia); }
.ec-scrivi textarea { min-height: 96px; }
.ec-carica input[type="file"] { width: 100%; padding: 0.6rem 0; }
.ec-campo-cf { margin: 0 0 1.2rem; }
.ec-campo-cf .input-text { text-transform: uppercase; font-family: var(--codice); letter-spacing: 0.04em; max-width: 22rem; }

/* dentro l'app la testata del sito è un doppione: l'app ha già la sua */
.ec-in-app .ec-testata, .ec-in-app .ec-piede { display: none; }

/* ---------- l'indice delle guide ---------- */
.ec-guide-intro { font-size: 1.1rem; color: var(--pietra); max-width: 62ch; margin: 0.6rem 0 2.2rem; }
.ec-guide-elenco .wp-block-post-template { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0; }
.ec-guide-elenco .wp-block-post-template > li { padding: 1.3rem 0; border-top: 1px solid var(--linea-tenue); }
.ec-guide-elenco .wp-block-post-title { font-size: clamp(1.3rem, 2.4vw, 1.55rem); margin: 0 0 0.35rem; }
.ec-guide-elenco .wp-block-post-title a { color: var(--inchiostro); text-decoration: none; }
.ec-guide-elenco .wp-block-post-title a:hover, .ec-guide-elenco .wp-block-post-title a:focus-visible { color: var(--salvia); text-decoration: underline; text-underline-offset: 3px; }
.ec-guide-elenco .wp-block-post-excerpt { color: var(--pietra); margin: 0; }
.ec-guide-elenco .wp-block-post-excerpt__excerpt { margin: 0; }
.ec-fascicolo-testa { display: flex; flex-direction: column; gap: 1.2rem; margin: 0.4rem 0 2.2rem; }
.ec-fascicolo-testa > .ec-etichetta { margin: 0; }
.ec-fascicolo-testa .ec-dati, .ec-fascicolo-testa .ec-da-fare { max-width: 760px; }
