/* Shared visual identity: quiet typography, warm neutrals and fine rules. */
:root{
  --site-paper:#f7f6f2;
  --site-surface:#f0eee8;
  --site-white:#fdfcf9;
  --site-ink:#292a27;
  --site-copy:#565851;
  --site-muted:#72736b;
  --site-accent:#756b5c;
  --site-line:#dcd9d1;
  --site-serif:'Cormorant Garamond',Georgia,serif;
  --site-sans:'Source Sans 3',Arial,sans-serif;
}
html{scrollbar-color:#b9b6ac var(--site-paper)}
body.font-sans{background:var(--site-paper);color:var(--site-copy);font-family:var(--site-sans);font-weight:400;line-height:1.65}
::selection{background:#ded7ca;color:var(--site-ink)}
::-webkit-scrollbar-track{background:var(--site-paper)}
::-webkit-scrollbar-thumb{background:#b9b6ac;border-color:var(--site-paper)}
::-webkit-scrollbar-thumb:hover{background:var(--site-accent)}
body :is(.bg-slate-50,.bg-gray-50,.bg-slate-100){background-color:var(--site-paper)}
body .bg-white{background-color:var(--site-white)}
body .bg-surface{background-color:var(--site-surface)}
body :is(.text-gray-600,.text-gray-700,.text-gray-800){color:var(--site-copy)}
body .text-gray-500{color:var(--site-muted)}
body :is(.border-gray-100,.border-gray-200,.border-gray-300){border-color:var(--site-line)}
body :is(.divide-gray-100,.divide-gray-200)>:not([hidden])~:not([hidden]){border-color:var(--site-line)}
body :is(.shadow-sm,.shadow-md,.shadow-lg,.shadow-xl,.shadow-soft,.hover\:shadow-soft:hover){box-shadow:none}
body .font-light{font-weight:400}
body .font-serif{font-family:var(--site-serif);font-weight:500;letter-spacing:-.022em}
body :is(h1,h2,h3,h4,h5){text-wrap:balance}
body .text-secondary,body .hover\:text-secondary:hover{color:var(--site-accent)}
body :is(.text-primary,.text-gray-900){color:var(--site-ink)}
body :is(a,button,input,select,textarea){-webkit-tap-highlight-color:transparent}
body a[href^="mailto:"]{overflow-wrap:anywhere}
body :is(.max-w-7xl,.max-w-6xl){max-width:1280px;padding-left:clamp(24px,4.5vw,64px);padding-right:clamp(24px,4.5vw,64px)}
.page>section.py-24{padding-top:clamp(56px,7vw,104px);padding-bottom:clamp(64px,7vw,104px)}
.section-divider{height:1px;width:56px;background:var(--site-accent);margin-top:24px;margin-bottom:28px}

/* Navigation. */
body .site-topbar{background:var(--site-surface);color:var(--site-copy);border-color:var(--site-line);padding:8px 0;font:12px/1.5 var(--site-sans)}
.site-topbar a:hover{color:var(--site-ink)}
.site-topbar i{font-size:11px}
#navbar{background:rgba(247,246,242,.96);border-color:var(--site-line);box-shadow:none;backdrop-filter:blur(16px)}
#navbar>div:first-child>div{height:96px}
.site-brand a{font-size:29px;font-weight:500;letter-spacing:-.035em;line-height:1.1}
.site-brand>span{font:500 10px/1.4 var(--site-sans);letter-spacing:.15em;margin-top:9px}
.desktop-navigation{gap:27px}
.desktop-navigation>*+*{margin-left:0!important}
.desktop-navigation .nav-link{font:500 11px/1.4 var(--site-sans);letter-spacing:.1em;color:var(--site-copy)}
.nav-link::after{height:1px;bottom:-9px;background:var(--site-accent)}
.nav-link[data-active="true"]{color:var(--site-ink)}
#navbar .btn{font-size:12px;min-height:44px;padding:12px 19px;letter-spacing:.035em}
#mobile-menu-btn{width:44px;height:44px}
#mobile-menu-btn i{font-size:23px}
#mobile-menu{background:var(--site-paper);border-color:var(--site-line);box-shadow:0 18px 24px #292a2710;max-height:calc(100dvh - 82px);overflow-y:auto}
#mobile-menu>div{padding:16px 24px 24px}
#mobile-menu a{color:var(--site-ink);font-size:13px;letter-spacing:.055em;padding:15px 8px;border-bottom:1px solid var(--site-line);border-radius:0}
#mobile-menu a:hover{background:var(--site-surface);color:var(--site-ink)}
#mobile-menu a.bg-secondary{background:var(--site-ink);color:var(--site-paper);border:1px solid var(--site-ink);padding:14px 18px;margin:16px 0 8px}

/* Buttons, fields and focus share the same quiet treatment. */
body .btn{border-radius:2px;min-height:48px;font-family:var(--site-sans);font-size:13px;font-weight:500;letter-spacing:.035em;text-transform:none;line-height:1.45;box-shadow:none;transform:none;will-change:auto;transition:background-color .2s,color .2s,border-color .2s}
body .btn:hover,body .btn:active{transform:none;box-shadow:none}
body .btn-shine::after{display:none}
body .btn:is(.bg-primary,.bg-secondary){background:var(--site-ink);border:1px solid var(--site-ink);color:var(--site-paper)}
body .btn:is(.bg-primary,.bg-secondary):hover{background:#494c44;border-color:#494c44;color:var(--site-paper)}
body .btn.border:not(.bg-primary):not(.bg-secondary){border-color:#b4b2a8;color:var(--site-ink);background:transparent}
body .btn.border:not(.bg-primary):not(.bg-secondary):hover{border-color:var(--site-ink);background:var(--site-surface)}
body :is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--site-accent);outline-offset:4px;box-shadow:none}
.form-input{background:var(--site-paper);border:1px solid #cbc8be;border-radius:2px;padding:13px 14px;font-size:16px;line-height:1.4;color:var(--site-ink)}
.form-input:focus{background:var(--site-white);border-color:var(--site-accent);box-shadow:none;outline:2px solid #756b5c30;outline-offset:2px}
.form-input.is-invalid{border-color:#a73333;background:#fff8f6}
.form-input::placeholder{color:var(--site-muted);font-size:14px}
textarea.form-input{resize:vertical;min-height:144px}
#contactForm label{letter-spacing:.045em;font-weight:500;color:var(--site-copy)}
#contactForm input[type="checkbox"]{accent-color:var(--site-accent)}

/* Home: an editorial opening and a continuous three-column introduction. */
#hero-color4bg-wrap{background:#080808;min-height:min(740px,calc(100svh - 130px));padding-top:90px;padding-bottom:78px;border-bottom:1px solid #1f1f1f}
#hero-color4bg-wrap::before{display:block;background:linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.46) 58%,rgba(0,0,0,.62) 100%),linear-gradient(0deg,rgba(0,0,0,.48),rgba(0,0,0,.08));z-index:1}
#hero-color4bg-wrap::after{display:block;background:radial-gradient(circle at 50% 44%,transparent 0%,rgba(0,0,0,.2) 70%,rgba(0,0,0,.5) 100%);z-index:1}
#hero-color4bg{display:block}
.hero-content{text-align:center}
.hero-content>.max-w-4xl{max-width:none}
.hero-content .border-l-4{border:0;padding:0;margin:0 auto;max-width:1060px}
.hero-content h1{font-size:clamp(54px,6.7vw,92px);font-weight:500;letter-spacing:-.04em;line-height:1.02;color:#fff;filter:none;margin:25px auto 17px;text-shadow:0 2px 18px rgba(0,0,0,.28)}
.hero-content .border-l-4>p:first-child{font-size:11px;letter-spacing:.19em;font-weight:500;color:#f3f0e9;margin:0}
.hero-content .border-l-4>p.italic{color:rgba(255,255,255,.82);font-size:17px;margin-bottom:26px}
.hero-content .border-l-4>p.text-lg{color:rgba(255,255,255,.9);max-width:670px;margin:0 auto 33px;font-size:18px;line-height:1.75}
.hero-content .border-l-4>div{justify-content:center}
.hero-content .border-l-4>div.mt-10{margin-top:33px;color:rgba(255,255,255,.84);font-size:12px;column-gap:25px;row-gap:10px}
.hero-content .fa-circle-check{font-size:10px;color:#fff}
.hero-content .btn.bg-secondary{background:#f7f6f2;border-color:#f7f6f2;color:var(--site-ink)}
.hero-content .btn.bg-secondary:hover{background:#fff;border-color:#fff;color:var(--site-ink)}
.hero-content .btn.border:not(.bg-primary):not(.bg-secondary){border-color:rgba(255,255,255,.65);color:#fff;background:transparent}
.hero-content .btn.border:not(.bg-primary):not(.bg-secondary):hover{border-color:#fff;background:rgba(255,255,255,.12);color:#fff}
body .home-principles{background:var(--site-paper);border:0;border-bottom:1px solid var(--site-line);margin:0;border-radius:0;padding:60px 0}
.home-principles .grid{gap:0}
.home-principles article{background:transparent;border:0;border-radius:0;padding:0 32px}
.home-principles article:first-child{padding-left:0}
.home-principles article:last-child{padding-right:0}
.home-principles article+article{border-left:1px solid var(--site-line)}
.home-principles article>div{background:transparent;width:auto;height:auto;display:block;margin-bottom:20px}
.home-principles article i{font-size:22px;font-weight:900}
.home-principles h3{font-size:30px;line-height:1.12;margin-bottom:16px}
.home-principles p{font-size:15px;line-height:1.75}
#orientamento{border:0;background:var(--site-surface);padding:clamp(64px,7.5vw,110px) 0}
#orientamento h2{font-size:clamp(38px,4.5vw,58px);font-weight:500;line-height:1.06}
.triage-chip{background:transparent;color:var(--site-ink);border:0;border-bottom:1px solid #d2cfc6;border-radius:0;padding:20px 15px;font:400 16px/1.4 var(--site-sans);box-shadow:none}
.triage-chip:hover,.triage-chip[aria-pressed="true"]{background:var(--site-white);border-color:#b6b0a3;transform:none;box-shadow:none}
.triage-chip[aria-pressed="true"]{font-weight:500}
.triage-chip i{font-size:16px}
.triage-arrow{opacity:.5}
#triagePanel{background:var(--site-white);color:var(--site-copy);border:1px solid var(--site-line);padding:clamp(28px,3.5vw,46px)}
#triagePanel :is(.text-white,.text-gray-200,.text-gray-300){color:var(--site-copy)}
#triagePanel .font-serif{font-size:29px;line-height:1.3;color:var(--site-ink)}
#triagePanel .text-gray-400{color:var(--site-muted)}
#triagePanel .btn{font-size:12px;padding:13px 18px}
#triagePanel .btn:is(.bg-primary,.bg-secondary){color:var(--site-paper)}

/* Profile, practice pages and contact details. */
#page-profilo>section,#page-contatti>section,#page-privacy>section{background:var(--site-paper)}
#page-profilo h1{font-size:clamp(43px,4.5vw,61px);font-weight:500;line-height:1.06}
#page-profilo .figure-zoom{padding:0;border:0;border-radius:2px;background:var(--site-surface)}
.figure-zoom:hover img{transform:none}
#page-profilo .figure-zoom img{filter:saturate(.8)}
#page-profilo .lg\:col-span-8>div.border-l-4{border-left:1px solid var(--site-accent);background:transparent;padding:3px 0 3px 26px}
#page-profilo .lg\:col-span-8>div.border-l-4 p{font-size:26px;line-height:1.45}
#page-profilo :is(#albo-title,#formazione-title){font-size:31px;margin-top:38px}
#page-profilo section[aria-labelledby="albo-title"] .grid>div{border:0;border-top:1px solid var(--site-line);background:transparent;border-radius:0;padding:21px 0}
#page-profilo section[aria-labelledby="albo-title"] .grid{column-gap:30px;row-gap:0}
#cvSection article{background:transparent;border:0;border-top:1px solid var(--site-line);border-radius:0}
#cvSection article>span{display:none}
#cvSection article>div{padding:26px 0 10px}
#cvSection article .rounded-full{border:0;border-radius:0;background:transparent;padding:0;width:48px;height:48px;filter:grayscale(1);opacity:.8}
#cvSection h3{font-size:27px}
#cvSection li{padding-top:17px;padding-bottom:17px}
#page-contatti h3,#page-privacy>section h3{font-size:clamp(42px,4vw,58px);font-weight:500;line-height:1.08}
#page-contatti .lg\:col-span-5>.bg-white{background:transparent;border:0;border-top:1px solid var(--site-line);padding:30px 0 6px}
#page-contatti .lg\:col-span-5>.bg-primary{background:var(--site-surface);color:var(--site-copy);border:1px solid var(--site-line)}
#page-contatti .lg\:col-span-5>.bg-primary .text-gray-300{color:var(--site-copy)}
#contactFormCard{background:var(--site-white);border:1px solid var(--site-line);padding:clamp(24px,3.4vw,45px)}
#contactFormCard h4,#page-contatti .lg\:col-span-5 h4{font-size:31px}
#contactFormCard .hidden.md\:flex{background:transparent;border:0;padding:0;font-size:10px;white-space:nowrap}
#contactFormCard>div:first-child{flex-direction:column;gap:16px}
#page-privacy .prose{font-size:17px;line-height:1.85}
#page-privacy .prose h4{font-family:var(--site-serif);font-size:28px;font-weight:500;color:var(--site-ink);margin:32px 0 10px}
#page-privacy .prose p+p{margin-top:16px}
#page-privacy .prose a{text-decoration:underline;text-decoration-color:#b1a897;text-underline-offset:4px}
#page-privacy .bg-surface{background:transparent;border:0;border-top:1px solid var(--site-line);padding:28px 0 0}

/* Preserve the painting as the immersive opening to the practice areas. */
.studio-experience-page{--ink:var(--site-ink);--navy:var(--site-ink);--bronze:var(--site-accent);--paper:var(--site-paper);--white:var(--site-white);--muted:var(--site-muted);--page-pad:4.5vw;--studio-header-space:96px;background:var(--site-paper);color:var(--site-copy)}
.studio-experience-page .scene-art{z-index:0}
.studio-experience-page .scene-art img{filter:grayscale(1) contrast(1.18) brightness(.96)}
.studio-experience-page .studio-scene{height:calc(100svh - var(--studio-header-space));min-height:500px;max-height:1100px}
.studio-experience-page .studio-practice-intro{padding:clamp(36px,5vw,70px) 24px 140px;background:linear-gradient(180deg,rgba(30,31,27,.74),rgba(30,31,27,.36) 50%,transparent)}
.studio-experience-page .studio-practice-intro h1{font-size:clamp(44px,5vw,68px);font-weight:500;letter-spacing:-.025em;color:#fdfbf5}
.studio-experience-page .studio-practice-intro p{font-family:var(--site-sans);font-size:clamp(16px,1.5vw,20px);font-weight:400;font-style:italic;line-height:1.6;color:#f7f5ef;max-width:620px}
#page-pratiche>section.bg-surface{background:var(--site-paper)}
#page-pratiche .practice-card{display:flex;flex-direction:column;align-items:flex-start;background:transparent;border:1px solid var(--site-line);border-radius:2px;padding:32px;box-shadow:none;color:var(--site-copy);transform:none;transition:background-color .2s,border-color .2s}
#page-pratiche .practice-card:hover{background:var(--site-white);border-color:#aca698;transform:none;box-shadow:none}
#page-pratiche .practice-card>p:first-child{font-size:10px;letter-spacing:.16em;margin-bottom:27px;color:var(--site-muted)}
#page-pratiche .practice-card>i{font-size:24px;margin-bottom:22px;color:var(--site-accent);transform:none}
#page-pratiche .practice-card h4{font-size:30px;line-height:1.1;font-weight:500;margin-bottom:16px;color:var(--site-ink)}
#page-pratiche .practice-card>p.text-gray-600{font-size:15px;line-height:1.7;margin-bottom:26px}
#page-pratiche .grid+.mt-16{background:var(--site-surface);color:var(--site-copy);border:1px solid var(--site-line);padding:32px}
#page-pratiche .grid+.mt-16 h4{font-size:30px;color:var(--site-ink)}
#page-pratiche .grid+.mt-16 .text-gray-300{color:var(--site-copy)}
#page-pratiche .btn{color:var(--site-paper)}

/* Modal, footer and small-screen tools. */
#practiceModal>.relative{margin:24px auto;padding:0 20px;max-width:800px}
#practiceModal>.relative>div{max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;background:var(--site-paper);border:1px solid var(--site-line);border-radius:3px;box-shadow:0 24px 80px #11120f33}
#practiceModal .modal-backdrop{background:rgba(34,35,30,.5);backdrop-filter:blur(5px)}
#modalTitle{font-size:clamp(30px,3vw,40px);font-weight:500}
#modalClose{flex-shrink:0;width:44px;height:44px}
footer{background:var(--site-ink)!important;color:#bcbdb4;padding-top:72px;border-color:#45463f}
footer::before{display:none}
footer :is(.text-gray-300,.text-gray-400){color:#c9cac0}
footer .text-gray-500{color:#afb0a6}
body footer .text-secondary{color:#c3b69e}
footer .text-white{color:var(--site-paper)}
footer .border-slate-800{border-color:#45463f}
footer h4.font-serif{font-size:31px;font-weight:500}
footer h4.uppercase{font-size:11px;font-weight:500;letter-spacing:.13em}
footer a:hover{color:var(--site-white)!important}
footer p.text-secondary{font-size:10px;font-weight:500;letter-spacing:.14em}
#quickBar{background:rgba(247,246,242,.97);border-color:var(--site-line);backdrop-filter:blur(12px)}
#quickBar a{color:var(--site-ink);font-size:11px;letter-spacing:.08em;font-weight:500;border-color:var(--site-line)}
#backToTop{background:var(--site-paper);color:var(--site-ink);border:1px solid var(--site-line);width:42px;height:42px;box-shadow:none}
#backToTop:hover{background:var(--site-surface)}
#scrollProgress{height:1px;background:var(--site-accent)}
.skip-link{background:var(--site-ink);border-color:var(--site-accent)}
body::before{background:rgba(247,246,242,.9)}
.site-loader-name{color:var(--site-ink)}
.site-loader-subtitle{color:var(--site-accent)}
#siteLoader::after{background:var(--site-line);box-shadow:none}
body.motion-ready :is(.page,.page.page-enter,.page.is-leaving,.page-reveal){transform:none;transition-duration:.25s;transition-delay:0s;will-change:auto}
body.motion-ready .page-reveal.is-revealed{transition:opacity .35s ease;transition-delay:0s}
body.motion-ready .page-reveal{opacity:1;transform:none}

@media(min-width:1024px){
  .studio-experience-page{--studio-header-space:130px}
  #page-profilo .lg\:col-span-4{padding-right:26px}
  #page-profilo .lg\:col-span-8{padding-left:20px}
  #page-contatti .lg\:col-span-5{padding-right:24px}
}
@media(max-width:1023px){
  #navbar>div:first-child>div{height:82px}
  .site-brand a{font-size:27px}
  .site-brand>span{font-size:9px;letter-spacing:.13em;margin-top:7px}
  .studio-experience-page{--studio-header-space:82px}
  #hero-color4bg-wrap{min-height:620px;padding:72px 0}
  #page-profilo aside{max-width:440px;width:100%;margin:0 auto}
  #page-profilo .lg\:col-span-8{margin-top:12px}
}
@media(max-width:767px){
  body .max-w-5xl{padding-left:24px;padding-right:24px}
  #hero-color4bg-wrap{min-height:0;padding:65px 0 52px}
  .hero-content h1{font-size:clamp(52px,10vw,68px);max-width:520px;line-height:1.04;margin-top:25px}
  .hero-content .border-l-4>p.text-lg{font-size:17px;line-height:1.75;max-width:530px}
  .hero-content .border-l-4>div.mt-10{gap:10px 18px;font-size:11px;margin-top:28px}
  .hero-content .flex.gap-5{gap:12px;max-width:420px;margin:0 auto}
  body .home-principles{padding:10px 0}
  .home-principles article,.home-principles article:first-child,.home-principles article:last-child{padding:30px 0;border:0}
  .home-principles article+article{border-left:0;border-top:1px solid var(--site-line)}
  .home-principles article>div{margin-bottom:15px}
  .home-principles h3{font-size:30px;margin-bottom:11px}
  #orientamento .grid{gap:30px}
  #page-pratiche .practice-card{padding:28px}
  #page-pratiche .grid+.mt-16{padding:28px}
  #page-pratiche .grid+.mt-16 .btn{width:100%;white-space:normal}
  .studio-experience-page .studio-scene{min-height:520px;height:calc(100svh - 82px)}
  .studio-experience-page .studio-practice-intro{padding:36px 24px 110px}
  .studio-experience-page .studio-practice-intro h1{font-size:44px;max-width:480px;margin:0 auto}
  .studio-experience-page .studio-practice-intro p{font-size:16px;max-width:340px;margin-top:14px}
  .studio-experience-page .scene-art img{object-position:51% center}
  #practiceModal>.relative{margin:12px auto;padding:0 12px}
  #practiceModal>.relative>div{max-height:calc(100dvh - 24px)}
  footer{padding-top:54px}
  footer .grid{gap:36px}
}
@media(max-width:380px){
  .site-brand a{font-size:24px}
  .site-brand>span{font-size:8px}
  #navbar .max-w-7xl{padding-left:18px;padding-right:18px}
  .studio-experience-page .studio-practice-intro h1{font-size:40px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body *,body *::before,body *::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
