/* ============================================================
   NVI · CONTATTI — Premium contact page
   Hero · Quick contact · Contact form · Map · FAQ · Closing
   ============================================================ */

body.contatti{ background:var(--color-cream); }

/* -----------------------------------------------------------
   SHARED: page-wide ambient background pattern (very subtle)
   ----------------------------------------------------------- */
.contatti-bg{
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(120% 60% at 0% 0%, rgba(155,203,156,.10) 0%, transparent 60%),
    radial-gradient(80% 50% at 100% 100%, rgba(65,89,76,.06) 0%, transparent 70%);
}

/* -----------------------------------------------------------
   HERO · institutional, light, with green glass card
   ----------------------------------------------------------- */
.cnt-hero{
  position:relative;
  padding:calc(var(--nav-h) + 72px) 0 88px;
  background:
    linear-gradient(180deg, #FFFDFA 0%, #F6F1E7 100%);
  overflow:hidden;
}
.cnt-hero__bg{
  position:absolute;inset:0;pointer-events:none;
}
.cnt-hero__bg::before,
.cnt-hero__bg::after{
  content:"";position:absolute;border-radius:50%;
  filter:blur(80px);opacity:.55;
}
.cnt-hero__bg::before{
  width:520px;height:520px;left:-120px;top:-80px;
  background:radial-gradient(circle, rgba(155,203,156,.55) 0%, transparent 70%);
}
.cnt-hero__bg::after{
  width:480px;height:480px;right:-140px;bottom:-120px;
  background:radial-gradient(circle, rgba(65,89,76,.30) 0%, transparent 70%);
}

.cnt-hero__inner{
  position:relative;
  display:flex;flex-direction:column;align-items:center;
  max-width:var(--rail);margin:0 auto;text-align:center;
}

.cnt-hero__title{
  font-family:var(--title-font);font-weight:var(--title-weight);
  font-size:clamp(40px, 4.4vw, 72px);line-height:1.04;letter-spacing:-.01em;
  color:var(--color-forest-900);
  max-width:var(--measure-display-wide);
}
.cnt-hero__title em{
  font-style:italic;color:var(--color-forest);
}
.cnt-hero__lede{
  margin-top:24px;
  font-family:var(--font-sans);font-weight:var(--lede-weight);
  font-size:var(--lede-size);line-height:var(--lede-lh);
  color:var(--prose-ink);max-width:var(--measure-lede);
}

/* -----------------------------------------------------------
   QUICK CONTACT — two cards (Chiamaci / Scrivici) + meta line
   ----------------------------------------------------------- */
.cnt-quick{
  position:relative;
  padding:96px 0 32px;
  background:var(--color-cream);
}
.cnt-quick__head{
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;
  margin-bottom:56px;
}
.cnt-quick__title{
  font-family:var(--title-font);font-weight:var(--title-weight);
  font-size:clamp(34px, 3.6vw, 56px);line-height:1.05;
  color:var(--color-forest-900);max-width:520px;
}
.cnt-quick__title em{ font-style:normal; color:var(--color-forest);}
.cnt-quick__sub{
  font-family:var(--font-sans);font-size:var(--lede-size);line-height:var(--lede-lh);
  color:var(--prose-ink);max-width:480px;justify-self:end;
  text-align:right;font-weight:var(--lede-weight);}

.cnt-quick__grid{
  display:grid;grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));gap:28px;
}
.cnt-card{
  position:relative;display:block;
  padding:30px 32px 28px;border-radius:22px;
  background:var(--color-cream);
  border:1px solid var(--color-line);
  transition:transform .4s var(--easing-out),
             box-shadow .4s var(--easing-out),
             border-color .3s,
             background .3s;
  overflow:hidden;
}
.cnt-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 60px -20px rgba(28,40,32,.22);
  border-color:rgba(65,89,76,.28);
}
.cnt-card::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg, var(--color-sage), var(--color-forest));
  transform:scaleX(0);transform-origin:left;
  transition:transform .55s var(--easing-out);
}
.cnt-card:hover::after{ transform:scaleX(1);}

.cnt-card__head{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:18px;
}
.cnt-card__icon{
  width:46px;height:46px;border-radius:14px;
  display:grid;place-items:center;
  background:linear-gradient(135deg, rgba(155,203,156,.30), rgba(65,89,76,.15));
  color:var(--color-forest);
  border:1px solid rgba(65,89,76,.18);
}
.cnt-card__icon svg{width:20px;height:20px;}
.cnt-card__label{
  font-family:var(--font-sans);font-weight:700;font-style:normal;
  font-size:22px;letter-spacing:-.005em;
  color:var(--color-forest-900);margin-bottom:6px;
}
.cnt-card__value{
  font-family:var(--font-sans);font-weight:400;font-size:22px;
  letter-spacing:-.005em;color:var(--color-ink);margin-bottom:14px;
  display:flex;align-items:center;gap:12px;
}
.cnt-card__value-arrow{
  width:32px;height:32px;border-radius:50%;
  display:inline-grid;place-items:center;
  background:var(--color-forest-900);color:var(--color-cream);
  transition:transform .4s var(--easing-out), background .3s;
}
.cnt-card:hover .cnt-card__value-arrow{
  transform:translateX(4px) rotate(-12deg);
  background:var(--color-forest);
}
.cnt-card__value-arrow svg{width:13px;height:13px;}
.cnt-card__hint{
  font-size:13px;color:var(--color-forest-500);
  display:flex;align-items:center;gap:8px;
}
.cnt-card__hint::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:var(--color-sage-700);flex-shrink:0;
}

/* -----------------------------------------------------------
   FORM SECTION — full-width split with form left, info right
   ----------------------------------------------------------- */
.cnt-form-sect{
  position:relative;padding:96px 0 110px;
}
.cnt-form-sect__inner{
  display:grid;grid-template-columns:1.4fr .9fr;gap:80px;align-items:start;
}

.cnt-form-card{
  position:relative;
  padding:56px;border-radius:32px;
  background:var(--color-cream);
  border:1px solid var(--color-line);
  box-shadow:0 20px 60px -30px rgba(28,40,32,.18);
}

.cnt-form__head{
  display:flex;align-items:flex-start;gap:16px;
  padding-bottom:28px;margin-bottom:32px;
  border-bottom:1px solid var(--color-line);
}
.cnt-form__head-text h2{
  font-family:var(--title-font);font-weight:var(--title-weight);
  font-size:clamp(28px, 2.4vw, 38px);line-height:1.18;
  color:var(--color-forest-900);margin-bottom:8px;
}
.cnt-form__head-text h2 em{font-style:italic;color:var(--color-forest);}
.cnt-form__head-text p{
  font-size:14.5px;line-height:1.6;color:var(--color-forest-700);
}

/* Field grid */
.cnt-form__grid{
  display:grid;grid-template-columns:1fr 1fr;gap:24px 28px;
}
.cnt-field{ display:flex;flex-direction:column;}
.cnt-field--full{ grid-column:1/-1;}

.cnt-field__label{
  font-family:var(--font-sans);font-size:11.5px;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--color-forest);
  margin-bottom:10px;display:flex;align-items:center;gap:8px;
}
.cnt-field__label .req{color:#B47A3A;font-style:italic;letter-spacing:0;}

.cnt-field__input,
.cnt-field__select,
.cnt-field__textarea{
  width:100%;padding:16px 18px;border-radius:14px;
  background:#FFFDFA;border:1px solid var(--color-line);
  font-family:var(--font-sans);font-size:15px;color:var(--color-ink);
  transition:border-color .25s, box-shadow .25s, background .25s;
  appearance:none;-webkit-appearance:none;
}
.cnt-field__input::placeholder,
.cnt-field__textarea::placeholder{color:rgba(28,28,28,.40);}
.cnt-field__input:focus,
.cnt-field__select:focus,
.cnt-field__textarea:focus{
  outline:none;border-color:var(--color-forest);
  box-shadow:0 0 0 3px rgba(155,203,156,.30);
  background:#fff;
}
.cnt-field__textarea{resize:vertical;min-height:140px;line-height:1.6;}

.cnt-field__select-wrap{position:relative;}
.cnt-field__select-wrap::after{
  content:"";position:absolute;right:18px;top:50%;width:10px;height:10px;
  border-right:1.5px solid var(--color-forest);
  border-bottom:1.5px solid var(--color-forest);
  transform:translateY(-70%) rotate(45deg);
  pointer-events:none;
}
.cnt-field__select{padding-right:40px;}

/* Interest chips (multi-select look, kept simple as checkboxes) */
.cnt-chips{
  display:flex;flex-wrap:wrap;gap:10px;
}
.cnt-chip{
  position:relative;cursor:pointer;
}
.cnt-chip input{
  position:absolute;opacity:0;pointer-events:none;
}
.cnt-chip__face{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 16px;border-radius:var(--radius-pill);
  background:rgba(255,253,250,.4);
  border:1px solid var(--color-line);
  font-size:13px;font-weight:500;color:var(--color-forest);
  transition:background .2s, color .2s, border-color .2s, transform .2s;
}
.cnt-chip__face::before{
  content:"";width:14px;height:14px;border-radius:4px;
  border:1.5px solid var(--color-forest-500);
  display:inline-block;flex-shrink:0;
  transition:background .2s, border-color .2s;
  position:relative;
}
.cnt-chip:hover .cnt-chip__face{
  border-color:var(--color-forest);transform:translateY(-1px);
}
.cnt-chip input:checked + .cnt-chip__face{
  background:var(--color-forest);color:var(--color-cream);
  border-color:var(--color-forest);
}
.cnt-chip input:checked + .cnt-chip__face::before{
  background:var(--color-sage);border-color:var(--color-sage);
}

/* Privacy + actions row */
.cnt-form__privacy{
  display:flex;align-items:flex-start;gap:12px;
  margin-top:28px;font-size:13px;line-height:1.55;color:var(--color-forest-700);
}
.cnt-form__privacy input{
  margin-top:3px;width:16px;height:16px;accent-color:var(--color-forest);
  flex-shrink:0;
}
.cnt-form__privacy a{
  color:var(--color-forest);text-decoration:underline;
  text-underline-offset:2px;
}

.cnt-form__actions{
  display:flex;align-items:center;gap:24px;margin-top:32px;
  padding-top:32px;border-top:1px solid var(--color-line);
}
.cnt-form__actions .btn{padding:18px 36px;}
.cnt-form__actions-note{
  font-size:12.5px;color:var(--color-forest-500);
}

/* ============================================================
   CONTACT FORM 7 — mappa le classi auto-generate al visual NVI
   ============================================================
   CF7 wrappa ogni input in <span class="wpcf7-form-control-wrap">
   e aggiunge classi proprie (.wpcf7-form-control, .wpcf7-text, ecc.).
   Qui le riallineiamo allo stile del form custom. */

/* Reset del wrapper inline auto-aggiunto da CF7 */
.cnt-form-card .wpcf7-form-control-wrap{
  display:block;width:100%;
}

/* CF7 avvolge ogni campo in <p> e inserisce un <br> tra label e input:
   azzeriamo il margine del <p> e nascondiamo il <br> ridondante, così il
   campo segue lo stesso ritmo del form statico (gap = margin-bottom del label). */
.cnt-form-card .cnt-field > p{
  margin:0;display:flex;flex-direction:column;
}
.cnt-form-card .cnt-field > p br{ display:none; }

/* Input testuali */
.cnt-form-card .wpcf7-form-control.wpcf7-text,
.cnt-form-card .wpcf7-form-control.wpcf7-email,
.cnt-form-card .wpcf7-form-control.wpcf7-tel,
.cnt-form-card .wpcf7-form-control.wpcf7-number,
.cnt-form-card .wpcf7-form-control.wpcf7-textarea,
.cnt-form-card .wpcf7-form-control.wpcf7-select{
  width:100%;padding:16px 18px;border-radius:14px;
  background:#FFFDFA;border:1px solid var(--color-line);
  font-family:var(--font-sans);font-size:15px;color:var(--color-ink);
  transition:border-color .25s, box-shadow .25s, background .25s;
  appearance:none;-webkit-appearance:none;
}
.cnt-form-card .wpcf7-form-control::placeholder{color:rgba(28,28,28,.40)}
.cnt-form-card .wpcf7-form-control:focus{
  outline:none;border-color:var(--color-forest);
  box-shadow:0 0 0 3px rgba(155,203,156,.30);
  background:#fff;
}
.cnt-form-card .wpcf7-form-control.wpcf7-textarea{
  resize:vertical;min-height:140px;line-height:1.6;
}

/* Select: CF7 mantiene la freccia browser; nascondiamo e usiamo la nostra freccia */
.cnt-form-card .cnt-field__select-wrap .wpcf7-form-control.wpcf7-select{
  padding-right:48px;cursor:pointer;
}

/* Checkbox custom-styled (chips "Mi interessa parlare di") */
.cnt-form-card .wpcf7-form-control.wpcf7-checkbox{
  display:flex;flex-wrap:wrap;gap:10px;
}
.cnt-form-card .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item{
  margin:0;
}
.cnt-form-card .wpcf7-form-control.wpcf7-checkbox label{
  display:inline-flex;align-items:center;cursor:pointer;
  padding:9px 16px;border-radius:999px;
  background:#FFFDFA;border:1px solid var(--color-line);
  font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:.02em;
  color:var(--color-forest);
  transition:background .25s, border-color .25s, color .25s;
}
.cnt-form-card .wpcf7-form-control.wpcf7-checkbox label:hover{
  border-color:var(--color-forest);
}
.cnt-form-card .wpcf7-form-control.wpcf7-checkbox input[type="checkbox"]{
  position:absolute;opacity:0;pointer-events:none;
}
.cnt-form-card .wpcf7-form-control.wpcf7-checkbox input[type="checkbox"]:checked + .wpcf7-list-item-label,
.cnt-form-card .wpcf7-form-control.wpcf7-checkbox label:has(input:checked){
  background:var(--color-forest);border-color:var(--color-forest);color:var(--color-cream);
}
.cnt-form-card .wpcf7-form-control.wpcf7-checkbox .wpcf7-list-item-label{
  margin-left:0;
}

/* Accettazione privacy */
.cnt-form-card .cnt-form__privacy .wpcf7-form-control.wpcf7-acceptance{
  display:inline;
}
.cnt-form-card .cnt-form__privacy .wpcf7-list-item{
  margin:0;display:inline;
}
.cnt-form-card .cnt-form__privacy label{
  display:flex;align-items:flex-start;gap:14px;cursor:pointer;
}

/* Submit: usa già class:btn nello shortcode, qui assicuriamo coerenza */
.cnt-form-card .wpcf7-submit{
  display:inline-flex;align-items:center;gap:10px;
  cursor:pointer;border:0;
}

/* Messaggi di validazione/successo */
.cnt-form-card .wpcf7-response-output{
  margin:24px 0 0;padding:18px 22px;border-radius:14px;
  font-family:var(--font-sans);font-size:14px;line-height:1.5;
  border:1px solid var(--color-line);background:#FFFDFA;
}
.cnt-form-card .wpcf7 form.sent .wpcf7-response-output{
  background:rgba(155,203,156,.18);border-color:var(--color-sage);color:var(--color-forest-900);
}
.cnt-form-card .wpcf7 form.invalid .wpcf7-response-output,
.cnt-form-card .wpcf7 form.unaccepted .wpcf7-response-output{
  background:rgba(180,122,58,.12);border-color:#B47A3A;color:#7A4F22;
}
.cnt-form-card .wpcf7 form.failed .wpcf7-response-output,
.cnt-form-card .wpcf7 form.aborted .wpcf7-response-output,
.cnt-form-card .wpcf7 form.spam .wpcf7-response-output{
  background:rgba(200,60,60,.10);border-color:#C83C3C;color:#8C1E2E;
}
.cnt-form-card .wpcf7-not-valid-tip{
  display:block;margin-top:6px;color:#B47A3A;
  font-family:var(--font-sans);font-size:12.5px;font-weight:500;
}
.cnt-form-card .wpcf7-form-control.wpcf7-not-valid{
  border-color:#B47A3A;
}

/* Loading spinner CF7 */
.cnt-form-card .wpcf7-spinner{
  margin:0 0 0 14px;background-color:var(--color-forest);
}

/* INFO RAIL — sidebar with details/highlights */
.cnt-info{
  position:sticky;top:calc(var(--nav-h) + 24px);
  display:flex;flex-direction:column;gap:18px;
}
.cnt-info__block{
  padding:32px;border-radius:24px;
  background:linear-gradient(180deg, rgba(155,203,156,.18), rgba(155,203,156,.06));
  border:1px solid rgba(65,89,76,.18);
}
.cnt-info__block--dark{
  background:linear-gradient(180deg, #41594C 0%, #2B3D35 100%);
  color:var(--color-cream);border-color:rgba(255,253,250,.12);
}
.cnt-info__block--dark .cnt-info__head,
.cnt-info__block--dark .cnt-info__title,
.cnt-info__block--dark .cnt-info__text{ color:var(--color-cream);}
.cnt-info__block--dark .cnt-info__text{opacity:.84;}

.cnt-info__head{
  display:flex;align-items:center;gap:10px;
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--color-forest);font-weight:500;margin-bottom:14px;
}
.cnt-info__head svg{width:14px;height:14px;}
.cnt-info__title{
  font-family:var(--font-sans);font-style:normal;font-weight:700;
  font-size:19px;line-height:1.3;letter-spacing:-.005em;margin-bottom:10px;
  color:var(--color-forest-900);
}
.cnt-info__text{
  font-size:var(--body-sm-size);line-height:var(--body-sm-lh);color:var(--prose-ink);font-weight:var(--body-sm-weight);}
.cnt-info__list{
  display:flex;flex-direction:column;gap:14px;margin-top:18px;
}
.cnt-info__list li{
  display:flex;gap:12px;align-items:flex-start;font-size:13.5px;
  color:inherit;line-height:1.5;
}
.cnt-info__list li svg{
  width:14px;height:14px;flex-shrink:0;margin-top:4px;color:var(--color-sage);
}

/* Hours mini-table */
.cnt-hours{
  display:grid;grid-template-columns:1fr auto;gap:8px 24px;
  font-size:13.5px;
}
.cnt-hours dt{ color:rgba(255,253,250,.78); font-weight:400;}
.cnt-hours dd{ font-weight:500;letter-spacing:.02em;}
.cnt-hours .cnt-hours__row{display:contents;}

/* -----------------------------------------------------------
   MAP / SEDE — wide forest band with map illustration
   ----------------------------------------------------------- */
.cnt-sede{
  position:relative;padding:0;
  background:linear-gradient(180deg, #FFFDFA 0%, #F6F1E7 50%, #FFFDFA 100%);
}
.cnt-sede__inner{
  display:grid;grid-template-columns:1fr 1.2fr;gap:0;
  border-radius:32px;overflow:hidden;
  background:var(--color-cream);
  border:1px solid var(--color-line);
  box-shadow:0 30px 80px -30px rgba(28,40,32,.20);
}
.cnt-sede__copy{
  padding:64px 56px;display:flex;flex-direction:column;justify-content:center;
}
.cnt-sede__copy .eyebrow{margin-bottom:18px;}
.cnt-sede__copy h2{
  font-family:var(--title-font);font-weight:var(--title-weight);
  font-size:clamp(32px, 3.2vw, 48px);line-height:1.18;
  color:var(--color-forest-900);margin-bottom:18px;
}
.cnt-sede__copy h2 em{font-style:italic;color:var(--color-forest);}
.cnt-sede__copy p{
  font-size:var(--body-sm-size);line-height:var(--body-sm-lh);color:var(--prose-ink);
  margin-bottom:24px;max-width:440px;font-weight:var(--body-sm-weight);}
.cnt-sede__addr{
  display:flex;flex-direction:column;gap:8px;
  font-size:14.5px;color:var(--color-ink);
  padding:24px;border-radius:18px;
  background:rgba(155,203,156,.12);
  border:1px solid rgba(65,89,76,.16);
  margin-bottom:24px;
}
.cnt-sede__addr strong{
  font-weight:500;color:var(--color-forest-900);
  font-size:15.5px;
}
.cnt-sede__addr-meta{
  display:flex;flex-wrap:wrap;gap:8px 18px;
  font-size:12.5px;color:var(--color-forest-500);
  padding-top:12px;margin-top:8px;
  border-top:1px solid rgba(65,89,76,.14);
}
.cnt-sede__cta{
  display:inline-flex;align-items:center;gap:10px;
  font-size:13.5px;font-weight:500;color:var(--color-forest);
  padding:14px 22px;border-radius:var(--radius-pill);
  border:1px solid var(--color-forest);
  align-self:flex-start;
  transition:background .25s, color .25s, transform .25s;
}
.cnt-sede__cta:hover{
  background:var(--color-forest);color:var(--color-cream);
  transform:translateY(-2px);
}
.cnt-sede__cta svg{width:14px;height:14px;}

.cnt-sede__map{
  position:relative;min-height:520px;
  background:linear-gradient(135deg, #41594C 0%, #2B3D35 70%, #1C2820 100%);
  overflow:hidden;
}
/* Forza il fill del Google Maps iframe (sennò usa width/height inline e fa overflow) */
.cnt-sede__map iframe{
  position:absolute;inset:0;
  width:100%;height:100%;
  border:0;display:block;
}
.cnt-sede__map svg{width:100%;height:100%;display:block;}
.cnt-sede__map-pin{
  position:absolute;left:48%;top:46%;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  z-index:2;
}
.cnt-sede__pin-label{
  padding:8px 14px;border-radius:var(--radius-pill);
  background:rgba(255,253,250,.96);color:var(--color-forest-900);
  font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  white-space:nowrap;
  box-shadow:0 8px 20px rgba(0,0,0,.18);
}
.cnt-sede__pin{
  width:36px;height:36px;border-radius:50%;
  background:var(--color-sage);
  border:3px solid var(--color-cream);
  box-shadow:0 6px 18px rgba(0,0,0,.30);
  position:relative;
  animation:cntPulse 2.6s ease-out infinite;
}
.cnt-sede__pin::after{
  content:"";position:absolute;inset:8px;border-radius:50%;
  background:var(--color-forest-900);
}
@keyframes cntPulse{
  0%   { box-shadow:0 0 0 0 rgba(155,203,156,.55), 0 6px 18px rgba(0,0,0,.30);}
  60%  { box-shadow:0 0 0 22px rgba(155,203,156,0),  0 6px 18px rgba(0,0,0,.30);}
  100% { box-shadow:0 0 0 0 rgba(155,203,156,0),    0 6px 18px rgba(0,0,0,.30);}
}

/* -----------------------------------------------------------
   FAQ — minimalist accordion
   ----------------------------------------------------------- */
.cnt-faq{
  position:relative;padding:120px 0;
}
.cnt-faq__head{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:16px;margin:0 auto 56px;max-width:var(--rail);
}
.cnt-faq__title{
  font-family:var(--title-font);font-weight:var(--title-weight);
  font-size:clamp(40px, 4.2vw, 64px);line-height:1.05;letter-spacing:-.012em;
  color:var(--color-forest-900);
}
.cnt-faq__title em{font-style:italic;color:var(--color-forest);}
.cnt-faq__lede{
  font-family:var(--font-sans);font-weight:var(--lede-weight);
  font-size:var(--lede-size);line-height:var(--lede-lh);color:var(--prose-ink);
  max-width:var(--measure-lede);margin:0 auto;
}

/* Lista — usa <details>/<summary> nativi per accordion */
.cnt-faq__list{
  display:flex;flex-direction:column;
  max-width:var(--rail);margin:0 auto;
  border-top:1px solid var(--color-line);
}
.cnt-faq__item{
  border-bottom:1px solid var(--color-line);
}
.cnt-faq__item summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:clamp(24px,3vw,32px) 0;
  font-family:var(--font-sans);font-weight:500;
  font-size:clamp(17px,1.4vw,22px);line-height:1.3;
  color:var(--color-forest-900);
  transition:color .25s;
}
.cnt-faq__item summary::-webkit-details-marker{display:none}
.cnt-faq__item summary::marker{display:none;content:""}
.cnt-faq__item summary:hover{color:var(--color-forest)}
.cnt-faq__q{flex:1;min-width:0}

/* Toggle button (cerchio + / −) */
.cnt-faq__toggle{
  position:relative;flex:none;
  width:40px;height:40px;border-radius:50%;
  border:1px solid var(--color-line);
  display:grid;place-items:center;
  background:var(--color-cream);
  transition:background .25s,border-color .25s,transform .35s var(--easing-out);
}
.cnt-faq__toggle-h,
.cnt-faq__toggle-v{
  position:absolute;background:var(--color-forest);
  transition:transform .3s var(--easing-out),background .25s;
}
.cnt-faq__toggle-h{width:14px;height:1.5px}
.cnt-faq__toggle-v{width:1.5px;height:14px}
.cnt-faq__item summary:hover .cnt-faq__toggle{
  border-color:var(--color-forest);
}
/* Quando details aperto: cerchio diventa scuro, "−" mostrato */
.cnt-faq__item[open] .cnt-faq__toggle{
  background:var(--color-forest);border-color:var(--color-forest);
}
.cnt-faq__item[open] .cnt-faq__toggle-h,
.cnt-faq__item[open] .cnt-faq__toggle-v{background:var(--color-cream)}
.cnt-faq__item[open] .cnt-faq__toggle-v{transform:scaleY(0)}

/* Risposta */
.cnt-faq__answer{
  padding:0 0 36px;max-width:760px;
  font-family:var(--font-sans);font-weight:var(--body-sm-weight);
  font-size:var(--body-sm-size);line-height:var(--body-sm-lh);
  color:var(--prose-ink);
}
.cnt-faq__answer em{font-style:italic;color:var(--color-forest)}
.cnt-faq__answer strong{font-weight:500;color:var(--color-forest-900)}

@media (max-width:900px){
  .cnt-faq__head{grid-template-columns:1fr;gap:24px}
  .cnt-faq__item summary{padding:24px 0}
}

/* -----------------------------------------------------------
   CLOSING — forest band with single-line callout
   ----------------------------------------------------------- */
.cnt-cta{
  position:relative;padding:120px 0;
  background:
    radial-gradient(60% 80% at 80% 0%, rgba(155,203,156,.18) 0%, transparent 60%),
    linear-gradient(180deg, #2B3D35 0%, #1C2820 100%);
  color:var(--color-cream);overflow:hidden;
}
.cnt-cta__inner{text-align:center;max-width:var(--rail);margin:0 auto;}
.cnt-cta__eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--color-sage);font-weight:500;margin-bottom:24px;
  opacity:.92;
}
.cnt-cta__eyebrow .dot{
  width:6px;height:6px;border-radius:50%;background:var(--color-sage);
}
.cnt-cta__title{
  font-family:var(--title-font);font-weight:var(--title-weight);
  font-size:clamp(36px, 4.4vw, 72px);line-height:1.05;letter-spacing:-.005em;
  margin-bottom:24px;
}
.cnt-cta__title em{font-style:italic;color:var(--color-sage);}
.cnt-cta__sub{
  font-size:var(--lede-size);line-height:var(--lede-lh);opacity:.82;max-width:var(--measure-lede);
  margin:0 auto 36px;font-weight:var(--lede-weight);}
.cnt-cta__actions{
  display:flex;justify-content:center;gap:18px;flex-wrap:wrap;
}
/* Botões scoped per dark forest background (sennò .btn--ghost diventa invisibile) */
.cnt-cta .btn--forest{
  background:var(--color-cream);color:var(--color-forest-900);
  border-color:var(--color-cream);
}
.cnt-cta .btn--forest:hover{
  background:var(--color-sage);color:var(--color-forest-900);
  border-color:var(--color-sage);
}
.cnt-cta .btn--ghost{
  background:transparent;color:var(--color-cream);
  border-color:rgba(255,253,250,.55);
}
.cnt-cta .btn--ghost:hover{
  background:var(--color-cream);color:var(--color-forest-900);
  border-color:var(--color-cream);
}

/* Subtle ornament behind CTA */
.cnt-cta::before{
  content:"";position:absolute;left:50%;top:50%;
  width:1100px;height:1100px;border-radius:50%;
  border:1px dashed rgba(155,203,156,.10);
  transform:translate(-50%,-50%);pointer-events:none;
}
.cnt-cta::after{
  content:"";position:absolute;left:50%;top:50%;
  width:760px;height:760px;border-radius:50%;
  border:1px dashed rgba(155,203,156,.08);
  transform:translate(-50%,-50%);pointer-events:none;
}

/* -----------------------------------------------------------
   RESPONSIVE
   ----------------------------------------------------------- */
@media (max-width:1100px){
  .cnt-quick__head{grid-template-columns:1fr;gap:24px;}
  .cnt-quick__sub{justify-self:start;text-align:left;}
  .cnt-form-sect__inner{grid-template-columns:1fr;gap:48px;}
  .cnt-info{position:static;}
  .cnt-sede__inner{grid-template-columns:1fr;}
  .cnt-sede__map{min-height:400px;}
  .cnt-faq__head{grid-template-columns:1fr;gap:18px;}
}
@media (max-width:720px){
  .cnt-hero{padding:calc(var(--nav-h) + 40px) 0 64px;}
  .cnt-quick__grid{grid-template-columns:1fr;}
  .cnt-form-card{padding:36px 28px;}
  .cnt-form__grid{grid-template-columns:1fr;}
  .cnt-sede__copy{padding:44px 28px;}
  .cnt-faq__btn{font-size:18px;padding:22px 0;}
  .cnt-form__actions{flex-direction:column;align-items:stretch;gap:14px;}
  .cnt-form__actions .btn{justify-content:center;}
}
