:root { --ink:#252522; --muted:#716e67; --cream:#f5f0e8; --paper:#fbfaf7; --wood:#a47850; --gold:#b59055; --line:#ddd5c8; --ease:cubic-bezier(.23,1,.32,1); }
html { color-scheme:light; }
[hidden] { display:none !important; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans", sans-serif; font-size:15px; line-height:1.6; }
button, input, textarea, select { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
button { border:0; cursor:pointer; }
.site-shell { overflow:hidden; }
.site-header { height:78px; padding:12px clamp(20px,5vw,72px); display:flex; align-items:center; justify-content:space-between; background:rgba(251,250,247,.93); backdrop-filter:blur(14px); position:fixed; z-index:20; top:0; width:100%; border-bottom:1px solid rgba(37,37,34,.08); }
.brand { display:flex; align-items:center; gap:11px; text-transform:uppercase; letter-spacing:.07em; font-size:9px; line-height:1.25; font-weight:600; }
.brand img { height:50px; width:50px; object-fit:contain; mix-blend-mode:multiply; }
.brand strong { color:#ae741d; font-weight:700; }
.desktop-nav { display:flex; align-items:center; gap:clamp(16px,2.2vw,36px); font-size:12px; color:#56534c; }
.desktop-nav a { transition:color .2s; }
.desktop-nav a:hover { color:var(--gold); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:14px 21px; min-height:48px; font-size:12px; font-weight:700; letter-spacing:.02em; transition:transform .16s var(--ease), background .2s, color .2s; }
.button:active { transform:scale(.97); }
.button-dark { background:var(--ink); color:white; }
.button-dark:hover { background:#4a473f; }
.nav-cta { min-height:40px; padding:10px 17px; }
.menu-toggle { display:none; background:none; color:var(--ink); padding:8px; }
.section-pad { padding:clamp(82px,10vw,140px) clamp(20px,7vw,110px); }
.hero { min-height:760px; padding-top:150px; display:grid; grid-template-columns:minmax(280px,.78fr) minmax(420px,1.22fr); gap:clamp(30px,6vw,100px); align-items:center; background:var(--cream); }
.hero-copy { max-width:570px; }
.eyebrow { display:flex; align-items:center; gap:12px; color:var(--gold); text-transform:uppercase; letter-spacing:.17em; font-size:10px; font-weight:700; margin:0 0 24px; }
.eyebrow span { display:inline-block; width:30px; height:1px; background:currentColor; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:"Playfair Display", serif; font-weight:600; line-height:1.08; letter-spacing:-.035em; }
h1 { font-size:clamp(46px,5.8vw,80px); margin-bottom:26px; }
h2 { font-size:clamp(37px,4.6vw,65px); margin-bottom:23px; }
h1 em,h2 em { font-style:italic; font-weight:500; }
.hero-lead { max-width:370px; color:var(--muted); font-size:16px; margin-bottom:35px; }
.hero-actions { display:flex; align-items:center; gap:27px; flex-wrap:wrap; }
.text-link { display:inline-flex; align-items:center; gap:10px; background:none; padding:10px 0; font-weight:700; font-size:12px; color:var(--ink); border-bottom:1px solid var(--gold); }
.text-link span { color:var(--gold); font-size:18px; }
.hero-note { margin-top:75px; display:flex; align-items:center; gap:14px; color:#817c70; font-size:11px; }
.gold-line { width:45px; height:1px; background:var(--gold); }
.panel-wrap { height:560px; display:flex; gap:10px; position:relative; min-width:0; }
.project-panel { height:100%; min-width:0; flex:1; position:relative; overflow:hidden; padding:0; background:#ddd; transition:flex .55s var(--ease), transform .25s; }
.project-panel.active { flex:1.55; }
.project-panel img { width:100%; height:100%; display:block; object-fit:cover; }
.project-panel:first-child img { object-position:center; }
.project-panel:not(.active)::after { content:""; position:absolute; inset:0; background:rgba(20,19,16,.2); transition:background .3s; }
.project-panel:hover::after { background:rgba(20,19,16,.04); }
.panel-label { position:absolute; bottom:19px; left:19px; color:white; z-index:1; font-family:"Playfair Display"; font-size:18px; }
.panel-dots { display:none; }
.cream-section { background:var(--cream); }
.section-heading { max-width:650px; margin-bottom:58px; }
.section-heading > p:last-child { color:var(--muted); max-width:475px; }
.services-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
.service-card { position:relative; min-height:260px; padding:28px 24px 25px 0; border-right:1px solid var(--line); transition:transform .25s; }
.service-card:not(:first-child) { padding-left:24px; }
.service-card:hover { transform:translateY(-5px); }
.card-number { color:var(--gold); font-size:11px; letter-spacing:.1em; }
.service-card h3 { font-family:"Playfair Display"; font-size:23px; line-height:1.2; margin:48px 0 12px; }
.service-card p { color:var(--muted); font-size:13px; max-width:210px; }
.card-arrow { position:absolute; right:23px; bottom:24px; color:var(--gold); }
.gallery-section { background:var(--paper); }
.gallery-heading { display:flex; justify-content:space-between; gap:40px; align-items:end; max-width:none; }
.gallery-heading > p { max-width:290px; color:var(--muted); font-size:13px; }
.gallery-grid { display:grid; grid-template-columns:1.05fr .95fr 1.15fr; grid-template-rows:260px 300px; gap:12px; }
.gallery-item { position:relative; overflow:hidden; margin:0; background:#ddd; }
.gallery-item img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.gallery-item:hover img { transform:scale(1.04); }
.item-1 { grid-row:span 2; }
.item-2 { grid-column:span 2; }
.gallery-item figcaption { position:absolute; bottom:0; left:0; right:0; padding:35px 20px 18px; color:white; background:linear-gradient(transparent,rgba(0,0,0,.62)); display:flex; flex-direction:column; font-size:10px; }
.gallery-item figcaption span { color:#e3c590; text-transform:uppercase; letter-spacing:.13em; }
.gallery-item figcaption b { font-family:"Playfair Display"; font-size:15px; font-weight:500; }
.dark-section { background:var(--ink); color:white; display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(40px,10vw,160px); }
.eyebrow.light { color:#c7a873; }
.method-intro > p:last-child { color:#aaa79f; max-width:280px; }
.steps-list { border-top:1px solid rgba(255,255,255,.2); }
.step { display:grid; grid-template-columns:50px 1fr 20px; gap:18px; align-items:start; padding:26px 0; border-bottom:1px solid rgba(255,255,255,.2); }
.step > span { color:#c7a873; font-family:"Playfair Display"; font-size:18px; }
.step h3 { margin:0 0 5px; font-family:"Playfair Display"; font-size:20px; font-weight:500; }
.step p { margin:0; color:#aaa79f; font-size:13px; }
.step > svg { color:#c7a873; margin-top:5px; }
.commitments { display:grid; grid-template-columns:.75fr 1.25fr; gap:80px; background:#e9dfd0; }
.commitment-list { display:grid; grid-template-columns:repeat(3,1fr); align-items:start; gap:28px; padding-top:12px; }
.commitment-list div { border-top:1px solid #b9a58d; padding-top:18px; }
.commitment-list b { color:var(--gold); font-size:11px; }
.commitment-list h3 { font-family:"Playfair Display"; font-size:19px; line-height:1.2; margin:30px 0 10px; }
.commitment-list p { color:#70685e; font-size:13px; }
.quote-section { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(50px,10vw,150px); background:var(--paper); }
.quote-intro { max-width:390px; }
.quote-intro > p:not(.eyebrow) { color:var(--muted); font-size:14px; }
.quote-side-note { margin-top:70px; padding-left:19px; border-left:2px solid var(--gold); color:#8c857a; font-size:12px; }
.quote-side-note strong { color:var(--ink); font-weight:600; }
.quote-form-wrap { max-width:650px; width:100%; }
.quote-form { display:flex; flex-direction:column; gap:22px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.quote-form label { display:flex; flex-direction:column; gap:8px; color:#716e67; font-size:11px; font-weight:700; letter-spacing:.04em; }
.quote-form input,.quote-form textarea,.quote-form select { width:100%; border:0; border-bottom:1px solid #cfc7bb; background:transparent; padding:10px 0; outline:none; color:var(--ink); border-radius:0; }
.quote-form textarea { resize:vertical; min-height:75px; }
.quote-form input:focus,.quote-form textarea:focus,.quote-form select:focus { border-color:var(--gold); }
.consent { flex-direction:row !important; align-items:flex-start; gap:10px !important; font-weight:400 !important; letter-spacing:0 !important; font-size:11px !important; line-height:1.45; }
.consent input { width:16px; height:16px; accent-color:var(--ink); flex:none; margin-top:2px; }
.form-submit { align-self:flex-start; margin-top:5px; }
.honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.success-state { border:1px solid var(--line); padding:55px 35px; text-align:center; }
.success-icon { margin:0 auto 18px; display:grid; place-items:center; width:48px; height:48px; border:1px solid var(--gold); color:var(--gold); border-radius:50%; }
.success-state h3 { font-family:"Playfair Display"; font-size:25px; font-weight:500; }
.success-state p { color:var(--muted); }
.success-state .text-link { margin:18px auto 0; }
.success-state .button { margin-top:10px; }
.contact-section { background:var(--ink); color:white; display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.contact-main > p:not(.eyebrow) { color:#aaa79f; max-width:390px; }
.contact-details { display:grid; grid-template-columns:1fr 1fr; gap:25px; align-content:center; }
.contact-details div { display:flex; flex-direction:column; gap:4px; border-top:1px solid rgba(255,255,255,.18); padding-top:13px; }
.contact-details span { color:#aaa79f; text-transform:uppercase; letter-spacing:.13em; font-size:9px; }
.contact-details strong,.contact-details a { font-size:13px; font-weight:500; }
.contact-details a:hover { color:#d5b77d; }
.pending { color:#c7a873; font-style:italic; }
.contact-actions { display:flex; gap:12px; margin-top:35px; flex-wrap:wrap; }
.button-light { background:#f5f0e8; color:var(--ink); }
.button-outline-light { color:white; border:1px solid rgba(255,255,255,.45); }
.button-outline-light:hover { border-color:white; }
.site-footer { padding:34px clamp(20px,7vw,110px) 28px; display:grid; grid-template-columns:1.2fr 1fr 1fr; align-items:center; gap:25px; background:#1c1c1a; color:#c0bdb5; }
.footer-brand { color:white; }
.footer-brand img { height:45px; width:45px; filter:grayscale(.15); }
.site-footer p { font-size:12px; margin:0; }
.footer-nav { display:flex; gap:18px; font-size:11px; justify-content:flex-end; }
.site-footer small { grid-column:1/-1; border-top:1px solid rgba(255,255,255,.12); padding-top:20px; font-size:10px; color:#77756f; }
.mobile-action-bar { display:none; }
.step > .checkmark { color:#c7a873; margin-top:2px; font-size:18px; }
.coverflow-status strong { color:var(--gold); font:inherit; }
.toast-notification { position:fixed; z-index:100; top:92px; left:50%; max-width:min(90vw,520px); transform:translate(-50%,-18px); padding:13px 18px; color:#fff; background:#2f4b35; box-shadow:0 14px 35px rgba(0,0,0,.2); font-size:13px; font-weight:600; opacity:0; pointer-events:none; transition:opacity .25s,transform .25s; }
.toast-notification.is-visible { opacity:1; transform:translate(-50%,0); }
@media (max-width:900px) { .desktop-nav { gap:14px; } .desktop-nav a { display:none; } .nav-cta { display:inline-flex; } .hero { grid-template-columns:1fr; min-height:auto; } .hero-copy { max-width:700px; } .panel-wrap { height:480px; } .services-grid { grid-template-columns:repeat(2,1fr); } .service-card:nth-child(2) { border-right:0; } .service-card:nth-child(3),.service-card:nth-child(4) { border-top:1px solid var(--line); } .dark-section,.commitments,.quote-section,.contact-section { grid-template-columns:1fr; gap:45px; } .commitment-list { max-width:700px; } .site-footer { grid-template-columns:1fr 1fr; } .footer-nav { justify-content:flex-start; } }
@media (max-width:640px) { body { padding-bottom:61px; } .site-header { height:68px; padding:9px 18px; } .brand img { height:43px; width:43px; } .brand { font-size:8px; } .menu-toggle { display:block; } .desktop-nav { display:none; position:absolute; top:68px; left:0; right:0; padding:20px; background:var(--paper); box-shadow:0 12px 20px rgba(0,0,0,.08); flex-direction:column; align-items:stretch; gap:0; } .desktop-nav.mobile-open { display:flex; } .desktop-nav a { display:block; padding:13px 3px; border-bottom:1px solid var(--line); } .desktop-nav .nav-cta { margin-top:16px; width:100%; } .section-pad { padding:78px 20px; } .hero { padding-top:118px; gap:45px; } h1 { font-size:44px; } h2 { font-size:40px; } .hero-lead { font-size:14px; } .hero-note { margin-top:42px; } .panel-wrap { height:auto; overflow-x:auto; scroll-snap-type:x mandatory; gap:8px; padding-bottom:23px; scrollbar-width:none; } .panel-wrap::-webkit-scrollbar { display:none; } .project-panel,.project-panel.active { flex:0 0 86%; height:410px; scroll-snap-align:start; } .project-panel:not(.active)::after { background:transparent; } .panel-dots { display:flex; position:absolute; bottom:0; left:0; right:0; justify-content:center; gap:6px; } .panel-dots span { width:6px; height:6px; border-radius:50%; background:#cfc6b7; } .panel-dots span.active { background:var(--gold); width:20px; border-radius:5px; } .services-grid { grid-template-columns:1fr; } .service-card,.service-card:not(:first-child) { border-right:0; padding:24px 0; min-height:205px; } .service-card:not(:first-child) { border-top:1px solid var(--line); } .service-card h3 { margin-top:30px; } .gallery-heading { display:block; } .gallery-heading > p { margin-top:25px; } .gallery-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:10px; margin-right:-20px; padding-right:20px; scrollbar-width:none; } .gallery-grid::-webkit-scrollbar { display:none; } .gallery-item,.item-1,.item-2 { flex:0 0 85%; height:390px; scroll-snap-align:start; } .item-2 { grid-column:auto; } .step { grid-template-columns:38px 1fr 18px; gap:10px; } .step h3 { font-size:18px; } .commitments { gap:20px; } .commitment-list { grid-template-columns:1fr; gap:22px; } .commitment-list h3 { margin:17px 0 7px; } .quote-side-note { margin-top:35px; } .form-row { grid-template-columns:1fr; gap:20px; } .contact-details { grid-template-columns:1fr; gap:20px; } .site-footer { grid-template-columns:1fr; padding-bottom:30px; } .footer-nav { flex-wrap:wrap; } .site-footer small { grid-column:auto; } .mobile-action-bar { display:flex; position:fixed; z-index:30; bottom:0; left:0; right:0; height:61px; background:var(--ink); box-shadow:0 -6px 18px rgba(0,0,0,.12); } .mobile-action-bar a { flex:1; display:flex; align-items:center; justify-content:center; gap:8px; color:white; font-weight:700; font-size:12px; } .mobile-action-bar a+a { background:#58745d; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; } }

/* Version 2 immersive */
.reading-progress { position:fixed; z-index:40; top:0; left:0; right:0; height:3px; background:transparent; pointer-events:none; }
.reading-progress span { display:block; height:100%; background:var(--gold); transition:width .12s linear; }
.showroom-stage { perspective:1200px; transform-style:preserve-3d; transform:translate3d(var(--pointer-x),var(--pointer-y),0) rotateX(calc(var(--pointer-y) * -.15)) rotateY(calc(var(--pointer-x) * .12)); transition:transform .18s ease-out; }
.showroom-stage::before { content:""; position:absolute; z-index:5; inset:-2px; pointer-events:none; background:repeating-linear-gradient(90deg, transparent 0 8%, rgba(119,79,42,.22) 8.2% 8.8%, transparent 9% 16%); transform-origin:left; animation:slatReveal 1.05s var(--ease) .12s both; mix-blend-mode:multiply; }
.showroom-glow { position:absolute; z-index:0; inset:7% 15%; pointer-events:none; border-radius:50%; background:radial-gradient(circle,rgba(222,181,111,.22),transparent 66%); filter:blur(35px); transform:translate(calc(var(--pointer-x) * 1.8),calc(var(--pointer-y) * 1.8)); transition:transform .3s ease-out; }
.showroom-stage .project-panel { z-index:1; transform-style:preserve-3d; box-shadow:18px 22px 35px rgba(76,53,34,.18); transition:flex .55s var(--ease),transform .55s var(--ease),filter .4s; }
.showroom-stage .project-panel:nth-of-type(2) { transform:translateZ(-18px) rotateY(4deg); }
.showroom-stage .project-panel:nth-of-type(3) { transform:translateZ(0); }
.showroom-stage .project-panel:nth-of-type(4) { transform:translateZ(-18px) rotateY(-4deg); }
.showroom-stage .project-panel.active { transform:translateZ(30px) rotateY(0); box-shadow:20px 28px 42px rgba(76,53,34,.26); }
.showroom-stage .project-panel:first-of-type { order:2; }
.showroom-stage .project-panel:nth-of-type(3) { order:1; }
.showroom-stage .project-panel:nth-of-type(4) { order:3; }
@keyframes slatReveal { from { clip-path:inset(0 0 0 0); transform:scaleX(1); opacity:1; } to { clip-path:inset(0 100% 0 0); transform:scaleX(.99); opacity:.2; } }
.reveal-target { opacity:0; transform:translateY(22px); transition:opacity .65s var(--ease),transform .65s var(--ease); }
.reveal-target.is-visible { opacity:1; transform:none; }
.reveal-target:nth-child(2) { transition-delay:.08s; }
.reveal-target:nth-child(3) { transition-delay:.14s; }
.services-grid .service-card { transform-style:preserve-3d; transition:transform .3s var(--ease),box-shadow .3s,border-color .3s; }
.services-grid .service-card:hover { transform:translateY(-8px) rotateX(1deg) rotateY(-1deg); border-color:#c2a16d; box-shadow:0 18px 32px rgba(103,76,44,.13); }
.card-number { transition:transform .3s var(--ease); display:inline-block; }
.service-card:hover .card-number { transform:translateX(4px); }
.steps-list { position:relative; }
.steps-list::before { content:""; position:absolute; left:24px; top:24px; bottom:24px; width:1px; background:linear-gradient(var(--gold),rgba(199,168,115,.2)); }
.step { position:relative; padding-left:0; transition:transform .35s var(--ease); }
.step:hover { transform:translateX(8px); }
.step > span { z-index:1; background:var(--ink); }
.coverflow { position:relative; min-height:520px; display:flex; flex-direction:column; justify-content:center; align-items:center; }
.coverflow-track { width:100%; height:420px; position:relative; display:flex; justify-content:center; align-items:center; perspective:1200px; transform-style:preserve-3d; }
.coverflow-card { position:absolute; width:min(48vw,520px); height:380px; padding:0; overflow:hidden; background:#d8d0c3; border:0; box-shadow:0 15px 30px rgba(56,43,29,.16); transform:translateX(calc(var(--offset) * 46%)) translateZ(calc(var(--distance) * -145px)) rotateY(calc(var(--offset) * -24deg)) scale(calc(1 - var(--distance) * .1)); opacity:calc(1 - var(--distance) * .2); z-index:calc(10 - var(--distance)); transition:transform .55s var(--ease),opacity .55s,box-shadow .55s; cursor:pointer; }
.coverflow-card img { width:100%; height:100%; object-fit:contain; background:#ded7cb; display:block; }
.coverflow-card.is-active { box-shadow:0 25px 55px rgba(56,43,29,.25); }
.coverflow-caption { position:absolute; left:20px; bottom:18px; color:white; font-family:"Playfair Display"; font-size:20px; text-shadow:0 2px 8px rgba(0,0,0,.5); }
.coverflow-caption small { display:block; font-family:"DM Sans"; font-size:10px; text-transform:uppercase; letter-spacing:.16em; color:#e8c98e; }
.coverflow-arrow { position:absolute; z-index:12; top:50%; width:46px; height:46px; border:1px solid #c9b99e; background:var(--paper); color:var(--ink); font-size:30px; line-height:1; transition:background .2s,transform .2s; }
.coverflow-arrow:hover { background:var(--ink); color:white; transform:scale(1.05); }
.coverflow-arrow.prev { left:0; }.coverflow-arrow.next { right:0; }
.coverflow-status { color:var(--gold); font-size:11px; letter-spacing:.08em; }.coverflow-status span { color:var(--muted); margin-left:14px; letter-spacing:0; }
.lightbox { position:fixed; inset:0; z-index:60; background:rgba(29,29,27,.97); display:flex; align-items:center; justify-content:center; padding:70px 7vw; animation:lightboxIn .25s var(--ease); }
.lightbox figure { height:100%; width:100%; margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; }
.lightbox img { max-width:90%; max-height:80vh; width:auto; height:auto; object-fit:contain; }
.lightbox figcaption { color:white; font-family:"Playfair Display"; font-size:18px; }.lightbox figcaption span { color:#c7a873; font-family:"DM Sans"; font-size:11px; margin-left:15px; }
.lightbox-close,.lightbox-arrow { position:absolute; z-index:2; color:white; background:transparent; }.lightbox-close { top:25px; right:30px; padding:10px; }.lightbox-arrow { top:50%; font-size:54px; padding:12px; }.lightbox-prev { left:22px; }.lightbox-next { right:22px; }
@keyframes lightboxIn { from { opacity:0; } to { opacity:1; } }
@media (max-width:900px) { .showroom-stage { transform:none; } .showroom-stage .project-panel:nth-of-type(2),.showroom-stage .project-panel:nth-of-type(3),.showroom-stage .project-panel:nth-of-type(4),.showroom-stage .project-panel.active { transform:none; } .coverflow { min-height:440px; } .coverflow-track { height:360px; } .coverflow-card { width:68vw; height:330px; transform:translateX(calc(var(--offset) * 58%)) translateZ(calc(var(--distance) * -100px)) rotateY(calc(var(--offset) * -15deg)) scale(calc(1 - var(--distance) * .09)); } }
@media (max-width:640px) { .showroom-stage::before { animation-duration:.75s; } .showroom-glow { display:none; } .showroom-stage { transform:none !important; } .coverflow { min-height:410px; margin:0 -20px; } .coverflow-track { height:330px; overflow:hidden; } .coverflow-card { width:82vw; height:310px; transform:translateX(calc(var(--offset) * 82%)) translateZ(calc(var(--distance) * -50px)) rotateY(calc(var(--offset) * -8deg)) scale(calc(1 - var(--distance) * .06)); } .coverflow-arrow { width:38px; height:38px; font-size:24px; top:auto; bottom:36px; } .coverflow-arrow.prev { left:20px; }.coverflow-arrow.next { right:20px; }.coverflow-status { margin-top:18px; }.coverflow-status span { display:none; } .lightbox { padding:60px 20px 80px; }.lightbox img { max-width:100%; max-height:70vh; }.lightbox-arrow { font-size:38px; }.lightbox-prev { left:2px; }.lightbox-next { right:2px; } }
@media (prefers-reduced-motion:reduce) { .showroom-stage,.showroom-stage .project-panel,.coverflow-card { transform:none !important; transition:none !important; } .showroom-stage::before { display:none; } .reveal-target { opacity:1; transform:none; transition:none; } .reading-progress span { transition:none; } }

/* Micro-interactions premium */
.desktop-nav a { position:relative; padding:5px 0; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--gold); transition:right .28s var(--ease); }
.desktop-nav a:hover::after,.desktop-nav a.active::after { right:0; }
.button svg { transition:transform .25s var(--ease); }.button:hover svg { transform:translate(3px,-3px); }
.magnetic { will-change:transform; }
.step::before { content:""; position:absolute; left:21px; top:0; bottom:0; width:7px; background:var(--gold); transform:scaleY(0); transform-origin:top; transition:transform .65s var(--ease); opacity:.18; }
.step.is-active::before { transform:scaleY(1); }
.step.is-active > span { color:#f1d39c; }
@media (max-width:640px) { .desktop-nav a::after { display:none; } .magnetic { transform:none !important; } }
@media (prefers-reduced-motion:reduce) { .desktop-nav a::after,.button svg,.step::before { transition:none; } }

/* Correction V2 : hiérarchie des panneaux de l’accueil */
.showroom-stage .panel-0 { order:2; transform:translateZ(30px); }
.showroom-stage .panel-1 { order:1; transform:translateZ(-18px) rotateY(4deg); }
.showroom-stage .panel-2 { order:3; transform:translateZ(-18px) rotateY(-4deg); }
.showroom-stage .panel-0.active { transform:translateZ(45px) rotateY(0); }
.showroom-stage .panel-1.active,.showroom-stage .panel-2.active { transform:translateZ(30px) rotateY(0); }
@media (max-width:900px) { .showroom-stage .panel-0,.showroom-stage .panel-1,.showroom-stage .panel-2,.showroom-stage .panel-0.active,.showroom-stage .panel-1.active,.showroom-stage .panel-2.active { transform:none; } }

/* Nuances de couleurs entre sections : mêmes tokens, rythmes plus subtils */
.hero { background:#f5efe6; }
.services { background:#eee7dc; }
.gallery-section { background:#fbfaf7; }
.dark-section { background:#272724; }
.commitments { background:#e9dece; }
.quote-section { background:#f7f5f0; }
.contact-section { background:#222321; }
.site-footer { background:#191a18; }
.services-grid,.gallery-section .eyebrow,.quote-section .eyebrow { --line:#d8cdbd; }

/* Corrections du brief 07 */
section[id] { scroll-margin-top:88px; }
.required-label { margin-left:4px; color:var(--gold); font-size:9px; font-weight:500; letter-spacing:.02em; }
.coverflow-card::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(20,18,15,.58)); pointer-events:none; }
.coverflow-caption { z-index:1; }
@media (max-width:640px) {
  body { padding-bottom:calc(64px + env(safe-area-inset-bottom)); }
  .hero { padding-top:88px; gap:22px; }
  h1 { font-size:39px; line-height:1.02; margin-bottom:16px; }
  .hero-lead { margin-bottom:20px; }
  .hero-note { margin-top:22px; }
  .panel-wrap { height:auto; padding-bottom:0; }
  .project-panel,.project-panel.active { height:255px; }
  .section-pad { padding-top:78px; padding-bottom:78px; }
  .gallery-section { padding-bottom:64px; }
  .gallery-section .coverflow { min-height:320px; }
  .gallery-section .coverflow-track { height:250px; }
  .gallery-section .coverflow-card { height:230px; }
  .mobile-action-bar { height:calc(64px + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom); }
  .mobile-action-bar a { min-width:0; flex:1 1 50%; }
  section[id] { scroll-margin-top:76px; }
}
@media (hover:none) {
  .service-card:hover { transform:none !important; box-shadow:none !important; }
  .service-card:active { transform:scale(.995); }
  .project-panel:hover::after { background:rgba(20,19,16,.2); }
}

/* Priorité finale de l’ordre desktop des panneaux */
.showroom-stage .project-panel.panel-0 { order:2; }
.showroom-stage .project-panel.panel-1 { order:1; }
.showroom-stage .project-panel.panel-2 { order:3; }


/* Nouveau brief éditorial — sans 3D */
.brief07-site .site-header { background:rgba(251,250,247,.96); }
.brief07-site .desktop-nav a.active { color:var(--gold); }
.brief07-site .brief-hero { min-height:clamp(620px,88vh,860px); padding-top:clamp(130px,14vw,175px); display:grid; grid-template-columns:minmax(280px,.82fr) minmax(380px,1.18fr); gap:clamp(34px,8vw,120px); align-items:center; background:var(--cream); }
.brief07-site .brief-hero-copy { max-width:600px; }
.brief07-site .brief-hero h1 { max-width:560px; }
.brief07-site .brief-hero h1 em { display:block; }
.brief07-site .brief-hero-media { margin:0; position:relative; min-height:clamp(440px,61vh,650px); overflow:hidden; background:#d8c9b8; }
.brief07-site .brief-hero-media img { display:block; width:100%; height:100%; min-height:inherit; object-fit:cover; object-position:center; }
.brief07-site .brief-hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 48%,rgba(24,23,20,.68)); pointer-events:none; }
.brief07-site .brief-hero-media figcaption { position:absolute; z-index:1; left:25px; right:25px; bottom:23px; color:#fff; font-family:"Playfair Display",serif; font-size:20px; line-height:1.2; }
.brief07-site .brief-hero-media figcaption span { display:block; margin-bottom:8px; color:#e3c590; text-transform:uppercase; letter-spacing:.15em; font:700 10px "DM Sans",sans-serif; }
.brief07-site .presentation-section { background:var(--paper); }
.brief07-site .section-kicker { color:var(--gold); text-transform:uppercase; letter-spacing:.15em; font-size:10px; font-weight:700; display:flex; align-items:center; gap:12px; margin-bottom:35px; }
.brief07-site .section-kicker span { width:45px; height:1px; background:currentColor; }
.brief07-site .presentation-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,10vw,160px); align-items:end; }
.brief07-site .presentation-grid h2 { max-width:520px; margin:0; }
.brief07-site .presentation-grid h2 em { display:block; }
.brief07-site .presentation-grid p { max-width:450px; color:var(--muted); margin:0; }
.brief07-site .commitment-list-five { grid-template-columns:repeat(5,1fr); gap:20px; }
.brief07-site .commitment-list-five h3 { font-size:17px; }
.brief07-site .contact-section { scroll-margin-top:78px; }
.brief07-site .quote-section { scroll-margin-top:78px; }
.brief07-site .brief-hero, .brief07-site #presentation, .brief07-site #savoir-faire, .brief07-site #realisations, .brief07-site #methode, .brief07-site #contact { scroll-margin-top:88px; }
.brief07-site .text-link svg { color:var(--gold); }
@media (max-width:900px) {
  .brief07-site .brief-hero { grid-template-columns:1fr; min-height:auto; }
  .brief07-site .brief-hero-media { min-height:540px; }
  .brief07-site .presentation-grid { gap:35px; }
  .brief07-site .commitment-list-five { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:640px) {
  .brief07-site .brief-hero { padding-top:108px; gap:34px; }
  .brief07-site .brief-hero h1 { font-size:clamp(42px,12vw,56px); margin-bottom:20px; }
  .brief07-site .brief-hero h1 em { display:inline; }
  .brief07-site .brief-hero-media { min-height:440px; }
  .brief07-site .brief-hero-media figcaption { font-size:18px; }
  .brief07-site .presentation-grid { grid-template-columns:1fr; gap:20px; }
  .brief07-site .presentation-grid h2 { font-size:42px; }
  .brief07-site .commitment-list-five { grid-template-columns:1fr 1fr; gap:18px; }
  .brief07-site .commitment-list-five h3 { font-size:18px; }
}

.brief07-site .footer-contact { display:flex; flex-direction:column; gap:4px; font-size:11px; color:#c0bdb5; }
.brief07-site .footer-contact p { margin:0 0 5px; }
.brief07-site .footer-contact a { display:inline-flex; align-items:center; gap:5px; color:#f5f0e8; }
.brief07-site .footer-contact a:hover { color:#d5b77d; }
@media (max-width:640px) { .brief07-site .footer-contact { gap:6px; } }

/* Corrections ciblées du brief — sans modifier l’identité visuelle */
.footer-contact { display:flex; flex-direction:column; gap:6px; font-size:12px; }
.footer-contact a { color:#e0d2bb; }
.footer-contact a:hover { color:#fff; }
.footer-contact small { display:block; color:#8d897f; font-size:10px; letter-spacing:.02em; }
.contact-details a small { display:block; color:#aaa79f; font-size:10px; margin-top:2px; }
@media (max-width:640px) {
  body { padding-bottom:60px; }
  .site-header { height:62px; padding:7px 18px; }
  .brand img { height:39px; width:39px; }
  .desktop-nav { top:62px; }
  .section-pad { padding-top:70px; padding-bottom:70px; }
  .brief-hero { padding-top:104px; gap:34px; }
  .mobile-action-bar { height:60px; background:var(--ink); }
  .mobile-action-bar a { background:var(--ink); }
  .mobile-action-bar a+a { background:var(--ink); border-left:1px solid rgba(255,255,255,.22); }
  .footer-contact { gap:8px; }
  .footer-contact a { overflow-wrap:anywhere; }
  .contact-details a small { overflow-wrap:anywhere; }
}

@media (min-width:641px) and (max-width:900px) {
  .menu-toggle { display:block; }
  .desktop-nav { display:none; position:absolute; top:78px; left:0; right:0; padding:20px 7vw; background:var(--paper); box-shadow:0 12px 20px rgba(0,0,0,.08); flex-direction:column; align-items:stretch; gap:0; }
  .desktop-nav.mobile-open { display:flex; }
  .desktop-nav a { display:block; padding:13px 3px; border-bottom:1px solid var(--line); }
  .desktop-nav .nav-cta { margin-top:16px; width:100%; }
}
