/* MenuDig — Homepage variant B: full riad editorial luxury (very different) */

:root{
  --B-terra:#c0563a; --B-terra-soft:#cd6a45; --B-terra-deep:#7e361f;
  --B-ivoire:#f7f2e8; --B-creme:#fbf6ec; --B-creme-deep:#f0e7d3;
  --B-brun:#261d17; --B-brun-soft:#3a2a23; --B-brun-deep:#1c1411;
  --B-text-1:#261d17; --B-text-2:#5f5650; --B-text-3:#7d6f60; --B-text-4:#9a8d7d;
  --B-line:#ece3d2; --B-gold:#c89c5e; --B-gold-soft:#e8c789;
}

*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0;padding:0;background:#fdf7ee;color:var(--B-text-1);}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;}

.B-wrap{max-width:1240px;margin:0 auto;padding:0 36px;}
.B-narrow{max-width:920px;margin:0 auto;padding:0 36px;}

/* serif type */
.B-h1{font-family:'DM Serif Display',Georgia,serif;font-weight:400;letter-spacing:-.5px;line-height:.98;color:#fdf7ee;}
.B-h2{font-family:'DM Serif Display',Georgia,serif;font-weight:400;letter-spacing:-.4px;line-height:1.05;color:var(--B-text-1);}
.B-h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;color:var(--B-text-1);line-height:1.12;}
.B-em{font-style:italic;color:var(--B-gold-soft);}
.B-em-d{font-style:italic;color:var(--B-terra);}

.B-eyebrow{font-family:'League Spartan',sans-serif;font-size:11px;letter-spacing:4.2px;text-transform:uppercase;color:var(--B-gold-soft);font-weight:500;margin:0 0 18px;}
.B-eyebrow.d{color:var(--B-terra);}

/* buttons — restraint, almost like editorial */
.B-btn-light{display:inline-flex;align-items:center;gap:10px;background:transparent;color:#fdf7ee;padding:13px 0;font-size:13.5px;font-weight:500;letter-spacing:1.2px;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--B-gold-soft);font-family:'League Spartan',sans-serif;}
.B-btn-light:hover{color:var(--B-gold-soft);text-decoration:none;}
.B-btn-fill{display:inline-flex;align-items:center;gap:10px;background:var(--B-terra);color:#fdf7ee;padding:14px 28px;font-size:13px;font-weight:500;letter-spacing:1.4px;text-transform:uppercase;font-family:'League Spartan',sans-serif;text-decoration:none;border:0;}
.B-btn-fill:hover{background:var(--B-terra-soft);text-decoration:none;}
.B-btn-dark{display:inline-flex;align-items:center;gap:10px;background:var(--B-brun);color:#fdf7ee;padding:14px 28px;font-size:13px;font-weight:500;letter-spacing:1.4px;text-transform:uppercase;font-family:'League Spartan',sans-serif;text-decoration:none;border:0;}
.B-btn-dark:hover{background:var(--B-brun-soft);text-decoration:none;}
.B-arrow::after{content:"→";margin-inline-start:6px;}

/* preview banner */
.B-banner{background:var(--B-brun-deep);color:#fdf7ee;text-align:center;padding:11px;font-size:12.5px;font-family:'League Spartan',sans-serif;letter-spacing:1.8px;text-transform:uppercase;}
.B-banner a{color:var(--B-gold-soft);text-decoration:underline;margin-inline-start:8px;}

/* ---------- nav — ONE rendering across every page (sticky, semi-transparent, blur) ---------- */
/* Nav sits ON the hero (transparent overlay), not above it. Gains a solid bg only
   after you scroll; hides on scroll-down and re-reveals on scroll-up (JS toggles
   .is-scrolled / .is-hidden in the nav partial). */
.B-nav{position:fixed;top:0;left:0;right:0;z-index:60;background:transparent;border-bottom:1px solid transparent;padding:18px 0;transition:transform .35s ease, background .35s ease, padding .3s ease, border-color .35s ease;}
.B-nav.is-scrolled{background:rgba(12,8,5,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:rgba(232,199,137,.18);padding:12px 0;}
.B-nav.is-hidden{transform:translateY(-100%);}
.B-nav-in{position:relative;z-index:56;display:flex;align-items:center;justify-content:space-between;padding:0 56px;max-width:1380px;margin:0 auto;}
.B-nav-brand{display:flex;align-items:center;gap:11px;color:#fdf7ee;font-family:'DM Serif Display',serif;font-size:20px;text-decoration:none;}
.B-nav-brand img{width:32px;height:32px;}
.B-nav-links{display:flex;gap:34px;}
.B-nav-links a{font-family:'League Spartan',sans-serif;font-size:12.5px;letter-spacing:2.4px;text-transform:uppercase;color:#fdf7ee;text-decoration:none;font-weight:500;opacity:.85;}
.B-nav-links a:hover{opacity:1;color:var(--B-gold-soft);}
.B-nav-cta{display:flex;align-items:center;gap:24px;}
.B-nav-cta .B-login{font-family:'League Spartan',sans-serif;font-size:12.5px;letter-spacing:2.4px;text-transform:uppercase;color:#fdf7ee;text-decoration:none;font-weight:500;opacity:.85;}
/* hamburger button — hidden on desktop */
.B-nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:transparent;border:0;cursor:pointer;padding:0;margin-inline-start:8px;}
.B-nav-burger span{display:block;width:24px;height:2px;background:#fdf7ee;border-radius:2px;transition:transform .25s ease,opacity .2s ease;margin-inline:auto;}
.B-nav-burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.B-nav-burger.is-open span:nth-child(2){opacity:0;}
.B-nav-burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* mobile FULL-SCREEN menu (editorial: big serif links, like a luxury travel site).
   Hidden by default via visibility/opacity; .is-open reveals. Fixed overlay sits
   under the nav bar (z-60) so the brand + close X stay on top. */
.B-nav-panel{position:fixed;inset:0;height:100dvh;z-index:55;display:flex;flex-direction:column;justify-content:center;
  padding:96px 32px 40px;background:#1c1411;opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .34s ease, transform .34s ease, visibility .34s ease;overflow-y:auto;}
.B-nav-panel.is-open{opacity:1;visibility:visible;transform:translateY(0);}
.B-nav-panel-links{display:flex;flex-direction:column;}
.B-nav-panel-links a{font-family:'DM Serif Display',Georgia,serif;font-size:clamp(28px,7vw,38px);line-height:1.1;font-weight:400;
  letter-spacing:0;text-transform:none;color:#fdf7ee;text-decoration:none;padding:18px 0;border-bottom:1px solid rgba(232,199,137,.14);transition:color .2s ease;}
.B-nav-panel-links a:hover,.B-nav-panel-links a:active{color:var(--B-gold-soft);}
.B-nav-panel-links a.is-active{color:var(--B-gold-soft);}
.B-nav-panel-cta{display:inline-flex;justify-content:center;margin-top:28px;align-self:flex-start;}
/* keep the desktop panel hidden entirely above the mobile breakpoint */
@media(min-width:901px){.B-nav-panel{display:none;}}

@media(max-width:900px){
  .B-nav-in{padding:0 24px;}
  .B-nav-links{display:none;}
  .B-nav-cta{display:none;}      /* desktop CTA row hidden — moved into the panel */
  .B-nav-burger{display:flex;}
}

/* ---------- hero (full-bleed dark riad) ---------- */
.B-hero{position:relative;min-height:100vh;color:#fdf7ee;overflow:hidden;display:flex;align-items:flex-end;padding:0 0 100px;}
/* Hero background: warm dark riad gradient (the original atmospheric base) */
.B-hero-bg{position:absolute;inset:0;background:
  radial-gradient(80% 50% at 22% 28%, rgba(232,199,137,.45), transparent 55%),
  radial-gradient(120% 90% at 78% 100%, rgba(192,86,58,.6), transparent 60%),
  radial-gradient(60% 40% at 50% 90%, rgba(38,29,23,.9), transparent 70%),
  linear-gradient(170deg,#3a2014 0%, #261d17 45%, #1c1411 100%);}

/* zellige-inspired dot texture overlay */
.B-hero-tex{position:absolute;inset:0;background-image:radial-gradient(circle at 50% 50%, rgba(232,199,137,.1) 1px, transparent 1.8px);background-size:24px 24px;opacity:.45;mix-blend-mode:overlay;pointer-events:none;}

/* Decorative arch silhouette (right side, faint) */
.B-hero-arch{position:absolute;right:6%;top:8%;width:520px;height:680px;opacity:.45;pointer-events:none;}

/* Hanging lantern from the top, centred over the right portion */
.B-hero-lantern{position:absolute;top:0;left:62%;width:120px;height:280px;pointer-events:none;z-index:2;animation:lanternSway 6s ease-in-out infinite;transform-origin:top center;}
@keyframes lanternSway{0%,100%{transform:rotate(-1.5deg);}50%{transform:rotate(1.5deg);}}
.B-hero-lantern-glow{position:absolute;top:90px;left:54%;width:520px;height:520px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle at 50% 50%, rgba(232,199,137,.28), rgba(232,199,137,.08) 40%, transparent 60%);pointer-events:none;z-index:1;animation:glowPulse 5s ease-in-out infinite;}
@keyframes glowPulse{0%,100%{opacity:.7;transform:translateX(-50%) scale(1);}50%{opacity:1;transform:translateX(-50%) scale(1.08);}}

/* Khatem (Moroccan 8-point star) — slowly rotating in the background */
.B-hero-khatem{position:absolute;right:-180px;bottom:-160px;width:680px;height:680px;opacity:.18;pointer-events:none;z-index:1;animation:khatemSpin 90s linear infinite;}
@keyframes khatemSpin{to{transform:rotate(360deg);}}

/* Floating gold embers (like fireflies in a riad courtyard) */
.B-hero-embers{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden;}
.B-hero-embers .e{position:absolute;width:4px;height:4px;border-radius:50%;background:#e8c789;box-shadow:0 0 8px 2px rgba(232,199,137,.6),0 0 18px 6px rgba(232,199,137,.2);animation:emberRise 14s linear infinite;opacity:0;}
.B-hero-embers .e:nth-child(1){left:8%;animation-delay:0s;animation-duration:13s;}
.B-hero-embers .e:nth-child(2){left:18%;animation-delay:3s;animation-duration:16s;width:3px;height:3px;}
.B-hero-embers .e:nth-child(3){left:30%;animation-delay:6s;animation-duration:12s;}
.B-hero-embers .e:nth-child(4){left:42%;animation-delay:1.5s;animation-duration:17s;width:5px;height:5px;}
.B-hero-embers .e:nth-child(5){left:55%;animation-delay:4.5s;animation-duration:14s;}
.B-hero-embers .e:nth-child(6){left:68%;animation-delay:7.5s;animation-duration:15s;width:3px;height:3px;}
.B-hero-embers .e:nth-child(7){left:82%;animation-delay:2.5s;animation-duration:13s;}
.B-hero-embers .e:nth-child(8){left:92%;animation-delay:5.5s;animation-duration:16s;width:4px;height:4px;}
.B-hero-embers .e:nth-child(9){left:25%;animation-delay:9s;animation-duration:15s;width:3px;height:3px;}
.B-hero-embers .e:nth-child(10){left:75%;animation-delay:10.5s;animation-duration:14s;}
@keyframes emberRise{
  0%{transform:translateY(110vh) translateX(0);opacity:0;}
  8%{opacity:1;}
  60%{transform:translateY(40vh) translateX(20px);}
  92%{opacity:.7;}
  100%{transform:translateY(-10vh) translateX(-15px);opacity:0;}
}

/* Faint zellige geometric pattern in the corner */
.B-hero-zellige{position:absolute;left:-120px;top:-80px;width:360px;height:360px;opacity:.12;pointer-events:none;z-index:1;}

@media (prefers-reduced-motion: reduce){
  .B-hero-lantern,.B-hero-lantern-glow,.B-hero-khatem,.B-hero-embers .e{animation:none;}
}
@media(max-width:760px){
  .B-hero-lantern{display:none;}
  .B-hero-lantern-glow{display:none;}
  .B-hero-khatem{width:480px;height:480px;right:-160px;bottom:-140px;}
  .B-hero-embers .e:nth-child(n+6){display:none;}
}
.B-hero-in{position:relative;z-index:2;padding:0 56px;max-width:1380px;margin:0 auto;width:100%;}
.B-hero h1{font-size:104px;margin:0 0 30px;max-width:880px;}
.B-hero-sub{font-size:18px;line-height:1.7;color:rgba(253,247,238,.78);max-width:520px;margin:0 0 36px;}
.B-hero-ctas{display:flex;gap:30px;flex-wrap:wrap;align-items:center;}
.B-scroll{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);font-family:'League Spartan',sans-serif;font-size:10px;letter-spacing:3.5px;text-transform:uppercase;color:rgba(253,247,238,.5);font-weight:500;}
.B-scroll::after{content:"";display:block;width:1px;height:32px;background:rgba(232,199,137,.5);margin:14px auto 0;}
@media(max-width:1100px){.B-hero h1{font-size:74px;}.B-hero{min-height:660px;}.B-hero-arch{width:420px;height:540px;opacity:.32;}}
@media(max-width:760px){.B-hero{padding:96px 0 64px;min-height:100vh;align-items:flex-end;}.B-hero-in{padding:0 28px;}.B-hero h1{font-size:54px;}.B-hero-arch{display:none;}.B-scroll{display:none;}}

/* ---------- thin gold strip ---------- */
.B-strip{background:var(--B-brun);color:#fdf7ee;padding:22px 0;border-block:1px solid rgba(232,199,137,.18);}
.B-strip-in{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;max-width:1240px;margin:0 auto;padding:0 36px;}
.B-strip p{font-family:'League Spartan',sans-serif;font-size:11px;letter-spacing:3.4px;text-transform:uppercase;color:var(--B-gold-soft);font-weight:500;margin:0;}
.B-strip-marks{display:flex;gap:42px;flex-wrap:wrap;}
.B-strip-mark{display:flex;align-items:baseline;gap:9px;color:#fdf7ee;}
.B-strip-mark strong{font-family:'DM Serif Display',serif;font-size:24px;}
.B-strip-mark span{font-family:'League Spartan',sans-serif;font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;color:rgba(253,247,238,.7);font-weight:500;}

/* ---------- section base ---------- */
.B-section{padding:120px 0;background:var(--B-creme);}
.B-section-ivoire{background:var(--B-ivoire);padding:120px 0;}
.B-section-dark{background:var(--B-brun);color:#fdf7ee;padding:130px 0;position:relative;overflow:hidden;}
.B-sec-head{text-align:center;max-width:740px;margin:0 auto 80px;}
.B-sec-head h2{font-size:54px;margin:0 0 20px;}
.B-sec-head.light h2{color:#fdf7ee;}
.B-sec-head p{font-size:16px;line-height:1.85;color:var(--B-text-3);margin:0;}
.B-sec-head.light p{color:rgba(253,247,238,.75);}

/* trois actes — magazine layout */
.B-actes{display:grid;grid-template-columns:1fr 1fr 1fr;gap:80px;}
.B-acte{text-align:start;}
.B-acte-num{font-family:'DM Serif Display',serif;font-style:italic;font-size:72px;color:var(--B-terra);line-height:1;margin-bottom:20px;}
.B-acte-rule{width:48px;height:1px;background:var(--B-terra);margin-bottom:24px;opacity:.6;}
.B-acte h3{font-size:28px;margin:0 0 16px;}
.B-acte p{font-size:15px;line-height:1.85;color:var(--B-text-3);margin:0;}
@media(max-width:900px){.B-actes{grid-template-columns:1fr;gap:50px;}}

/* hôte voit — big magazine block */
.B-hote{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;}
.B-hote-copy h2{font-size:46px;margin:0 0 26px;}
.B-hote-copy .B-lead{font-family:'DM Serif Display',serif;font-style:italic;font-size:22px;line-height:1.5;color:var(--B-text-2);margin:0 0 26px;}
.B-hote-copy p{font-size:15px;line-height:1.8;color:var(--B-text-3);margin:0;}
.B-acts-list{margin:36px 0 0;padding:0;list-style:none;}
.B-acts-list li{display:grid;grid-template-columns:28px 1fr;gap:20px;padding:18px 0;border-block-start:1px solid var(--B-line);}
.B-acts-list li:last-child{border-block-end:1px solid var(--B-line);}
.B-acts-list .n{font-family:'DM Serif Display',serif;font-style:italic;font-size:22px;color:var(--B-terra);line-height:1;}
.B-acts-list .t{font-family:'DM Serif Display',serif;font-size:17px;color:var(--B-text-1);margin:0 0 4px;}
.B-acts-list .p{font-size:13.5px;color:var(--B-text-3);margin:0;line-height:1.6;}
.B-phone-stage{position:relative;display:flex;justify-content:center;align-items:center;min-height:640px;}
.B-phone-aura{position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--B-gold-soft),var(--B-terra) 50%,var(--B-terra-deep) 100%);filter:blur(4px);opacity:.85;top:50%;left:50%;transform:translate(-50%,-50%);}
.B-phone-aura::after{content:"";position:absolute;inset:-40px;border-radius:50%;border:1px solid rgba(232,199,137,.25);}
.B-phone{position:relative;width:300px;background:var(--B-brun-deep);border-radius:44px;padding:13px;box-shadow:0 50px 90px -30px rgba(38,29,23,.65);z-index:1;}
.B-phone-screen{background:var(--B-creme);border-radius:32px;overflow:hidden;padding:30px 18px 22px;}
.B-screen-ey{font-family:'League Spartan',sans-serif;font-size:9.5px;letter-spacing:2.8px;color:var(--B-terra);text-align:center;margin:0 0 5px;font-weight:700;}
.B-screen-h{font-family:'DM Serif Display',serif;font-size:19px;text-align:center;margin:0 0 18px;line-height:1.15;}
.B-screen-card{background:#fff;border:1px solid var(--B-line);border-radius:16px;padding:16px 14px;}
.B-sc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.B-sc-top b{font-size:13px;}
.B-sc-pill{background:#fbecd5;color:#8a5410;font-size:9.5px;padding:3px 9px;border-radius:99px;font-weight:600;}
.B-sc-track{display:flex;align-items:center;gap:5px;margin:11px 0;}
.B-sc-track .d{width:7px;height:7px;border-radius:50%;background:var(--B-line);border:1.5px solid #fff;box-shadow:0 0 0 1px var(--B-line);}
.B-sc-track .d.on{background:var(--B-terra);box-shadow:0 0 0 1px var(--B-terra);}
.B-sc-track .ln{flex:1;height:2px;background:var(--B-line);border-radius:99px;}
.B-sc-track .ln.on{background:var(--B-terra);}
.B-sc-wheel{margin:9px auto 4px;width:30px;height:30px;animation:B-spin 2s linear infinite;filter:drop-shadow(0 6px 14px rgba(192,86,58,.45));}
.B-sc-wheel img{display:block;width:100%;height:100%;}
@keyframes B-spin{to{transform:rotate(360deg);}}
.B-sc-bubble{font-size:11px;color:#8a5410;text-align:center;margin:8px 0 0;font-weight:600;background:#fbecd5;border-radius:10px;padding:7px 10px;}
.B-sc-items{margin-top:14px;font-size:12px;color:var(--B-text-2);}
.B-sc-items .row{display:flex;justify-content:space-between;margin-top:6px;}
@media(max-width:900px){.B-hote{grid-template-columns:1fr;gap:60px;}.B-phone-stage{min-height:560px;}}

/* équipes — large magazine cards */
.B-eqs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:36px;}
.B-eq{background:#fff;border-radius:0;padding:48px 36px;border-top:1px solid var(--B-terra);}
.B-eq-num{font-family:'DM Serif Display',serif;font-style:italic;font-size:30px;color:var(--B-terra);line-height:1;margin-bottom:18px;}
.B-eq h3{font-size:30px;margin:0 0 18px;}
.B-eq .B-eq-lead{font-family:'DM Serif Display',serif;font-style:italic;font-size:16px;color:var(--B-text-2);line-height:1.5;margin:0 0 22px;}
.B-eq ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px;}
.B-eq ul li{font-size:14px;color:var(--B-text-3);line-height:1.65;display:flex;gap:14px;align-items:flex-start;}
.B-eq ul li::before{content:"—";color:var(--B-terra);font-weight:500;}
@media(max-width:900px){.B-eqs{grid-template-columns:1fr;}}

/* multilingue — full dark editorial */
.B-multi{background:var(--B-brun-deep);color:#fdf7ee;padding:140px 0;position:relative;overflow:hidden;}
.B-multi::before{content:"";position:absolute;inset:0;background:
  radial-gradient(70% 50% at 50% 0%, rgba(232,199,137,.2), transparent 65%),
  radial-gradient(50% 35% at 15% 100%, rgba(192,86,58,.25), transparent 65%);
  pointer-events:none;}
.B-multi-in{position:relative;text-align:center;max-width:840px;margin:0 auto;padding:0 36px;}
.B-multi h2{font-family:'DM Serif Display',serif;font-size:64px;line-height:1.05;margin:0 0 28px;color:#fdf7ee;}
.B-multi h2 em{font-style:italic;color:var(--B-gold-soft);}
.B-multi p{font-size:17px;line-height:1.85;color:rgba(253,247,238,.78);margin:0 0 50px;}
.B-langs{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;}
.B-lang{padding:11px 24px;border-radius:0;border:1px solid var(--B-gold-soft);color:#fdf7ee;font-size:13.5px;letter-spacing:1.4px;font-family:'League Spartan',sans-serif;font-weight:500;text-transform:uppercase;background:transparent;}
.B-lang.is-ar{font-family:'Plus Jakarta Sans',sans-serif;text-transform:none;font-size:16px;letter-spacing:0;border-color:var(--B-gold);}

/* fonctionnalités — editorial 2-col grid */
.B-feats{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--B-line);}
.B-feat{padding:36px 36px;display:grid;grid-template-columns:48px 1fr;gap:20px;border-bottom:1px solid var(--B-line);}
.B-feat:nth-child(odd){border-right:1px solid var(--B-line);}
.B-feat-ico{width:42px;height:42px;color:var(--B-terra);display:flex;align-items:center;justify-content:center;}
.B-feat-ico svg{width:32px;height:32px;}
.B-feat h4{font-family:'DM Serif Display',serif;font-size:20px;margin:0 0 6px;line-height:1.15;font-weight:400;color:var(--B-text-1);}
.B-feat p{font-size:13.5px;color:var(--B-text-3);line-height:1.7;margin:0;}
@media(max-width:760px){.B-feats{grid-template-columns:1fr;}.B-feat{border-right:0!important;padding:30px 28px;}}

/* témoignage — full bleed quote */
.B-temo{background:var(--B-ivoire);padding:140px 0;text-align:center;}
.B-temo-q{font-family:'DM Serif Display',serif;font-style:italic;font-size:38px;line-height:1.4;color:var(--B-text-1);margin:0 auto 44px;max-width:900px;padding:0 36px;}
.B-temo-q::before{content:"« ";color:var(--B-terra);}
.B-temo-q::after{content:" »";color:var(--B-terra);}
.B-temo-au{display:inline-flex;align-items:center;gap:18px;}
.B-temo-av{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--B-terra),var(--B-gold));color:#fdf7ee;display:flex;align-items:center;justify-content:center;font-family:'DM Serif Display',serif;font-size:26px;}
.B-temo-au .name{font-family:'DM Serif Display',serif;font-size:18px;color:var(--B-text-1);}
.B-temo-au .role{font-family:'League Spartan',sans-serif;font-size:11px;letter-spacing:2.4px;text-transform:uppercase;color:var(--B-text-3);font-weight:500;margin-top:3px;}

/* pour qui — full bleed atmospheric */
.B-pq{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.B-pq-card{position:relative;min-height:460px;display:flex;flex-direction:column;justify-content:flex-end;padding:42px 36px;color:#fdf7ee;overflow:hidden;}
.B-pq-card .ph{position:absolute;inset:0;}
.B-pq-card .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, rgba(28,20,17,.95) 0%, rgba(28,20,17,.3) 60%, rgba(28,20,17,.1) 100%);}
.B-pq-card .ph{background-position:center;background-size:cover;background-repeat:no-repeat;}
.B-pq-card.r1 .ph{
  background-image:image-set(url('/assets/img/preview/pq-riads.avif') type('image/avif'), url('/assets/img/preview/pq-riads.webp') type('image/webp'), url('/assets/img/preview/pq-riads.jpg') type('image/jpeg'));
  background-image:-webkit-image-set(url('/assets/img/preview/pq-riads.avif') type('image/avif'), url('/assets/img/preview/pq-riads.webp') type('image/webp'), url('/assets/img/preview/pq-riads.jpg') type('image/jpeg'));}
.B-pq-card.r2 .ph{
  background-image:image-set(url('/assets/img/preview/pq-etoiles.avif') type('image/avif'), url('/assets/img/preview/pq-etoiles.webp') type('image/webp'), url('/assets/img/preview/pq-etoiles.jpg') type('image/jpeg'));
  background-image:-webkit-image-set(url('/assets/img/preview/pq-etoiles.avif') type('image/avif'), url('/assets/img/preview/pq-etoiles.webp') type('image/webp'), url('/assets/img/preview/pq-etoiles.jpg') type('image/jpeg'));}
.B-pq-card.r3 .ph{
  background-image:image-set(url('/assets/img/preview/pq-hotels.avif') type('image/avif'), url('/assets/img/preview/pq-hotels.webp') type('image/webp'), url('/assets/img/preview/pq-hotels.jpg') type('image/jpeg'));
  background-image:-webkit-image-set(url('/assets/img/preview/pq-hotels.avif') type('image/avif'), url('/assets/img/preview/pq-hotels.webp') type('image/webp'), url('/assets/img/preview/pq-hotels.jpg') type('image/jpeg'));}
.B-pq-card .ph::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 50% 50%, rgba(232,199,137,.06) 1px, transparent 1.5px);background-size:22px 22px;opacity:.3;mix-blend-mode:overlay;pointer-events:none;}
.B-pq-card .B-pq-cat{position:relative;font-family:'League Spartan',sans-serif;font-size:11px;letter-spacing:3px;color:var(--B-gold-soft);font-weight:500;margin:0 0 10px;text-transform:uppercase;}
.B-pq-card h3{position:relative;font-family:'DM Serif Display',serif;font-size:30px;margin:0 0 12px;color:#fdf7ee;}
.B-pq-card p{position:relative;font-size:13.5px;color:rgba(253,247,238,.78);line-height:1.7;margin:0;}
@media(max-width:900px){.B-pq{grid-template-columns:1fr;}}

/* CTA finale — dark */
.B-cta{background:var(--B-brun-deep);color:#fdf7ee;padding:140px 0;text-align:center;position:relative;overflow:hidden;}
.B-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 50%, rgba(192,86,58,.18), transparent 60%);}
.B-cta-in{position:relative;max-width:840px;margin:0 auto;padding:0 36px;}
.B-cta h2{font-family:'DM Serif Display',serif;font-size:64px;margin:0 0 26px;line-height:1.05;color:#fdf7ee;}
.B-cta p{font-size:17px;color:rgba(253,247,238,.78);margin:0 0 44px;line-height:1.7;}
.B-cta-row{display:flex;gap:30px;justify-content:center;align-items:center;flex-wrap:wrap;}
.B-cta .B-eyebrow{color:var(--B-gold-soft);}

/* ============================================================
   Luxury footer (variant B: dark riad)
   ============================================================ */

/* prelude */
.lux-prelude{background:var(--B-brun-deep);color:#fdf7ee;padding:140px 0 130px;text-align:center;position:relative;overflow:hidden;border-top:1px solid rgba(232,199,137,.12);}
.lux-prelude::before{content:"";position:absolute;inset:0;background:
  radial-gradient(60% 50% at 50% 50%, rgba(192,86,58,.22), transparent 65%),
  radial-gradient(50% 40% at 80% 100%, rgba(232,199,137,.12), transparent 70%);
  pointer-events:none;}
.lux-prelude-in{position:relative;max-width:820px;margin:0 auto;padding:0 36px;}
.lux-prelude .lux-eyebrow{font-family:'League Spartan',sans-serif;font-size:11px;letter-spacing:4.2px;text-transform:uppercase;color:var(--B-gold-soft);font-weight:500;margin:0 0 22px;display:block;}
.lux-prelude-h{font-family:'DM Serif Display',Georgia,serif;font-size:68px;line-height:1.05;margin:0 0 28px;color:#fdf7ee;font-weight:400;letter-spacing:-.5px;}
.lux-prelude-h em{font-style:italic;color:var(--B-gold-soft);}
.lux-prelude-sub{font-size:17px;line-height:1.8;color:rgba(253,247,238,.72);margin:0 0 44px;max-width:620px;margin-inline:auto;}
.lux-prelude-ctas{display:flex;gap:30px;justify-content:center;flex-wrap:wrap;align-items:center;}
.lux-btn-p{display:inline-flex;align-items:center;gap:8px;background:var(--B-terra);color:#fdf7ee;border:0;padding:15px 32px;font-size:13.5px;font-weight:500;letter-spacing:1.6px;text-transform:uppercase;font-family:'League Spartan',sans-serif;text-decoration:none;}
.lux-btn-p:hover{background:var(--B-terra-soft);text-decoration:none;}
.lux-btn-s{display:inline-flex;align-items:center;gap:8px;background:transparent;color:#fdf7ee;padding:15px 0;font-size:13.5px;font-weight:500;letter-spacing:1.6px;text-transform:uppercase;font-family:'League Spartan',sans-serif;text-decoration:none;border-bottom:1px solid var(--B-gold-soft);}
.lux-btn-s::after{content:"→";margin-inline-start:6px;}
@media(max-width:760px){.lux-prelude{padding:90px 0;}.lux-prelude-h{font-size:44px;}}

/* footer body */
.lux-foot{background:#120c08;color:#fdf7ee;padding:110px 0 0;position:relative;overflow:hidden;border-top:1px solid rgba(232,199,137,.18);}
.lux-foot::before{content:"";position:absolute;top:-200px;right:-100px;width:600px;height:800px;background:
  radial-gradient(60% 50% at 50% 30%, rgba(232,199,137,.08), transparent 70%);
  pointer-events:none;}
.lux-foot::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(232,199,137,.4),transparent);}
.lux-foot-in{position:relative;max-width:1260px;margin:0 auto;padding:0 40px;}

.lux-foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:60px;padding-bottom:72px;border-bottom:1px solid rgba(232,199,137,.18);}
.lux-foot-brand .lux-fb-logo{display:inline-flex;align-items:center;gap:14px;color:#fdf7ee;font-family:'DM Serif Display',serif;font-size:26px;text-decoration:none;margin-bottom:22px;}
.lux-foot-brand .lux-fb-logo img{width:48px;height:48px;}
.lux-foot-brand .lux-fb-tag{font-family:'DM Serif Display',serif;font-style:italic;font-size:20px;line-height:1.45;color:rgba(253,247,238,.85);margin:0 0 28px;max-width:300px;}
.lux-foot-brand .lux-fb-addr p{font-size:13.5px;line-height:1.75;color:rgba(253,247,238,.65);margin:0 0 4px;font-family:'Plus Jakarta Sans',sans-serif;}
.lux-foot-brand .lux-fb-addr a{color:rgba(253,247,238,.85);text-decoration:none;}
.lux-foot-brand .lux-fb-addr a:hover{color:var(--B-gold-soft);}
.lux-foot-brand .lux-fb-social{display:flex;gap:14px;margin-top:26px;}
.lux-foot-brand .lux-fb-social a{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid rgba(232,199,137,.35);color:rgba(253,247,238,.85);transition:background .2s,border-color .2s,color .2s;}
.lux-foot-brand .lux-fb-social a:hover{background:var(--B-gold-soft);border-color:var(--B-gold-soft);color:var(--B-brun-deep);text-decoration:none;}
.lux-foot-brand .lux-fb-social svg{width:18px;height:18px;}

.lux-foot-col{display:flex;flex-direction:column;gap:14px;}
.lux-foot-h{font-family:'League Spartan',sans-serif;font-size:11px;letter-spacing:3.6px;text-transform:uppercase;color:var(--B-gold-soft);font-weight:500;margin:0 0 10px;}
.lux-foot-col a{font-size:14.5px;color:rgba(253,247,238,.8);text-decoration:none;font-family:'Plus Jakarta Sans',sans-serif;transition:color .15s;}
.lux-foot-col a:hover{color:var(--B-gold-soft);text-decoration:none;}
.lux-foot-static{font-size:13.5px;color:rgba(253,247,238,.55);font-family:'Plus Jakarta Sans',sans-serif;line-height:1.6;}

.lux-foot-news{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:56px 0;border-bottom:1px solid rgba(232,199,137,.18);}
.lux-news-copy .lux-eyebrow{font-family:'League Spartan',sans-serif;font-size:11px;letter-spacing:3.6px;text-transform:uppercase;color:var(--B-gold-soft);font-weight:500;margin:0 0 12px;}
.lux-news-lead{font-family:'DM Serif Display',serif;font-style:italic;font-size:24px;line-height:1.4;color:rgba(253,247,238,.92);margin:0;}
.lux-news-form{display:flex;gap:12px;align-items:center;}
.lux-news-form input{flex:1;background:transparent;border:0;border-bottom:1px solid rgba(232,199,137,.45);padding:15px 4px;font-size:14.5px;color:#fdf7ee;font-family:'Plus Jakarta Sans',sans-serif;outline:none;transition:border-color .15s;}
.lux-news-form input::placeholder{color:rgba(253,247,238,.4);}
.lux-news-form input:focus{border-color:var(--B-gold-soft);}
.lux-news-form button{background:transparent;color:var(--B-gold-soft);border:1px solid var(--B-gold-soft);padding:14px 28px;font-size:12.5px;font-weight:500;letter-spacing:1.8px;text-transform:uppercase;font-family:'League Spartan',sans-serif;cursor:pointer;transition:background .2s,color .2s;}
.lux-news-form button:hover{background:var(--B-gold-soft);color:var(--B-brun-deep);}

.lux-foot-legal{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:32px 0 42px;flex-wrap:wrap;}
.lux-legal-left{display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-size:12.5px;color:rgba(253,247,238,.55);font-family:'Plus Jakarta Sans',sans-serif;}
.lux-legal-left a{color:rgba(253,247,238,.7);text-decoration:none;}
.lux-legal-left a:hover{color:var(--B-gold-soft);}
.lux-foot-legal .lp-credit{margin:0;padding:0;border-top:0;display:flex;align-items:center;gap:8px;}
.lux-foot-legal .vsf{font-family:'League Spartan',sans-serif;font-size:13.5px;color:rgba(253,247,238,.85);letter-spacing:1.8px;text-transform:uppercase;font-weight:500;display:inline-flex;align-items:center;gap:9px;text-decoration:none!important;}
.lux-foot-legal .vsf b{color:#fdf7ee;letter-spacing:2.4px;}
.lux-foot-legal .vsf:hover{color:var(--B-gold-soft);}
.lux-foot-legal .lp-heart{width:18px;height:18px;color:#e6b422;animation:md-beat 1.3s ease-in-out infinite;fill:currentColor;}

@media(max-width:1000px){
  .lux-foot-grid{grid-template-columns:1fr 1fr;gap:48px;}
  .lux-foot-news{grid-template-columns:1fr;gap:24px;}
}
@media(max-width:600px){
  .lux-foot{padding-top:72px;}
  .lux-foot-grid{grid-template-columns:1fr;gap:42px;padding-bottom:48px;}
  .lux-foot-legal{flex-direction:column;align-items:flex-start;}
}

/* ============================================================
   CHARTE COMPLIANCE — Charte Graphique MenuDig v1.0 (Juin 2026)
   Overrides earlier rules to enforce the brand charter strictly.
   Single exception: .vsf signature (VSF AGENCY) stays in League Spartan.
   ============================================================ */

/* — TYPOGRAPHIE — DM Serif Display 400 + Plus Jakarta Sans only — */
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;}

/* Display (titre héros, recto) — 45 px / line 1.06 */
.B-hero h1{font-size:45px;line-height:1.06;letter-spacing:-.3px;font-weight:400;}
@media(min-width:1100px){.B-hero h1{font-size:48px;}}
@media(max-width:760px){.B-hero h1{font-size:34px;}}

/* H1 — 36-40 px / line 1.03 */
.lux-prelude-h{font-size:38px;line-height:1.03;font-weight:400;letter-spacing:-.2px;}
@media(max-width:760px){.lux-prelude-h{font-size:30px;}}

/* H2 — 24-26 px / line 1.1 (sections) */
.B-sec-head h2,.B-multi h2,.B-hote-copy h2,.B-cta h2{font-size:26px;line-height:1.1;font-weight:400;letter-spacing:-.1px;}
@media(min-width:1100px){.B-sec-head h2,.B-multi h2,.B-hote-copy h2{font-size:28px;}}
@media(max-width:760px){.B-sec-head h2,.B-multi h2,.B-hote-copy h2{font-size:22px;}}

/* Card titles (under H2 size) */
.B-acte h3,.B-eq h3{font-size:22px;line-height:1.15;font-weight:400;}
.B-feat h4{font-size:18px;line-height:1.2;font-weight:400;font-family:'DM Serif Display',Georgia,serif;}
.B-pq-card h3{font-size:22px;line-height:1.15;font-weight:400;}

/* Surtitre — Plus Jakarta Sans Bold 700 · 10 px · +0.22em · MAJ */
.B-eyebrow,.lux-eyebrow,.B-strip p,.B-scroll,.B-banner,
.B-pq-card .B-pq-cat,
.lux-foot-h{
  font-family:'Plus Jakarta Sans',system-ui,sans-serif!important;
  font-size:10px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
}

/* Corps — Plus Jakarta Sans Regular 400 · 12-13 px / 1.6 */
.B-hero-sub,.lux-prelude-sub,.B-sec-head p,.B-acte p,.B-hote-copy p,.B-hote-copy .B-lead,
.B-eq ul li,.B-feat p,.B-strip-mark span,.B-pq-card p,
.lux-foot-col a,.lux-foot-static,.lux-fb-tag,.lux-fb-addr p,
.B-acts-list .p,.B-temo-q,
.B-eq-lead{
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;
  font-size:13px;line-height:1.6;font-weight:400;
}
.B-hero-sub,.lux-prelude-sub{font-size:13px;line-height:1.6;}
.B-temo-q{font-size:22px;line-height:1.4;}
.B-hote-copy .B-lead{font-size:14px;line-height:1.5;}
.lux-fb-tag{font-size:14px;line-height:1.5;}

/* Corps fort — SemiBold 600 · 11-12 px */
.B-acts-list .t,.B-strip-mark strong{font-size:12px;font-weight:600;}

/* Légende — Medium 500 · 9-10 px / 1.4 */
.B-sc-bubble,.B-sc-items,.B-sc-top b,.B-sc-pill{font-size:10px;line-height:1.4;font-weight:500;}

/* Nav links — Jakarta SemiBold 600 / normal case (no MAJ on nav) */
.B-nav-links a,.B-nav-cta .B-login{
  font-family:'Plus Jakarta Sans',system-ui,sans-serif!important;
  font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;
}

/* — BOUTONS — radius 11 px, Plus Jakarta SemiBold 600, no MAJ — */
.B-btn-fill,.B-btn-light,.B-btn-dark,.lux-btn-p,.lux-btn-s{
  font-family:'Plus Jakarta Sans',system-ui,sans-serif!important;
  font-size:14px;font-weight:600;letter-spacing:0;text-transform:none;
  border-radius:11px;padding:12px 22px;
}
/* Primaire — terracotta solid */
.B-btn-fill,.lux-btn-p{background:#c0563a;color:#fdf7ee;border:0;}
.B-btn-fill:hover,.lux-btn-p:hover{background:#cd6a45;}
/* Secondaire — terracotta outline */
.B-btn-light,.lux-btn-s{background:transparent;color:#c0563a;border:1.5px solid #c0563a;border-bottom-color:#c0563a;}
.B-btn-light:hover,.lux-btn-s:hover{background:rgba(192,86,58,.08);color:#c0563a;}
/* When over dark hero, light text version */
.B-hero .B-btn-light{color:#fdf7ee;border-color:#fdf7ee;}
.B-hero .B-btn-light:hover{background:rgba(253,247,238,.08);color:#fdf7ee;}
.lux-prelude .lux-btn-s{color:#fdf7ee;border-color:#fdf7ee;}
.lux-prelude .lux-btn-s:hover{background:rgba(253,247,238,.08);color:#fdf7ee;}
.B-btn-light::after,.lux-btn-s::after{margin-inline-start:6px;}

/* — CARTES — radius 16 px, border rgba(38,29,23,.09), shadow douce — */
.B-eq,.B-feat,.B-screen-card{
  border-radius:16px;
  border:1px solid rgba(38,29,23,.09);
  box-shadow:0 8px 22px rgba(38,29,23,.05);
}
.B-feat{border-right:0;border-left:0;border-top:0;}

/* — LANG CHIPS — pill (charter pastille 999) + Jakarta — */
.B-lang{
  font-family:'Plus Jakarta Sans',system-ui,sans-serif!important;
  font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  border-radius:999px;padding:8px 16px;
}
.B-lang.is-ar{letter-spacing:0;text-transform:none;font-size:14px;}

/* — PUCES — losange terracotta 5-6 px (carré pivoté 45°) — */
.B-eq ul li::before{
  content:"";display:inline-block;width:6px;height:6px;background:#c0563a;
  transform:rotate(45deg);margin-top:7px;border:0;flex:none;
}

/* — VSF AGENCY signature — exception charter: stays League Spartan — */
.lp-credit .vsf,.lp-credit .vsf b,
.lux-foot-legal .vsf,.lux-foot-legal .vsf b{
  font-family:'League Spartan',sans-serif!important;
}

/* ============================================================
   VSF AGENCY signature — final polish
   - "Designed with" + "by" in normal case (Plus Jakarta Sans)
   - Only "VSF AGENCY" is the link (League Spartan, hoverable)
   - Heart beats (md-beat keyframe defined here, was missing)
   ============================================================ */
@keyframes md-beat{
  0%,100% { transform:scale(1); }
  14%     { transform:scale(1.25); }
  28%     { transform:scale(1); }
  42%     { transform:scale(1.18); }
  70%     { transform:scale(1); }
}
@media (prefers-reduced-motion: reduce){
  .lp-heart{ animation:none !important; }
}

.lux-foot-legal .lp-credit{
  display:inline-flex; align-items:center; gap:8px;
}
.lux-foot-legal .lp-credit .vsf-prefix{
  font-family:'Plus Jakarta Sans', system-ui, sans-serif !important;
  font-size:13px; font-weight:500; letter-spacing:0;
  text-transform:none; color:rgba(253,247,238,.7);
}
.lux-foot-legal .lp-heart{
  width:18px; height:18px;
  color:#e6b422; fill:currentColor;
  animation:md-beat 1.3s ease-in-out infinite;
  transform-origin:center;
}
.lux-foot-legal .vsf{
  font-family:'League Spartan', sans-serif !important;
  font-size:13px; letter-spacing:2px; text-transform:uppercase;
  color:#fdf7ee; text-decoration:none; font-weight:500;
  border:0; transition:color .2s;
}
.lux-foot-legal .vsf b{
  color:#fdf7ee; font-weight:700; letter-spacing:2.4px;
}
.lux-foot-legal .vsf:hover{ color:#e8c789; }
.lux-foot-legal .vsf:hover b{ color:#e8c789; }

/* ============================================================
   Pour qui — 5 cards: 3 on top row, 2 wider on bottom row
   ============================================================ */
.B-pq{display:grid;grid-template-columns:repeat(6,1fr);gap:0;}
.B-pq-card{grid-column:span 2;}
.B-pq-card.r4,.B-pq-card.r5{grid-column:span 3;}

.B-pq-card.r4 .ph{
  background-image:image-set(url('/assets/img/preview/pq-maisons.avif') type('image/avif'),url('/assets/img/preview/pq-maisons.webp') type('image/webp'),url('/assets/img/preview/pq-maisons.jpg') type('image/jpeg'));
  background-image:-webkit-image-set(url('/assets/img/preview/pq-maisons.avif') type('image/avif'),url('/assets/img/preview/pq-maisons.webp') type('image/webp'),url('/assets/img/preview/pq-maisons.jpg') type('image/jpeg'));}
.B-pq-card.r5 .ph{
  background-image:image-set(url('/assets/img/preview/pq-bars.avif') type('image/avif'),url('/assets/img/preview/pq-bars.webp') type('image/webp'),url('/assets/img/preview/pq-bars.jpg') type('image/jpeg'));
  background-image:-webkit-image-set(url('/assets/img/preview/pq-bars.avif') type('image/avif'),url('/assets/img/preview/pq-bars.webp') type('image/webp'),url('/assets/img/preview/pq-bars.jpg') type('image/jpeg'));}

@media(max-width:900px){
  .B-pq{grid-template-columns:1fr;}
  .B-pq-card,.B-pq-card.r4,.B-pq-card.r5{grid-column:auto;}
}

/* ============================================================
   Nav — active link + solid-mode (for pages without a dark hero)
   The base .B-nav is overlay-style (absolute over the hero).
   .B-nav-solid turns it into a sticky bar with its own dark background.
   ============================================================ */
.B-nav-links a.is-active{
  color:#e8c789!important; opacity:1!important;
  position:relative;
}
.B-nav-links a.is-active::after{
  content:""; position:absolute; left:0; right:0; bottom:-8px;
  height:1px; background:#e8c789;
}

/* legacy .B-nav-solid kept as identity (no overrides) — partial no longer adds this class */
.B-nav.B-nav-solid{}
.B-nav.B-nav-solid .B-nav-in{}

/* ============================================================
   NO UNDERLINES — ever — across every B-styled page
   ============================================================ */
.B-nav a,
.B-nav-links a,
.B-nav-brand,
.B-nav-cta a,
.B-hero a,
.B-btn-fill, .B-btn-light, .B-btn-dark,
.lux-btn-p, .lux-btn-s,
.B-section a, .B-section-ivoire a, .B-multi a, .B-pq-card a,
.lux-prelude a, .lux-foot a, .lux-foot-col a, .lux-fb-logo, .lux-fb-addr a,
.dm-acte a, .dm-close a,
.B-banner a{
  text-decoration:none !important;
}

/* Active-link indicator: change from gold underline to gold dot */
.B-nav-links a.is-active::after{ content:none !important; }
.B-nav-links a.is-active{
  position:relative;
  padding-inline-end:14px;
}
.B-nav-links a.is-active::before{
  content:""; position:absolute; right:0; top:50%;
  width:5px; height:5px; transform:translateY(-50%) rotate(45deg);
  background:#e8c789;
}

/* (Underline-suppression rule removed 2026-06-29 — it was clobbering the bottom
   of the full pill outline that the Charter compliance block above sets.
   text-decoration:none on the same selectors already kills any anchor underline.) */

/* ════════════════════════════════════════════════════════════════════════════
   MOBILE HARDENING — front pages (home / demo / forms all load this file)
   Goal: zero horizontal scroll, comfortable phone spacing, full-width CTAs.
   Desktop (≥901px) is untouched — everything here is inside ≤760 / ≤600 queries
   except the global overflow + media guard which is safe at all widths.
   ════════════════════════════════════════════════════════════════════════════ */

/* Universal safety: never let a stray wide element create a horizontal scrollbar. */
html, body { overflow-x: hidden; max-width: 100%; }
img, svg, video, canvas { max-width: 100%; height: auto; }

@media (max-width: 760px) {
  /* Container side padding tightened for phones */
  .B-wrap { padding-inline: 22px; }

  /* Hero — full-width stacked CTAs (easier thumb targets) */
  .B-hero-in { padding-inline: 22px; }
  .B-hero-ctas { gap: 14px; width: 100%; }
  .B-hero-ctas .B-btn-fill,
  .B-hero-ctas .B-btn-dark { width: 100%; justify-content: center; }
  .B-hero-sub { font-size: 16px; }

  /* Section vertical rhythm — smaller on phone */
  .B-strip { padding-block: 18px; }

  /* Any 2+ column grid that wasn't already collapsed → single column */
  .B-actes, .B-hote, .B-eqs, .B-feats, .B-pq, .lux-foot-grid { grid-template-columns: 1fr !important; }

  /* CTA section buttons full width */
  .B-cta .B-hero-ctas,
  .B-cta-ctas { flex-direction: column; align-items: stretch; }
  .B-cta .B-btn-fill, .B-cta .B-btn-dark { width: 100%; justify-content: center; }
}

@media (max-width: 480px) {
  .B-wrap { padding-inline: 18px; }
  .B-hero-in { padding-inline: 18px; }
  .B-nav-in { padding-inline: 18px; }
  .B-hero h1 { font-size: 30px; }
}
