*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
.vfh{font-family:'Outfit',sans-serif;font-weight:300;color:#1C1914}
.vfh{--ivory:#F4F1EB;--cream:#EDE8DF;--stone:#C4B8A4;--taupe:#8A7D6A;--ink:#1C1914;--bronze:#8B7355;--bronze2:#B99C78;--sea:#6B8FA0;--bd:rgba(139,115,85,.15);--bdl:rgba(139,115,85,.08)}
.vfh .hero{height:100vh;min-height:680px;position:relative;overflow:hidden;display:flex;align-items:flex-end}
.vfh .hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;animation:hzoom 18s ease-out forwards}
@keyframes hzoom{from{transform:scale(1.06)}to{transform:scale(1)}}
.vfh .hero-veil{display:none}
.vfh .hero-body{position:relative;z-index:2;padding:0 4rem 5.5rem;animation:up 1.8s cubic-bezier(.23,1,.32,1) both .4s}
@keyframes up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.vfh .hero-tag{display:flex;align-items:center;gap:1rem;font-size:1rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.50);margin-bottom:1.75rem}
.vfh .hero-tag::before{content:'';width:2.5rem;height:.5px;background:rgba(255,255,255,.28)}
.vfh h1.hero-title{font-family:'Cormorant Garamond',serif;font-size:clamp(3.5rem,6.5vw,7.5rem);font-weight:300;line-height:.95;color:#fff;letter-spacing:-.02em;margin-bottom:80px;max-width:820px;text-shadow:0 2px 50px rgba(0,0,0,.7),0 1px 20px rgba(0,0,0,.5)}
.vfh h1.hero-title em{font-style:italic;color:rgba(255,255,255,.88)}
.vfh .hero-sub{font-size:.88rem;line-height:2;color:rgba(255,255,255,.95);max-width:450px;margin-bottom:3rem;letter-spacing:.02em;text-shadow:0 1px 20px rgba(0,0,0,.8)}
.vfh .hero-actions{display:flex;align-items:center;gap:2.5rem}
.vfh .btn-primary{font-size:.62rem;letter-spacing:.25em;text-transform:uppercase;background:rgba(255,255,255,.95);color:var(--ink);padding:1rem 2.5rem;text-decoration:none;font-weight:400;transition:all .3s;display:inline-block}
.vfh .btn-primary:hover{background:#fff;color:var(--bronze)}
.vfh .btn-ghost{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.58);text-decoration:none;border-bottom:.5px solid rgba(255,255,255,.28);padding-bottom:2px;transition:all .3s}
.vfh .btn-ghost:hover{color:#fff;border-color:#fff}
.vfh .hero-side{position:absolute;right:4rem;top:50%;transform:translateY(-50%);z-index:2;display:flex;flex-direction:column;align-items:flex-end;gap:.45rem;padding-bottom:3rem;animation:up 1.8s cubic-bezier(.23,1,.32,1) both 1s}
.vfh .hs-stat{text-align:right}
.vfh .hs-v{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:300;color:rgba(255,255,255,.9);line-height:1}
.vfh .hs-l{font-size:.4rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.82);margin-top:.1rem}
.vfh .hs-sep{width:.5px;height:8px;background:rgba(255,255,255,.12);align-self:flex-end}
.vfh .hero-scroll{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.vfh .hs-track{width:.5px;height:52px;background:rgba(255,255,255,.1);position:relative;overflow:hidden}
.vfh .hs-fill{position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.4));animation:st 2.2s ease-in-out infinite}
@keyframes st{0%,100%{transform:translateY(-100%)}50%{transform:translateY(200%)}}
.vfh .hs-label{font-size:.5rem;letter-spacing:.35em;text-transform:uppercase;color:rgba(255,255,255,.28)}
.vfh .numbers{background:var(--ink);display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.vfh .nb{padding:2rem 1rem;border-right:.5px solid rgba(255,255,255,.06);text-align:center;min-width:0}
.vfh .nb:last-child{border-right:none}
.vfh .nb-v{font-family:'Cormorant Garamond',serif;font-size:2.2rem;font-weight:300;color:rgba(255,255,255,.88);line-height:1;white-space:nowrap}
.vfh .nb-l{font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.28);margin-top:.35rem;line-height:1.6;white-space:nowrap}
.vfh section{padding:8rem 4rem}
.vfh .label{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem;font-size:.55rem;letter-spacing:.38em;text-transform:uppercase;color:var(--bronze)}
.vfh .label::before{content:'';width:1.5rem;height:.5px;background:var(--bronze)}
.vfh h2.title{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,3.5vw,3.5rem);font-weight:300;line-height:1.08;color:var(--ink)}
.vfh h2.title em{font-style:italic;color:var(--sea)}
.vfh .body-text{font-size:.88rem;line-height:2.1;color:var(--taupe)}
.vfh .place{background:var(--ivory)}
.vfh .place-inner{display:grid;grid-template-columns:1fr 1fr;gap:8rem;align-items:center}
.vfh .place-text .title{margin-bottom:2.5rem}
.vfh .place-text .body-text{margin-bottom:1.25rem}
.vfh .pull{margin:2.5rem 0;padding:2rem 2rem 2rem 2.5rem;border-left:2px solid var(--bronze);background:var(--cream)}
.vfh .pull p{font-family:'Cormorant Garamond',serif;font-size:1.12rem;font-style:italic;font-weight:300;line-height:1.65;color:var(--ink)}
.vfh .pull cite{display:block;margin-top:.75rem;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--taupe);font-style:normal}
.vfh .place-visual{position:relative}
.vfh .place-img1{width:100%;aspect-ratio:auto;object-fit:contain;display:block}
.vfh .place-img2{position:absolute;bottom:-12rem;left:-3rem;width:55%;aspect-ratio:4/3;object-fit:cover;display:block;border:6px solid var(--ivory)}
.vfh .distances{margin-top:3rem;border-top:.5px solid var(--bd)}
.vfh .dist{display:flex;justify-content:space-between;align-items:center;padding:.9rem 0;border-bottom:.5px solid var(--bdl)}
.vfh .dist-p{font-size:.75rem;letter-spacing:.06em;color:var(--taupe)}
.vfh .dist-t{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:300;color:var(--ink)}
.vfh .gallery{background:var(--ivory);padding:8rem 0;border-top:2px solid var(--bronze)}
.vfh .gal-hd{padding:0 4rem 3.5rem;display:flex;justify-content:space-between;align-items:flex-end}
.vfh .gal-n{font-family:'Cormorant Garamond',serif;font-size:5rem;font-weight:300;color:var(--stone);line-height:1}
.vfh .gal-tabs{display:flex;gap:0;border-bottom:.5px solid var(--bd);margin:0 4rem 3rem;overflow-x:auto;scrollbar-width:none}
.vfh .gal-tabs::-webkit-scrollbar{display:none}
.vfh .gtab{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--taupe);padding:.9rem 1.75rem;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:all .3s;background:none;border-top:none;border-left:none;border-right:none;font-family:'Outfit',sans-serif;font-weight:300}
.vfh .gtab:hover{color:var(--ink)}
.vfh .gtab.active{color:var(--bronze);border-bottom-color:var(--bronze)}
.vfh .gal-grid{display:none;grid-template-columns:repeat(3,1fr);gap:4px;padding:0 4rem}
.vfh .gal-grid.active{display:grid;gap:4px}
.vfh .gal-grid[data-theme="exterieurs"]{grid-template-columns:55% 1fr}
.vfh .gal-grid[data-theme="garage"]{grid-template-columns:1fr;gap:4px}
.vfh .gal-grid[data-theme="vie"]{grid-template-columns:1fr 1fr 1fr}
.vfh .gi{overflow:hidden;position:relative;background:var(--cream);cursor:pointer}
.vfh .gi img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.23,1,.32,1)}
.vfh .gi:hover img{transform:scale(1.04)}
.vfh .gi-tall{grid-row:span 2}
.vfh .gi-h{height:320px}
.vfh .gi-h-tall{height:648px}
.vfh .gi-cap{position:absolute;bottom:1rem;left:1rem;font-size:.52rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.82);background:rgba(22,19,14,.28);backdrop-filter:blur(4px);padding:.4rem .75rem}
.vfh .rarity{background:var(--ink);position:relative;overflow:hidden}
.vfh .rarity::before{content:'';position:absolute;top:50%;left:50%;width:700px;height:700px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(139,115,85,.05) 0%,transparent 70%);pointer-events:none}
.vfh .rarity .label{color:var(--bronze2)}
.vfh .rarity .label::before{background:var(--bronze2)}
.vfh .rarity .title{color:rgba(244,241,235,.92)}
.vfh .rarity .title em{color:rgba(196,184,164,.62)}
.vfh .rarity-grid{display:grid;grid-template-columns:1fr 1fr;gap:8rem;margin-top:4rem;align-items:start}
.vfh .rarity-stmt{font-family:'Cormorant Garamond',serif;font-size:clamp(1.5rem,2.3vw,2.1rem);font-weight:300;line-height:1.4;color:rgba(244,241,235,.88);margin-bottom:4rem;padding-bottom:2.5rem;border-bottom:.5px solid rgba(255,255,255,.07)}
.vfh .rarity-stmt em{font-style:italic;color:rgba(196,184,164,.58)}
.vfh .rarity-body{font-size:.88rem;line-height:2;color:rgba(138,125,106,.82)}
.vfh .rarity-specs{border-top:.5px solid rgba(255,255,255,.07)}
.vfh .rsp{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:.5px solid rgba(255,255,255,.12);gap:1rem;flex-wrap:wrap}
.vfh .rsp-k{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(196,180,155,1);font-weight:400}
.vfh .rsp-v{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:300;color:rgba(255,248,235,.98);text-align:right}
@media(max-width:768px){.vfh .rsp{flex-direction:column;align-items:flex-start;gap:.25rem}.vfh .rsp-v{text-align:left;font-size:1.05rem}.vfh .rsp-k{font-size:.55rem}}
.vfh .price-badge{display:inline-flex;align-items:center;gap:1rem;margin-top:2.5rem;padding:1.25rem 2rem;border:.5px solid rgba(196,164,90,.25);background:rgba(196,164,90,.04)}
.vfh .price-badge .pb-v{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:300;color:var(--bronze2);line-height:1}
.vfh .price-badge .pb-l{font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(138,125,106,.5);margin-top:.25rem}
.vfh .architect{background:var(--cream)}
.vfh .arch-inner{display:grid;grid-template-columns:1fr 1fr;gap:8rem;align-items:center}
.vfh .arch-photo{aspect-ratio:4/5;position:relative;overflow:hidden}
@media(max-width:960px){.vfh .arch-photo{aspect-ratio:3/4}}
@media(max-width:768px){.vfh .arch-photo{aspect-ratio:1/1}}
.vfh .arch-photo img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.vfh .arch-badge{position:absolute;bottom:2rem;right:-2rem;background:var(--ink);padding:1.5rem 2rem}
.vfh .ab1{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--taupe);margin-bottom:.3rem}
.vfh .ab2{font-family:'Cormorant Garamond',serif;font-size:1.05rem;font-weight:300;color:rgba(244,241,235,.9)}
.vfh .arch-quote{font-family:'Cormorant Garamond',serif;font-size:clamp(1.1rem,1.7vw,1.6rem);font-style:italic;font-weight:300;line-height:1.55;color:var(--ink);border-top:.5px solid var(--bd);padding-top:2rem;margin:2rem 0}
.vfh .arch-kpis{display:flex;gap:3rem;margin-top:2.5rem;padding-top:2rem;border-top:.5px solid var(--bdl)}
.vfh .ak-v{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:300;color:var(--bronze);line-height:1;margin-bottom:.3rem}
.vfh .ak-l{font-size:.52rem;letter-spacing:.16em;text-transform:uppercase;color:var(--taupe)}
.vfh .market{background:var(--ivory)}
.vfh .mkt-grid{display:grid;grid-template-columns:3fr 2fr;gap:7rem;margin-top:4rem;align-items:start}
.vfh .mfact{padding:1.75rem 0;border-bottom:.5px solid var(--bdl);display:flex;gap:2rem;align-items:start}
.vfh .mfact-n{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:300;color:var(--bronze);line-height:1;min-width:100px;flex-shrink:0}
.vfh .mfact-k{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;font-weight:400;color:var(--ink);margin-bottom:.4rem}
.vfh .mfact-d{font-size:.84rem;line-height:1.9;color:var(--taupe)}
.vfh .france-box{background:var(--ink);padding:2.75rem;margin-top:1.75rem}
.vfh .fb-title{font-family:'Cormorant Garamond',serif;font-size:1.35rem;font-weight:300;color:rgba(244,241,235,.9);margin-bottom:.5rem}
.vfh .fb-sub{font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--bronze2);margin-bottom:1.5rem}
.vfh .fb-item{display:flex;gap:.75rem;align-items:start;padding:.65rem 0;border-bottom:.5px solid rgba(255,255,255,.05)}
.vfh .fb-item:last-child{border-bottom:none}
.vfh .fb-dot{width:4px;height:4px;border-radius:50%;background:var(--bronze2);flex-shrink:0;margin-top:.55rem}
.vfh .fb-txt{font-size:.82rem;line-height:1.75;color:rgba(138,125,106,.8)}
.vfh .mkt-aside{position:sticky;top:8rem}
.vfh .map-wrap{background:var(--cream);border:.5px solid var(--bd);overflow:hidden;margin-bottom:2rem;position:relative}
.vfh .map-wrap img{width:100%;display:block}
.vfh .ma-title{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:300;color:var(--ink);margin-bottom:.3rem}
.vfh .ma-sub{font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:var(--taupe);margin-bottom:1.5rem}
.vfh .day{background:var(--cream);padding:8rem 0}
.vfh .day-hd{padding:0 4rem 5rem;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:end}
.vfh .day-intro{font-size:.88rem;line-height:2;color:var(--taupe);max-width:440px}
.vfh .day-photo{width:100%;height:55vh;min-height:400px;object-fit:cover;display:block;margin-bottom:0}
.vfh .day-photo-cap{font-size:.52rem;letter-spacing:.2em;text-transform:uppercase;color:var(--stone);padding:.65rem 4rem;background:var(--cream)}
.vfh .day-steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:.5px solid var(--bd);margin:0 4rem}
.vfh .ds{padding:2.5rem 2.5rem 2.5rem 0;border-right:.5px solid var(--bdl)}
.vfh .ds:not(:first-child){padding-left:2.5rem}
.vfh .ds:last-child{border-right:none}
.vfh .ds-time{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:300;color:var(--bronze);line-height:1;margin-bottom:.6rem}
.vfh .ds-scene{font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;font-weight:400;color:var(--ink);margin-bottom:.75rem}
.vfh .ds-desc{font-size:.84rem;line-height:1.9;color:var(--taupe)}
.vfh .contact{background:var(--ink);position:relative}
.vfh .contact::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right,transparent,var(--bronze),transparent)}
.vfh .contact .label{color:var(--bronze2)}
.vfh .contact .label::before{background:var(--bronze2)}
.vfh .contact .title{color:rgba(244,241,235,.92)}
.vfh .contact .title em{color:rgba(196,184,164,.62)}
.vfh .contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:8rem;margin-top:3rem}
.vfh .contact .body-text{color:rgba(138,125,106,.82);margin-top:1rem}
.vfh .deadline{margin-top:3rem;padding:1.75rem 2rem;border:.5px solid rgba(255,255,255,.07);background:rgba(255,255,255,.02)}
.vfh .dl-top{font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze2);margin-bottom:.6rem}
.vfh .dl-body{font-size:.84rem;line-height:1.8;color:rgba(138,125,106,.72)}
.vfh .form{display:flex;flex-direction:column;gap:.7rem}
.vfh .frow{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.vfh .fg label{display:block;font-size:.54rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(138,125,106,.55);margin-bottom:.35rem}
.vfh .form input,.vfh .form textarea,.vfh .form select{width:100%;background:rgba(255,255,255,.04);border:.5px solid rgba(255,255,255,.1);color:rgba(244,241,235,.9);padding:.9rem 1rem;font-family:'Outfit',sans-serif;font-size:.82rem;font-weight:300;outline:none;transition:border-color .3s;border-radius:0;appearance:none}
.vfh .form input:focus,.vfh .form textarea:focus,.vfh .form select:focus{border-color:rgba(196,164,90,.4)}
.vfh .form input::placeholder,.vfh .form textarea::placeholder{color:rgba(138,125,106,.4);font-size:.77rem}
.vfh .form select option{background:#1C1914;color:rgba(244,241,235,.9)}
.vfh .form textarea{height:110px;resize:none}
.vfh .submit{background:rgba(255,255,255,.95);color:var(--ink);border:none;padding:1.1rem 2rem;font-family:'Outfit',sans-serif;font-size:.62rem;font-weight:400;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;transition:all .3s;width:100%;margin-top:.35rem}
.vfh .submit:hover{background:var(--bronze2);color:#fff}
.vfh .fnote{font-size:.58rem;color:rgba(138,125,106,.35);line-height:1.7;margin-top:.7rem}
.vfh .rv{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.23,1,.32,1),transform .9s cubic-bezier(.23,1,.32,1)}
.vfh .rv.in{opacity:1;transform:none}
.vfh .d1{transition-delay:.1s}.vfh .d2{transition-delay:.2s}.vfh .d3{transition-delay:.3s}.vfh .d4{transition-delay:.4s}
.vfh img{max-width:100%;height:auto}
@media(max-width:1200px){
 .vfh section{padding:7rem 3rem}
 .vfh .place-inner,.vfh .arch-inner,.vfh .rarity-grid,.vfh .mkt-grid,.vfh .contact-inner{gap:5rem}
 .vfh .gal-grid{padding:0 3rem}
 .vfh .gal-tabs{margin:0 3rem 3rem}
 .vfh .gal-hd{padding:0 3rem 3rem}
 .vfh .day-hd{padding:0 3rem 5rem}
 .vfh .day-steps{margin:0 3rem}
 .vfh .gallery{padding:7rem 0}
 .vfh .day{padding:7rem 0}
}
@media(max-width:960px){
 .vfh section{padding:5rem 1.5rem}
 .vfh .place-inner,.vfh .arch-inner,.vfh .rarity-grid,.vfh .mkt-grid,.vfh .contact-inner{grid-template-columns:1fr;gap:3rem}
 .vfh .place-img2{display:none}
 .vfh .numbers{grid-template-columns:1fr 1fr}
 .vfh .day-steps{grid-template-columns:1fr 1fr;margin:0 1.5rem}
 .vfh .gal-hd{padding:0 1.5rem 2rem}
 .vfh .gal-tabs{margin:0 1.5rem 2rem}
 .vfh .gal-grid{padding:0 1.5rem}
 .vfh .gal-grid[data-theme="exterieurs"]{grid-template-columns:1fr}
 .vfh .gal-grid[data-theme="garage"]{grid-template-columns:1fr}
 .vfh .gal-grid[data-theme="artdevivre"]{grid-template-columns:1fr}
 .vfh .day-hd{padding:0 1.5rem 3rem;grid-template-columns:1fr}
 .vfh .day-photo-cap{padding:.65rem 1.5rem}
 .vfh .arch-badge{right:0;bottom:1rem}
 .vfh .frow{grid-template-columns:1fr}
 .vfh .hero-side{right:1.5rem}
 .vfh .hero-body{padding:0 1.5rem 4rem}
}
@media(max-width:768px){
 .vfh section{padding:4rem 1.25rem}
 .vfh h1.hero-title{font-size:clamp(2.5rem,9vw,4rem)}
 .vfh h2.title{font-size:clamp(1.75rem,6vw,2.5rem)}
 .vfh .hero-side{right:1.25rem;gap:1.25rem}
 .vfh .hs-v{font-size:1.4rem}
 .vfh .hero-body{padding:0 1.25rem 5rem}
 .vfh .gal-tabs{margin:0 1.25rem 2rem}
 .vfh .gal-grid{padding:0 1.25rem;grid-template-columns:1fr!important}
 .vfh .gi,.vfh .gi.gi-tall{height:56vw!important;grid-row:span 1}
 .vfh .gal-grid{grid-template-columns:1fr!important;grid-auto-rows:auto!important;gap:4px!important}
 .vfh .gal-grid .gi,.vfh .gal-grid .gi.gi-tall{height:56vw!important;grid-row:span 1!important;grid-column:span 1!important}
 .vfh .gal-hd{padding:0 1.25rem 2rem}
 .vfh .day-hd{padding:0 1.25rem 3rem;grid-template-columns:1fr}
 .vfh .day-steps{grid-template-columns:1fr;margin:0 1.25rem}
 .vfh .arch-badge{right:0}
 .vfh .france-box{padding:2rem 1.5rem}
 .vfh .place-img2{display:none}
 .vfh .arch-photo{aspect-ratio:4/3}
 .vfh .mkt-aside{position:static}
}
