/* ==========================================================================
   Tema base per siti di professionisti — layout "Lo spazio dell'ascolto"
   Ricostruzione in CSS puro del progetto Lovable approvato (src/styles.css),
   con le regole finali già applicate. Nessuna dipendenza da Tailwind.
   BASE — non modificare per cambiare colori o font: si fa in css/tema.css.
   ========================================================================== */

/* Font e colori: vedi css/tema.css (caricato prima di questo file). */

/* ---- Base ---- */
*,*:before,*:after{box-sizing:border-box;border-color:var(--border)}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{overflow-x:hidden;overflow-x:clip}
body{margin:0;background:var(--background);color:var(--foreground);font-family:var(--sans);font-size:17px;line-height:1.75;letter-spacing:0}
h1,h2,h3,h4,h5,h6{font-family:var(--serif);font-weight:500;line-height:1.02;letter-spacing:0}
a{color:inherit;text-underline-offset:4px}
img{max-width:100%;height:auto}
picture{display:contents}
svg{stroke-width:1.6}
.icon{width:1rem;height:1rem;flex:none}
[id]{scroll-margin-top:7rem}
:focus-visible{outline:3px solid var(--ring);outline-offset:4px}
.shell{width:min(100% - 48px,1280px);margin-inline:auto}
.reading{max-width:70ch}
.eyebrow{text-transform:uppercase;font-size:.7rem;letter-spacing:.16em;color:var(--clay);font-weight:700}
.skip-link{position:fixed;z-index:100;left:1rem;top:-5rem;background:var(--foreground);color:var(--background);padding:.6rem 1rem}
.skip-link:focus{top:1rem}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.no-js .js-only{display:none!important}

/* ---- Pulsanti (equivalente delle varianti shadcn/Button + correzioni finali Lovable) ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:12px 24px;border-radius:var(--radius);border:1px solid transparent;
  font:500 .875rem/1.2 var(--sans);text-align:center;text-decoration:none;cursor:pointer;white-space:normal;
  transition:color .22s var(--ease-organic),background-color .22s var(--ease-organic),border-color .22s var(--ease-organic),transform .22s var(--ease-organic),box-shadow .22s var(--ease-organic)}
.btn .icon{width:1rem;height:1rem;pointer-events:none}
.btn-lg{min-height:48px;padding:12px 32px}
.btn-primary{background:var(--plum);color:var(--surface-paper);box-shadow:0 1px 3px rgba(48,43,45,.12)}
.btn-primary:hover{background:#4F3947;box-shadow:0 9px 24px rgba(85,61,77,.24)}
.btn-outline{background:transparent;color:var(--plum);border-color:rgba(85,61,77,.52);box-shadow:0 1px 2px rgba(48,43,45,.06)}
.btn-outline:hover{background:var(--accent);border-color:var(--accent);color:var(--surface-paper)}
.btn-link{background:none;color:var(--plum);padding-inline:12px;box-shadow:none}
.btn-link:hover{text-decoration:underline}
.btn-on-dark{color:var(--surface-paper);border-color:rgba(246,241,232,.62)}
@media (min-width:1024px) and (pointer:fine) and (prefers-reduced-motion:no-preference){a[data-magnetic]:hover{transform:translate3d(3px,-3px,0)}}

/* ---- Header ---- */
.site-header{background:rgba(246,241,232,.93);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.header-inner{height:92px;display:grid;grid-template-columns:minmax(250px,1fr) auto minmax(250px,1fr);gap:2rem;align-items:center}
.brand-logo{display:inline-flex;align-items:center;text-decoration:none;gap:.75rem;min-width:250px}
.brand-mark{width:44px;height:52px;fill:var(--primary);stroke:none;flex:none}
.brand-type{display:flex;flex-direction:column;line-height:1}
.brand-type strong{font:500 1.5rem var(--serif)}
.brand-type small{text-transform:uppercase;font-size:.54rem;letter-spacing:.14em;margin-top:.45rem;color:var(--primary)}
.nav{display:flex;align-items:center;gap:1.75rem;font-size:.82rem}
.nav a{display:inline-block;text-decoration:none;white-space:nowrap}
.nav a:hover,.nav a[aria-current=page]{text-decoration:underline}
.header-cta{justify-self:end}
.menu-button{display:none;background:transparent;border:0;color:var(--ink);padding:.65rem;cursor:pointer;justify-self:end}
.menu-button .icon,.menu-close .icon{width:1.5rem;height:1.5rem}
.mobile-sheet{display:none}
.js .mobile-sheet{position:fixed;inset:0 0 0 auto;width:min(86vw,24rem);z-index:60;background:var(--surface-paper);color:var(--ink);padding:1.5rem;box-shadow:-1rem 0 3rem rgba(48,43,45,.2);overflow-y:auto;
  transform:translateX(100%);visibility:hidden;transition:transform .3s var(--ease-organic),visibility 0s linear .3s}
.js .mobile-sheet.open{display:block;transform:none;visibility:visible;transition:transform .3s var(--ease-organic)}
.js .mobile-sheet.ready{display:block}
.mobile-sheet-head{display:flex;justify-content:space-between;align-items:center}
.mobile-sheet-title{font:500 1.6rem var(--serif);margin:0}
.menu-close{background:transparent;border:0;padding:.6rem;min-width:44px;min-height:44px;cursor:pointer;color:inherit}
.mobile-nav{display:flex;flex-direction:column;gap:.25rem;margin:2rem 0}
.mobile-nav a{padding:1rem 0;border-bottom:1px solid rgba(48,43,45,.2);color:inherit;text-decoration:none}
.mobile-nav a[aria-current=page]{font-weight:700}
.sheet-backdrop{position:fixed;inset:0;background:rgba(48,43,45,.4);z-index:55}
.no-js .mobile-sheet{display:none}
@media(max-width:900px){.no-js .mobile-sheet{display:block;padding:0 16px 1rem}.no-js .mobile-sheet-head,.no-js .mobile-sheet>.btn{display:none}.no-js .mobile-nav{margin:0}}

/* ---- Hero ---- */
.hero{padding:clamp(3rem,6vw,7rem) 0 5rem;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:32px;background:var(--surface-card);clip-path:path("M0 23 C240 2 480 34 720 15 C960 -2 1200 27 1440 10 L1440 32 L0 32 Z")}
.hero-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:center}
.hero-copy{grid-column:span 7}
.hero h1{font-size:clamp(3.2rem,6vw,6.5rem);max-width:12ch;margin:.45rem 0 1.6rem;color:var(--primary)}
.hero h1 .hero-role{display:block;font:700 .78rem/1.5 var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--foreground);margin-bottom:1.1rem;max-width:none}
.hero h1 .hero-claim{display:block}
.intro{max-width:62ch}
.intro p{margin:.45rem 0}
.hero-actions{display:flex;gap:1rem;align-items:center;margin-top:2rem;flex-wrap:wrap}
.location-line{font-size:.68rem;text-transform:uppercase;letter-spacing:.13em;margin-top:2.2rem}
.portrait{grid-column:span 5;margin:0;position:relative}
.portrait figcaption{font:500 1.05rem var(--serif);margin-top:.65rem}
.photo-sculpture{isolation:isolate;padding:18px 20px 14px 12px}
.photo-layer{position:absolute;inset:26px 4px 34px 27px;border-radius:3px;z-index:-2}
.photo-layer-fill{background:var(--surface-mist);transform:translate(11px,8px) rotate(1deg)}
.photo-layer-line{border:1px solid rgba(112,68,53,.72);transform:translate(-9px,-8px) rotate(-.8deg);z-index:-1}
.photo-mask{overflow:hidden;border-radius:3px;box-shadow:var(--shadow-paper);border:1px solid rgba(85,61,77,.22);transform:translateZ(0)}
.photo-mask img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 22%;transform:scale(1.015)}
.photo-sculpture figcaption{padding-left:1rem}
@media (min-width:1024px) and (pointer:fine) and (prefers-reduced-motion:no-preference){[data-parallax]{transition:transform .45s var(--ease-organic)}.photo-sculpture:hover [data-parallax]{transform:translate3d(0,-7px,0)}.desk-frame:hover [data-parallax]{transform:translate3d(0,-6px,0)}}

/* ---- Sezioni ---- */
.areas,.approach,.profile,.reviews,.locations,.reading-band,.final-cta,.intro-band{padding-block:clamp(4.5rem,8vw,6.5rem)}
.areas,.approach,.profile,.locations,.reading-band{position:relative;overflow:hidden}
.areas>.shell,.approach>.shell,.profile>.shell,.locations>.shell,.reading-band>.shell{position:relative;z-index:1}
.areas{background:var(--card)}
.section-heading{display:grid;grid-template-columns:4fr 5fr 3fr;gap:2rem;align-items:end;margin-bottom:var(--space-3)}
.section-heading h2{font-size:clamp(2.7rem,4vw,4.8rem);margin:0;color:var(--primary)}
.section-heading .eyebrow,.approach .eyebrow,.profile .eyebrow,.final-cta .eyebrow{margin:0 0 .75rem}
.section-heading p:last-child{font-size:.9rem}
.section-rule{display:block;height:26px;margin:0 0 clamp(1.75rem,3vw,2.75rem);pointer-events:none}
.section-rule svg{display:block;width:100%;height:26px}
.section-rule path{fill:none;stroke:var(--clay);stroke-width:1;stroke-dasharray:1;stroke-dashoffset:0}
.section-rule path+path{stroke:rgba(112,68,53,.4)}
.reveal-pending .section-rule path{stroke-dashoffset:1;transition:stroke-dashoffset 1100ms var(--ease-organic) 160ms}
.reveal-pending .section-rule path+path{transition-delay:300ms}
.reveal-pending.reveal-visible .section-rule path{stroke-dashoffset:0}
.section-index{position:absolute;top:clamp(1.5rem,3vw,3rem);right:-.08em;font:500 clamp(6rem,12vw,11rem)/1 var(--serif);color:rgba(48,43,45,.07);pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0}
.area-list{border-bottom:1px solid var(--border)}
.area-row{display:grid;grid-template-columns:3rem minmax(14rem,1fr) minmax(20rem,1.2fr) 1.5rem;gap:2rem;padding:clamp(1.5rem,2.5vw,2.25rem) .75rem;border-top:1px solid var(--border);align-items:center;color:inherit;text-decoration:none;
  transition:background-color .28s var(--ease-organic),padding-left .28s var(--ease-organic),border-color .28s var(--ease-organic)}
.area-row:hover,.area-row:focus-visible{padding-left:1.25rem;background:rgba(217,226,224,.3);border-color:var(--clay)}
.area-row>span{color:var(--accent);font-family:var(--serif);font-size:1.1rem}
.area-row h3{font-size:2rem;margin:0}
.area-row p{margin:0}
.area-row .icon{width:1.5rem;height:1.5rem;transition:transform .25s ease}
.area-row:hover .icon,.area-row:focus-visible .icon{transform:translateX(.35rem)}

.reviews{background:var(--secondary)}
.review-inner{display:grid;grid-template-columns:auto 7fr 4fr;gap:2rem;align-items:center}
.review-inner .eyebrow{color:var(--plum);margin:0}
.review-inner h2{font-size:3rem;margin:.3rem 0;color:var(--primary)}
.review-inner p{margin:.2rem 0}
.review-badge{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;background:var(--surface-paper);box-shadow:0 12px 30px -18px rgba(48,43,45,.5)}
.google-g{width:44px;height:44px}
.review-stars{display:flex;gap:3px;color:var(--primary);margin:.6rem 0 0}
.review-stars .icon{width:18px;height:18px;fill:currentColor;stroke:none}
.review-tools{display:flex;justify-content:flex-end}
.reviews .btn-outline{color:var(--plum);background:rgba(246,241,232,.35)}
.reviews .btn-outline:hover{background:var(--plum);border-color:var(--plum);color:var(--surface-paper)}

.approach{background:var(--primary);color:var(--primary-foreground)}
.approach:before,.approach:after{content:"";position:absolute;left:0;right:0;height:44px;z-index:2;pointer-events:none}
.approach:before{top:0;background:linear-gradient(var(--secondary),transparent)}
.approach:after{bottom:0;background:linear-gradient(transparent,var(--surface-paper))}
.approach-grid{display:grid;grid-template-columns:7fr 5fr;gap:6rem;align-items:center}
.approach h2{font-size:clamp(3rem,5vw,5.4rem);margin:0 0 2rem}
.approach .eyebrow{color:#f1c9b8}
.approach .section-index{color:rgba(246,241,232,.11)}
.approach .section-rule path{stroke:rgba(246,241,232,.55)}
.desk-frame{position:relative;padding:14px 0 14px 14px}
.desk-frame:before{content:"";position:absolute;inset:0 14px 0 0;border:1px solid rgba(246,241,232,.46);transform:translate(-12px,12px)}
.desk-frame:after{content:"";position:absolute;inset:auto -15px -15px auto;width:46%;height:42%;background:var(--surface-mist);opacity:.25;z-index:0}
.desk-frame img{position:relative;z-index:1;display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px;box-shadow:0 25px 55px rgba(48,43,45,.22)}

.split{display:grid;grid-template-columns:5fr 7fr;gap:7rem}
.split h2{font-size:clamp(3rem,5vw,5.2rem);color:var(--primary);margin:0 0 .5rem}
.split>div:last-child{max-width:62ch}
.profile-lead{font:500 clamp(1.45rem,2.2vw,1.9rem)/1.3 var(--serif);color:var(--foreground)}
.text-link{display:inline-flex;gap:.5rem;align-items:center;font-weight:700;color:var(--primary);margin-top:1rem}
.text-link .icon{width:18px;height:18px}

.locations-intro{margin:0 0 1rem;font-size:.9rem}
.locations-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border)}
.location{padding:2rem 1.5rem;border-right:1px solid var(--border);min-height:230px}
.location:last-child{border-right:0}
.location .icon{width:22px;height:22px}
.location h3{font-size:2rem;margin:2rem 0 .5rem}
.location p{font-size:.82rem;margin:.3rem 0}
.location .text-link{font-size:.82rem}

.reading-band{background:var(--card)}
.reading-links{display:grid;grid-template-columns:repeat(3,1fr)}
.reading-links a{display:grid;min-height:190px;border-top:1px solid var(--border);border-right:1px solid var(--border);padding:1.8rem;text-decoration:none}
.reading-links a:last-child{border-right:0}
.reading-links span{font-size:.7rem;text-transform:uppercase;color:var(--clay);letter-spacing:.08em}
.reading-links strong{font:500 1.9rem/1.1 var(--serif)}
.reading-links .icon{align-self:end;width:1.4rem;height:1.4rem}
.reading-links a:hover strong{text-decoration:underline;text-decoration-thickness:1px}

.final-cta{text-align:center}
.final-cta .shell{max-width:850px}
.final-cta h2{font-size:clamp(3rem,5vw,5.2rem);margin:0 auto 1.5rem;color:var(--primary)}
.final-cta p:not(.eyebrow){max-width:62ch;margin:0 auto 2rem}

/* ---- Animazioni: il contenuto resta visibile senza JS ---- */
.reveal-pending{opacity:0;transform:translate3d(0,var(--reveal-y,22px),0)}
.reveal-pending .shell{transform:translate3d(var(--shell-x,0px),0,0)}
.reveal-pending.reveal-visible{opacity:1;transform:none;transition:opacity 680ms var(--ease-organic) var(--reveal-delay,0ms),transform 680ms var(--ease-organic) var(--reveal-delay,0ms)}
.reveal-pending.reveal-visible .shell{transform:none;transition:transform 800ms var(--ease-organic) var(--reveal-delay,0ms)}
[data-stagger]>*{transition:opacity 620ms var(--ease-organic) var(--stagger-delay,0ms),transform 620ms var(--ease-organic) var(--stagger-delay,0ms)}
.reveal-pending [data-stagger]>*{opacity:0;transform:translateY(18px)}
.reveal-pending.reveal-visible [data-stagger]>*{opacity:1;transform:none}

/* ---- Footer ---- */
.site-footer{background:var(--foreground);color:var(--background);padding:5rem 0 1.5rem}
.site-footer .brand-mark{fill:var(--background)}
.site-footer .brand-type small{color:#D7A992}
.footer-grid{display:grid;grid-template-columns:5fr 2fr 2fr 3fr;gap:4rem}
.footer-grid h2{font-size:1.5rem;margin:.4rem 0 1rem}
.footer-grid>div:not(:first-child){display:flex;flex-direction:column;align-items:flex-start}
.footer-grid a,.cookie-settings{display:flex;align-items:center;gap:.5rem;font-size:.83rem;margin:.3rem 0;color:inherit;min-height:24px}
.footer-grid p{font-size:.83rem;margin:.3rem 0}
.footer-grid .footer-inline{display:inline;margin:0}
.footer-grid .icon{width:16px;height:16px}
.footer-profession{max-width:45ch;margin-top:2rem}
.cookie-settings{font-weight:600;text-decoration:underline;text-underline-offset:4px;background:none;border:0;padding:0;cursor:pointer}
.footer-notice{border-top:1px solid rgba(246,241,232,.2);margin-top:3rem;padding-top:2rem;font-size:.74rem;line-height:1.65;color:rgba(246,241,232,.82);columns:2;column-gap:4rem}
.footer-notice p{margin:0 0 .8rem;break-inside:avoid}
.footer-network{display:flex;align-items:center;margin-top:2rem}
.footer-network .network{margin-left:auto;display:inline-flex;align-items:center;background:var(--background);padding:.6rem 1rem;border-radius:4px}
.footer-network img{display:block;width:142px;height:52px;object-fit:contain}
.footer-bottom{border-top:1px solid rgba(246,241,232,.2);margin-top:2rem;padding-top:1.5rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.7rem}

/* ---- Pagine interne ---- */
.page-mast{padding:clamp(3.5rem,7vw,5.5rem) 0 clamp(2.5rem,5vw,4rem);border-bottom:1px solid var(--border);background:linear-gradient(175deg,var(--surface-paper) 0 82%,var(--surface-card) 82.2%)}
.page-mast h1{font-size:clamp(2.8rem,4.4vw,4.7rem);line-height:1.02;color:var(--primary);margin:.4rem 0;max-width:17ch;text-wrap:balance;overflow-wrap:break-word}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem;padding:0;margin:0 0 1.5rem;font-size:.75rem}
.breadcrumb li+li:before{content:"/";margin-right:.35rem;color:var(--muted-foreground)}
.breadcrumb a{color:var(--muted-foreground)}
.legacy-content{font-size:18px;line-height:1.75;max-width:68ch;padding-top:3.5rem;padding-bottom:clamp(4rem,8vw,7rem)}
.legacy-content>:first-child{margin-top:0}
.legacy-content p{margin:0 0 1.3em}
.legacy-content p.lead{font-size:1.15em;color:var(--muted-foreground)}
.legacy-content h2{font-size:clamp(2rem,3.3vw,3.25rem);line-height:1.08;color:var(--primary);margin:2em 0 .7em}
.legacy-content h3{font-size:clamp(1.55rem,2.2vw,2.15rem);line-height:1.14;margin:1.8em 0 .65em}
.legacy-content h4{font-size:1.4rem;line-height:1.2;margin:1.6em 0 .6em}
.legacy-content ul,.legacy-content ol{margin:0 0 1.4em;padding-left:1.45em}
.legacy-content li{margin:.45em 0}
.legacy-content li::marker{color:var(--clay)}
.legacy-content a{color:var(--primary);font-weight:650;text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:rgba(112,68,53,.72);overflow-wrap:anywhere}
.legacy-content .btn{text-decoration:none}
.legacy-content .btn-primary{color:var(--surface-paper)}
.legacy-content strong{font-weight:700}
.legacy-content hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}
.legacy-content table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}
.legacy-content td,.legacy-content th{padding:.7rem;border:1px solid var(--border)}
.legacy-content .text-right{text-align:right}
.legacy-content .text-center{text-align:center}
.article-figure{margin:2.2rem auto}
.article-figure img{display:block;max-height:620px;width:auto;margin:0 auto;border:1px solid var(--line);padding:8px;background:var(--surface-card);box-shadow:var(--shadow-paper)}
/* Foto degli articoli: sempre su una riga propria, centrate, larghe come il paragrafo
   (le foto piu' piccole restano alla loro dimensione reale per non sgranarsi). */
.article-figure.align-left,.article-figure.align-right,.article-figure.align-center{float:none;max-width:100%}
.article-figure img{max-width:100%}
.legacy-content h2,.legacy-content hr,.signature,.form-section{clear:both}
.signature{text-align:right;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line);font-size:.95rem;clear:both}
.related{background:var(--surface-card);border-top:1px solid var(--line);padding:clamp(3rem,7vw,6rem) max(24px,calc((100vw - 1280px)/2))}
.related>div{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0}
.related>div a{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem;border:1px solid rgba(48,43,45,.2);text-decoration:none;color:inherit;font:500 1.35rem/1.2 var(--serif);transition:border-color .2s,background-color .2s}
.related>div a:hover{border-color:var(--clay);background:var(--surface-paper)}
.archive-by-theme{margin:1.5rem 0;border-top:1px solid var(--line);padding-top:1rem}
.archive-by-theme summary{cursor:pointer;font-weight:700;color:var(--primary);min-height:44px;display:flex;align-items:center}
.archive-by-theme h2{font-size:1.5rem;margin:1.5rem 0 .5rem;color:var(--primary)}
.archive-by-theme ul{columns:2;column-gap:3rem;padding-left:1.2rem;margin:0;font-size:.9rem}
.archive-by-theme li{break-inside:avoid;margin:.3rem 0}

/* Indice articoli */
.archive{padding-block:clamp(3rem,6vw,5rem)}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin:2rem 0 4rem}
.article-card{display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--line);text-decoration:none;color:inherit;transition:border-color .2s,transform .2s var(--ease-organic)}
.article-card:hover{border-color:var(--clay)}
.article-card img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-bottom:1px solid var(--line)}
.article-card div{padding:1.4rem}
.article-card span{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--clay);font-weight:700}
.article-card h3{font-size:1.65rem;line-height:1.1;margin:.5rem 0 .6rem}
.article-card p{font-size:.88rem;margin:0}
.theme-block{display:grid;grid-template-columns:4fr 8fr;gap:2rem;border-top:1px solid var(--line);padding:2rem 0}
.theme-block h3{font-size:2rem;color:var(--primary);margin:0}
.theme-block ul{list-style:none;margin:0;padding:0;columns:2;column-gap:2rem}
.theme-block li{break-inside:avoid;padding:.35rem 0;border-bottom:1px solid rgba(48,43,45,.12)}
.theme-block a{text-decoration:none}
.theme-block a:hover{text-decoration:underline}

/* Chi sono */
.about-opening{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,8vw,8rem);align-items:center;padding-block:clamp(4rem,8vw,6rem);position:relative}
.about-opening .portrait{grid-column:auto}
.about-opening .photo-mask img{aspect-ratio:4/5}
.about-opening h2{font-size:clamp(2.4rem,4vw,4rem);color:var(--primary);margin:0 0 1.2rem}
.about-timeline{padding-block:clamp(4rem,8vw,6rem)}
.about-timeline h2{font-size:clamp(2.4rem,4vw,4rem);color:var(--primary);margin:0}
.about-timeline ol{list-style:none;padding:0;margin:3rem 0 0}
.about-timeline li{display:grid;grid-template-columns:10rem 1fr;border-top:1px solid rgba(48,43,45,.25);padding:1.5rem 0}
.about-timeline strong.year{font-family:var(--serif);font-size:1.55rem;font-weight:500}
.about-timeline p{margin:0;max-width:60ch}
.dream-section{background:#efe6d8}
.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:2rem 0}
.video-grid h3{margin-top:0}

/* Contatti */
.contact-layout{padding-block:clamp(4rem,8vw,6rem);display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,7vw,7rem)}
.contact-intro>p{font-family:var(--serif);font-size:clamp(1.65rem,3vw,2.45rem);line-height:1.17;margin-top:0}
.contact-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.contact-card{display:grid;grid-template-columns:2.5rem 1fr;gap:1rem;padding:1.5rem 0;border-top:1px solid rgba(48,43,45,.25)}
.contact-card h2{margin:0 0 .35rem;font-size:2rem}
.contact-card p{margin:.2rem 0}
.contact-card .icon{color:var(--clay);width:22px;height:22px;margin-top:.5rem}
.contact-figure{margin:2rem 0 0}
.contact-figure img{display:block;width:100%;border-radius:3px;box-shadow:var(--shadow-paper)}
.form-band{background:var(--surface-card);padding-block:clamp(4rem,8vw,6rem);border-top:1px solid var(--line)}
.form-band-grid{display:grid;grid-template-columns:4fr 8fr;gap:clamp(2rem,6vw,6rem)}
.form-band h2{font-size:clamp(2.4rem,4vw,4rem);color:var(--primary);margin:0 0 1rem}
.maps-band{padding-block:clamp(3rem,6vw,5rem)}

/* Modulo */
.contact-form{margin:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem}
.field{margin:0 0 1.25rem;display:flex;flex-direction:column}
.field label{font-size:.82rem;font-weight:700;margin-bottom:.4rem}
.field .optional,.field-hint{font-weight:400;color:var(--muted-foreground);font-size:.78rem}
.field input,.field textarea{font:inherit;font-size:1rem;color:var(--foreground);background:var(--surface-paper);border:1px solid #9b8f86;border-radius:var(--radius);padding:.75rem .9rem;min-height:48px;width:100%}
.field textarea{resize:vertical;min-height:10rem}
.field input:focus,.field textarea:focus{outline:3px solid var(--ring);outline-offset:1px;border-color:var(--plum)}
.field [aria-invalid=true]{border-color:var(--destructive);border-width:2px}
.field-error{color:var(--destructive);font-size:.85rem;font-weight:600;margin:.35rem 0 0}
.field-check{flex-direction:row;flex-wrap:wrap;align-items:flex-start;gap:.75rem}
.field-check input{width:1.4rem;height:1.4rem;min-height:0;margin-top:.15rem;accent-color:var(--plum);flex:none}
.field-check label{flex:1;font-weight:400;font-size:.9rem}
.field-check .field-error{flex-basis:100%}
.hp-field{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.form-note{font-size:.88rem;color:var(--muted-foreground);margin-top:0}
.form-alert{padding:1.1rem 1.3rem;margin:0 0 1.5rem;border-left:4px solid;background:var(--surface-paper)}
.form-alert p{margin:.2rem 0}
.form-alert ul{margin:.4rem 0 0;padding-left:1.2rem}
.form-alert-ok{border-color:#3d6b5a}
.form-alert-error{border-color:var(--destructive)}
.form-section{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line)}
.legacy-content .form-section .field label a,.legacy-content .contact-form a{font-weight:700}

/* Contenuti incorporati con consenso */
.embed{position:relative;background:var(--muted);border:1px solid var(--line);border-radius:3px;overflow:hidden;margin:0 0 1.5rem}
.embed iframe{display:block;width:100%;border:0;aspect-ratio:16/9;height:auto}
.embed[data-ratio="4/3"] iframe{aspect-ratio:4/3}
.embed-placeholder{padding:1.5rem;min-height:12rem;display:flex;flex-direction:column;justify-content:center}
.embed-title{display:flex;gap:.5rem;align-items:center;font:500 1.4rem/1.2 var(--serif);margin:0 0 .5rem}
.embed-title .icon{width:1.2rem;height:1.2rem;color:var(--clay)}
.embed-note{font-size:.82rem;margin:0 0 1rem;color:var(--muted-foreground)}
.embed-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin:0}
.embed.is-loaded .embed-placeholder{display:none}

/* Stories */
.story{margin:0 0 3.5rem;padding-bottom:3rem;border-bottom:1px solid var(--line);text-align:center}
.story img{display:block;margin:0 auto 2rem;border:1px solid var(--line);padding:8px;background:var(--surface-card);box-shadow:var(--shadow-paper)}
.story-text{font:400 1.45rem/1.5 var(--serif)}
.story-title{font-size:1.9rem;color:var(--primary)}

/* ---- Banner cookie (CookieConsent) adattato al template ---- */
#cc-main{--cc-font-family:var(--sans);--cc-bg:var(--surface-paper);--cc-primary-color:var(--ink);--cc-secondary-color:#5d5457;
  --cc-btn-primary-bg:var(--plum);--cc-btn-primary-color:var(--surface-paper);--cc-btn-primary-border-color:var(--plum);--cc-btn-primary-hover-bg:#3f2d39;--cc-btn-primary-hover-color:var(--surface-paper);--cc-btn-primary-hover-border-color:#3f2d39;
  --cc-btn-secondary-bg:var(--surface-paper);--cc-btn-secondary-color:var(--plum);--cc-btn-secondary-border-color:#8a7480;--cc-btn-secondary-hover-bg:var(--muted);--cc-btn-secondary-hover-color:var(--ink);--cc-btn-secondary-hover-border-color:var(--plum);
  --cc-separator-border-color:var(--line);--cc-toggle-on-bg:var(--plum);--cc-toggle-off-bg:#8a7f83;--cc-toggle-readonly-bg:#b9aea5;--cc-cookie-category-block-bg:var(--surface-card);--cc-cookie-category-block-border:var(--line);
  --cc-cookie-category-block-hover-bg:var(--muted);--cc-section-category-border:var(--line);--cc-overlay-bg:rgba(48,43,45,.55);--cc-modal-border-radius:4px;--cc-btn-border-radius:.2rem;--cc-link-color:var(--plum)}
#cc-main .cm__title,#cc-main .pm__title{font-family:var(--serif);font-weight:500;font-size:1.6rem;line-height:1.1}
#cc-main .cm,#cc-main .pm{border:1px solid rgba(48,43,45,.35);box-shadow:0 1rem 3rem rgba(48,43,45,.22)}
#cc-main .cm__btn,#cc-main .pm__btn{min-height:44px;font-weight:600}
#cc-main a{text-decoration:underline}
#cc-main :focus-visible{outline:3px solid var(--accent);outline-offset:2px}

/* ---- Responsive ---- */
@media(max-width:1100px){.nav{gap:1.1rem}.header-inner{grid-template-columns:auto 1fr auto}.brand-logo{min-width:0}.nav{justify-self:center}}
@media(max-width:900px){
  .shell{width:min(100% - 32px,1280px)}
  .header-inner{height:78px;grid-template-columns:minmax(0,1fr) auto;gap:.5rem}
  .header-inner>.nav,.header-cta{display:none!important}
  .js .menu-button{display:inline-flex!important;min-width:44px;min-height:44px;align-items:center;justify-content:center}
  .brand-type strong{font-size:1.25rem}
  .hero-grid,.approach-grid,.split,.contact-layout,.about-opening,.form-band-grid{grid-template-columns:1fr}
  .hero-copy,.portrait{grid-column:auto}
  .photo-sculpture{margin-top:var(--space-2)}
  .section-heading{grid-template-columns:1fr}
  .approach-grid{gap:3rem}
  .split{gap:2rem}
  .review-inner{grid-template-columns:1fr}.review-tools{justify-content:flex-start}
  .locations-grid{grid-template-columns:1fr 1fr}.location:nth-child(2){border-right:0}.location{border-bottom:1px solid var(--border)}
  .reading-links{grid-template-columns:1fr}.reading-links a{border-right:0;min-height:150px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:2.5rem}.footer-grid>div:first-child{grid-column:1/-1}
  .footer-notice{columns:1}
  .page-mast{padding:4rem 0 3rem}
  .section-index{font-size:clamp(4.5rem,24vw,7rem);top:1rem}
  .approach:before,.approach:after{height:28px}
  .reveal-pending{--reveal-y:12px}
  .card-grid{grid-template-columns:1fr 1fr}
  .related>div{grid-template-columns:1fr}
  .theme-block{grid-template-columns:1fr}
}
@media(max-width:760px){
  .hero{padding-top:2.3rem}
  .hero h1{font-size:clamp(2.8rem,14vw,4rem);line-height:.95}
  .hero-grid{display:flex;flex-direction:column;align-items:stretch}
  .hero-copy{display:contents}
  .hero-copy>.eyebrow{order:1}.hero-copy>h1{order:2}.hero-copy>.intro{order:3}.hero-copy>.hero-actions{order:4}.hero-copy>.location-line{order:5}
  .portrait{order:6;margin-top:1rem}
  .hero-actions{display:grid;gap:.35rem}.hero-actions .btn{width:100%;justify-content:center}
  .area-row{grid-template-columns:2.2rem 1fr 1.2rem;gap:.4rem 1rem}.area-row>span{grid-row:1}.area-row h3{grid-column:2;grid-row:1}.area-row .icon{grid-column:3;grid-row:1;align-self:center}.area-row p{grid-column:2/4;grid-row:2}
  .about-timeline li{grid-template-columns:1fr}
  .video-grid,.form-grid{grid-template-columns:1fr}
  .footer-network .network{margin-left:0}
  .archive-by-theme ul,.theme-block ul{columns:1}
}
@media(max-width:540px){
  body{font-size:16px}
  .shell{width:min(100% - 24px,1280px)}
  .brand-mark{width:35px;height:44px}.brand-type strong{font-size:1.18rem}.brand-type small{font-size:.45rem}
  .hero h1 .hero-role{font-size:.7rem}
  .areas,.profile,.locations,.reading-band,.final-cta{padding:4.5rem 0}
  .locations-grid,.footer-grid,.card-grid{grid-template-columns:1fr}
  .location{border-right:0!important;min-height:0}
  .footer-grid>div:first-child{grid-column:auto}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:.35rem}
  .page-mast{padding-top:3rem}.page-mast h1{font-size:clamp(2rem,9vw,2.4rem);line-height:1.08}
  .legacy-content{font-size:16.75px;padding-top:2rem}
  .photo-sculpture{padding:12px 12px 10px 5px}
  .hero:after{display:none}
  .review-inner h2{font-size:2.4rem}
}
@media(max-width:420px){.brand-logo{gap:.4rem}.brand-mark{width:31px;height:40px}.brand-type strong{font-size:1rem}.brand-type small{font-size:.43rem}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal-pending,.reveal-pending.reveal-visible,.reveal-pending .shell,.reveal-pending [data-stagger]>*{opacity:1;transform:none;transition:none}
  .reveal-pending .section-rule path{stroke-dashoffset:0;transition:none}
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
@media print{.site-header,.site-footer,.related,#cc-main,.menu-button{display:none!important}body{background:#fff}}

/* ---- Pagina /controllo.html (solo anteprima) ---- */
.check-summary{font-size:1.05rem}
.check-list{list-style:none;padding:0;margin:0 0 2rem}
.check-list li{display:grid;grid-template-columns:5.5rem 1fr;gap:1rem;padding:.6rem .8rem;border-left:4px solid;margin:.4rem 0;background:var(--surface-card);font-size:.92rem;line-height:1.5}
.check-list li span{font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;padding-top:.15rem}
.check-list li.check-ok{border-left-color:#3d6b5a}.check-ok span,.check-summary .check-ok{color:#2f5a4a}
.check-list li.check-avviso{border-left-color:#b7862c}.check-avviso span{color:#7a5a1c}
.check-list li.check-errore{border-left-color:var(--destructive)}.check-errore span,.check-summary .check-errore{color:var(--destructive)}
