/* =================================================================
   CP VII — CURIA PICTA · styles
   Themes: dark (Dark Luxe) · materico (Materico Caldo) · ibrido
   ================================================================= */

/* ---------- TOKENS ---------- */
:root{
  /* Dark Luxe (default) — forest night + chocolate, luxury estremo */
  --bg:#08090e;
  --bg-2:#0c0d14;
  --bg-3:#14161f;
  --surface:#0d0e15;
  --raised:#181b26;
  --line:rgba(141,138,144,.08);
  --line-gold:rgba(87,83,88,.26);
  --text:#f2f4f8;
  --muted:#8d8a90;
  --faint:#585560;
  --on-accent:#f2f4f8;
  --choco:#252a50;
  --choco-2:#575358;
  --shadow:0 44px 100px -44px rgba(0,0,0,.95);
  --card:#0e0f16;
  --card-2:#181b26;
  --card-line:rgba(87,83,88,.20);

  /* accent — verde bosco scurissimo */
  --accent:#50574c;
  --accent-2:#6f766a;
  --accent-soft:rgba(80,87,76,.14);

  --font-display:'Cormorant Garamond',Georgia,serif;
  --font-sans:'Mulish',system-ui,-apple-system,sans-serif;
  --wrap:1240px;
  --pad:clamp(20px,5vw,64px);
}

/* Light themes share these base tokens */
html[data-theme="materico"],
html[data-theme="ibrido"]{
  --bg:#f4eee3;
  --bg-2:#eee4d4;
  --bg-3:#e5d8c4;
  --surface:#fbf6ec;
  --raised:#f5f7fb;
  --line:rgba(64,47,29,.14);
  --line-gold:rgba(80,87,76,.34);
  --text:#1a1d28;
  --muted:#675a49;
  --faint:#8d8a90;
  --on-accent:#f5f7fb;
  --shadow:0 34px 80px -44px rgba(18,20,30,.38);
  --card:#fbf6ec;
  --card-2:#f1e7d6;
  --card-line:rgba(64,47,29,.14);
  --accent:#3a4036;
  --accent-2:#50574c;
  --accent-soft:rgba(80,87,76,.11);
  --choco:#1a1d30;
  --choco-2:#575358;
  --on-accent:#f2f4f8;
}

/* Ibrido: dark punctuation bands */
html[data-theme="ibrido"] .force-dark{
  --bg:#08090e;
  --bg-2:#0c0d14;
  --bg-3:#14161f;
  --surface:#0d0e15;
  --raised:#181b26;
  --line:rgba(141,138,144,.08);
  --line-gold:rgba(87,83,88,.26);
  --text:#f2f4f8;
  --muted:#8d8a90;
  --faint:#585560;
  --on-accent:#f2f4f8;
  --choco:#252a50;
  --choco-2:#575358;
  --card:#0e0f16;
  --card-2:#181b26;
  --card-line:rgba(87,83,88,.20);
  --accent:#50574c;
  --accent-2:#6f766a;
  --accent-soft:rgba(80,87,76,.14);
}

/* accents */
html[data-accent="terracotta"]{--accent:#3a3d4d;--accent-2:#575358;--accent-soft:rgba(87,83,88,.16);}
html[data-accent="salvia"]{--accent:#50574c;--accent-2:#6f766a;--accent-soft:rgba(80,87,76,.14);}

/* ---------- RESET ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html[data-noanim]{scroll-behavior:auto}
body{
  background:var(--bg);color:var(--text);
  font-family:var(--font-sans);font-weight:400;line-height:1.6;
  font-size:17px;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;transition:color .5s ease;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
[id]{scroll-margin-top:110px}

.skip-link{
  position:fixed;
  left:18px;
  top:18px;
  z-index:300;
  padding:10px 14px;
  border-radius:999px;
  background:#252a50;
  color:#f5f7fb;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  transform:translateY(-140%);
  transition:transform .2s ease;
}
.skip-link:focus-visible{
  transform:translateY(0);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
}

/* ---------- UTILITIES ---------- */
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--pad)}
.section{position:relative;padding-block:clamp(84px,11vw,156px);background:var(--bg)}
.section--alt{background:var(--bg-2)}
.section--ink{background:var(--bg-3)}
.force-dark{background:var(--bg);color:var(--text)}

/* hairline divider between adjacent same-tone sections */
.section + .section{border-top:1px solid color-mix(in srgb,var(--line-gold) 52%,transparent)}

/* faint film-grain + vignette over dark surfaces for crafted depth */
.section::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(120% 80% at 50% -10%,rgba(80,87,76,.05),transparent 55%),
    radial-gradient(100% 100% at 100% 100%,rgba(80,87,76,.035),transparent 60%);
  opacity:1}
html[data-theme="materico"] .section::before,
.section:not(.force-dark)::before,
html[data-theme="ibrido"] .section:not(.force-dark)::before{
  background:
    linear-gradient(90deg,rgba(87,83,88,.035) 0 1px,transparent 1px),
    radial-gradient(120% 80% at 50% -10%,rgba(87,83,88,.08),transparent 55%);
  background-size:64px 100%,auto}
.section > .wrap{position:relative;z-index:1}

.eyebrow{
  font-size:12px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;
  color:var(--accent);margin-bottom:22px;display:flex;align-items:center;gap:14px;
}
/* Trattino davanti alle eyebrow di sezione (come "— Tre unità" delle card) */
.eyebrow::before{
  content:"";
  flex:0 0 auto;
  width:34px;
  height:1px;
  background:currentColor;
  opacity:.85;
}
.concept-head .eyebrow{justify-content:center}
.eyebrow-no{font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:0;
  color:var(--accent-2);position:relative;padding-right:16px}
.eyebrow-no::after{content:"";position:absolute;right:0;top:50%;width:8px;height:1px;
  background:var(--accent);opacity:.6}
.eyebrow-light{color:var(--accent-2)}
.rule{display:block;width:64px;height:1px;background:var(--accent);margin:28px 0;opacity:.7}

.display-xl{font-family:var(--font-display);font-weight:500;line-height:.98;
  font-size:clamp(44px,8vw,104px);letter-spacing:-.01em;text-wrap:balance}
.display-l{font-family:var(--font-display);font-weight:500;line-height:1.0;
  font-size:clamp(36px,5.4vw,68px);letter-spacing:-.005em;text-wrap:balance}
.section:not(.force-dark) .display-l,
.section:not(.force-dark) .display-xl,
html[data-theme="ibrido"] .section:not(.force-dark) .display-l,
html[data-theme="ibrido"] .section:not(.force-dark) .display-xl{
  letter-spacing:.015em;text-transform:uppercase}
.lead{font-size:clamp(17px,1.5vw,20px);color:var(--muted);max-width:62ch;line-height:1.7}
.body{color:var(--muted);max-width:54ch;line-height:1.75;margin-top:8px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  height:54px;padding:0 32px;border-radius:2px;font-size:13px;font-weight:600;
  letter-spacing:.13em;text-transform:uppercase;cursor:pointer;border:1px solid transparent;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),background .3s,color .3s,border-color .3s;
  white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.btn-gold:hover{background:var(--accent-2);border-color:var(--accent-2)}
.btn-ghost{background:transparent;color:#eef1f6;border-color:rgba(255,255,255,.35)}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.btn-line{background:transparent;color:var(--text);border-color:var(--line-gold)}
.btn-line:hover{border-color:var(--accent);color:var(--accent)}
.btn-block{width:100%}

/* reveal — gated only when JS confirms support; default visible as fallback */
.reveal{opacity:1;transform:none}
.js-reveal .reveal{opacity:0;transform:translateY(26px);
  transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.js-reveal .reveal.in{opacity:1;transform:none}
html[data-noanim] .reveal{opacity:1;transform:none;transition:none}

/* ---------- HEADER ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;
  transition:background-color .4s,backdrop-filter .4s,border-color .4s,padding .4s;
  border-bottom:1px solid transparent}
.header-inner{display:flex;align-items:center;justify-content:space-between;
  height:84px;transition:height .4s}
.site-header.scrolled{background:color-mix(in srgb,var(--bg) 82%,transparent);
  backdrop-filter:blur(18px) saturate(140%);border-bottom-color:var(--line)}
.site-header.scrolled .header-inner{height:66px}
html[data-theme="ibrido"] .site-header:not(.scrolled){
  --text:#f4efe4;
  --muted:#b9bdc6;
  --line-gold:rgba(80,87,76,.34);
}
html[data-theme="ibrido"] .site-header.scrolled{
  background:rgba(244,238,227,.86);
  border-bottom-color:rgba(80,87,76,.22);
  box-shadow:0 16px 44px -34px rgba(18,20,30,.5);
}

.brand{display:flex;align-items:baseline;gap:12px}
.brand-mark{font-family:var(--font-display);font-weight:600;font-size:26px;
  letter-spacing:.02em;color:#eef1f6;line-height:1}
.force-dark .brand-mark,.hero .brand-mark{color:#eef1f6}
.site-header .brand-mark{color:var(--text)}
.brand-num{color:var(--accent)}
.brand-sub{font-size:11px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--muted);font-weight:600;padding-left:14px;margin-left:2px;
  border-left:1px solid var(--line-gold)}
.hero .brand-sub,.force-dark .brand-sub{color:#b9bdc6}

.nav{display:flex;align-items:center;gap:28px}
.nav a{font-size:13px;letter-spacing:.04em;color:var(--muted);transition:color .25s;position:relative}
.nav a:not(.nav-cta):hover{color:var(--text)}
.nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;
  width:0;background:var(--accent);transition:width .3s}
.nav a:not(.nav-cta):hover::after{width:100%}
.nav-cta{padding:11px 20px;border:1px solid var(--line-gold);border-radius:2px;
  color:var(--text);font-weight:600;letter-spacing:.08em;transition:background .3s,color .3s,border-color .3s,box-shadow .3s;
  text-transform:uppercase;font-size:11.5px}
.nav-cta:hover{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}

.nav-toggle{display:none;flex-direction:column;gap:5px;width:42px;height:42px;
  align-items:center;justify-content:center;background:none;border:0;cursor:pointer}
.nav-toggle span{width:24px;height:1.5px;background:var(--text);transition:.3s}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;
  color:#eef1f6;overflow:hidden;background:#0d0e15}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:100%;object-fit:cover;
  transform:scale(1.06);animation:heroZoom 18s ease-out forwards}
@keyframes heroZoom{to{transform:scale(1)}}
html[data-noanim] .hero-media img{animation:none;transform:none}
.hero-scrim{position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(11,12,18,.48) 0%,
    rgba(10,11,16,.12) 28%,
    rgba(10,11,16,.44) 60%,
    rgba(9,10,15,.96) 100%)}
.hero-content{position:relative;z-index:2;padding-bottom:clamp(64px,9vw,120px);width:100%}
.hero .eyebrow{color:var(--accent-2)}
.hero-title{font-family:var(--font-display);font-weight:500;line-height:.92;
  font-size:clamp(60px,13vw,180px);letter-spacing:-.01em;color:#fff;
  display:flex;flex-direction:column}
.hero-title-2{color:var(--accent);font-style:italic;font-weight:500;
  font-size:.62em;margin-top:.04em}
.hero-tag{font-family:var(--font-display);font-style:italic;
  font-size:clamp(20px,2.6vw,32px);color:#dfe2ea;margin-top:22px;font-weight:400}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:38px}
.hero-meta{list-style:none;display:flex;flex-wrap:wrap;gap:clamp(28px,5vw,64px);
  margin-top:48px;padding-top:32px;border-top:1px solid rgba(255,255,255,.16)}
.hero-meta li{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#b9bdc6}
.hero-meta b{display:block;font-family:var(--font-display);font-weight:600;
  font-size:34px;color:var(--accent-2);letter-spacing:0;margin-bottom:4px;text-transform:none}

.scroll-cue{position:absolute;left:50%;bottom:28px;translate:-50% 0;z-index:3;
  width:26px;height:42px;border:1px solid rgba(255,255,255,.4);border-radius:14px;
  display:flex;justify-content:center;padding-top:8px}
.scroll-cue span{width:3px;height:8px;border-radius:2px;background:var(--accent-2);
  animation:scrollDot 1.8s ease-in-out infinite}
@keyframes scrollDot{0%,100%{opacity:0;transform:translateY(0)}40%{opacity:1}80%{opacity:0;transform:translateY(12px)}}

/* ---------- CONCEPT ---------- */
.concept-head{text-align:center;max-width:880px;margin:0 auto}
.concept-head .rule{margin-inline:auto}
.concept-head .lead{margin:0 auto;text-align:center}
.signature{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:clamp(56px,8vw,96px);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sig-item{padding:36px 24px;text-align:center;border-left:1px solid var(--line)}
.sig-item:first-child{border-left:0}
.signature,
html[data-theme="ibrido"] .signature{
  border-top-color:var(--line-gold);border-bottom-color:var(--line-gold)}
.sig-item,
html[data-theme="ibrido"] .sig-item{border-left-color:var(--line-gold)}
.sig-n{display:block;font-family:var(--font-display);font-weight:500;
  font-size:clamp(40px,5vw,66px);color:var(--accent);line-height:1}
.sig-n i{font-size:.42em;font-style:normal;color:var(--muted);margin-left:2px}
.sig-l{display:block;margin-top:12px;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted)}

/* ---------- SPLIT ---------- */
.split-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(36px,6vw,90px);align-items:center}
.split-text .display-l{margin-top:6px}
.split-text .body{margin-top:22px}
.check-list{list-style:none;margin-top:30px;display:grid;gap:14px}
.check-list li{position:relative;padding-left:34px;color:var(--text);font-size:16px}
.check-list li::before{content:"";position:absolute;left:0;top:.55em;width:18px;height:1px;background:var(--accent)}
.check-list li::after{content:"";position:absolute;left:16px;top:calc(.55em - 3px);width:7px;height:7px;
  border-right:1px solid var(--accent);border-bottom:1px solid var(--accent);transform:rotate(-45deg)}
.media-slot{width:100%;aspect-ratio:4/5;display:block}
.split-media-wrap{position:relative}
.split-media-wrap img{width:100%;border-radius:4px;aspect-ratio:4/5;object-fit:cover;
  object-position:center top;box-shadow:var(--shadow);border:1px solid var(--card-line)}
.split-media-wrap::before{content:"";position:absolute;inset:-12px;border:1px solid var(--line-gold);
  border-radius:8px;z-index:-1;opacity:.45}
.media-note{margin-top:12px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}

/* ---------- NUMBERS ---------- */
.numbers .eyebrow{justify-content:center;margin-bottom:8px}
.numbers-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:48px;
  border-top:1px solid var(--line-gold);border-bottom:1px solid var(--line-gold)}
.num{text-align:center;padding:clamp(40px,5vw,64px) 24px;border-left:1px solid var(--line)}
.num:first-child{border-left:0}
.num-v{font-family:var(--font-display);font-weight:500;line-height:1;
  font-size:clamp(58px,8vw,108px);color:var(--accent);letter-spacing:-.01em}
.num-v i{font-style:normal;color:var(--faint);font-size:.5em;margin:0 .04em}
.num-l{display:block;margin-top:14px;font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--text)}
.num-l em{display:block;font-style:normal;text-transform:none;letter-spacing:0;
  color:var(--muted);font-size:14px;margin-top:7px;line-height:1.5}

/* ---------- SHOWCASE (full-bleed band) ---------- */
.showcase{position:relative;min-height:clamp(440px,62vh,640px);display:flex;align-items:center;
  overflow:hidden;background:#0c0d14}
.showcase-media{position:absolute;inset:0;z-index:0}
.showcase-media img{width:100%;height:100%;object-fit:cover;object-position:center 38%}
.showcase-scrim{position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(9,10,15,.92) 0%,rgba(9,10,15,.66) 42%,rgba(9,10,15,.32) 100%),
    linear-gradient(0deg,rgba(9,10,15,.6),transparent 50%)}
.showcase-inner{position:relative;z-index:1;max-width:760px}
.showcase .eyebrow{color:var(--accent-2)}
.showcase-quote{font-family:var(--font-display);font-weight:500;font-style:italic;
  font-size:clamp(26px,3.8vw,48px);line-height:1.22;color:#eef1f6;letter-spacing:-.01em;
  text-wrap:balance;margin:0 0 36px}
.showcase-by{display:flex;align-items:center;gap:14px;
  font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#c9bfa9}
.showcase-by::before{content:"";width:34px;height:1px;background:var(--accent);opacity:.8}

/* ---------- GALLERY STRIP ---------- */
.gallery-strip{background:var(--bg-3);padding-block:0;overflow:hidden}
.gstrip-inner{display:flex;gap:3px;min-height:380px}
.gstrip-item{position:relative;flex:1;overflow:hidden;cursor:zoom-in}
.gstrip-item.gstrip-tall{flex:1.55}
.gstrip-item img{width:100%;height:100%;object-fit:cover;object-position:center;
  transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.gstrip-item:hover img{transform:scale(1.06)}
.gstrip-item span{position:absolute;bottom:0;left:0;right:0;
  padding:28px 14px 14px;background:linear-gradient(transparent,rgba(9,10,15,.7));
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#dfe2ea;
  opacity:0;transition:opacity .35s}
.gstrip-item:hover span{opacity:1}
.gstrip-credit{padding:10px var(--pad);text-align:right;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
@media(max-width:600px){
  .gstrip-inner{flex-wrap:wrap;min-height:auto}
  .gstrip-item{flex:0 0 calc(50% - 2px);min-height:200px}
  .gstrip-item.gstrip-tall{flex:0 0 100%;min-height:260px}
  .gstrip-item span{opacity:1}
}
.sec-head{max-width:760px}
.sec-head .display-l{margin-top:4px}
.sec-head-p{margin-top:24px}
.section:not(.force-dark) .sec-head,
html[data-theme="ibrido"] .section:not(.force-dark) .sec-head{
  padding-top:22px;border-top:1px solid var(--line-gold)}
.section:not(.force-dark) .eyebrow,
html[data-theme="ibrido"] .section:not(.force-dark) .eyebrow{
  color:var(--accent);letter-spacing:.22em}
.section:not(.force-dark) .eyebrow-no,
html[data-theme="ibrido"] .section:not(.force-dark) .eyebrow-no{
  color:var(--accent);font-size:18px}
/* typology showcase — editorial site sections, not cards */
.apt-list{display:block;margin-top:clamp(18px,3vw,34px);border-top:1px solid var(--line-gold)}
.type-card{display:grid;grid-template-columns:minmax(130px,.22fr) minmax(0,.95fr) minmax(360px,1.08fr);
  gap:clamp(22px,4vw,58px);align-items:start;position:relative;padding:clamp(48px,7vw,92px) 0;
  border-bottom:1px solid var(--line)}
.type-card::before{content:"";position:absolute;left:50%;right:0;top:clamp(28px,4vw,54px);bottom:clamp(28px,4vw,54px);
  background:linear-gradient(90deg,transparent,rgba(80,87,76,.06));pointer-events:none}
.type-card.hide{display:none}
.type-card-featured{border-bottom-color:var(--line-gold)}
.type-section-no{font-family:var(--font-display);font-size:clamp(64px,10vw,140px);line-height:.82;
  color:var(--accent);opacity:.24;position:sticky;top:110px}
.type-card-copy,.type-card-media,.type-card-units{position:relative;z-index:1}
.type-card-kicker,.type-card-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-2);
  display:inline-flex;align-items:center;gap:10px;margin-bottom:18px}
.type-card-kicker::before,.type-card-label::before{content:"";width:34px;height:1px;background:var(--accent)}
.type-card-copy > .type-card-kicker{font-size:16px;letter-spacing:.08em;font-weight:700;color:var(--accent-2)}
.type-card-title{font-family:var(--font-display);font-size:clamp(48px,6vw,84px);font-weight:500;line-height:.9;letter-spacing:-.02em;margin-bottom:18px}
.type-card-subtitle{font-size:clamp(20px,2.4vw,28px);line-height:1.35;color:var(--text);max-width:27ch;margin-bottom:18px}
.type-card-body{color:var(--muted);font-size:16px;line-height:1.8;max-width:58ch}
.type-card-highlights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:32px 0 28px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.type-highlight{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 16px;background:rgba(255,255,255,.015)}
.type-card-media{display:flex;flex-direction:column;gap:14px;margin-top:8px}
.type-card-media img{width:100%;border-radius:0;border:1px solid var(--card-line);box-shadow:none;background:#0e0f16}
.type-card-cap{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding-left:18px;border-left:1px solid var(--line-gold)}
.type-card-units{grid-column:2 / -1;display:grid;grid-template-columns:minmax(220px,.35fr) minmax(0,1fr);
  gap:clamp(18px,3vw,42px);padding-top:clamp(28px,4vw,44px);border-top:1px solid var(--line)}
.type-card-unit-note{font-size:14px;color:var(--muted);margin-top:8px;line-height:1.6}
.type-unit-list{display:grid;border-top:1px solid var(--line)}
.type-unit{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center;width:100%;
  text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:18px 0;cursor:pointer;
  color:var(--text);transition:border-color .25s,padding-left .25s}
.type-unit:hover{border-color:var(--line-gold);padding-left:12px}
.type-unit-storia{grid-column:1 / -1;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);opacity:.82}
.type-unit-main{display:flex;flex-direction:column;gap:6px;min-width:0}
.type-unit-name{font-family:var(--font-display);font-size:30px;line-height:1}
.type-unit-meta{font-size:13px;letter-spacing:.06em;color:var(--muted)}
.type-unit-price{font-family:var(--font-display);font-size:clamp(20px,2.4vw,30px);font-weight:600;line-height:1;text-align:right}
.type-unit-price small{display:block;font-family:var(--font-sans);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}
.type-unit-more{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
body.hide-prices .type-unit-price .pval,body.hide-prices .drw-price .pval{display:none}
body.hide-prices .type-unit-price .preq,body.hide-prices .drw-price .preq{display:inline}
.preq{display:none;font-family:var(--font-sans);font-size:14px;letter-spacing:.04em}

/* ---------- PLANIMETRIE ---------- */
.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);margin-top:clamp(48px,6vw,72px)}
.plan-grid--compact{gap:clamp(20px,3vw,34px)}
.plan-item img{width:100%;border-radius:0;border:1px solid var(--line-gold);box-shadow:none;background:#0e0f16}
.plan-label{padding:24px 0 0}
.plan-label h3{font-family:var(--font-display);font-size:34px;font-weight:500;margin-bottom:10px;text-transform:uppercase;letter-spacing:.04em}
.plan-label p{color:var(--muted);font-size:15px;line-height:1.65}
.plan-mq{margin-top:14px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);border-top:1px solid var(--line-gold);padding-top:14px}
.apt-card{position:relative;background:var(--card);border:1px solid var(--card-line);
  border-radius:4px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;
  transition:transform .55s cubic-bezier(.2,.7,.2,1),border-color .4s,box-shadow .55s;
  will-change:transform}
.apt-card:hover{transform:translateY(-7px);border-color:var(--accent);box-shadow:var(--shadow)}
.apt-card.hide{display:none}

/* figure / elegant placeholder */
.apt-figure{position:relative;aspect-ratio:16/12;overflow:hidden;
  background:
    radial-gradient(130% 90% at 80% 10%,rgba(80,87,76,.14),transparent 55%),
    linear-gradient(155deg,var(--card-2),var(--bg) 78%)}
.apt-figure .ph{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;color:var(--accent);
  transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.apt-card:hover .apt-figure .ph{transform:scale(1.04)}
.apt-figure .ph svg{width:34px;height:34px;opacity:.8}
.apt-figure .ph span{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
/* ghost floor number */
.apt-ghost{position:absolute;right:-6px;bottom:-26px;z-index:0;
  font-family:var(--font-display);font-weight:600;font-size:170px;line-height:.7;
  color:transparent;-webkit-text-stroke:1px rgba(80,87,76,.16);user-select:none;pointer-events:none}
.apt-figure::after{content:"";position:absolute;inset:0;z-index:1;
  background:repeating-linear-gradient(135deg,transparent 0 22px,rgba(80,87,76,.035) 22px 23px)}
.apt-figure::before{content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(to top,rgba(10,11,16,.78) 0%,rgba(10,11,16,.18) 40%,transparent 66%)}
/* corner ticks */
.apt-figure .tick{position:absolute;z-index:3;width:14px;height:14px;border:1px solid var(--line-gold);opacity:.7}
.apt-figure .tick.tl{top:14px;left:14px;border-right:0;border-bottom:0}
.apt-figure .tick.br{right:14px;bottom:14px;border-left:0;border-top:0}
.apt-badge{position:absolute;top:14px;right:14px;z-index:4;padding:6px 13px;border-radius:40px;
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  background:rgba(16,18,26,.72);color:var(--accent-2);border:1px solid var(--line-gold);
  backdrop-filter:blur(6px);display:inline-flex;align-items:center;gap:7px}
.apt-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:#82a98b;box-shadow:0 0 8px #82a98b}
.apt-name-tag{position:absolute;bottom:16px;left:18px;z-index:4;display:flex;flex-direction:column;gap:3px}
.apt-name-tag b{font-family:var(--font-display);font-size:31px;font-weight:500;color:#fff;
  line-height:1;text-shadow:0 2px 18px rgba(0,0,0,.6)}
.apt-name-tag i{font-style:normal;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#cfc6b2}

.apt-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
.apt-tipo{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.apt-specs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}
.apt-specs span{display:flex;flex-direction:column;gap:3px;font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--faint)}
.apt-specs b{color:var(--text);font-weight:600;font-family:var(--font-display);font-size:21px;
  letter-spacing:0;text-transform:none}
.apt-foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;
  padding-top:18px;border-top:1px solid var(--line)}
.apt-price{font-family:var(--font-display);font-size:27px;font-weight:600;color:var(--text)}
.apt-price small{font-family:var(--font-sans);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint);display:block;font-weight:600;margin-bottom:2px}
.apt-more{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);
  display:inline-flex;align-items:center;gap:7px;transition:gap .3s;padding-bottom:3px}
.apt-card:hover .apt-more{gap:12px}
body.hide-prices .apt-price .pval,body.hide-prices .drw-price .pval{display:none}
body.hide-prices .apt-price .preq,body.hide-prices .drw-price .preq{display:inline}
.preq{display:none;font-family:var(--font-sans);font-size:14px;letter-spacing:.04em}

/* ---------- DRAWER ---------- */
.drawer-overlay{position:fixed;inset:0;z-index:200;background:rgba(8,9,14,.6);
  backdrop-filter:blur(4px);opacity:0;transition:opacity .4s}
.drawer-overlay.show{opacity:1}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:201;width:min(620px,100%);
  background:var(--bg);border-left:1px solid var(--line-gold);
  transform:translateX(100%);transition:transform .5s cubic-bezier(.3,.8,.2,1);
  overflow-y:auto;box-shadow:-30px 0 80px -30px rgba(0,0,0,.6)}
.drawer.open{transform:none}
.drawer-inner{padding:clamp(24px,3.5vw,44px)}
.drw-close{position:sticky;top:0;margin-left:auto;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line-gold);background:var(--surface);color:var(--text);
  cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;
  transition:background .3s,color .3s,border-color .3s;float:right;z-index:10}
.drw-close:hover{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.drw-badge{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:600}
.drw-name{font-family:var(--font-display);font-weight:500;font-size:clamp(44px,7vw,64px);
  line-height:.98;margin:10px 0 6px}
.drw-tipo{color:var(--muted);font-size:16px}
.drw-claim{font-family:var(--font-display);font-style:italic;font-size:20px;
  color:var(--text);margin:20px 0 24px;line-height:1.5;padding:20px;
  border:1px solid var(--line-gold);border-radius:3px;background:var(--accent-soft)}

/* real image gallery in drawer */
.drw-gallery{margin-bottom:6px}
.drw-gallery-main{position:relative;width:100%;aspect-ratio:4/3;border-radius:4px;
  overflow:hidden;background:var(--surface);margin-bottom:10px}
.drw-gallery-main img{width:100%;height:100%;object-fit:cover;transition:opacity .3s}
.drw-gallery-label{position:absolute;left:14px;bottom:14px;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#eef1f6;
  background:rgba(10,11,16,.68);backdrop-filter:blur(5px);padding:7px 13px;
  border-radius:40px;border:1px solid var(--line-gold)}
.drw-gallery-thumbs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;
  scrollbar-width:none}
.drw-gallery-thumbs::-webkit-scrollbar{display:none}
.drw-thumb{flex:0 0 80px;height:60px;border-radius:3px;overflow:hidden;
  border:1px solid var(--line);cursor:pointer;transition:border-color .25s;padding:0;background:none}
.drw-thumb img{width:100%;height:100%;object-fit:cover}
.drw-thumb.active,.drw-thumb:hover{border-color:var(--accent)}

/* floorplans */
.drw-plans{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0 6px}
.drw-plan-item img{width:100%;border-radius:3px;border:1px solid var(--card-line)}
.drw-plan-item:only-child{grid-column:1/-1}

.drw-storia{display:inline-block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent-2);border:1px solid var(--line-gold);padding:6px 14px;border-radius:40px;
  margin:14px 0 16px}
.drw-claim{font-family:var(--font-display);font-style:italic;font-size:19px;
  color:var(--text);margin:0 0 24px;line-height:1.55;padding:20px;
  border:1px solid var(--line-gold);border-radius:3px;background:var(--accent-soft)}
.drw-img-wrap{width:100%;border-radius:4px;overflow:hidden;margin-bottom:18px;
  aspect-ratio:16/10;position:relative}
.drw-img-wrap img{width:100%;height:100%;object-fit:cover}
.drw-slot-note{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:16px}
.drw-table{width:100%;border-top:1px solid var(--line);margin:24px 0 24px}
.drw-table div{display:flex;justify-content:space-between;padding:14px 0;
  border-bottom:1px solid var(--line);font-size:15px}
.drw-table .k{color:var(--muted)}
.drw-table .v{color:var(--text);font-weight:600;text-align:right}
.drw-price{font-family:var(--font-display);font-size:38px;font-weight:600;margin-bottom:6px}
.drw-price small{font-family:var(--font-sans);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);display:block;font-weight:600;margin-bottom:4px}

/* real photo on card */
.apt-photo{width:100%;height:100%;object-fit:cover;object-position:center;
  transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.apt-card:hover .apt-photo{transform:scale(1.05)}

/* ---------- FINITURE ---------- */
.finiture{background:var(--bg);color:var(--text);padding-block:0}
.finiture::before{display:none}
.materials-board{min-height:900px}
.materials-main{width:100%;max-width:var(--wrap);margin:0 auto;padding:clamp(42px,5vw,72px) var(--pad)}
.finiture .materials-main{padding-top:clamp(20px,2.8vw,36px)}
.materials-hero{
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(320px,.92fr);
  gap:clamp(28px,5vw,74px);
  align-items:end;
  padding-bottom:clamp(28px,4vw,44px);
  border-bottom:1px solid rgba(238,241,246,.16);
}
.materials-title{font-family:var(--font-display);font-size:clamp(3rem,5vw,5.6rem);line-height:.92;font-weight:500;
  letter-spacing:-.03em;text-transform:none;color:var(--text)}
.materials-subtitle{font-family:var(--font-sans);font-size:clamp(.82rem,1vw,.94rem);line-height:1;
  letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--muted);opacity:.72;margin-top:16px}
.materials-intro{
  max-width:680px;
  margin:0;
  padding:clamp(18px,2.2vw,26px);
  border:1px solid rgba(238,241,246,.10);
  border-radius:14px;
  background:rgba(22,24,34,.72);
  font-size:clamp(1rem,1.25vw,1.12rem);
  line-height:1.68;
  color:var(--muted);
}
.materials-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.4vw,28px);margin-top:clamp(24px,3.2vw,40px)}
.material-panel{
  padding:clamp(22px,2.8vw,34px);
  border:1px solid rgba(238,241,246,.10);
  border-radius:16px;
  background:rgba(22,24,34,.78);
  box-shadow:0 18px 54px rgba(16,18,28,.06);
}
.material-panel:nth-child(2n){border-right:1px solid rgba(238,241,246,.10)}
.material-head{display:flex;align-items:baseline;gap:18px;margin-bottom:20px}
.material-head span{font-family:var(--font-display);font-size:clamp(28px,2.2vw,42px);line-height:1;color:var(--accent)}
.material-head h3{font-family:var(--font-display);font-size:clamp(28px,2.35vw,42px);font-weight:500;text-transform:none;letter-spacing:0}
.material-copy{display:grid;gap:22px;color:var(--muted)}
.material-copy p{font-size:16px;line-height:1.5}.material-copy b{display:block;font-family:var(--font-display);
  color:var(--accent);font-size:20px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}
.material-panel img{width:100%;border-radius:12px;border:1px solid rgba(238,241,246,.10);object-fit:cover;background:#0e0f16}
.material-panel-finishes{display:grid;grid-template-columns:.45fr 1fr;gap:22px;align-items:start}
.material-panel-finishes .material-head{grid-column:1 / -1}
.material-panel-finishes img{aspect-ratio:1.85/1;object-fit:cover}
.material-note{grid-column:1 / -1;text-align:center;border-top:1px solid var(--line-gold);padding-top:14px;
  font-size:16px;color:var(--muted)}
.material-split{display:grid;grid-template-columns:.72fr 1fr;gap:24px;align-items:start}
.material-images{display:grid;gap:10px}.material-images img{aspect-ratio:2.7/1;object-fit:cover}
.material-electric-layout{display:grid;grid-template-columns:.85fr 1fr;gap:28px;align-items:center}
.material-electric-layout img{aspect-ratio:1.45/1;object-fit:cover}
.material-feature-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.material-feature-list li{font-size:15px;line-height:1.45;padding:16px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted)}
.material-panel-windows .material-split{grid-template-columns:.85fr 1fr}.material-panel-windows img{aspect-ratio:1.8/1}
.material-tags{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:20px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.material-tags span{font-family:var(--font-display);font-size:15px;line-height:1.1;text-align:center;text-transform:uppercase;color:var(--text);
  padding:18px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}

/* ---------- COSTRUZIONE ---------- */
.costruzione{background:var(--bg);color:var(--text)}
.build-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.28fr);gap:clamp(36px,5vw,82px);
  align-items:center;padding:0 0 clamp(36px,5vw,64px);border-bottom:1px solid var(--line-gold)}
.build-title-block{padding-left:clamp(18px,3vw,38px);border-left:1px solid var(--line-gold)}
.build-title{font-family:var(--font-display);font-size:clamp(48px,6.5vw,96px);line-height:.92;font-weight:500;
  letter-spacing:.02em;text-transform:uppercase;color:var(--text)}
.build-subtitle{font-family:var(--font-display);font-size:clamp(32px,4.2vw,64px);line-height:1.02;
  letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-top:8px}
.build-intro{font-size:clamp(18px,1.6vw,24px);color:var(--muted);margin-top:16px;line-height:1.45}
.build-value{display:grid;grid-template-columns:78px 1fr;gap:24px;align-items:center;padding-left:clamp(20px,3vw,36px);
  border-left:1px solid var(--line-gold)}
.build-value p{font-family:var(--font-display);font-size:clamp(20px,2vw,30px);line-height:1.18;text-transform:uppercase;color:var(--text)}
.build-emblem{width:78px;height:78px;border:1px solid var(--accent);border-radius:50%;position:relative}
.build-emblem::before{content:"";position:absolute;left:18px;right:18px;top:24px;height:11px;border:1px solid var(--accent);border-radius:8px}
.build-emblem::after{content:"";position:absolute;left:37px;top:35px;width:1px;height:35px;background:var(--accent);box-shadow:-12px 0 0 var(--accent),12px 0 0 var(--accent)}
.build-grid{display:grid;grid-template-columns:1.05fr 1fr 1fr;border-bottom:1px solid var(--line-gold)}
.build-panel{padding:clamp(30px,3.4vw,48px);border-right:1px solid var(--line);min-height:620px}
.build-panel:last-child{border-right:0}
.build-head{display:flex;align-items:baseline;gap:22px;margin-bottom:clamp(26px,3vw,38px)}
.build-head span{font-family:var(--font-display);font-size:clamp(28px,2.4vw,42px);line-height:1;color:var(--accent)}
.build-head h3{font-family:var(--font-display);font-size:clamp(28px,2.8vw,44px);font-weight:500;text-transform:uppercase;letter-spacing:.04em;line-height:1}
.build-list{list-style:none;display:grid;gap:18px;color:var(--muted)}
.build-list li{position:relative;padding-left:28px;font-size:16px;line-height:1.55}
.build-list li::before{content:"";position:absolute;left:0;top:.72em;width:14px;height:1px;background:var(--accent)}
.build-list b,.build-topic b{color:var(--text);font-weight:700}
.build-list-large{gap:28px;margin-bottom:clamp(32px,4vw,56px)}
.build-panel-image img{width:calc(100% + clamp(30px,3.4vw,48px) * 2);max-width:none;margin-left:calc(clamp(30px,3.4vw,48px) * -1);
  aspect-ratio:1.05/1;object-fit:cover;border-top:1px solid var(--line-gold);border-bottom:1px solid var(--line-gold)}
.build-caption{font-family:var(--font-display);font-size:clamp(20px,2vw,28px);line-height:1.2;text-transform:uppercase;color:var(--accent);
  padding-top:18px;margin-top:0;border-top:1px solid var(--line-gold)}
.build-topic{display:grid;grid-template-columns:76px 1fr;gap:24px;padding:0 0 clamp(28px,3vw,42px);margin-bottom:clamp(28px,3vw,42px);
  border-bottom:1px solid var(--line-gold)}
.build-topic:last-child{margin-bottom:0}
.build-topic-icon{width:76px;height:76px;border:1px solid var(--accent);border-radius:50%;position:relative}
.build-topic-icon::before{content:"";position:absolute;inset:22px;border:1px solid var(--accent);transform:rotate(45deg)}
.build-topic h4,.build-subsection h4{font-family:var(--font-display);font-size:clamp(24px,2vw,32px);font-weight:500;text-transform:uppercase;
  letter-spacing:.06em;color:var(--accent);margin-bottom:12px}
.build-topic p,.build-subsection p{font-size:17px;line-height:1.65;color:var(--muted)}
.build-subsection{padding-bottom:clamp(28px,3vw,42px);margin-bottom:clamp(28px,3vw,42px);border-bottom:1px solid var(--line-gold)}
.build-subsection:last-child{margin-bottom:0}

/* ---------- QUALITÀ VISIBILE ---------- */
.qualita-visibile{background:var(--bg-2);color:var(--text)}
.quality-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.42fr);gap:clamp(34px,5vw,76px);
  align-items:center;padding-bottom:clamp(34px,5vw,58px);border-bottom:1px solid var(--line-gold)}
.quality-title-block{padding-left:clamp(18px,3vw,38px);border-left:1px solid var(--line-gold)}
.quality-title{font-family:var(--font-display);font-size:clamp(46px,6.3vw,90px);line-height:.92;font-weight:500;
  text-transform:uppercase;letter-spacing:.02em}
.quality-subtitle{font-family:var(--font-display);font-size:clamp(26px,3.4vw,52px);line-height:1.08;
  letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-top:8px;max-width:920px}
.quality-note{display:grid;grid-template-columns:78px 1fr;gap:24px;align-items:center;padding-left:clamp(20px,3vw,36px);
  border-left:1px solid var(--line-gold)}
.quality-note p{font-family:var(--font-display);font-size:clamp(20px,2vw,30px);line-height:1.25;text-transform:uppercase;color:var(--accent)}
.quality-emblem{width:78px;height:78px;border:1px solid var(--accent);border-radius:50%;position:relative}
.quality-emblem::before{content:"";position:absolute;left:18px;right:18px;top:24px;height:11px;border:1px solid var(--accent);border-radius:8px}
.quality-emblem::after{content:"";position:absolute;left:37px;top:35px;width:1px;height:35px;background:var(--accent);box-shadow:-12px 0 0 var(--accent),12px 0 0 var(--accent)}
.quality-grid{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line-gold)}
.quality-panel{padding:clamp(30px,3.4vw,48px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:520px}
.quality-panel:nth-child(2n){border-right:0}
.quality-panel:nth-last-child(-n+2){border-bottom:0}
.quality-head{display:flex;align-items:baseline;gap:22px;margin-bottom:clamp(24px,3vw,34px)}
.quality-head span{font-family:var(--font-display);font-size:clamp(28px,2.4vw,42px);line-height:1;color:var(--accent)}
.quality-head h3{font-family:var(--font-display);font-size:clamp(27px,2.7vw,42px);font-weight:500;text-transform:uppercase;letter-spacing:.04em;line-height:1}
.quality-split{display:grid;grid-template-columns:.9fr 1fr;gap:clamp(22px,3vw,38px);align-items:start}
.quality-panel img{width:100%;border-radius:0;border:1px solid var(--line-gold);object-fit:cover;background:#0e0f16}
.quality-split img{aspect-ratio:.78/1}
.quality-list{list-style:none;display:grid;gap:17px;color:var(--muted)}
.quality-list li{position:relative;padding-left:26px;font-size:16px;line-height:1.5}
.quality-list li::before{content:"";position:absolute;left:0;top:.72em;width:13px;height:1px;background:var(--accent)}
.quality-copy{display:grid;gap:14px;margin-bottom:24px;color:var(--muted)}
.quality-copy p{font-size:16px;line-height:1.7}
.quality-tags{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:20px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.quality-tags span{font-family:var(--font-display);font-size:14px;line-height:1.15;text-align:center;text-transform:uppercase;color:var(--text);
  padding:16px 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.quality-topic{display:grid;grid-template-columns:minmax(0,.92fr) minmax(180px,.72fr);gap:24px;align-items:start;
  padding-bottom:clamp(24px,3vw,36px);margin-bottom:clamp(24px,3vw,36px);border-bottom:1px solid var(--line-gold)}
.quality-topic:last-child{margin-bottom:0}
.quality-topic h4{font-family:var(--font-display);font-size:clamp(22px,2vw,30px);font-weight:500;text-transform:uppercase;
  letter-spacing:.06em;color:var(--accent);margin-bottom:10px}
.quality-topic p{font-size:16px;line-height:1.65;color:var(--muted)}
.quality-topic img{aspect-ratio:1.55/1}
.quality-topic > div:only-child{grid-column:1 / -1}

/* ---------- TECNOLOGIA ---------- */
.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:48px;
  background:var(--line-gold);border-top:1px solid var(--line-gold);border-bottom:1px solid var(--line-gold)}
.tech-card{background:var(--bg-2);padding:clamp(32px,3.2vw,48px) clamp(24px,2.6vw,38px);
  transition:background-color .4s;position:relative;min-height:250px}
.tech-card::after{content:"";position:absolute;left:24px;right:24px;bottom:24px;height:1px;background:var(--line-gold);opacity:.65}
.tech-card:hover{background-color:var(--surface)}
.tech-card h3{font-family:var(--font-display);font-weight:500;font-size:clamp(30px,3vw,42px);margin-bottom:14px;text-transform:uppercase;letter-spacing:.04em}
.tech-card h3::before{content:"";display:block;width:42px;height:1px;background:var(--accent);margin-bottom:20px}
.tech-card p{color:var(--muted);font-size:15px;margin-bottom:22px;min-height:58px;line-height:1.7}
.tech-tag{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
  border:0;padding:0;display:inline-block}

/* ---------- ESPERIENZA ---------- */
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  margin-top:48px;background:var(--line-gold);border-top:1px solid var(--line-gold);border-bottom:1px solid var(--line-gold)}
.steps li{background:var(--bg-3);padding:clamp(34px,3.2vw,48px) clamp(26px,2.6vw,38px);transition:background-color .4s;min-height:230px}
.steps li:hover{background:var(--surface)}
.step-n{font-family:var(--font-display);font-size:clamp(34px,3.4vw,52px);line-height:1;color:var(--accent);font-weight:500;
  display:inline-block;padding-bottom:18px;border-bottom:1px solid var(--line-gold);margin-bottom:24px}
.steps h3{font-family:var(--font-display);font-weight:500;font-size:clamp(27px,2.5vw,36px);margin-bottom:10px;text-transform:uppercase;letter-spacing:.03em}
.steps p{color:var(--muted);font-size:15px;line-height:1.7}

/* ---------- LOCATION ---------- */
.loc-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(36px,6vw,80px);align-items:center}
.loc-list{list-style:none;margin:28px 0 32px;display:grid;gap:0;border-top:1px solid var(--line)}
.loc-list li{padding:16px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--muted)}
.loc-list b{display:block;color:var(--accent);font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;margin-bottom:4px}
.loc-map{position:relative;aspect-ratio:1/1;border-radius:0;overflow:hidden;
  border:1px solid var(--line-gold);background:var(--surface)}
.loc-map-frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#0e0f16}
.map-grid{position:absolute;inset:0;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),
  linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:46px 46px;opacity:.7}
.map-grid::after{content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 50% 50%,transparent 30%,var(--surface) 78%)}
.map-pin{position:absolute;top:50%;left:50%;translate:-50% -50%;width:18px;height:18px}
.map-dot{position:absolute;inset:0;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 5px var(--accent-soft)}
.map-ring{position:absolute;inset:-6px;border-radius:50%;border:1px solid var(--accent);
  animation:ping 2.4s ease-out infinite}
@keyframes ping{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.6);opacity:0}}
html[data-noanim] .map-ring{animation:none}
.map-label{position:absolute;left:50%;bottom:24px;translate:-50% 0;white-space:nowrap;
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--text);
  background:var(--bg);padding:8px 16px;border:1px solid var(--line-gold);border-radius:0}

/* ---------- CONTATTI ---------- */
.cont-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);align-items:start}
.cont-text .body{margin-top:20px}
.cont-credits{margin-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cont-credits .cc-k{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);margin-bottom:6px}
.cont-credits .cc-v{color:var(--text);font-size:16px}
.cont-form{background:transparent;border-top:1px solid var(--line-gold);border-bottom:1px solid var(--line-gold);border-radius:0;
  padding:clamp(28px,4vw,44px) 0;display:grid;gap:18px}
.field{display:grid;gap:8px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{
  background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:0;padding:14px 16px;
  font-size:15px;color:var(--text);transition:border-color .3s;resize:vertical;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.field input::placeholder,.field textarea::placeholder{color:var(--faint)}
.field.err input,.field.err select{border-color:#575358}
.form-note{font-size:12px;color:var(--faint);line-height:1.6;text-align:center}
.form-note.ok{color:var(--accent-2)}

/* ---------- FOOTER ---------- */
.footer{padding-block:clamp(56px,7vw,90px) 28px;border-top:1px solid var(--line-gold);background:var(--bg)}
.footer-inner{display:grid;grid-template-columns:1fr 2fr;gap:clamp(36px,6vw,80px);
  padding-bottom:48px;border-bottom:1px solid var(--line)}
.footer-brand .brand-mark{font-size:34px}
.footer-brand p{color:var(--muted);font-size:14px;margin-top:18px;line-height:1.7}
.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.footer-cols .fc-k{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);margin-bottom:12px}
.footer-cols p{color:var(--muted);font-size:14px;line-height:1.7}
.footer-bottom{display:flex;justify-content:space-between;gap:24px;padding-top:26px;
  font-size:12px;color:var(--faint);flex-wrap:wrap}
.footer-disc{max-width:60ch}

/* ---------- IMAGE SLOT skin ---------- */
image-slot{--is-bg:linear-gradient(135deg,var(--bg-2),var(--surface));
  border:1px solid var(--card-line);background:var(--bg-2)}

/* ---------- BAGNI ---------- */
.bagni-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,3vw,32px)}
.bagni-item img{width:100%;border-radius:4px;border:1px solid var(--card-line);aspect-ratio:4/3;object-fit:cover}
.bagni-item p{margin-top:12px;font-size:13px;color:var(--muted);line-height:1.6}

/* ---------- RESPONSIVE updates ---------- */
@media(max-width:1024px){
  .apt-grid,.tech-grid,.steps,.numbers-grid{grid-template-columns:repeat(2,1fr)}
  .plan-grid,.bagni-grid{grid-template-columns:1fr 1fr}
  .type-card{grid-template-columns:84px 1fr}
  .type-card-media{grid-column:2}
  .type-card-units{grid-column:2;grid-template-columns:1fr}
  .materials-grid{grid-template-columns:1fr}
  .material-panel{border-right:0}
  .build-hero{grid-template-columns:1fr}
  .build-value{border-left:0;border-top:1px solid var(--line-gold);padding:28px 0 0}
  .build-grid{grid-template-columns:1fr}
  .build-panel{border-right:0;border-bottom:1px solid var(--line);min-height:auto}
  .build-panel:last-child{border-bottom:0}
  .quality-hero{grid-template-columns:1fr}
  .quality-note{border-left:0;border-top:1px solid var(--line-gold);padding:28px 0 0}
  .quality-grid{grid-template-columns:1fr}
  .quality-panel{border-right:0;min-height:auto}
  .quality-panel:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
  .quality-panel:last-child{border-bottom:0}
  .signature{grid-template-columns:repeat(2,1fr)}
  .sig-item:nth-child(3){border-left:0}
  .sig-item:nth-child(n+3){border-top:1px solid var(--line)}
}
@media(max-width:1080px){.brand-sub{display:none}}
@media(max-width:980px){
  .nav{position:fixed;inset:84px 0 auto 0;flex-direction:column;gap:0;
    background:var(--bg);border-bottom:1px solid var(--line);padding:8px 0;
    transform:translateY(-120%);transition:transform .4s;align-items:stretch}
  .nav.open{transform:none}
  .nav a{padding:16px var(--pad);border-bottom:1px solid var(--line)}
  .nav-cta{margin:14px var(--pad);text-align:center}
  .nav-toggle{display:flex}
  .nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .nav-toggle.open span:nth-child(2){opacity:0}
  .nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  .split-grid,.fin-grid,.loc-grid,.cont-grid{grid-template-columns:1fr;gap:40px}
  .fin-media{order:2}
  .cont-credits{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  body{font-size:16px}
  .apt-grid,.tech-grid,.steps,.numbers-grid,.signature,.footer-cols,.cont-credits,.footer-inner,
  .plan-grid,.bagni-grid{grid-template-columns:1fr}
  .type-card{grid-template-columns:1fr;padding:42px 0}
  .type-card::before{left:0;opacity:.45}
  .type-section-no{position:relative;top:auto;font-size:64px}
  .type-card-media,.type-card-units{grid-column:1}
  .type-card-title{font-size:42px}
  .type-card-highlights{grid-template-columns:1fr}
  .type-unit{grid-template-columns:1fr;gap:10px}
  .type-unit-price{text-align:left}
  .materials-main{padding:34px 20px}
  .materials-title{font-size:clamp(2.4rem,10vw,3.2rem)}
  .materials-subtitle{font-size:.8rem}
  .materials-intro{font-size:16px}
  .material-panel{padding:28px 0}
  .material-panel-finishes,.material-split,.material-electric-layout,.material-panel-windows .material-split{grid-template-columns:1fr}
  .material-feature-list,.material-tags{grid-template-columns:1fr}
  .build-title-block{padding-left:0;border-left:0}
  .build-value{grid-template-columns:1fr}
  .build-grid{border-bottom:0}
  .build-panel{padding:32px 0}
  .build-head{gap:16px}
  .build-topic{grid-template-columns:1fr}
  .build-panel-image img{width:100%;margin-left:0}
  .quality-title-block{padding-left:0;border-left:0}
  .quality-note{grid-template-columns:1fr}
  .quality-panel{padding:32px 0}
  .quality-head{gap:16px}
  .quality-split,.quality-topic{grid-template-columns:1fr}
  .quality-tags{grid-template-columns:1fr}
  .sig-item{border-left:0!important;border-top:1px solid var(--line)}
  .sig-item:first-child{border-top:0}
  .field-row{grid-template-columns:1fr}
  .hero-meta{gap:24px}
  .footer-bottom{flex-direction:column;gap:10px}
}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* =================================================================
   CPVII unified site redesign
   Editorial, materico, aligned with the main Cascina Bianca landing.
   ================================================================= */
:root{
  --bg:#08090e;
  --bg-2:#0c0d14;
  --bg-3:#14161f;
  --surface:#0e0f16;
  --raised:#181b26;
  --card:#0e0f16;
  --card-2:#181b24;
  --text:#f2f4f8;
  --muted:#8d8a90;
  --faint:#585560;
  --line:rgba(141,138,144,.09);
  --line-gold:rgba(87,83,88,.28);
  --card-line:rgba(87,83,88,.18);
  --accent:#50574c;
  --accent-2:#6f766a;
  --accent-soft:rgba(80,87,76,.14);
  --on-accent:#f2f4f8;
  --choco:#252a50;
  --choco-2:#575358;
  --shadow:0 44px 100px -40px rgba(0,0,0,.95);
  --font-display:'Cormorant Garamond','Bodoni Moda',Georgia,serif;
  --font-sans:'Mulish','Avenir Next','Gill Sans',sans-serif;
  --wrap:1180px;
  --pad:clamp(18px,4vw,54px);
}

html[data-theme="dark"],
html[data-theme="ibrido"],
html[data-theme="materico"]{
  --bg:#08090e;
  --bg-2:#0c0d14;
  --bg-3:#14161f;
  --surface:#0e0f16;
  --raised:#181b26;
  --card:#0e0f16;
  --card-2:#181b24;
  --text:#f2f4f8;
  --muted:#8d8a90;
  --faint:#585560;
  --line:rgba(141,138,144,.09);
  --line-gold:rgba(87,83,88,.28);
  --card-line:rgba(87,83,88,.18);
  --accent:#50574c;
  --accent-2:#6f766a;
  --accent-soft:rgba(80,87,76,.14);
  --on-accent:#f2f4f8;
  --choco:#252a50;
  --choco-2:#575358;
}

html[data-accent="salvia"]{
  --accent:#50574c;
  --accent-2:#6f766a;
  --accent-soft:rgba(80,87,76,.14);
  --line-gold:rgba(87,83,88,.28);
}

body{
  min-width:320px;
  background:
    radial-gradient(circle at 12% 4%,rgba(80,87,76,.16),transparent 27rem),
    radial-gradient(circle at 92% 10%,rgba(37,42,80,.20),transparent 23rem),
    linear-gradient(135deg,#08090e,#0c0d14 48%,#0d0e15);
  color:var(--text);
  font-size:16px;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.34;
  background-image:
    linear-gradient(rgba(238,241,246,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(238,241,246,.025) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 84%,transparent);
}

.wrap{max-width:var(--wrap)}
.section{padding-block:clamp(72px,10vw,132px);background:transparent}
.section--alt{background:rgba(15,17,26,.6)}
.section--ink{background:#1a1d30;color:#f2f4f8}
.section::before{display:none}
.section + .section{border-top:1px solid rgba(238,241,246,.09)}

.site-header{
  position:fixed;
  top:18px;
  left:50%;
  right:auto;
  bottom:auto;
  width:min(1180px,calc(100% - 32px));
  color:#f5f7fb;
  background:rgba(16,18,28,.62);
  border:1px solid rgba(245,247,251,.24);
  border-radius:999px;
  box-shadow:0 20px 80px rgba(0,0,0,.28);
  transform:translateX(-50%);
  backdrop-filter:blur(22px) saturate(120%);
}

.site-header.scrolled{
  color:var(--text);
  background:rgba(22,24,34,.9);
  border-color:rgba(238,241,246,.12);
  box-shadow:0 22px 76px rgba(18,20,30,.16);
}

.header-inner,
.site-header.scrolled .header-inner{
  width:100%;
  height:68px;
  padding:8px 10px 8px 18px;
  max-width:none;
}

.brand{gap:12px;align-items:center}
.brand-mark,
.site-header .brand-mark,
.footer-brand .brand-mark{
  display:grid;
  width:48px;
  height:48px;
  place-items:center;
  border-radius:50%;
  color:#f2f4f8;
  background:linear-gradient(135deg,#6f766a,#3a4036);
  font-size:15px;
  letter-spacing:.04em;
  line-height:1;
}

.brand-num{color:#f2f4f8}
.brand-sub{
  padding-left:0;
  margin-left:0;
  border-left:0;
  color:inherit;
  opacity:.82;
}

.nav{gap:4px}
.nav a{
  padding:12px 15px;
  border-radius:999px;
  color:rgba(245,247,251,.94);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.nav a:not(.nav-cta)::after{display:none}
.nav a:hover{background:rgba(80,87,76,.2);color:#f5f7fb}
.site-header.scrolled .nav a:not(.nav-cta){
  color:rgba(238,241,246,.8);
}
.site-header.scrolled .nav a:not(.nav-cta):hover{
  color:#f2f4f8;
  background:rgba(80,87,76,.18);
}
.nav-cta{
  border:1px solid rgba(80,87,76,.32);
  background:linear-gradient(135deg,#6f766a,#3a4036);
  color:#f2f4f8;
  padding:12px 18px;
  border-radius:999px;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.site-header.scrolled .nav-cta{
  background:#252a50;
  color:#f5f7fb;
  border-color:#252a50;
  box-shadow:none;
}

.hero{
  min-height:100svh;
  align-items:flex-end;
  background:#14161f;
}
.hero-media img{object-position:center;filter:saturate(1.02) contrast(1.02)}
.hero-scrim{
  background:
    linear-gradient(90deg,rgba(15,17,24,.84),rgba(15,17,24,.24) 52%,rgba(15,17,24,.55)),
    linear-gradient(0deg,rgba(15,17,24,.62),transparent 40%);
}
.hero-content{
  padding:26vh var(--pad) 12vh;
  max-width:1180px;
}
.hero .eyebrow{color:#97a08c}
.hero-title{
  max-width:900px;
  font-size:clamp(5.2rem,13vw,12.4rem);
  line-height:.84;
  letter-spacing:-.035em;
}
.hero-title-2{
  color:#aab09f;
  font-size:.46em;
  font-style:normal;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.hero-tag{
  max-width:740px;
  color:rgba(245,247,251,.84);
  font-family:var(--font-sans);
  font-size:clamp(1.1rem,2vw,1.42rem);
  font-style:normal;
  line-height:1.45;
}
.hero-meta{
  max-width:780px;
  gap:12px;
  padding-top:0;
  border-top:0;
}
.hero-meta li{
  min-width:150px;
  padding:16px 18px;
  border:1px solid rgba(245,247,251,.18);
  border-radius:999px;
  background:rgba(245,247,251,.08);
  backdrop-filter:blur(12px);
}
.hero-meta b{
  display:inline;
  margin-right:7px;
  color:#aab09f;
  font-size:21px;
}
.btn{
  min-height:50px;
  height:auto;
  border-radius:999px;
  padding:14px 22px;
  font-size:12px;
  letter-spacing:.08em;
}
.btn-gold{
  background:linear-gradient(135deg,#6f766a,#3a4036);
  border-color:transparent;
  color:#f2f4f8;
  box-shadow:0 18px 60px rgba(80,87,76,.28);
}
.btn-ghost{
  color:#f5f7fb;
  border-color:rgba(245,247,251,.34);
}
.btn-line{
  color:var(--text);
  border-color:var(--line);
  background:rgba(245,247,251,.34);
}

.eyebrow,
.section-kicker{
  color:var(--accent);
  font-size:15px;
  font-weight:800;
  letter-spacing:.18em;
  margin-top:clamp(12px,1.8vw,22px);
  margin-bottom:clamp(24px,3vw,40px);
}
.eyebrow-no{
  color:var(--accent);
  font-family:var(--font-sans);
  font-size:12px;
  font-weight:900;
}
.display-xl,
.display-l,
.materials-title,
.build-title,
.quality-title{
  color:var(--text);
  font-size:clamp(3rem,7vw,7.4rem);
  line-height:.9;
  letter-spacing:-.045em;
  text-transform:none!important;
}
.display-l{font-size:clamp(2.8rem,6vw,6.1rem)}
/* "Finiture." alla stessa misura del titolo qualità (.qv3-title) */
.materials-title{font-size:clamp(3rem,5vw,5.6rem);letter-spacing:-.03em}
.lead,
.body,
.materials-intro,
.build-intro,
.quality-copy p,
.quality-topic p,
.build-topic p,
.build-subsection p,
.tech-card p,
.steps p{
  color:var(--muted);
}

.concept-head{text-align:left;max-width:960px;margin-left:0}
.concept-head .eyebrow{justify-content:flex-start}
.concept-head .rule{margin-inline:0;background:var(--accent)}
.concept-head .lead{margin-left:0;text-align:left;font-size:clamp(1.05rem,1.8vw,1.38rem)}

.signature{
  gap:1px;
  border:0;
  background:var(--line);
  box-shadow:var(--shadow);
}
.sig-item{
  border:0;
  background:rgba(22,24,34,.82);
}
.sig-n{color:var(--accent);font-size:clamp(2.7rem,5vw,4.8rem)}
.sig-l{color:var(--muted);font-weight:800}

.split-grid,
.loc-grid,
.cont-grid{
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
}
.split-media-wrap img,
.type-card-media img,
.plan-item img,
.material-panel img,
.build-panel-image img,
.quality-panel img,
.loc-map{
  border:1px solid rgba(238,241,246,.12);
  border-radius:8px;
  box-shadow:var(--shadow);
}
.split-media-wrap::before{display:none}
.check-list li{color:var(--text)}

.gallery-strip{
  background:#252a50;
  padding-block:3px 0;
}
.gstrip-inner{gap:3px;min-height:420px}
.gstrip-credit{background:#252a50;color:rgba(245,247,251,.58)}

.numbers,
.esperienza,
.contatti,
.footer{
  --text:#f5f7fb;
  --muted:rgba(245,247,251,.66);
  --faint:rgba(245,247,251,.48);
  --line:rgba(245,247,251,.14);
  --line-gold:rgba(80,87,76,.28);
  --accent:#97a08c;
  --accent-2:#aab09f;
  --accent-soft:rgba(80,87,76,.11);
  background:var(--bg-3)!important;
  color:#f5f7fb;
}
.numbers .eyebrow,
.esperienza .eyebrow,
.contatti .eyebrow{color:#97a08c}
.numbers-grid,
.steps,
.tech-grid{
  gap:1px;
  border:0;
  background:rgba(245,247,251,.16);
}
.num,
.steps li{
  border:0;
  background:rgba(245,247,251,.06);
}
.num-v,
.step-n{color:#aab09f}
.num-l,
.steps h3,
.cont-credits .cc-v{color:#f5f7fb}
.num-l em,
.steps p,
.cont-text .body,
.cont-credits .cc-k,
.footer-cols p,
.footer-brand p,
.footer-bottom{color:rgba(245,247,251,.64)}

.showcase{
  min-height:clamp(420px,58vh,640px);
  background:#252a50;
}
.showcase-scrim{
  background:
    linear-gradient(90deg,rgba(16,18,28,.92),rgba(16,18,28,.46) 52%,rgba(16,18,28,.16)),
    linear-gradient(0deg,rgba(16,18,28,.56),transparent);
}
.showcase-quote{
  max-width:760px;
  font-size:clamp(2.1rem,4.4vw,4.8rem);
  letter-spacing:-.035em;
}

.apt-list{
  margin-top:clamp(34px,5vw,70px);
  border-top:1px solid var(--line);
}
.type-card{
  grid-template-columns:minmax(78px,.16fr) minmax(0,.9fr) minmax(320px,1fr);
  border-bottom:1px solid var(--line);
}
.type-card::before{
  left:34%;
  border-radius:18px;
  background:linear-gradient(135deg,rgba(30,33,46,.9),rgba(16,18,28,.7));
}
.type-section-no{
  top:112px;
  color:var(--accent);
  opacity:.22;
}
.type-card-title{
  color:var(--text);
  font-size:clamp(3rem,6vw,5.8rem);
  letter-spacing:-.045em;
}
.type-card-subtitle{color:var(--text)}
.type-card-body{color:var(--muted)}
.type-card-highlights{
  border-color:var(--line);
  border-radius:8px;
  overflow:hidden;
  background:rgba(22,24,34,.74);
}
.type-highlight{
  color:var(--muted);
  background:transparent;
}
.type-card-units{border-top-color:var(--line)}
.type-unit{
  padding:20px;
  border:1px solid transparent;
  border-bottom-color:var(--line);
  border-radius:8px;
}
.type-unit:hover{
  padding-left:26px;
  background:rgba(22,24,34,.72);
  border-color:rgba(60,72,130,.2);
}
.type-unit-name{font-size:32px;color:var(--text)}
.type-unit-price{color:var(--text)}
.type-unit-more,
.type-unit-storia,
.type-card-kicker,
.type-card-label{color:var(--accent)}

.plan-grid{gap:clamp(22px,4vw,48px)}
.plan-label h3,
.material-head h3,
.build-head h3,
.quality-head h3,
.tech-card h3,
.steps h3{
  letter-spacing:-.02em;
  text-transform:none;
}

.finiture,
.costruzione,
.qualita-visibile,
.tecnologia,
.location{
  background:transparent;
  color:var(--text);
}
.materials-main{padding-block:clamp(72px,10vw,132px)}
.materials-hero,
.build-hero,
.quality-hero{
  border-bottom:1px solid var(--line);
}
.materials-subtitle,
.build-subtitle,
.quality-subtitle{
  color:var(--accent);
  font-family:var(--font-sans);
  font-size:clamp(1rem,2vw,1.32rem);
  font-weight:800;
  letter-spacing:.14em;
}
.materials-grid,
.quality-grid,
.build-grid{
  gap:1px;
  border:0;
  background:var(--line);
}
.material-panel,
.quality-panel,
.build-panel,
.tech-card{
  border:0;
  background:rgba(22,24,34,.76);
}
.material-head span,
.build-head span,
.quality-head span{color:var(--accent)}
.material-copy b,
.build-topic h4,
.build-subsection h4,
.quality-topic h4,
.loc-list b,
.tech-tag,
.cont-credits .cc-k,
.footer-cols .fc-k{color:var(--accent)}
.material-feature-list,
.material-tags,
.quality-tags,
.loc-list{border-color:var(--line)}
.material-feature-list li,
.material-tags span,
.quality-tags span,
.loc-list li{border-color:var(--line);color:var(--muted)}

.tech-card{
  min-height:230px;
  box-shadow:none;
}
.tech-card:hover,
.steps li:hover{background:rgba(22,24,34,.9)}

.loc-map{
  background:var(--card);
  border-radius:18px;
}
.map-label{
  background:#252a50;
  color:#f5f7fb;
  border:0;
  border-radius:999px;
}

.cont-form{
  padding:clamp(28px,4vw,44px);
  border:1px solid rgba(245,247,251,.16);
  border-radius:18px;
  background:rgba(245,247,251,.06);
}
.field label{color:rgba(245,247,251,.66)}
.field input,
.field select,
.field textarea{
  color:#f5f7fb;
  background:rgba(245,247,251,.08);
  border-color:rgba(245,247,251,.16);
  border-radius:10px;
}
.field select option{color:#252a50}
.field input::placeholder,
.field textarea::placeholder{color:rgba(245,247,251,.4)}
.form-note{color:rgba(245,247,251,.58)}

.footer{
  border-top:1px solid rgba(245,247,251,.16);
}
.footer-inner{border-bottom-color:rgba(245,247,251,.14)}
.footer-brand .brand-mark{width:auto;height:auto;border-radius:0;background:none;color:#aab09f;display:block}

.drawer{
  background:var(--card);
  color:var(--text);
  border-left:1px solid var(--line);
}
.drawer-overlay{background:rgba(16,18,28,.54)}
.drw-close{
  background:#252a50;
  color:#f5f7fb;
  border:0;
}
.drw-claim{
  border:0;
  border-radius:12px;
  background:rgba(60,72,130,.1);
  font-family:var(--font-sans);
  font-style:normal;
  font-size:16px;
  line-height:1.7;
}
.drw-table,
.drw-table div{border-color:var(--line)}

@media(max-width:1080px){
  .nav a{padding:12px 11px;font-size:11px}
}

@media(max-width:980px){
  .site-header{position:fixed;top:12px;left:12px;right:12px;width:auto;transform:none}
  .header-inner,.site-header.scrolled .header-inner{height:62px}
  .nav{
    inset:74px 10px auto 10px;
    border-radius:24px;
    padding:10px;
    background:rgba(22,24,34,.96);
    box-shadow:var(--shadow);
  }
  .nav a{
    color:var(--text);
    border-bottom:0;
  }
  .nav-cta,
  .site-header.scrolled .nav-cta{
    margin:8px;
    background:#252a50;
    color:#f5f7fb;
  }
  .nav-toggle span{background:currentColor}
  .hero-content{padding-top:28vh}
  .split-grid,
  .loc-grid,
  .cont-grid{grid-template-columns:1fr}
}

@media(max-width:760px){
  .hero-title{font-size:clamp(4.1rem,18vw,7rem)}
  .hero-meta li{min-width:0;width:100%;border-radius:18px}
  .gstrip-inner{min-height:auto}
  .type-card{grid-template-columns:1fr}
  .type-card::before{left:0;top:86px}
  .type-section-no{position:relative;top:auto;font-size:70px}
  .type-card-media,
  .type-card-units{grid-column:1}
  .type-unit{grid-template-columns:1fr;padding-inline:0;border-radius:0}
  .type-unit:hover{padding-left:12px}
  .materials-grid,
  .quality-grid,
  .build-grid,
  .tech-grid,
  .steps,
  .numbers-grid,
  .signature{grid-template-columns:1fr}
  .material-panel,
  .quality-panel,
  .build-panel{padding-inline:0;background:transparent}
  .cont-form{padding:22px;border-radius:14px}
}

/* =================================================================
   Agency delivery pass
   Final structure after content pruning and section consolidation.
   ================================================================= */
body.agency-page{
  --wrap:1180px;
  background:
    radial-gradient(circle at 8% 0%,rgba(80,87,76,.2),transparent 25rem),
    radial-gradient(circle at 92% 7%,rgba(60,72,130,.18),transparent 24rem),
    linear-gradient(135deg,#0c0d14 0%,#0d0e15 52%,#08090e 100%);
}

.agency-page main{overflow:hidden}
.agency-page .section{padding-block:clamp(76px,10vw,132px)}

.agency-hero .hero-media img{
  object-position:center 42%;
}

.agency-hero .hero-scrim{
  background:
    rgba(5,8,18,.30),
    linear-gradient(90deg,rgba(18,20,30,.9),rgba(18,20,30,.34) 48%,rgba(18,20,30,.56)),
    linear-gradient(0deg,rgba(18,20,30,.72),transparent 44%);
}
.agency-hero .hero-title-2{
  margin-top:.5em;
}

.agency-hero-content{
  max-width:1180px;
  padding-bottom:clamp(76px,11vw,134px);
}

.agency-hero .hero-title{
  max-width:none;
  font-size:clamp(2.4rem,4.8vw,5.5rem);
  flex-direction:column;
  white-space:nowrap;
}

.agency-hero .hero-tag{
  max-width:720px;
}

.agency-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(340px,.8fr);
  gap:clamp(34px,6vw,86px);
  align-items:start;
}

.agency-copy{
  display:grid;
  gap:18px;
  padding-top:10px;
  color:var(--muted);
  font-size:clamp(1.04rem,1.45vw,1.22rem);
  line-height:1.72;
}

.proof-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  margin-top:clamp(44px,6vw,72px);
  overflow:hidden;
  border-radius:14px;
  background:rgba(238,241,246,.1);
  box-shadow:0 24px 78px rgba(18,20,30,.12);
}

.proof-strip span{
  min-height:92px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(22,24,34,.82);
  color:var(--text);
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-align:center;
  text-transform:uppercase;
}

.agency-showcase{
  padding-top:0;
}

.agency-showcase-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(330px,.76fr);
  gap:clamp(34px,5vw,72px);
  align-items:stretch;
}

.agency-main-image{
  position:relative;
  margin:0;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(238,241,246,.12);
  box-shadow:var(--shadow);
  min-height:320px;
}

.agency-main-image img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border:0;
  border-radius:0;
  box-shadow:none;
}

.agency-main-image figcaption{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  margin:0;
  padding:34px 18px 14px;
  background:linear-gradient(transparent, rgba(8,9,14,.82));
  color:rgba(242,244,248,.72);
}

.agency-showcase-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.agency-main-image figcaption{
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.agency-showcase-copy .display-l{
  max-width:9ch;
}

.agency-points{
  display:grid;
  gap:1px;
  margin-top:30px;
  overflow:hidden;
  border-radius:14px;
  background:rgba(238,241,246,.1);
}

.agency-points article{
  padding:24px;
  background:rgba(22,24,34,.78);
}

.agency-points span,
.quality-feature span,
.contact-steps span{
  color:var(--accent);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.agency-points h3,
.quality-feature h3{
  margin:10px 0 10px;
  color:var(--text);
  font-size:clamp(1.7rem,2.6vw,2.5rem);
  line-height:1;
}
.agency-points h3{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:600;
  letter-spacing:.005em;
}

.agency-points p,
.quality-feature p{
  margin:0;
  color:var(--muted);
  line-height:1.65;
}

.agency-section-head{
  max-width:820px;
}

.agency-section-head .body{
  margin-top:18px;
  font-size:clamp(1rem,1.35vw,1.16rem);
}

.agency-residences .apt-list{
  margin-top:clamp(22px,3vw,38px);
  border-top:1px solid rgba(238,241,246,.22);
}

.agency-residences .type-card{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  grid-template-areas:
    "copy media"
    "units units";
  column-gap:clamp(30px,5vw,76px);
  row-gap:clamp(30px,4vw,52px);
  padding:clamp(44px,6vw,82px) 0;
  border-bottom:1px solid rgba(238,241,246,.18);
  background:transparent;
  align-items:stretch;
}

.agency-residences .type-card::before{
  display:none;
}

.agency-residences .type-section-no{
  position:absolute;
  right:0;
  top:30px;
  z-index:0;
  font-size:clamp(5rem,10vw,10rem);
  opacity:.11;
}

.agency-residences .type-card-copy,
.agency-residences .type-card-media,
.agency-residences .type-card-units{
  z-index:1;
}

.agency-residences .type-card-copy{
  grid-area:copy;
  align-self:center;
}

.agency-residences .type-card-media{
  grid-area:media;
  margin-top:0;
}

.agency-residences .type-card-media img{
  aspect-ratio:1.2/1;
  object-fit:contain;
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  filter:drop-shadow(0 24px 34px rgba(18,20,30,.12));
}

.agency-residences .type-card-cap{
  padding-left:0;
  border-left:0;
  color:var(--faint);
}

.agency-residences .type-card-units{
  grid-area:units;
  display:flex;
  flex-direction:column;
  gap:18px;
  padding:clamp(22px,3vw,30px) clamp(20px,2.4vw,32px);
  border:1px solid rgba(60,72,130,.26);
  border-radius:18px;
  background:rgba(24,26,36,.82);
  box-shadow:0 18px 56px rgba(16,18,28,.07);
}

.type-card-featured .type-card-units{
  border-color:rgba(60,72,130,.26);
  background:rgba(24,26,36,.82);
}

.agency-residences .type-card-units-head{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.agency-residences .type-card-units .type-card-kicker{
  margin-bottom:0;
  color:#a7b09b;
  font-weight:700;
  font-size:16px;
  letter-spacing:.08em;
}

.agency-residences .type-card-unit-note{
  color:rgba(242,244,248,.62);
  font-size:16px;
  line-height:1.8;
  margin-top:6px;
}

/* Unit list a tutta larghezza: card affiancate uniformi */
.agency-residences .type-unit-list{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(200px,1fr));
  gap:12px;
  border-top:0;
}

.agency-residences .type-card-title{
  max-width:9ch;
  font-size:clamp(3rem,5.8vw,5.7rem);
}

.agency-residences .type-card-subtitle{
  max-width:30ch;
  font-size:clamp(1.26rem,2vw,1.72rem);
}

.agency-residences .type-card-highlights{
  margin-top:26px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border:0;
  border-top:1px solid rgba(238,241,246,.18);
  border-radius:0;
  overflow:visible;
  background:transparent;
}

.agency-residences .type-highlight{
  padding:14px 18px 14px 0;
  border:0;
  border-bottom:1px solid rgba(238,241,246,.12);
  background:transparent;
  color:var(--text);
  font-weight:800;
}

.agency-residences .type-unit-list{
  border-top:1px solid rgba(238,241,246,.16);
}

.agency-residences .type-unit{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  padding:0;
  border:1px solid rgba(238,241,246,.09);
  border-top:2px solid rgba(60,72,130,.30);
  border-radius:10px;
  background:var(--card);
  overflow:hidden;
  cursor:pointer;
  text-align:left;
  color:var(--text);
  transition:
    transform .25s cubic-bezier(.2,.7,.2,1),
    box-shadow .25s ease,
    border-top-color .2s ease;
}

.agency-residences .type-unit:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 32px rgba(16,18,28,.13);
  border-top-color:var(--accent);
}

.type-unit-photo{
  width:100%;
  aspect-ratio:3/2;
  overflow:hidden;
  flex-shrink:0;
}

.type-unit-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  transition:transform .45s ease;
}

.agency-residences .type-unit:hover .type-unit-photo img{
  transform:scale(1.05);
}

.type-unit-body{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:16px 18px 14px;
  flex:1;
}

.type-unit-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid rgba(238,241,246,.08);
}

.agency-residences .type-unit-storia{
  font-size:9px;
  font-weight:800;
  letter-spacing:.20em;
  text-transform:uppercase;
  color:var(--accent);
  opacity:.85;
  margin-bottom:4px;
}

.agency-residences .type-unit-name{
  font-family:var(--font-display);
  font-size:clamp(20px,2vw,24px);
  font-weight:500;
  line-height:1;
  color:var(--text);
}

.agency-residences .type-unit-meta{
  font-size:10.5px;
  letter-spacing:.04em;
  color:var(--muted);
  margin-top:2px;
}

.agency-residences .type-unit-price{
  font-family:var(--font-display);
  font-size:clamp(17px,1.9vw,21px);
  font-weight:600;
  color:var(--text);
  line-height:1;
}

.agency-residences .type-unit-price small{
  display:none;
}

.agency-residences .type-unit-more{
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--accent);
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  opacity:.72;
  transition:opacity .18s;
  flex-shrink:0;
}

.agency-residences .type-unit:hover .type-unit-more{
  opacity:1;
}

.agency-residences .type-card-units-head{
  padding-top:2px;
}

.agency-residences .type-card-units-head .type-card-kicker::before{
  display:none;
}

.agency-gallery-section{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 18% 8%, rgba(60,72,130,.18), transparent 34%),
    linear-gradient(180deg,#181b26 0%,#0c0d14 100%);
}

.agency-gallery-section::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.42;
  background-image:
    linear-gradient(rgba(238,241,246,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(238,241,246,.03) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
}

.gallery-head{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-bottom:clamp(28px,4vw,52px);
}

.gallery-head .display-l{
  max-width:none;
}

.gallery-head .body{
  max-width:640px;
  opacity:.78;
}

.agency-gallery{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  grid-auto-rows:clamp(128px,12vw,184px);
  grid-auto-flow:row;
  gap:8px;
}

.gallery-tile{
  position:relative;
  min-height:0;
  padding:0;
  border:0;
  border-radius:10px;
  overflow:hidden;
  cursor:zoom-in;
  background:#252a50;
  box-shadow:0 22px 60px rgba(18,20,30,.12);
  isolation:isolate;
}

.gallery-tile::after{
  content:"";
  position:absolute;
  inset:0;
  opacity:0;
  border:1px solid rgba(80,87,76,.72);
  background:
    radial-gradient(circle at 50% 50%, transparent 0 44%, rgba(16,18,28,.32) 100%),
    linear-gradient(180deg, transparent 54%, rgba(16,18,28,.36));
  transition:opacity .35s ease;
  z-index:1;
}

.gallery-tile img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transform:scale(1.015);
  transition:transform .8s cubic-bezier(.2,.7,.2,1), filter .45s ease;
}

.gallery-tile:hover::after,
.gallery-tile:focus-visible::after{
  opacity:1;
}

.gallery-tile:hover img,
.gallery-tile:focus-visible img{
  transform:scale(1.07);
  filter:saturate(1.05) contrast(1.03);
}

.gallery-tile-large{
  grid-column:span 3;
  grid-row:span 2;
}

.gallery-tile-wide{
  grid-column:span 2;
}

.gallery-tile-tall{
  grid-column:span 2;
  grid-row:span 2;
}

.gallery-lightbox[hidden]{
  display:none!important;
}

.gallery-lightbox{
  position:fixed;
  inset:0;
  z-index:260;
  display:grid;
  grid-template-columns:minmax(56px,9vw) minmax(0,1fr) minmax(56px,9vw);
  grid-template-rows:minmax(58px,10vh) minmax(0,1fr) minmax(76px,12vh);
  align-items:center;
  gap:0;
  padding:clamp(12px,2vw,24px);
  background:
    radial-gradient(circle at 20% 18%, rgba(60,72,130,.25), transparent 28%),
    radial-gradient(circle at 78% 76%, rgba(80,87,76,.15), transparent 32%),
    rgba(20,22,32,.94);
  color:#f5f7fb;
  opacity:0;
  transform:scale(.985);
  transition:opacity .24s ease, transform .24s ease;
}

.gallery-lightbox.is-open{
  opacity:1;
  transform:scale(1);
}

.gallery-close,
.gallery-nav,
.gallery-tools button{
  border:1px solid rgba(245,247,251,.18);
  color:#f5f7fb;
  background:rgba(245,247,251,.08);
  backdrop-filter:blur(16px);
  box-shadow:0 18px 42px rgba(0,0,0,.22);
}

.gallery-close{
  grid-column:3;
  grid-row:1;
  justify-self:end;
  width:48px;
  height:48px;
  border-radius:50%;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.gallery-nav{
  width:52px;
  height:74px;
  border-radius:999px;
  font-size:22px;
  cursor:pointer;
}

.gallery-prev{
  grid-column:1;
  grid-row:2;
  justify-self:center;
}

.gallery-next{
  grid-column:3;
  grid-row:2;
  justify-self:center;
}

.gallery-close:hover,
.gallery-nav:hover,
.gallery-tools button:hover{
  border-color:rgba(80,87,76,.62);
  background:rgba(80,87,76,.16);
}

.gallery-stage{
  grid-column:2;
  grid-row:1 / 4;
  width:100%;
  height:100%;
  min-height:0;
  margin:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:18px;
  background:rgba(245,247,251,.035);
  box-shadow:inset 0 0 0 1px rgba(245,247,251,.08);
}

.gallery-stage-img{
  max-width:100%;
  max-height:100%;
  user-select:none;
  transform:
    translate3d(var(--gallery-pan-x,0px), var(--gallery-pan-y,0px), 0)
    scale(var(--gallery-zoom,1));
  transform-origin:center;
  transition:transform .18s ease;
  cursor:zoom-in;
  will-change:transform;
}

.gallery-lightbox.is-zoomed .gallery-stage-img{
  cursor:grab;
}

.gallery-lightbox.is-dragging .gallery-stage-img{
  cursor:grabbing;
  transition:none;
}

.gallery-tools{
  grid-column:2;
  grid-row:3;
  justify-self:center;
  align-self:end;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px;
  border:1px solid rgba(245,247,251,.14);
  border-radius:999px;
  background:rgba(20,22,32,.58);
  backdrop-filter:blur(18px);
}

.gallery-tools button{
  min-width:42px;
  height:38px;
  border-radius:999px;
  padding:0 13px;
  font:800 12px/1 var(--font-body);
  letter-spacing:.08em;
  cursor:pointer;
}

.gallery-tools span{
  min-width:62px;
  color:rgba(245,247,251,.72);
  font-size:12px;
  font-weight:800;
  letter-spacing:.1em;
  text-align:center;
}

.quality-editorial{
  display:grid;
  gap:18px;
  margin-top:clamp(38px,6vw,72px);
}

.quality-feature{
  display:grid;
  grid-template-columns:minmax(260px,.52fr) minmax(0,1fr);
  gap:clamp(24px,4vw,54px);
  align-items:center;
  padding:clamp(22px,3vw,34px);
  border:1px solid rgba(238,241,246,.1);
  border-radius:18px;
  background:rgba(22,24,34,.78);
  box-shadow:0 24px 70px rgba(18,20,30,.08);
}

.quality-feature img{
  width:100%;
  aspect-ratio:1.35/1;
  object-fit:cover;
  border-radius:12px;
  background:var(--card);
  border:1px solid rgba(238,241,246,.1);
}

.quality-redesign{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1fr);
  gap:clamp(34px,6vw,82px);
  align-items:start;
}

.quality-statement{
  position:sticky;
  top:118px;
}

.quality-statement .display-l{
  max-width:9.5ch;
}

.quality-statement p:not(.eyebrow){
  max-width:44ch;
  margin-top:24px;
  color:var(--muted);
  font-size:clamp(1.04rem,1.45vw,1.22rem);
  line-height:1.72;
}

.quality-ledger{
  display:grid;
  border-top:1px solid rgba(238,241,246,.2);
}

.quality-ledger article{
  display:grid;
  grid-template-columns:76px minmax(160px,.34fr) minmax(0,1fr);
  gap:clamp(18px,3vw,34px);
  align-items:baseline;
  padding:26px 0;
  border-bottom:1px solid rgba(238,241,246,.14);
}

.quality-ledger span,
.quality-note-line span{
  color:var(--accent);
  font-size:11px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.quality-ledger h3{
  margin:0;
  color:var(--text);
  font-size:clamp(1.75rem,2.9vw,2.75rem);
  line-height:1;
}

.quality-ledger p{
  margin:0;
  color:var(--muted);
  line-height:1.65;
}

.quality-note-line{
  grid-column:2;
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:24px;
  margin-top:clamp(26px,4vw,42px);
  padding-top:24px;
  border-top:1px solid rgba(60,72,130,.28);
}

.quality-note-line p{
  margin:0;
  color:var(--text);
  font-family:var(--font-display);
  font-size:clamp(1.35rem,2.1vw,2rem);
  line-height:1.18;
}

.quality-redesign-v2{
  grid-template-columns:minmax(0,1fr);
  gap:clamp(22px,3vw,34px);
}

.quality-redesign-v2 .quality-statement{
  position:static;
  display:block;
  max-width:860px;
  padding:0 0 clamp(24px,3vw,34px);
  border-bottom:1px solid rgba(238,241,246,.14);
}

.quality-redesign-v2 .quality-statement .display-l{
  max-width:9.5ch;
  margin:0;
  font-size:clamp(3rem,4.6vw,4.9rem);
  line-height:.94;
  letter-spacing:-.03em;
}

.quality-redesign-v2 .quality-statement p:not(.eyebrow){
  max-width:48ch;
  margin:20px 0 0;
  color:rgba(238,241,246,.72);
  font-size:clamp(1.04rem,1.22vw,1.14rem);
  line-height:1.74;
}

.quality-copyboard{
  display:grid;
  gap:clamp(18px,2.4vw,28px);
}

.quality-lead{
  max-width:780px;
  margin:0;
  color:var(--text);
  font-family:var(--font-display);
  font-size:clamp(1.7rem,3vw,3rem);
  line-height:1.08;
  letter-spacing:-.025em;
}

.quality-principles{
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:clamp(18px,2.3vw,26px);
  row-gap:clamp(18px,2.3vw,26px);
  border-top:0;
}

.quality-principles article{
  min-height:100%;
  padding:clamp(24px,2.7vw,34px);
  border:1px solid rgba(238,241,246,.1);
  background:linear-gradient(180deg,rgba(20,22,32,.98) 0%,rgba(12,14,22,.92) 100%);
  box-shadow:0 18px 40px rgba(37,42,80,.06);
  position:relative;
  overflow:hidden;
}

.quality-principles article::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:72px;
  height:1px;
  background:var(--accent);
}

.quality-principles article:nth-child(2),
.quality-principles article:nth-child(4){
  transform:translateY(clamp(0px,1vw,12px));
}

.quality-principles span{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
  color:var(--accent);
  font-size:11px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.quality-principles span::before{
  content:"";
  width:18px;
  height:1px;
  background:currentColor;
}

.quality-principles h3{
  max-width:12ch;
  margin:0 0 14px;
  color:var(--text);
  font-size:clamp(2rem,2.8vw,3rem);
  line-height:.92;
  letter-spacing:-.03em;
}

.quality-principles p{
  max-width:32ch;
  margin:0;
  color:var(--muted);
  line-height:1.72;
}

.agency-quality{
  padding-bottom:clamp(40px,6vw,72px);
}

.agency-specs{
  background:#252a50!important;
}

.agency-spec-stage{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(420px,.92fr);
  gap:clamp(38px,7vw,104px);
  align-items:center;
}

.agency-spec-text .display-l{
  max-width:760px;
  color:#f5f7fb;
}

.agency-spec-lead{
  max-width:620px;
  margin:24px 0 clamp(34px,5vw,58px);
  color:rgba(245,247,251,.68);
  font-size:clamp(1.05rem,1.45vw,1.24rem);
  line-height:1.68;
}

.agency-spec-list{
  border-top:1px solid rgba(245,247,251,.22);
}

.agency-spec-item{
  display:grid;
  grid-template-columns:58px minmax(0,1fr) minmax(120px,.22fr);
  gap:clamp(16px,2.6vw,34px);
  align-items:baseline;
  padding:22px 0;
  border-bottom:1px solid rgba(245,247,251,.14);
}

.agency-spec-item span,
.agency-spec-item strong{
  color:#97a08c;
  font-size:11px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.agency-spec-item h3{
  margin:0 0 7px;
  color:#f5f7fb;
  font-size:clamp(1.55rem,2.2vw,2.25rem);
  line-height:1;
}

.agency-spec-item p{
  max-width:46ch;
  margin:0;
  color:rgba(245,247,251,.62);
  line-height:1.58;
}

.agency-spec-visual{
  position:relative;
  aspect-ratio:16/9;
  min-height:0;
  margin:0;
  overflow:hidden;
  background:transparent;
}

.agency-spec-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  border-radius:0;
}

.agency-spec-visual::before{
  content:"";
  position:absolute;
  inset:18px;
  z-index:1;
  border:1px solid rgba(245,247,251,.2);
  pointer-events:none;
}

.agency-spec-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(16,18,28,.44),transparent 46%);
  pointer-events:none;
}

.agency-spec-visual figcaption{
  position:absolute;
  left:28px;
  bottom:28px;
  z-index:2;
  max-width:24ch;
  color:rgba(245,247,251,.9);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.agency-location .loc-map{
  min-height:460px;
}

.contact-steps{
  display:grid;
  gap:10px;
  margin-top:30px;
  max-width:420px;
}

.contact-steps span{
  display:block;
  padding:13px 16px;
  border-radius:999px;
  background:rgba(245,247,251,.08);
  color:#aab09f;
}

.agency-contact{
  overflow:hidden;
  background:
    radial-gradient(ellipse 78% 56% at 12% 18%, rgba(80,87,76,.12), transparent 62%),
    radial-gradient(ellipse 68% 54% at 88% 82%, rgba(37,42,80,.16), transparent 60%),
    linear-gradient(180deg, rgba(20,22,31,.98) 0%, rgba(17,19,28,.96) 100%);
}

.agency-contact::after{
  display:none;
}

.contact-module{
  grid-template-columns:minmax(0,.92fr) minmax(420px,.78fr);
  align-items:center;
}

.agency-contact .cont-text{
  max-width:680px;
}

.agency-contact .display-l{
  max-width:9.5ch;
}

.agency-contact .body{
  max-width:560px;
  color:rgba(245,247,251,.7);
  font-size:clamp(1.02rem,1.5vw,1.24rem);
}

.contact-panel{
  position:relative;
  padding:clamp(22px,3vw,32px);
  border:1px solid rgba(245,247,251,.16);
  border-radius:22px;
  background:
    linear-gradient(145deg,rgba(245,247,251,.1),rgba(245,247,251,.035)),
    rgba(13,14,21,.78);
  box-shadow:0 34px 120px rgba(0,0,0,.34);
  backdrop-filter:blur(18px);
}

.contact-panel::before{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(151,160,140,.16);
  border-radius:16px;
  pointer-events:none;
}

.contact-panel-head{
  position:relative;
  display:grid;
  gap:12px;
  padding-bottom:16px;
  margin-bottom:18px;
  border-bottom:1px solid rgba(245,247,251,.13);
}

.contact-panel-kicker{
  color:#aab09f;
  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.contact-panel h3{
  max-width:14ch;
  font-family:var(--font-display);
  font-size:clamp(30px,3.1vw,44px);
  font-weight:500;
  line-height:.98;
  letter-spacing:-.025em;
  color:#f5f7fb;
}

.agency-contact .cont-credits{
  position:relative;
  grid-template-columns:1fr 1fr;
  gap:1px;
  margin:0 0 22px;
  overflow:hidden;
  border:1px solid rgba(245,247,251,.12);
  border-radius:16px;
  background:rgba(245,247,251,.12);
}

.agency-contact .cont-credits div{
  min-width:0;
  padding:16px;
  background:rgba(8,9,14,.52);
}

.agency-contact .cont-credits .cc-k{
  color:#aab09f;
}

.agency-contact .cont-credits .cc-v{
  overflow-wrap:anywhere;
  color:#f5f7fb;
  font-size:15px;
  line-height:1.35;
}

.agency-contact .cont-form{
  position:relative;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.agency-contact .field-row{
  gap:14px;
}

.agency-contact .field{
  gap:9px;
}

.agency-contact .field label{
  color:rgba(245,247,251,.68);
  font-size:11px;
  font-weight:800;
  letter-spacing:.13em;
}

.agency-contact .field input,
.agency-contact .field select,
.agency-contact .field textarea{
  min-height:50px;
  border-color:rgba(245,247,251,.16);
  border-radius:12px;
  background:rgba(245,247,251,.075);
  color:#f5f7fb;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

.agency-contact .field textarea{
  min-height:116px;
}

.agency-contact .field input:hover,
.agency-contact .field select:hover,
.agency-contact .field textarea:hover{
  border-color:rgba(170,176,159,.38);
}

.agency-contact .field input:focus,
.agency-contact .field select:focus,
.agency-contact .field textarea:focus{
  border-color:#aab09f;
  background:rgba(245,247,251,.1);
}

.agency-contact .field input::placeholder,
.agency-contact .field textarea::placeholder{
  color:rgba(245,247,251,.38);
}

.agency-contact .field select option{
  color:#14161f;
}

.agency-contact .btn{
  min-height:54px;
  margin-top:4px;
  border-radius:999px;
}

.agency-contact .form-note{
  margin:0;
  color:rgba(245,247,251,.58);
  text-align:left;
}

.agency-contact .form-note.ok{
  color:#aab09f;
}

.contact-actions{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.contact-actions .btn{
  min-height:54px;
  margin:0;
  border-radius:999px;
}

.contact-actions .btn-line{
  color:#f5f7fb;
  border-color:rgba(245,247,251,.22);
  background:rgba(245,247,251,.055);
}

.contact-actions .btn-line:hover{
  color:#f5f7fb;
  border-color:rgba(170,176,159,.58);
  background:rgba(245,247,251,.09);
}

.contact-panel-note{
  position:relative;
  margin:18px 0 0;
  color:rgba(245,247,251,.58);
  font-size:13px;
  line-height:1.65;
}

@media(max-width:1080px){
  .agency-residences .type-card{
    grid-template-columns:1fr;
    grid-template-areas:
      "copy"
      "media"
      "units";
  }
  .agency-residences .type-card-copy{
    align-self:start;
  }
  .agency-spec-stage{
    grid-template-columns:1fr;
  }
  .agency-spec-visual{
    min-height:0;
  }
}

@media(max-width:720px){
  .contact-module{
    grid-template-columns:1fr;
  }

  .agency-contact .display-l{
    max-width:11ch;
  }

  .agency-contact .cont-credits,
  .contact-actions{
    grid-template-columns:1fr;
  }

  .contact-panel{
    padding:22px;
  }
}

@media(max-width:900px){
  .agency-intro-grid,
  .agency-showcase-grid,
  .quality-feature,
  .quality-redesign{
    grid-template-columns:1fr;
  }
  .agency-main-image{
    aspect-ratio:4/5;
    min-height:0;
  }
  .quality-statement{
    position:relative;
    top:auto;
  }
  .quality-statement .display-l{
    max-width:12ch;
    margin-inline:auto;
    text-align:center;
  }
  .quality-note-line{
    grid-column:1;
  }
  .quality-redesign-v2 .quality-statement .display-l{
    max-width:12ch;
    font-size:clamp(2.5rem,8vw,4rem);
  }
  .quality-redesign-v2 .quality-statement p:not(.eyebrow){
    max-width:40ch;
    margin-top:16px;
  }
  .quality-principles{
    grid-template-columns:1fr;
  }
  .quality-principles h3{
    max-width:none;
  }
  .quality-principles article:nth-child(2),
  .quality-principles article:nth-child(4){
    transform:none;
  }
  .proof-strip{
    grid-template-columns:repeat(2,1fr);
  }
  .gallery-head{
    grid-template-columns:1fr;
  }
  .agency-gallery{
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-rows:clamp(120px,18vw,170px);
  }
  .gallery-tile-large{
    grid-column:span 2;
  }
  .gallery-lightbox{
    grid-template-columns:68px minmax(0,1fr) 68px;
  }
}

@media(max-width:640px){
  .agency-page .section{
    padding-block:64px;
  }
  .agency-hero .hero-title{
    font-size:clamp(1.4rem,6.5vw,2.6rem);
    white-space:nowrap;
    flex-direction:column;
  }
  .proof-strip,
  .agency-residences .type-card-units{
    grid-template-columns:1fr;
  }
  .agency-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:148px;
    gap:6px;
  }
  .gallery-tile,
  .gallery-tile-wide,
  .gallery-tile-tall,
  .gallery-tile-large{
    grid-column:span 1;
    grid-row:span 1;
  }
  .gallery-tile-large,
  .gallery-tile-wide{
    grid-column:span 2;
  }
  .gallery-lightbox{
    grid-template-columns:1fr 1fr;
    grid-template-rows:58px minmax(0,1fr) 72px 58px;
    padding:10px;
  }
  .gallery-close{
    grid-column:2;
    grid-row:1;
  }
  .gallery-stage{
    grid-column:1 / -1;
    grid-row:2;
    border-radius:12px;
  }
  .gallery-prev,
  .gallery-next{
    grid-row:4;
    width:100%;
    height:48px;
    border-radius:999px;
  }
  .gallery-prev{
    grid-column:1;
  }
  .gallery-next{
    grid-column:2;
  }
  .gallery-tools{
    grid-column:1 / -1;
    grid-row:3;
  }
  .agency-spec-visual{
    min-height:0;
  }
  .agency-spec-item{
    grid-template-columns:1fr;
    gap:9px;
    padding:20px 0;
  }
  .agency-spec-item strong{
    margin-top:2px;
  }
  .agency-residences .type-card-highlights{
    grid-template-columns:1fr;
  }
  .agency-page .type-card-stats{
    grid-template-columns:1fr;
  }
  .agency-page .type-stat:nth-child(even){
    padding-left:0;
    border-left:0;
  }
  .agency-residences .type-unit-list{
    grid-template-columns:repeat(2,1fr);
  }
  .quality-feature{
    padding:18px;
  }
  .quality-ledger article{
    grid-template-columns:1fr;
    gap:10px;
    padding:22px 0;
  }
  .quality-note-line{
    grid-template-columns:1fr;
    gap:12px;
  }
  .quality-lead{
    font-size:clamp(1.45rem,8vw,2.2rem);
  }
  .quality-principles article{
    padding:24px 18px 22px;
    border-radius:12px;
  }
  .quality-principles span{
    margin-bottom:14px;
  }
  .quality-principles h3{
    font-size:clamp(1.95rem,9vw,2.7rem);
    line-height:.96;
  }
  .quality-principles p{
    max-width:none;
  }
  .agency-residences .type-card-title,
  .agency-showcase-copy .display-l{
    max-width:none;
  }
}

/* =================================================================
   QUALITÀ — title + lead fixes
   ================================================================= */

/* Colonne più equilibrate: sinistra più larga per il titolo */
.quality-redesign-v2{
  grid-template-columns:minmax(0,1fr);
  gap:clamp(26px,4vw,42px);
}

.quality-redesign-v2 .quality-statement .display-l{
  max-width:10ch !important;
  font-size:clamp(3rem,5vw,5.4rem) !important;
  line-height:.94;
}

/* =================================================================
   RESIDENZE — ELEVATED DESIGN
   Right-panel card + unit cards + highlight pills
   ================================================================= */

/* --- Section header refinement --- */
.agency-residences .agency-section-head{
  max-width:none;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.7fr);
  grid-template-rows:auto 1fr;
  column-gap:clamp(32px,5vw,80px);
  align-items:end;
  padding-bottom:0;
  border-bottom:0;
}

.agency-residences .agency-section-head .eyebrow{
  grid-column:1;
  grid-row:1;
  align-self:end;
}

.agency-residences .agency-section-head h2{
  grid-column:1;
  grid-row:2;
}

.agency-residences .agency-section-head .body{
  grid-column:2;
  grid-row:1 / 3;
  align-self:end;
  margin-top:0;
  padding-bottom:4px;
}

/* --- Type card: use the existing 2-col agency layout, just override alignment --- */
.agency-page .type-card{
  align-items:start;
  overflow:visible;
}

/* --- Title: legible size, no artificial char-width constraint --- */
.agency-residences .type-card-title,
.agency-residences h3.type-card-title{
  font-size:clamp(2.1rem,3.6vw,4rem) !important;
  max-width:none !important;
  letter-spacing:-.03em;
  line-height:.95;
  margin-bottom:14px;
}

/* --- Right panel: soft card containing image + units --- */
/* --- Media frame: planimetria nel pannello destro (riga 1) --- */
.type-card-media-frame{
  position:relative;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(238,241,246,.11);
  box-shadow:0 14px 42px rgba(16,18,28,.13);
  background:var(--card);
  padding:clamp(10px,1.6vw,18px);
}

.type-card-media-frame img{
  width:100%;
  display:block;
  aspect-ratio:1.18/1;
  object-fit:contain;
  object-position:center;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
}

.type-card-media:hover .type-card-media-frame img{
  transform:scale(1.025);
}

/* "Residenza unica" badge overlaid on the featured image */
.type-card-media-badge{
  position:absolute;
  top:12px;right:12px;
  padding:6px 13px;
  background:rgba(60,72,130,.88);
  color:#f5f7fb;
  font-family:var(--font-sans);
  font-size:9.5px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  border-radius:999px;
  backdrop-filter:blur(6px);
}

.agency-residences .type-card-media{
  display:flex;
  flex-direction:column;
  gap:12px;
  justify-content:center;
}

.agency-residences .type-card-media .type-card-media-frame{
  flex:1;
  display:flex;
  align-items:center;
}

.agency-residences .type-card-cap{
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--faint);
  padding-left:0;
  border-left:0;
}

/* --- Unit card: layout verticale (storia/nome/meta in alto, prezzo in basso) --- */
.agency-page .type-unit{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  width:100%;
  padding:16px 16px 14px;
  border:1px solid rgba(238,241,246,.09);
  border-top:2px solid rgba(60,72,130,.32);
  border-radius:10px;
  background:rgba(22,24,34,.56);
  cursor:pointer;
  text-align:left;
  color:var(--text);
  transition:
    background .22s ease,
    border-top-color .22s ease,
    box-shadow .26s ease,
    transform .26s cubic-bezier(.2,.7,.2,1);
}

.agency-page .type-unit:hover{
  background:rgba(80,87,76,.08);
  border-top-color:var(--accent);
  box-shadow:0 6px 26px rgba(16,18,28,.11);
  transform:translateY(-2px);
}

/* Parte alta: storia + nome + meta */
.type-unit-left{
  display:flex;
  flex-direction:column;
  gap:3px;
}

.agency-page .type-unit-storia{
  font-size:9px;
  font-weight:800;
  letter-spacing:.20em;
  text-transform:uppercase;
  color:var(--accent);
  opacity:.85;
  display:block;
  margin-bottom:6px;
}

.agency-page .type-unit-name{
  font-family:var(--font-display);
  font-size:clamp(18px,1.9vw,22px);
  font-weight:500;
  line-height:1;
  color:var(--text);
  letter-spacing:-.01em;
}

.agency-page .type-unit-meta{
  font-size:10.5px;
  letter-spacing:.04em;
  color:var(--muted);
  margin-top:3px;
}

/* Parte bassa: prezzo + dettagli — spinto in fondo alla card */
.type-unit-right{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:5px;
  margin-top:auto;
  padding-top:11px;
  border-top:1px solid rgba(238,241,246,.08);
}

.agency-page .type-unit-price{
  font-family:var(--font-display);
  font-size:clamp(19px,2.1vw,24px);
  font-weight:600;
  color:var(--text);
  text-align:left;
  line-height:1;
}

.agency-page .type-unit-price small{
  display:none;
}

.agency-page .type-unit-more{
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--accent);
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  opacity:.72;
  transition:opacity .18s;
}

.agency-page .type-unit:hover .type-unit-more{
  opacity:1;
}

/* Caso unità singola (Miracolo): card orizzontale featured */
.agency-residences .type-unit-list:has(.type-unit:only-child){
  grid-template-columns:1fr;
}

.agency-residences .type-unit-list:has(.type-unit:only-child) .type-unit{
  flex-direction:row;
  align-items:stretch;
  min-height:200px;
}

.agency-residences .type-unit-list:has(.type-unit:only-child) .type-unit-photo{
  flex:0 0 42%;
  width:42%;
  aspect-ratio:unset;
}

.agency-residences .type-unit-list:has(.type-unit:only-child) .type-unit-body{
  flex:1 1 auto;
  padding:22px 26px 20px;
  justify-content:space-between;
}

.agency-residences .type-unit-list:has(.type-unit:only-child) .type-unit-name{
  font-size:clamp(24px,2.6vw,32px);
}

.agency-residences .type-unit-list:has(.type-unit:only-child) .type-unit-price{
  font-size:clamp(20px,2.2vw,26px);
}

.agency-residences .type-unit-list:has(.type-unit:only-child) .type-unit-footer{
  padding-top:14px;
}

/* Badge "Unità unica" nella storia */
.agency-residences .type-unit-list:has(.type-unit:only-child) .type-unit-storia::after{
  content:" · Unità unica";
  opacity:.6;
}

/* --- Highlights → pill/chip badges --- */
.agency-page .type-card-highlights{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:26px 0 22px;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
}

.agency-page .type-highlight{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 14px;
  background:rgba(22,24,34,.94);
  border:1px solid rgba(238,241,246,.13);
  border-radius:999px;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text);
  box-shadow:0 2px 8px rgba(16,18,28,.05);
}

.agency-page .type-highlight::before{
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--accent);
  flex-shrink:0;
}

.type-card-featured .type-card-copy .type-highlight{
  border-color:rgba(60,72,130,.20);
}

/* --- Featured card title accent --- */
.type-card-featured .type-card-title::after{
  content:"";
  display:block;
  width:48px;
  height:2px;
  margin-top:14px;
  background:linear-gradient(90deg,var(--accent),rgba(80,87,76,.6));
  border-radius:2px;
}

/* --- Griglia statistiche con icone (tipologia featured) --- */
.agency-page .type-card-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin:28px 0 6px;
  border-top:1px solid rgba(238,241,246,.16);
}
.agency-page .type-stat{
  display:flex;
  align-items:center;
  gap:15px;
  padding:18px 20px 18px 0;
  border-bottom:1px solid rgba(238,241,246,.12);
  min-width:0;
}
.agency-page .type-stat:nth-child(even){
  padding-left:24px;
  border-left:1px solid rgba(238,241,246,.12);
}
.type-stat-icon{
  flex:0 0 auto;
  width:36px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--accent-2);
}
.type-stat-icon svg{
  width:24px;
  height:24px;
  display:block;
}
.type-stat-text{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
}
.type-stat-value{
  font-size:13.5px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--text);
  line-height:1.15;
}
.type-stat-label{
  font-size:10.5px;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--muted);
  line-height:1.25;
}

/* --- CTA unità "Scopri dettagli": pill sobria, on-palette --- */
.agency-page .type-unit-more{
  margin-top:0;
  padding:8px 15px;
  border-radius:999px;
  background:rgba(80,87,76,.12);
  border:1px solid var(--line-gold);
  color:#a7b09b !important;
  opacity:1 !important;
  font-size:9.5px;
  letter-spacing:.14em;
  box-shadow:none;
  transition:background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.agency-page .type-unit:hover .type-unit-more{
  background:var(--accent);
  border-color:var(--accent);
  color:#f2f4f8 !important;
  transform:translateX(2px);
}
.agency-page .type-unit-more svg{
  width:13px;
  height:13px;
  stroke-width:2;
}

/* Featured (unità unica orizzontale): prezzo e pill affiancati */
.type-card-featured .type-unit-footer{
  align-items:center;
}

/* Tipologie con più unità (card verticali): prezzo sopra, pill compatta a sinistra */
.agency-page .type-card:not(.type-card-featured) .type-unit-footer{
  flex-direction:column;
  align-items:flex-start;
  gap:9px;
}
.agency-page .type-card:not(.type-card-featured) .type-unit-more{
  align-self:flex-start;
  width:auto;
}

/* --- Responsive: tablet (let existing agency 1080px breakpoint handle the grid) --- */
@media(max-width:1080px){
  .type-card-right{
    grid-column:1;
  }
  .agency-residences .type-card-title,
  .agency-residences h3.type-card-title{
    font-size:clamp(2rem,4.5vw,3.6rem) !important;
  }
}

/* --- Responsive: mobile --- */
@media(max-width:640px){
  .type-card-right{
    padding:16px;
    border-radius:14px;
  }
  .agency-residences .type-card-title,
  .agency-residences h3.type-card-title{
    font-size:clamp(1.8rem,6vw,2.8rem) !important;
  }
  .type-unit-row{
    flex-wrap:wrap;
    gap:8px;
  }
  .type-unit-end{
    flex-direction:row;
    align-items:center;
    gap:12px;
  }
  .agency-page .type-unit-price,
  .agency-page .type-unit-price small{
    text-align:left;
  }
}

/* =================================================================
   FINITURE SECTION — custom components
   ================================================================= */

/* Bagno: ogni voce = [immagine | testo] affiancati */
.fin-bagno-list{
  display:grid;
  gap:1px;
  background:var(--line);
  border-radius:8px;
  overflow:hidden;
  margin-top:4px;
}
.fin-bagno-item{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:0;
  background:rgba(22,24,34,.82);
  align-items:stretch;
}
.fin-bagno-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  aspect-ratio:16/9;
  display:block;
}
.fin-bagno-item > div{
  padding:18px 22px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:6px;
}
.fin-bagno-item b{
  display:block;
  font-family:var(--font-sans);
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
}
.fin-bagno-item p{
  font-size:14px;
  color:var(--muted);
  line-height:1.55;
  margin:0;
}

/* Impianto Elettrico: render grande + grid 3 colonne */
.fin-elettrico-img{
  width:100%;
  aspect-ratio:16/7;
  object-fit:cover;
  border-radius:8px;
  margin-bottom:16px;
  border:1px solid rgba(238,241,246,.10);
  display:block;
}
.fin-elettrico-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border-radius:8px;
  overflow:hidden;
}
.fin-feat-item{
  padding:16px 18px;
  background:rgba(22,24,34,.82);
  display:flex;
  flex-direction:column;
  gap:5px;
}
.fin-feat-item strong{
  font-family:var(--font-sans);
  font-size:9.5px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
}
.fin-feat-item p{
  font-size:13px;
  color:var(--muted);
  line-height:1.5;
  margin:0;
}

/* Pavimenti: immagine campioni a tutta larghezza + testo a 2 colonne */
.fin-pav-panel{
  display:flex;
  flex-direction:column;
  gap:0;
}
.fin-pav-img{
  width:100%;
  display:block;
  border-radius:8px;
  border:1px solid rgba(238,241,246,.10);
  margin-bottom:20px;
  background:var(--surface);
}
.fin-pav-copy{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border-radius:8px;
  overflow:hidden;
}
.fin-pav-copy > div{
  padding:18px 20px;
  background:rgba(22,24,34,.82);
}
.fin-pav-copy b{
  display:block;
  font-family:var(--font-sans);
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:7px;
}
.fin-pav-copy p{
  font-size:14px;
  color:var(--muted);
  line-height:1.55;
  margin:0;
}

/* Serramenti: testo singolo sotto l'immagine */
.fin-serr-text{
  padding:4px 0 0;
}
.fin-serr-text b{
  display:block;
  font-family:var(--font-sans);
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:8px;
}
.fin-serr-text p{
  font-size:15px;
  color:var(--muted);
  line-height:1.65;
  margin:0;
  max-width:58ch;
}

/* =================================================================
   DOTAZIONI — redesign 4-card grid
   ================================================================= */
.dotazioni-section{
  background:
    radial-gradient(circle at 18% 8%, rgba(60,72,130,.16), transparent 36%),
    linear-gradient(180deg,#181b26 0%,#0c0d14 100%);
  color:#f5f7fb;
  padding-block:clamp(68px,9vw,116px);
}

.dot-header{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(36px,5vw,80px);
  align-items:end;
  padding-bottom:clamp(32px,4vw,50px);
  border-bottom:1px solid rgba(245,247,251,.12);
  margin-bottom:clamp(28px,4vw,44px);
}

.dot-header .display-l{
  color:#f5f7fb;
  margin-top:16px;
}

.dot-lead{
  font-size:clamp(1rem,1.35vw,1.18rem);
  color:rgba(245,247,251,.6);
  line-height:1.75;
  padding-top:8px;
}

/* Immagine edificio — panoramica con fade in basso */
.dot-building-wrap{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  margin-bottom:clamp(28px,4vw,44px);
  box-shadow:0 30px 70px rgba(0,0,0,.38);
  border:1px solid rgba(245,247,251,.08);
}

.dot-building-wrap img{
  width:100%;
  display:block;
  aspect-ratio:21/9;
  object-fit:cover;
  object-position:center 40%;
  filter:brightness(1.18) contrast(1.04) saturate(1.04);
}

.dot-building-fade{
  position:absolute;
  bottom:0;left:0;right:0;
  height:48%;
  background:linear-gradient(to bottom,transparent 0%,rgba(16,18,28,.34) 64%,rgba(16,18,28,.72) 100%);
  pointer-events:none;
}

.dot-building-caption{
  position:absolute;
  bottom:16px;
  right:20px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(245,247,251,.45);
}

.dot-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:rgba(80,87,76,.16);
  border-radius:16px;
  overflow:hidden;
}

.dot-card{
  padding:clamp(28px,3vw,44px) clamp(22px,2.6vw,36px);
  background:linear-gradient(180deg,#2e3138 0%,#20232c 100%);
  display:flex;
  flex-direction:column;
  gap:14px;
  transition:background .35s;
  position:relative;
}

.dot-card::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:2px;
  background:linear-gradient(90deg,rgba(80,87,76,.0),rgba(80,87,76,.5) 50%,rgba(80,87,76,.0));
  opacity:0;
  transition:opacity .35s;
}

.dot-card:hover{
  background:#3a3d44;
}
.dot-card:hover::before{
  opacity:1;
}

.dot-card-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
}

.dot-no{
  font-family:var(--font-display);
  font-size:clamp(3.4rem,5vw,5.2rem);
  font-weight:500;
  color:#aab09f;
  line-height:1;
  opacity:.55;
  letter-spacing:-.02em;
}

.dot-tag{
  font-size:9.5px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#aab09f;
  opacity:.7;
  padding:6px 11px;
  border:1px solid rgba(80,87,76,.22);
  border-radius:999px;
  white-space:nowrap;
  margin-top:6px;
  flex-shrink:0;
}

.dot-title{
  font-family:var(--font-display);
  font-size:clamp(1.7rem,2.2vw,2.4rem);
  font-weight:500;
  color:#f5f7fb;
  line-height:1.05;
  letter-spacing:-.02em;
}

.dot-body{
  font-size:14.5px;
  color:rgba(245,247,251,.58);
  line-height:1.72;
  flex:1;
}

/* Responsive */
@media(max-width:980px){
  .dot-header{
    grid-template-columns:1fr;
    gap:22px;
  }
  .dot-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(max-width:560px){
  .dot-grid{
    grid-template-columns:1fr;
    border-radius:12px;
  }
}

/* Responsive finiture */
@media(max-width:760px){
  .fin-bagno-item{
    grid-template-columns:120px 1fr;
  }
  .fin-elettrico-grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:480px){
  .fin-bagno-item{
    grid-template-columns:1fr;
  }
  .fin-bagno-item img{
    aspect-ratio:16/7;
  }
  .fin-elettrico-grid{
    grid-template-columns:1fr;
  }
}

/* Final responsive polish for the redesigned commercial sections */
@media(max-width:1080px){
  .agency-residences .type-card{
    grid-template-columns:1fr;
  }
}

@media(max-width:980px){
  .materials-hero,
  .materials-grid{
    grid-template-columns:1fr;
  }
  .materials-intro{
    max-width:none;
  }
}

@media(max-width:760px){
  .agency-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:148px;
  }
  .material-panel{
    padding:22px;
    border-radius:14px;
  }
  .fin-pav-copy{
    grid-template-columns:1fr;
  }
}

@media(max-width:520px){
  .agency-gallery{
    grid-auto-rows:136px;
  }
  .materials-main{
    padding-inline:16px;
  }
  .type-card-media-frame{
    padding:10px;
  }
}

/* =================================================================
   MOBILE HEADER + NAV — redesign completo
   ================================================================= */

@media(max-width:980px){

  /* Header pill — position esplicito per evitare problemi su Safari/iOS */
  .site-header{
    position:fixed;
    top:12px;
    left:12px;
    right:12px;
    bottom:auto;
    width:auto;
    transform:none;
    border-radius:999px;
  }

  .header-inner,
  .site-header.scrolled .header-inner{
    height:62px;
    padding:8px 10px 8px 16px;
  }

  /* Logo badge */
  .brand-mark,
  .site-header .brand-mark{
    width:42px;
    height:42px;
    font-size:14px;
  }

  /* Hamburger button — area più grande, sfondo sottile */
  .nav-toggle{
    display:flex;
    width:42px;
    height:42px;
    border-radius:12px;
    background:rgba(245,247,251,.14);
    transition:background .2s;
  }
  .nav-toggle:hover,
  .nav-toggle.open{
    background:rgba(245,247,251,.22);
  }
  .nav-toggle span{
    background:currentColor;
    width:20px;
    height:1.5px;
  }

  /* Dropdown menu */
  .nav{
    position:fixed;
    inset:82px 12px auto 12px;
    flex-direction:column;
    gap:0;
    padding:8px;
    border-radius:20px;
    background:var(--card);
    border:1px solid rgba(238,241,246,.08);
    box-shadow:0 24px 80px rgba(16,18,28,.22),0 4px 16px rgba(16,18,28,.08);
    border-bottom:0;
    transform:translateY(-16px);
    opacity:0;
    pointer-events:none;
    transition:transform .32s cubic-bezier(.2,.7,.2,1),opacity .28s ease;
    align-items:stretch;
  }

  .nav.open{
    transform:none;
    opacity:1;
    pointer-events:auto;
  }

  /* Link voce */
  .nav a:not(.nav-cta){
    display:block;
    padding:15px 18px;
    border-radius:12px;
    font-family:var(--font-sans);
    font-size:14px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--text) !important;
    border-bottom:0;
    transition:background .18s;
  }
  .nav a:not(.nav-cta):hover,
  .nav a:not(.nav-cta):active{
    background:rgba(238,241,246,.06);
  }
  .nav a:not(.nav-cta)::after{
    display:none;
  }

  /* Divisore sottile prima del CTA */
  .nav-cta{
    display:block;
    margin:8px 6px 4px;
    padding:15px 20px;
    border-radius:12px;
    text-align:center;
    background:#252a50 !important;
    color:#f5f7fb !important;
    font-size:12px;
    font-weight:800;
    letter-spacing:.1em;
    text-transform:uppercase;
    border:0;
    box-shadow:0 4px 24px rgba(16,18,28,.22);
    border-top:1px solid rgba(238,241,246,.08);
    position:relative;
  }

  .nav-cta::before{
    content:"";
    position:absolute;
    top:-9px;left:6px;right:6px;
    height:1px;
    background:rgba(238,241,246,.12);
  }
}


@media(max-width:600px){
  .agency-residences .type-unit-list:has(.type-unit:only-child) .type-unit{
    flex-direction:column;
  }
  .agency-residences .type-unit-list:has(.type-unit:only-child) .type-unit-photo{
    flex:none;
    width:100%;
    aspect-ratio:16/9;
  }
}

@media(max-width:760px){
  .agency-residences .agency-section-head{
    grid-template-columns:1fr;
    grid-template-rows:auto;
  }
  .agency-residences .agency-section-head .eyebrow,
  .agency-residences .agency-section-head h2,
  .agency-residences .agency-section-head .body{
    grid-column:1;
    grid-row:auto;
  }
  .agency-residences .agency-section-head .body{
    margin-top:14px;
  }
}

/* =====================================================
   QUALITY V3 — pilastri orizzontali
   ===================================================== */
.qv3{
  display:flex;
  flex-direction:column;
  gap:0;
}

.qv3-head{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:end;
  column-gap:clamp(36px,6vw,100px);
  padding-bottom:clamp(28px,3.5vw,48px);
  border-bottom:1px solid rgba(238,241,246,.14);
}

.qv3-head .eyebrow{
  grid-column:1;
  align-self:start;
  padding-top:6px;
}

.qv3-title{
  grid-column:2;
  font-family:var(--font-display);
  font-size:clamp(3rem,5vw,5.6rem);
  font-weight:500;
  line-height:.92;
  letter-spacing:-.03em;
  color:var(--text);
  margin:0;
}

.qv3-pillars{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(10px,1.2vw,16px);
  margin-top:clamp(28px,3.5vw,44px);
}

.qv3-pillar{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:clamp(24px,2.8vw,38px) clamp(20px,2.2vw,30px) clamp(22px,2.6vw,34px);
  border:1px solid rgba(238,241,246,.09);
  border-top:2px solid var(--accent);
  border-radius:12px;
  background:linear-gradient(160deg,rgba(20,22,32,.98) 0%,rgba(12,14,22,.9) 100%);
  box-shadow:0 4px 22px rgba(16,18,28,.07);
}

/* Ghost number watermark */
.qv3-pillar::before{
  position:absolute;
  bottom:-10px;
  right:2px;
  font-family:var(--font-display);
  font-size:clamp(76px,9vw,114px);
  font-weight:600;
  line-height:1;
  color:rgba(238,241,246,.05);
  pointer-events:none;
  user-select:none;
  letter-spacing:-.04em;
}
.qv3-pillar:nth-child(1)::before{content:"01"}
.qv3-pillar:nth-child(2)::before{content:"02"}
.qv3-pillar:nth-child(3)::before{content:"03"}
.qv3-pillar:nth-child(4)::before{content:"04"}

.qv3-no{
  display:block;
  font-size:10px;
  font-weight:900;
  letter-spacing:.22em;
  color:var(--accent);
  margin-bottom:3px;
}

.qv3-tag{
  display:block;
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  opacity:.72;
  margin-bottom:clamp(18px,2vw,26px);
}

.qv3-h{
  font-family:var(--font-display);
  font-size:clamp(1.5rem,1.9vw,2.1rem);
  font-weight:500;
  line-height:1.04;
  letter-spacing:-.02em;
  color:var(--text);
  margin:0 0 12px;
  flex-shrink:0;
  position:relative;
  z-index:1;
}

.qv3-p{
  font-size:clamp(.86rem,.96vw,.95rem);
  line-height:1.74;
  color:var(--muted);
  margin:0;
  flex:1;
  position:relative;
  z-index:1;
}

@media(max-width:900px){
  .qv3-pillars{
    grid-template-columns:repeat(2,1fr);
  }
  .qv3-head{
    grid-template-columns:1fr;
  }
  .qv3-head .eyebrow,
  .qv3-title{
    grid-column:1;
  }
}

@media(max-width:560px){
  .qv3-pillars{
    grid-template-columns:1fr;
  }
}

/* ---- Tocchi marrone cioccolato ---- */
:root .split-media-wrap::before{border-color:rgba(87,83,88,.5)}
:root .proof-strip{box-shadow:0 0 0 1px rgba(87,83,88,.18),0 24px 78px rgba(11,12,18,.4)}
:root .agency-residences::before{
  background:radial-gradient(ellipse 70% 50% at 20% 80%,rgba(37,42,80,.18),transparent 60%)
}
:root .footer{border-top:1px solid rgba(87,83,88,.25)}

/* =================================================================
   LEGGIBILITÀ — micro-label (eyebrow / kicker / storia) su sfondo scuro
   Uniforma tutte le etichette uppercase che usavano --accent / --accent-2
   (troppo scure sul nero) verso il sage leggibile già usato nell'hero.
   ================================================================= */
html[data-theme="dark"] .eyebrow,
html[data-theme="dark"] .section-kicker,
html[data-theme="dark"] .section:not(.force-dark) .eyebrow,
html[data-theme="dark"] .force-dark .eyebrow,
html[data-theme="dark"] .eyebrow-light,
html[data-theme="dark"] .force-dark .eyebrow-light{
  color:#a7b09b;
}
html[data-theme="dark"] .type-card-kicker,
html[data-theme="dark"] .type-card-label,
html[data-theme="dark"] .type-card-copy > .type-card-kicker,
html[data-theme="dark"] .type-unit-storia{
  color:#a7b09b;
  opacity:1;
}
html[data-theme="dark"] .agency-residences .type-card-cap{
  color:rgba(242,244,248,.55);
}
/* Altre micro-label uppercase che usavano --accent (finiture, qualità,
   location, footer, drawer): stesso sage leggibile. */
html[data-theme="dark"] .qv3-no,
html[data-theme="dark"] .fin-pav-copy b,
html[data-theme="dark"] .fin-bagno-item b,
html[data-theme="dark"] .fin-feat-item strong,
html[data-theme="dark"] .fin-serr-text b,
html[data-theme="dark"] .loc-list b,
html[data-theme="dark"] .footer-cols .fc-k,
html[data-theme="dark"] .cont-credits .cc-k,
html[data-theme="dark"] .drw-badge,
html[data-theme="dark"] .tech-tag{
  color:#a7b09b;
}

/* =================================================================
   GALLERY — mosaico a rettangolo perfetto (responsive)
   11 foto disposte per riempire completamente la griglia, senza vuoti.
   Desktop 6×4 · Tablet 4×5 · Mobile 2 colonne (2×6).
   ================================================================= */
.agency-gallery{
  grid-template-columns:repeat(6,minmax(0,1fr));
  grid-auto-rows:clamp(128px,12vw,184px);
  grid-auto-flow:row;
}

/* Desktop: 6 colonne × 4 righe = 24 celle */
.agency-gallery > .gallery-tile:nth-child(1){ grid-column:1/3; grid-row:1/3; }
.agency-gallery > .gallery-tile:nth-child(2){ grid-column:3/5; grid-row:1/2; }
.agency-gallery > .gallery-tile:nth-child(3){ grid-column:5/7; grid-row:1/2; }
.agency-gallery > .gallery-tile:nth-child(4){ grid-column:3/4; grid-row:2/3; }
.agency-gallery > .gallery-tile:nth-child(5){ grid-column:4/5; grid-row:2/3; }
.agency-gallery > .gallery-tile:nth-child(6){ grid-column:5/7; grid-row:2/3; }
.agency-gallery > .gallery-tile:nth-child(7){ grid-column:1/4; grid-row:3/5; }
.agency-gallery > .gallery-tile:nth-child(8){ grid-column:4/6; grid-row:3/4; }
.agency-gallery > .gallery-tile:nth-child(9){ grid-column:6/7; grid-row:3/5; }
.agency-gallery > .gallery-tile:nth-child(10){ grid-column:4/5; grid-row:4/5; }
.agency-gallery > .gallery-tile:nth-child(11){ grid-column:5/6; grid-row:4/5; }

/* Tablet: 4 colonne × 5 righe = 20 celle */
@media(max-width:900px){
  .agency-gallery{
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-rows:clamp(120px,18vw,170px);
  }
  .agency-gallery > .gallery-tile:nth-child(1){ grid-column:1/3; grid-row:1/3; }
  .agency-gallery > .gallery-tile:nth-child(2){ grid-column:3/4; grid-row:1/2; }
  .agency-gallery > .gallery-tile:nth-child(3){ grid-column:4/5; grid-row:1/2; }
  .agency-gallery > .gallery-tile:nth-child(4){ grid-column:3/5; grid-row:2/3; }
  .agency-gallery > .gallery-tile:nth-child(5){ grid-column:1/3; grid-row:3/4; }
  .agency-gallery > .gallery-tile:nth-child(6){ grid-column:3/5; grid-row:3/5; }
  .agency-gallery > .gallery-tile:nth-child(7){ grid-column:1/2; grid-row:4/5; }
  .agency-gallery > .gallery-tile:nth-child(8){ grid-column:2/3; grid-row:4/5; }
  .agency-gallery > .gallery-tile:nth-child(9){ grid-column:1/3; grid-row:5/6; }
  .agency-gallery > .gallery-tile:nth-child(10){ grid-column:3/4; grid-row:5/6; }
  .agency-gallery > .gallery-tile:nth-child(11){ grid-column:4/5; grid-row:5/6; }
}

/* Mobile: 2 colonne, prima foto a tutta larghezza, le altre 1×1 = 2×6 */
@media(max-width:600px){
  .agency-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:clamp(130px,42vw,168px);
    gap:6px;
  }
  .agency-gallery > .gallery-tile{
    grid-column:auto !important;
    grid-row:auto !important;
  }
  .agency-gallery > .gallery-tile:nth-child(1){
    grid-column:1 / -1 !important;
  }
}
