/* ===== Sections du bas (Formules → Contact) — fond clair, en relief ===== */
:host{
  --bg:#f8f6f2; --bg2:#f1ede6; --card:#ffffff;
  --ink:#1a1a1a; --muted:rgba(26,26,26,.74); --faint:rgba(26,26,26,.52);
  --line:rgba(26,26,26,.12); --line2:rgba(26,26,26,.2);
  --gold:#97732f;           /* doré lisible sur fond clair (textes) */
  --gold-bright:#d9b46b;    /* doré décoratif (filets, fonds) */
  --radius:22px; --pill:999px;
  --shadow-1:0 1px 2px rgba(26,26,26,.04),0 14px 34px -18px rgba(26,26,26,.22);
  --shadow-2:0 2px 4px rgba(26,26,26,.05),0 50px 90px -30px rgba(26,26,26,.42);
  --ease:cubic-bezier(.2,.7,.2,1);
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Montserrat','Helvetica Neue',system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
.shadow-body{display:block;width:100%;background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:15px;line-height:1.75;overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
.shadow-body em{font-style:italic}
a{color:inherit}
img{display:block;max-width:100%}
.div{display:none}

/* ---- Base ---- */
section{position:relative;padding:clamp(64px,7.5vw,112px) max(5vw,calc((100vw - 1120px)/2));overflow:hidden}
.s-eye{display:flex;align-items:center;gap:14px;margin-bottom:22px;font-size:11px;font-weight:500;letter-spacing:.36em;text-transform:uppercase;color:var(--gold)}
.s-eye::before{content:'';display:block;width:44px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.s-title{font-family:var(--serif);font-size:clamp(36px,4.6vw,64px);font-weight:300;line-height:.98;letter-spacing:-.01em;color:var(--ink)}
.s-title em{color:var(--gold)}
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.on{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.45s}
@media (scripting:none){.reveal{opacity:1;transform:none}}

/* ---- Boutons : arrondis ---- */
.form-btn,.f-sub{display:flex;align-items:center;justify-content:center;gap:10px;border-radius:var(--pill);font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .35s,color .35s,border-color .35s,transform .35s var(--ease),box-shadow .35s}
.form-btn:hover,.f-sub:hover{transform:translateY(-2px);box-shadow:0 14px 28px -14px rgba(26,26,26,.5)}

/* ---- FORMULES ---- */
#formulas{background:radial-gradient(60% 50% at 88% 0%,rgba(217,180,107,.20),transparent 70%),radial-gradient(50% 45% at 0% 100%,rgba(217,180,107,.12),transparent 70%),var(--bg)}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,24px);margin-top:clamp(40px,4.5vw,64px);align-items:stretch;counter-reset:formule;perspective:1600px}
.form-card{--x:50%;--y:0%;--rx:0deg;--ry:0deg;position:relative;display:flex;flex-direction:column;counter-increment:formule;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1);overflow:hidden;transform-style:preserve-3d;will-change:transform;
  transition:opacity .6s var(--ease),transform .55s var(--ease),box-shadow .55s var(--ease),border-color .4s,filter .5s}
.form-card::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(460px circle at var(--x) var(--y),rgba(217,180,107,.22),transparent 60%)}
.form-media{position:relative;aspect-ratio:16/9;overflow:hidden}
.form-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.03);transition:transform 1.2s var(--ease)}
.form-media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,0) 45%)}
.form-media::before{content:counter(formule,upper-roman);position:absolute;z-index:2;right:22px;top:14px;font-family:var(--serif);font-size:42px;font-weight:300;line-height:1;color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.55)}
.form-in{position:relative;z-index:1;display:flex;flex-direction:column;flex:1;padding:0 clamp(22px,2.2vw,32px) clamp(26px,2.4vw,34px)}
.form-badge{align-self:flex-start;margin:-17px 0 22px;padding:8px 18px;border-radius:var(--pill);font-size:9.5px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--ink);background:var(--card);border:1px solid var(--line);box-shadow:0 8px 20px -10px rgba(26,26,26,.35)}
.form-name{font-family:var(--serif);font-size:clamp(27px,2.3vw,32px);font-weight:400;line-height:1.05;color:var(--ink);margin-bottom:14px}
.form-desc{font-size:13px;color:var(--muted);line-height:1.8;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.form-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:26px}
.form-list li{display:flex;align-items:flex-start;gap:12px;font-size:13px;color:var(--muted)}
.form-list li::before{content:'';flex:0 0 auto;width:5px;height:5px;margin-top:9px;background:var(--gold-bright);transform:rotate(45deg)}
.form-price{margin-top:auto;font-family:var(--serif);font-size:27px;font-weight:400;color:var(--ink);line-height:1.1}
.form-note{font-size:11.5px;letter-spacing:.06em;color:var(--faint);margin:6px 0 26px}
.form-btn{padding:14px 22px;color:var(--ink);border:1px solid var(--ink);background:transparent}
.form-btn:hover,.form-card.feat .form-btn{background:var(--ink);color:var(--bg)}
.form-card.feat .form-btn:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.form-card.feat{border-color:rgba(151,115,47,.45)}
.form-card.feat .form-badge{background:var(--ink);color:var(--bg);border-color:var(--ink)}

/* La carte survolée sort et se rapproche ; les autres reculent */
@media (hover:hover) and (min-width:961px){
  .form-card.on:hover{z-index:3;transform:translate3d(0,-18px,0) scale(1.06) rotateX(var(--rx)) rotateY(var(--ry));box-shadow:var(--shadow-2);border-color:rgba(151,115,47,.55);transition-delay:0s}
  .form-card:hover::after{opacity:1}
  .form-card:hover .form-media img{transform:scale(1.1)}
  .form-grid:hover .form-card.on:not(:hover){transform:scale(.965);opacity:.72;filter:saturate(.75);transition-delay:0s}
}
@media(max-width:960px){
  .form-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:14px;margin-left:-5vw;margin-right:-5vw;padding:10px 5vw 34px;scrollbar-width:none}
  .form-grid::-webkit-scrollbar{display:none}
  .form-card{flex:0 0 min(84%,400px);scroll-snap-align:center}
}

/* ---- LA MAISON ---- */
#about{background:var(--bg2)}
#about::before{content:'S';position:absolute;right:-4vw;top:-12vw;font-family:var(--serif);font-weight:300;font-size:62vw;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(26,26,26,.07);pointer-events:none;user-select:none}
#about > *{position:relative}
.about-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1fr);gap:clamp(36px,5.5vw,84px);align-items:center;margin-top:clamp(36px,4.5vw,60px)}
.about-img{position:relative;aspect-ratio:4/3}
.about-img::before{content:'';position:absolute;inset:0;transform:translate(22px,22px);border:1px solid var(--gold-bright);border-radius:var(--radius);pointer-events:none}
.about-frame{position:absolute;inset:0;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow-2)}
.about-frame img{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover;object-position:36% 50%;transform:translate3d(0,var(--py,0px),0);will-change:transform}
.about-blockquote{position:relative;font-family:var(--serif);font-size:clamp(23px,2.3vw,32px);font-style:italic;font-weight:300;line-height:1.3;color:var(--ink);padding-left:30px;margin-bottom:34px}
.about-blockquote::before{content:'';position:absolute;left:0;top:.2em;bottom:.2em;width:2px;border-radius:2px;background:linear-gradient(180deg,var(--gold-bright),transparent)}
.about-body{font-size:14.5px;color:var(--muted);line-height:2;max-width:56ch}
.about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.2vw,18px);margin-top:clamp(36px,4vw,56px)}
.stat{padding:20px 12px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-1);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.stat:hover{transform:translateY(-6px);box-shadow:var(--shadow-2)}
.stat-n{font-family:var(--serif);font-size:clamp(32px,3vw,44px);font-weight:300;line-height:1;color:var(--gold);margin-bottom:10px}
.stat-l{font-size:9.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
@media(max-width:860px){
  .about-grid{grid-template-columns:1fr}
  .about-img{aspect-ratio:4/3;margin-right:18px}
  .about-img::before{transform:translate(14px,14px)}
  .stat{padding:20px 6px}
}

/* ---- PARTENAIRES ---- */
#partners{padding:clamp(40px,4vw,56px) 0;background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.prt-label{font-size:10px;font-weight:500;letter-spacing:.36em;text-transform:uppercase;color:var(--gold);text-align:center;margin-bottom:34px;padding:0 5vw}
.mq{position:relative}
.mq::before,.mq::after{content:'';position:absolute;top:0;bottom:0;width:min(160px,18vw);z-index:2;pointer-events:none}
.mq::before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}
.mq::after{right:0;background:linear-gradient(270deg,var(--bg),transparent)}
.mq-track{display:flex;width:max-content;animation:mq 46s linear infinite}
.mq-track:hover{animation-play-state:paused}
.pi{flex-shrink:0;display:flex;align-items:center;gap:clamp(28px,4vw,60px);padding-left:clamp(28px,4vw,60px)}
.pi::after{content:'';width:5px;height:5px;background:var(--gold-bright);transform:rotate(45deg)}
.pi span{font-family:var(--serif);font-size:clamp(19px,2vw,27px);font-weight:300;letter-spacing:.04em;white-space:nowrap;color:rgba(26,26,26,.45);transition:color .3s}
.pi:hover span{color:var(--ink)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---- FAQ ---- */
#faq{background:var(--bg2)}
#faq::before{content:'';position:absolute;inset:-30px;background:url('/img/faq-bg.jpg') center/cover;filter:blur(5px);opacity:.5}
#faq::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,var(--bg2) 0%,rgba(241,237,230,.8) 30%,rgba(241,237,230,.8) 70%,var(--bg) 100%)}
.faq-wrap{position:relative;z-index:2;max-width:760px;margin:0 auto}
.faq-wrap .s-eye::after{content:'';display:block;width:44px;height:1px;background:linear-gradient(270deg,transparent,var(--gold))}
.faq-wrap .s-title{text-align:center}
.faq-item{margin-bottom:12px;padding:0 clamp(20px,2.4vw,32px);background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.faq-item:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(26,26,26,.05),0 30px 60px -30px rgba(26,26,26,.4);border-color:var(--line2)}
.faq-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:19px 0;background:none;border:0;cursor:pointer;text-align:left;font-family:var(--serif);font-size:clamp(18px,1.7vw,21px);font-weight:400;line-height:1.25;color:var(--ink);transition:color .3s}
.faq-btn:hover{color:var(--gold)}
.faq-icon{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line2);border-radius:50%;font-family:var(--sans);font-size:16px;font-weight:300;color:var(--ink);transition:transform .4s var(--ease),background .3s,color .3s,border-color .3s}
.faq-icon.open{transform:rotate(45deg);background:var(--ink);border-color:var(--ink);color:var(--bg)}
.faq-ans{max-height:0;overflow:hidden;font-size:14.5px;color:var(--muted);line-height:2;max-width:68ch;transition:max-height .5s var(--ease),padding .4s}
.faq-ans.open{max-height:360px;padding-bottom:28px}

/* ---- CONTACT ---- */
#contact{background:var(--bg)}
.contact-hero{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(280px,44vh,440px);margin-bottom:clamp(32px,4vw,52px);padding:clamp(24px,3.4vw,48px);border-radius:calc(var(--radius) + 6px);overflow:hidden;background:#1a1a1a url('/img/contact-bg.jpg') center 58%/cover;box-shadow:var(--shadow-2)}
.contact-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,8,10,.62) 0%,rgba(6,8,10,.2) 50%,rgba(6,8,10,0) 72%),linear-gradient(180deg,rgba(6,8,10,0) 40%,rgba(6,8,10,.5) 100%)}
.contact-hero > *{position:relative}
.contact-hero .s-eye{color:var(--gold-bright)}
.contact-hero .s-eye::before{background:linear-gradient(90deg,transparent,var(--gold-bright))}
.contact-hero .s-title{color:#f6ede0;text-shadow:0 10px 50px rgba(0,0,0,.5)}
.contact-hero .s-title em{color:var(--gold-bright)}
.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:start}
.contact-channels{display:flex;flex-direction:column;gap:14px}
.ch{display:flex;align-items:center;gap:16px;padding:14px 20px;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-1);text-decoration:none;color:var(--ink);transition:opacity 1s var(--ease),transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.ch.on:hover{transition-delay:0s;transform:translateY(-5px) scale(1.015);box-shadow:var(--shadow-2);border-color:rgba(151,115,47,.5)}
.ch-ico{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:var(--bg2);font-size:15px;color:var(--ink);transition:background .3s,color .3s}
.ch:hover .ch-ico{background:var(--ink);color:var(--bg)}
.ch-l{font-size:9.5px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:2px}
.ch-v{font-size:15px}
.ch-arr{margin-left:auto;color:var(--faint);transition:transform .3s,color .3s}
.ch:hover .ch-arr{transform:translateX(6px);color:var(--ink)}
form{padding:clamp(24px,2.6vw,38px);background:var(--card);border:1px solid var(--line);border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow-2)}
.fg{margin-bottom:16px}
.fg label{display:block;font-size:9.5px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin:0 0 8px 6px}
.fg input,.fg select,.fg textarea{width:100%;padding:12px 16px;background:var(--bg);border:1px solid transparent;border-radius:14px;outline:none;-webkit-appearance:none;appearance:none;font-family:var(--sans);font-size:16px;font-weight:300;color:var(--ink);transition:border-color .3s,background .3s,box-shadow .3s}
.fg input::placeholder,.fg textarea::placeholder{color:rgba(26,26,26,.35)}
.fg select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 23px) 52%,calc(100% - 18px) 52%;background-size:5px 5px;background-repeat:no-repeat}
.fg input:focus,.fg select:focus,.fg textarea:focus{background:#fff;border-color:var(--gold-bright);box-shadow:0 0 0 4px rgba(217,180,107,.2)}
.fg textarea{resize:vertical;min-height:92px}
.fg-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.f-sub{width:100%;margin-top:6px;padding:16px 32px;background:var(--ink);border:1px solid var(--ink);color:var(--bg)}
.f-sub:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.f-note{margin-top:16px;font-size:11.5px;letter-spacing:.04em;color:var(--faint);text-align:center}
@media(max-width:860px){.ch{padding:14px 16px;gap:14px}.ch-v{font-size:13.5px}.contact-grid{grid-template-columns:1fr}.fg-row{grid-template-columns:1fr;gap:0}.contact-hero{background-position:76% 58%}}

/* ---- FOOTER ---- */
footer{position:relative;background:var(--bg2);border-top:1px solid var(--line);padding:clamp(44px,4.5vw,64px) max(5vw,calc((100vw - 1120px)/2)) 32px}
.ft-top{display:grid;grid-template-columns:1fr 2fr 1fr;gap:60px;margin-bottom:44px;padding-bottom:44px;border-bottom:1px solid var(--line)}
.ft-logo{display:block;margin-bottom:16px}
.ft-logo img{width:130px;height:auto;filter:invert(1) brightness(.15)}
.ft-brand p{font-size:12.5px;color:var(--faint);line-height:1.8;max-width:30ch}
.ft-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.ft-col h4,.ft-soc h4{font-size:9.5px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.ft-col ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.ft-col a{font-size:13px;color:var(--muted);text-decoration:none;transition:color .3s}
.ft-col a:hover{color:var(--gold)}
.ft-soc{display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.ft-soc a{padding:9px 18px;border:1px solid var(--line2);border-radius:var(--pill);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);text-decoration:none;transition:background .3s,color .3s,border-color .3s}
.ft-soc a:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.ft-bot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-right:76px}
.ft-copy,.ft-legal a{font-size:11.5px;color:var(--faint);text-decoration:none;transition:color .3s}
.ft-legal{display:flex;gap:22px}
.ft-legal a:hover{color:var(--gold)}
@media(max-width:768px){.ft-top{grid-template-columns:1fr;gap:34px}.ft-nav{grid-template-columns:1fr 1fr}.ft-soc{align-items:flex-start;flex-direction:row}.ft-bot{flex-direction:column;text-align:center;padding-right:0;padding-bottom:56px}}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .mq-track{animation:none}
  .about-frame img{transform:none}
  .form-card,.form-media img,.stat,.ch,.faq-item{transition:none}
}
