/* RVA theme — design tokens + shared components (from validated prototypes) */

  @font-face{font-family:"DM Sans";font-weight:300;font-style:normal;font-display:swap;src:url("../fonts/dmsans-300.woff2") format("woff2");}
  @font-face{font-family:"DM Sans";font-weight:400;font-style:normal;font-display:swap;src:url("../fonts/dmsans-400.woff2") format("woff2");}
  @font-face{font-family:"DM Sans";font-weight:500;font-style:normal;font-display:swap;src:url("../fonts/dmsans-500.woff2") format("woff2");}

  :root{
    --bone:#F6F2EB; --paper:#EFEAE1; --ink:#282521; --ink-soft:#6E685E;
    --line:#E0D9CC; --accent:#6F5B45; --inverse:#F4F0E9;
    --font:"DM Sans",ui-sans-serif,system-ui,sans-serif;
    /* in rem, cosi il container segue la scala del root sugli schermi grandi */
    --container:87.5rem; --gutter:clamp(1.5rem,5vw,4.5rem);
    /* rhythm: 120→200px desktop (brief) */
    --section:clamp(7rem,5rem + 7vw,12.5rem);
    --gap-head:clamp(3.5rem,4rem + 2vw,5.5rem);   /* sec-head → content */
    --tr-nav:0.24em; --tr-wide:0.16em;
    --ease:cubic-bezier(0.22,1,0.36,1);
    --head-h:5rem;
  }
  /* Schermi grandi: la tipografia era tarata fino a 1440 e sopra restava ferma,
     lasciando il sito piccolo in mezzo al vuoto. Qui cresce la scala d'insieme
     (root + container in rem): sotto 1800px non cambia nulla. */
  @media (min-width:1800px){ html{font-size:106.25%;} }
  @media (min-width:2400px){ html{font-size:113%;} }
  @media (min-width:3200px){ html{font-size:120%;} }

  *{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;}
  body{margin:0;background:var(--bone);color:var(--ink);font-family:var(--font);font-weight:400;
    line-height:1.7;font-size:clamp(1rem,0.95rem + 0.25vw,1.1rem);
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
  a{color:inherit;text-decoration:none;}
  img{display:block;max-width:100%;}
  h1,h2,h3{font-weight:300;line-height:1.08;letter-spacing:-0.012em;text-wrap:balance;margin:0;}
  .wrap{max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);}
  .eyebrow{font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:var(--tr-nav);color:var(--ink-soft);}

  /* Header */
  header.site{position:fixed;inset:0 0 auto 0;z-index:50;color:var(--inverse);
    transition:background .5s var(--ease),color .5s var(--ease),border-color .5s var(--ease);
    border-bottom:1px solid transparent;}
  header.site.solid{background:var(--bone);color:var(--ink);border-bottom-color:var(--line);}
  .bar{display:flex;align-items:center;justify-content:space-between;height:var(--head-h);gap:1.5rem;}
  .brand{display:flex;align-items:center;gap:.9rem;position:relative;}
  .logo{display:flex;flex-direction:column;align-items:stretch;width:4.5rem;}
  .logo-svg{width:4.5rem;height:auto;display:block;}
  .logo-city{display:flex;justify-content:space-between;width:100%;margin-top:5px;
    font-size:9px;font-weight:500;text-transform:uppercase;color:var(--accent);
    line-height:1;max-height:0;opacity:0;overflow:hidden;transition:max-height .45s var(--ease),opacity .45s var(--ease);}
  header.site:not(.solid) .logo-city{color:var(--inverse);}
  .logo-city.on{max-height:12px;opacity:1;}
  .loc-trigger{display:inline-flex;align-items:center;gap:.45rem;background:none;border:0;cursor:pointer;
    font-family:inherit;color:inherit;font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;
    padding:.4rem .2rem;opacity:.9;}
  .loc-trigger .chev{width:8px;height:8px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;
    transform:rotate(45deg) translateY(-2px);transition:transform .3s var(--ease);}
  .loc-trigger[aria-expanded="true"] .chev{transform:rotate(225deg) translateY(-1px);}
  .loc-menu{position:absolute;top:calc(100% + 14px);left:0;min-width:200px;background:var(--bone);color:var(--ink);
    border:1px solid var(--line);box-shadow:0 18px 50px rgba(40,37,33,.14);padding:.4rem 0;
    opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s;z-index:60;}
  .loc-menu.open{opacity:1;visibility:visible;transform:none;}
  .loc-menu button{display:flex;justify-content:space-between;align-items:baseline;width:100%;background:none;border:0;
    cursor:pointer;font-family:inherit;color:var(--ink);font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;
    padding:.85rem 1.15rem;transition:background .25s;}
  .loc-menu button:hover{background:var(--paper);}
  .loc-menu button .co{font-size:.56rem;color:var(--ink-soft);letter-spacing:.1em;}
  .loc-menu button[aria-pressed="true"]{color:var(--accent);}
  .loc-menu .sep{height:1px;background:var(--line);margin:.35rem 0;}
  nav.main{display:none;gap:2.6rem;}
  nav.main a{font-size:.74rem;text-transform:uppercase;letter-spacing:var(--tr-wide);position:relative;padding:.3rem 0;}
  nav.main a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);}
  nav.main a:hover::after{transform:scaleX(1);}
  .head-right{display:flex;align-items:center;gap:1.4rem;}
  .btn-out{font-family:inherit;font-size:.7rem;text-transform:uppercase;letter-spacing:var(--tr-wide);border:1px solid currentColor;padding:.72rem 1.15rem;cursor:pointer;background:transparent;color:inherit;white-space:nowrap;transition:background .4s var(--ease),color .4s var(--ease);}
  header.site.solid .btn-out:hover{background:var(--ink);color:var(--bone);}
  header.site:not(.solid) .btn-out:hover{background:var(--inverse);color:var(--ink);}
  .burger{display:inline-flex;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:.3rem;}
  .burger span{width:24px;height:1.5px;background:currentColor;}
  @media(min-width:1040px){nav.main{display:flex;}.burger{display:none;}}
  @media(max-width:1039px){.head-right .btn-out{display:none;}}

  /* HERO — big display type */
  .hero{position:relative;height:min(100svh,68rem);min-height:600px;display:flex;align-items:flex-end;color:var(--inverse);overflow:hidden;}
  .hero .bg{position:absolute;inset:0;width:100%;height:118%;object-fit:cover;z-index:-2;will-change:transform;}
  .hero .scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(75deg,rgba(26,22,18,.55) 0%,rgba(26,22,18,.18) 38%,rgba(26,22,18,0) 60%),linear-gradient(180deg,rgba(26,22,18,.4),rgba(26,22,18,.06) 32%,rgba(26,22,18,.22) 58%,rgba(26,22,18,.78));}
  .hero .inner{padding-bottom:clamp(4rem,10vh,7.5rem);width:100%;}
  .hero .eyebrow{color:rgba(244,240,233,.85);}
  .hero h1{font-weight:300;font-size:clamp(2.2rem,1.2rem + 3.4vw,4.2rem);line-height:1.06;letter-spacing:-0.018em;max-width:18ch;margin-top:1.6rem;}
  .hero .sub{margin-top:1.8rem;font-size:clamp(.95rem,.9rem + .3vw,1.15rem);color:rgba(244,240,233,.85);max-width:44ch;line-height:1.6;}
  .hero .scrollcue{position:absolute;left:50%;bottom:1.5rem;transform:translateX(-50%);font-size:.6rem;letter-spacing:var(--tr-nav);text-transform:uppercase;color:rgba(244,240,233,.7);display:flex;flex-direction:column;align-items:center;gap:.55rem;}
  .hero .scrollcue .ln{width:1px;height:36px;background:rgba(244,240,233,.5);animation:cue 2.6s var(--ease) infinite;}
  @keyframes cue{0%,100%{transform:scaleY(.4);opacity:.4;transform-origin:top}50%{transform:scaleY(1);opacity:.9;transform-origin:top}}

  /* Sections */
  section{padding-block:var(--section);}
  .sec-head{display:flex;flex-direction:column;gap:1.5rem;max-width:56ch;margin-bottom:var(--gap-head);}
  .sec-head h2{font-size:clamp(1.9rem,1.3rem + 2.1vw,2.9rem);}
  .lead{font-size:clamp(1.05rem,1rem + 0.5vw,1.35rem);color:var(--ink-soft);max-width:58ch;line-height:1.65;}

  /* THREE SEATS */
  .seat-grid{display:grid;grid-template-columns:1fr;gap:clamp(1.25rem,2vw,1.75rem);}
  @media(min-width:800px){.seat-grid{grid-template-columns:repeat(3,1fr);}}
  .seat{position:relative;display:block;overflow:hidden;color:var(--inverse);isolation:isolate;}
  .seat .imgwrap{aspect-ratio:3/4;overflow:hidden;}
  .seat img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s var(--ease);}
  .seat:hover img{transform:scale(1.045);}
  /* scrim a tre stop: le foto sedi 2026-08 sono molto chiare, con due stop il testo non si leggeva */
  .seat::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(26,22,18,.06) 20%,rgba(26,22,18,.52) 56%,rgba(26,22,18,.9) 100%);pointer-events:none;}
  .seat .cap{position:absolute;left:0;bottom:0;z-index:2;padding:clamp(1.6rem,2.5vw,2.2rem);width:100%;}
  .seat .co{font-size:.64rem;letter-spacing:var(--tr-nav);text-transform:uppercase;opacity:.95;}
  .seat .city{font-weight:300;font-size:clamp(1.9rem,1.4rem + 1.6vw,2.75rem);margin:.55rem 0 .75rem;}
  .seat .note{font-size:.92rem;line-height:1.55;color:rgba(244,240,233,.85);max-width:27ch;}
  .seat .go{margin-top:1.15rem;font-size:.66rem;letter-spacing:var(--tr-wide);text-transform:uppercase;display:inline-flex;align-items:center;gap:.6rem;}
  .seat .go .r{width:2rem;height:1px;background:currentColor;transition:width .5s var(--ease);}
  .seat:hover .go .r{width:3.4rem;}

  /* INTRO — centered narrow column */
  .intro{text-align:center;}
  .intro .col{max-width:44rem;margin-inline:auto;display:flex;flex-direction:column;gap:2rem;align-items:center;}
  .intro h2{font-size:clamp(1.9rem,1.2rem + 2.3vw,3rem);line-height:1.12;max-width:20ch;}
  .intro p{color:var(--ink-soft);margin:0;font-size:clamp(1.02rem,1rem + 0.4vw,1.2rem);max-width:52ch;}
  .intro .stats{display:flex;gap:clamp(2.5rem,6vw,5.5rem);justify-content:center;margin-top:2rem;flex-wrap:wrap;}
  .intro .stats .n{font-size:clamp(2.4rem,1.8rem + 1.8vw,3.5rem);font-weight:300;}
  .intro .stats .l{font-size:.66rem;text-transform:uppercase;letter-spacing:var(--tr-wide);color:var(--ink-soft);margin-top:.45rem;}

  /* WORKS — staggered on paper */
  .works{background:var(--paper);}
  .work-grid{display:grid;grid-template-columns:1fr;gap:clamp(3.5rem,6vw,6rem) var(--gutter);}
  @media(min-width:780px){.work-grid{grid-template-columns:1fr 1fr;}.work-grid .work:nth-child(even){margin-top:clamp(4rem,8vw,8rem);}}
  .work .imgwrap{aspect-ratio:3/4;overflow:hidden;}
  .work img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease);}
  .work:hover img{transform:scale(1.04);}
  .work .meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:1.4rem;gap:1rem;}
  .work .t{font-size:clamp(1.25rem,1rem + .8vw,1.6rem);font-weight:400;}
  .work .ty{font-size:.64rem;text-transform:uppercase;letter-spacing:var(--tr-wide);color:var(--ink-soft);white-space:nowrap;}
  .work .loc{font-size:.88rem;color:var(--ink-soft);margin-top:.3rem;}
  .work-more{margin-top:clamp(4rem,7vw,6rem);text-align:center;}

  /* MEET */
  .meet .grid{display:grid;grid-template-columns:1fr;gap:clamp(3rem,5vw,5rem);align-items:center;}
  @media(min-width:820px){.meet .grid{grid-template-columns:0.82fr 1fr;gap:clamp(4rem,7vw,8rem);}}
  .meet .imgwrap{aspect-ratio:4/5;overflow:hidden;}
  .meet img{width:100%;height:100%;object-fit:cover;}
  .meet h2{font-size:clamp(1.85rem,1.3rem + 2vw,3.05rem);margin:1.4rem 0 1.8rem;}
  .meet p{color:var(--ink-soft);max-width:52ch;margin:0;}
  .meet .sig{margin-top:2.2rem;font-size:.66rem;text-transform:uppercase;letter-spacing:var(--tr-wide);color:var(--ink-soft);}

  /* SERVICES */
  .svc ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
  .svc li a{display:grid;grid-template-columns:auto 1fr auto;gap:1.8rem;align-items:center;padding:clamp(1.5rem,3vw,2.4rem) 0;border-bottom:1px solid var(--line);transition:color .3s;}
  .svc li a:hover{color:var(--accent);}
  .svc .num{font-size:.66rem;color:var(--ink-soft);font-variant-numeric:tabular-nums;letter-spacing:.12em;}
  .svc .name{font-size:clamp(1.3rem,1rem + 1.3vw,2.2rem);font-weight:300;}
  .svc .arrow{transition:transform .4s var(--ease);}
  .svc li a:hover .arrow{transform:translateX(10px);}

  /* JOURNAL — paper bg */
  .jr{background:var(--paper);}
  .jr-grid{display:grid;grid-template-columns:1fr;gap:clamp(2.75rem,4vw,3.5rem);}
  @media(min-width:780px){.jr-grid{grid-template-columns:repeat(3,1fr);gap:var(--gutter);}}
  .post .imgwrap{aspect-ratio:4/5;overflow:hidden;}
  .post img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease);}
  .post:hover img{transform:scale(1.045);}
  .post .k{font-size:.64rem;text-transform:uppercase;letter-spacing:var(--tr-wide);color:var(--ink-soft);margin:1.3rem 0 .65rem;}
  .post h3{font-size:1.22rem;font-weight:400;line-height:1.38;}

  /* CTA */
  .cta{background:var(--ink);color:var(--inverse);text-align:center;}
  .cta .col{max-width:46rem;margin-inline:auto;display:flex;flex-direction:column;gap:1.9rem;align-items:center;}
  .cta .eyebrow{color:rgba(244,240,233,.55);}
  .cta h2{font-size:clamp(1.9rem,1.3rem + 2.3vw,3rem);max-width:18ch;}
  .cta p{color:rgba(244,240,233,.72);margin:0;max-width:46ch;}
  .cta .btn{font-family:inherit;font-size:.76rem;text-transform:uppercase;letter-spacing:var(--tr-nav);padding:1.15rem 2.4rem;background:var(--accent);color:var(--inverse);border:0;cursor:pointer;transition:background .35s var(--ease);margin-top:.6rem;}
  .cta .btn:hover{background:#87715a;}
  .cta .alt{font-size:.68rem;letter-spacing:var(--tr-wide);text-transform:uppercase;color:rgba(244,240,233,.7);text-decoration:underline;text-underline-offset:5px;}

  /* FOOTER */
  footer.site{background:var(--bone);padding-block:clamp(4.5rem,7vw,7.5rem) 2.5rem;}
  .foot-grid{display:grid;grid-template-columns:1fr;gap:3rem;}
  @media(min-width:760px){.foot-grid{grid-template-columns:repeat(3,1fr);}}
  .office h4{font-size:.66rem;text-transform:uppercase;letter-spacing:var(--tr-nav);color:var(--accent);margin:0 0 1.15rem;}
  .office p{margin:.3rem 0;color:var(--ink-soft);font-size:.93rem;line-height:1.55;}
  .foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:clamp(3.5rem,5vw,5rem);padding-top:1.7rem;border-top:1px solid var(--line);font-size:.66rem;color:var(--ink-soft);letter-spacing:var(--tr-wide);text-transform:uppercase;}

  /* Start FAB + panel */
  .start-fab{position:fixed;right:1.4rem;bottom:1.4rem;z-index:60;background:var(--accent);color:var(--inverse);border:0;cursor:pointer;font-family:inherit;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;padding:1rem 1.5rem;box-shadow:0 10px 34px rgba(40,37,33,.3);transition:transform .3s var(--ease);}
  .start-fab:hover{transform:translateY(-2px);}
  @media(max-width:640px){.start-fab{left:0;right:0;text-align:center;bottom:0;padding:1.05rem;}}
  .panel{position:fixed;inset:0;z-index:70;visibility:hidden;transition:visibility .55s;}
  .panel.open{visibility:visible;}
  .panel .scrim{position:absolute;inset:0;background:rgba(26,22,18,.5);opacity:0;transition:opacity .4s;}
  .panel.open .scrim{opacity:1;}
  .panel .sheet{position:absolute;top:0;right:0;height:100%;width:min(460px,100%);background:var(--bone);padding:clamp(1.75rem,4vw,2.75rem);overflow-y:auto;transform:translateX(100%);transition:transform .5s var(--ease);display:flex;flex-direction:column;gap:1.5rem;}
  .panel.open .sheet{transform:none;}
  .panel .x{align-self:flex-end;background:none;border:0;font-size:1.6rem;cursor:pointer;color:var(--ink);line-height:1;}
  .panel h3{font-size:1.8rem;font-weight:300;}
  .panel .step{font-size:.64rem;text-transform:uppercase;letter-spacing:var(--tr-nav);color:var(--accent);}
  .panel .q{font-weight:500;margin-top:.45rem;}
  .panel .opts{display:flex;flex-wrap:wrap;gap:.6rem;}
  .panel .opts button{font-family:inherit;font-size:.88rem;padding:.65rem 1.05rem;border:1px solid var(--line);background:transparent;cursor:pointer;color:var(--ink);transition:border-color .3s,background .3s;}
  .panel .opts button:hover{border-color:var(--ink);background:var(--paper);}
  .panel .hint{font-size:.74rem;color:var(--ink-soft);line-height:1.5;}
  .panel .steps{display:flex;gap:.45rem;margin-top:auto;}
  .panel .steps i{flex:1;height:2px;background:var(--line);}
  .panel .steps i.on{background:var(--accent);}
  .panel .next{margin-top:1rem;background:var(--ink);color:var(--bone);border:0;padding:1.05rem;cursor:pointer;font-family:inherit;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;}

  .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
  .reveal.in{opacity:1;transform:none;}
  @media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}.reveal{opacity:1;transform:none;}.hero .bg{height:100%;}}

  .proto-note{position:fixed;left:0;top:0;z-index:80;background:var(--accent);color:#fff;font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;padding:.25rem .6rem;opacity:.78;}

/* --- start-your-project form --- */
.sheet-top{display:flex;justify-content:space-between;align-items:center;}
  .sheet-top .x{align-self:auto;}
  .opts button.sel{border-color:var(--ink);background:var(--paper);}
  .fname input{width:100%;font-family:inherit;font-size:1rem;padding:.95rem 1.05rem;border:1px solid var(--line);background:transparent;color:var(--ink);box-sizing:border-box;}
  .fname input:focus{outline:2px solid var(--accent);outline-offset:2px;}
  .fnav{display:flex;gap:1.2rem;align-items:center;}
  .fback{background:none;border:0;cursor:pointer;font-family:inherit;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);padding:.6rem 0;}
  .fback:hover{color:var(--ink);}
  .fwa{flex:1;text-align:center;background:#4E7A5A;color:#fff;padding:1.05rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .3s;}
  .fwa:hover{background:#3f6449;}
  .fwa[aria-disabled="true"]{opacity:.45;pointer-events:none;}
  .fsum{font-size:.85rem;color:var(--ink-soft);border:1px solid var(--line);padding:1rem 1.15rem;display:flex;flex-direction:column;gap:.35rem;}
  .fsum b{color:var(--ink);font-weight:500;}

/* --- anchor smooth + rail indice --- */
html{scroll-behavior:smooth;}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
#wgal,#related,#details,#overview{scroll-margin-top:110px;}
.gal .gi[hidden]{display:none;}
.gal-more{display:block;margin:clamp(2.5rem,4vw,3.5rem) auto 0;background:none;border:1px solid var(--ink);color:var(--ink);
  font-family:inherit;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;padding:.95rem 1.8rem;cursor:pointer;
  transition:background .35s,color .35s;}
.gal-more:hover{background:var(--ink);color:var(--bone);}

/* --- footer strutturato --- */
footer.site{padding-block:0 2.5rem;}
.foot-cta{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;
  padding-block:clamp(3.5rem,5vw,5.5rem);border-bottom:1px solid var(--line);}
.foot-cta h3{font-size:clamp(1.7rem,1.2rem + 2vw,2.9rem);font-weight:300;margin:.9rem 0 0;letter-spacing:-0.01em;}
.foot-cta-actions{display:flex;align-items:center;gap:1.8rem;flex-wrap:wrap;}
.btn-foot{font-family:inherit;font-size:.76rem;text-transform:uppercase;letter-spacing:var(--tr-nav);
  padding:1.1rem 2.2rem;background:var(--accent);color:var(--inverse);border:0;cursor:pointer;transition:background .35s var(--ease);}
.btn-foot:hover{background:#87715a;}
.foot-alt{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);
  text-decoration:underline;text-underline-offset:5px;transition:color .3s;}
.foot-alt:hover{color:var(--ink);}
.foot-main{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem var(--gutter);padding-block:clamp(3rem,4.5vw,4.5rem);}
@media(min-width:900px){.foot-main{grid-template-columns:1.6fr 1fr 1fr;}}
.fcol h4{font-size:.64rem;text-transform:uppercase;letter-spacing:var(--tr-nav);color:var(--ink-soft);margin:0 0 1.1rem;font-weight:500;}
.fcol a{display:block;color:var(--ink);font-size:.95rem;padding:.3rem 0;transition:color .3s;}
.fcol a:hover{color:var(--accent);}
.fcol-brand{grid-column:1 / -1;}
@media(min-width:900px){.fcol-brand{grid-column:auto;}}
.foot-logo-svg{width:64px;height:auto;color:var(--ink);margin-bottom:1.2rem;}
.fcol-brand p{color:var(--ink-soft);font-size:.92rem;max-width:30ch;margin:0 0 1.4rem;line-height:1.6;}
.fsocial{display:flex;gap:1.4rem;}
.fsocial a{display:inline;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);}
.fsocial a:hover{color:var(--accent);}
.foot-offices{display:grid;grid-template-columns:1fr;gap:1.6rem var(--gutter);padding-block:clamp(2rem,3vw,3rem);border-top:1px solid var(--line);}
@media(min-width:760px){.foot-offices{grid-template-columns:repeat(3,1fr);}}
.f-office h5{font-size:.62rem;text-transform:uppercase;letter-spacing:var(--tr-nav);color:var(--accent);margin:0 0 .5rem;font-weight:500;}
.f-office p{margin:.15rem 0;color:var(--ink-soft);font-size:.85rem;line-height:1.5;}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  padding-top:1.6rem;border-top:1px solid var(--line);font-size:.66rem;color:var(--ink-soft);letter-spacing:.12em;text-transform:uppercase;}
.foot-bottom a{color:var(--ink-soft);}
.foot-bottom a:hover{color:var(--ink);}

.foot-badges{display:flex;align-items:center;gap:clamp(2rem,4vw,3.5rem);flex-wrap:wrap;
  padding-block:clamp(1.8rem,2.5vw,2.5rem);border-top:1px solid var(--line);}
.foot-badges img{height:48px;width:auto;opacity:.75;transition:opacity .3s;}
.foot-badges img[alt*="Houzz"]{filter:grayscale(1);opacity:.6;}
.foot-badges img:hover{opacity:1;filter:none;}

.f-ig,.f-soc a{font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--accent);text-decoration:underline;text-underline-offset:4px;}
.f-ig{display:inline-block;margin-top:.5rem;}
.f-ig:hover,.f-soc a:hover{color:var(--ink);}
/* social per sede: due voci sulla stessa riga, separate da un punto medio */
.f-soc{margin-top:.6rem!important;color:var(--line);}

/* hidden deve vincere sempre */
.fsum[hidden],.fname[hidden],.fnav [hidden]{display:none!important;}
.jr-grid .post[hidden]{display:none!important;}
.work-grid[hidden]{display:none!important;}

/* frecce carosello (desktop) */
.car-nav{display:none;gap:.7rem;margin-top:1.8rem;}
@media(hover:hover) and (pointer:fine){.car-nav{display:flex;}}
.car-arrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:border-color .3s var(--ease),background .3s var(--ease);}
.car-arrow:hover{border-color:var(--ink);background:var(--ink);}
.car-arrow .ar{width:8px;height:8px;border-top:1px solid var(--ink);border-right:1px solid var(--ink);transition:border-color .3s;}
.car-arrow:hover .ar{border-color:var(--bone);}
.car-arrow.car-prev .ar{transform:rotate(-135deg);margin-left:3px;}
.car-arrow.car-next .ar{transform:rotate(45deg);margin-right:3px;}

/* banda full-bleed con foto di sfondo e testo sopra */
.pbg{position:relative;overflow:hidden;color:var(--inverse);padding-block:clamp(7rem,16vh,12rem);}
.pbg .pbg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;}
.pbg .pbg-scrim{position:absolute;inset:0;z-index:-1;
  /* velo uniforme + gradiente direzionale: le foto chiare (interni in pieno giorno)
     lasciavano il testo bianco quasi illeggibile con il solo gradiente */
  background:linear-gradient(0deg,rgba(26,22,18,.2),rgba(26,22,18,.2)),
             linear-gradient(75deg,rgba(26,22,18,.72),rgba(26,22,18,.48) 55%,rgba(26,22,18,.36));}
.pbg .eyebrow{color:rgba(244,240,233,.8);}
.pbg h2{color:var(--inverse);font-size:clamp(1.9rem,1.2rem + 2.6vw,3.3rem);margin:1.4rem 0 1.6rem;max-width:22ch;text-wrap:balance;}
.pbg p{color:rgba(244,240,233,.88);max-width:54ch;margin:0 0 1rem;}
.pbg .stats .n{color:var(--inverse);}
.pbg .stats .l{color:rgba(244,240,233,.7);}

/* --- body cta globale --- */
.body-cta{display:inline-flex;align-items:center;gap:.6rem;font-size:.7rem;font-weight:500;text-transform:uppercase;
  letter-spacing:var(--tr-nav);color:var(--ink);text-decoration:none;border-bottom:1px solid var(--accent);
  padding-bottom:.35rem;transition:color .3s;}
.body-cta:hover{color:var(--accent);}
/* --- steps --- */
.steps{display:grid;grid-template-columns:1fr;gap:2.5rem var(--gutter);}
@media(min-width:820px){.steps{grid-template-columns:repeat(4,1fr);}}
.step{border-top:1px solid var(--line);padding-top:1.6rem;}
.step .n{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-variant-numeric:tabular-nums;}
.step h3{font-size:1.15rem;font-weight:500;margin:.9rem 0 .6rem;}
.step p{font-size:.92rem;color:var(--ink-soft);margin:0;line-height:1.6;}
/* --- mobile nav --- */
.mnav{position:fixed;inset:0;z-index:64;background:var(--bone);color:var(--ink);
  display:flex;flex-direction:column;justify-content:center;gap:2.5rem;padding:6rem var(--gutter) 3rem;
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .45s var(--ease),transform .45s var(--ease),visibility .45s;}
body.nav-open .mnav{opacity:1;visibility:visible;transform:none;}
body.nav-open{overflow:hidden;}
body.nav-open header.site{background:var(--bone);color:var(--ink);border-bottom-color:var(--line);z-index:70;}
.mnav-links{display:flex;flex-direction:column;gap:1.4rem;}
.mnav-links a{font-size:clamp(1.8rem,7vw,2.6rem);font-weight:300;letter-spacing:-0.01em;color:var(--ink);}
.mnav-cities{display:flex;flex-wrap:wrap;gap:.7rem;}
.mnav-cities button{font-family:inherit;font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;
  background:transparent;border:1px solid var(--line);color:var(--ink);cursor:pointer;padding:.7rem 1.1rem;}
.mnav-start{font-family:inherit;font-size:.74rem;text-transform:uppercase;letter-spacing:var(--tr-nav);
  padding:1.05rem 1.6rem;background:var(--accent);color:var(--inverse);border:0;cursor:pointer;align-self:flex-start;}
body.nav-open .burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
body.nav-open .burger span:nth-child(2){opacity:0;}
body.nav-open .burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.burger span{transition:transform .35s var(--ease),opacity .3s;}
@media(min-width:1040px){.mnav{display:none;}}

/* --- work meta: eyebrow sopra il titolo su mobile --- */
@media(max-width:899px){
  .work .meta{flex-direction:column-reverse;align-items:flex-start;gap:.4rem;}
}
/* --- footer mobile: spazio per la bottom bar sticky --- */
@media(max-width:640px){
  footer.site{padding-bottom:7rem;}
}

/* --- hero: contenuto sempre ancorato in basso --- */
.hero .inner,.whero .inner,.phero .inner{margin-top:auto;align-self:flex-end;}
.hero,.whero,.phero{align-items:flex-end;}
@media(max-width:640px){
  .whero h1,.phero h1{font-size:clamp(1.9rem,8vw,2.6rem);}
  .whero .inner,.phero .inner{padding-bottom:5.5rem;} /* sopra la bottom bar */
}

/* --- MOBILE: foto orizzontali dentro contenitori verticali ---
   Le hero e le bande a tutta larghezza usano foto landscape. Su smartphone il
   contenitore è alto e stretto: object-fit:cover mostrava una strisciolina
   centrale ingrandita fino a 3x (sfocata e mal inquadrata). Qui riduciamo
   l'altezza della hero, togliamo il sovradimensionamento della parallasse e
   diamo a ogni foto il suo punto focale (--focal-m). */
@media(max-width:820px){
  .hero,.phero{height:min(76svh,620px);min-height:440px;}
  .hero .bg,.phero .bg{
    height:100%;
    transform:none!important;      /* la parallasse JS scriveva un translateY inline */
    object-position:var(--focal-m,50% 50%);
  }
  .whero .bg{object-position:var(--focal-m,50% 50%);}

  /* bande full-bleed: foto intera sopra, testo sotto (niente testo sull'immagine) */
  .pbg{color:var(--ink);background:var(--paper);padding-block:0!important;}
  .pbg .pbg-img{position:static;z-index:auto;width:100%;height:auto;display:block;
    aspect-ratio:var(--pbg-ar,3/2);object-fit:cover;object-position:var(--focal-m,50% 50%);}
  .pbg .pbg-scrim{display:none;}
  .pbg > .wrap{padding-block:clamp(2.6rem,8vw,3.6rem);}
  .pbg h2,.pbg .stats .n{color:var(--ink);}
  .pbg p,.pbg .eyebrow,.pbg .stats .l{color:var(--ink-soft);}
  .pbg.pbg-craft{min-height:0;display:block;}

}
