/* ==========================================================
   Antonio Grassi – Consulente Finanziario
   Design system: antracite + rosso elegante
   ========================================================== */
:root{
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
  --text-3xl: clamp(2.4rem, 1rem + 4vw, 4.5rem);

  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;
  --space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;

  --color-bg:#2A2C38;
  --color-surface:#333645;
  --color-surface-2:#3B3E4F;
  --color-surface-3:#454859;
  --color-border:#4A4D60;
  --color-divider:#3E4152;
  --color-heading:#F5F5F5;
  --color-text:#C9CBD4;
  --color-text-muted:#B0B3C0;
  --color-accent:#E3161D;
  --color-accent-hover:#C8111A;
  --color-accent-soft:rgba(227,22,29,.16);
  --color-accent-text:#FF4A50; /* rosso acceso per titoli e numeri */
  --color-accent-small:#FF6B70; /* rosso acceso leggibile per testi piccoli */
  --color-success:#5DBB7A;

  --font-display:'Manrope','Inter',system-ui,sans-serif;
  --font-body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;

  --radius-sm:.375rem;--radius-md:.625rem;--radius-lg:1rem;--radius-full:9999px;
  --ease:cubic-bezier(.16,1,.3,1);
  --transition:180ms var(--ease);
  --shadow-lg:0 24px 60px rgba(15,16,22,.45);

  --content:1200px;
  --content-narrow:720px;
  --header-h:76px;
  --section-pad:clamp(var(--space-16),9vw,var(--space-32));
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:none;text-size-adjust:none;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--space-4));color-scheme:dark}
body{min-height:100dvh;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,picture,svg,video{display:block;max-width:100%;height:auto}
input,button,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:none}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-heading);line-height:1.12;letter-spacing:-.02em;text-wrap:balance;font-weight:700}
p,li{text-wrap:pretty}
::selection{background:var(--color-accent);color:#fff}
:focus-visible{outline:2px solid var(--color-accent-hover);outline-offset:3px;border-radius:var(--radius-sm)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:var(--space-4);top:-100px;z-index:200;background:var(--color-accent);color:#fff;padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);font-weight:600}
.skip-link:focus{top:var(--space-4)}

.container{width:100%;max-width:var(--content);margin-inline:auto;padding-inline:clamp(var(--space-5),4vw,var(--space-10))}
.narrow{max-width:var(--content-narrow)}
.section{padding-block:var(--section-pad)}
.section--alt{background:var(--color-surface)}
.section--tight{padding-block:clamp(var(--space-12),6vw,var(--space-20))}

/* Placeholder dati da completare */
.ph{color:#FFC04D;background:rgba(255,192,77,.09);border:1px dashed rgba(255,192,77,.45);border-radius:4px;padding:0 .3em;font-weight:500;white-space:nowrap}

/* ---------- Tipografia di sezione ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--color-heading);margin-bottom:var(--space-5)}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--color-accent)}
.h-section{font-size:var(--text-2xl);max-width:22ch}
.h-section em,.hero h1 em,.h-page em{font-style:normal;color:var(--color-accent-text)}
.lead{font-size:var(--text-lg);line-height:1.55;color:var(--color-text);max-width:60ch;font-weight:400}
.section-head{display:flex;flex-direction:column;gap:var(--space-5);margin-bottom:clamp(var(--space-10),5vw,var(--space-16))}
.section-head--split{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:var(--space-8);flex-wrap:wrap}
.section-head p{max-width:56ch}
.muted{color:var(--color-text-muted)}
.small{font-size:var(--text-sm)}
.xs{font-size:var(--text-xs)}

/* ---------- Bottoni ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:600;letter-spacing:.01em;transition:background var(--transition),color var(--transition),border-color var(--transition),transform var(--transition),box-shadow var(--transition);white-space:nowrap}
.btn svg{width:18px;height:18px;flex-shrink:0}
.btn--primary{background:var(--color-accent);color:#fff}
.btn--primary:hover{background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:0 10px 28px rgba(200,16,46,.35)}
.btn--ghost{border:1.5px solid rgba(245,245,245,.85);color:var(--color-heading)}
.btn--ghost:hover{background:var(--color-heading);color:var(--color-bg)}
.btn--dark{background:var(--color-bg);color:#fff}
.btn--dark:hover{background:#1F2029;transform:translateY(-1px)}
.btn--white{background:#fff;color:var(--color-accent)}
.btn--white:hover{background:var(--color-heading);transform:translateY(-1px)}
.btn--sm{min-height:40px;padding:var(--space-2) var(--space-5)}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.link-arrow{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:600;color:var(--color-heading);font-size:var(--text-sm);border-bottom:1px solid var(--color-accent);padding-bottom:2px;transition:gap var(--transition),color var(--transition)}
.link-arrow:hover{gap:var(--space-3);color:#fff}

/* ---------- Header ---------- */
.header{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--header-h);display:flex;align-items:center;transition:background var(--transition),border-color var(--transition),backdrop-filter var(--transition);border-bottom:1px solid transparent}
.header.is-scrolled,.header--solid{background:rgba(42,44,56,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--color-divider)}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);width:100%}
.logo{display:flex;align-items:center;gap:var(--space-3);color:var(--color-heading)}
.logo svg{width:46px;height:46px}
.logo__text{display:flex;flex-direction:column;line-height:1.1}
.logo__name{font-family:var(--font-display);font-weight:800;letter-spacing:.12em;font-size:1.08rem}
.logo__sub{font-size:.66rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--color-accent-small);display:flex;align-items:center;gap:6px;margin-top:4px}
.logo__sub::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--color-accent)}
.logo__sub::after{content:"";width:14px;height:2px;background:var(--color-accent)}
.nav{display:flex;align-items:center;gap:var(--space-1)}
.nav a{font-size:var(--text-sm);font-weight:500;color:var(--color-text);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:color var(--transition)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--color-heading)}
.nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--color-accent)}
.header__cta{display:flex;align-items:center;gap:var(--space-3)}
.header__phone{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-heading);font-weight:500}
.header__phone svg{width:16px;height:16px;color:var(--color-accent-text)}
.menu-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--color-heading)}
.menu-toggle svg{width:26px;height:26px}
.mobile-nav{position:fixed;inset:var(--header-h) 0 0 0;background:var(--color-bg);z-index:99;padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;gap:var(--space-2);transform:translateX(100%);transition:transform 300ms var(--ease);overflow:auto;visibility:hidden}
.mobile-nav.is-open{transform:none;visibility:visible}
.mobile-nav a:not(.btn){font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--color-heading);padding:var(--space-3) 0;border-bottom:1px solid var(--color-divider)}
.mobile-nav .btn{margin-top:var(--space-6)}

@media (max-width:1080px){.header__phone{display:none}}
@media (max-width:960px){
  .nav{display:none}.menu-toggle{display:inline-flex}
  .header__cta .btn{display:none}
}
@media (min-width:1101px){.mobile-nav{display:none}}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding-top:calc(var(--header-h) + var(--space-16));padding-bottom:clamp(var(--space-16),8vw,var(--space-24));overflow:hidden;isolation:isolate}
.hero__bg{position:absolute;inset:0;z-index:-2}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:70% center}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(42,44,56,.94) 0%,rgba(42,44,56,.78) 42%,rgba(42,44,56,.25) 75%,rgba(42,44,56,.35) 100%),linear-gradient(0deg,rgba(42,44,56,1) 0%,rgba(42,44,56,0) 38%)}
.hero__content{max-width:760px}
.hero h1{font-size:var(--text-3xl);font-weight:800;letter-spacing:-.03em;margin-bottom:var(--space-6)}
.hero__sub{font-size:var(--text-lg);color:var(--color-heading);opacity:.9;margin-bottom:var(--space-3);font-weight:500}
.hero__desc{max-width:52ch;margin-bottom:var(--space-10)}
.hero__meta{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-8);margin-top:var(--space-10);font-size:var(--text-xs);color:var(--color-text);letter-spacing:.04em}
.hero__meta span{display:flex;align-items:center;gap:var(--space-2)}
.hero__meta svg{width:16px;height:16px;color:var(--color-accent-text)}
@media (max-width:720px){
  .hero{align-items:flex-end;min-height:92svh}
  .hero__bg img{object-position:78% center}
  .hero::before{background:linear-gradient(0deg,rgba(42,44,56,1) 0%,rgba(42,44,56,.86) 45%,rgba(42,44,56,.35) 100%)}
  .hero .btn-row .btn{width:100%}
}

/* ---------- Barra numeri ---------- */
.trust{border-block:1px solid var(--color-divider);background:var(--color-bg)}
.trust__grid{display:grid;grid-template-columns:repeat(4,1fr)}
.trust__item{padding:var(--space-10) var(--space-6);border-left:1px solid var(--color-divider);display:flex;flex-direction:column;gap:var(--space-2)}
.trust__item:first-child{border-left:none;padding-left:0}
.trust__num{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:800;color:var(--color-heading);line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.trust__num sup,.trust__num .red{color:var(--color-accent-text)}
.trust__label{font-size:var(--text-sm);color:var(--color-text)}
@media (max-width:860px){.trust__grid{grid-template-columns:repeat(2,1fr)}.trust__item{padding:var(--space-8) var(--space-4)}.trust__item:nth-child(3){border-left:none;padding-left:0}.trust__item:nth-child(n+3){border-top:1px solid var(--color-divider)}}

/* ---------- Split (chi sono) ---------- */
.split{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(var(--space-10),6vw,var(--space-24));align-items:center}
.split--rev .split__media{order:2}
.split__media{position:relative}
.split__media img{border-radius:var(--radius-lg);width:100%;aspect-ratio:4/5;object-fit:cover}
.split__body{display:flex;flex-direction:column;gap:var(--space-5)}
.split__body p{max-width:58ch}
@media (max-width:860px){.split{grid-template-columns:1fr}.split--rev .split__media{order:0}}

.portrait{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5;background:linear-gradient(160deg,#3B3E4F,#2A2C38);border:1px solid var(--color-border);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);text-align:center;padding:var(--space-8)}
.portrait svg{width:96px;height:96px;color:var(--color-heading);opacity:.9}
.portrait__note{font-size:var(--text-xs);color:var(--color-text-muted);max-width:28ch}
.portrait--img{padding:0;display:block}
.portrait--img img{width:100%;height:100%;object-fit:cover}
.badge-float{position:absolute;right:calc(var(--space-6) * -1);bottom:var(--space-10);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-lg);display:flex;gap:var(--space-3);align-items:center;max-width:260px}
.badge-float strong{display:block;color:var(--color-heading);font-family:var(--font-display);font-size:var(--text-lg);line-height:1.1}
.badge-float span{font-size:var(--text-xs)}
.badge-float .dot{width:10px;height:10px;border-radius:50%;background:var(--color-accent);flex-shrink:0}
@media (max-width:860px){.badge-float{right:var(--space-4)}}

.checklist{list-style:none;display:grid;gap:var(--space-3)}
.checklist li{display:flex;gap:var(--space-3);align-items:flex-start}
.checklist li::before{content:"";flex-shrink:0;width:18px;height:2px;background:var(--color-accent);margin-top:.8em}

/* ---------- Card servizi ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-5)}
@media (max-width:960px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid-3,.grid-2{grid-template-columns:1fr}}
.card{position:relative;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-4);transition:border-color var(--transition),transform var(--transition),background var(--transition)}
.section--alt .card{background:var(--color-surface-2)}
.card:hover{border-color:#444;transform:translateY(-3px)}
.card__icon{width:48px;height:48px;border-radius:var(--radius-md);background:var(--color-accent-soft);display:flex;align-items:center;justify-content:center;color:var(--color-accent-text)}
.card__icon svg{width:24px;height:24px}
.card h3{font-size:var(--text-lg)}
.card p{font-size:var(--text-sm);flex:1}
.card .link-arrow{align-self:flex-start;margin-top:var(--space-2)}
.card a.stretched::after{content:"";position:absolute;inset:0}

/* ---------- Metodo ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5);counter-reset:step;position:relative}
.step{position:relative;padding:var(--space-8) var(--space-6) var(--space-8) 0;border-top:1px solid var(--color-border)}
.step::before{content:"";position:absolute;top:-1px;left:0;height:2px;width:0;background:var(--color-accent);transition:width 900ms var(--ease)}
.step.is-visible::before{width:100%}
.step__num{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:800;color:var(--color-accent-text);line-height:1;margin-bottom:var(--space-5);display:block}
.step h3{font-size:var(--text-lg);margin-bottom:var(--space-3)}
.step p{font-size:var(--text-sm)}
@media (max-width:960px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* ---------- Target ---------- */
.target-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-5)}
.target{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface-2);border:1px solid var(--color-border);display:flex;flex-direction:column}
.target:nth-child(1),.target:nth-child(2){grid-column:span 3}
.target:nth-child(n+3){grid-column:span 2}
.target__img{aspect-ratio:16/9;overflow:hidden}
.target__img img{width:100%;height:100%;object-fit:cover;transition:transform 700ms var(--ease);filter:saturate(.9)}
.target:hover .target__img img{transform:scale(1.04)}
.target__body{padding:var(--space-6) var(--space-6) var(--space-8);display:flex;flex-direction:column;gap:var(--space-3)}
.target__tag{font-size:var(--text-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent-small)}
.target h3{font-size:var(--text-lg)}
.target p{font-size:var(--text-sm)}
@media (max-width:960px){.target-grid{grid-template-columns:repeat(2,1fr)}.target:nth-child(n){grid-column:span 1}.target:nth-child(5){grid-column:span 2}}
@media (max-width:600px){.target-grid{grid-template-columns:1fr}.target:nth-child(n){grid-column:span 1}}

/* ---------- Lead magnet ---------- */
.lead-magnet{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(var(--space-8),5vw,var(--space-20));align-items:center;background:linear-gradient(135deg,#3B3E4F 0%,#2A2C38 100%);border:1px solid var(--color-border);border-radius:calc(var(--radius-lg) * 1.5);padding:clamp(var(--space-8),5vw,var(--space-16));position:relative;overflow:hidden}
.lead-magnet::after{content:"";position:absolute;right:-120px;top:-120px;width:320px;height:320px;border-radius:50%;border:1px solid rgba(200,16,46,.35)}
.guide-cover{aspect-ratio:3/4;max-width:300px;margin-inline:auto;width:100%;background:#F5F5F5;border-radius:6px 14px 14px 6px;padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;justify-content:space-between;color:#111;box-shadow:-12px 24px 50px rgba(0,0,0,.6),inset 6px 0 0 #E3161D;transform:rotate(-3deg);transition:transform 500ms var(--ease)}
.lead-magnet:hover .guide-cover{transform:rotate(0)}
.guide-cover__kicker{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#E3161D}
.guide-cover__title{font-family:var(--font-display);font-weight:800;font-size:clamp(1.5rem,1.1rem + 1.4vw,2.1rem);line-height:1.05;letter-spacing:-.02em;color:#111}
.guide-cover__title span{color:#E3161D}
.guide-cover__foot{font-size:.72rem;letter-spacing:.14em;font-weight:700;border-top:2px solid #111;padding-top:var(--space-3)}
@media (max-width:860px){.lead-magnet{grid-template-columns:1fr}.guide-cover{max-width:220px}}

/* ---------- Form ---------- */
.form{display:grid;gap:var(--space-4)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
@media (max-width:600px){.form-row{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:var(--space-2)}
.field label,.field .label{font-size:var(--text-sm);font-weight:500;color:var(--color-heading)}
.field .opt{color:var(--color-text-muted);font-weight:400}
.input,.select,.textarea{width:100%;min-height:50px;background:var(--color-bg);border:1px solid #3A3A3A;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--color-heading);font-size:var(--text-base);transition:border-color var(--transition),box-shadow var(--transition)}
.textarea{min-height:110px;resize:vertical}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23B3B3B3' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:var(--space-10)}
.input::placeholder,.textarea::placeholder{color:#777}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--color-accent-hover);box-shadow:0 0 0 3px rgba(224,24,47,.25)}
.input[aria-invalid="true"],.select[aria-invalid="true"]{border-color:#FF6B70}
.error-msg{font-size:var(--text-xs);color:#FF7A8A;min-height:0}
.consent{display:flex;gap:var(--space-3);align-items:flex-start;font-size:var(--text-xs);line-height:1.5}
.consent input{width:20px;height:20px;accent-color:var(--color-accent);flex-shrink:0;margin-top:2px}
.consent a{text-decoration:underline;color:var(--color-heading)}
.form-success{display:none;padding:var(--space-6);border-radius:var(--radius-md);background:rgba(93,187,122,.1);border:1px solid rgba(93,187,122,.4);color:var(--color-heading)}
.form-success.is-visible{display:block}
.form-success strong{display:block;margin-bottom:var(--space-2)}
.inline-form{display:flex;gap:var(--space-3);flex-wrap:wrap}
.inline-form .input{flex:1 1 220px}

/* ---------- Recensioni ---------- */
.reviews{position:relative}
.reviews__track{display:flex;gap:var(--space-5);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:var(--space-2)}
.reviews__track::-webkit-scrollbar{display:none}
.review{scroll-snap-align:start;flex:0 0 calc((100% - 2 * var(--space-5)) / 3);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-5)}
@media (max-width:960px){.review{flex-basis:calc((100% - var(--space-5)) / 2)}}
@media (max-width:640px){.review{flex-basis:88%}}
.stars{display:flex;gap:3px;color:#F4B400}
.stars svg{width:18px;height:18px}
.review blockquote{color:var(--color-heading);font-size:var(--text-base);line-height:1.6;flex:1}
.review__author{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm)}
.review__avatar{width:40px;height:40px;border-radius:50%;background:var(--color-surface-3);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--color-heading);font-family:var(--font-display)}
.review__author strong{display:block;color:var(--color-heading)}
.example-tag{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:#FFC04D;border:1px dashed rgba(255,192,77,.5);border-radius:4px;padding:2px 6px;align-self:flex-start}
.carousel-ctrl{display:flex;gap:var(--space-2)}
.carousel-ctrl button{width:48px;height:48px;border-radius:50%;border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-heading);transition:background var(--transition),border-color var(--transition)}
.carousel-ctrl button:hover{background:var(--color-surface-3);border-color:#555}
.carousel-ctrl svg{width:20px;height:20px}
.google-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;margin-top:var(--space-10);padding:var(--space-5) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg)}
.google-bar__score{display:flex;align-items:center;gap:var(--space-4)}
.google-bar__score strong{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-heading)}

/* ---------- Blog cards ---------- */
.post-card{display:flex;flex-direction:column;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition),transform var(--transition);position:relative}
.post-card:hover{border-color:#444;transform:translateY(-3px)}
.post-card__img{aspect-ratio:16/10;overflow:hidden;background:var(--color-surface-3)}
.post-card__img img{width:100%;height:100%;object-fit:cover}
.post-card__body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);flex:1}
.post-meta{display:flex;gap:var(--space-3);align-items:center;font-size:var(--text-xs);color:var(--color-text-muted)}
.cat{font-size:var(--text-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent-small)}
.post-card h3{font-size:var(--text-lg)}
.post-card h3 a::after{content:"";position:absolute;inset:0}
.post-card p{font-size:var(--text-sm)}
.filters{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-10)}
.chip{min-height:40px;padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);border:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text);transition:all var(--transition)}
.chip:hover{color:var(--color-heading);border-color:#555}
.chip[aria-pressed="true"]{background:var(--color-heading);color:var(--color-bg);border-color:var(--color-heading)}
.reels{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5)}
.reel{aspect-ratio:9/16;border-radius:var(--radius-lg);overflow:hidden;position:relative;background:var(--color-surface-2);border:1px solid var(--color-border);display:flex;align-items:flex-end}
.reel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.reel__body{position:relative;padding:var(--space-5);background:linear-gradient(0deg,rgba(0,0,0,.9),transparent);width:100%}
.reel__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;background:rgba(200,16,46,.92);display:flex;align-items:center;justify-content:center;color:#fff}
.reel__play svg{width:24px;height:24px;margin-left:3px}
.reel h3{font-size:var(--text-base);font-family:var(--font-body);font-weight:600}
@media (max-width:960px){.reels{grid-template-columns:repeat(2,1fr)}}

/* ---------- FAQ ---------- */
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(var(--space-8),6vw,var(--space-20));align-items:start}
@media (max-width:860px){.faq{grid-template-columns:1fr}}
.accordion{border-top:1px solid var(--color-border)}
.acc-item{border-bottom:1px solid var(--color-border)}
.acc-item h3{font-size:inherit}
.acc-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--space-5);padding:var(--space-6) 0;text-align:left;font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--color-heading)}
.acc-btn .ico{flex-shrink:0;width:32px;height:32px;border-radius:50%;border:1px solid var(--color-border);position:relative;transition:background var(--transition),border-color var(--transition)}
.acc-btn .ico::before,.acc-btn .ico::after{content:"";position:absolute;top:50%;left:50%;width:12px;height:1.5px;background:currentColor;transform:translate(-50%,-50%);transition:transform var(--transition)}
.acc-btn .ico::after{transform:translate(-50%,-50%) rotate(90deg)}
.acc-btn[aria-expanded="true"] .ico{background:var(--color-accent);border-color:var(--color-accent)}
.acc-btn[aria-expanded="true"] .ico::after{transform:translate(-50%,-50%) rotate(0)}
.acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows 320ms var(--ease)}
.acc-panel > div{overflow:hidden}
.acc-panel.is-open{grid-template-rows:1fr}
.acc-panel p{padding-bottom:var(--space-6);max-width:65ch}

/* ---------- CTA rossa ---------- */
.cta-band{background:var(--color-accent);color:#fff;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:auto -10% -60% auto;width:620px;height:620px;border-radius:50%;border:1px solid rgba(255,255,255,.18)}
.cta-band::after{content:"";position:absolute;inset:auto -4% -40% auto;width:420px;height:420px;border-radius:50%;border:1px solid rgba(255,255,255,.14)}
.cta-band__inner{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:var(--space-8);flex-wrap:wrap;padding-block:clamp(var(--space-16),8vw,var(--space-24))}
.cta-band h2{color:#fff;font-size:var(--text-2xl);max-width:18ch}
.cta-band p{color:rgba(255,255,255,.9);margin-top:var(--space-4);max-width:48ch}

/* CTA inline tra sezioni */
.inline-cta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap;margin-top:clamp(var(--space-10),5vw,var(--space-16));padding-top:var(--space-8);border-top:1px solid var(--color-divider)}
.inline-cta p{color:var(--color-heading);font-weight:500;font-size:var(--text-base)}

/* ---------- Page hero (interne) ---------- */
.page-hero{position:relative;padding-top:calc(var(--header-h) + clamp(var(--space-16),8vw,var(--space-24)));padding-bottom:clamp(var(--space-12),6vw,var(--space-20));border-bottom:1px solid var(--color-divider);overflow:hidden;isolation:isolate}
.page-hero--img::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(42,44,56,.96) 0%,rgba(42,44,56,.8) 55%,rgba(42,44,56,.45) 100%)}
.page-hero__bg{position:absolute;inset:0;z-index:-2}
.page-hero__bg img{width:100%;height:100%;object-fit:cover}
.h-page{font-size:var(--text-2xl);max-width:20ch;margin-bottom:var(--space-6)}
.breadcrumb{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-6)}
.breadcrumb a:hover{color:var(--color-heading)}
.breadcrumb span[aria-hidden]{color:var(--color-accent-text)}

/* prose (articoli e pagine legali) */
.prose{max-width:68ch}
.prose > * + *{margin-top:var(--space-5)}
.prose h2{font-size:var(--text-xl);margin-top:var(--space-12)}
.prose h3{font-size:var(--text-lg);margin-top:var(--space-8)}
.prose ul,.prose ol{padding-left:var(--space-6);display:grid;gap:var(--space-2)}
.prose li::marker{color:var(--color-accent-text)}
.prose a{color:var(--color-heading);text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:3px}
.prose strong{color:var(--color-heading)}
.prose blockquote{border-left:3px solid var(--color-accent);padding:var(--space-2) 0 var(--space-2) var(--space-6);color:var(--color-heading);font-size:var(--text-lg);font-family:var(--font-display)}
.callout{background:var(--color-surface-2);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--radius-md);padding:var(--space-6)}
.callout strong{color:var(--color-heading)}
.article-layout{display:grid;grid-template-columns:1fr 320px;gap:clamp(var(--space-10),5vw,var(--space-20));align-items:start}
.aside-sticky{position:sticky;top:calc(var(--header-h) + var(--space-6));display:grid;gap:var(--space-5)}
.aside-card{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);display:grid;gap:var(--space-4)}
.aside-card h2,.aside-card h3{font-size:var(--text-lg)}
.aside-card p{font-size:var(--text-sm)}
@media (max-width:960px){.article-layout{grid-template-columns:1fr}.aside-sticky{position:static}}

/* ---------- Calcolatori ---------- */
.calc{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:calc(var(--radius-lg) * 1.4);overflow:hidden}
.calc__inputs{padding:clamp(var(--space-6),4vw,var(--space-10));display:grid;gap:var(--space-6);align-content:start}
.calc__out{padding:clamp(var(--space-6),4vw,var(--space-10));background:var(--color-bg);border-left:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-6)}
@media (max-width:860px){.calc{grid-template-columns:1fr}.calc__out{border-left:none;border-top:1px solid var(--color-border)}}
.range-field{display:grid;gap:var(--space-2)}
.range-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3)}
.range-head label{font-size:var(--text-sm);font-weight:500;color:var(--color-heading)}
.range-head output,.range-head .val{font-family:var(--font-display);font-weight:700;color:var(--color-heading);font-variant-numeric:tabular-nums;font-size:var(--text-base)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent}
input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(90deg,var(--color-accent) var(--p,50%),#3A3A3A var(--p,50%))}
input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:#3A3A3A}
input[type=range]::-moz-range-progress{height:4px;border-radius:4px;background:var(--color-accent)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:4px solid var(--color-accent);margin-top:-9px;box-shadow:0 2px 8px rgba(0,0,0,.5)}
input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:4px solid var(--color-accent)}
.result-main{display:flex;flex-direction:column;gap:var(--space-1)}
.result-main .label{font-size:var(--text-sm)}
.result-main .big{font-family:var(--font-display);font-weight:800;font-size:var(--text-2xl);color:var(--color-heading);line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.result-main .big.red{color:var(--color-accent-text)}
.result-rows{display:grid;gap:var(--space-3)}
.result-row{display:flex;justify-content:space-between;gap:var(--space-4);font-size:var(--text-sm);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-divider)}
.result-row strong{color:var(--color-heading);font-variant-numeric:tabular-nums}
.bars{display:flex;align-items:flex-end;gap:6px;height:140px;padding-top:var(--space-2)}
.bars div{flex:1;display:flex;flex-direction:column-reverse;border-radius:3px 3px 0 0;overflow:hidden;min-height:2px}
.bars .b-dep{background:#4A4A4A}
.bars .b-gain{background:var(--color-accent)}
.legend{display:flex;gap:var(--space-5);font-size:var(--text-xs)}
.legend span{display:flex;align-items:center;gap:var(--space-2)}
.legend i{width:10px;height:10px;border-radius:2px;display:inline-block}
.disclaimer{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.55;border-top:1px solid var(--color-divider);padding-top:var(--space-4)}
.seg{display:inline-flex;border:1px solid #3A3A3A;border-radius:var(--radius-full);padding:3px;gap:2px;flex-wrap:wrap}
.seg button{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--color-text);min-height:38px}
.seg button[aria-pressed="true"]{background:var(--color-heading);color:var(--color-bg);font-weight:600}
.gap-meter{height:12px;border-radius:12px;background:#3A3A3A;overflow:hidden;display:flex}
.gap-meter .fill{background:var(--color-heading);transition:width 400ms var(--ease)}
.gap-meter .gap{background:var(--color-accent);transition:width 400ms var(--ease)}

/* ---------- Contatti ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(var(--space-8),5vw,var(--space-16));align-items:start}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-list{list-style:none;display:grid;gap:var(--space-2)}
.contact-list li a,.contact-list li > div{display:flex;gap:var(--space-4);align-items:flex-start;padding:var(--space-4);border-radius:var(--radius-md);transition:background var(--transition)}
.contact-list li a:hover{background:var(--color-surface-2)}
.contact-list .ci{width:44px;height:44px;border-radius:var(--radius-md);background:var(--color-accent-soft);color:var(--color-accent-text);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.contact-list .ci svg{width:20px;height:20px}
.contact-list strong{display:block;color:var(--color-heading);font-size:var(--text-base)}
.contact-list span{font-size:var(--text-sm)}
.panel{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:calc(var(--radius-lg) * 1.4);padding:clamp(var(--space-6),4vw,var(--space-10))}
.panel h2{font-size:var(--text-xl);margin-bottom:var(--space-2)}
.map-box{position:relative;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);aspect-ratio:16/9;background:#2A2C38 url('assets/img/castello-estense.webp') center/cover}
.map-box::before{content:"";position:absolute;inset:0;background:rgba(42,44,56,.8)}
.map-box__inner{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);text-align:center;padding:var(--space-6)}
.map-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.6) invert(.9) hue-rotate(180deg)}
.hours{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.hours td{padding:var(--space-3) 0;border-bottom:1px solid var(--color-divider)}
.hours td:last-child{text-align:right;color:var(--color-heading);font-variant-numeric:tabular-nums}
.booking{border:1px dashed #555;border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;display:grid;gap:var(--space-4);justify-items:center}
.booking svg{width:40px;height:40px;color:var(--color-accent-text)}

/* ---------- Tabelle servizi / valori ---------- */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8)}
.value h3{font-size:var(--text-lg);margin:var(--space-4) 0 var(--space-2)}
.value p{font-size:var(--text-sm)}
.value__n{font-family:var(--font-display);color:var(--color-accent-text);font-weight:800;font-size:var(--text-sm);letter-spacing:.1em}
@media (max-width:860px){.values{grid-template-columns:1fr}}
.timeline{list-style:none;border-left:1px solid var(--color-border);margin-left:var(--space-2);display:grid;gap:var(--space-8)}
.timeline li{position:relative;padding-left:var(--space-8)}
.timeline li::before{content:"";position:absolute;left:-6px;top:.45em;width:11px;height:11px;border-radius:50%;background:var(--color-bg);border:2px solid var(--color-accent)}
.timeline .yr{font-family:var(--font-display);font-weight:700;color:var(--color-heading);font-size:var(--text-sm);letter-spacing:.06em}
.timeline h3{font-size:var(--text-base);font-family:var(--font-body);margin:var(--space-1) 0}
.timeline p{font-size:var(--text-sm)}
.full-bleed{height:clamp(280px,45vw,560px);position:relative;overflow:hidden}
.full-bleed img{width:100%;height:100%;object-fit:cover}
.full-bleed figcaption{position:absolute;left:0;right:0;bottom:0;padding:var(--space-6) 0;background:linear-gradient(0deg,rgba(0,0,0,.85),transparent);font-size:var(--text-xs);color:var(--color-heading);letter-spacing:.08em;text-transform:uppercase}

/* ---------- Footer ---------- */
.footer{background:#22242E;border-top:1px solid var(--color-divider);padding-top:clamp(var(--space-16),7vw,var(--space-24));font-size:var(--text-sm)}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:var(--space-10)}
@media (max-width:960px){.footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer__grid{grid-template-columns:1fr}}
.footer h2{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-heading);margin-bottom:var(--space-5);font-weight:600}
.footer ul{list-style:none;display:grid;gap:var(--space-3)}
.footer a:hover{color:var(--color-heading)}
.social{display:flex;gap:var(--space-2);margin-top:var(--space-6)}
.social a{width:44px;height:44px;border-radius:50%;border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-heading);transition:background var(--transition),border-color var(--transition)}
.social a:hover{background:var(--color-accent);border-color:var(--color-accent)}
.social svg{width:18px;height:18px}
.footer__legal{margin-top:clamp(var(--space-12),5vw,var(--space-16));border-top:1px solid var(--color-divider);padding-block:var(--space-8);display:grid;gap:var(--space-4);font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.6}
.footer__legal strong{color:var(--color-text)}
.footer__bottom{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding-top:var(--space-4)}
.footer__bottom nav{display:flex;gap:var(--space-5);flex-wrap:wrap}

/* ---------- WhatsApp flottante ---------- */
.wa-float{position:fixed;right:clamp(var(--space-4),2vw,var(--space-8));bottom:clamp(var(--space-4),2vw,var(--space-8));z-index:90;width:60px;height:60px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(0,0,0,.5);transition:transform var(--transition)}
.wa-float:hover{transform:scale(1.07)}
.wa-float svg{width:30px;height:30px}
.wa-float__tip{position:absolute;right:72px;white-space:nowrap;background:#fff;color:#111;font-size:var(--text-xs);font-weight:600;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);opacity:0;transform:translateX(6px);transition:all var(--transition);pointer-events:none}
.wa-float:hover .wa-float__tip,.wa-float:focus-visible .wa-float__tip{opacity:1;transform:none}

/* ---------- Mobile sticky CTA ---------- */
.mobile-bar{display:none}
@media (max-width:960px){
  .mobile-bar{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2);position:fixed;left:0;right:0;bottom:0;z-index:89;padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));background:rgba(42,44,56,.94);backdrop-filter:blur(12px);border-top:1px solid var(--color-divider)}
  .mobile-bar .btn{min-height:46px}
  .wa-float{bottom:calc(84px + env(safe-area-inset-bottom))}
  body{padding-bottom:72px}
}

/* ---------- Cookie banner ---------- */
.cookie{position:fixed;left:var(--space-4);bottom:var(--space-4);z-index:120;max-width:440px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-lg);display:none;gap:var(--space-4)}
.cookie.is-visible{display:grid}
.cookie h2{font-size:var(--text-base);font-family:var(--font-body)}
.cookie p{font-size:var(--text-xs)}
.cookie a{text-decoration:underline;color:var(--color-heading)}
.cookie .btn-row .btn{flex:1}
@media (max-width:960px){.cookie{left:var(--space-3);right:var(--space-3);bottom:calc(84px + env(safe-area-inset-bottom));max-width:none}}

/* ---------- Service detail ---------- */
.feature-list{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-5)}
@media (max-width:700px){.feature-list{grid-template-columns:1fr}}
.feature{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-2)}
.feature h3{font-size:var(--text-base);font-family:var(--font-body);font-weight:600;margin-bottom:var(--space-2)}
.feature p{font-size:var(--text-sm)}
.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.chips span{font-size:var(--text-xs);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full)}

/* ---------- Animazioni ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity 800ms var(--ease),transform 800ms var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}
.bars div span{display:block;width:100%}
.nav a{white-space:nowrap}
.logo__name{white-space:nowrap}
.link-arrow{white-space:nowrap}
.link-arrow svg{width:16px;height:16px;flex-shrink:0}
.trust__num .ph{font-size:.55em;vertical-align:middle}
.google-bar__score strong .ph{font-size:.7em}
@media (max-width:1240px){.header__phone span{display:none}}
@media (max-width:1100px) and (min-width:961px){.nav a{padding-inline:var(--space-2)}}
.target .card__icon + .target__body{padding-top:var(--space-4)}
.target:not(:has(.target__img)){justify-content:flex-start}
.panel h2 svg{width:22px;height:22px;color:var(--color-accent-text);flex-shrink:0}
.article-layout .steps{grid-template-columns:repeat(2,1fr);column-gap:var(--space-8)}
@media (max-width:560px){.article-layout .steps{grid-template-columns:1fr}}
@media (max-width:600px){.seg{display:flex;width:100%;flex-wrap:nowrap}.seg button{flex:1;padding-inline:var(--space-2);font-size:var(--text-xs)}}

/* Fasce fotografiche tra le sezioni */
.band{position:relative;margin:0;height:clamp(180px,26vw,380px);overflow:hidden;background:var(--color-surface)}
.band img{width:100%;height:100%;object-fit:cover;display:block}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,44,56,.35) 0%,rgba(42,44,56,0) 30%,rgba(42,44,56,0) 65%,rgba(42,44,56,.55) 100%);pointer-events:none}
.band__cap{position:absolute;left:clamp(var(--space-4),5vw,var(--space-16));bottom:var(--space-4);z-index:1;font-size:var(--text-xs);letter-spacing:.06em;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6)}

.approach{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(var(--space-8),5vw,var(--space-20));align-items:start}
.approach .lead{font-size:var(--text-lg);color:var(--color-heading);margin-bottom:var(--space-4)}
@media (max-width:860px){.approach{grid-template-columns:1fr}}
.story-slot{margin-top:var(--space-6);padding:var(--space-5) var(--space-6);border:1px dashed var(--color-accent-text);border-radius:var(--radius-lg);background:var(--color-accent-soft)}
.story-slot p{font-size:var(--text-sm);margin:0}
.story-slot__label{font-size:var(--text-xs)!important;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent-small);margin-bottom:var(--space-2)!important;font-weight:600}

.guide-cover{background:#FFFFFF;color:#111}
.guide-cover .guide-cover__title{color:#111}
.guide-cover__logo{border-radius:3px}
.guide-cover__logo{width:100%;height:auto;display:block}
.guide-cover .guide-cover__title{font-size:clamp(1.25rem,1rem + .9vw,1.6rem);line-height:1.1}

/* ---- Luogo in hero ---- */
.hero__place{display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);padding:.45rem .95rem .45rem .75rem;border-radius:999px;background:rgba(20,20,26,.55);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#F5F5F5;font-size:var(--text-sm);font-weight:600;letter-spacing:.02em}
.hero__place svg{width:16px;height:16px;color:#FF4A50}

/* ---- Download diretto guida ---- */
.guide-direct{margin-top:var(--space-5);font-size:var(--text-sm);color:var(--color-text)}
.guide-direct a{display:inline-flex;align-items:center;gap:.4em;color:var(--color-heading);font-weight:600;text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:4px}
.guide-direct svg{width:16px;height:16px;color:var(--color-accent-text)}

/* ---- Uffici con mappa ---- */
.offices{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-6)}
@media (max-width:860px){.offices{grid-template-columns:1fr}}
.office{background:var(--color-surface,#333645);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}
.office__map{aspect-ratio:16/10;background:#2A2C38}
.office__map iframe{width:100%;height:100%;border:0;display:block}
.office__body{padding:var(--space-6)}
.office__city{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#FF6B70;margin-bottom:var(--space-2)}
.office__body h3{font-size:var(--text-lg);color:var(--color-heading)}
.office__body p{margin-top:var(--space-2)}
.office__btns{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}
.btn--sm{padding:.6rem 1rem;font-size:var(--text-sm)}
.btn--sm svg{width:16px;height:16px}
.guide-note{margin:var(--space-4) 0 var(--space-5);font-size:var(--text-sm);color:var(--color-text);max-width:48ch}

/* ---- Galleria studio ---- */
.office-gallery-head{margin:var(--space-16) 0 var(--space-6)}
.office-gallery-head h3{font-size:var(--text-xl);color:var(--color-heading)}
.office-gallery-head p{margin-top:var(--space-2);max-width:56ch}
.office-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:var(--space-4)}
.og{position:relative;margin:0;border-radius:var(--radius-lg);overflow:hidden;background:#2A2C38}
.og img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease)}
.og:hover img{transform:scale(1.03)}
.og--wide{grid-column:span 2;grid-row:span 2}
.og--tall{grid-row:span 2}
.og--wide2{grid-column:span 2}
.og figcaption{position:absolute;left:var(--space-4);bottom:var(--space-4);padding:.35rem .75rem;border-radius:999px;background:rgba(20,20,26,.7);color:#F5F5F5;font-size:var(--text-xs);font-weight:600;letter-spacing:.04em}
@media (max-width:860px){.office-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px;gap:var(--space-3)}.og--wide,.og--wide2{grid-column:span 2}.og--wide{grid-row:span 2}}
.section--tight{padding-block:var(--space-12) 0}
.contact-gallery .office-gallery-head{margin-top:0}
@media (max-width:1400px){.nav a{padding-inline:var(--space-2)}.header__phone{display:none}}
@media (max-width:1200px) and (min-width:961px){.nav a{font-size:.8rem;padding-inline:.4rem}.logo__name{font-size:.95rem}.logo__sub{font-size:.6rem}}
.logo svg{flex-shrink:0}
@media (max-width:1100px){.nav{display:none}.menu-toggle{display:inline-flex}}

/* ---- Citazione Seneca in Chi sono ---- */
.hero-quote{margin:var(--space-8) 0 var(--space-6);padding-left:var(--space-6);border-left:4px solid var(--color-accent);max-width:30ch;font-family:var(--font-display);font-weight:800;font-size:clamp(1.6rem,1.1rem + 2vw,2.6rem);line-height:1.15;letter-spacing:-.02em;color:#F5F5F5}
.hero-quote em{font-style:normal;color:var(--color-accent-text)}
.hero-quote cite{display:block;margin-top:var(--space-4);font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;font-style:normal;letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-text)}
/* ---- Racconto ---- */
.story{margin:var(--space-6) 0;padding:var(--space-6);border-left:3px solid var(--color-accent);background:var(--color-surface);border-radius:0 var(--radius-lg) var(--radius-lg) 0}
.story__label{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#FF6B70;margin-bottom:var(--space-3)}
.story p+p{margin-top:var(--space-3)}
/* Seneca: tutta in rosso, più grande */
.hero-quote{max-width:26ch;font-size:clamp(1.9rem,1.2rem + 2.6vw,3.2rem);font-weight:800;color:var(--color-accent-text)}
.hero-quote em{color:var(--color-accent-text)}
.hero-quote cite{color:#F5F5F5}
/* Einstein */
.einstein{display:grid;grid-template-columns:220px 1fr;gap:var(--space-10);align-items:center;margin:0;padding:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:var(--radius-lg)}
.einstein img{width:220px;height:260px;object-fit:cover;object-position:center 20%;border-radius:var(--radius-md);filter:grayscale(1) contrast(1.05)}
.einstein blockquote{margin:0}
.einstein blockquote p{font-family:var(--font-display);font-weight:800;font-size:clamp(1.4rem,1rem + 1.6vw,2.2rem);line-height:1.2;letter-spacing:-.02em;color:var(--color-heading)}
.einstein blockquote em{font-style:normal;color:var(--color-accent-text)}
.einstein footer{margin-top:var(--space-4);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#FF6B70}
@media (max-width:720px){.einstein{grid-template-columns:1fr;gap:var(--space-6);padding:var(--space-6)}.einstein img{width:140px;height:165px}}
/* Einstein v2 */
.einstein{grid-template-columns:1.25fr 1fr;padding:0;overflow:hidden;gap:0}
.einstein img{width:100%;height:100%;min-height:320px;object-fit:cover;object-position:left center;border-radius:0;filter:none}
.einstein blockquote{padding:var(--space-10) var(--space-8)}
.einstein blockquote p{color:var(--color-accent-text);font-weight:800;font-size:clamp(1.5rem,1rem + 1.7vw,2.4rem);line-height:1.18}
.einstein footer{color:#F5F5F5}
@media (max-width:860px){.einstein{grid-template-columns:1fr}.einstein img{width:100%;height:auto;min-height:0}.einstein blockquote{padding:var(--space-6)}}
/* Dato storico */
.history{padding:var(--space-10);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}
.history p{max-width:70ch;margin-top:var(--space-4)}
.history .red{color:var(--color-accent-text)}
.history__years{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-top:var(--space-6)}
.history__years div{padding:var(--space-5);border-radius:var(--radius-md);background:rgba(227,22,29,.1);border:1px solid rgba(227,22,29,.35)}
.history__years strong{display:block;font-family:var(--font-display);font-size:var(--text-xl);font-weight:800;color:var(--color-accent-text)}
.history__years span{font-size:var(--text-sm);color:var(--color-text)}
@media (max-width:720px){.history{padding:var(--space-6)}.history__years{grid-template-columns:repeat(2,1fr)}}
/* Einstein v3: immagine quadrata */
.einstein{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.einstein img{aspect-ratio:1/1;height:auto;min-height:0;object-position:center}
@media (max-width:860px){.einstein{grid-template-columns:1fr}}
.history__years{grid-template-columns:repeat(5,1fr)}
@media (max-width:900px){.history__years{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.history__years{grid-template-columns:repeat(2,1fr)}.history__years div:last-child{grid-column:1/-1}}
/* ===== Menu laterale a sinistra (hamburger sempre visibile) ===== */
.header .nav{display:none!important}
.header__left{display:flex;align-items:center;gap:var(--space-4);min-width:0}
.menu-toggle{display:inline-flex!important;width:auto;height:44px;gap:var(--space-3);padding:0 var(--space-3) 0 var(--space-2);border-radius:var(--radius-full,999px);color:var(--color-heading);border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);transition:background var(--transition),border-color var(--transition)}
.menu-toggle:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.28)}
.menu-toggle__txt{font-size:var(--text-sm);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.burger{position:relative;display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:28px;height:28px;padding-left:4px}
.burger i{display:block;height:2px;border-radius:2px;background:currentColor;transition:width 250ms var(--ease-out,ease),transform 250ms ease}
.burger i:nth-child(1){width:20px}.burger i:nth-child(2){width:14px;background:var(--color-accent)}.burger i:nth-child(3){width:20px}
.menu-toggle:hover .burger i:nth-child(2){width:20px}
.header__cta .btn{display:inline-flex!important}
.mobile-nav.side-nav{display:flex!important;position:fixed;inset:0 auto 0 0;width:min(380px,88vw);height:100dvh;z-index:200;background:#23252F;border-right:1px solid var(--color-divider);padding:var(--space-6) var(--space-8) var(--space-8);gap:0;overflow-y:auto;transform:translateX(-100%);visibility:hidden;transition:transform 320ms cubic-bezier(.22,1,.36,1),visibility 0s linear 320ms;box-shadow:24px 0 60px rgba(0,0,0,.35)}
.mobile-nav.side-nav.is-open{transform:none;visibility:visible;transition:transform 320ms cubic-bezier(.22,1,.36,1)}
.side-nav__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}
.side-nav__title{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:#FF6B70}
.side-nav__close{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;color:var(--color-heading);border:1px solid rgba(255,255,255,.14)}
.side-nav__close svg{width:20px;height:20px}
.side-nav a:not(.btn){font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--color-heading);padding:var(--space-3) 0;border-bottom:1px solid var(--color-divider);transition:color var(--transition),padding var(--transition)}
.side-nav a:not(.btn):hover{color:var(--color-accent-text);padding-left:var(--space-2)}
.side-nav a[aria-current="page"]{color:var(--color-accent-text)}
.side-nav .btn{margin-top:var(--space-3);justify-content:center}
.side-nav .btn--primary{margin-top:var(--space-8)}
.nav-backdrop{position:fixed;inset:0;z-index:150;background:rgba(10,10,14,.55);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity 300ms ease}
.nav-backdrop.is-open{opacity:1;pointer-events:auto}
@media (max-width:960px){.header__cta .btn{display:none!important}}
@media (max-width:520px){.menu-toggle__txt{display:none}.menu-toggle{padding:0 var(--space-2)}.header__left{gap:var(--space-3)}}
/* Sfondo ufficio leggero: home e tutte le sezioni */
.hero::before{background:linear-gradient(90deg,rgba(42,44,56,.96) 0%,rgba(42,44,56,.84) 45%,rgba(42,44,56,.5) 100%),linear-gradient(0deg,rgba(42,44,56,1) 0%,rgba(42,44,56,0) 30%)}
.hero__bg img{object-position:center center}
.page-hero__bg picture,.hero__bg picture{display:block;width:100%;height:100%}
.page-hero__bg img{object-position:center 40%}
@media (max-width:720px){.hero::before{background:linear-gradient(0deg,rgba(42,44,56,1) 0%,rgba(42,44,56,.88) 50%,rgba(42,44,56,.55) 100%)}.hero__bg img{object-position:center}}
/* Seneca: rosso con sottile contorno bianco */
.hero-quote,.hero-quote em{color:var(--color-accent);-webkit-text-stroke:2px #FFFFFF;paint-order:stroke fill;text-shadow:0 2px 14px rgba(0,0,0,.45)}
.hero-quote cite{-webkit-text-stroke:0;text-shadow:none}
/* Sezione Codigoro – Palazzo del Vescovo */
.codigoro__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center}
.codigoro__img{margin:0;position:relative;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border)}
.codigoro__img img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;display:block}
.codigoro__img figcaption{position:absolute;left:var(--space-3);bottom:var(--space-3);font-size:.7rem;color:#F5F5F5;background:rgba(20,20,26,.6);padding:2px 8px;border-radius:999px}
.codigoro__text p{max-width:60ch;margin-top:var(--space-4)}
.codigoro__quote{margin:var(--space-6) 0;padding-left:var(--space-5);border-left:3px solid var(--color-accent);font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-heading)}
.codigoro__quote cite{display:block;margin-top:var(--space-2);font-family:var(--font-body);font-size:var(--text-xs);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:#FF6B70}
.codigoro .btn-row{margin-top:var(--space-8)}
@media (max-width:860px){.codigoro__grid{grid-template-columns:1fr}.codigoro__img{max-width:460px}}
/* Seneca: testo bianco su fondo rosso */
.hero-quote{display:inline-block;background:var(--color-accent);border-left:0;padding:var(--space-5) var(--space-6);border-radius:var(--radius-md);box-shadow:0 10px 30px rgba(0,0,0,.3)}
.hero-quote,.hero-quote em{color:#FFFFFF;-webkit-text-stroke:0;text-shadow:none}
.hero-quote cite{color:#FFFFFF;opacity:.9}
/* Seneca: rosso sfumato in trasparenza */
.hero-quote{background:linear-gradient(115deg,rgba(227,22,29,.92) 0%,rgba(227,22,29,.72) 55%,rgba(227,22,29,.38) 100%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 30px rgba(0,0,0,.22)}
.hero-quote,.hero-quote em{text-shadow:0 1px 8px rgba(0,0,0,.25)}
/* Chi sono: frasi introduttive più grandi */
.lead-big{display:block;font-family:var(--font-display);font-size:clamp(1.2rem,.95rem + 1vw,1.65rem);line-height:1.4;font-weight:400;color:#FFFFFF;letter-spacing:0;text-shadow:0 1px 10px rgba(0,0,0,.35);max-width:34ch}
p.lead-big{margin-top:var(--space-2)}
/* Chi sono: titolo più grande */
.h-page-xl{display:block;max-width:15ch;font-size:clamp(2.6rem,1.4rem + 4vw,4.6rem);line-height:1.04;letter-spacing:-.03em;font-weight:800}
.h-page:has(.h-page-xl){max-width:none}

/* ---- Video Pillole: verticale su cellulare, orizzontale su PC ---- */
.pvideo{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:#15161d;border:1px solid var(--color-border);aspect-ratio:16/9}
.pvideo video{width:100%;height:100%;object-fit:contain;background:#15161d;max-width:none}
.pvideo.is-v{aspect-ratio:9/16;width:min(100%,calc(78vh * 9 / 16));margin-inline:auto}
.pvideo-fig{margin:0 0 var(--space-10)}
.pvideo-fig .eyebrow{margin-bottom:var(--space-3)}
.pvideo-fig figcaption{margin-top:var(--space-3)}
.vgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-8)}
.vcard__body{padding-top:var(--space-4)}
.vcard__body h3{font-size:var(--text-base);font-family:var(--font-body);font-weight:600;margin-top:var(--space-2)}
.vcard__body h3 a{color:inherit;text-decoration:none}
.vcard__body h3 a:hover{color:var(--color-accent-text)}
@media (max-width:767px){.vgrid{grid-template-columns:1fr;gap:var(--space-10)}}

/* === Home semplificata e menu "Scopri di più" (2026-10-14) === */
.side-nav__group{margin-top:var(--space-6);margin-bottom:var(--space-1);font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:#FF6B70}
.side-nav__more{display:flex;flex-direction:column}
.side-nav .side-nav__more a:not(.btn){font-size:var(--text-base);font-weight:500;padding:var(--space-2) 0;color:var(--color-text)}
.side-nav .side-nav__more a[aria-current="page"]{color:var(--color-accent-text)}
.res-card{position:relative;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-3);color:inherit;text-decoration:none;transition:border-color var(--transition),transform var(--transition)}
.res-card:hover{border-color:#444;transform:translateY(-3px)}
.res-card .card__icon{margin-bottom:var(--space-2)}
.res-card__tag{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--color-accent-text)}
.res-card h3{font-size:var(--text-lg)}
.res-card p{font-size:var(--text-sm);flex:1}
.res-card .link-arrow{margin-top:var(--space-2)}
.cta-band p.cta-band__offices{font-size:var(--text-sm);color:rgba(255,255,255,.85)}
.cta-band__offices a{color:#fff;text-decoration:underline;text-underline-offset:3px}

/* === Logo più grande (2026-10-14) === */
:root{--header-h:96px}
.header .logo svg{width:64px;height:64px}
.header .logo__name{font-size:1.5rem;letter-spacing:.11em}
.header .logo__sub{font-size:.85rem;margin-top:6px}
.header .logo__sub::after{width:20px}
.footer .logo svg{width:56px;height:56px}
.footer .logo__name{font-size:1.3rem}
.footer .logo__sub{font-size:.76rem}
@media (max-width:1200px) and (min-width:961px){.header .logo__name{font-size:1.3rem}.header .logo__sub{font-size:.76rem}}
@media (max-width:720px){:root{--header-h:80px}.header .logo svg{width:50px;height:50px}.header .logo__name{font-size:1.12rem}.header .logo__sub{font-size:.68rem;margin-top:4px}}
@media (max-width:420px){.header .logo svg{width:44px;height:44px}.header .logo__name{font-size:1rem;letter-spacing:.08em}.header .logo__sub{font-size:.62rem;letter-spacing:.14em}}
