
:root{--bg:#f5f2ec;--ink:#171614;--muted:#716b62;--line:#d9d1c5;--stone:#cfc7ba;--dark:#11110f;--gold:#9a7a48}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,Arial,sans-serif}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.nav{position:fixed;z-index:20;top:0;left:0;right:0;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:rgba(245,242,236,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(0,0,0,.06)}.brand{font-family:Georgia,serif;letter-spacing:.14em;font-size:18px}.menu{display:flex;gap:24px;font-size:12px;letter-spacing:.14em;text-transform:uppercase}.lang{border:1px solid var(--line);padding:8px 10px}.hero{min-height:96vh;display:grid;align-items:end;position:relative;background:#111;overflow:hidden}.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.00),rgba(0,0,0,.12))}.hero .copy{position:relative;z-index:1;color:#fff;padding:0 7vw 9vh;max-width:1000px}.eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600}.hero .eyebrow{color:#e5d2ae}.h1{font-family:Georgia,serif;font-size:clamp(46px,7vw,104px);line-height:.95;margin:18px 0;font-weight:400}.lead{font-size:clamp(18px,2vw,25px);line-height:1.45;max-width:780px;color:rgba(255,255,255,.85)}.section{padding:110px 7vw}.grid2{display:grid;grid-template-columns:1fr 1.1fr;gap:70px;align-items:start}.title{font-family:Georgia,serif;font-size:clamp(34px,4vw,62px);line-height:1.02;margin:10px 0 26px;font-weight:400}.text{font-size:18px;line-height:1.75;color:var(--muted)}.btn{display:inline-block;border:1px solid var(--ink);padding:15px 24px;text-transform:uppercase;letter-spacing:.13em;font-size:12px;margin-top:25px}.btn.dark{border-color:#fff;color:#fff}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{position:relative;overflow:hidden;background:#ddd;min-height:420px}.card img{width:100%;height:100%;object-fit:cover;transition:.8s}.card:hover img{transform:scale(1.04)}.card .cap{position:absolute;left:0;right:0;bottom:0;color:#fff;padding:28px;background:linear-gradient(transparent,rgba(0,0,0,.72))}.cap h3{font-family:Georgia,serif;font-size:28px;margin:0 0 8px}.cap p{margin:0;color:#ddd;text-transform:uppercase;letter-spacing:.13em;font-size:11px}.darksec{background:var(--dark);color:#fff}.darksec .text{color:#c9c4ba}.numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;border-top:1px solid rgba(255,255,255,.18)}.num{padding-top:34px}.num strong{font-family:Georgia,serif;font-size:54px;font-weight:400}.num span{display:block;margin-top:8px;color:#bdb5a7}.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.tl{border-top:1px solid var(--line);padding-top:24px}.tl strong{font-family:Georgia,serif;font-size:42px;font-weight:400}.tl p{color:var(--muted);line-height:1.55}.strip{display:grid;grid-template-columns:1.2fr .8fr;gap:0;background:#e7e0d5}.strip img{height:620px;width:100%;object-fit:cover}.strip .inside{padding:80px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service{border:1px solid var(--line);padding:32px;min-height:220px;background:rgba(255,255,255,.25)}.service h3{font-family:Georgia,serif;font-size:28px;font-weight:400}.gallery{columns:3 300px;column-gap:16px}.gallery img{break-inside:avoid;margin-bottom:16px;width:100%;background:#ddd}.contact{display:grid;grid-template-columns:1fr 1fr;gap:40px}.form input,.form textarea{width:100%;padding:16px;margin-bottom:12px;border:1px solid var(--line);background:#fff;font:inherit}.form button{width:100%;padding:16px;background:var(--ink);color:#fff;border:0;text-transform:uppercase;letter-spacing:.13em}.footer{padding:55px 7vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:14px}.pagehead{padding:160px 7vw 70px}.clients{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.client{border:1px solid var(--line);padding:24px;text-align:center;text-transform:uppercase;letter-spacing:.11em;font-size:12px;background:#fff}@media(max-width:900px){.menu{display:none}.grid2,.strip,.contact{grid-template-columns:1fr}.projects,.services,.numbers,.timeline,.clients{grid-template-columns:1fr}.section{padding:72px 24px}.nav{padding:0 20px}.footer{display:block}.card{min-height:340px}.strip img{height:420px}}


/* Pagina Instagram */
.instagram-head{
    padding-bottom:40px;
}
.instagram-head .text{
    max-width:760px;
}
.instagram-section{
    padding-top:30px;
}
.ig-grid{
    columns:4 240px;
    column-gap:16px;
}
.ig-card{
    display:block;
    break-inside:avoid;
    margin-bottom:16px;
    overflow:hidden;
    background:#ddd;
}
.ig-card img{
    width:100%;
    transition:transform .7s ease, filter .7s ease;
}
.ig-card:hover img{
    transform:scale(1.035);
    filter:brightness(.92);
}
.ig-call{
    background:#e7e0d5;
}
.ig-call .title{
    margin-bottom:10px;
}
@media(max-width:900px){
    .ig-grid{
        columns:1;
    }
}


/* Pagina Instagram - gallery da assets/Instagram */
.instagram-head{padding-bottom:40px;}
.instagram-head .text{max-width:760px;}
.instagram-section{padding-top:30px;}
.ig-grid{columns:4 250px;column-gap:16px;}
.ig-card{display:block;break-inside:avoid;margin-bottom:16px;overflow:hidden;background:#ddd;}
.ig-card img{display:block;width:100%;height:auto;transition:transform .7s ease,filter .7s ease;}
.ig-card:hover img{transform:scale(1.035);filter:brightness(.92);}
.ig-call{background:#e7e0d5;}
.ig-call .title{margin-bottom:10px;}
@media(max-width:900px){.ig-grid{columns:1;}}


/* REV03 SAFE CINEMATIC - non rimuove né sostituisce immagini esistenti */
.cinematic-hero-video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    z-index:0;
    filter: brightness(1.08) saturate(1.04) contrast(1.02);
    transform:scale(1.06);
    transition:transform .25s ease-out;
    pointer-events:none;
}
.cinematic-hero-video-overlay{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
        linear-gradient(to bottom, rgba(0,0,0,.04), rgba(0,0,0,.28)),
        radial-gradient(circle at 50% 42%, rgba(255,255,255,.12), transparent 42%);
}
section[class*="hero"],
section[class*="Hero"]{
    position:relative;
    overflow:hidden;
}
section[class*="hero"] > *:not(.cinematic-hero-video):not(.cinematic-hero-video-overlay),
section[class*="Hero"] > *:not(.cinematic-hero-video):not(.cinematic-hero-video-overlay){
    position:relative;
    z-index:2;
}
.cinematic-reveal{
    opacity:0;
    transform:translateY(36px);
    transition:opacity .95s cubic-bezier(.16,1,.3,1), transform .95s cubic-bezier(.16,1,.3,1);
}
.cinematic-reveal.cinematic-visible{
    opacity:1;
    transform:translateY(0);
}
.nav{
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}


/* REV03 HERO VIDEO LAYER FIX */
body.home .hero,
body.home section.hero,
body.home .home-hero,
body.home section[class*="hero"]:first-of-type,
body.home section[class*="Hero"]:first-of-type,
body:not(.instagram-page) section[class*="hero"]:first-of-type,
body:not(.instagram-page) section[class*="Hero"]:first-of-type{
    position:relative !important;
    overflow:hidden !important;
}

/* video layer: sotto testo, sopra eventuale background statico */
.cinematic-hero-video{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    z-index:1 !important;
    opacity:1 !important;
    filter: brightness(1.08) saturate(1.04) contrast(1.02) !important;
    transform:scale(1.045) !important;
    pointer-events:none !important;
}

/* overlay cinematico sopra video */
.cinematic-hero-video-overlay{
    position:absolute !important;
    inset:0 !important;
    z-index:2 !important;
    pointer-events:none !important;
    background:
        linear-gradient(to bottom, rgba(0,0,0,.00), rgba(0,0,0,.18)),
        radial-gradient(circle at 50% 42%, rgba(255,255,255,.08), transparent 38%) !important;
}

/* abbassa/nasconde SOLO l'immagine della prima hero in homepage quando il video esiste */
section[class*="hero"]:first-of-type .hero-bg,
section[class*="Hero"]:first-of-type .hero-bg,
section[class*="hero"]:first-of-type > img:first-of-type,
section[class*="Hero"]:first-of-type > img:first-of-type{
    opacity:0 !important;
    z-index:0 !important;
    pointer-events:none !important;
}

/* se l'immagine era come background CSS, il video la copre comunque */
section[class*="hero"]:first-of-type > *:not(.cinematic-hero-video):not(.cinematic-hero-video-overlay),
section[class*="Hero"]:first-of-type > *:not(.cinematic-hero-video):not(.cinematic-hero-video-overlay){
    position:relative !important;
    z-index:3 !important;
}

/* mobile: mantieni video, ma senza parallax aggressiva */
@media(max-width:900px){
    .cinematic-hero-video{
        transform:scale(1.02) !important;
    }
}


/* FINAL HERO PROPORTION FIX */
section[class*="hero"]:first-of-type,
section[class*="Hero"]:first-of-type{
    min-height:72vh !important;
    height:72vh !important;
    max-height:72vh !important;
    overflow:hidden !important;
}

/* cinematic video proper sizing */
.cinematic-hero-video{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center 78% !important;
    transform:scale(1.02) !important;
    filter: brightness(1.08) saturate(1.04) contrast(1.02) !important;
}

/* ultrawide monitors */
@media(min-width:1600px){
    .cinematic-hero-video{
        object-position:center 82% !important;
        transform:scale(1) !important;
    }
}

/* laptops */
@media(min-width:900px) and (max-width:1599px){
    .cinematic-hero-video{
        object-position:center 76% !important;
    }
}

/* mobile */
@media(max-width:899px){
    section[class*="hero"]:first-of-type,
    section[class*="Hero"]:first-of-type{
        min-height:88vh !important;
        height:88vh !important;
        max-height:88vh !important;
    }

    .cinematic-hero-video{
        object-position:center center !important;
        transform:scale(1.04) !important;
    }
}


/* REV04 PREMIUM CURSOR + MICROINTERACTIONS */
@media (pointer:fine) {
    body {
        cursor:none;
    }

    a, button, .btn, .project-card, .ig-card, img {
        cursor:none !important;
    }

    .tg2-cursor {
        position:fixed;
        left:0;
        top:0;
        width:14px;
        height:14px;
        border-radius:50%;
        background:rgba(245,241,234,.92);
        transform:translate(-50%,-50%);
        pointer-events:none;
        z-index:99999;
        mix-blend-mode:difference;
        transition:
            width .22s ease,
            height .22s ease,
            background .22s ease,
            border .22s ease,
            opacity .22s ease;
    }

    .tg2-cursor-ring {
        position:fixed;
        left:0;
        top:0;
        width:42px;
        height:42px;
        border-radius:50%;
        border:1px solid rgba(245,241,234,.42);
        transform:translate(-50%,-50%);
        pointer-events:none;
        z-index:99998;
        mix-blend-mode:difference;
        transition:
            width .28s ease,
            height .28s ease,
            border-color .28s ease,
            opacity .28s ease;
    }

    body.tg2-cursor-hover .tg2-cursor {
        width:8px;
        height:8px;
        background:rgba(245,241,234,1);
    }

    body.tg2-cursor-hover .tg2-cursor-ring {
        width:72px;
        height:72px;
        border-color:rgba(245,241,234,.78);
    }
}

/* immagini più vive, senza rompere layout */
.project-card,
.ig-card,
.card,
figure,
.section img,
.project img {
    transition:
        transform .75s cubic-bezier(.16,1,.3,1),
        filter .75s cubic-bezier(.16,1,.3,1),
        opacity .75s cubic-bezier(.16,1,.3,1);
}

.project-card:hover,
.card:hover,
.ig-card:hover {
    transform:translateY(-6px);
}

.project-card img,
.ig-card img,
.card img,
figure img {
    transition:
        transform 1.1s cubic-bezier(.16,1,.3,1),
        filter 1.1s cubic-bezier(.16,1,.3,1);
}

.project-card:hover img,
.ig-card:hover img,
.card:hover img,
figure:hover img {
    transform:scale(1.035);
    filter:brightness(.92) contrast(1.03);
}

/* bottoni più premium */
.btn,
button,
input[type="submit"],
a[class*="btn"],
a[class*="button"] {
    transition:
        transform .35s cubic-bezier(.16,1,.3,1),
        background .35s ease,
        color .35s ease,
        border-color .35s ease,
        opacity .35s ease,
        box-shadow .35s ease;
}

.btn:hover,
button:hover,
input[type="submit"]:hover,
a[class*="btn"]:hover,
a[class*="button"]:hover {
    transform:translateY(-3px);
    box-shadow:0 18px 38px rgba(0,0,0,.18);
}

/* menu: underline fluido */
.nav a,
.menu a,
header a {
    position:relative;
    transition:opacity .3s ease, color .3s ease;
}

.nav a:not(.brand)::after,
.menu a:not(.brand)::after,
header a:not(.brand)::after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:-7px;
    height:1px;
    background:currentColor;
    transform:scaleX(0);
    transform-origin:right;
    transition:transform .35s cubic-bezier(.16,1,.3,1);
    opacity:.55;
}

.nav a:not(.brand):hover::after,
.menu a:not(.brand):hover::after,
header a:not(.brand):hover::after {
    transform:scaleX(1);
    transform-origin:left;
}

/* reveal cinematografico */
.tg2-reveal {
    opacity:0;
    transform:translateY(34px);
    transition:
        opacity .95s cubic-bezier(.16,1,.3,1),
        transform .95s cubic-bezier(.16,1,.3,1);
}

.tg2-reveal.tg2-visible {
    opacity:1;
    transform:translateY(0);
}

.tg2-reveal:nth-child(2n) {
    transition-delay:.06s;
}

.tg2-reveal:nth-child(3n) {
    transition-delay:.12s;
}

/* piccoli dettagli di fluidità */
html {
    scroll-behavior:smooth;
}

.nav,
header {
    transition:
        background .35s ease,
        backdrop-filter .35s ease,
        -webkit-backdrop-filter .35s ease,
        box-shadow .35s ease;
}

body.tg2-scrolled .nav,
body.tg2-scrolled header {
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    box-shadow:0 12px 34px rgba(0,0,0,.10);
}

/* rispetta utenti che preferiscono meno movimento */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration:.001ms !important;
        animation-iteration-count:1 !important;
        scroll-behavior:auto !important;
        transition-duration:.001ms !important;
    }

    body {
        cursor:auto;
    }

    .tg2-cursor,
    .tg2-cursor-ring {
        display:none !important;
    }
}

@media (max-width:900px) {
    body {
        cursor:auto;
    }

    .tg2-cursor,
    .tg2-cursor-ring {
        display:none !important;
    }

    .project-card:hover,
    .card:hover,
    .ig-card:hover {
        transform:none;
    }
}


/* REV05 PREMIUM DETAILS */

/* cinematic grain */
body::before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:9999;
    opacity:.045;
    background-image:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.9) 0 1px, transparent 1px),
        radial-gradient(circle at 80% 70%, rgba(255,255,255,.55) 0 1px, transparent 1px);
    background-size:3px 3px,5px 5px;
    mix-blend-mode:soft-light;
}

/* page transitions */
body{
    opacity:0;
    animation:tg2FadeIn .9s cubic-bezier(.16,1,.3,1) forwards;
}

@keyframes tg2FadeIn{
    from{
        opacity:0;
        transform:translateY(10px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

/* smooth outgoing fade */
body.tg2-page-out{
    opacity:0 !important;
    transform:translateY(8px);
    transition:
        opacity .42s cubic-bezier(.16,1,.3,1),
        transform .42s cubic-bezier(.16,1,.3,1);
}

/* hero parallax */
.hero-content h1,
.hero-title,
.pagehead .title{
    will-change:transform;
    transition:transform .08s linear;
}

/* magnetic buttons */
.btn,
button,
a[class*="btn"],
a[class*="button"]{
    will-change:transform;
}

/* luxury hover glow */
.btn:hover,
button:hover,
a[class*="btn"]:hover,
a[class*="button"]:hover{
    box-shadow:
        0 18px 38px rgba(0,0,0,.18),
        0 0 22px rgba(255,255,255,.06);
}

/* subtle image depth */
.project-card img,
.ig-card img,
.card img,
figure img{
    backface-visibility:hidden;
    transform:translateZ(0);
}

/* soft section rhythm */
.section,
.pagehead,
.fullscreen-statement,
.stats-section{
    transition:
        transform .5s ease,
        opacity .5s ease;
}

/* top progress bar */
.tg2-progress{
    position:fixed;
    left:0;
    top:0;
    height:2px;
    width:0%;
    z-index:999999;
    background:linear-gradient(90deg, rgba(255,255,255,.85), rgba(255,255,255,.35));
    box-shadow:0 0 12px rgba(255,255,255,.2);
    transition:width .12s linear;
}

@media(max-width:900px){
    body::before{
        opacity:.025;
    }
}


/* REV06 CURSOR FIX */
@media (pointer:fine){
  body{cursor:none;}
  a,button,.btn,.project-card,.ig-card,.card,input,textarea,select{cursor:none!important;}
  .tg2-cursor,.tg2-cursor-ring{
    position:fixed!important;
    pointer-events:none!important;
    z-index:2147483647!important;
    mix-blend-mode:normal!important;
    opacity:1!important;
    visibility:visible!important;
  }
  .tg2-cursor{
    width:9px!important;height:9px!important;border-radius:50%!important;
    background:#d8b178!important;
    border:1px solid rgba(255,255,255,.95)!important;
    box-shadow:0 0 0 1px rgba(0,0,0,.3),0 0 18px rgba(216,177,120,.48)!important;
    transform:translate(-50%,-50%)!important;
  }
  .tg2-cursor-ring{
    width:38px!important;height:38px!important;border-radius:50%!important;
    border:1px solid rgba(216,177,120,.78)!important;
    background:rgba(255,255,255,.025)!important;
    box-shadow:0 0 0 1px rgba(0,0,0,.16),0 0 22px rgba(216,177,120,.22)!important;
    transform:translate(-50%,-50%)!important;
  }
  body.tg2-cursor-hover .tg2-cursor{background:#fff!important;border-color:#d8b178!important;}
  body.tg2-cursor-hover .tg2-cursor-ring{width:64px!important;height:64px!important;border-color:#d8b178!important;}
}

/* REV06 HERITAGE CLASSIC TIMELINE */
.heritage-classic-page{background:#f4efe7;color:#171513;}
.heritage-classic-hero{
  min-height:72vh;padding:180px 8vw 90px;display:flex;flex-direction:column;justify-content:flex-end;
  background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(226,216,202,.94)),#f4efe7;
  border-bottom:1px solid rgba(23,21,19,.12);
}
.heritage-classic-kicker,.heritage-timeline-intro span,.heritage-values span{
  font-size:12px;letter-spacing:4px;text-transform:uppercase;color:#9b784b;
}
.heritage-classic-hero h1{
  max-width:1100px;margin:22px 0 28px;font-size:clamp(44px,7vw,104px);
  line-height:.96;letter-spacing:-4px;font-weight:300;color:#171513;
}
.heritage-classic-hero p{max-width:760px;color:#514940;font-size:20px;line-height:1.8;}
.heritage-timeline-section{padding:120px 8vw;background:#f4efe7;}
.heritage-timeline-intro{display:grid;grid-template-columns:.55fr 1.4fr .8fr;gap:60px;align-items:start;margin-bottom:90px;}
.heritage-timeline-intro h2{margin:0;font-size:clamp(36px,5vw,76px);line-height:1;letter-spacing:-3px;font-weight:300;}
.heritage-timeline-intro p{margin:0;color:#645b51;line-height:1.8;font-size:18px;}
.heritage-timeline{position:relative;max-width:1120px;margin:0 auto;}
.heritage-timeline:before{content:"";position:absolute;left:170px;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent,rgba(23,21,19,.35),transparent);}
.heritage-step{display:grid;grid-template-columns:140px 60px 1fr;padding:0 0 72px;position:relative;}
.heritage-year{font-family:Georgia,"Times New Roman",serif;font-size:28px;color:#9b784b;padding-top:4px;}
.heritage-dot{width:13px;height:13px;border-radius:50%;background:#9b784b;border:5px solid #f4efe7;box-shadow:0 0 0 1px rgba(155,120,75,.35);margin-left:24px;margin-top:10px;position:relative;z-index:2;}
.heritage-copy{padding:0 0 0 42px;max-width:720px;}
.heritage-copy h3{margin:0 0 14px;font-size:clamp(28px,3vw,46px);font-weight:300;letter-spacing:-1.6px;}
.heritage-copy p{color:#5c5349;line-height:1.8;font-size:18px;margin:0;}
.heritage-values{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(23,21,19,.13);}
.heritage-values>div{background:#ebe3d7;padding:70px 48px;}
.heritage-values h3{font-size:36px;font-weight:300;margin:18px 0;letter-spacing:-1px;}
.heritage-values p{color:#5f564d;line-height:1.75;font-size:17px;}
@media(max-width:900px){
  .heritage-classic-hero{padding:140px 7vw 70px;}
  .heritage-timeline-intro{grid-template-columns:1fr;gap:24px;}
  .heritage-timeline:before{left:9px;}
  .heritage-step{grid-template-columns:1fr;padding-left:38px;padding-bottom:58px;}
  .heritage-year{font-size:22px;margin-bottom:12px;}
  .heritage-dot{position:absolute;left:-21px;top:42px;margin:0;}
  .heritage-copy{padding:0;}
  .heritage-values{grid-template-columns:1fr;}
  .heritage-values>div{padding:48px 7vw;}
}

/* REV07 HERITAGE PHOTOS */
.heritage-photo-hero{position:relative;overflow:hidden;color:#f7f1e8;background:#17130f}
.heritage-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center 55%;opacity:.32;filter:grayscale(.25) contrast(1.08) brightness(.82);transform:scale(1.04)}
.heritage-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,10,8,.88),rgba(12,10,8,.55),rgba(12,10,8,.28)),linear-gradient(to bottom,rgba(12,10,8,.15),rgba(12,10,8,.78))}
.heritage-hero-content{position:relative;z-index:2}
.heritage-photo-hero h1,.heritage-photo-hero p{color:#f7f1e8}.heritage-photo-hero p{color:#ded2c3}
.heritage-visual-intro{display:grid;grid-template-columns:.95fr 1.05fr;gap:7vw;padding:110px 8vw;background:#eee6da;align-items:center}
.heritage-visual-intro figure{margin:0;height:560px;overflow:hidden}.heritage-visual-intro img{width:100%;height:100%;object-fit:cover;filter:sepia(.08) contrast(1.03)}
.heritage-visual-intro span{font-size:12px;letter-spacing:4px;text-transform:uppercase;color:#9b784b}
.heritage-visual-intro h2{font-size:clamp(38px,5.4vw,82px);line-height:1;letter-spacing:-3px;font-weight:300;margin:22px 0;color:#171513}
.heritage-visual-intro p{color:#5c5349;font-size:19px;line-height:1.85;max-width:680px}
.heritage-photo-step{grid-template-columns:140px 60px minmax(0,1fr) 340px;align-items:start}
.heritage-step-image{margin:0 0 0 48px;height:230px;overflow:hidden;background:#ded4c7}
.heritage-step-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(.15) contrast(1.02);transition:transform .9s cubic-bezier(.16,1,.3,1),filter .9s ease}
.heritage-step:hover .heritage-step-image img{transform:scale(1.045);filter:grayscale(0) contrast(1.04)}
.heritage-gallery-band{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:0 8vw 120px;background:#f4efe7;align-items:start}
.heritage-gallery-band figure{margin:0;height:420px;overflow:hidden;background:#ded4c7}.heritage-gallery-band figure:nth-child(2){height:420px;margin-top:0}
.heritage-gallery-band img{width:100%;height:100%;object-fit:cover;filter:sepia(.08) contrast(1.02)}
@media(max-width:1000px){.heritage-visual-intro{grid-template-columns:1fr;padding:80px 7vw}.heritage-visual-intro figure{height:420px}.heritage-photo-step{grid-template-columns:1fr;padding-left:38px}.heritage-step-image{margin:28px 0 0;height:260px}.heritage-gallery-band{grid-template-columns:1fr;padding:0 7vw 80px}.heritage-gallery-band figure,.heritage-gallery-band figure:nth-child(2){height:360px;margin-top:0}}


/* REV08 FOOTER DREAM COUNTER */
.tg2-legal-footer{
    padding:26px 8vw 42px;
    background:#111;
    color:rgba(255,255,255,.56);
    border-top:1px solid rgba(255,255,255,.08);
}

.tg2-legal-inner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:28px;
    flex-wrap:wrap;
}

.tg2-legal-copy{
    font-size:11px;
    letter-spacing:.8px;
    text-transform:uppercase;
    line-height:1.9;
}

.tg2-dream-counter{
    display:flex;
    align-items:center;
    gap:14px;
    color:rgba(255,255,255,.72);
}

.tg2-dream-number{
    font-size:18px;
    font-weight:300;
    letter-spacing:2px;
    color:#d8b178;
    min-width:74px;
    text-align:right;
}

.tg2-dream-text{
    font-size:11px;
    letter-spacing:1.4px;
    text-transform:uppercase;
    opacity:.72;
}

@media(max-width:900px){
    .tg2-legal-inner{
        flex-direction:column;
        align-items:flex-start;
    }

    .tg2-dream-counter{
        margin-top:6px;
    }
}


/* REV12 LANGUAGE FONT + FULL MULTILINGUAL FIX */
.nav .lang,
.menu .lang,
header .lang,
a.lang,
.nav .active-lang,
.menu .active-lang{
    font-family:inherit !important;
    font-size:inherit !important;
    line-height:inherit !important;
    font-weight:inherit !important;
    letter-spacing:inherit !important;
    text-transform:inherit !important;
    color:inherit;
}

.nav .lang,
.menu .lang,
header .lang{
    opacity:.58;
    margin-left:10px;
}

.nav .lang.active-lang,
.menu .lang.active-lang,
header .lang.active-lang{
    opacity:1;
}

.nav .lang::after,
.menu .lang::after,
header .lang::after{
    bottom:-7px;
}


/* REV13 HARD CURSOR FIX */
@media (pointer:fine){

  .tg2-cursor,
  .tg2-cursor-ring{
      position:fixed !important;
      z-index:999999999 !important;
      pointer-events:none !important;
      mix-blend-mode:normal !important;
      isolation:isolate !important;
      opacity:1 !important;
      visibility:visible !important;
  }

  .tg2-cursor{
      width:10px !important;
      height:10px !important;
      border-radius:50% !important;
      background:#ffffff !important;
      border:2px solid #111 !important;
      box-shadow:
          0 0 0 2px rgba(255,255,255,.45),
          0 0 18px rgba(0,0,0,.22) !important;
  }

  .tg2-cursor-ring{
      width:42px !important;
      height:42px !important;
      border-radius:50% !important;
      border:1px solid rgba(255,255,255,.92) !important;
      background:rgba(0,0,0,.08) !important;
      backdrop-filter:blur(2px) !important;
  }

  body.tg2-cursor-hover .tg2-cursor{
      transform:translate(-50%,-50%) scale(1.15) !important;
  }

  body.tg2-cursor-hover .tg2-cursor-ring{
      transform:translate(-50%,-50%) scale(1.28) !important;
  }

  img,
  video,
  figure,
  .project-card,
  .ig-card,
  .heritage-step-image,
  .heritage-gallery-band figure{
      position:relative;
      z-index:1 !important;
  }
}


/* REV14 FINAL CURSOR STABILITY — native cursor restored */
html, body, body *, a, button, input, textarea, select, img, video, figure, .project-card, .ig-card, .card {
    cursor:auto !important;
}
a, button, .btn, input[type="submit"], select {
    cursor:pointer !important;
}
.tg2-cursor,
.tg2-cursor-ring {
    display:none !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
}


/* REV15 SAFE CUSTOM CURSOR
   Keeps the native cursor active as fallback.
   The dot/ring are visual overlays only, never responsible for actual pointing.
*/
.tg2-safe-cursor,
.tg2-safe-cursor-ring{
    position:fixed !important;
    left:0;
    top:0;
    pointer-events:none !important;
    z-index:2147483647 !important;
    opacity:0;
    visibility:hidden;
    will-change:transform, opacity;
    mix-blend-mode:normal !important;
    isolation:isolate !important;
}

.tg2-safe-cursor{
    width:9px;
    height:9px;
    border-radius:50%;
    background:#d8b178;
    border:1px solid rgba(255,255,255,.96);
    box-shadow:
        0 0 0 1px rgba(0,0,0,.32),
        0 0 18px rgba(216,177,120,.42);
    transform:translate3d(-50px,-50px,0);
}

.tg2-safe-cursor-ring{
    width:38px;
    height:38px;
    border-radius:50%;
    border:1px solid rgba(216,177,120,.76);
    background:rgba(255,255,255,.035);
    box-shadow:
        0 0 0 1px rgba(0,0,0,.16),
        0 0 22px rgba(216,177,120,.18);
    transform:translate3d(-50px,-50px,0);
    transition:
        width .22s ease,
        height .22s ease,
        border-color .22s ease,
        background .22s ease;
}

body.tg2-safe-cursor-ready .tg2-safe-cursor,
body.tg2-safe-cursor-ready .tg2-safe-cursor-ring{
    opacity:1;
    visibility:visible;
}

body.tg2-safe-cursor-hover .tg2-safe-cursor{
    background:#ffffff;
    border-color:#d8b178;
}

body.tg2-safe-cursor-hover .tg2-safe-cursor-ring{
    width:64px;
    height:64px;
    border-color:rgba(216,177,120,.96);
    background:rgba(216,177,120,.055);
}

@media (pointer:coarse), (max-width:900px), (prefers-reduced-motion:reduce){
    .tg2-safe-cursor,
    .tg2-safe-cursor-ring{
        display:none !important;
    }
}

/* REV16 LIGHTBOX */
.tg2-lightbox{position:fixed;inset:0;z-index:2147483000;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}
.tg2-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}
.tg2-lightbox img{max-width:92vw;max-height:88vh;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.55)}
.tg2-lb-close,.tg2-lb-prev,.tg2-lb-next{position:absolute;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;z-index:2;cursor:pointer!important;backdrop-filter:blur(10px);transition:.25s}
.tg2-lb-close:hover,.tg2-lb-prev:hover,.tg2-lb-next:hover{background:rgba(255,255,255,.18)}
.tg2-lb-close{top:28px;right:32px;width:46px;height:46px;border-radius:50%;font-size:24px}
.tg2-lb-prev,.tg2-lb-next{top:50%;width:54px;height:54px;border-radius:50%;font-size:30px;transform:translateY(-50%)}
.tg2-lb-prev{left:32px}.tg2-lb-next{right:32px}
.tg2-lb-counter{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);color:rgba(255,255,255,.72);font-size:12px;letter-spacing:2px}
img[data-tg2-lightbox=true]{cursor:zoom-in!important}
body.tg2-lightbox-open{overflow:hidden}
@media(max-width:900px){.tg2-lightbox img{max-width:94vw;max-height:80vh}.tg2-lb-prev{left:16px}.tg2-lb-next{right:16px}.tg2-lb-close{top:18px;right:18px}}

/* REV17 PROJECT ONLY LIGHTBOX */
.tg2-project-lightbox{position:fixed;inset:0;z-index:2147483000;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}
.tg2-project-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}
.tg2-project-lightbox img{max-width:92vw;max-height:88vh;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.55)}
.tg2-plb-close,.tg2-plb-prev,.tg2-plb-next{position:absolute;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;z-index:2;cursor:pointer!important;backdrop-filter:blur(10px)}
.tg2-plb-close{top:28px;right:32px;width:46px;height:46px;border-radius:50%;font-size:24px}
.tg2-plb-prev,.tg2-plb-next{top:50%;width:54px;height:54px;border-radius:50%;font-size:30px;transform:translateY(-50%)}
.tg2-plb-prev{left:32px}.tg2-plb-next{right:32px}
.tg2-plb-counter{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);color:rgba(255,255,255,.72);font-size:12px;letter-spacing:2px}
.project-lightbox-enabled img[data-tg2-project-lightbox=true]{cursor:zoom-in!important}
body.tg2-project-lightbox-open{overflow:hidden}
@media(max-width:900px){.tg2-project-lightbox img{max-width:94vw;max-height:80vh}.tg2-plb-prev{left:16px}.tg2-plb-next{right:16px}.tg2-plb-close{top:18px;right:18px}}

/* REV016 - hover overlay "Approfondisci" su cards Progetti/Retail */
.projects .card::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:rgba(0,0,0,.38);
    opacity:0;
    transition:opacity .45s ease;
    pointer-events:none;
}
.projects .card::after{
    content:"approfondisci";
    position:absolute;
    left:50%;
    top:50%;
    z-index:3;
    transform:translate(-50%,-44%);
    opacity:0;
    pointer-events:none;
    color:#fff;
    border:1px solid rgba(255,255,255,.78);
    background:rgba(17,17,15,.28);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    padding:13px 22px;
    font-size:12px;
    font-weight:600;
    letter-spacing:.18em;
    text-transform:uppercase;
    transition:opacity .45s ease, transform .45s ease, background .45s ease;
}
.projects .card:hover::before,
.projects .card:focus-visible::before{
    opacity:1;
}
.projects .card:hover::after,
.projects .card:focus-visible::after{
    opacity:1;
    transform:translate(-50%,-50%);
}
.projects .card:hover img,
.projects .card:focus-visible img{
    transform:scale(1.055);
    filter:brightness(.72);
}
.projects .card .cap{
    z-index:2;
}
.projects .card:focus-visible{
    outline:2px solid rgba(154,122,72,.75);
    outline-offset:4px;
}
@media(max-width:900px){
    .projects .card::before,
    .projects .card::after{
        opacity:1;
    }
    .projects .card::before{
        background:rgba(0,0,0,.18);
    }
    .projects .card::after{
        top:44%;
        transform:translate(-50%,-50%);
        font-size:11px;
        padding:11px 18px;
    }
}

/* REV017 - lightbox fotografico scrollabile/non bloccante */
.tg2-lightbox,
.tg2-project-lightbox{
    align-items:flex-start !important;
    justify-content:center !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    padding:96px 24px 110px !important;
    -webkit-overflow-scrolling:touch;
}
.tg2-lightbox img,
.tg2-project-lightbox img{
    max-width:min(96vw,1400px) !important;
    width:auto !important;
    height:auto !important;
    max-height:none !important;
    object-fit:contain !important;
    margin:auto !important;
}
body.tg2-lightbox-open,
body.tg2-project-lightbox-open{
    overflow:auto !important;
    position:static !important;
    height:auto !important;
}
.tg2-lb-close,
.tg2-plb-close{
    position:fixed !important;
}
.tg2-lb-prev,
.tg2-lb-next,
.tg2-plb-prev,
.tg2-plb-next{
    position:fixed !important;
}
.tg2-lb-counter,
.tg2-plb-counter{
    position:fixed !important;
}
@media(max-width:900px){
    .tg2-lightbox,
    .tg2-project-lightbox{
        padding:78px 14px 96px !important;
    }
    .tg2-lightbox img,
    .tg2-project-lightbox img{
        max-width:96vw !important;
        max-height:none !important;
    }
}

/* Hero video overlay lighter */
.hero-overlay,
.video-overlay,
.banner-overlay,
.hero::before {
    background: rgba(0,0,0,0.22) !important;
    opacity: 1 !important;
}


.cinematic-hero-video{
    filter: brightness(1.18) contrast(1.04);
}


/* REV020 - FIX DEFINITIVO HERO VIDEO PIU VISIBILE */
.hero::after{
    background:linear-gradient(180deg,rgba(0,0,0,.00),rgba(0,0,0,.10)) !important;
}
.cinematic-hero-video{
    filter:brightness(1.12) saturate(1.05) contrast(1.02) !important;
    opacity:1 !important;
}
.cinematic-hero-video-overlay{
    background:
        linear-gradient(to bottom, rgba(0,0,0,.00), rgba(0,0,0,.14)),
        radial-gradient(circle at 50% 42%, rgba(255,255,255,.14), transparent 45%) !important;
}


/* REV023 - Heritage: ultime 3 immagini allineate, uguali e centrate */
.heritage-gallery-band{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:24px !important;
  align-items:start !important;
}
.heritage-gallery-band figure,
.heritage-gallery-band figure:nth-child(2){
  height:420px !important;
  margin:0 !important;
}
.heritage-gallery-band img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
}
@media(max-width:1000px){
  .heritage-gallery-band{grid-template-columns:1fr !important;}
  .heritage-gallery-band figure,
  .heritage-gallery-band figure:nth-child(2){height:360px !important;margin:0 !important;}
}


/* REV024 PREMIUM ABOUT + SERVICES */

.tg2-premium-section,
.tg2-about-premium{
    max-width:1400px;
    margin:120px auto;
    padding:0 6vw;
}

.tg2-mini-label{
    display:inline-block;
    font-size:.72rem;
    letter-spacing:.28em;
    opacity:.65;
    margin-bottom:18px;
}

.tg2-premium-intro h2,
.tg2-about-hero h2{
    font-size:clamp(2.8rem,6vw,5.8rem);
    line-height:.95;
    margin-bottom:28px;
}

.tg2-premium-intro p,
.tg2-about-text p{
    max-width:780px;
    opacity:.82;
    line-height:1.8;
    font-size:1.08rem;
}

.tg2-service-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:28px;
    margin-top:70px;
}

.tg2-service-card{
    padding:42px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.02);
    backdrop-filter:blur(8px);
    border-radius:22px;
    transition:.35s ease;
}

.tg2-service-card:hover{
    transform:translateY(-6px);
    background:rgba(255,255,255,.04);
}

.tg2-service-card h3{
    font-size:1.4rem;
    margin-bottom:14px;
}

.tg2-service-card p{
    opacity:.72;
    line-height:1.7;
}

.tg2-stats,
.tg2-timeline{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:26px;
    margin-top:70px;
}

.tg2-stats div,
.tg2-timeline div{
    border-top:1px solid rgba(255,255,255,.12);
    padding-top:18px;
}

.tg2-stats strong,
.tg2-timeline strong{
    display:block;
    font-size:2.4rem;
    margin-bottom:8px;
}

.tg2-stats span,
.tg2-timeline span{
    opacity:.72;
}

.tg2-about-text{
    margin-top:90px;
}

.tg2-about-text h3{
    font-size:clamp(2rem,4vw,4rem);
    line-height:1;
    margin-bottom:22px;
}

@media(max-width:900px){
    .tg2-service-grid,
    .tg2-stats,
    .tg2-timeline{
        grid-template-columns:1fr;
    }

    .tg2-service-card{
        padding:28px;
    }
}


/* REV032 - SERVICES 6 IMAGE CARDS */
.services-photo-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:26px !important;
    padding-top:34px !important;
}

.service-card-photo{
    position:relative !important;
    min-height:430px !important;
    padding:0 !important;
    overflow:hidden !important;
    border:0 !important;
    background:#111 !important;
    isolation:isolate !important;
}

.service-card-photo::before{
    content:"" !important;
    position:absolute !important;
    inset:0 !important;
    background-size:cover !important;
    background-position:center center !important;
    filter:grayscale(1) brightness(.64) contrast(1.06) !important;
    transform:scale(1.015) !important;
    transition:transform .55s ease, filter .55s ease !important;
    z-index:-2 !important;
}

.service-card-photo::after{
    content:"" !important;
    position:absolute !important;
    inset:0 !important;
    background:
        linear-gradient(90deg, rgba(0,0,0,.54) 0%, rgba(0,0,0,.34) 44%, rgba(0,0,0,.12) 100%),
        linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.52) 100%) !important;
    z-index:-1 !important;
}

.service-card-photo:hover::before{
    transform:scale(1.055) !important;
    filter:grayscale(.3) brightness(.76) contrast(1.05) !important;
}

.service-card-content{
    height:100% !important;
    min-height:430px !important;
    box-sizing:border-box !important;
    padding:44px 38px 36px !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-end !important;
    align-items:flex-start !important;
}

.service-card-photo h3{
    color:#fff !important;
    font-family:Inter, Arial, sans-serif !important;
    font-size:clamp(24px,2.25vw,34px) !important;
    line-height:1.15 !important;
    font-weight:400 !important;
    letter-spacing:.01em !important;
    text-transform:uppercase !important;
    margin:0 0 28px 0 !important;
    max-width:360px !important;
}

.service-card-line{
    width:42px !important;
    height:1px !important;
    background:rgba(255,255,255,.86) !important;
    margin:0 0 22px 0 !important;
    display:block !important;
}

.service-card-photo .text{
    color:rgba(255,255,255,.92) !important;
    line-height:1.65 !important;
    font-size:16px !important;
    max-width:330px !important;
    margin:0 0 30px 0 !important;
}

.service-card-arrow{
    color:#fff !important;
    font-size:42px !important;
    line-height:1 !important;
    font-weight:300 !important;
    transform:translateX(0) !important;
    transition:transform .35s ease !important;
}

.service-card-photo:hover .service-card-arrow{
    transform:translateX(10px) !important;
}

.service-card-photo-1::before{background-image:url("images/services-cards/service-card-1.jpg") !important;}
.service-card-photo-2::before{background-image:url("images/services-cards/service-card-2.jpg") !important;}
.service-card-photo-3::before{background-image:url("images/services-cards/service-card-3.jpg") !important;}
.service-card-photo-4::before{background-image:url("images/services-cards/service-card-4.jpg") !important;}
.service-card-photo-5::before{background-image:url("images/services-cards/service-card-5.jpg") !important;}
.service-card-photo-6::before{background-image:url("images/services-cards/service-card-6.jpg") !important;}

@media(max-width:1100px){
    .services-photo-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}

@media(max-width:760px){
    .services-photo-grid{
        grid-template-columns:1fr !important;
    }
    .service-card-photo,
    .service-card-content{
        min-height:390px !important;
    }
}


/* REV033 - SERVICE CARDS CLICKABLE + DETAIL PAGES */
.services-photo-grid .service-card-photo{
    text-decoration:none !important;
    color:inherit !important;
    cursor:pointer !important;
}
.services-photo-grid .service-card-photo:focus-visible{
    outline:2px solid rgba(0,0,0,.55);
    outline-offset:4px;
}
.service-detail-hero{
    display:grid;
    grid-template-columns:0.92fr 1.08fr;
    gap:56px;
    align-items:center;
    padding:150px 7vw 90px;
    max-width:1500px;
    margin:0 auto;
    box-sizing:border-box;
}
.service-back{
    display:inline-block;
    margin-bottom:34px;
    color:var(--muted);
    text-decoration:none;
    font-size:14px;
    letter-spacing:.04em;
}
.service-back:hover{color:var(--ink);}
.service-detail-hero-copy p{
    max-width:640px;
    font-size:18px;
    line-height:1.8;
    color:var(--muted);
    margin-top:26px;
}
.service-detail-hero-image{
    width:100%;
    overflow:hidden;
    background:#ddd;
    aspect-ratio:4/3;
}
.service-detail-hero-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
    filter:brightness(.94) contrast(1.03);
}
.service-detail-content{
    max-width:1220px;
    margin:0 auto;
    padding:40px 7vw 80px;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:34px;
    box-sizing:border-box;
}
.service-detail-block{
    border-top:1px solid var(--line);
    padding-top:28px;
}
.service-detail-block span{
    display:block;
    font-size:13px;
    letter-spacing:.22em;
    color:var(--muted);
    margin-bottom:22px;
}
.service-detail-block h2{
    font-family:Georgia,serif;
    font-size:34px;
    font-weight:400;
    line-height:1.1;
    margin:0 0 24px;
}
.service-detail-block p,
.service-detail-block li{
    color:var(--muted);
    line-height:1.75;
    font-size:16px;
}
.service-detail-block ul{
    margin:0;
    padding-left:18px;
}
.service-detail-block li{margin-bottom:12px;}
.service-detail-cta{
    max-width:1220px;
    margin:0 auto 110px;
    padding:64px 7vw;
    box-sizing:border-box;
    background:rgba(255,255,255,.42);
    border:1px solid var(--line);
}
.service-detail-cta h2{
    font-family:Georgia,serif;
    font-size:clamp(34px,4vw,56px);
    font-weight:400;
    line-height:1.05;
    margin:0 0 20px;
}
.service-detail-cta p{
    color:var(--muted);
    max-width:680px;
    line-height:1.7;
    margin-bottom:30px;
}
.service-detail-cta a{
    display:inline-block;
    padding:15px 26px;
    background:var(--ink);
    color:#fff;
    text-decoration:none;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:13px;
}
@media(max-width:950px){
    .service-detail-hero,
    .service-detail-content{grid-template-columns:1fr;}
    .service-detail-hero{padding-top:120px;gap:34px;}
}


/* REV035 - NEW PROJECTS + BROCHURE */
.project-card-extra{
    position:relative;
    overflow:hidden;
}

.project-card-link{
    display:block;
    position:relative;
    text-decoration:none;
    color:#fff;
}

.project-card-link img{
    width:100%;
    height:520px;
    object-fit:cover;
    display:block;
    transition:transform .6s ease;
}

.project-card-link:hover img{
    transform:scale(1.03);
}

.project-card-link .overlay{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:34px;
    background:linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,.08));
}

.project-card-link h3{
    color:#fff;
    font-size:38px;
    font-weight:400;
    margin:8px 0 0;
}

.project-card-link .meta{
    color:rgba(255,255,255,.72);
    letter-spacing:.18em;
    text-transform:uppercase;
    font-size:12px;
}

.project-detail-hero{
    position:relative;
    height:88vh;
    overflow:hidden;
}

.project-detail-hero img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.project-detail-overlay{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:80px 7vw;
    background:linear-gradient(to top, rgba(0,0,0,.75), rgba(0,0,0,.12));
    color:#fff;
}

.project-detail-overlay h1{
    font-size:clamp(46px,7vw,92px);
    line-height:.95;
    margin:14px 0;
    font-weight:400;
}

.project-detail-overlay p{
    max-width:720px;
    line-height:1.8;
    color:rgba(255,255,255,.82);
}

.project-detail-gallery{
    columns:3 320px;
    column-gap:18px;
    padding:80px 7vw;
}

.project-detail-gallery img{
    width:100%;
    margin-bottom:18px;
    break-inside:avoid;
    display:block;
}

.brochure-section{
    padding:110px 7vw;
}

.brochure-box{
    border:1px solid var(--line);
    padding:70px;
    background:rgba(255,255,255,.32);
}

.brochure-box h2{
    font-size:clamp(42px,6vw,78px);
    line-height:.95;
    font-weight:400;
    margin:16px 0 20px;
}

.brochure-box p{
    max-width:760px;
    line-height:1.8;
    color:var(--muted);
    margin-bottom:34px;
}

.brochure-box a{
    display:inline-block;
    padding:15px 26px;
    background:var(--ink);
    color:#fff;
    text-decoration:none;
    text-transform:uppercase;
    letter-spacing:.14em;
    font-size:12px;
}

@media(max-width:900px){
    .project-detail-gallery{
        columns:1;
    }
    .brochure-box{
        padding:38px;
    }
}


/* REV036 - ALIGN NEW PROJECT CARDS WITH EXISTING PROJECT STYLE */
.project-card-added{
    position:relative !important;
    display:block !important;
    overflow:hidden !important;
    text-decoration:none !important;
    color:inherit !important;
    min-height:520px !important;
    background:#ddd !important;
}

.project-card-added img{
    width:100% !important;
    height:520px !important;
    object-fit:cover !important;
    display:block !important;
    transition:transform .55s ease, filter .55s ease !important;
}

.project-card-added::after{
    content:"" !important;
    position:absolute !important;
    inset:0 !important;
    background:linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,.08)) !important;
    z-index:1 !important;
    pointer-events:none !important;
}

.project-card-added .card-caption{
    position:absolute !important;
    left:34px !important;
    right:34px !important;
    bottom:34px !important;
    z-index:2 !important;
    color:#fff !important;
}

.project-card-added .card-caption span{
    display:block !important;
    color:rgba(255,255,255,.72) !important;
    letter-spacing:.18em !important;
    text-transform:uppercase !important;
    font-size:12px !important;
    margin-bottom:10px !important;
}

.project-card-added .card-caption h3{
    color:#fff !important;
    font-family:Georgia,serif !important;
    font-size:38px !important;
    font-weight:400 !important;
    line-height:1.08 !important;
    margin:0 !important;
}

.project-card-added:hover img{
    transform:scale(1.035) !important;
    filter:brightness(.86) !important;
}

@media(max-width:900px){
    .project-card-added,
    .project-card-added img{
        min-height:380px !important;
        height:380px !important;
    }
}


/* REV037 - PROJECT CARD ORDER + HOVER LABEL + HERO TITLE FIX */
.project-card-added .card-caption h3{
    margin:0 0 10px 0 !important;
}

.project-card-added .card-caption span{
    margin:0 !important;
    display:block !important;
}

/* make "approfondisci" readable and independent from old hover rules */
.project-card-added .project-hover-label{
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    transform:translate(-50%,-50%) scale(.96) !important;
    z-index:4 !important;
    color:#111 !important;
    background:rgba(255,255,255,.92) !important;
    padding:13px 22px !important;
    border-radius:999px !important;
    font-size:12px !important;
    line-height:1 !important;
    text-transform:uppercase !important;
    letter-spacing:.14em !important;
    opacity:0 !important;
    pointer-events:none !important;
    transition:opacity .28s ease, transform .28s ease !important;
    white-space:nowrap !important;
    font-weight:500 !important;
}

.project-card-added:hover .project-hover-label{
    opacity:1 !important;
    transform:translate(-50%,-50%) scale(1) !important;
}

.project-card-added:hover::after{
    background:linear-gradient(to top, rgba(0,0,0,.80), rgba(0,0,0,.38)) !important;
}

/* detail project hero: title always visible */
.project-detail-title-visible{
    z-index:2 !important;
}

.project-detail-title-visible h1{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    color:#fff !important;
    font-family:Georgia,serif !important;
    font-size:clamp(52px,8vw,112px) !important;
    font-weight:400 !important;
    line-height:.92 !important;
    margin:0 0 16px 0 !important;
    text-shadow:0 10px 35px rgba(0,0,0,.35) !important;
}

.project-detail-title-visible .meta{
    order:2;
    display:block !important;
    color:rgba(255,255,255,.78) !important;
    letter-spacing:.18em !important;
    text-transform:uppercase !important;
    font-size:12px !important;
    margin-bottom:18px !important;
}

.project-detail-title-visible p{
    color:rgba(255,255,255,.84) !important;
    max-width:720px !important;
}

/* prevent old centered hover label from clashing on added cards */
.project-card-added .project-card-link,
.project-card-added .overlay{
    display:none !important;
}


/* REV038 - FIX NEW PROJECTS HOVER + LIGHTBOX */
.project-card-added .project-hover-label{
    display:none !important;
}

.project-card-added::after{
    background:linear-gradient(to top, rgba(0,0,0,.64), rgba(0,0,0,.08)) !important;
    opacity:1 !important;
    transition:background .35s ease, opacity .35s ease !important;
}

.project-card-added:hover::after{
    background:linear-gradient(to top, rgba(0,0,0,.78), rgba(0,0,0,.32)) !important;
}

.project-card-added img{
    transition:transform .55s ease, filter .55s ease !important;
}

.project-card-added:hover img{
    transform:scale(1.035) !important;
    filter:brightness(.72) !important;
}

/* If global 'approfondisci' exists on all cards, keep it readable only as text, no box */
.project-card-added .project-overlay-label,
.project-card-added .hover-label,
.project-card-added .card-hover-text{
    color:#fff !important;
    background:transparent !important;
    text-shadow:0 8px 30px rgba(0,0,0,.55) !important;
}

/* new detail pages gallery cursor */
.project-detail-gallery img[data-tg2-project-lightbox="true"]{
    cursor:zoom-in !important;
}


/* REV039 - New projects now use native .card/.cap and .hero/.gallery structure. */


/* REV043 ABOUT FUTURE */
.about-future-hero{
    position:relative;
    min-height:100vh;
    overflow:hidden;
    display:flex;
    align-items:flex-end;
}

.about-future-hero img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    filter:brightness(.55);
}

.about-future-overlay{
    position:relative;
    z-index:2;
    padding:0 7vw 110px;
    max-width:980px;
}

.about-future-overlay .eyebrow{
    color:rgba(255,255,255,.68);
    margin-bottom:24px;
}

.about-future-overlay h1{
    color:#fff;
    font-size:clamp(58px,10vw,138px);
    line-height:.9;
    font-weight:400;
    margin:0 0 28px;
    letter-spacing:-.04em;
}

.about-future-overlay p{
    color:rgba(255,255,255,.82);
    font-size:20px;
    line-height:1.8;
    max-width:760px;
}

.about-future-section{
    padding:120px 7vw;
    max-width:1500px;
    margin:0 auto;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    align-items:start;
}

.about-future-section h2{
    font-size:clamp(42px,5vw,78px);
    line-height:.95;
    font-weight:400;
    margin:0;
}

.about-future-section p{
    line-height:1.9;
    color:var(--muted);
    font-size:17px;
}

.about-manifesto{
    max-width:1200px;
    margin:0 auto 120px;
    padding:0 7vw;
}

.about-manifesto blockquote{
    font-size:clamp(34px,5vw,64px);
    line-height:1.08;
    font-weight:400;
    letter-spacing:-.03em;
    margin:0;
    color:var(--ink);
}

@media(max-width:900px){
    .about-future-section{
        grid-template-columns:1fr;
        gap:40px;
    }

    .about-future-overlay{
        padding-bottom:70px;
    }
}


/* REV044 - ABOUT HOME EXPERIENCE FIX: VR HERO IMAGE CLEARLY VISIBLE */
.about-future-hero{
    position:relative !important;
    min-height:92vh !important;
    overflow:hidden !important;
    display:flex !important;
    align-items:flex-end !important;
    background:#111 !important;
}

.about-future-hero > img{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    filter:brightness(.92) contrast(1.02) saturate(1.04) !important;
    opacity:1 !important;
    z-index:0 !important;
    display:block !important;
}

.about-future-hero::after{
    content:"" !important;
    position:absolute !important;
    inset:0 !important;
    z-index:1 !important;
    background:
        linear-gradient(to top, rgba(0,0,0,.58), rgba(0,0,0,.10) 52%, rgba(0,0,0,.04)),
        linear-gradient(to right, rgba(0,0,0,.42), rgba(0,0,0,.00) 58%) !important;
    pointer-events:none !important;
}

.about-future-overlay{
    position:relative !important;
    z-index:2 !important;
    padding:0 7vw 90px !important;
    max-width:980px !important;
}

.about-future-overlay .eyebrow{
    color:rgba(255,255,255,.82) !important;
}

.about-future-overlay h1{
    color:#fff !important;
    text-shadow:0 12px 42px rgba(0,0,0,.38) !important;
}

.about-future-overlay p{
    color:rgba(255,255,255,.90) !important;
    text-shadow:0 8px 26px rgba(0,0,0,.28) !important;
}


/* REV045 DEFINITIVE VR IMAGE FIX */
.about-future-hero{
    position:relative !important;
    min-height:100vh !important;
    overflow:hidden !important;
    background:#000 !important;
}

.about-vr-image{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    z-index:0 !important;
    filter:brightness(.88) !important;
}

.about-future-overlay{
    position:relative !important;
    z-index:2 !important;
}


/* REV046 - DEFINITIVE ABOUT VR: INLINE BACKGROUND + CLEAN DISPLAY */
.about-vr-hero-definitive{
    position:relative !important;
    min-height:100vh !important;
    background-size:cover !important;
    background-position:center center !important;
    background-repeat:no-repeat !important;
    overflow:hidden !important;
    display:flex !important;
    align-items:flex-end !important;
}

.about-vr-hero-definitive .about-vr-image{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    opacity:1 !important;
    display:block !important;
    visibility:visible !important;
    z-index:0 !important;
    filter:brightness(.92) contrast(1.02) saturate(1.04) !important;
}

.about-vr-hero-definitive::after{
    content:"" !important;
    position:absolute !important;
    inset:0 !important;
    z-index:1 !important;
    background:linear-gradient(to top, rgba(0,0,0,.56), rgba(0,0,0,.06) 60%, rgba(0,0,0,.02)) !important;
    pointer-events:none !important;
}

.about-vr-hero-definitive .about-future-overlay{
    position:relative !important;
    z-index:2 !important;
    padding:0 7vw 90px !important;
}


/* REV048 - CONTACT ROUTING PAGE */
.contact-routing-head .text{max-width:780px}
.contact-routing-section{padding:20px 7vw 100px}
.contact-route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:1300px;margin:0 auto}
.contact-route-card{border:1px solid var(--line);background:rgba(255,255,255,.42);padding:42px;min-height:310px;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box;transition:transform .35s ease,background .35s ease}
.contact-route-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.62)}
.contact-route-card>span{display:block;font-size:13px;letter-spacing:.22em;color:var(--gold);margin-bottom:34px}
.contact-route-card h2{font-family:Georgia,serif;font-size:clamp(30px,3vw,46px);font-weight:400;line-height:1.04;margin:0 0 20px}
.contact-route-card p{color:var(--muted);line-height:1.75;margin:0 0 32px;max-width:560px}
.contact-mail-list{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.contact-mail-list a{color:var(--ink);text-decoration:none;border-bottom:1px solid rgba(0,0,0,.28);padding-bottom:3px;font-size:16px}
.contact-mail-list a:hover{border-bottom-color:var(--ink)}
.contact-info-strip{max-width:1300px;margin:0 auto 110px;padding:46px 7vw;display:grid;grid-template-columns:1.4fr .6fr;gap:32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-sizing:border-box}
.contact-info-strip p{color:var(--muted);line-height:1.7;margin:12px 0 0}
.contact-info-strip a{color:var(--ink);text-decoration:none}
@media(max-width:900px){.contact-route-grid,.contact-info-strip{grid-template-columns:1fr}.contact-routing-section{padding-left:24px;padding-right:24px}.contact-route-card{padding:30px;min-height:auto}}
