:root {
  --cream:#F4EFE6;--cream-dark:#EAE3D5;--cream-mid:#EDE7DC;
  --anthracite:#242424;--anthracite-light:#363636;
  --terracotta:#C4714A;--terracotta-dark:#A85A38;--terracotta-light:#D4896A;
  --sage:#7A8C72;--white:#FAFAF8;--text-body:#4A4843;--text-light:#8A8480;
  --ff-display:'Playfair Display',Georgia,serif;
  --ff-body:'DM Sans',system-ui,sans-serif;
  --ff-accent:'Caveat',cursive;
  --ease-out:cubic-bezier(0.16,1,0.3,1);
  --ease-in-out:cubic-bezier(0.4,0,0.2,1);
  --dur:0.35s;--dur-slow:0.65s;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:16px;}
body{font-family:var(--ff-body);background:var(--cream);color:var(--anthracite);line-height:1.6;overflow-x:hidden;cursor:none;}
img{display:block;max-width:100%;}
a{text-decoration:none;color:inherit;}
button{font-family:inherit;}

/* CURSOR */
#cursor{position:fixed;top:0;left:0;width:28px;height:28px;font-size:22px;line-height:1;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform var(--dur) var(--ease-out),filter var(--dur) ease;will-change:transform;filter:drop-shadow(0 2px 6px rgba(0,0,0,0.35));}
#cursor-ring{position:fixed;top:0;left:0;width:44px;height:44px;border:1.5px solid var(--terracotta);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width var(--dur) var(--ease-out),height var(--dur) var(--ease-out),opacity var(--dur) ease;opacity:0.55;will-change:transform;}
body.hovering #cursor{transform:translate(-50%,-50%) scale(1.5) rotate(-18deg);filter:drop-shadow(0 3px 10px rgba(196,113,74,0.5));}
body.hovering #cursor-ring{width:65px;height:65px;opacity:0.3;}

/* PROGRESS */
#progress-bar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--terracotta) 0%,var(--terracotta-light) 100%);z-index:9997;transition:width 0.1s linear;}

/* NAV */
nav{position:fixed;inset:0 0 auto;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:1.4rem 2.5rem;transition:background var(--dur-slow) ease,padding var(--dur-slow) ease,box-shadow var(--dur-slow) ease;}
nav.scrolled{background:rgba(28,28,28,0.96);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:0.9rem 2.5rem;box-shadow:0 1px 0 rgba(255,255,255,0.05),0 8px 40px rgba(0,0,0,0.35);}
.nav-logo{font-family:var(--ff-display);font-size:1.3rem;font-weight:700;color:var(--white);letter-spacing:0.01em;}
.nav-logo em{font-style:normal;color:var(--terracotta);}
.nav-links{display:flex;gap:2.2rem;list-style:none;}
.nav-links a{color:rgba(255,255,255,0.78);font-size:0.82rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;position:relative;transition:color var(--dur) ease;}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--terracotta);transition:width var(--dur) var(--ease-out);}
.nav-links a:hover{color:var(--white);}
.nav-links a:hover::after{width:100%;}
.nav-cta{display:inline-flex;align-items:center;gap:0.4rem;background:var(--terracotta);color:var(--white)!important;padding:0.55rem 1.2rem;border-radius:3px;font-size:0.82rem!important;letter-spacing:0.08em!important;transition:background var(--dur) ease,transform var(--dur) ease!important;}
.nav-cta:hover{background:var(--terracotta-dark)!important;transform:translateY(-1px);}
.nav-cta::after{display:none!important;}
.burger-btn{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:none;padding:4px;}
.burger-btn span{display:block;width:24px;height:2px;background:var(--white);border-radius:2px;transition:all 0.32s var(--ease-out);transform-origin:center;}
.burger-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger-btn.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.burger-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-drawer{position:fixed;top:0;right:-100%;width:min(320px,85vw);height:100dvh;background:var(--anthracite);z-index:999;padding:5.5rem 2rem 2rem;display:flex;flex-direction:column;gap:0.2rem;transition:right 0.42s var(--ease-out);box-shadow:-20px 0 60px rgba(0,0,0,0.5);}
.mobile-drawer.open{right:0;}
.mobile-drawer a{color:rgba(255,255,255,0.85);font-family:var(--ff-display);font-size:1.3rem;padding:0.85rem 0;border-bottom:1px solid rgba(255,255,255,0.08);transition:color var(--dur) ease,padding-left var(--dur) ease;}
.mobile-drawer a:hover{color:var(--terracotta);padding-left:0.5rem;}
.mobile-drawer .drawer-cta{margin-top:1.5rem;background:var(--terracotta);color:var(--white)!important;border:none;border-radius:3px;text-align:center;padding:1rem!important;font-family:var(--ff-body)!important;font-size:0.9rem!important;}
.overlay-bg{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:998;opacity:0;pointer-events:none;transition:opacity 0.4s ease;}
.overlay-bg.open{opacity:1;pointer-events:all;}

/* HERO */
#hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--anthracite);}
.hero-parallax{position:absolute;inset:-10%;will-change:transform;}
.hero-bg-1{position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 15% 55%,rgba(196,113,74,0.16) 0%,transparent 65%),radial-gradient(ellipse 60% 50% at 85% 20%,rgba(122,140,114,0.10) 0%,transparent 60%),radial-gradient(ellipse 50% 70% at 90% 85%,rgba(196,113,74,0.08) 0%,transparent 55%),linear-gradient(160deg,#191919 0%,#2C2C2C 45%,#1C1C1C 100%);}
.hero-grain{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E");background-repeat:repeat;opacity:0.5;mix-blend-mode:overlay;}
.hero-orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:0.07;animation:orbFloat 12s ease-in-out infinite;}
.hero-orb-1{width:500px;height:500px;background:var(--terracotta);top:-120px;right:-80px;animation-delay:0s;}
.hero-orb-2{width:380px;height:380px;background:var(--sage);bottom:-60px;left:-100px;animation-delay:-4s;}
.hero-orb-3{width:300px;height:300px;background:var(--terracotta-light);top:30%;left:40%;animation-delay:-8s;}
@keyframes orbFloat{0%,100%{transform:translate(0,0) scale(1);}33%{transform:translate(30px,-20px) scale(1.05);}66%{transform:translate(-20px,15px) scale(0.95);}}
.hero-drip{position:absolute;top:0;left:15%;width:3px;background:linear-gradient(to bottom,var(--terracotta) 0%,transparent 100%);opacity:0.25;animation:drip 3s 1.5s var(--ease-out) forwards;height:0;}
.hero-drip:nth-child(2){left:45%;animation-delay:2s;opacity:0.15;}
.hero-drip:nth-child(3){left:78%;animation-delay:2.5s;opacity:0.2;width:2px;}
@keyframes drip{to{height:120px;}}
.hero-content{position:relative;z-index:2;text-align:center;max-width:960px;padding:2rem;}
.hero-eyebrow{display:inline-flex;align-items:center;gap:0.6rem;font-family:var(--ff-accent);font-size:1.2rem;color:var(--terracotta-light);margin-bottom:1.8rem;opacity:0;animation:slideDown 0.7s 0.4s var(--ease-out) forwards;}
.hero-eyebrow::before,.hero-eyebrow::after{content:'';display:block;width:30px;height:1px;background:currentColor;opacity:0.5;}
.hero-title{font-family:var(--ff-display);font-size:clamp(3.4rem,9vw,7.5rem);font-weight:900;color:var(--white);line-height:1.02;letter-spacing:-0.02em;position:relative;display:inline-block;opacity:0;animation:slideUp 0.8s 0.6s var(--ease-out) forwards;}
.hero-title-line2{display:block;color:var(--terracotta);font-style:italic;position:relative;}
.brush-svg{position:absolute;bottom:-18px;left:-5%;width:110%;overflow:visible;pointer-events:none;}
.brush-path{fill:none;stroke:var(--terracotta);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:0.55;stroke-dasharray:700;stroke-dashoffset:700;animation:paintStroke 1.4s 1.2s var(--ease-out) forwards;}
.brush-path-2{fill:none;stroke:var(--terracotta-light);stroke-width:3;stroke-linecap:round;opacity:0.25;stroke-dasharray:700;stroke-dashoffset:700;animation:paintStroke 1.4s 1.5s var(--ease-out) forwards;}
@keyframes paintStroke{to{stroke-dashoffset:0;}}
.hero-subtitle{font-size:clamp(0.95rem,2vw,1.15rem);color:rgba(255,255,255,0.62);max-width:520px;margin:3.5rem auto 2.8rem;font-weight:300;line-height:1.85;opacity:0;animation:slideUp 0.8s 0.9s var(--ease-out) forwards;}
.hero-location{display:inline-flex;align-items:center;gap:0.4rem;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.12);border-radius:20px;padding:0.35rem 0.9rem;font-size:0.8rem;color:rgba(255,255,255,0.55);margin-bottom:2rem;opacity:0;animation:slideUp 0.7s 0.75s var(--ease-out) forwards;}
.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;opacity:0;animation:slideUp 0.8s 1.1s var(--ease-out) forwards;}
.btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.95rem 2rem;border-radius:3px;font-weight:500;font-size:0.9rem;letter-spacing:0.04em;cursor:none;border:none;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) ease,background var(--dur) ease;}
.btn:hover{transform:translateY(-3px);}
.btn-primary{background:var(--terracotta);color:var(--white);}
.btn-primary:hover{background:var(--terracotta-dark);box-shadow:0 12px 40px rgba(196,113,74,0.45);}
.btn-ghost{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,0.28);}
.btn-ghost:hover{border-color:var(--terracotta);color:var(--terracotta-light);}
.scroll-cue{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:0.5rem;opacity:0;animation:fadeIn 0.7s 2s forwards;}
.scroll-cue-label{font-size:0.68rem;letter-spacing:0.18em;text-transform:uppercase;color:rgba(255,255,255,0.35);}
.scroll-cue-line{width:1px;height:52px;background:linear-gradient(to bottom,rgba(255,255,255,0.35) 0%,transparent 100%);animation:lineBreath 2.5s ease-in-out infinite;}
@keyframes lineBreath{0%,100%{height:52px;opacity:0.8;}50%{height:32px;opacity:0.3;}}

/* SECTIONS */
section{padding:7rem 2rem;}
.container{max-width:1120px;margin:0 auto;}
.tag{display:inline-block;font-family:var(--ff-accent);font-size:1.1rem;color:var(--terracotta);margin-bottom:0.6rem;}
.heading{font-family:var(--ff-display);font-size:clamp(2rem,4.5vw,3.2rem);font-weight:700;line-height:1.18;color:var(--anthracite);}
.heading em{font-style:italic;color:var(--terracotta);}
.heading-light{color:var(--white);}
.lead{font-size:1.02rem;color:var(--text-body);line-height:1.82;}
.lead-light{color:rgba(255,255,255,0.58);}
.reveal{opacity:0;transform:translateY(38px);transition:opacity 0.72s var(--ease-out),transform 0.72s var(--ease-out);}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal[data-delay="1"]{transition-delay:0.10s;}
.reveal[data-delay="2"]{transition-delay:0.20s;}
.reveal[data-delay="3"]{transition-delay:0.30s;}
.reveal[data-delay="4"]{transition-delay:0.40s;}
.reveal[data-delay="5"]{transition-delay:0.50s;}
.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity 0.72s var(--ease-out),transform 0.72s var(--ease-out);}
.reveal-left.visible{opacity:1;transform:translateX(0);}

/* ABOUT */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.about-visual{position:relative;}
.about-canvas{position:relative;width:100%;padding-top:115%;background:var(--cream-mid);border-radius:4px;overflow:hidden;}
.about-canvas-inner{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:2rem;}
.about-paint-svg{position:absolute;inset:0;width:100%;height:100%;opacity:0.09;}
.about-quote{position:relative;z-index:2;font-family:var(--ff-accent);font-size:1.5rem;line-height:1.45;color:var(--anthracite);border-left:3px solid var(--terracotta);padding-left:1.2rem;}
.about-badge{position:absolute;top:-18px;right:-18px;width:96px;height:96px;background:var(--terracotta);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--white);box-shadow:0 12px 40px rgba(196,113,74,0.42);z-index:3;}
.about-badge-num{font-family:var(--ff-display);font-size:1.7rem;font-weight:900;line-height:1;}
.about-badge-txt{font-size:0.58rem;text-transform:uppercase;letter-spacing:0.08em;opacity:0.88;margin-top:2px;}
.about-content p{margin-bottom:1.2rem;}
.about-list{list-style:none;display:flex;flex-direction:column;gap:0.75rem;margin:1.8rem 0;}
.about-list li{display:flex;align-items:center;gap:0.8rem;font-size:0.95rem;color:var(--text-body);}
.about-list .tick{width:21px;height:21px;background:var(--terracotta);border-radius:50%;display:flex;align-items:center;justify-content:center;color:white;font-size:0.65rem;font-weight:700;flex-shrink:0;}
.devis-strip{display:flex;align-items:center;gap:1rem;background:var(--cream);border-left:3px solid var(--terracotta);border-radius:0 4px 4px 0;padding:1rem 1.5rem;margin-top:0.5rem;}
.devis-icon{font-size:1.8rem;}
.devis-label{font-family:var(--ff-display);font-size:1rem;font-weight:600;}
.devis-sub{font-size:0.78rem;color:var(--text-light);margin-top:1px;}


/* SERVICES */
.services-top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3.5rem;gap:2rem;flex-wrap:wrap;}
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
.svc-card{position:relative;background:var(--white);border-radius:4px;padding:2.6rem 2.2rem;overflow:hidden;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) ease;cursor:none;}
.svc-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--terracotta) 0%,var(--terracotta-dark) 100%);opacity:0;transition:opacity var(--dur) ease;}
.svc-card:hover{transform:translateY(-10px);box-shadow:0 24px 64px rgba(0,0,0,0.13);}
.svc-card:hover::before{opacity:1;}
.svc-num{position:absolute;top:1.5rem;right:1.8rem;font-family:var(--ff-display);font-size:3.5rem;font-weight:900;color:rgba(0,0,0,0.05);line-height:1;z-index:1;transition:color var(--dur) ease;}
.svc-card:hover .svc-num{color:rgba(255,255,255,0.1);}
.svc-icon{position:relative;z-index:1;width:52px;height:52px;background:var(--cream);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:1.4rem;transition:background var(--dur) ease;}
.svc-card:hover .svc-icon{background:rgba(255,255,255,0.2);}
.svc-title{position:relative;z-index:1;font-family:var(--ff-display);font-size:1.28rem;font-weight:700;margin-bottom:0.7rem;transition:color var(--dur) ease;}
.svc-desc{position:relative;z-index:1;font-size:0.9rem;color:var(--text-body);line-height:1.75;transition:color var(--dur) ease;}
.svc-card:hover .svc-title,.svc-card:hover .svc-desc{color:rgba(255,255,255,0.92);}

/* BEFORE / AFTER GALLERY */
.gallery-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3rem;gap:2rem;flex-wrap:wrap;}
.ba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}

/* Before/after slider */
.ba-item{position:relative;border-radius:4px;overflow:hidden;cursor:none;}
.ba-item.wide{grid-column:span 2;}
.ba-slider{position:relative;width:100%;height:280px;overflow:hidden;border-radius:4px;user-select:none;}
.ba-item.wide .ba-slider{height:320px;}
.ba-after{position:absolute;inset:0;}
.ba-after img{width:100%;height:100%;object-fit:cover;}
.ba-before{position:absolute;inset:0;overflow:hidden;width:50%;transition:none;}
.ba-before img{position:absolute;top:0;left:0;height:100%;width:auto;min-width:200%;object-fit:cover;}
.ba-item.wide .ba-before img{min-width:100%;width:100%;object-fit:cover;}
.ba-divider{position:absolute;top:0;bottom:0;left:50%;width:2px;background:white;z-index:10;transform:translateX(-50%);}
.ba-handle{position:absolute;top:50%;left:50%;width:38px;height:38px;background:white;border-radius:50%;z-index:11;transform:translate(-50%,-50%);box-shadow:0 2px 14px rgba(0,0,0,0.35);display:flex;align-items:center;justify-content:center;}
.ba-handle::before{content:'◀▶';font-size:0.55rem;color:var(--anthracite);letter-spacing:-1px;}
.ba-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(20,20,20,0.9),transparent);padding:1rem 1.2rem 0.9rem;z-index:5;pointer-events:none;}
.ba-label-title{font-family:var(--ff-display);font-size:0.95rem;font-weight:600;color:white;}
.ba-label-sub{font-family:var(--ff-accent);font-size:0.8rem;color:var(--terracotta-light);}
.ba-tags{position:absolute;top:0.7rem;left:0;right:0;display:flex;justify-content:space-between;padding:0 0.8rem;z-index:6;pointer-events:none;}
.ba-tag{font-size:0.62rem;text-transform:uppercase;letter-spacing:0.1em;font-weight:600;padding:0.2rem 0.5rem;border-radius:2px;}
.ba-tag-before{background:rgba(0,0,0,0.6);color:rgba(255,255,255,0.75);}
.ba-tag-after{background:var(--terracotta);color:white;}

/* Single photo card (no before/after) */
.photo-card{position:relative;border-radius:4px;overflow:hidden;height:280px;}
.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform 0.55s var(--ease-out);}
.photo-card:hover img{transform:scale(1.06);}
.photo-card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,20,20,0.88),transparent 55%);display:flex;align-items:flex-end;padding:1rem 1.2rem;}
.photo-card-title{font-family:var(--ff-display);font-size:0.95rem;font-weight:600;color:white;}
.photo-card-sub{font-family:var(--ff-accent);font-size:0.8rem;color:var(--terracotta-light);}

/* QUOTE BAND */
.quote-band{background:var(--terracotta);padding:5rem 2rem;text-align:center;position:relative;overflow:hidden;}
.quote-band::before{content:'"';position:absolute;top:-0.3em;left:50%;transform:translateX(-50%);font-family:var(--ff-display);font-size:18rem;color:rgba(255,255,255,0.06);line-height:1;pointer-events:none;}
.quote-text{position:relative;font-family:var(--ff-display);font-size:clamp(1.3rem,3.5vw,2.1rem);font-style:italic;color:var(--white);max-width:740px;margin:0 auto 1.5rem;line-height:1.52;}
.quote-author{font-family:var(--ff-accent);font-size:1.05rem;color:rgba(255,255,255,0.72);}

/* POURQUOI */
.pourquoi-intro{text-align:center;margin-bottom:4rem;}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-bottom:5rem;}
.stat-card{background:var(--white);border-radius:4px;padding:2rem 1.4rem;text-align:center;position:relative;overflow:hidden;}
.stat-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--terracotta),var(--terracotta-light));}
.stat-val{font-family:var(--ff-display);font-size:3rem;font-weight:900;color:var(--terracotta);line-height:1;display:flex;align-items:baseline;justify-content:center;gap:1px;}
.stat-sfx{font-size:1.4rem;}
.stat-lbl{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--text-light);margin-top:0.5rem;}
.args-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2.2rem;}
.arg-card{display:flex;gap:1.5rem;align-items:flex-start;}
.arg-icon{width:52px;height:52px;flex-shrink:0;background:var(--cream-dark);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;transition:background var(--dur) ease,transform var(--dur) var(--ease-out);}
.arg-card:hover .arg-icon{background:var(--terracotta);transform:rotate(-6deg) scale(1.05);}
.arg-title{font-family:var(--ff-display);font-size:1.15rem;font-weight:700;margin-bottom:0.4rem;}
.arg-text{font-size:0.9rem;color:var(--text-body);line-height:1.75;}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:5.5rem;align-items:start;}
.contact-left .lead-light{margin-bottom:2.5rem;}
.contact-item{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem;color:rgba(255,255,255,0.72);font-size:0.92rem;}
.contact-ico{width:38px;height:38px;background:rgba(255,255,255,0.07);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.95rem;flex-shrink:0;}
.ig-btn{display:inline-flex;align-items:center;gap:0.7rem;margin-top:2rem;padding:0.85rem 1.6rem;background:linear-gradient(120deg,#f09433 0%,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%);border-radius:4px;color:white;font-weight:500;font-size:0.88rem;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) ease;cursor:none;}
.ig-btn:hover{transform:translateY(-3px);box-shadow:0 12px 36px rgba(220,39,67,0.38);}
.contact-form{display:flex;flex-direction:column;gap:1.2rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
.fgroup{display:flex;flex-direction:column;gap:0.4rem;}
.flabel{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.12em;color:rgba(255,255,255,0.4);}
.finput,.fselect,.ftextarea{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.10);border-radius:3px;padding:0.82rem 1rem;color:var(--white);font-family:var(--ff-body);font-size:0.92rem;outline:none;transition:border-color var(--dur) ease,background var(--dur) ease;cursor:none;}
.finput::placeholder,.ftextarea::placeholder{color:rgba(255,255,255,0.22);}
.finput:focus,.fselect:focus,.ftextarea:focus{border-color:var(--terracotta);background:rgba(255,255,255,0.09);}
.fselect{appearance:none;-webkit-appearance:none;}
.ftextarea{resize:vertical;min-height:130px;}
.fselect option{background:#2a2a2a;color:var(--white);}
.form-btn{align-self:flex-start;background:var(--terracotta);color:var(--white);border:none;padding:1rem 2.4rem;border-radius:3px;font-family:var(--ff-body);font-size:0.95rem;font-weight:500;letter-spacing:0.04em;cursor:none;transition:background var(--dur) ease,transform var(--dur) var(--ease-out),box-shadow var(--dur) ease;}
.form-btn:hover:not(:disabled){background:var(--terracotta-dark);transform:translateY(-2px);box-shadow:0 10px 32px rgba(196,113,74,0.42);}
.form-btn.sent{background:var(--sage);}
.form-btn:disabled{opacity:0.7;}

/* FOOTER */
footer{background:#161616;padding:3rem 2.5rem 2rem;}
.footer-inner{max-width:1120px;margin:0 auto;}
.footer-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,0.07);margin-bottom:1.8rem;flex-wrap:wrap;gap:2rem;}
.footer-brand{font-family:var(--ff-display);font-size:1.5rem;font-weight:700;color:var(--white);}
.footer-brand em{font-style:normal;color:var(--terracotta);}
.footer-tagline{font-family:var(--ff-accent);font-size:0.88rem;color:rgba(255,255,255,0.35);margin-top:3px;}
.footer-nav{display:flex;gap:2rem;list-style:none;flex-wrap:wrap;}
.footer-nav a{color:rgba(255,255,255,0.42);font-size:0.82rem;transition:color var(--dur) ease;cursor:none;}
.footer-nav a:hover{color:var(--terracotta-light);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;}
.footer-copy{color:rgba(255,255,255,0.28);font-size:0.78rem;}
.footer-legal{display:flex;gap:1.5rem;}
.footer-legal a{color:rgba(255,255,255,0.28);font-size:0.78rem;transition:color var(--dur) ease;cursor:none;}
.footer-legal a:hover{color:rgba(255,255,255,0.55);}

@keyframes slideUp  {from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}
@keyframes slideDown{from{opacity:0;transform:translateY(-18px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn   {from{opacity:0;}to{opacity:1;}}



/* RENOVATION */
.renov-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.renov-card{background:var(--cream);border-radius:4px;padding:2.2rem 2rem;border-top:3px solid transparent;transition:border-color var(--dur) ease,transform var(--dur) var(--ease-out),box-shadow var(--dur) ease;}
.renov-card:hover{border-color:var(--terracotta);transform:translateY(-6px);box-shadow:0 18px 48px rgba(0,0,0,0.09);}
.renov-card-wide{grid-column:span 2;}
.renov-icon-wrap{width:50px;height:50px;background:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--terracotta);margin-bottom:1.2rem;box-shadow:0 2px 12px rgba(0,0,0,0.07);transition:background var(--dur) ease,color var(--dur) ease;}
.renov-card:hover .renov-icon-wrap{background:var(--terracotta);color:var(--white);}
.renov-title{font-family:var(--ff-display);font-size:1.18rem;font-weight:700;margin-bottom:0.55rem;color:var(--anthracite);}
.renov-desc{font-size:0.9rem;color:var(--text-body);line-height:1.75;}
@media(max-width:960px){.renov-grid{grid-template-columns:1fr 1fr;}.renov-card-wide{grid-column:span 2;}}
@media(max-width:540px){.renov-grid{grid-template-columns:1fr;}.renov-card-wide{grid-column:span 1;}}

.svc-link{position:relative;z-index:1;display:inline-flex;align-items:center;gap:0.4rem;margin-top:1.2rem;font-size:0.82rem;font-weight:600;letter-spacing:0.06em;color:var(--terracotta);transition:color var(--dur) ease;}
.svc-card:hover .svc-link{color:rgba(255,255,255,0.9);}

.svc-icon{display:none;}


/* AJOUTS : accessibilité, FAQ, formulaire */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--terracotta);outline-offset:3px;}
.photo-card picture,.ba-after picture,.ba-before picture{display:contents;}
.faq-list{max-width:820px;margin:3rem auto 0;display:flex;flex-direction:column;gap:0.9rem;}
.faq-item{background:var(--cream);border-radius:4px;border-left:3px solid var(--terracotta);}
.faq-item summary{list-style:none;cursor:pointer;padding:1.2rem 1.5rem;font-family:var(--ff-display);font-size:1.08rem;font-weight:600;display:flex;justify-content:space-between;gap:1rem;align-items:center;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+';font-family:var(--ff-body);font-size:1.4rem;color:var(--terracotta);transition:transform var(--dur) ease;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{padding:0 1.5rem 1.3rem;font-size:0.93rem;color:var(--text-body);line-height:1.78;}
.form-note{font-size:0.76rem;color:rgba(255,255,255,0.42);line-height:1.6;}
.form-note a{text-decoration:underline;}
.form-status{font-size:0.9rem;min-height:1.2em;}
.form-status.ok{color:#A9C29F;}
.form-status.err{color:#F0A58A;}
.footer-legal a{cursor:pointer;}

/* RESPONSIVE */
@media(max-width:960px){
  nav{padding:1.2rem 1.5rem;}
  nav.scrolled{padding:0.8rem 1.5rem;}
  .nav-links,.nav-cta{display:none;}
  .burger-btn{display:flex;}
  section{padding:5rem 1.5rem;}
  .about-grid{grid-template-columns:1fr;gap:3rem;}
  .about-visual{order:-1;}
  .about-canvas{padding-top:70%;}
  .services-grid{grid-template-columns:1fr;}
  .ba-grid{grid-template-columns:1fr 1fr;}
  .ba-item.wide{grid-column:span 2;}
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .args-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;gap:3.5rem;}
  .form-row{grid-template-columns:1fr;}
}
@media(max-width:540px){
  section{padding:4rem 1.2rem;}
  .ba-grid{grid-template-columns:1fr;}
  .ba-item.wide{grid-column:span 1;}
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .footer-top{flex-direction:column;align-items:flex-start;}
  .footer-bottom{flex-direction:column;align-items:flex-start;}
  .footer-nav{gap:1.2rem;}
}
@media(hover:none){
  #cursor,#cursor-ring{display:none;}
  body{cursor:auto;}
  *{cursor:auto!important;}
}


/* ===== Thèmes de sections (pilotés par Sanity) ===== */
.theme-cream{background:var(--cream);}
.theme-white{background:var(--white);}
.theme-dark{background:var(--anthracite);}

/* ===== Pages intérieures ===== */
body.inner nav{background:rgba(28,28,28,0.96);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:0.9rem 2.5rem;box-shadow:0 1px 0 rgba(255,255,255,0.05),0 8px 40px rgba(0,0,0,0.35);}
@media(max-width:960px){body.inner nav{padding:0.8rem 1.5rem;}}
body.inner main>section:first-child{padding-top:9rem;}
.page-head{padding:9rem 2rem 2rem;}
.page-head + section{padding-top:3rem;}
.page-head .lead{margin-top:1rem;max-width:640px;}
.prose{max-width:780px;margin:0 auto;}
.prose p,.prose li{color:var(--text-body);font-size:1.02rem;line-height:1.85;margin-bottom:1rem;}
.prose h2,.prose h3{font-family:var(--ff-display);color:var(--anthracite);margin:2rem 0 .7rem;line-height:1.25;}
.prose h3{font-size:1.5rem;}.prose h4{font-size:1.15rem;margin:1.5rem 0 .5rem;}
.prose ul,.prose ol{padding-left:1.4rem;margin-bottom:1rem;}
.prose a{color:var(--terracotta);}
.theme-dark .prose p,.theme-dark .prose li{color:rgba(255,255,255,0.72);}
.theme-dark .prose h2,.theme-dark .prose h3,.theme-dark .prose h4{color:var(--white);}
.prose img,.prose-img{width:100%;height:auto;border-radius:4px;display:block;}
.hero-img{margin:0 auto 2.5rem;max-width:980px;}
.hero-img img{width:100%;height:auto;border-radius:4px;display:block;}

/* Galerie photo */
.gal-grid{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:1rem;margin-top:3rem;}
.gal-item{margin:0;overflow:hidden;border-radius:4px;background:var(--cream-dark);}
.gal-item img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .55s var(--ease-out);}
.gal-item:hover img{transform:scale(1.05);}
.gal-item figcaption{padding:.7rem 1rem;font-size:.85rem;color:var(--text-light);background:var(--white);}
@media(max-width:960px){.gal-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:540px){.gal-grid{grid-template-columns:1fr;}}

/* Image + texte */
.img-txt-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.img-txt-grid.right .img-txt-media{order:2;}
.img-txt-media img{width:100%;height:auto;border-radius:4px;display:block;}
@media(max-width:860px){.img-txt-grid{grid-template-columns:1fr;gap:2rem;}.img-txt-grid.right .img-txt-media{order:0;}}

/* Appel à l'action */
.cta-sec{text-align:center;}
.cta-sec .container{max-width:720px;}
.cta-sec .lead{margin:1.2rem auto 2rem;}

/* Page projet */
.proj-meta{display:flex;flex-wrap:wrap;gap:.6rem 2rem;margin:1.2rem 0 0;font-size:.9rem;color:var(--text-light);}
.proj-meta b{color:var(--anthracite);font-weight:600;}
.proj-block{margin-top:3.5rem;}
.proj-block .ba-grid{margin-top:1rem;}
