:root{
  --cb-ivory:#f4ede3;
  --cb-ivory-2:#e9dfd2;
  --cb-paper:#fffaf3;
  --cb-cream:#fbf4eb;
  --cb-ink:#17120f;
  --cb-muted:#706256;
  --cb-soft:#9c8c7b;
  --cb-line:rgba(23,18,15,.13);
  --cb-line-dark:rgba(255,255,255,.14);
  --cb-champagne:#c7a66f;
  --cb-champagne-2:#e5d0aa;
  --cb-dark:#120e0b;
  --cb-dark-2:#1c1511;
  --cb-shadow:0 30px 90px rgba(27,18,10,.16);
  --cb-shadow-strong:0 38px 120px rgba(8,5,3,.34);
  --cb-serif:"Cormorant Garamond", Georgia, serif;
  --cb-sans:Manrope, Inter, Arial, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--cb-ivory)}
body{margin:0;background:var(--cb-ivory);color:var(--cb-ink);font-family:var(--cb-sans);font-size:17px;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1000;opacity:.035;background-image:radial-gradient(circle at 20% 20%,#000 0 1px,transparent 1px),radial-gradient(circle at 80% 10%,#000 0 1px,transparent 1px);background-size:24px 24px,31px 31px;mix-blend-mode:multiply}
a{color:inherit;text-decoration:none}
img{max-width:100%}

/* Header + nouveau logo typographique */
.cb-topbar{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:50;width:min(1180px,calc(100% - 28px));display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 12px 10px 12px;border:1px solid rgba(255,255,255,.22);background:linear-gradient(90deg,rgba(18,14,11,.72),rgba(18,14,11,.50));backdrop-filter:blur(22px) saturate(130%);-webkit-backdrop-filter:blur(22px) saturate(130%);border-radius:999px;color:white;box-shadow:0 18px 70px rgba(0,0,0,.24)}
.cb-topbar:before{content:"";position:absolute;inset:1px;border-radius:999px;border:1px solid rgba(199,166,111,.13);pointer-events:none}
.cb-brand{display:flex;align-items:center;gap:12px;min-width:0;position:relative;z-index:2}.cb-brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(229,208,170,.72);background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.18),transparent 34%),linear-gradient(135deg,rgba(199,166,111,.32),rgba(255,255,255,.05));color:#f5e9d7;font-family:var(--cb-serif);font-size:19px;font-weight:600;letter-spacing:-.08em;line-height:1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}.cb-brand-text{display:block;min-width:0}.cb-brand strong{display:block;font-family:var(--cb-serif);font-size:22px;line-height:.9;font-weight:600;letter-spacing:-.035em;white-space:nowrap;color:#fff8ef}.cb-brand span span{display:block;margin-top:6px;font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.22em;color:rgba(255,255,255,.62);white-space:nowrap}.cb-menu-toggle{display:none;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.25);color:white;border-radius:999px;width:42px;height:42px;font-size:18px;position:relative;z-index:2}.cb-nav{display:flex;align-items:center;gap:2px;position:relative;z-index:2}.cb-nav a{font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:12px 12px;border-radius:999px;color:rgba(255,255,255,.80);transition:background .22s ease,color .22s ease,transform .22s ease}.cb-nav a:hover{background:rgba(255,255,255,.10);color:white;transform:translateY(-1px)}.cb-nav .cb-cta{background:#fff7eb;color:#18120e;font-weight:800;box-shadow:0 10px 30px rgba(0,0,0,.14)}

/* Hero premium */
.cb-hero{min-height:100svh;position:relative;display:grid;align-items:end;padding:144px max(30px,calc((100vw - 1220px)/2)) 74px;color:white;isolation:isolate;background:#15110e url('../images/Photographe-Mariage-Lille_Nord_Hauts-De-France-Christophe-Blaszkowski-1200.webp') center/cover no-repeat;overflow:hidden}.cb-hero:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(8,6,5,.78),rgba(8,6,5,.36) 44%,rgba(8,6,5,.16)),linear-gradient(0deg,rgba(8,6,5,.92),rgba(8,6,5,.10) 55%,rgba(8,6,5,.34)),radial-gradient(circle at 39% 51%,rgba(199,166,111,.21),transparent 34%)}.cb-hero:after{content:"";position:absolute;left:max(26px,calc((100vw - 1220px)/2));right:max(26px,calc((100vw - 1220px)/2));bottom:28px;height:1px;background:linear-gradient(90deg,transparent,rgba(229,208,170,.42),transparent);z-index:-1}.cb-hero-inner{max-width:760px;position:relative}.cb-hero-inner:before{content:"";position:absolute;left:-34px;top:-44px;width:110px;height:110px;border-left:1px solid rgba(229,208,170,.36);border-top:1px solid rgba(229,208,170,.36);opacity:.8}.cb-kicker,.cb-eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--cb-champagne-2);font-weight:800}.cb-hero h1,.cb-title,.cb-quote strong{font-family:var(--cb-serif);font-weight:500;line-height:.90;letter-spacing:-.055em}.cb-hero h1{font-size:clamp(58px,8.9vw,126px);margin:18px 0 26px;max-width:780px;text-wrap:balance}.cb-hero p{max-width:665px;font-size:clamp(17px,1.42vw,21px);line-height:1.58;color:rgba(255,255,255,.86);margin:0;text-wrap:pretty}.cb-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.cb-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:13px 19px;border-radius:999px;border:1px solid rgba(255,255,255,.34);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:850;color:white;transition:transform .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease}.cb-button:hover{transform:translateY(-2px)}.cb-button.primary{background:linear-gradient(135deg,var(--cb-champagne-2),var(--cb-champagne));border-color:rgba(255,255,255,.08);color:#18120e;box-shadow:0 18px 48px rgba(0,0,0,.28)}.cb-button.dark{background:var(--cb-dark);border-color:var(--cb-dark);color:white;box-shadow:0 15px 36px rgba(20,13,8,.17)}.cb-button.light{border-color:var(--cb-line);color:var(--cb-ink);background:rgba(255,255,255,.48)}.cb-hero-signature{margin-top:22px;font-size:11px;text-transform:uppercase;letter-spacing:.22em;color:rgba(255,255,255,.62)}.cb-hero-meta{position:absolute;right:max(30px,calc((100vw - 1220px)/2));bottom:74px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid rgba(255,255,255,.20);border-radius:24px;overflow:hidden;background:rgba(255,255,255,.08);backdrop-filter:blur(18px);box-shadow:var(--cb-shadow-strong)}.cb-hero-meta div{padding:20px 22px;min-width:138px;background:rgba(0,0,0,.09)}.cb-hero-meta strong{display:block;font-family:var(--cb-serif);font-size:34px;line-height:1;font-weight:600}.cb-hero-meta span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.72);line-height:1.35;margin-top:8px}

/* Sections éditoriales */
.cb-section{padding:118px max(26px,calc((100vw - 1160px)/2));position:relative}.cb-section.alt{background:linear-gradient(180deg,var(--cb-paper),#fbf2e8)}.cb-section.soft{background:linear-gradient(180deg,var(--cb-ivory-2),#eee4d7)}.cb-section.dark{background:radial-gradient(circle at 50% 0,rgba(199,166,111,.16),transparent 34%),linear-gradient(180deg,var(--cb-dark-2),var(--cb-dark));color:white;overflow:hidden}.cb-section.dark:before{content:"";position:absolute;inset:24px;border:1px solid rgba(229,208,170,.12);pointer-events:none}.cb-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:78px;align-items:center}.cb-grid.top{align-items:start}.cb-title{font-size:clamp(46px,5.7vw,82px);margin:15px 0 24px;text-wrap:balance}.cb-lead{font-size:clamp(18px,1.9vw,23px);line-height:1.58;color:var(--cb-muted);max-width:720px;text-wrap:pretty}.cb-section.dark .cb-lead{color:rgba(255,255,255,.72)}.cb-copy p{color:var(--cb-muted);margin:0 0 18px}.cb-card{background:linear-gradient(180deg,rgba(255,255,255,.67),rgba(255,255,255,.38));border:1px solid rgba(23,18,15,.10);border-radius:32px;padding:38px;box-shadow:var(--cb-shadow);position:relative;overflow:hidden}.cb-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 18% 0,rgba(199,166,111,.15),transparent 34%);pointer-events:none}.cb-card h3{font-family:var(--cb-serif);font-size:38px;line-height:.98;margin:0 0 16px;font-weight:500}.cb-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.cb-pills span,.cb-step .num{border:1px solid var(--cb-line);background:rgba(255,255,255,.54);border-radius:999px;padding:8px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:850;color:#625346}.cb-media-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:end}.cb-media-pair img{width:100%;height:500px;object-fit:cover;border-radius:34px;box-shadow:var(--cb-shadow);filter:saturate(1.02) contrast(1.02)}.cb-media-pair img:nth-child(2){height:350px;margin-bottom:-36px}.cb-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:38px}.cb-step{border:1px solid rgba(23,18,15,.11);border-radius:28px;padding:26px;background:rgba(255,255,255,.44);box-shadow:0 18px 50px rgba(27,18,10,.07)}.cb-step h3{font-family:var(--cb-serif);font-size:32px;line-height:1.02;margin:20px 0 10px;font-weight:500}.cb-step p{font-size:15px;color:var(--cb-muted);margin:0;line-height:1.55}.cb-quote{text-align:center;max-width:900px;margin:auto;position:relative}.cb-quote:before,.cb-quote:after{content:"";display:block;width:112px;height:1px;background:linear-gradient(90deg,transparent,var(--cb-champagne-2),transparent);margin:0 auto 34px}.cb-quote:after{margin:34px auto 0}.cb-quote strong{display:block;font-size:clamp(44px,5.2vw,80px);margin-bottom:22px}.cb-quote p{color:rgba(255,255,255,.72);font-size:18px}.cb-testimonials{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:34px}.cb-review{border:1px solid rgba(23,18,15,.11);border-radius:28px;padding:28px;background:rgba(255,255,255,.52);box-shadow:0 18px 50px rgba(27,18,10,.08)}.cb-stars{color:#b89661;letter-spacing:.12em;font-size:15px}.cb-review p{color:var(--cb-muted);font-size:15px;line-height:1.6}.cb-review strong{display:block;margin-top:16px;font-family:var(--cb-serif);font-size:24px}.cb-split-cta{display:grid;grid-template-columns:1.15fr .85fr;gap:32px;align-items:center}

/* Galeries : logique originale conservée, présence pleine largeur */
.cb-original-gallery-section{padding:102px 0;background:linear-gradient(180deg,var(--cb-ivory-2),#e7ddcf);overflow:hidden}.cb-original-gallery-section.white{background:linear-gradient(180deg,var(--cb-paper),#f8efe5)}.cb-gallery-heading{text-align:center;max-width:790px;margin:0 auto 44px;padding:0 24px}.cb-gallery-heading .cb-title{font-size:clamp(42px,5.1vw,70px)}.cb-original-gallery-shell{width:100%;max-width:none;margin:0}.cb-original-gallery-shell .grid-container{width:100%;max-width:none;margin:0}.cb-original-gallery-note{font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:var(--cb-muted);text-align:center;margin-top:20px;padding:0 18px}.cb-original-gallery-section .cb-eyebrow{color:#a38355}

/* Footer */
.cb-footer{background:radial-gradient(circle at 15% 0,rgba(199,166,111,.14),transparent 30%),#0f0c09;color:white;padding:70px max(26px,calc((100vw - 1160px)/2)) 52px}.cb-footer-grid{display:grid;grid-template-columns:1.25fr .75fr .85fr;gap:34px}.cb-footer-brand{display:flex;align-items:center;gap:14px;margin-bottom:18px}.cb-footer h2,.cb-footer h3{font-family:var(--cb-serif);font-weight:500;line-height:1;margin:0 0 16px}.cb-footer h2{font-size:46px;letter-spacing:-.04em}.cb-footer h3{font-size:31px}.cb-footer p,.cb-footer a{color:rgba(255,255,255,.68)}.cb-footer a{display:block;margin:8px 0;transition:color .2s ease}.cb-footer a:hover{color:white}.cb-footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:22px;font-size:13px;color:rgba(255,255,255,.52)}

@media (max-width:1000px){.cb-topbar{top:10px;border-radius:28px;align-items:flex-start}.cb-menu-toggle{display:block;flex:none}.cb-nav{display:none;position:absolute;left:10px;right:10px;top:64px;grid-template-columns:1fr;background:rgba(18,14,11,.96);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:10px;box-shadow:0 24px 70px rgba(0,0,0,.34)}.cb-topbar.is-open .cb-nav{display:grid}.cb-nav a{padding:14px}.cb-hero{padding:118px 22px 38px;align-items:end}.cb-hero h1{font-size:clamp(50px,15vw,80px)}.cb-hero-inner:before{left:-12px;top:-24px;width:74px;height:74px}.cb-hero-meta{position:relative;right:auto;bottom:auto;margin-top:34px;grid-template-columns:1fr}.cb-hero-meta div{min-width:0;padding:15px 17px}.cb-section{padding:78px 22px}.cb-grid,.cb-split-cta,.cb-footer-grid{grid-template-columns:1fr;gap:34px}.cb-card{padding:28px;border-radius:24px}.cb-media-pair img{height:340px;border-radius:24px}.cb-media-pair img:nth-child(2){height:240px;margin-bottom:0}.cb-steps,.cb-testimonials{grid-template-columns:1fr}.cb-original-gallery-section{padding:74px 0}.cb-gallery-heading{padding:0 18px}.cb-brand span span{display:none}.cb-brand strong{font-size:19px}.cb-brand-mark{width:38px;height:38px;font-size:17px}.cb-footer{padding:54px 24px}}
@media (max-width:560px){body{font-size:16px}.cb-topbar{width:calc(100% - 18px);padding:8px}.cb-brand{gap:9px}.cb-brand strong{font-size:17px;max-width:210px;overflow:hidden;text-overflow:ellipsis}.cb-brand-mark{width:36px;height:36px}.cb-hero{min-height:100svh;background-position:center center}.cb-hero p{font-size:16px}.cb-button{width:100%;min-height:48px}.cb-actions{width:100%}.cb-title{font-size:43px}.cb-lead{font-size:18px}.cb-original-gallery-section{padding-left:0;padding-right:0}.cb-gallery-heading{margin-bottom:26px;padding:0 14px}.cb-footer h2{font-size:38px}.cb-hero-signature{font-size:10px;line-height:1.5}.cb-section.dark:before{inset:12px}.cb-quote strong{font-size:42px}}


/* V2.6 – Hero immersif & viewer premium */
.cb-hero.cb-hero-story{position:relative;min-height:100svh;height:100svh;display:block;padding:0;overflow:hidden;background:#120e0b;color:#fff}
.cb-hero-slides{position:absolute;inset:0;z-index:0}
.cb-hero-slide{position:absolute;inset:0;background-position:center center;background-size:cover;opacity:0;transform:scale(1.05);transition:opacity 1.1s ease,transform 7s ease}
.cb-hero-slide.is-active{opacity:1;transform:scale(1)}
.cb-hero.cb-hero-story:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(7,6,5,.82),rgba(7,6,5,.38) 42%,rgba(7,6,5,.30) 66%,rgba(7,6,5,.62)),linear-gradient(180deg,rgba(7,6,5,.44),rgba(7,6,5,.12) 22%,rgba(7,6,5,.88) 100%)}
.cb-hero.cb-hero-story:after{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 22% 30%,rgba(229,208,170,.15),transparent 28%),radial-gradient(circle at 78% 20%,rgba(199,166,111,.10),transparent 24%)}
.cb-hero-shell{position:relative;z-index:2;height:100%;padding:132px max(26px,calc((100vw - 1220px)/2)) 40px;display:flex;flex-direction:column;justify-content:center}
.cb-hero-grid-premium{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(310px,.82fr);align-items:end;gap:34px;min-height:calc(100svh - 170px)}
.cb-hero-main{max-width:760px}
.cb-hero-main .cb-kicker{margin-bottom:12px}
.cb-hero-main h1{margin-bottom:22px;text-shadow:0 8px 24px rgba(0,0,0,.26)}
.cb-hero-main p{max-width:700px;text-shadow:0 4px 18px rgba(0,0,0,.22)}
.cb-hero-context-card{margin-top:28px;max-width:570px;padding:22px 24px 24px;border-radius:28px;border:1px solid rgba(255,255,255,.16);background:linear-gradient(180deg,rgba(18,14,11,.52),rgba(18,14,11,.30));backdrop-filter:blur(18px) saturate(126%);box-shadow:0 22px 70px rgba(0,0,0,.20)}
.cb-hero-context-kicker{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:rgba(229,208,170,.82);margin-bottom:12px;font-weight:800}
.cb-hero-context-card h2{font-family:var(--cb-serif);font-size:40px;line-height:.96;letter-spacing:-.045em;margin:0 0 12px;font-weight:500;text-wrap:balance}
.cb-hero-context-card p{margin:0;font-size:15px;line-height:1.65;color:rgba(255,255,255,.82)}
.cb-hero-side{display:flex;flex-direction:column;align-items:stretch;gap:18px;justify-content:flex-end}
.cb-hero-side .cb-hero-meta{position:relative;right:auto;bottom:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border-radius:28px;overflow:hidden;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18)}
.cb-hero-storycard{padding:24px 24px 22px;border:1px solid rgba(255,255,255,.14);border-radius:32px;background:linear-gradient(180deg,rgba(18,14,11,.72),rgba(18,14,11,.42));backdrop-filter:blur(18px) saturate(130%);box-shadow:0 26px 90px rgba(0,0,0,.26)}
.cb-hero-story-top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}
.cb-hero-story-label{font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:rgba(229,208,170,.82);font-weight:800}
.cb-hero-story-count{display:flex;align-items:baseline;gap:6px;color:rgba(255,255,255,.60);font-size:13px}
.cb-hero-story-count strong{font-family:var(--cb-serif);font-size:32px;color:#fff;font-weight:600;line-height:1}
.cb-hero-storycard h3{font-family:var(--cb-serif);font-size:40px;line-height:.96;letter-spacing:-.045em;margin:0 0 14px;font-weight:500;text-wrap:balance}
.cb-hero-storycard p{margin:0;color:rgba(255,255,255,.78);font-size:15px;line-height:1.7}
.cb-hero-progress{height:4px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.12);margin:22px 0 14px}
.cb-hero-progress span{display:block;height:100%;width:25%;background:linear-gradient(90deg,var(--cb-champagne-2),var(--cb-champagne));border-radius:999px;transition:width .4s ease}
.cb-hero-dots{display:flex;gap:9px}
.cb-hero-dots button{appearance:none;border:0;width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.25);padding:0;cursor:pointer;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.cb-hero-dots button.is-active{background:var(--cb-champagne-2);transform:scale(1.1);box-shadow:0 0 0 4px rgba(229,208,170,.12)}
.cb-scroll-indicator{align-self:flex-start;margin-top:22px;display:inline-flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.cb-scroll-indicator span{display:block;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.22);position:relative;background:rgba(255,255,255,.06)}
.cb-scroll-indicator span:before{content:"";position:absolute;left:50%;top:8px;width:1px;height:10px;background:rgba(255,255,255,.58);transform:translateX(-50%)}
.cb-scroll-indicator span:after{content:"";position:absolute;left:50%;bottom:8px;width:7px;height:7px;border-right:1px solid rgba(255,255,255,.58);border-bottom:1px solid rgba(255,255,255,.58);transform:translateX(-50%) rotate(45deg)}

.cb-original-gallery-section .grid-item figure{position:relative}
.cb-original-gallery-section .grid-item figure:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(7,6,5,.82));opacity:0;transition:opacity .3s ease;pointer-events:none;border-radius:inherit}
.cb-original-gallery-section .grid-item:hover figure:before{opacity:1}

.cb-immersive-viewer .fancybox__backdrop{background:radial-gradient(circle at top,rgba(199,166,111,.12),transparent 24%),rgba(7,6,5,.96)}
.cb-immersive-viewer .fancybox__toolbar{padding:18px 18px 0;background:none}
.cb-immersive-viewer .fancybox__toolbar__items{gap:8px}
.cb-immersive-viewer .f-button{border-radius:999px;background:rgba(255,255,255,.08);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.12);color:#fff;box-shadow:none}
.cb-immersive-viewer .f-button:hover{background:rgba(255,255,255,.14)}
.cb-immersive-viewer .fancybox__counter{padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.cb-immersive-viewer .fancybox__carousel .fancybox__slide{padding:38px 24px 210px}
.cb-immersive-viewer .fancybox__content{border-radius:18px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.34)}
.cb-immersive-viewer .fancybox__caption{padding:0 22px 28px;background:none}
.cb-fb-caption-card{max-width:min(980px,calc(100vw - 42px));margin:0 auto;padding:22px 24px 24px;border-radius:28px;background:linear-gradient(180deg,rgba(18,14,11,.84),rgba(18,14,11,.70));backdrop-filter:blur(22px) saturate(130%);border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 90px rgba(0,0,0,.22);color:#fff}
.cb-fb-caption-kicker{display:block;margin-bottom:12px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:rgba(229,208,170,.82);font-weight:800}
.cb-fb-caption-card h3{margin:0 0 12px;font-family:var(--cb-serif);font-size:42px;line-height:.95;font-weight:500;letter-spacing:-.04em;text-wrap:balance}
.cb-fb-caption-text{font-size:16px;line-height:1.72;color:rgba(255,255,255,.82)}
.cb-fb-caption-text strong{color:#fff;font-weight:700}

@media (max-width:1180px){
  .cb-hero-shell{padding-top:120px}
  .cb-hero-grid-premium{grid-template-columns:1fr;gap:22px;align-items:end}
  .cb-hero-side{max-width:760px}
}
@media (max-width:1000px){
  .cb-hero.cb-hero-story{height:auto;min-height:100svh}
  .cb-hero-shell{padding:108px 22px 26px;justify-content:flex-end}
  .cb-hero-grid-premium{min-height:auto}
  .cb-hero-context-card h2,.cb-hero-storycard h3{font-size:34px}
  .cb-hero-side .cb-hero-meta{grid-template-columns:1fr}
  .cb-scroll-indicator{margin-top:12px}
  .cb-immersive-viewer .fancybox__carousel .fancybox__slide{padding-bottom:250px}
}
@media (max-width:560px){
  .cb-hero-shell{padding:102px 16px 20px}
  .cb-hero-main h1{font-size:clamp(48px,14vw,72px)}
  .cb-hero-main p{font-size:16px;line-height:1.58}
  .cb-hero-context-card,.cb-hero-storycard{padding:18px 18px 20px;border-radius:24px}
  .cb-hero-context-card h2,.cb-hero-storycard h3{font-size:28px}
  .cb-scroll-indicator{font-size:10px;letter-spacing:.16em}
  .cb-immersive-viewer .fancybox__carousel .fancybox__slide{padding:22px 12px 285px}
  .cb-immersive-viewer .fancybox__caption{padding:0 12px 16px}
  .cb-fb-caption-card{padding:18px 16px 18px;border-radius:24px}
  .cb-fb-caption-card h3{font-size:28px}
  .cb-fb-caption-text{font-size:15px;line-height:1.65}
}


/* V2.7 — hero plus léger, texte dynamique, contact & FR/EN */
.cb-lang-switch{display:inline-flex;align-items:center;gap:2px;margin:0 4px;padding:3px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.06)}
.cb-lang-switch a{padding:8px 9px!important;font-size:10px!important;letter-spacing:.12em!important}
.cb-lang-switch .is-current{background:rgba(255,255,255,.14);color:#fff;border-radius:999px}

.cb-hero-v27 .cb-hero-shell{padding-top:112px;padding-bottom:26px;justify-content:center}
.cb-hero-v27 .cb-hero-grid-premium{grid-template-columns:minmax(0,0.92fr) minmax(360px,0.62fr);gap:42px;align-items:end;min-height:calc(100svh - 138px)}
.cb-hero-v27 .cb-hero-main{max-width:690px;align-self:center}
.cb-hero-v27 .cb-hero-main h1{font-size:clamp(50px,5.8vw,88px);line-height:.9;max-width:680px;margin:14px 0 20px}
.cb-hero-v27 .cb-hero-main p{font-size:clamp(16px,1.08vw,19px);line-height:1.62;max-width:600px;color:rgba(255,255,255,.82)}
.cb-hero-copy{transition:opacity .22s ease, transform .22s ease}
.cb-hero-copy.is-changing{opacity:.38;transform:translateY(6px)}
.cb-hero-v27 .cb-actions{margin-top:22px}
.cb-hero-mini-proof{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;color:rgba(255,255,255,.76)}
.cb-hero-mini-proof span{display:inline-flex;align-items:baseline;gap:6px;padding:8px 11px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.07);backdrop-filter:blur(12px);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.cb-hero-mini-proof strong{font-family:var(--cb-serif);font-size:18px;letter-spacing:-.03em;color:#fff}

.cb-hero-v27 .cb-hero-panel{align-self:end;gap:12px}
.cb-hero-v27 .cb-hero-storycard{padding:20px 20px 18px;border-radius:28px}
.cb-hero-v27 .cb-hero-storycard h3{font-size:31px;margin-bottom:10px}
.cb-hero-v27 .cb-hero-storycard p{font-size:14px;line-height:1.58}
.cb-hero-story-detail{margin-top:8px!important;color:rgba(255,255,255,.58)!important}
.cb-hero-v27 .cb-hero-progress{margin:16px 0 12px}
.cb-hero-v27 .cb-hero-story-count strong{font-size:26px}

.cb-hero-form-card{position:relative;padding:20px;border-radius:28px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(180deg,rgba(255,248,238,.94),rgba(255,248,238,.82));color:var(--cb-ink);backdrop-filter:blur(22px) saturate(130%);box-shadow:0 26px 90px rgba(0,0,0,.24)}
.cb-hero-form-card .cb-hero-context-kicker{color:#9a7543;margin-bottom:8px}
.cb-hero-form-card h2{font-family:var(--cb-serif);font-size:34px;line-height:.96;letter-spacing:-.045em;font-weight:500;margin:0 0 8px}
.cb-hero-form-card p{font-size:13px;line-height:1.52;color:#6f6257;margin:0 0 14px}
.cb-cf7-slot:not(:has(.wpcf7)){display:none}
.cb-hero-form-card:has(.wpcf7) .cb-contact-preview{display:none}
.cb-cf7-slot:has(.wpcf7){display:block}
.cb-contact-preview{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cb-contact-preview label{display:block}
.cb-contact-preview label:nth-child(3),.cb-contact-preview button{grid-column:1/-1}
.cb-contact-preview span{display:block;font-size:9px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:#8a796a;margin:0 0 4px}
.cb-contact-preview input{width:100%;height:38px;border:1px solid rgba(23,18,15,.12);border-radius:14px;background:rgba(255,255,255,.70);padding:0 12px;font:500 13px var(--cb-sans);color:var(--cb-ink);outline:none}
.cb-contact-preview button{height:42px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--cb-dark),#2a2019);color:white;font:800 10px var(--cb-sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.cb-scroll-indicator{position:absolute;left:max(26px,calc((100vw - 1220px)/2));bottom:18px;margin-top:0}
.cb-hero-v27 .cb-scroll-indicator span{width:28px;height:28px}

@media (max-width:1180px){
  .cb-hero-v27 .cb-hero-grid-premium{grid-template-columns:1fr;gap:18px;min-height:auto}
  .cb-hero-v27 .cb-hero-main{max-width:760px}
  .cb-hero-v27 .cb-hero-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:none}
  .cb-hero-v27 .cb-hero-main h1{font-size:clamp(48px,8vw,76px)}
}
@media (max-width:1000px){
  .cb-lang-switch{margin:6px 0}
  .cb-lang-switch a{display:inline-flex!important;justify-content:center}
  .cb-hero-v27 .cb-hero-shell{padding-top:104px}
  .cb-hero-v27 .cb-hero-panel{grid-template-columns:1fr}
  .cb-hero-form-card{display:none}
  .cb-scroll-indicator{position:relative;left:auto;bottom:auto;align-self:flex-start;margin-top:14px}
}
@media (max-width:560px){
  .cb-hero-v27 .cb-hero-shell{padding:96px 16px 18px}
  .cb-hero-v27 .cb-hero-main h1{font-size:clamp(42px,13vw,58px);margin-bottom:16px}
  .cb-hero-v27 .cb-hero-main p{font-size:15px}
  .cb-hero-mini-proof span{font-size:9px;padding:7px 9px}
  .cb-hero-v27 .cb-hero-storycard{padding:16px;border-radius:22px}
  .cb-hero-v27 .cb-hero-storycard h3{font-size:25px}
}


/* V2.8 — image first + lightbox local robuste */
.cb-hero-v27.cb-hero-story:before{
  background:
    linear-gradient(90deg,rgba(7,6,5,.58),rgba(7,6,5,.18) 39%,rgba(7,6,5,.08) 62%,rgba(7,6,5,.32)),
    linear-gradient(180deg,rgba(7,6,5,.30),rgba(7,6,5,.03) 30%,rgba(7,6,5,.48) 100%)!important;
}
.cb-hero-v27.cb-hero-story:after{
  opacity:.48;
  background:
    radial-gradient(circle at 15% 30%,rgba(229,208,170,.10),transparent 24%),
    radial-gradient(circle at 82% 15%,rgba(199,166,111,.07),transparent 22%)!important;
}
.cb-hero-v27 .cb-hero-slide{filter:saturate(1.07) contrast(1.03);background-position:center center}
.cb-hero-v27 .cb-hero-slide.is-active{transform:scale(1.012)}
.cb-hero-v27 .cb-hero-grid-premium{grid-template-columns:minmax(0,.78fr) minmax(350px,.50fr);gap:70px}
.cb-hero-v27 .cb-hero-main{max-width:580px}
.cb-hero-v27 .cb-kicker{font-size:10px;letter-spacing:.24em;text-shadow:0 4px 16px rgba(0,0,0,.32)}
.cb-hero-v27 .cb-hero-main h1{font-size:clamp(43px,4.7vw,72px);line-height:.92;max-width:560px;text-shadow:0 8px 28px rgba(0,0,0,.32)}
.cb-hero-v27 .cb-hero-main p{font-size:clamp(15px,.96vw,17px);line-height:1.62;max-width:520px;text-shadow:0 4px 18px rgba(0,0,0,.32)}
.cb-hero-v27 .cb-actions{margin-top:20px}
.cb-hero-v27 .cb-button{min-height:42px;padding:11px 16px;font-size:10px}
.cb-hero-v27 .cb-hero-mini-proof{margin-top:16px}
.cb-hero-v27 .cb-hero-mini-proof span{background:rgba(7,6,5,.30);border-color:rgba(255,255,255,.16)}
.cb-hero-v27 .cb-hero-panel{opacity:.92}
.cb-hero-v27 .cb-hero-storycard{
  background:linear-gradient(180deg,rgba(18,14,11,.52),rgba(18,14,11,.34));
  border-color:rgba(255,255,255,.12);
  backdrop-filter:blur(14px) saturate(118%);
}
.cb-hero-v27 .cb-hero-form-card{
  background:linear-gradient(180deg,rgba(255,248,238,.84),rgba(255,248,238,.70));
  backdrop-filter:blur(16px) saturate(118%);
  padding:18px;
}
.cb-hero-v27 .cb-hero-form-card h2{font-size:30px}
.cb-hero-v27 .cb-hero-form-card p{font-size:12.5px}
.cb-contact-preview input{height:36px}
.cb-contact-preview button{height:40px}

/* Cache l'ancien style Fancybox si le CDN ne se charge pas : notre viewer prend le relais */
body.cb-lightbox-open{overflow:hidden}
.cb-lightbox{position:fixed;inset:0;z-index:9999;display:none;color:#fff}
.cb-lightbox.is-open{display:block}
.cb-lightbox-backdrop{position:absolute;inset:0;background:radial-gradient(circle at top,rgba(199,166,111,.14),transparent 24%),rgba(6,5,4,.96);backdrop-filter:blur(10px)}
.cb-lightbox-stage{position:relative;z-index:1;height:100svh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:18px;padding:22px}
.cb-lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:14px}
.cb-lightbox-brand{display:inline-flex;align-items:center;gap:10px;font:800 11px var(--cb-sans);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.70)}
.cb-lightbox-brand span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(229,208,170,.55);font-family:var(--cb-serif);font-size:18px;letter-spacing:-.08em;color:#f7ead6;background:rgba(255,255,255,.06)}
.cb-lightbox-actions{display:flex;align-items:center;gap:8px}
.cb-lightbox-btn{width:42px;height:42px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);color:white;font-size:24px;line-height:1;cursor:pointer;backdrop-filter:blur(12px)}
.cb-lightbox-btn:hover{background:rgba(255,255,255,.14)}
.cb-lightbox-count{min-width:84px;text-align:center;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.72);padding:11px 13px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.06)}
.cb-lightbox-image-wrap{min-height:0;display:grid;place-items:center;padding:0 24px}
.cb-lightbox-image{max-width:100%;max-height:calc(100svh - 300px);object-fit:contain;border-radius:18px;box-shadow:0 30px 110px rgba(0,0,0,.42)}
.cb-lightbox-caption{width:min(980px,calc(100vw - 44px));margin:0 auto 4px;padding:22px 24px 24px;border-radius:28px;background:linear-gradient(180deg,rgba(18,14,11,.82),rgba(18,14,11,.66));border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(22px) saturate(130%);box-shadow:0 24px 90px rgba(0,0,0,.24)}
.cb-lightbox-caption>span{display:block;margin-bottom:10px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:rgba(229,208,170,.82);font-weight:800}
.cb-lightbox-caption h3{margin:0 0 10px;font-family:var(--cb-serif);font-size:38px;line-height:.96;font-weight:500;letter-spacing:-.04em;text-wrap:balance}
.cb-lightbox-caption div{font-size:15px;line-height:1.72;color:rgba(255,255,255,.82)}
.cb-lightbox-caption strong{color:#fff}

@media (max-width:1180px){
  .cb-hero-v27 .cb-hero-grid-premium{grid-template-columns:1fr;gap:18px}
  .cb-hero-v27 .cb-hero-main{max-width:650px}
  .cb-hero-v27 .cb-hero-panel{grid-template-columns:1fr 1fr}
}
@media (max-width:1000px){
  .cb-hero-v27 .cb-hero-main h1{font-size:clamp(42px,10vw,68px)}
  .cb-lightbox-stage{padding:16px;gap:12px}
  .cb-lightbox-image{max-height:calc(100svh - 330px)}
  .cb-lightbox-caption h3{font-size:30px}
}
@media (max-width:560px){
  .cb-hero-v27.cb-hero-story:before{background:linear-gradient(180deg,rgba(7,6,5,.24),rgba(7,6,5,.24) 35%,rgba(7,6,5,.70))!important}
  .cb-hero-v27 .cb-hero-main h1{font-size:clamp(38px,12vw,54px)}
  .cb-hero-v27 .cb-hero-panel{display:block}
  .cb-lightbox-stage{padding:12px;grid-template-rows:auto minmax(0,1fr) auto}
  .cb-lightbox-brand{letter-spacing:.12em}
  .cb-lightbox-brand span{width:34px;height:34px}
  .cb-lightbox-btn{width:38px;height:38px}
  .cb-lightbox-count{min-width:72px;padding:10px 8px}
  .cb-lightbox-image-wrap{padding:0}
  .cb-lightbox-image{max-height:calc(100svh - 360px);border-radius:12px}
  .cb-lightbox-caption{width:100%;padding:17px 16px 18px;border-radius:22px}
  .cb-lightbox-caption h3{font-size:25px}
  .cb-lightbox-caption div{font-size:14px;line-height:1.62}
}


/* V2.9 — CTA first look sans formulaire plein écran + vraie section contact */
.cb-hero-v27 .cb-hero-grid-premium{grid-template-columns:minmax(0,.82fr) minmax(340px,.46fr)}
.cb-hero-firstlook-card{
  padding:18px 18px 17px;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.13);
  background:linear-gradient(180deg,rgba(18,14,11,.44),rgba(18,14,11,.28));
  color:#fff;
  backdrop-filter:blur(14px) saturate(118%);
  box-shadow:0 24px 80px rgba(0,0,0,.20);
}
.cb-hero-firstlook-card h2{
  font-family:var(--cb-serif);
  font-size:31px;
  line-height:.98;
  letter-spacing:-.04em;
  font-weight:500;
  margin:0 0 10px;
  text-wrap:balance;
}
.cb-hero-firstlook-card p{
  margin:0;
  font-size:13.5px;
  line-height:1.58;
  color:rgba(255,255,255,.74);
}
.cb-firstlook-actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:16px;
}
.cb-firstlook-actions .cb-button{
  min-height:39px;
  padding:10px 14px;
  font-size:9.5px;
}
.cb-firstlook-proof{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:13px;
}
.cb-firstlook-proof span{
  display:inline-flex;
  padding:7px 9px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  font-size:9.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.64);
  font-weight:800;
}

.cb-contact-section{
  background:
    radial-gradient(circle at 16% 8%,rgba(199,166,111,.12),transparent 28%),
    linear-gradient(180deg,var(--cb-paper),#f4eadf);
}
.cb-contact-layout{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(360px,1.12fr);
  gap:56px;
  align-items:start;
}
.cb-contact-intro{position:sticky;top:120px}
.cb-contact-notes{
  display:grid;
  gap:12px;
  margin-top:28px;
}
.cb-contact-notes article{
  padding:18px 18px;
  border:1px solid rgba(23,18,15,.10);
  border-radius:24px;
  background:rgba(255,255,255,.46);
  box-shadow:0 14px 46px rgba(27,18,10,.06);
}
.cb-contact-notes strong{
  display:block;
  font-family:var(--cb-serif);
  font-size:28px;
  line-height:1;
  font-weight:500;
  margin-bottom:7px;
}
.cb-contact-notes span{
  display:block;
  color:var(--cb-muted);
  font-size:14px;
  line-height:1.55;
}
.cb-contact-form-card{
  border-radius:36px;
  border:1px solid rgba(23,18,15,.10);
  background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(255,255,255,.38));
  box-shadow:var(--cb-shadow);
  padding:30px;
}
.cb-contact-preview-full{
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.cb-contact-preview-full label.wide,
.cb-contact-preview-full button{
  grid-column:1/-1;
}
.cb-contact-preview-full span{
  margin-bottom:7px;
  color:#7a6b5e;
}
.cb-contact-preview-full input,
.cb-contact-preview-full textarea{
  width:100%;
  border:1px solid rgba(23,18,15,.12);
  border-radius:16px;
  background:rgba(255,255,255,.74);
  padding:0 14px;
  font:500 14px var(--cb-sans);
  color:var(--cb-ink);
  outline:none;
}
.cb-contact-preview-full input{height:46px}
.cb-contact-preview-full textarea{
  min-height:170px;
  resize:vertical;
  padding-top:13px;
  line-height:1.55;
}
.cb-contact-preview-full button{
  height:50px;
  margin-top:2px;
  border:0;
  border-radius:999px;
  background:linear-gradient(135deg,var(--cb-dark),#2a2019);
  color:#fff;
  font:850 11px var(--cb-sans);
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
}

/* Quand Contact Form 7 est rendu par WordPress, le vrai formulaire prend la place de l'aperçu */
.cb-cf7-slot:not(:has(.wpcf7)){display:none}
.cb-contact-form-card:has(.wpcf7) .cb-contact-preview-full{display:none}
.cb-contact-form-card:has(.wpcf7) .cb-cf7-slot{display:block}
.cb-contact-form-card .wpcf7 form{display:grid;gap:14px}
.cb-contact-form-card .wpcf7 input,
.cb-contact-form-card .wpcf7 textarea,
.cb-contact-form-card .wpcf7 select{
  width:100%;
  border:1px solid rgba(23,18,15,.12);
  border-radius:16px;
  background:rgba(255,255,255,.74);
  padding:12px 14px;
  font:500 14px var(--cb-sans);
  color:var(--cb-ink);
}
.cb-contact-form-card .wpcf7-submit{
  border-radius:999px!important;
  background:linear-gradient(135deg,var(--cb-dark),#2a2019)!important;
  color:#fff!important;
  font:850 11px var(--cb-sans)!important;
  letter-spacing:.16em;
  text-transform:uppercase;
  min-height:50px;
  cursor:pointer;
}

@media (max-width:1180px){
  .cb-hero-v27 .cb-hero-grid-premium{grid-template-columns:1fr}
  .cb-hero-v27 .cb-hero-panel{grid-template-columns:1fr 1fr}
}
@media (max-width:1000px){
  .cb-hero-v27 .cb-hero-panel{grid-template-columns:1fr}
  .cb-hero-firstlook-card{display:block}
  .cb-contact-layout{grid-template-columns:1fr;gap:28px}
  .cb-contact-intro{position:relative;top:auto}
}
@media (max-width:560px){
  .cb-hero-firstlook-card{padding:15px;border-radius:22px}
  .cb-hero-firstlook-card h2{font-size:25px}
  .cb-hero-firstlook-card p{font-size:12.5px}
  .cb-firstlook-actions .cb-button{width:100%}
  .cb-contact-form-card{padding:18px;border-radius:26px}
  .cb-contact-preview-full{grid-template-columns:1fr}
}


/* V2.10 — portfolio desktop immersif + footer SEO discret */
.cb-portfolio-cinematic{
  position:relative;
  min-height:100svh;
  background:#0b0907;
  color:#fff;
  overflow:hidden;
  isolation:isolate;
}
.cb-portfolio-topline{
  position:absolute;
  z-index:4;
  top:28px;
  left:max(26px,calc((100vw - 1240px)/2));
  right:max(26px,calc((100vw - 1240px)/2));
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  pointer-events:none;
}
.cb-portfolio-topline span{
  display:block;
  font-size:11px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:rgba(229,208,170,.78);
  font-weight:850;
}
.cb-portfolio-topline h2{
  margin:12px 0 0;
  max-width:520px;
  font-family:var(--cb-serif);
  font-size:clamp(34px,4vw,62px);
  line-height:.92;
  letter-spacing:-.05em;
  font-weight:500;
  text-wrap:balance;
}
.cb-portfolio-controls{
  pointer-events:auto;
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(14,11,9,.42);
  backdrop-filter:blur(16px);
}
.cb-portfolio-controls button{
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:white;
  font-size:24px;
  cursor:pointer;
}
.cb-portfolio-controls span{
  min-width:78px;
  text-align:center;
  color:rgba(255,255,255,.72);
  font-size:11px;
  letter-spacing:.16em;
}
.cb-portfolio-stage{
  position:absolute;
  inset:0;
}
.cb-portfolio-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .9s ease;
  pointer-events:none;
}
.cb-portfolio-slide.is-active{
  opacity:1;
  pointer-events:auto;
}
.cb-portfolio-image{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center center;
  transform:scale(1.035);
  transition:transform 7s ease;
  filter:saturate(1.04) contrast(1.02);
}
.cb-portfolio-slide.is-active .cb-portfolio-image{
  transform:scale(1.006);
}
.cb-portfolio-slide:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg,rgba(6,5,4,.46),rgba(6,5,4,.08) 44%,rgba(6,5,4,.22)),
    linear-gradient(180deg,rgba(6,5,4,.34),rgba(6,5,4,.05) 42%,rgba(6,5,4,.68));
}
.cb-portfolio-caption{
  position:absolute;
  z-index:2;
  left:max(24px,calc((100vw - 1240px)/2));
  bottom:70px;
  width:min(620px,calc(100vw - 48px));
  padding:26px 28px 28px;
  border-radius:32px;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg,rgba(16,12,10,.72),rgba(16,12,10,.52));
  backdrop-filter:blur(20px) saturate(128%);
  box-shadow:0 32px 110px rgba(0,0,0,.34);
}
.cb-portfolio-caption span{
  display:block;
  margin-bottom:13px;
  font-size:10px;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:rgba(229,208,170,.82);
  font-weight:850;
}
.cb-portfolio-caption h3{
  margin:0 0 12px;
  font-family:var(--cb-serif);
  font-size:clamp(34px,3.4vw,54px);
  line-height:.92;
  font-weight:500;
  letter-spacing:-.05em;
  text-wrap:balance;
}
.cb-portfolio-caption div{
  max-height:148px;
  overflow:auto;
  color:rgba(255,255,255,.82);
  font-size:15px;
  line-height:1.66;
}
.cb-portfolio-caption strong{color:#fff}
.cb-portfolio-bottom{
  position:absolute;
  z-index:4;
  right:max(24px,calc((100vw - 1240px)/2));
  bottom:70px;
  width:min(360px,calc(100vw - 48px));
  padding:20px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:28px;
  background:rgba(16,12,10,.36);
  backdrop-filter:blur(16px);
}
.cb-portfolio-bottom p{
  margin:0 0 14px;
  font-size:13px;
  line-height:1.58;
  color:rgba(255,255,255,.68);
}
.cb-portfolio-bottom a{
  display:inline-flex;
  min-height:39px;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.16);
  color:#fff;
  font:850 10px var(--cb-sans);
  letter-spacing:.14em;
  text-transform:uppercase;
}
.cb-gallery-grid-fallback{
  padding-top:88px;
}
.cb-gallery-grid-fallback .cb-gallery-heading .cb-title{
  font-size:clamp(36px,4vw,56px);
}

/* footer SEO plus discret mais présent */
.cb-footer-seo .cb-footer-seo-links{
  margin-top:42px;
  padding-top:28px;
  border-top:1px solid rgba(255,255,255,.10);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.cb-footer-seo-links strong{
  display:block;
  margin-bottom:12px;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(229,208,170,.70);
}
.cb-footer-seo-links a{
  display:block;
  margin:7px 0;
  color:rgba(255,255,255,.46);
  font-size:13px;
  line-height:1.35;
}
.cb-footer-seo-links a:hover,
.cb-footer .cb-footer-subtle:hover{
  color:#fff;
}
.cb-footer .cb-footer-subtle{
  color:rgba(255,255,255,.42);
  font-size:13px;
}

/* Viewer desktop : image plus grande, légende encadrée sans manger l’image */
@media (min-width:900px){
  .cb-lightbox-stage{
    grid-template-rows:auto minmax(0,1fr);
    grid-template-columns:minmax(0,1fr) 420px;
    grid-template-areas:
      "top top"
      "image caption";
    gap:22px;
    padding:22px 28px 28px;
  }
  .cb-lightbox-top{grid-area:top}
  .cb-lightbox-image-wrap{grid-area:image;padding:0;align-self:center}
  .cb-lightbox-caption{
    grid-area:caption;
    width:auto;
    max-height:calc(100svh - 108px);
    align-self:center;
    margin:0;
    overflow:auto;
  }
  .cb-lightbox-image{
    max-height:calc(100svh - 116px);
    max-width:100%;
  }
}

@media (max-width:900px){
  .cb-portfolio-cinematic{
    min-height:auto;
    padding:78px 0 30px;
  }
  .cb-portfolio-topline,
  .cb-portfolio-stage,
  .cb-portfolio-bottom{
    position:relative;
    inset:auto;
    left:auto;
    right:auto;
    bottom:auto;
  }
  .cb-portfolio-topline{
    padding:0 18px 22px;
  }
  .cb-portfolio-topline h2{font-size:42px}
  .cb-portfolio-stage{
    min-height:520px;
  }
  .cb-portfolio-caption{
    left:18px;
    bottom:18px;
    width:calc(100vw - 36px);
    padding:20px;
    border-radius:24px;
  }
  .cb-portfolio-caption h3{font-size:32px}
  .cb-portfolio-caption div{max-height:115px}
  .cb-portfolio-bottom{
    width:auto;
    margin:18px;
  }
  .cb-footer-seo .cb-footer-seo-links{grid-template-columns:1fr}
}
@media (max-width:560px){
  .cb-portfolio-controls{display:none}
  .cb-portfolio-stage{min-height:480px}
  .cb-portfolio-slide:not(.is-active){display:none}
}


/* V2.11 — portfolio immersif type viewer : image à gauche, légende à droite */
.cb-portfolio-sideviewer{
  min-height:100svh;
  background:
    radial-gradient(circle at 52% 0,rgba(199,166,111,.10),transparent 28%),
    #070605;
}
.cb-portfolio-sideviewer .cb-portfolio-topline{
  top:112px;
  left:max(26px,calc((100vw - 1440px)/2));
  right:max(26px,calc((100vw - 1440px)/2));
  align-items:center;
}
.cb-portfolio-sideviewer .cb-portfolio-topline h2{
  display:none;
}
.cb-portfolio-sideviewer .cb-portfolio-topline span{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:rgba(255,255,255,.72);
}
.cb-portfolio-sideviewer .cb-portfolio-topline span:before{
  content:"CB";
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid rgba(229,208,170,.55);
  color:#f5e6d0;
  font-family:var(--cb-serif);
  font-size:18px;
  letter-spacing:-.08em;
  font-weight:600;
  background:rgba(255,255,255,.05);
}
.cb-portfolio-sideviewer .cb-portfolio-stage{
  inset:0;
}
.cb-portfolio-sideviewer .cb-portfolio-slide:before{
  background:
    radial-gradient(circle at 64% 42%,rgba(199,166,111,.08),transparent 32%),
    linear-gradient(90deg,rgba(6,5,4,.18),rgba(6,5,4,.10) 46%,rgba(6,5,4,.60)),
    linear-gradient(180deg,rgba(6,5,4,.72),rgba(6,5,4,.10) 22%,rgba(6,5,4,.82));
}
.cb-portfolio-sideviewer .cb-portfolio-image{
  top:174px;
  bottom:66px;
  left:max(28px,calc((100vw - 1440px)/2));
  right:calc(max(28px,calc((100vw - 1440px)/2)) + 470px);
  width:auto;
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center center;
  border-radius:22px;
  box-shadow:0 28px 120px rgba(0,0,0,.34);
  transform:scale(1);
}
.cb-portfolio-sideviewer .cb-portfolio-slide.is-active .cb-portfolio-image{
  transform:scale(1);
}
.cb-portfolio-sideviewer .cb-portfolio-caption{
  left:auto;
  right:max(28px,calc((100vw - 1440px)/2));
  top:50%;
  bottom:auto;
  transform:translateY(-50%);
  width:420px;
  max-height:calc(100svh - 230px);
  overflow:auto;
  padding:28px 30px 30px;
  border-radius:32px;
  background:linear-gradient(180deg,rgba(18,14,11,.78),rgba(18,14,11,.54));
}
.cb-portfolio-sideviewer .cb-portfolio-caption h3{
  font-size:clamp(34px,3.1vw,49px);
}
.cb-portfolio-sideviewer .cb-portfolio-caption div{
  max-height:none;
  overflow:visible;
  font-size:15.5px;
  line-height:1.72;
}
.cb-portfolio-sideviewer .cb-portfolio-bottom{
  right:max(28px,calc((100vw - 1440px)/2));
  bottom:50px;
  width:420px;
  padding:0;
  border:0;
  background:transparent;
  backdrop-filter:none;
  box-shadow:none;
  text-align:left;
}
.cb-portfolio-sideviewer .cb-portfolio-bottom p{
  display:none;
}
.cb-portfolio-sideviewer .cb-portfolio-bottom a{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.14);
}
.cb-portfolio-sideviewer .cb-portfolio-controls{
  background:rgba(255,255,255,.06);
}

.cb-reviews-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}
.cb-google-reviews-link{
  display:inline-flex;
  min-height:42px;
  align-items:center;
  justify-content:center;
  padding:11px 15px;
  border-radius:999px;
  border:1px solid rgba(23,18,15,.12);
  background:rgba(255,255,255,.54);
  color:var(--cb-ink);
  font:850 10px var(--cb-sans);
  letter-spacing:.14em;
  text-transform:uppercase;
}
.cb-google-reviews-link.secondary{
  background:transparent;
}

@media (max-width:1100px){
  .cb-portfolio-sideviewer .cb-portfolio-topline{
    top:98px;
  }
  .cb-portfolio-sideviewer .cb-portfolio-image{
    top:160px;
    right:max(28px,calc((100vw - 1440px)/2));
    bottom:330px;
  }
  .cb-portfolio-sideviewer .cb-portfolio-caption{
    left:max(28px,calc((100vw - 1440px)/2));
    right:max(28px,calc((100vw - 1440px)/2));
    top:auto;
    bottom:70px;
    transform:none;
    width:auto;
    max-height:240px;
  }
  .cb-portfolio-sideviewer .cb-portfolio-bottom{
    left:max(28px,calc((100vw - 1440px)/2));
    right:auto;
    bottom:28px;
    width:auto;
  }
}
@media (max-width:900px){
  .cb-portfolio-sideviewer{
    min-height:auto;
    padding-top:0;
  }
  .cb-portfolio-sideviewer .cb-portfolio-topline{
    position:relative;
    top:auto;
    left:auto;
    right:auto;
    padding:78px 18px 18px;
  }
  .cb-portfolio-sideviewer .cb-portfolio-stage{
    position:relative;
    min-height:620px;
  }
  .cb-portfolio-sideviewer .cb-portfolio-image{
    top:0;
    left:0;
    right:0;
    bottom:230px;
    border-radius:0;
    background-size:cover;
  }
  .cb-portfolio-sideviewer .cb-portfolio-caption{
    left:18px;
    right:18px;
    bottom:18px;
    width:auto;
    max-height:230px;
  }
  .cb-portfolio-sideviewer .cb-portfolio-bottom{
    position:relative;
    left:auto;
    right:auto;
    bottom:auto;
    margin:18px;
  }
}
@media (max-width:560px){
  .cb-portfolio-sideviewer .cb-portfolio-stage{
    min-height:560px;
  }
  .cb-portfolio-sideviewer .cb-portfolio-caption{
    padding:20px;
    border-radius:24px;
  }
  .cb-portfolio-sideviewer .cb-portfolio-caption h3{
    font-size:29px;
  }
  .cb-reviews-actions{
    flex-direction:column;
  }
}


/* V2.12 — intégration signature dans best-of + SEO safe */
.cb-portfolio-sideviewer .cb-portfolio-slide:before{
  background:
    linear-gradient(90deg,rgba(6,5,4,.06),rgba(6,5,4,0) 48%,rgba(6,5,4,.18)),
    linear-gradient(180deg,rgba(6,5,4,.26),rgba(6,5,4,0) 34%,rgba(6,5,4,.34))!important;
}
.cb-portfolio-sideviewer .cb-portfolio-image{
  filter:saturate(1.08) contrast(1.03)!important;
}
.cb-portfolio-sideviewer .cb-portfolio-topline{
  pointer-events:auto;
}
.cb-portfolio-sideviewer .cb-portfolio-topline h2{
  display:block!important;
  max-width:560px;
  margin-top:11px;
  font-size:clamp(30px,3.1vw,50px);
  text-shadow:0 8px 28px rgba(0,0,0,.26);
}
.cb-portfolio-sideviewer .cb-portfolio-caption{
  background:linear-gradient(180deg,rgba(18,14,11,.70),rgba(18,14,11,.46));
}
.cb-portfolio-sideviewer .cb-portfolio-bottom{
  bottom:46px;
}
.cb-portfolio-sideviewer .cb-portfolio-bottom p{
  display:block!important;
  margin:0 0 14px;
  color:rgba(255,255,255,.70);
}
.cb-portfolio-bottom-actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}
.cb-portfolio-bottom-actions a{
  min-height:39px;
}
.cb-portfolio-bottom-actions a:nth-child(2){
  background:rgba(255,255,255,.04);
}

.cb-seo-preserve{
  padding:52px max(24px,calc((100vw - 1160px)/2));
  background:linear-gradient(180deg,#f8efe5,#f4eadf);
  border-top:1px solid rgba(23,18,15,.06);
}
.cb-seo-preserve>div{
  max-width:960px;
  margin:auto;
  text-align:center;
}
.cb-seo-preserve h2{
  margin:0 0 12px;
  font-family:var(--cb-serif);
  font-weight:500;
  font-size:clamp(30px,3vw,44px);
  line-height:1;
  letter-spacing:-.04em;
}
.cb-seo-preserve p{
  margin:0 auto;
  max-width:780px;
  color:var(--cb-muted);
  font-size:15px;
  line-height:1.7;
}

@media (min-width:1101px){
  .cb-portfolio-sideviewer .cb-portfolio-topline{
    top:104px;
  }
  .cb-portfolio-sideviewer .cb-portfolio-image{
    top:188px;
  }
}
@media (max-width:1100px){
  .cb-portfolio-sideviewer .cb-portfolio-topline h2{
    display:block!important;
    font-size:38px;
  }
  .cb-portfolio-sideviewer .cb-portfolio-image{
    top:190px;
  }
}
@media (max-width:900px){
  .cb-portfolio-sideviewer .cb-portfolio-topline h2{
    font-size:34px;
  }
  .cb-portfolio-sideviewer .cb-portfolio-image{
    top:0;
  }
}


/* V2.13 — texte éditorial uniquement sur la première image + contrôle anti-doublons */
.cb-portfolio-sideviewer .cb-portfolio-topline{
  top:128px!important;
}
.cb-portfolio-sideviewer .cb-portfolio-topline h2{
  display:block!important;
  font-size:clamp(24px,2.1vw,34px)!important;
  opacity:.82;
  margin-top:8px!important;
}
.cb-portfolio-sideviewer .cb-portfolio-caption div p{
  margin:0 0 12px;
}
.cb-portfolio-sideviewer .cb-portfolio-caption div p:last-child{
  margin-bottom:0;
}
.cb-portfolio-sideviewer .cb-portfolio-bottom p{
  max-width:360px;
  font-size:12.5px;
  opacity:.72;
}
.cb-gallery-grid-fallback{
  border-top:1px solid rgba(23,18,15,.06);
}

/* Variante utile quand la home sera branchée à WordPress :
   ajouter class="is-dynamic-home-selection" sur body si les sources sont distinctes */
body.is-dynamic-home-selection .cb-gallery-grid-fallback{
  padding-top:72px;
}

@media (min-width:1101px){
  .cb-portfolio-sideviewer .cb-portfolio-image{
    top:198px;
  }
}
@media (max-width:1100px){
  .cb-portfolio-sideviewer .cb-portfolio-topline{
    top:106px!important;
  }
}
@media (max-width:900px){
  .cb-portfolio-sideviewer .cb-portfolio-topline{
    top:auto!important;
  }
}


/* V2.14 — pas de titre best-of visible + FAQ compacte */
.cb-portfolio-sideviewer .cb-portfolio-topline h2{
  display:none!important;
}
.cb-portfolio-sideviewer .cb-portfolio-topline{
  top:112px!important;
}
.cb-portfolio-sideviewer .cb-portfolio-topline span{
  opacity:.86;
}

.cb-faq-section{
  background:
    radial-gradient(circle at 18% 0,rgba(199,166,111,.10),transparent 26%),
    linear-gradient(180deg,var(--cb-ivory-2),var(--cb-paper));
}
.cb-faq-layout{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);
  gap:54px;
  align-items:start;
}
.cb-faq-intro{
  position:sticky;
  top:120px;
}
.cb-faq-list{
  display:grid;
  gap:12px;
}
.cb-faq-list details{
  border:1px solid rgba(23,18,15,.10);
  border-radius:24px;
  background:rgba(255,255,255,.50);
  box-shadow:0 16px 48px rgba(27,18,10,.06);
  overflow:hidden;
}
.cb-faq-list summary{
  list-style:none;
  cursor:pointer;
  padding:21px 24px;
  font-family:var(--cb-serif);
  font-size:28px;
  line-height:1.05;
  letter-spacing:-.025em;
  font-weight:500;
  display:flex;
  gap:18px;
  align-items:center;
  justify-content:space-between;
}
.cb-faq-list summary::-webkit-details-marker{
  display:none;
}
.cb-faq-list summary:after{
  content:"+";
  flex:none;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid rgba(23,18,15,.12);
  font-family:var(--cb-sans);
  font-size:18px;
  line-height:1;
}
.cb-faq-list details[open] summary:after{
  content:"–";
}
.cb-faq-list details p{
  margin:0;
  padding:0 24px 22px;
  color:var(--cb-muted);
  font-size:15px;
  line-height:1.7;
}

@media (max-width:1000px){
  .cb-faq-layout{
    grid-template-columns:1fr;
    gap:28px;
  }
  .cb-faq-intro{
    position:relative;
    top:auto;
  }
}
@media (max-width:560px){
  .cb-faq-list summary{
    font-size:23px;
    padding:18px;
  }
  .cb-faq-list details p{
    padding:0 18px 18px;
  }
}


/* V2.15 — split home-grid, plein écran portfolio, mobile app-first */
.cb-portfolio-fullscreen-btn{
  font-size:16px!important;
  font-weight:700;
}
.cb-portfolio-sideviewer.is-fullscreen{
  position:fixed;
  inset:0;
  z-index:9998;
  min-height:100svh;
}
body.cb-portfolio-fullscreen-open .cb-topbar,
body.cb-portfolio-fullscreen-open .cb-mobile-appbar{
  opacity:0;
  pointer-events:none;
}
.cb-portfolio-sideviewer.is-fullscreen .cb-portfolio-topline{
  top:28px!important;
}
.cb-portfolio-sideviewer.is-fullscreen .cb-portfolio-image{
  top:96px!important;
  bottom:40px!important;
}
.cb-portfolio-sideviewer.is-fullscreen .cb-portfolio-caption{
  max-height:calc(100svh - 150px);
}
.cb-portfolio-sideviewer.is-fullscreen .cb-portfolio-bottom{
  display:none;
}

/* FAQ premium effective */
.cb-faq-section{
  background:
    radial-gradient(circle at 18% 0,rgba(199,166,111,.10),transparent 26%),
    linear-gradient(180deg,var(--cb-ivory-2),var(--cb-paper));
}
.cb-faq-layout{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);
  gap:54px;
  align-items:start;
}
.cb-faq-intro{position:sticky;top:120px}
.cb-faq-list{display:grid;gap:12px}
.cb-faq-list details{
  border:1px solid rgba(23,18,15,.10);
  border-radius:24px;
  background:rgba(255,255,255,.50);
  box-shadow:0 16px 48px rgba(27,18,10,.06);
  overflow:hidden;
}
.cb-faq-list summary{
  list-style:none;
  cursor:pointer;
  padding:21px 24px;
  font-family:var(--cb-serif);
  font-size:28px;
  line-height:1.05;
  letter-spacing:-.025em;
  font-weight:500;
  display:flex;
  gap:18px;
  align-items:center;
  justify-content:space-between;
}
.cb-faq-list summary::-webkit-details-marker{display:none}
.cb-faq-list summary:after{
  content:"+";
  flex:none;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid rgba(23,18,15,.12);
  font-family:var(--cb-sans);
  font-size:18px;
  line-height:1;
}
.cb-faq-list details[open] summary:after{content:"–"}
.cb-faq-list details p{
  margin:0;
  padding:0 24px 22px;
  color:var(--cb-muted);
  font-size:15px;
  line-height:1.7;
}

/* Mobile app-first : bottom bar, footer masqué visuellement, contenu SEO reste dans le DOM */
.cb-mobile-appbar{display:none}
@media (max-width:760px){
  body{padding-bottom:76px}
  .cb-footer{
    display:none;
  }
  .cb-mobile-appbar{
    position:fixed;
    left:10px;
    right:10px;
    bottom:10px;
    z-index:80;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:6px;
    padding:7px;
    border-radius:26px;
    border:1px solid rgba(255,255,255,.16);
    background:rgba(18,14,11,.78);
    backdrop-filter:blur(22px) saturate(130%);
    box-shadow:0 18px 70px rgba(0,0,0,.28);
  }
  .cb-mobile-appbar a,
  .cb-mobile-appbar button{
    height:48px;
    border:0;
    border-radius:20px;
    background:transparent;
    color:rgba(255,255,255,.78);
    font:850 10px var(--cb-sans);
    letter-spacing:.08em;
    text-transform:uppercase;
    display:grid;
    place-items:center;
    text-decoration:none;
  }
  .cb-mobile-appbar .is-primary{
    background:linear-gradient(135deg,var(--cb-champagne-2),var(--cb-champagne));
    color:#18120e;
  }
  .cb-topbar{
    width:calc(100% - 18px);
  }
  .cb-topbar .cb-nav{
    padding-bottom:72px;
  }
}
@media (max-width:1000px){
  .cb-faq-layout{grid-template-columns:1fr;gap:28px}
  .cb-faq-intro{position:relative;top:auto}
}
@media (max-width:560px){
  .cb-faq-list summary{font-size:23px;padding:18px}
  .cb-faq-list details p{padding:0 18px 18px}
  .cb-portfolio-sideviewer.is-fullscreen .cb-portfolio-topline{top:18px!important}
  .cb-portfolio-sideviewer.is-fullscreen .cb-portfolio-caption{max-height:230px}
}


/* V2.16 — clic image portfolio = plein écran, contact immersif, langue discrète */

/* Langue moins présente dans le menu */
.cb-lang-switch{
  background:transparent!important;
  border:0!important;
  padding:0!important;
  margin:0 2px!important;
  opacity:.66;
}
.cb-lang-switch a{
  padding:7px 5px!important;
  font-size:9px!important;
  letter-spacing:.13em!important;
  color:rgba(255,255,255,.58)!important;
}
.cb-lang-switch .is-current{
  background:transparent!important;
  color:rgba(255,255,255,.86)!important;
}
.cb-lang-switch:before{
  content:"";
  width:1px;
  height:18px;
  display:inline-block;
  background:rgba(255,255,255,.16);
  margin:0 8px 0 2px;
}
.cb-lang-switch:hover{
  opacity:1;
}

/* Portfolio : la photo devient une zone d’entrée en immersion */
.cb-portfolio-sideviewer .cb-portfolio-image{
  cursor:zoom-in;
}
.cb-portfolio-sideviewer.is-fullscreen .cb-portfolio-image{
  cursor:default;
}
.cb-portfolio-contact-btn,
.cb-lightbox-contact-btn{
  font-size:17px!important;
}
.cb-portfolio-contact-btn{
  color:#f5e6d0!important;
}
.cb-lightbox-contact-btn{
  color:#f5e6d0!important;
}

/* Boutons plus lisibles en plein écran */
.cb-portfolio-sideviewer.is-fullscreen .cb-portfolio-controls{
  background:rgba(15,12,10,.70);
  border-color:rgba(255,255,255,.16);
}
.cb-portfolio-sideviewer.is-fullscreen .cb-portfolio-controls button:focus{
  outline:0;
  box-shadow:0 0 0 3px rgba(229,208,170,.18);
}
.cb-portfolio-sideviewer.is-fullscreen .cb-portfolio-caption{
  background:linear-gradient(180deg,rgba(18,14,11,.82),rgba(18,14,11,.60));
}

/* Lightbox : contact accessible mais discret */
.cb-lightbox-actions{
  align-items:center;
}
.cb-lightbox-contact-btn{
  background:rgba(199,166,111,.12)!important;
  border-color:rgba(229,208,170,.28)!important;
}

/* Mobile : langue descend dans le menu, pas dans la barre principale */
@media (max-width:1000px){
  .cb-lang-switch{
    opacity:.72;
    justify-self:start;
    margin:6px 0!important;
  }
  .cb-lang-switch:before{
    display:none;
  }
  .cb-lang-switch a{
    padding:9px 8px!important;
  }
}
@media (max-width:760px){
  .cb-nav .cb-lang-switch{
    display:inline-flex;
    width:max-content;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:999px;
    padding:4px!important;
    background:rgba(255,255,255,.05)!important;
  }
}


/* V2.17 — performances + metadata ready */
.cb-hero-slide:not([data-loaded="1"]):not(.is-active),
.cb-portfolio-image:not([data-loaded="1"]){
  background-image:none!important;
}
.cb-portfolio-slide[data-photo-type-label] .cb-portfolio-caption span:after{
  content:" · " attr(data-photo-type-label);
  display:none; /* disponible si on veut l'activer plus tard */
}

/* Sur mobile, on évite de forcer trop d'images en fond avant interaction */
@media (max-width:760px){
  .cb-portfolio-slide:not(.is-active) .cb-portfolio-image{
    background-image:none!important;
  }
}


/* V2.18 — bouton enveloppe visible + nettoyage production */
.cb-portfolio-mail-btn,
.cb-portfolio-contact-btn,
.cb-lightbox-contact-btn{
  display:inline-grid!important;
  place-items:center!important;
  color:#f5e6d0!important;
  background:rgba(199,166,111,.13)!important;
  border-color:rgba(229,208,170,.30)!important;
}
.cb-portfolio-sideviewer.is-fullscreen .cb-portfolio-mail-btn,
.cb-portfolio-sideviewer.is-fullscreen .cb-portfolio-contact-btn{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.cb-portfolio-sideviewer .cb-portfolio-controls{
  z-index:10;
}
.cb-portfolio-sideviewer .cb-portfolio-controls button{
  flex:0 0 auto;
}
@media (max-width:560px){
  .cb-portfolio-mail-btn{
    display:inline-grid!important;
  }
}


/* V2.19 — Contact Form 7 branché + fallback local */
.cb-cf7-production{
  width:100%;
}
.cb-cf7-production:empty{
  display:none;
}
.cb-contact-form-card-cf7 .cb-cf7-production:not(:empty) + .cb-contact-preview-full{
  display:none;
}

/* Style du vrai Contact Form 7 dans la home */
.cb-contact-form-card .wpcf7{
  width:100%;
}
.cb-contact-form-card .wpcf7 form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.cb-contact-form-card .wpcf7 p{
  margin:0;
}
.cb-contact-form-card .wpcf7 label{
  display:block;
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:850;
  color:#7a6b5e;
}
.cb-contact-form-card .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.cb-contact-form-card .wpcf7 textarea,
.cb-contact-form-card .wpcf7 select{
  width:100%;
  margin-top:7px;
  border:1px solid rgba(23,18,15,.12);
  border-radius:16px;
  background:rgba(255,255,255,.74);
  padding:12px 14px;
  font:500 14px var(--cb-sans);
  color:var(--cb-ink);
  outline:none;
}
.cb-contact-form-card .wpcf7 textarea{
  min-height:170px;
  resize:vertical;
  line-height:1.55;
}
.cb-contact-form-card .wpcf7 input[type="submit"],
.cb-contact-form-card .wpcf7-submit{
  width:100%;
  min-height:50px;
  border:0!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,var(--cb-dark),#2a2019)!important;
  color:#fff!important;
  font:850 11px var(--cb-sans)!important;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
}
.cb-contact-form-card .wpcf7 .wpcf7-spinner{
  margin:10px auto 0;
}
.cb-contact-form-card .wpcf7 form .wpcf7-response-output{
  grid-column:1/-1;
  margin:4px 0 0;
  border-radius:18px;
  border-color:rgba(199,166,111,.35);
  color:var(--cb-ink);
  font-size:14px;
}
.cb-contact-form-card .wpcf7-not-valid-tip{
  margin-top:5px;
  font-size:12px;
  color:#8d392f;
  text-transform:none;
  letter-spacing:0;
  font-weight:600;
}

/* Si le formulaire CF7 utilise des paragraphes, les champs longs passent sur toute la largeur si WordPress ajoute la classe .wide */
.cb-contact-form-card .wpcf7 .wide,
.cb-contact-form-card .wpcf7 .cb-field-wide{
  grid-column:1/-1;
}

@media (max-width:700px){
  .cb-contact-form-card .wpcf7 form{
    grid-template-columns:1fr;
  }
}

/* Fix preview statique : formulaire Contact Form 7 via iframe */
.cb-cf7-iframe-slot{
  display:block!important;
  width:100%!important;
  min-height:820px!important;
  margin:0!important;
  padding:0!important;
}
.cb-cf7-iframe-slot iframe{
  display:block!important;
  width:100%!important;
  min-height:820px!important;
  border:0!important;
  background:transparent!important;
}
.cb-cf7-iframe-slot + .cb-local-form-fallback,
.cb-contact-form-card .cb-cf7-iframe-slot ~ .cb-local-form-fallback{
  display:none!important;
}

/* Formulaire maison V2 — sans Contact Form 7 */
.cb-contact-preview-full{
  display:grid!important;
}
.cb-hp-field{
  position:absolute!important;
  left:-9999px!important;
  opacity:0!important;
  height:0!important;
  overflow:hidden!important;
}
.cb-form-status{
  display:block;
  min-height:22px;
  font-size:14px;
  font-weight:700;
  line-height:1.45;
}
.cb-form-status.is-loading{
  color:#7a6b5e;
}
.cb-form-status.is-success{
  color:#315f3f;
}
.cb-form-status.is-error{
  color:#8d392f;
}
.cb-contact-preview-full button[disabled]{
  opacity:.62;
  cursor:wait;
}

/* H1 SEO + phrase éditoriale */
.cb-hero-editorial-title{
  margin:12px 0 0;
  font-family:var(--cb-serif);
  font-size:clamp(30px,4vw,62px);
  line-height:.98;
  letter-spacing:-.04em;
  color:rgba(255,255,255,.92);
}

/* H1 SEO discret dans le header */
.cb-brand-seo-title{
  margin:5px 0 0;
  padding:0;
  font-family:var(--cb-sans);
  font-size:11px;
  line-height:1.05;
  font-weight:650;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(255,255,255,.62);
  white-space:nowrap;
}

/* Le titre hero redevient éditorial, sans être le H1 SEO */
#cbHeroHeadline{
  display:block;
  margin:0 0 22px;
}

/* Évite que le H1 de marque casse le bloc logo */
.cb-brand h1,
.cb-site-brand h1,
[class*="brand"] h1{
  margin-top:5px;
}

@media(max-width:760px){
  .cb-brand-seo-title{
    max-width:230px;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:9px;
    letter-spacing:.13em;
  }
}

/* Hero émotionnel restauré */
#cbHeroHeadline.cb-hero-emotional-title,
.cb-hero-emotional-title{
  display:block!important;
  max-width:760px;
  margin:0 0 22px!important;
  font-family:var(--cb-serif)!important;
  font-size:clamp(54px,7.4vw,118px)!important;
  line-height:.88!important;
  letter-spacing:-.065em!important;
  font-weight:500!important;
  color:rgba(255,255,255,.96)!important;
  text-wrap:balance;
  text-shadow:0 18px 55px rgba(0,0,0,.34);
}

/* Le H1 SEO reste discret dans le header */
.cb-brand-seo-title{
  margin:5px 0 0!important;
  padding:0!important;
  font-family:var(--cb-sans)!important;
  font-size:11px!important;
  line-height:1.05!important;
  font-weight:650!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
  color:rgba(255,255,255,.62)!important;
  white-space:nowrap!important;
}

@media(max-width:760px){
  #cbHeroHeadline.cb-hero-emotional-title,
  .cb-hero-emotional-title{
    font-size:clamp(42px,15vw,72px)!important;
    line-height:.9!important;
    max-width:92vw;
  }

  .cb-brand-seo-title{
    max-width:230px;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:9px!important;
    letter-spacing:.13em!important;
  }
}

/* Header SEO compact : garde le H1 visible sans empiéter sur le menu */
.cb-brand-seo-title{
  display:block!important;
  max-width:min(500px,34vw)!important;
  margin:4px 0 0!important;
  padding:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-family:var(--cb-sans)!important;
  font-size:9.4px!important;
  line-height:1.05!important;
  font-weight:650!important;
  letter-spacing:.125em!important;
  text-transform:uppercase!important;
  color:rgba(255,255,255,.60)!important;
}

/* Réserve mieux l’espace du menu */
.cb-header nav,
.cb-site-header nav,
.cb-main-nav,
nav[aria-label]{
  flex-shrink:0!important;
}

/* La marque a le droit de se réduire avant le menu */
.cb-brand,
.cb-site-brand,
.cb-header-brand,
[class*="brand"]{
  min-width:0!important;
}

/* Sur écran moyen, on coupe encore un peu plus proprement */
@media(max-width:1280px){
  .cb-brand-seo-title{
    max-width:330px!important;
    font-size:8.8px!important;
    letter-spacing:.105em!important;
  }
}

/* Mobile : éviter que la ligne SEO abîme le header */
@media(max-width:760px){
  .cb-brand-seo-title{
    max-width:210px!important;
    font-size:8.2px!important;
    letter-spacing:.08em!important;
  }
}

/* Contact : sources compactes */
.cb-source-fieldset{
  padding:18px!important;
}

.cb-source-options-compact{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}

.cb-source-options-compact label{
  min-height:46px!important;
  padding:10px 14px!important;
  border-radius:999px!important;
}

.cb-source-options-compact span{
  font-size:14px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
}

.cb-source-options-compact input{
  transform:scale(.92);
  flex:0 0 auto;
}

@media(min-width:980px){
  .cb-source-options-compact{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:760px){
  .cb-source-options-compact{
    grid-template-columns:1fr!important;
  }

  .cb-source-options-compact label{
    min-height:44px!important;
  }
}

/* Ancre formulaire : scroll propre sous header fixe */
.cb-form-anchor{
  display:block;
  position:relative;
  top:-120px;
  height:1px;
  visibility:hidden;
}

/* Le formulaire reprend une structure claire */
#cbHomeContactForm{
  align-items:start!important;
}

/* Les éléments wide doivent vraiment prendre toute la largeur */
#cbHomeContactForm .wide,
#cbHomeContactForm fieldset.wide,
#cbHomeContactForm label.wide,
#cbHomeContactForm textarea,
#cbHomeContactForm .cb-form-status{
  grid-column:1 / -1!important;
}

/* Sources : compactes, plus de gros bloc vertical à droite */
#cbHomeContactForm .cb-source-fieldset,
.cb-source-fieldset-inline{
  grid-column:1 / -1!important;
  width:100%!important;
  margin:0!important;
  padding:18px 20px!important;
  border-radius:24px!important;
  border:1px solid rgba(23,18,15,.12)!important;
  background:rgba(255,255,255,.45)!important;
}

#cbHomeContactForm .cb-source-fieldset legend{
  padding:0 8px!important;
  font-size:11px!important;
  letter-spacing:.14em!important;
  white-space:normal!important;
}

#cbHomeContactForm .cb-source-options-compact{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:8px!important;
}

#cbHomeContactForm .cb-source-options-compact label{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:9px!important;
  min-width:0!important;
  min-height:42px!important;
  padding:9px 12px!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.66)!important;
  border:1px solid rgba(23,18,15,.11)!important;
  box-sizing:border-box!important;
}

#cbHomeContactForm .cb-source-options-compact input{
  width:16px!important;
  height:16px!important;
  margin:0!important;
  flex:0 0 16px!important;
  transform:none!important;
}

#cbHomeContactForm .cb-source-options-compact span{
  display:block!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:13px!important;
  line-height:1.15!important;
  font-weight:750!important;
  letter-spacing:0!important;
  text-transform:none!important;
  color:#181411!important;
}

/* Message bien sous les sources */
#cbHomeContactForm label:has(textarea){
  grid-column:1 / -1!important;
}

/* Responsive */
@media(max-width:980px){
  #cbHomeContactForm .cb-source-options-compact{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:620px){
  #cbHomeContactForm .cb-source-options-compact{
    grid-template-columns:1fr!important;
  }

  #cbHomeContactForm .cb-source-options-compact span{
    white-space:normal!important;
  }
}

/* =========================================================
   MOBILE UX FIXES V2.11
   ========================================================= */

/* Ancre formulaire sous header fixe */
.cb-form-anchor{
  display:block;
  position:relative;
  top:-120px;
  height:1px;
  visibility:hidden;
}

/* Mobile : premier écran moins encombré */
@media(max-width:760px){
  .cb-hero,
  .cb-home-hero,
  .cb-hero-section{
    min-height:100svh!important;
    padding-top:118px!important;
    overflow:hidden!important;
  }

  .cb-hero-bg,
  .cb-hero-slide,
  .cb-hero-media,
  .cb-hero picture,
  .cb-hero img{
    object-fit:cover!important;
    object-position:center top!important;
  }

  .cb-hero-content,
  .cb-hero-inner,
  .cb-hero-copy{
    padding-left:24px!important;
    padding-right:24px!important;
    max-width:100%!important;
  }

  .cb-hero-kicker,
  .cb-eyebrow{
    font-size:11px!important;
    line-height:1.55!important;
    letter-spacing:.24em!important;
    max-width:92vw!important;
  }

  #cbHeroHeadline,
  .cb-hero-emotional-title{
    font-size:clamp(46px,15vw,76px)!important;
    line-height:.9!important;
    letter-spacing:-.055em!important;
    max-width:92vw!important;
    margin-bottom:18px!important;
  }

  .cb-hero-copy p,
  .cb-hero-lead,
  .cb-hero-description{
    font-size:17px!important;
    line-height:1.45!important;
    max-width:92vw!important;
  }

  /* On allège le premier écran : moins de badges visibles */
  .cb-hero-badges,
  .cb-stats,
  .cb-proof-row{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:10px!important;
  }

  .cb-hero-badges > *:nth-child(n+3),
  .cb-stats > *:nth-child(n+3),
  .cb-proof-row > *:nth-child(n+3){
    display:none!important;
  }

  /* Les cartes latérales du hero passent sous le fold, pas dans le premier écran */
  .cb-hero-aside,
  .cb-hero-panel,
  .cb-hero-card,
  .cb-hero-side{
    margin-top:28px!important;
  }
}

/* Formulaire : sources compactes et sans chevauchement */
#cbHomeContactForm{
  align-items:start!important;
}

#cbHomeContactForm .wide,
#cbHomeContactForm fieldset.wide,
#cbHomeContactForm label.wide,
#cbHomeContactForm textarea,
#cbHomeContactForm .cb-form-status{
  grid-column:1 / -1!important;
}

#cbHomeContactForm .cb-source-fieldset,
.cb-source-fieldset-inline{
  grid-column:1 / -1!important;
  width:100%!important;
  margin:0!important;
  padding:18px 20px!important;
  border-radius:24px!important;
  border:1px solid rgba(23,18,15,.12)!important;
  background:rgba(255,255,255,.45)!important;
}

#cbHomeContactForm .cb-source-fieldset legend{
  padding:0 8px!important;
  font-size:11px!important;
  letter-spacing:.14em!important;
  white-space:normal!important;
}

#cbHomeContactForm .cb-source-options-compact{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:8px!important;
}

#cbHomeContactForm .cb-source-options-compact label{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:9px!important;
  min-width:0!important;
  min-height:42px!important;
  padding:9px 12px!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.66)!important;
  border:1px solid rgba(23,18,15,.11)!important;
  box-sizing:border-box!important;
}

#cbHomeContactForm .cb-source-options-compact input{
  width:16px!important;
  height:16px!important;
  margin:0!important;
  flex:0 0 16px!important;
}

#cbHomeContactForm .cb-source-options-compact span{
  display:block!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:13px!important;
  line-height:1.15!important;
  font-weight:750!important;
  letter-spacing:0!important;
  text-transform:none!important;
  color:#181411!important;
}

@media(max-width:980px){
  #cbHomeContactForm .cb-source-options-compact{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:620px){
  #cbHomeContactForm .cb-source-options-compact{
    grid-template-columns:1fr!important;
  }

  #cbHomeContactForm .cb-source-options-compact span{
    white-space:normal!important;
  }
}

/* Galerie immersive mobile : texte plus éditorial, moins bloc technique */
@media(max-width:760px){
  .cb-gallery-caption,
  .cb-portfolio-caption,
  .cb-lightbox-caption,
  .cb-signature-caption,
  .cb-portfolio-text,
  .cb-gallery-text{
    max-height:none!important;
    overflow:visible!important;
    padding:18px 20px!important;
    border-radius:24px!important;
    font-size:16px!important;
    line-height:1.55!important;
    font-weight:450!important;
    letter-spacing:-.01em!important;
  }

  .cb-gallery-caption strong,
  .cb-portfolio-caption strong,
  .cb-lightbox-caption strong,
  .cb-signature-caption strong{
    font-size:18px!important;
    line-height:1.35!important;
    font-weight:650!important;
  }

  .cb-gallery-caption p,
  .cb-portfolio-caption p,
  .cb-lightbox-caption p,
  .cb-signature-caption p{
    font-size:15px!important;
    line-height:1.55!important;
    font-weight:420!important;
  }

  .cb-gallery-actions,
  .cb-portfolio-actions,
  .cb-lightbox-actions{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:10px!important;
    padding-bottom:96px!important;
  }

  .cb-gallery-actions a,
  .cb-portfolio-actions a,
  .cb-lightbox-actions a,
  .cb-gallery-actions button,
  .cb-portfolio-actions button,
  .cb-lightbox-actions button{
    min-height:46px!important;
    padding:12px 18px!important;
    white-space:nowrap!important;
  }
}

/* Pour l’instant, on retire le menu bas app-like qui répète le header */
@media(max-width:760px){
  .cb-mobile-bottom-nav,
  .cb-mobile-tabbar,
  .cb-bottom-nav,
  .cb-sticky-mobile-nav,
  .cb-app-nav,
  .cb-mobile-dock,
  nav[aria-label="Navigation mobile"],
  nav[aria-label="Mobile navigation"]{
    display:none!important;
  }

  body{
    padding-bottom:0!important;
  }
}

/* Portfolio plein écran : éviter boutons coupés en bas */
@media(max-width:760px){
  .cb-lightbox,
  .cb-portfolio-lightbox,
  .cb-gallery-lightbox,
  .cb-fullscreen{
    padding-bottom:calc(24px + env(safe-area-inset-bottom))!important;
  }

  .cb-lightbox button,
  .cb-portfolio-lightbox button,
  .cb-gallery-lightbox button{
    margin-bottom:max(8px, env(safe-area-inset-bottom))!important;
  }
}

/* =========================================================
   PATCH MOBILE — HERO moins coupé + portfolio plus lisible
   ========================================================= */

@media (max-width: 760px) {
  /* ---------------------------------
     1) HERO MOBILE : moins encombré
     --------------------------------- */
  .cb-hero,
  .cb-home-hero,
  .cb-hero-section {
    min-height: auto !important;
    padding-top: 108px !important;
    padding-bottom: 28px !important;
    overflow: hidden !important;
  }

  .cb-hero-inner,
  .cb-hero-content,
  .cb-hero-copy {
    padding-left: 24px !important;
    padding-right: 24px !important;
    max-width: 100% !important;
  }

  .cb-hero-kicker,
  .cb-eyebrow {
    font-size: 11px !important;
    line-height: 1.55 !important;
    letter-spacing: .18em !important;
    max-width: 92vw !important;
  }

  #cbHeroHeadline,
  .cb-hero-emotional-title {
    font-size: clamp(42px, 12.8vw, 64px) !important;
    line-height: .92 !important;
    letter-spacing: -.04em !important;
    max-width: 92vw !important;
    margin-bottom: 16px !important;
  }

  .cb-hero-copy p,
  .cb-hero-lead,
  .cb-hero-description {
    font-size: 17px !important;
    line-height: 1.48 !important;
    max-width: 90vw !important;
    margin-bottom: 18px !important;
  }

  .cb-hero-actions,
  .cb-hero-cta {
    gap: 12px !important;
    margin-top: 18px !important;
  }

  /* On limite les badges visibles pour laisser respirer l'image */
  .cb-hero-badges > *:nth-child(n+4),
  .cb-stats > *:nth-child(n+4),
  .cb-proof-row > *:nth-child(n+4) {
    display: none !important;
  }

  /* Image hero moins coupée */
  .cb-hero picture,
  .cb-home-hero picture,
  .cb-hero img,
  .cb-home-hero img,
  .cb-hero-media,
  .cb-hero-slide,
  .cb-hero-bg {
    height: 56svh !important;
    min-height: 430px !important;
    max-height: 560px !important;
  }

  .cb-hero img,
  .cb-home-hero img,
  .cb-hero picture img {
    object-fit: cover !important;
    object-position: center 26% !important;
  }

  .cb-hero-slide,
  .cb-hero-bg {
    background-size: cover !important;
    background-position: center 26% !important;
  }

  /* ---------------------------------
     2) MENU BAS MOBILE : on le coupe
     --------------------------------- */
  .cb-mobile-bottom-nav,
  .cb-mobile-tabbar,
  .cb-bottom-nav,
  .cb-sticky-mobile-nav,
  .cb-app-nav,
  .cb-mobile-dock {
    display: none !important;
  }

  body {
    padding-bottom: 0 !important;
  }

  /* ---------------------------------
     3) PORTFOLIO IMMERSIF : texte sous l'image
     --------------------------------- */
  .cb-portfolio-immersive,
  .cb-bestof-immersive,
  .cb-gallery-immersive {
    overflow: visible !important;
  }

  .cb-portfolio-slide,
  .cb-bestof-slide,
  .cb-gallery-slide,
  .cb-signature-slide,
  .cb-portfolio-card,
  .cb-signature-card {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }

  .cb-portfolio-slide > img,
  .cb-bestof-slide > img,
  .cb-gallery-slide > img,
  .cb-signature-slide > img,
  .cb-portfolio-card > img,
  .cb-signature-card > img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 0 !important;
  }

  .cb-gallery-caption,
  .cb-portfolio-caption,
  .cb-lightbox-caption,
  .cb-signature-caption,
  .cb-portfolio-text,
  .cb-gallery-text {
    position: relative !important;
    inset: auto !important;
    width: auto !important;
    max-width: none !important;
    margin: -18px 16px 0 !important;
    padding: 18px 18px 20px !important;
    border-radius: 24px !important;
    z-index: 3 !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
  }

  .cb-gallery-caption h3,
  .cb-portfolio-caption h3,
  .cb-lightbox-caption h3,
  .cb-signature-caption h3 {
    font-size: 18px !important;
    line-height: 1.15 !important;
    margin-bottom: 10px !important;
  }

  .cb-gallery-caption p,
  .cb-portfolio-caption p,
  .cb-lightbox-caption p,
  .cb-signature-caption p {
    font-size: 14px !important;
    line-height: 1.5 !important;
    margin-bottom: 0 !important;
  }

  .cb-gallery-actions,
  .cb-portfolio-actions,
  .cb-lightbox-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    padding: 14px 16px 0 !important;
  }

  .cb-gallery-actions a,
  .cb-portfolio-actions a,
  .cb-lightbox-actions a,
  .cb-gallery-actions button,
  .cb-portfolio-actions button,
  .cb-lightbox-actions button {
    min-height: 44px !important;
    padding: 12px 18px !important;
    white-space: nowrap !important;
  }
}

/* =========================================================
   PATCH MOBILE V2 — HERO + PORTFOLIO + LIGHTBOX
   ========================================================= */
@media (max-width: 760px) {

  /* -----------------------------------------
     0) Nettoyage mobile : on enlève le menu bas
     ----------------------------------------- */
  .cb-mobile-bottom-nav,
  .cb-mobile-tabbar,
  .cb-bottom-nav,
  .cb-sticky-mobile-nav,
  .cb-app-nav,
  .cb-mobile-dock {
    display: none !important;
  }

  body {
    padding-bottom: 0 !important;
  }

  /* -----------------------------------------
     1) HERO MOBILE : moins coupé, plus lisible
     ----------------------------------------- */
  .cb-hero,
  .cb-home-hero,
  .cb-hero-section {
    min-height: auto !important;
    padding-top: 120px !important;
    padding-bottom: 28px !important;
    overflow: hidden !important;
  }

  .cb-hero-inner,
  .cb-hero-content,
  .cb-hero-copy,
  .cb-hero-main {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 22px !important;
    padding-right: 22px !important;
  }

  /* On masque les cartes desktop à droite sur mobile */
  .cb-hero-side,
  .cb-hero-panel,
  .cb-hero-aside,
  .cb-hero-story-card,
  .cb-hero-contact-card {
    display: none !important;
  }

  .cb-hero-kicker,
  .cb-eyebrow {
    font-size: 11px !important;
    line-height: 1.55 !important;
    letter-spacing: .18em !important;
    margin-bottom: 14px !important;
    max-width: 92vw !important;
  }

  #cbHeroHeadline,
  .cb-hero-emotional-title,
  .cb-hero h1 {
    font-size: clamp(42px, 13vw, 62px) !important;
    line-height: .92 !important;
    letter-spacing: -.045em !important;
    margin-bottom: 18px !important;
    max-width: 92vw !important;
  }

  .cb-hero-copy p,
  .cb-hero-lead,
  .cb-hero-description {
    font-size: 16px !important;
    line-height: 1.48 !important;
    max-width: 90vw !important;
    margin-bottom: 18px !important;
  }

  .cb-hero-actions,
  .cb-hero-cta {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    margin-top: 18px !important;
  }

  .cb-hero-actions > *,
  .cb-hero-cta > * {
    width: 100% !important;
  }

  /* On réduit les badges pour laisser respirer l'image */
  .cb-hero-badges,
  .cb-stats,
  .cb-proof-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-top: 14px !important;
  }

  .cb-hero-badges > *:nth-child(n+4),
  .cb-stats > *:nth-child(n+4),
  .cb-proof-row > *:nth-child(n+4) {
    display: none !important;
  }

  .cb-hero-badges > *,
  .cb-stats > *,
  .cb-proof-row > * {
    flex: 0 0 auto !important;
  }

  /* Image hero moins coupée */
  .cb-hero picture,
  .cb-home-hero picture,
  .cb-hero img,
  .cb-home-hero img,
  .cb-hero-media,
  .cb-hero-slide,
  .cb-hero-bg {
    min-height: 100svh !important;
    max-height: none !important;
  }

  .cb-hero img,
  .cb-home-hero img,
  .cb-hero picture img {
    object-fit: cover !important;
    object-position: center 18% !important;
  }

  .cb-hero-slide,
  .cb-hero-bg {
    background-size: cover !important;
    background-position: center 18% !important;
  }

  /* -----------------------------------------
     2) PORTFOLIO IMMERSIF SUR LA HOME
     => image d'abord, texte dessous
     ----------------------------------------- */
  .cb-portfolio-immersive,
  .cb-bestof-immersive,
  .cb-gallery-immersive,
  .cb-signature-immersive {
    overflow: visible !important;
  }

  .cb-portfolio-slide,
  .cb-bestof-slide,
  .cb-gallery-slide,
  .cb-signature-slide,
  .cb-portfolio-card,
  .cb-signature-card,
  .cb-immersive-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    position: relative !important;
  }

  .cb-portfolio-slide > img,
  .cb-bestof-slide > img,
  .cb-gallery-slide > img,
  .cb-signature-slide > img,
  .cb-portfolio-card > img,
  .cb-signature-card > img,
  .cb-immersive-item > img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 0 !important;
  }

  .cb-gallery-caption,
  .cb-portfolio-caption,
  .cb-signature-caption,
  .cb-portfolio-text,
  .cb-gallery-text,
  .cb-immersive-caption {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    inset: auto !important;
    transform: none !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 16px !important;
    margin-top: -22px !important;
    padding: 18px 18px 20px !important;
    border-radius: 24px !important;
    z-index: 3 !important;
  }

  .cb-gallery-caption h3,
  .cb-portfolio-caption h3,
  .cb-signature-caption h3,
  .cb-portfolio-text h3,
  .cb-gallery-text h3,
  .cb-immersive-caption h3 {
    font-size: 17px !important;
    line-height: 1.12 !important;
    margin-bottom: 12px !important;
  }

  .cb-gallery-caption p,
  .cb-portfolio-caption p,
  .cb-signature-caption p,
  .cb-portfolio-text p,
  .cb-gallery-text p,
  .cb-immersive-caption p {
    font-size: 14px !important;
    line-height: 1.55 !important;
    margin-bottom: 0 !important;
  }

  .cb-gallery-actions,
  .cb-portfolio-actions,
  .cb-lightbox-actions,
  .cb-immersive-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    padding: 14px 16px 0 !important;
  }

  .cb-gallery-actions a,
  .cb-portfolio-actions a,
  .cb-lightbox-actions a,
  .cb-immersive-actions a,
  .cb-gallery-actions button,
  .cb-portfolio-actions button,
  .cb-lightbox-actions button,
  .cb-immersive-actions button {
    min-height: 44px !important;
    padding: 12px 18px !important;
    white-space: nowrap !important;
  }

  /* -----------------------------------------
     3) LIGHTBOX / GALERIE PLEIN ÉCRAN MOBILE
     ----------------------------------------- */
  .cb-lightbox,
  .cb-gallery-lightbox,
  .cb-fullscreen-gallery {
    padding: 18px 0 24px !important;
  }

  .cb-lightbox-header,
  .cb-gallery-lightbox-header,
  .cb-fullscreen-gallery-header {
    padding-left: 18px !important;
    padding-right: 18px !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
  }

  .cb-lightbox-stage,
  .cb-gallery-stage,
  .cb-fullscreen-stage {
    display: block !important;
    padding: 0 !important;
  }

  .cb-lightbox-media,
  .cb-gallery-media,
  .cb-fullscreen-media {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 0 12px !important;
  }

  .cb-lightbox-media img,
  .cb-gallery-media img,
  .cb-fullscreen-media img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    border-radius: 0 !important;
  }

  .cb-lightbox-caption,
  .cb-gallery-lightbox-caption,
  .cb-fullscreen-caption {
    position: relative !important;
    inset: auto !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 16px !important;
    padding: 18px 18px 22px !important;
    border-radius: 24px !important;
  }

  .cb-lightbox-caption h3,
  .cb-gallery-lightbox-caption h3,
  .cb-fullscreen-caption h3 {
    font-size: 17px !important;
    line-height: 1.15 !important;
    margin-bottom: 10px !important;
  }

  .cb-lightbox-caption p,
  .cb-gallery-lightbox-caption p,
  .cb-fullscreen-caption p {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  /* -----------------------------------------
     4) Petites sécurités anti-superposition
     ----------------------------------------- */
  .cb-portfolio-meta,
  .cb-signature-meta,
  .cb-immersive-meta {
    position: relative !important;
    z-index: 4 !important;
  }

  .cb-portfolio-section .cb-title,
  .cb-bestof-section .cb-title,
  .cb-signature-section .cb-title {
    margin-bottom: 14px !important;
  }
}

/* =========================================================
   V2.12 — Portfolio immersif mobile comme galerie immersive
   ========================================================= */

@media(max-width:760px){

  /* On cache le dock bas redondant pour l’instant */
  .cb-force-hide-mobile-dock,
  .cb-mobile-bottom-nav,
  .cb-mobile-tabbar,
  .cb-bottom-nav,
  .cb-sticky-mobile-nav,
  .cb-app-nav,
  .cb-mobile-dock{
    display:none!important;
  }

  body{
    padding-bottom:0!important;
  }

  /* Le bloc portfolio mobile passe en lecture verticale */
  .cb-mobile-portfolio-normalized{
    overflow:visible!important;
  }

  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-card{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:0!important;
    position:relative!important;
    overflow:visible!important;
  }

  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-card img,
  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-card picture,
  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-card figure{
    order:1!important;
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center center!important;
    transform:none!important;
    border-radius:22px!important;
  }

  /* Le texte sort de l’overlay et passe sous l’image */
  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-caption-like{
    order:2!important;
    position:relative!important;
    inset:auto!important;
    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    left:auto!important;
    transform:none!important;
    width:auto!important;
    max-width:none!important;
    max-height:none!important;
    overflow:visible!important;
    margin:14px 16px 0!important;
    padding:18px 18px 20px!important;
    border-radius:24px!important;
    z-index:3!important;
    background:rgba(12,9,7,.88)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    backdrop-filter:blur(16px)!important;
  }

  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-caption-like h2,
  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-caption-like h3,
  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-caption-like strong{
    font-size:22px!important;
    line-height:1.14!important;
    font-weight:500!important;
    letter-spacing:-.03em!important;
    margin:0 0 10px!important;
  }

  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-caption-like p,
  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-caption-like span{
    font-size:15px!important;
    line-height:1.55!important;
    font-weight:420!important;
    letter-spacing:-.01em!important;
  }

  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-caption-like [class*="eyebrow"],
  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-caption-like [class*="kicker"],
  .cb-mobile-portfolio-normalized .cb-mobile-portfolio-caption-like small{
    display:block!important;
    margin-bottom:10px!important;
    font-size:10px!important;
    line-height:1.3!important;
    letter-spacing:.18em!important;
    text-transform:uppercase!important;
    color:rgba(226,196,143,.82)!important;
  }

  /* Évite que des anciens overlays continuent à flotter au-dessus */
  .cb-mobile-portfolio-normalized [style*="position: absolute"],
  .cb-mobile-portfolio-normalized [style*="position:absolute"]{
    position:relative!important;
    inset:auto!important;
    transform:none!important;
  }

  /* Boutons sous l’image, jamais coupés */
  .cb-mobile-portfolio-normalized .cb-gallery-actions,
  .cb-mobile-portfolio-normalized .cb-portfolio-actions,
  .cb-mobile-portfolio-normalized .cb-lightbox-actions,
  .cb-mobile-portfolio-normalized [class*="actions"]{
    order:3!important;
    display:flex!important;
    flex-wrap:wrap!important;
    gap:10px!important;
    padding:14px 16px 0!important;
    margin:0!important;
  }

  .cb-mobile-portfolio-normalized .cb-gallery-actions a,
  .cb-mobile-portfolio-normalized .cb-portfolio-actions a,
  .cb-mobile-portfolio-normalized .cb-lightbox-actions a,
  .cb-mobile-portfolio-normalized [class*="actions"] a,
  .cb-mobile-portfolio-normalized [class*="actions"] button{
    min-height:44px!important;
    padding:12px 18px!important;
    white-space:nowrap!important;
  }

  /* Sécurité : les textes longs importés ne doivent pas devenir énormes */
  .cb-mobile-portfolio-normalized b,
  .cb-mobile-portfolio-normalized strong{
    font-weight:600!important;
  }
}

/* =========================================================
   V2.13 — Correction mobile portfolio sideviewer
   Cible : .cb-portfolio-cinematic.cb-portfolio-sideviewer
   ========================================================= */

@media(max-width:760px){

  .cb-portfolio-cinematic.cb-portfolio-sideviewer{
    display:block!important;
    position:relative!important;
    overflow:hidden!important;
    padding-top:92px!important;
    padding-bottom:56px!important;
  }

  /*
   * Sur mobile, on annule la logique desktop/sideviewer.
   * Le bloc devient : image -> texte -> boutons.
   */
  .cb-portfolio-cinematic.cb-portfolio-sideviewer *,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer *::before,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer *::after{
    box-sizing:border-box!important;
  }

  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="sideviewer"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="viewer"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="track"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="stage"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="slide"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="panel"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="card"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer article,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer figure{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    position:relative!important;
    inset:auto!important;
    transform:none!important;
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
  }

  /*
   * L’image reprend sa place en haut.
   */
  .cb-portfolio-cinematic.cb-portfolio-sideviewer picture,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer img,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="image"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="media"]{
    order:1!important;
    position:relative!important;
    inset:auto!important;
    transform:none!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
  }

  .cb-portfolio-cinematic.cb-portfolio-sideviewer img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center center!important;
    border-radius:0!important;
  }

  /*
   * Tous les textes / captions sortent de l’overlay.
   */
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="caption"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="content"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="copy"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="text"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="legend"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="description"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer figcaption,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer aside{
    order:2!important;
    position:relative!important;
    inset:auto!important;
    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    left:auto!important;
    transform:none!important;
    width:auto!important;
    max-width:none!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    margin:14px 18px 0!important;
    padding:20px 20px 22px!important;
    border-radius:24px!important;
    z-index:3!important;
    background:rgba(12,9,7,.90)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    backdrop-filter:blur(16px)!important;
  }

  /*
   * On enlève les éléments décoratifs qui se superposent au texte.
   */
  .cb-portfolio-cinematic.cb-portfolio-sideviewer .cb-brand-mark,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="watermark"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="floating"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="badge"]{
    position:relative!important;
    inset:auto!important;
    transform:none!important;
  }

  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="caption"] .cb-brand-mark,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="content"] .cb-brand-mark,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="copy"] .cb-brand-mark,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="text"] .cb-brand-mark{
    display:none!important;
  }

  /*
   * Wording / hiérarchie visuelle plus propre.
   */
  .cb-portfolio-cinematic.cb-portfolio-sideviewer h2,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer h3,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer strong{
    position:relative!important;
    display:block!important;
    margin:0 0 10px!important;
    font-family:var(--cb-serif)!important;
    font-size:22px!important;
    line-height:1.14!important;
    font-weight:500!important;
    letter-spacing:-.035em!important;
    color:rgba(255,255,255,.96)!important;
  }

  .cb-portfolio-cinematic.cb-portfolio-sideviewer p,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer span,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer li{
    position:relative!important;
    font-size:15px!important;
    line-height:1.55!important;
    font-weight:420!important;
    letter-spacing:-.01em!important;
    color:rgba(255,255,255,.82)!important;
  }

  .cb-portfolio-cinematic.cb-portfolio-sideviewer small,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="kicker"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="eyebrow"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="label"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="meta"]{
    display:block!important;
    position:relative!important;
    margin:0 0 12px!important;
    font-family:var(--cb-sans)!important;
    font-size:10px!important;
    line-height:1.35!important;
    font-weight:800!important;
    letter-spacing:.20em!important;
    text-transform:uppercase!important;
    color:rgba(226,196,143,.82)!important;
  }

  /*
   * Boutons sous le texte, jamais coupés.
   */
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="actions"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="buttons"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="cta"]{
    order:3!important;
    position:relative!important;
    display:flex!important;
    flex-wrap:wrap!important;
    gap:10px!important;
    margin:16px 18px 0!important;
    padding:0!important;
    width:auto!important;
    max-width:none!important;
  }

  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="actions"] a,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="actions"] button,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="buttons"] a,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="buttons"] button,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="cta"] a,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [class*="cta"] button{
    min-height:44px!important;
    padding:12px 18px!important;
    white-space:nowrap!important;
  }

  /*
   * Sécurité : aucun texte sideviewer ne doit repasser en absolute.
   */
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [style*="position: absolute"],
  .cb-portfolio-cinematic.cb-portfolio-sideviewer [style*="position:absolute"]{
    position:relative!important;
    inset:auto!important;
    transform:none!important;
  }
}

/* =========================================================
   V2.14 — Remplacement mobile du sideviewer portfolio
   ========================================================= */

/* Desktop : le bloc mobile n’existe pas visuellement */
.cb-mobile-portfolio-preview{
  display:none;
}

@media(max-width:760px){

  /*
   * Le module sideviewer desktop est trop fragile sur mobile.
   * On le masque uniquement sur mobile.
   */
  .cb-portfolio-cinematic.cb-portfolio-sideviewer{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }

  /*
   * Bloc mobile propre à la place.
   */
  .cb-mobile-portfolio-preview{
    display:block!important;
    background:#100d0b;
    color:#fff;
    padding:58px 0 64px;
  }

  .cb-mobile-portfolio-preview-inner{
    width:min(100% - 32px, 720px);
    margin:0 auto;
  }

  .cb-mobile-portfolio-kicker{
    margin:0 0 12px;
    font-family:var(--cb-sans);
    font-size:11px;
    line-height:1.4;
    font-weight:800;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:rgba(226,196,143,.82);
  }

  .cb-mobile-portfolio-preview h2{
    margin:0 0 14px;
    font-family:var(--cb-serif);
    font-size:clamp(34px,11vw,54px);
    line-height:.95;
    font-weight:500;
    letter-spacing:-.055em;
    color:rgba(255,255,255,.96);
  }

  .cb-mobile-portfolio-lead,
  .cb-mobile-portfolio-note{
    margin:0;
    font-size:16px;
    line-height:1.55;
    color:rgba(255,255,255,.74);
  }

  .cb-mobile-portfolio-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:6px;
    margin:24px 0 18px;
  }

  .cb-mobile-portfolio-grid a{
    display:block;
    position:relative;
    overflow:hidden;
    border-radius:14px;
    background:#221a15;
    aspect-ratio:1 / 1.1;
  }

  .cb-mobile-portfolio-grid img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
  }

  .cb-mobile-portfolio-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:22px;
  }

  .cb-mobile-portfolio-actions a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:12px 18px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.16);
    color:#fff;
    text-decoration:none;
    font-size:12px;
    font-weight:850;
    letter-spacing:.14em;
    text-transform:uppercase;
    background:rgba(255,255,255,.06);
  }

  .cb-mobile-portfolio-actions a:first-child{
    background:linear-gradient(135deg,#e8c986,#c89f56);
    color:#18110d;
    border-color:transparent;
  }

  /*
   * On retire aussi le dock bas redondant s’il est injecté ailleurs.
   */
  .cb-force-hide-mobile-dock,
  .cb-mobile-bottom-nav,
  .cb-mobile-tabbar,
  .cb-bottom-nav,
  .cb-sticky-mobile-nav,
  .cb-app-nav,
  .cb-mobile-dock{
    display:none!important;
  }

  body{
    padding-bottom:0!important;
  }
}

/* =========================================================
   V2.15 — Fusion portfolio immersif + galerie originale
   ========================================================= */

/* Le bloc mobile temporaire est définitivement désactivé */
#cb-mobile-portfolio-preview,
.cb-mobile-portfolio-preview{
  display:none!important;
}

/* Desktop : sideviewer immersif puis grille juste en dessous */
@media(min-width:761px){
  .cb-gallery-fusion-immersive,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer{
    margin-bottom:0!important;
    padding-bottom:clamp(38px,5vw,72px)!important;
  }

  .cb-gallery-fusion-grid{
    margin-top:0!important;
    padding-top:clamp(34px,4vw,64px)!important;
  }

  .cb-original-gallery-shell{
    margin-top:0!important;
  }

  .cb-original-gallery-actions{
    display:flex!important;
    justify-content:center!important;
    flex-wrap:wrap!important;
    gap:12px!important;
    margin:clamp(24px,3vw,42px) auto 0!important;
  }
}

/* Mobile : on garde uniquement la galerie originale, qui fonctionne bien */
@media(max-width:760px){

  /* Le sideviewer desktop est masqué sur mobile pour éviter les doublons et les overlays cassés */
  .cb-portfolio-cinematic.cb-portfolio-sideviewer,
  .cb-gallery-fusion-immersive{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }

  /* La galerie originale devient le bloc officiel mobile */
  .cb-gallery-fusion-grid,
  .cb-original-gallery-shell{
    display:block!important;
    visibility:visible!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
  }

  .cb-gallery-fusion-grid{
    padding-top:54px!important;
    padding-bottom:58px!important;
  }

  .cb-original-gallery-shell{
    margin-top:0!important;
  }

  /* Boutons ajoutés sous la galerie */
  .cb-original-gallery-actions{
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
    margin:24px auto 0!important;
    width:min(100%, 420px)!important;
  }

  .cb-original-gallery-actions a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:48px!important;
    padding:13px 18px!important;
    border-radius:999px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    background:rgba(255,255,255,.06)!important;
    color:#fff!important;
    text-decoration:none!important;
    font-family:var(--cb-sans)!important;
    font-size:12px!important;
    font-weight:850!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
  }

  .cb-original-gallery-actions a:first-child{
    background:linear-gradient(135deg,#e8c986,#c89f56)!important;
    border-color:transparent!important;
    color:#18110d!important;
  }
}

/* Style commun des boutons galerie */
.cb-original-gallery-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:13px 22px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:#fff;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:850;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.cb-original-gallery-actions a:first-child{
  background:linear-gradient(135deg,#e8c986,#c89f56);
  border-color:transparent;
  color:#18110d;
}

/* =========================================================
   V2.16 — Doctrine galerie
   Desktop : immersif + grille
   Mobile : uniquement grille originale
   ========================================================= */

/* Aucun bloc mobile temporaire */
#cb-mobile-portfolio-preview,
.cb-mobile-portfolio-preview{
  display:none!important;
}

/* Desktop : le sideviewer reste la partie immersive */
@media(min-width:761px){
  .cb-desktop-immersive-only,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer{
    display:block!important;
    visibility:visible!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    margin-bottom:0!important;
    padding-bottom:clamp(38px,5vw,72px)!important;
  }

  .cb-mobile-gallery-official,
  .cb-original-gallery-section.cb-gallery-grid-fallback.cb-gallery-fusion-grid,
  .cb-gallery-grid-fallback.cb-gallery-fusion-grid{
    display:block!important;
    margin-top:0!important;
    padding-top:clamp(34px,4vw,64px)!important;
  }

  .cb-original-gallery-actions{
    display:flex!important;
    justify-content:center!important;
    flex-wrap:wrap!important;
    gap:12px!important;
    margin:clamp(24px,3vw,42px) auto 0!important;
  }
}

/* Mobile : le bloc immersif desktop disparaît totalement */
@media(max-width:760px){
  .cb-desktop-immersive-only,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    pointer-events:none!important;
  }

  /* Le comportement mobile officiel est celui de la galerie originale */
  .cb-mobile-gallery-official,
  .cb-original-gallery-section.cb-gallery-grid-fallback.cb-gallery-fusion-grid,
  .cb-gallery-grid-fallback.cb-gallery-fusion-grid{
    display:block!important;
    visibility:visible!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    padding-top:54px!important;
    padding-bottom:58px!important;
  }

  .cb-original-gallery-shell{
    display:block!important;
    margin-top:0!important;
  }

  .cb-original-gallery-actions{
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
    width:min(100%,420px)!important;
    margin:24px auto 0!important;
  }

  .cb-original-gallery-actions a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:48px!important;
    padding:13px 18px!important;
    border-radius:999px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    background:rgba(255,255,255,.06)!important;
    color:#fff!important;
    text-decoration:none!important;
    font-family:var(--cb-sans)!important;
    font-size:12px!important;
    font-weight:850!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
  }

  .cb-original-gallery-actions a:first-child{
    background:linear-gradient(135deg,#e8c986,#c89f56)!important;
    border-color:transparent!important;
    color:#18110d!important;
  }
}

/* Style commun des boutons */
.cb-original-gallery-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:13px 22px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:#fff;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:850;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.cb-original-gallery-actions a:first-child{
  background:linear-gradient(135deg,#e8c986,#c89f56);
  border-color:transparent;
  color:#18110d;
}

/* =========================================================
   V2.17 — Galerie originale visible sur mobile
   Desktop : sideviewer immersif
   Mobile : cb-original-gallery-section / grid fallback
   ========================================================= */

/* Desktop : sideviewer visible, galerie originale dessous */
@media(min-width:761px){
  .cb-desktop-sideviewer-only,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer{
    display:block!important;
    visibility:visible!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }

  .cb-original-gallery-section.cb-gallery-grid-fallback.cb-gallery-fusion-grid,
  .cb-mobile-gallery-official,
  .cb-original-gallery-shell{
    display:block!important;
    visibility:visible!important;
  }
}

/* Mobile : on masque uniquement le sideviewer, pas son voisin galerie */
@media(max-width:760px){

  .cb-desktop-sideviewer-only,
  .cb-portfolio-cinematic.cb-portfolio-sideviewer{
    display:none!important;
    visibility:hidden!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    pointer-events:none!important;
  }

  /*
   * RÈGLE IMPORTANTE :
   * la galerie originale doit apparaître en mobile.
   */
  .cb-original-gallery-section,
  .cb-original-gallery-section.cb-gallery-grid-fallback,
  .cb-original-gallery-section.cb-gallery-grid-fallback.cb-gallery-fusion-grid,
  .cb-gallery-grid-fallback.cb-gallery-fusion-grid,
  .cb-mobile-gallery-official,
  .cb-original-gallery-shell{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin-top:0!important;
    overflow:visible!important;
    pointer-events:auto!important;
  }

  .cb-original-gallery-section.cb-gallery-grid-fallback.cb-gallery-fusion-grid,
  .cb-gallery-grid-fallback.cb-gallery-fusion-grid,
  .cb-mobile-gallery-official{
    padding-top:54px!important;
    padding-bottom:58px!important;
  }

  .cb-original-gallery-shell{
    width:min(100% - 32px, 720px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .cb-original-gallery-actions{
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
    width:min(100%,420px)!important;
    margin:24px auto 0!important;
  }

  .cb-original-gallery-actions a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:48px!important;
    padding:13px 18px!important;
    border-radius:999px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    background:rgba(255,255,255,.06)!important;
    color:#fff!important;
    text-decoration:none!important;
    font-family:var(--cb-sans)!important;
    font-size:12px!important;
    font-weight:850!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
  }

  .cb-original-gallery-actions a:first-child{
    background:linear-gradient(135deg,#e8c986,#c89f56)!important;
    border-color:transparent!important;
    color:#18110d!important;
  }
}

/* Boutons communs */
.cb-original-gallery-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:13px 22px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color:#fff;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:850;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.cb-original-gallery-actions a:first-child{
  background:linear-gradient(135deg,#e8c986,#c89f56);
  border-color:transparent;
  color:#18110d;
}

/* =========================================================
   V2.18 — Galerie originale forcée visible sur mobile
   ========================================================= */

/* Desktop : état normal */
@media(min-width:761px){
  #portfolio-immersif.cb-portfolio-cinematic.cb-portfolio-sideviewer{
    display:block!important;
    visibility:visible!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }

  #galerie-signature{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
  }
}

/* Mobile : le bloc desktop disparaît, la galerie originale devient le bloc officiel */
@media(max-width:760px){

  #portfolio-immersif,
  #portfolio-immersif.cb-portfolio-cinematic,
  #portfolio-immersif.cb-portfolio-sideviewer,
  #portfolio-immersif.cb-desktop-sideviewer-only,
  #portfolio-immersif.cb-desktop-immersive-only{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    pointer-events:none!important;
  }

  /*
   * CIBLE PAR ID :
   * aucune ancienne règle de classe ne doit pouvoir cacher cette section.
   */
  #galerie-signature,
  section#galerie-signature.cb-original-gallery-section,
  section#galerie-signature.cb-gallery-grid-fallback,
  section#galerie-signature.cb-gallery-fusion-grid,
  section#galerie-signature.cb-mobile-gallery-official,
  section#galerie-signature.cb-mobile-gallery-forced-visible{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    position:relative!important;
    z-index:2!important;
    height:auto!important;
    min-height:1px!important;
    max-height:none!important;
    margin:0!important;
    padding:54px 0 58px!important;
    overflow:visible!important;
    pointer-events:auto!important;
    background:#100d0b!important;
    color:#fff!important;
  }

  #galerie-signature .cb-gallery-heading{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:min(100% - 32px,720px)!important;
    margin:0 auto 22px!important;
    color:#fff!important;
  }

  #galerie-signature .cb-eyebrow{
    color:rgba(226,196,143,.82)!important;
  }

  #galerie-signature .cb-title{
    color:rgba(255,255,255,.96)!important;
    font-size:clamp(34px,11vw,54px)!important;
    line-height:.96!important;
  }

  #galerie-signature .cb-lead{
    color:rgba(255,255,255,.72)!important;
    font-size:16px!important;
    line-height:1.55!important;
  }

  #galerie-signature .cb-original-gallery-shell{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:min(100% - 32px,720px)!important;
    height:auto!important;
    max-height:none!important;
    margin:0 auto!important;
    overflow:visible!important;
  }

  #galerie-signature .grid-container,
  #galerie-signature #grid-container-fix{
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
    height:auto!important;
    min-height:1px!important;
    max-height:none!important;
    margin:0!important;
    overflow:visible!important;
  }

  #galerie-signature .grid-item{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    position:relative!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    overflow:visible!important;
  }

  #galerie-signature a,
  #galerie-signature figure{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    height:100%!important;
    margin:0!important;
    overflow:hidden!important;
    border-radius:16px!important;
  }

  #galerie-signature figure{
    aspect-ratio:1 / 1.16!important;
    background:#211915!important;
  }

  #galerie-signature img{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
  }

  /* En mobile, on garde la grille propre : la légende s’ouvre dans la galerie plein écran */
  #galerie-signature figcaption{
    display:none!important;
  }

  #galerie-signature .cb-original-gallery-note{
    display:none!important;
  }

  #galerie-signature .cb-original-gallery-actions{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    flex-direction:column!important;
    gap:12px!important;
    width:min(100% - 32px,420px)!important;
    margin:24px auto 0!important;
  }

  #galerie-signature .cb-original-gallery-actions a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:48px!important;
    padding:13px 18px!important;
    border-radius:999px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    background:rgba(255,255,255,.06)!important;
    color:#fff!important;
    text-decoration:none!important;
    font-family:var(--cb-sans)!important;
    font-size:12px!important;
    font-weight:850!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
  }

  #galerie-signature .cb-original-gallery-actions a:first-child{
    background:linear-gradient(135deg,#e8c986,#c89f56)!important;
    border-color:transparent!important;
    color:#18110d!important;
  }
}

/* =========================================================
   V2.19 — Mobile : 3 galeries distinctes
   1. sideviewer transformé en galerie mobile
   2. galerie signature 2x3
   3. galerie suite 3x3
   ========================================================= */

/* Desktop : la version mobile du sideviewer est cachée */
#portfolio-immersif-mobile-grid{
  display:none;
}

@media(min-width:761px){
  #portfolio-immersif-mobile-grid{
    display:none!important;
  }

  #portfolio-immersif{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }

  #galerie-signature,
  #galerie-suite{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
}

@media(max-width:760px){

  /*
   * Le sideviewer desktop ne s’affiche pas tel quel sur mobile.
   * Sa version mobile dédiée apparaît juste avant.
   */
  #portfolio-immersif{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    pointer-events:none!important;
  }

  /*
   * Les 3 blocs mobile doivent apparaître.
   */
  #portfolio-immersif-mobile-grid,
  #galerie-signature,
  #galerie-suite{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    position:relative!important;
    z-index:2!important;
    height:auto!important;
    min-height:1px!important;
    max-height:none!important;
    margin:0!important;
    padding:54px 0 58px!important;
    overflow:visible!important;
    pointer-events:auto!important;
  }

  #portfolio-immersif-mobile-grid,
  #galerie-signature{
    background:#100d0b!important;
    color:#fff!important;
  }

  #galerie-suite{
    background:#f6efe5!important;
    color:#181411!important;
  }

  #portfolio-immersif-mobile-grid .cb-gallery-heading,
  #galerie-signature .cb-gallery-heading,
  #galerie-suite .cb-gallery-heading{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:min(100% - 32px,720px)!important;
    margin:0 auto 22px!important;
  }

  #portfolio-immersif-mobile-grid .cb-title,
  #galerie-signature .cb-title{
    color:rgba(255,255,255,.96)!important;
    font-size:clamp(34px,11vw,54px)!important;
    line-height:.96!important;
  }

  #portfolio-immersif-mobile-grid .cb-lead,
  #galerie-signature .cb-lead{
    color:rgba(255,255,255,.72)!important;
    font-size:16px!important;
    line-height:1.55!important;
  }

  #portfolio-immersif-mobile-grid .cb-eyebrow,
  #galerie-signature .cb-eyebrow{
    color:rgba(226,196,143,.82)!important;
  }

  #portfolio-immersif-mobile-grid .cb-original-gallery-shell,
  #galerie-signature .cb-original-gallery-shell,
  #galerie-suite .cb-original-gallery-shell{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:min(100% - 32px,720px)!important;
    height:auto!important;
    max-height:none!important;
    margin:0 auto!important;
    overflow:visible!important;
  }

  #portfolio-immersif-mobile-grid .grid-container,
  #galerie-signature .grid-container,
  #galerie-signature #grid-container-fix,
  #galerie-suite .grid-container,
  #galerie-suite #grid-container-fix{
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
    height:auto!important;
    min-height:1px!important;
    max-height:none!important;
    margin:0!important;
    overflow:visible!important;
  }

  #portfolio-immersif-mobile-grid .grid-item,
  #galerie-signature .grid-item,
  #galerie-suite .grid-item{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    position:relative!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    overflow:visible!important;
  }

  #portfolio-immersif-mobile-grid a,
  #portfolio-immersif-mobile-grid figure,
  #galerie-signature a,
  #galerie-signature figure,
  #galerie-suite a,
  #galerie-suite figure{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    height:100%!important;
    margin:0!important;
    overflow:hidden!important;
    border-radius:16px!important;
  }

  #portfolio-immersif-mobile-grid figure,
  #galerie-signature figure,
  #galerie-suite figure{
    aspect-ratio:1 / 1.16!important;
    background:#211915!important;
  }

  #portfolio-immersif-mobile-grid img,
  #galerie-signature img,
  #galerie-suite img{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
  }

  #portfolio-immersif-mobile-grid figcaption,
  #galerie-signature figcaption,
  #galerie-suite figcaption{
    display:none!important;
  }

  #portfolio-immersif-mobile-grid .cb-original-gallery-note,
  #galerie-signature .cb-original-gallery-note,
  #galerie-suite .cb-original-gallery-note{
    display:none!important;
  }

  #portfolio-immersif-mobile-grid .cb-original-gallery-actions,
  #galerie-signature .cb-original-gallery-actions{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    flex-direction:column!important;
    gap:12px!important;
    width:min(100% - 32px,420px)!important;
    margin:24px auto 0!important;
  }

  #portfolio-immersif-mobile-grid .cb-original-gallery-actions a,
  #galerie-signature .cb-original-gallery-actions a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:48px!important;
    padding:13px 18px!important;
    border-radius:999px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    background:rgba(255,255,255,.06)!important;
    color:#fff!important;
    text-decoration:none!important;
    font-family:var(--cb-sans)!important;
    font-size:12px!important;
    font-weight:850!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
  }

  #portfolio-immersif-mobile-grid .cb-original-gallery-actions a:first-child,
  #galerie-signature .cb-original-gallery-actions a:first-child{
    background:linear-gradient(135deg,#e8c986,#c89f56)!important;
    border-color:transparent!important;
    color:#18110d!important;
  }
}

/* =========================================================
   BLOC HOME — REPORTAGES SÉLECTIONNÉS WORDPRESS
   ========================================================= */
.cb-selected-reportages-section {
  background: #f6f1ea;
  color: #161311;
  padding: clamp(56px, 8vw, 110px) 20px;
}

.cb-selected-reportages-shell {
  width: min(1240px, 100%);
  margin: 0 auto;
}

.cb-selected-reportages-header {
  max-width: 780px;
  margin: 0 0 34px;
}

.cb-selected-reportages-kicker {
  margin: 0 0 14px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 600;
  color: #d3bb88;
}

.cb-selected-reportages-title {
  margin: 0 0 16px;
  font-size: clamp(2.4rem, 5vw, 4.6rem);
  line-height: 0.98;
  letter-spacing: -0.03em;
  color: #14110f;
}

.cb-selected-reportages-lead {
  margin: 0;
  font-size: clamp(1.05rem, 1.4vw, 1.3rem);
  line-height: 1.7;
  color: rgba(48, 39, 32, 0.78);
}

.cb-selected-reportages-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
}

.cb-selected-reportages-card {
  background: #fffdfa;
  border: 1px solid rgba(38, 29, 21, 0.08);
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 22px 44px rgba(26, 18, 11, 0.06);
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.cb-selected-reportages-media {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #ece7df;
}

.cb-selected-reportages-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.cb-selected-reportages-body {
  padding: 22px 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}

.cb-selected-reportages-card-kicker {
  margin: 0;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 600;
  color: #b89d69;
}

.cb-selected-reportages-card h3 {
  margin: 0;
  font-size: 1.55rem;
  line-height: 1.15;
  color: #171310;
}

.cb-selected-reportages-card h3 a {
  color: inherit;
  text-decoration: none;
}

.cb-selected-reportages-card p {
  margin: 0;
  color: rgba(43, 35, 29, 0.78);
  line-height: 1.75;
  font-size: 1rem;
}

.cb-selected-reportages-link {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 20px;
  border-radius: 999px;
  background: #15110e;
  color: #f6efe4;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.78rem;
  width: fit-content;
}

.cb-selected-reportages-link:hover,
.cb-selected-reportages-link:focus {
  text-decoration: none;
  opacity: 0.92;
}

@media (max-width: 1080px) {
  .cb-selected-reportages-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .cb-selected-reportages-section {
    padding: 44px 16px;
  }

  .cb-selected-reportages-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .cb-selected-reportages-card {
    border-radius: 24px;
  }

  .cb-selected-reportages-body {
    padding: 18px 18px 20px;
  }

  .cb-selected-reportages-card h3 {
    font-size: 1.35rem;
  }

  .cb-selected-reportages-link {
    width: 100%;
  }
}

/* =========================================================
   V2.21 — Reportages sélectionnés WordPress
   Remplace le faux bloc mobile d’anciennes images.
   ========================================================= */

#reportages-selection.cb-selected-reportages-section{
  background:linear-gradient(180deg,#f6efe5 0%,#eadcc9 100%);
  color:#17120f;
  padding:clamp(70px,8vw,118px) 0;
}

#reportages-selection .cb-selected-reportages-shell{
  width:min(100% - 40px,1180px);
  margin:0 auto;
}

#reportages-selection .cb-selected-reportages-header{
  max-width:820px;
  margin:0 0 clamp(26px,4vw,44px);
}

#reportages-selection .cb-eyebrow{
  color:#b78e4c;
}

#reportages-selection .cb-title{
  color:#17120f;
}

#reportages-selection .cb-lead{
  color:rgba(23,18,15,.68);
}

.cb-selected-reportages-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.cb-selected-reportage-card a{
  display:block;
  height:100%;
  overflow:hidden;
  border-radius:28px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(23,18,15,.10);
  color:inherit;
  text-decoration:none;
  box-shadow:0 24px 70px rgba(50,33,20,.10);
}

.cb-selected-reportage-card figure{
  margin:0;
  aspect-ratio:1.18 / .86;
  overflow:hidden;
  background:#211915;
}

.cb-selected-reportage-card img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transition:transform .7s ease;
}

.cb-selected-reportage-card a:hover img{
  transform:scale(1.045);
}

.cb-selected-reportage-card-body{
  padding:20px 20px 22px;
}

.cb-selected-reportage-card-body span{
  display:block;
  margin-bottom:10px;
  font-family:var(--cb-sans);
  font-size:10px;
  line-height:1.3;
  font-weight:850;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#b78e4c;
}

.cb-selected-reportage-card-body h3{
  margin:0 0 10px;
  font-family:var(--cb-serif);
  font-size:clamp(24px,2.2vw,34px);
  line-height:1.02;
  letter-spacing:-.045em;
  font-weight:500;
  color:#17120f;
}

.cb-selected-reportage-card-body p{
  margin:0 0 16px;
  font-size:15px;
  line-height:1.55;
  color:rgba(23,18,15,.68);
}

.cb-selected-reportage-card-body strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:11px 16px;
  border-radius:999px;
  background:#17120f;
  color:#f6efe5;
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.cb-selected-reportages-actions{
  margin:clamp(26px,3vw,42px) auto 0;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
}

.cb-selected-reportages-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:13px 22px;
  border-radius:999px;
  border:1px solid rgba(23,18,15,.14);
  color:#17120f;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:850;
  letter-spacing:.14em;
  text-transform:uppercase;
  background:rgba(255,255,255,.52);
}

.cb-selected-reportages-actions a:first-child{
  background:linear-gradient(135deg,#e8c986,#c89f56);
  border-color:transparent;
  color:#18110d;
}

@media(max-width:980px){
  .cb-selected-reportages-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:760px){
  #reportages-selection.cb-selected-reportages-section{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    padding:58px 0 62px!important;
    background:linear-gradient(180deg,#f6efe5 0%,#eadcc9 100%)!important;
  }

  #reportages-selection .cb-selected-reportages-shell{
    width:min(100% - 32px,720px)!important;
  }

  #reportages-selection .cb-title{
    font-size:clamp(34px,11vw,54px)!important;
    line-height:.96!important;
  }

  #reportages-selection .cb-lead{
    font-size:16px!important;
    line-height:1.55!important;
  }

  .cb-selected-reportages-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }

  .cb-selected-reportage-card a{
    border-radius:18px!important;
  }

  .cb-selected-reportage-card figure{
    aspect-ratio:1 / 1.08!important;
  }

  .cb-selected-reportage-card-body{
    padding:13px 13px 15px!important;
  }

  .cb-selected-reportage-card-body span{
    font-size:8.5px!important;
    letter-spacing:.14em!important;
    margin-bottom:6px!important;
  }

  .cb-selected-reportage-card-body h3{
    font-size:18px!important;
    line-height:1.06!important;
    margin-bottom:7px!important;
  }

  .cb-selected-reportage-card-body p{
    font-size:12.5px!important;
    line-height:1.42!important;
  }

  .cb-selected-reportage-card-body strong{
    width:100%!important;
    min-height:38px!important;
    font-size:9.5px!important;
    padding:9px 10px!important;
  }

  .cb-selected-reportages-actions{
    flex-direction:column!important;
    width:min(100%,420px)!important;
  }
}

/* Sécurité : l’ancien bloc mobile d’images ne doit plus revenir */
#portfolio-immersif-mobile-grid{
  display:none!important;
}

/* =========================================================
   V2.22 — Ordre portfolio + Instagram galerie originale
   ========================================================= */

/* Le bloc reportages WordPress est le dernier bloc portfolio */
#reportages-selection{
  scroll-margin-top:120px;
}

/* Couleur légèrement différente pour éviter 2 blocs noirs d'affilée */
#reportages-selection.cb-selected-reportages-section{
  background:linear-gradient(180deg,#f6efe5 0%,#eadcc9 100%)!important;
  color:#17120f!important;
}

/* Bouton Instagram dans la lightbox */
.cb-lightbox-instagram-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:46px!important;
  height:46px!important;
  min-width:46px!important;
  border-radius:999px!important;
  border:1px solid rgba(226,196,143,.42)!important;
  background:rgba(226,196,143,.16)!important;
  color:#f2d79f!important;
  text-decoration:none!important;
  font-size:23px!important;
  line-height:1!important;
  font-weight:700!important;
}

.cb-lightbox-instagram-btn:hover,
.cb-lightbox-instagram-btn:focus{
  background:rgba(226,196,143,.26)!important;
  color:#fff1c8!important;
}

/* Mobile : boutons lightbox moins serrés */
@media(max-width:760px){
  .cb-lightbox-actions{
    gap:8px!important;
  }

  .cb-lightbox-btn,
  .cb-lightbox-instagram-btn{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
  }
}

/* =========================================================
   V2.23 — Restauration format original mobile des galeries
   Objectif :
   #galerie-signature = 3 colonnes x 2 lignes
   #galerie-suite     = 3 colonnes x 3 lignes
   ========================================================= */

@media(max-width:760px){

  /*
   * Galeries originales uniquement.
   * Ne touche pas au bloc reportages WordPress.
   */
  #galerie-signature .grid-container,
  #galerie-signature #grid-container-fix,
  #galerie-suite .grid-container,
  #galerie-suite #grid-container-fix{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    width:100%!important;
  }

  #galerie-signature .grid-item,
  #galerie-suite .grid-item{
    display:block!important;
    width:100%!important;
    min-width:0!important;
  }

  #galerie-signature figure,
  #galerie-suite figure{
    aspect-ratio:1 / 1!important;
    width:100%!important;
    height:auto!important;
    margin:0!important;
    border-radius:10px!important;
    overflow:hidden!important;
  }

  #galerie-signature a,
  #galerie-suite a{
    display:block!important;
    width:100%!important;
    height:100%!important;
  }

  #galerie-signature img,
  #galerie-suite img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
  }

  /*
   * On garde les légendes cachées sur mobile :
   * elles reviennent dans la galerie plein écran au clic.
   */
  #galerie-signature figcaption,
  #galerie-suite figcaption{
    display:none!important;
  }

  /*
   * Si une ancienne règle a réduit la largeur du shell, on garde une vraie largeur mobile.
   */
  #galerie-signature .cb-original-gallery-shell,
  #galerie-suite .cb-original-gallery-shell{
    width:min(100% - 28px,720px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  /*
   * Le bloc reportages WordPress reste dans son propre format.
   */
  #reportages-selection .cb-selected-reportages-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* =========================================================
   V2.24 — Articles WordPress pleine largeur desktop
   ========================================================= */

@media(min-width:761px){

  #reportages-selection.cb-selected-reportages-section{
    padding-left:0!important;
    padding-right:0!important;
  }

  #reportages-selection .cb-selected-reportages-shell{
    width:calc(100vw - 64px)!important;
    max-width:1840px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  #reportages-selection .cb-selected-reportages-header{
    max-width:980px!important;
  }

  #reportages-selection .cb-selected-reportages-grid{
    width:100%!important;
    max-width:none!important;
    gap:18px!important;
  }

  #reportages-selection .cb-selected-reportage-card a{
    border-radius:24px!important;
  }

  #reportages-selection .cb-selected-reportage-card figure{
    aspect-ratio:1 / 1.02!important;
  }

  #reportages-selection .cb-selected-reportage-card-body{
    padding:18px 18px 20px!important;
  }

  #reportages-selection .cb-selected-reportage-card-body h3{
    font-size:clamp(20px,1.45vw,28px)!important;
    line-height:1.05!important;
  }

  #reportages-selection .cb-selected-reportage-card-body p{
    font-size:14px!important;
    line-height:1.5!important;
    display:-webkit-box!important;
    -webkit-line-clamp:4!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
  }
}

/* Très grand desktop : les 6 articles utilisent toute la largeur */
@media(min-width:1480px){
  #reportages-selection .cb-selected-reportages-grid{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
  }
}

/* Desktop standard : 3 colonnes plus respirantes */
@media(min-width:981px) and (max-width:1479px){
  #reportages-selection .cb-selected-reportages-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

/* Tablette : 2 colonnes */
@media(min-width:761px) and (max-width:980px){
  #reportages-selection .cb-selected-reportages-shell{
    width:calc(100vw - 40px)!important;
  }

  #reportages-selection .cb-selected-reportages-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

/* Mobile : on conserve le comportement actuel */
@media(max-width:760px){
  #reportages-selection .cb-selected-reportages-shell{
    width:min(100% - 32px,720px)!important;
  }
}

/* =========================================================
   V2.25 — Articles WordPress : largeur large, max 3 par ligne
   ========================================================= */

@media(min-width:981px){

  #reportages-selection.cb-selected-reportages-section{
    padding-left:0!important;
    padding-right:0!important;
  }

  #reportages-selection .cb-selected-reportages-shell{
    width:calc(100vw - 72px)!important;
    max-width:1680px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  #reportages-selection .cb-selected-reportages-header{
    max-width:980px!important;
  }

  #reportages-selection .cb-selected-reportages-grid{
    width:100%!important;
    max-width:none!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:22px!important;
  }

  #reportages-selection .cb-selected-reportage-card a{
    border-radius:30px!important;
  }

  #reportages-selection .cb-selected-reportage-card figure{
    aspect-ratio:1.22 / .82!important;
  }

  #reportages-selection .cb-selected-reportage-card-body{
    padding:22px 22px 24px!important;
  }

  #reportages-selection .cb-selected-reportage-card-body h3{
    font-size:clamp(28px,2vw,38px)!important;
    line-height:1.02!important;
  }

  #reportages-selection .cb-selected-reportage-card-body p{
    font-size:15px!important;
    line-height:1.6!important;
    display:-webkit-box!important;
    -webkit-line-clamp:4!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
  }
}

/* Tablette : 2 colonnes */
@media(min-width:761px) and (max-width:980px){
  #reportages-selection .cb-selected-reportages-shell{
    width:calc(100vw - 40px)!important;
  }

  #reportages-selection .cb-selected-reportages-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
  }
}

/* Mobile : on reste lisible */
@media(max-width:760px){
  #reportages-selection .cb-selected-reportages-shell{
    width:min(100% - 32px,720px)!important;
  }

  #reportages-selection .cb-selected-reportages-grid{
    grid-template-columns:1fr!important;
    gap:18px!important;
  }

  #reportages-selection .cb-selected-reportage-card figure{
    aspect-ratio:1.25 / .82!important;
  }
}

/* =========================================================
   V2.26 — Lot 1 conversion : CTA + preuves + réassurance
   ========================================================= */

.cb-conversion-proof-section{
  background:linear-gradient(180deg,#f8f1e8 0%,#efe1ce 100%);
  color:#17120f;
  padding:clamp(58px,7vw,98px) 0;
}

.cb-conversion-proof-shell{
  width:min(100% - 40px,1280px);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);
  gap:clamp(26px,4vw,56px);
  align-items:start;
}

.cb-conversion-proof-main{
  max-width:760px;
}

.cb-conversion-proof-kicker{
  margin:0 0 14px;
  font-family:var(--cb-sans);
  font-size:12px;
  line-height:1.4;
  font-weight:850;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#b78e4c;
}

.cb-conversion-proof-main h2{
  margin:0 0 18px;
  font-family:var(--cb-serif);
  font-size:clamp(42px,5vw,78px);
  line-height:.95;
  letter-spacing:-.055em;
  font-weight:500;
  color:#17120f;
}

.cb-conversion-proof-main p{
  margin:0;
  max-width:680px;
  font-size:clamp(17px,1.35vw,21px);
  line-height:1.65;
  color:rgba(23,18,15,.72);
}

.cb-conversion-proof-ctas{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}

.cb-conversion-proof-ctas a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:14px 22px;
  border-radius:999px;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  border:1px solid rgba(23,18,15,.14);
  color:#17120f;
  background:rgba(255,255,255,.54);
}

.cb-conversion-proof-ctas a:first-child{
  background:linear-gradient(135deg,#e8c986,#c89f56);
  border-color:transparent;
  color:#18110d;
  box-shadow:0 18px 44px rgba(151,103,38,.18);
}

.cb-conversion-proof-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.cb-conversion-proof-stats article{
  min-height:138px;
  border-radius:26px;
  padding:22px;
  background:rgba(255,255,255,.66);
  border:1px solid rgba(23,18,15,.09);
  box-shadow:0 22px 60px rgba(51,35,22,.08);
}

.cb-conversion-proof-stats strong{
  display:block;
  margin:0 0 10px;
  font-family:var(--cb-serif);
  font-size:clamp(34px,3vw,52px);
  line-height:.94;
  letter-spacing:-.055em;
  font-weight:500;
  color:#17120f;
}

.cb-conversion-proof-stats span{
  display:block;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  line-height:1.45;
  text-transform:uppercase;
  color:rgba(23,18,15,.58);
}

.cb-conversion-proof-reviews{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:4px;
}

.cb-conversion-proof-reviews article{
  border-radius:24px;
  padding:20px;
  background:#17120f;
  color:#f7efe4;
  box-shadow:0 24px 64px rgba(17,12,8,.16);
}

.cb-conversion-proof-reviews span{
  display:block;
  margin-bottom:10px;
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-conversion-proof-reviews p{
  margin:0;
  font-size:16px;
  line-height:1.55;
  color:rgba(247,239,228,.82);
}

/* CTA après les reportages WordPress */
.cb-after-reportages-cta{
  width:min(100% - 40px,1280px);
  margin:clamp(30px,4vw,52px) auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:24px;
  border-radius:30px;
  background:#17120f;
  color:#f7efe4;
  box-shadow:0 24px 70px rgba(17,12,8,.18);
}

.cb-after-reportages-cta div{
  max-width:820px;
}

.cb-after-reportages-cta span{
  display:block;
  margin-bottom:8px;
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-after-reportages-cta strong{
  display:block;
  font-family:var(--cb-serif);
  font-size:clamp(26px,2.6vw,44px);
  line-height:1.04;
  letter-spacing:-.04em;
  font-weight:500;
  color:#f7efe4;
}

.cb-after-reportages-cta a{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:14px 22px;
  border-radius:999px;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#18110d;
  background:linear-gradient(135deg,#e8c986,#c89f56);
}

/* Mobile */
@media(max-width:900px){
  .cb-conversion-proof-shell{
    grid-template-columns:1fr;
  }

  .cb-conversion-proof-reviews{
    grid-template-columns:1fr;
  }

  .cb-after-reportages-cta{
    flex-direction:column;
    align-items:flex-start;
  }

  .cb-after-reportages-cta a{
    width:100%;
  }
}

@media(max-width:760px){
  .cb-conversion-proof-section{
    padding:48px 0 54px;
  }

  .cb-conversion-proof-shell{
    width:min(100% - 32px,720px);
    gap:22px;
  }

  .cb-conversion-proof-main h2{
    font-size:clamp(36px,11vw,54px);
    line-height:.96;
  }

  .cb-conversion-proof-main p{
    font-size:16px;
    line-height:1.55;
  }

  .cb-conversion-proof-ctas{
    flex-direction:column;
  }

  .cb-conversion-proof-ctas a{
    width:100%;
  }

  .cb-conversion-proof-stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }

  .cb-conversion-proof-stats article{
    min-height:118px;
    border-radius:18px;
    padding:16px;
  }

  .cb-conversion-proof-stats strong{
    font-size:34px;
  }

  .cb-conversion-proof-stats span{
    font-size:10px;
    letter-spacing:.1em;
  }

  .cb-conversion-proof-reviews article{
    border-radius:20px;
    padding:18px;
  }

  .cb-after-reportages-cta{
    width:min(100% - 32px,720px);
    margin:28px auto;
    border-radius:22px;
    padding:20px;
  }
}

/* =========================================================
   V2.27 — Vrais extraits avis couples
   ========================================================= */

.cb-real-review-snippets article{
  position:relative;
}

.cb-real-review-snippets article::before{
  content:"★★★★★";
  display:block;
  margin-bottom:12px;
  font-family:var(--cb-sans);
  font-size:13px;
  letter-spacing:.12em;
  color:#e8c986;
}

.cb-real-review-snippets p{
  font-size:clamp(16px,1.25vw,19px)!important;
  line-height:1.56!important;
}

.cb-real-review-snippets span{
  color:#e8c986!important;
}

/* =========================================================
   V2.28 — Collections teaser, sans tout dévoiler
   ========================================================= */

.cb-collections-teaser-section{
  background:
    radial-gradient(circle at 12% 10%, rgba(232,201,134,.22), transparent 34%),
    linear-gradient(180deg,#17120f 0%,#0f0c0a 100%);
  color:#f7efe4;
  padding:clamp(66px,8vw,118px) 0;
}

.cb-collections-teaser-shell{
  width:min(100% - 40px,1320px);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr);
  gap:clamp(28px,4vw,64px);
  align-items:center;
}

.cb-collections-teaser-copy{
  max-width:760px;
}

.cb-collections-teaser-kicker{
  margin:0 0 14px;
  font-family:var(--cb-sans);
  font-size:12px;
  line-height:1.4;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-collections-teaser-copy h2{
  margin:0 0 18px;
  font-family:var(--cb-serif);
  font-size:clamp(42px,5vw,80px);
  line-height:.94;
  letter-spacing:-.058em;
  font-weight:500;
  color:#f7efe4;
}

.cb-collections-teaser-copy p{
  margin:0;
  max-width:680px;
  font-size:clamp(17px,1.3vw,21px);
  line-height:1.65;
  color:rgba(247,239,228,.72);
}

.cb-collections-teaser-price{
  display:inline-flex;
  align-items:flex-end;
  gap:14px;
  margin-top:28px;
  padding:18px 22px;
  border-radius:26px;
  border:1px solid rgba(232,201,134,.24);
  background:rgba(255,255,255,.06);
  box-shadow:0 22px 70px rgba(0,0,0,.22);
}

.cb-collections-teaser-price span{
  display:block;
  max-width:112px;
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  line-height:1.3;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(247,239,228,.58);
}

.cb-collections-teaser-price strong{
  display:block;
  font-family:var(--cb-serif);
  font-size:clamp(42px,4.4vw,72px);
  line-height:.88;
  letter-spacing:-.06em;
  font-weight:500;
  color:#e8c986;
}

.cb-collections-teaser-ctas{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:26px;
}

.cb-collections-teaser-ctas a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:14px 22px;
  border-radius:999px;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  border:1px solid rgba(255,255,255,.14);
  color:#f7efe4;
  background:rgba(255,255,255,.06);
}

.cb-collections-teaser-ctas a:first-child{
  background:linear-gradient(135deg,#e8c986,#c89f56);
  border-color:transparent;
  color:#18110d;
  box-shadow:0 18px 44px rgba(151,103,38,.20);
}

.cb-collections-teaser-card{
  border-radius:34px;
  padding:clamp(22px,3vw,34px);
  background:linear-gradient(180deg,rgba(255,255,255,.105),rgba(255,255,255,.055));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 30px 90px rgba(0,0,0,.28);
}

.cb-collections-teaser-card-label{
  display:block;
  margin-bottom:18px;
  font-family:var(--cb-sans);
  font-size:11px;
  line-height:1.3;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-collections-teaser-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.cb-collections-teaser-list article{
  min-height:142px;
  border-radius:24px;
  padding:20px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.09);
}

.cb-collections-teaser-list strong{
  display:block;
  margin-bottom:9px;
  font-family:var(--cb-serif);
  font-size:clamp(24px,2vw,34px);
  line-height:1;
  letter-spacing:-.045em;
  font-weight:500;
  color:#f7efe4;
}

.cb-collections-teaser-list span{
  display:block;
  font-size:14px;
  line-height:1.5;
  color:rgba(247,239,228,.68);
}

.cb-collections-teaser-note{
  margin:18px 0 0;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.10);
  font-size:14px;
  line-height:1.55;
  color:rgba(247,239,228,.58);
}

/* Tablette */
@media(max-width:980px){
  .cb-collections-teaser-shell{
    grid-template-columns:1fr;
  }

  .cb-collections-teaser-copy{
    max-width:none;
  }
}

/* Mobile */
@media(max-width:760px){
  .cb-collections-teaser-section{
    padding:54px 0 58px;
  }

  .cb-collections-teaser-shell{
    width:min(100% - 32px,720px);
    gap:24px;
  }

  .cb-collections-teaser-copy h2{
    font-size:clamp(36px,11vw,56px);
    line-height:.96;
  }

  .cb-collections-teaser-copy p{
    font-size:16px;
    line-height:1.55;
  }

  .cb-collections-teaser-price{
    width:100%;
    box-sizing:border-box;
    justify-content:space-between;
    align-items:center;
    margin-top:22px;
    padding:16px 18px;
    border-radius:22px;
  }

  .cb-collections-teaser-price strong{
    font-size:44px;
  }

  .cb-collections-teaser-ctas{
    flex-direction:column;
  }

  .cb-collections-teaser-ctas a{
    width:100%;
  }

  .cb-collections-teaser-card{
    border-radius:24px;
    padding:18px;
  }

  .cb-collections-teaser-list{
    grid-template-columns:1fr;
    gap:10px;
  }

  .cb-collections-teaser-list article{
    min-height:auto;
    border-radius:18px;
    padding:17px;
  }

  .cb-collections-teaser-list strong{
    font-size:25px;
  }
}

/* =========================================================
   V2.29 — Immersion plus explicite + barre mobile claire
   ========================================================= */

.cb-immersion-explainer-section{
  background:
    radial-gradient(circle at 85% 12%, rgba(232,201,134,.18), transparent 34%),
    linear-gradient(180deg,#120f0d 0%,#19130f 100%);
  color:#f7efe4;
  padding:clamp(58px,7vw,104px) 0;
  position:relative;
  overflow:hidden;
}

.cb-immersion-explainer-shell{
  width:min(100% - 40px,1280px);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,.82fr);
  gap:clamp(28px,4vw,64px);
  align-items:center;
}

.cb-immersion-explainer-copy{
  max-width:780px;
}

.cb-immersion-explainer-kicker{
  margin:0 0 14px;
  font-family:var(--cb-sans);
  font-size:12px;
  line-height:1.4;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-immersion-explainer-copy h2{
  margin:0 0 18px;
  font-family:var(--cb-serif);
  font-size:clamp(44px,6vw,88px);
  line-height:.92;
  letter-spacing:-.06em;
  font-weight:500;
  color:#f7efe4;
}

.cb-immersion-explainer-copy p{
  margin:0;
  max-width:700px;
  font-size:clamp(17px,1.35vw,21px);
  line-height:1.65;
  color:rgba(247,239,228,.72);
}

.cb-immersion-explainer-ctas{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}

.cb-immersion-explainer-ctas a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:14px 22px;
  border-radius:999px;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  border:1px solid rgba(255,255,255,.14);
  color:#f7efe4;
  background:rgba(255,255,255,.06);
}

.cb-immersion-explainer-ctas a:first-child{
  background:linear-gradient(135deg,#e8c986,#c89f56);
  border-color:transparent;
  color:#18110d;
  box-shadow:0 18px 44px rgba(151,103,38,.22);
}

.cb-immersion-explainer-panel{
  border-radius:34px;
  padding:clamp(22px,3vw,34px);
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 30px 90px rgba(0,0,0,.28);
}

.cb-immersion-explainer-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:24px;
}

.cb-immersion-explainer-chips span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(232,201,134,.12);
  border:1px solid rgba(232,201,134,.18);
  color:#e8c986;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.cb-immersion-scenes{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}

.cb-immersion-scenes li{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px 18px;
  border-radius:20px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  font-family:var(--cb-serif);
  font-size:clamp(24px,2.1vw,34px);
  line-height:1;
  letter-spacing:-.04em;
  color:#f7efe4;
}

.cb-immersion-scenes span{
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em;
  color:rgba(232,201,134,.84);
}

/* Petit focus visuel au lancement */
.cb-immersion-soft-focus{
  animation:cbImmersionSoftFocus 1.6s ease both;
}

@keyframes cbImmersionSoftFocus{
  0%{box-shadow:0 0 0 rgba(232,201,134,0);}
  35%{box-shadow:0 0 0 8px rgba(232,201,134,.16);}
  100%{box-shadow:0 0 0 rgba(232,201,134,0);}
}

/* Barre mobile app-like */
.cb-mobile-quickbar{
  display:none;
}

@media(max-width:760px){
  body{
    padding-bottom:76px!important;
  }

  .cb-immersion-explainer-section{
    padding:52px 0 56px;
  }

  .cb-immersion-explainer-shell{
    width:min(100% - 32px,720px);
    grid-template-columns:1fr;
    gap:24px;
  }

  .cb-immersion-explainer-copy h2{
    font-size:clamp(38px,12vw,58px);
    line-height:.94;
  }

  .cb-immersion-explainer-copy p{
    font-size:16px;
    line-height:1.55;
  }

  .cb-immersion-explainer-ctas{
    flex-direction:column;
  }

  .cb-immersion-explainer-ctas a{
    width:100%;
  }

  .cb-immersion-explainer-panel{
    border-radius:24px;
    padding:18px;
  }

  .cb-immersion-scenes li{
    border-radius:16px;
    padding:14px 15px;
    font-size:25px;
  }

  .cb-mobile-quickbar{
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:9998;
    display:grid;
    grid-template-columns:1fr 1fr 1.15fr;
    gap:8px;
    padding:8px;
    border-radius:999px;
    background:rgba(18,15,13,.84);
    border:1px solid rgba(255,255,255,.12);
    box-shadow:0 18px 52px rgba(0,0,0,.28);
    backdrop-filter:blur(18px);
    transform:translateY(120%);
    opacity:0;
    pointer-events:none;
    transition:transform .28s ease, opacity .28s ease;
  }

  .cb-mobile-quickbar.is-visible{
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
  }

  .cb-mobile-quickbar a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    border-radius:999px;
    text-decoration:none;
    color:#f7efe4;
    font-family:var(--cb-sans);
    font-size:11px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
    background:rgba(255,255,255,.07);
  }

  .cb-mobile-quickbar a.cb-mobile-quickbar-primary{
    background:linear-gradient(135deg,#e8c986,#c89f56);
    color:#18110d;
  }
}

/* =========================================================
   V2.31 — Nettoyage avis doublon + préparation galerie mobile
   ========================================================= */

/* Ancien bloc avis supprimé/masqué */
[data-cb-old-review-hidden-v31="1"]{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* Sécurité : ancien dock mobile */
.cb-legacy-mobile-nav-hidden,
[data-cb-legacy-mobile-nav-hidden="1"]{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

@media(max-width:760px){

  /* Nouvelle barre mobile uniquement */
  .cb-mobile-quickbar{
    z-index:2147483000!important;
  }

  /* Filet de sécurité contre les anciens docks */
  .cb-mobile-bottom-nav:not(.cb-mobile-quickbar),
  .cb-mobile-appbar:not(.cb-mobile-quickbar),
  .cb-mobile-sticky-nav:not(.cb-mobile-quickbar),
  .cb-sticky-mobile-nav:not(.cb-mobile-quickbar),
  .cb-bottom-appbar:not(.cb-mobile-quickbar),
  .cb-floating-mobile-nav:not(.cb-mobile-quickbar){
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }

  /*
    Galerie mobile : première remise au propre.
    On évite que les boutons débordent ou se superposent.
    La vraie refonte complète des contrôles galerie pourra venir ensuite.
  */
  .cb-mobile-gallery-controls-v31{
    scroll-margin-top:96px!important;
  }

  .cb-mobile-gallery-controls-v31 button,
  .cb-mobile-gallery-controls-v31 [role="button"],
  .cb-mobile-gallery-controls-v31 a[class*="button"],
  .cb-mobile-gallery-controls-v31 a[class*="control"]{
    touch-action:manipulation;
  }

  .cb-mobile-gallery-controls-v31 [class*="control"],
  .cb-mobile-gallery-controls-v31 [class*="toolbar"],
  .cb-mobile-gallery-controls-v31 [class*="actions"],
  .cb-mobile-gallery-controls-v31 [class*="nav"]{
    max-width:100%!important;
  }

  #portfolio-immersif.cb-mobile-gallery-controls-v31,
  #portfolio-immersif-mobile-grid.cb-mobile-gallery-controls-v31{
    overflow:hidden!important;
  }

  #portfolio-immersif.cb-mobile-gallery-controls-v31 img,
  #portfolio-immersif-mobile-grid.cb-mobile-gallery-controls-v31 img{
    max-width:100%!important;
  }
}

/* =========================================================
   V2.32 — Vraie immersion app : slide par slide
   ========================================================= */

html.cb-immersion-app-open,
body.cb-immersion-app-open{
  overflow:hidden!important;
}

body.cb-immersion-app-open .cb-mobile-quickbar{
  opacity:0!important;
  transform:translateY(130%)!important;
  pointer-events:none!important;
}

.cb-immersion-app{
  position:fixed;
  inset:0;
  z-index:2147483600;
  background:
    radial-gradient(circle at 80% 8%, rgba(232,201,134,.16), transparent 30%),
    linear-gradient(180deg,#120f0d 0%,#050403 100%);
  color:#f7efe4;
  display:block;
}

.cb-immersion-app[aria-hidden="true"]{
  display:none!important;
}

.cb-immersion-app-inner{
  min-height:100%;
  height:100%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  padding:clamp(14px,2vw,24px);
  box-sizing:border-box;
}

.cb-immersion-app-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:58px;
  padding:10px 12px 10px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(18px);
}

.cb-immersion-app-header span{
  display:block;
  margin-bottom:3px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-immersion-app-header strong{
  display:block;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
  color:rgba(247,239,228,.78);
}

.cb-immersion-app-header button,
.cb-immersion-app-footer button,
.cb-immersion-app-footer a,
.cb-immersion-app-actions button,
.cb-immersion-app-actions a{
  appearance:none;
  border:0;
  cursor:pointer;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.cb-immersion-app-header button{
  min-height:44px;
  padding:0 18px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#f7efe4;
  border:1px solid rgba(255,255,255,.12);
}

.cb-immersion-app-stage{
  position:relative;
  min-height:0;
  display:grid;
  align-items:center;
  padding:clamp(18px,3vw,36px) 0;
}

.cb-immersion-app-slide{
  display:none;
  min-height:0;
  height:100%;
  grid-template-columns:minmax(0,.98fr) minmax(360px,.72fr);
  gap:clamp(18px,3vw,42px);
  align-items:center;
  width:min(100%,1480px);
  margin:0 auto;
}

.cb-immersion-app-slide.is-active{
  display:grid;
  animation:cbImmersionSlideIn .34s ease both;
}

@keyframes cbImmersionSlideIn{
  from{
    opacity:0;
    transform:translateY(12px) scale(.992);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

.cb-immersion-app-visual{
  min-height:min(68vh,760px);
  border-radius:42px;
  background:
    linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.42)),
    radial-gradient(circle at 45% 35%,rgba(232,201,134,.18),rgba(255,255,255,.04) 38%,rgba(0,0,0,.12) 100%);
  background-size:cover;
  background-position:center;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 32px 120px rgba(0,0,0,.42);
  overflow:hidden;
}

.cb-immersion-app-copy{
  align-self:center;
  border-radius:34px;
  padding:clamp(24px,3vw,42px);
  background:rgba(10,8,6,.72);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 28px 100px rgba(0,0,0,.34);
  backdrop-filter:blur(18px);
}

.cb-immersion-app-copy p{
  margin:0 0 14px;
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-immersion-app-copy h2{
  margin:0 0 18px;
  font-family:var(--cb-serif);
  font-size:clamp(44px,5vw,88px);
  line-height:.92;
  letter-spacing:-.06em;
  font-weight:500;
  color:#f7efe4;
}

.cb-immersion-app-copy span{
  display:block;
  margin:0;
  font-size:clamp(17px,1.45vw,22px);
  line-height:1.56;
  color:rgba(247,239,228,.74);
}

.cb-immersion-app-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:26px;
}

.cb-immersion-app-actions button,
.cb-immersion-app-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:13px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.09);
  color:#f7efe4;
  border:1px solid rgba(255,255,255,.12);
}

.cb-immersion-app-actions button:first-child,
.cb-immersion-app-actions a.cb-immersion-app-primary{
  background:linear-gradient(135deg,#e8c986,#c89f56);
  color:#18110d;
  border-color:transparent;
}

.cb-immersion-app-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:60px;
}

.cb-immersion-app-footer button,
.cb-immersion-app-footer a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#f7efe4;
  border:1px solid rgba(255,255,255,.12);
}

.cb-immersion-app-footer button:nth-child(2){
  background:rgba(232,201,134,.16);
  color:#e8c986;
  border-color:rgba(232,201,134,.22);
}

.cb-legacy-mobile-nav-hidden,
[data-cb-legacy-mobile-nav-hidden="1"]{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

@media(max-width:900px){
  .cb-immersion-app-slide{
    grid-template-columns:1fr;
    align-content:center;
  }

  .cb-immersion-app-visual{
    min-height:36vh;
  }
}

@media(max-width:760px){
  .cb-immersion-app-inner{
    padding:10px;
    grid-template-rows:auto minmax(0,1fr) auto;
  }

  .cb-immersion-app-header{
    min-height:52px;
    border-radius:26px;
    padding:8px 8px 8px 14px;
  }

  .cb-immersion-app-header span{
    font-size:9px;
    letter-spacing:.15em;
  }

  .cb-immersion-app-header strong{
    font-size:11px;
  }

  .cb-immersion-app-header button{
    min-height:40px;
    padding:0 14px;
  }

  .cb-immersion-app-stage{
    padding:10px 0;
    align-items:stretch;
  }

  .cb-immersion-app-slide{
    height:100%;
    gap:10px;
    align-content:center;
  }

  .cb-immersion-app-visual{
    min-height:34vh;
    max-height:40vh;
    border-radius:26px;
  }

  .cb-immersion-app-copy{
    border-radius:26px;
    padding:22px;
  }

  .cb-immersion-app-copy h2{
    font-size:clamp(38px,12vw,58px);
    line-height:.94;
  }

  .cb-immersion-app-copy span{
    font-size:16px;
    line-height:1.52;
  }

  .cb-immersion-app-actions{
    flex-direction:column;
    margin-top:20px;
  }

  .cb-immersion-app-actions button,
  .cb-immersion-app-actions a{
    width:100%;
  }

  .cb-immersion-app-footer{
    min-height:54px;
    gap:8px;
  }

  .cb-immersion-app-footer button,
  .cb-immersion-app-footer a{
    flex:1;
    min-height:44px;
    padding:0 8px;
    font-size:10px;
    letter-spacing:.1em;
  }
}

/* =========================================================
   V2.33 — Immersion narrative : émotion + prestations
   ========================================================= */

/* L’encart immersion devient plus clair */
.cb-immersion-explainer-copy h2{
  max-width:900px!important;
}

.cb-immersion-explainer-copy p{
  max-width:760px!important;
}

.cb-immersion-scenes{
  gap:8px!important;
}

.cb-immersion-scenes li{
  font-size:clamp(22px,1.8vw,30px)!important;
}

/* App plein écran */
html.cb-immersion-app-open,
body.cb-immersion-app-open{
  overflow:hidden!important;
}

body.cb-immersion-app-open .cb-mobile-quickbar{
  opacity:0!important;
  transform:translateY(130%)!important;
  pointer-events:none!important;
}

.cb-immersion-app{
  position:fixed;
  inset:0;
  z-index:2147483600;
  background:
    radial-gradient(circle at 78% 6%, rgba(232,201,134,.16), transparent 28%),
    linear-gradient(180deg,#120f0d 0%,#050403 100%);
  color:#f7efe4;
  display:block;
}

.cb-immersion-app[aria-hidden="true"]{
  display:none!important;
}

.cb-immersion-app-inner{
  min-height:100%;
  height:100%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  padding:clamp(14px,2vw,24px);
  box-sizing:border-box;
}

.cb-immersion-app-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:58px;
  padding:10px 12px 10px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(18px);
}

.cb-immersion-app-header span{
  display:block;
  margin-bottom:3px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-immersion-app-header strong{
  display:block;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
  color:rgba(247,239,228,.78);
}

.cb-immersion-app-header button,
.cb-immersion-app-footer button,
.cb-immersion-app-footer a,
.cb-immersion-app-actions button,
.cb-immersion-app-actions a{
  appearance:none;
  border:0;
  cursor:pointer;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.cb-immersion-app-header button{
  min-height:44px;
  padding:0 18px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#f7efe4;
  border:1px solid rgba(255,255,255,.12);
}

.cb-immersion-app-stage{
  position:relative;
  min-height:0;
  display:grid;
  align-items:center;
  padding:clamp(18px,3vw,36px) 0;
}

.cb-immersion-app-slide{
  display:none;
  min-height:0;
  height:100%;
  grid-template-columns:minmax(0,1fr) minmax(390px,.72fr);
  gap:clamp(20px,3vw,46px);
  align-items:center;
  width:min(100%,1500px);
  margin:0 auto;
}

.cb-immersion-app-slide.is-active{
  display:grid;
  animation:cbImmersionSlideInV33 .34s ease both;
}

@keyframes cbImmersionSlideInV33{
  from{
    opacity:0;
    transform:translateY(12px) scale(.992);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

.cb-immersion-app-visual{
  min-height:min(68vh,760px);
  border-radius:42px;
  background:
    linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.42)),
    radial-gradient(circle at 45% 35%,rgba(232,201,134,.18),rgba(255,255,255,.04) 38%,rgba(0,0,0,.12) 100%);
  background-size:cover;
  background-position:center;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 32px 120px rgba(0,0,0,.42);
  overflow:hidden;
}

.cb-immersion-app-copy{
  align-self:center;
  border-radius:34px;
  padding:clamp(24px,3vw,42px);
  background:rgba(10,8,6,.78);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 28px 100px rgba(0,0,0,.34);
  backdrop-filter:blur(18px);
  max-height:calc(100vh - 190px);
  overflow:auto;
}

.cb-immersion-app-copy p{
  margin:0 0 14px;
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-immersion-app-copy h2{
  margin:0 0 18px;
  font-family:var(--cb-serif);
  font-size:clamp(38px,4.3vw,78px);
  line-height:.94;
  letter-spacing:-.058em;
  font-weight:500;
  color:#f7efe4;
}

.cb-immersion-app-copy > span{
  display:block;
  margin:0;
  font-size:clamp(16px,1.25vw,21px);
  line-height:1.56;
  color:rgba(247,239,228,.74);
}

.cb-immersion-app-tags,
.cb-immersion-app-offer-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:22px;
}

.cb-immersion-app-tags em,
.cb-immersion-app-offer-grid em{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(232,201,134,.12);
  border:1px solid rgba(232,201,134,.18);
  color:#e8c986;
  font-family:var(--cb-sans);
  font-size:10px;
  font-style:normal;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.cb-immersion-app-offer-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.cb-immersion-app-offer-grid em{
  justify-content:center;
  border-radius:18px;
  min-height:42px;
}

.cb-immersion-app-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:26px;
}

.cb-immersion-app-actions button,
.cb-immersion-app-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:13px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.09);
  color:#f7efe4;
  border:1px solid rgba(255,255,255,.12);
}

.cb-immersion-app-actions button:first-child,
.cb-immersion-app-actions a.cb-immersion-app-primary{
  background:linear-gradient(135deg,#e8c986,#c89f56);
  color:#18110d;
  border-color:transparent;
}

.cb-immersion-app-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:60px;
}

.cb-immersion-app-footer button,
.cb-immersion-app-footer a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#f7efe4;
  border:1px solid rgba(255,255,255,.12);
}

.cb-immersion-app-footer button:nth-child(2){
  background:rgba(232,201,134,.16);
  color:#e8c986;
  border-color:rgba(232,201,134,.22);
}

/* Ancien dock mobile masqué si encore présent */
.cb-legacy-mobile-nav-hidden,
[data-cb-legacy-mobile-nav-hidden="1"]{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

/* Desktop réduit */
@media(max-width:980px){
  .cb-immersion-app-slide{
    grid-template-columns:1fr;
    align-content:center;
  }

  .cb-immersion-app-visual{
    min-height:36vh;
  }
}

/* Mobile */
@media(max-width:760px){
  .cb-immersion-app-inner{
    padding:10px;
    grid-template-rows:auto minmax(0,1fr) auto;
  }

  .cb-immersion-app-header{
    min-height:52px;
    border-radius:26px;
    padding:8px 8px 8px 14px;
  }

  .cb-immersion-app-header span{
    font-size:9px;
    letter-spacing:.15em;
  }

  .cb-immersion-app-header strong{
    font-size:11px;
  }

  .cb-immersion-app-header button{
    min-height:40px;
    padding:0 14px;
  }

  .cb-immersion-app-stage{
    padding:10px 0;
    align-items:stretch;
  }

  .cb-immersion-app-slide{
    height:100%;
    gap:10px;
    align-content:center;
  }

  .cb-immersion-app-visual{
    min-height:31vh;
    max-height:36vh;
    border-radius:24px;
  }

  .cb-immersion-app-copy{
    border-radius:24px;
    padding:20px;
    max-height:calc(100vh - 420px);
  }

  .cb-immersion-app-copy h2{
    font-size:clamp(34px,10.5vw,52px);
    line-height:.96;
  }

  .cb-immersion-app-copy > span{
    font-size:15.5px;
    line-height:1.5;
  }

  .cb-immersion-app-tags,
  .cb-immersion-app-offer-grid{
    margin-top:16px;
  }

  .cb-immersion-app-offer-grid{
    grid-template-columns:1fr 1fr;
    gap:7px;
  }

  .cb-immersion-app-offer-grid em,
  .cb-immersion-app-tags em{
    font-size:9px;
    letter-spacing:.09em;
    min-height:32px;
    padding:7px 9px;
  }

  .cb-immersion-app-actions{
    flex-direction:column;
    margin-top:18px;
  }

  .cb-immersion-app-actions button,
  .cb-immersion-app-actions a{
    width:100%;
    min-height:44px;
  }

  .cb-immersion-app-footer{
    min-height:54px;
    gap:8px;
  }

  .cb-immersion-app-footer button,
  .cb-immersion-app-footer a{
    flex:1;
    min-height:44px;
    padding:0 8px;
    font-size:10px;
    letter-spacing:.1em;
  }
}

/* =========================================================
   V2.34 — Mon regard : pourquoi me confier votre journée
   ========================================================= */

.cb-mon-regard-section .cb-immersion-explainer-kicker::after{
  content:"";
}

.cb-mon-regard-section .cb-immersion-explainer-copy h2{
  max-width:880px!important;
}

.cb-mon-regard-section .cb-immersion-explainer-copy p{
  max-width:760px!important;
}

.cb-mon-regard-section .cb-immersion-scenes{
  gap:8px!important;
}

.cb-mon-regard-section .cb-immersion-scenes li{
  font-size:clamp(21px,1.75vw,30px)!important;
}

.cb-mon-regard-section .cb-immersion-explainer-ctas a:first-child{
  min-width:260px;
}

/* App plein écran : vocabulaire Mon regard */
html.cb-immersion-app-open,
body.cb-immersion-app-open{
  overflow:hidden!important;
}

body.cb-immersion-app-open .cb-mobile-quickbar{
  opacity:0!important;
  transform:translateY(130%)!important;
  pointer-events:none!important;
}

.cb-mon-regard-app{
  position:fixed;
  inset:0;
  z-index:2147483600;
  background:
    radial-gradient(circle at 78% 6%, rgba(232,201,134,.15), transparent 28%),
    linear-gradient(180deg,#120f0d 0%,#050403 100%);
  color:#f7efe4;
  display:block;
}

.cb-mon-regard-app[aria-hidden="true"]{
  display:none!important;
}

.cb-mon-regard-app .cb-immersion-app-inner{
  min-height:100%;
  height:100%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  padding:clamp(14px,2vw,24px);
  box-sizing:border-box;
}

.cb-mon-regard-app .cb-immersion-app-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:58px;
  padding:10px 12px 10px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(18px);
}

.cb-mon-regard-app .cb-immersion-app-header span{
  display:block;
  margin-bottom:3px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-mon-regard-app .cb-immersion-app-header strong{
  display:block;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
  color:rgba(247,239,228,.78);
}

.cb-mon-regard-app .cb-immersion-app-header button,
.cb-mon-regard-app .cb-immersion-app-footer button,
.cb-mon-regard-app .cb-immersion-app-footer a,
.cb-mon-regard-app .cb-immersion-app-actions button,
.cb-mon-regard-app .cb-immersion-app-actions a{
  appearance:none;
  border:0;
  cursor:pointer;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.cb-mon-regard-app .cb-immersion-app-header button{
  min-height:44px;
  padding:0 18px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#f7efe4;
  border:1px solid rgba(255,255,255,.12);
}

.cb-mon-regard-app .cb-immersion-app-stage{
  position:relative;
  min-height:0;
  display:grid;
  align-items:center;
  padding:clamp(18px,3vw,36px) 0;
}

.cb-mon-regard-app .cb-immersion-app-slide{
  display:none;
  min-height:0;
  height:100%;
  grid-template-columns:minmax(0,1fr) minmax(390px,.72fr);
  gap:clamp(20px,3vw,46px);
  align-items:center;
  width:min(100%,1500px);
  margin:0 auto;
}

.cb-mon-regard-app .cb-immersion-app-slide.is-active{
  display:grid;
  animation:cbMonRegardSlideInV34 .34s ease both;
}

@keyframes cbMonRegardSlideInV34{
  from{
    opacity:0;
    transform:translateY(12px) scale(.992);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

.cb-mon-regard-app .cb-immersion-app-visual{
  min-height:min(68vh,760px);
  border-radius:42px;
  background:
    linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.42)),
    radial-gradient(circle at 45% 35%,rgba(232,201,134,.18),rgba(255,255,255,.04) 38%,rgba(0,0,0,.12) 100%);
  background-size:cover;
  background-position:center;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 32px 120px rgba(0,0,0,.42);
  overflow:hidden;
}

.cb-mon-regard-app .cb-immersion-app-copy{
  align-self:center;
  border-radius:34px;
  padding:clamp(24px,3vw,42px);
  background:rgba(10,8,6,.78);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 28px 100px rgba(0,0,0,.34);
  backdrop-filter:blur(18px);
  max-height:calc(100vh - 190px);
  overflow:auto;
}

.cb-mon-regard-app .cb-immersion-app-copy p{
  margin:0 0 14px;
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-mon-regard-app .cb-immersion-app-copy h2{
  margin:0 0 18px;
  font-family:var(--cb-serif);
  font-size:clamp(38px,4.3vw,78px);
  line-height:.94;
  letter-spacing:-.058em;
  font-weight:500;
  color:#f7efe4;
}

.cb-mon-regard-app .cb-immersion-app-copy > span{
  display:block;
  margin:0;
  font-size:clamp(16px,1.25vw,21px);
  line-height:1.56;
  color:rgba(247,239,228,.74);
}

.cb-mon-regard-app .cb-immersion-app-tags,
.cb-mon-regard-app .cb-immersion-app-offer-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:22px;
}

.cb-mon-regard-app .cb-immersion-app-tags em,
.cb-mon-regard-app .cb-immersion-app-offer-grid em{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(232,201,134,.12);
  border:1px solid rgba(232,201,134,.18);
  color:#e8c986;
  font-family:var(--cb-sans);
  font-size:10px;
  font-style:normal;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.cb-mon-regard-app .cb-immersion-app-offer-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.cb-mon-regard-app .cb-immersion-app-offer-grid em{
  justify-content:center;
  border-radius:18px;
  min-height:42px;
}

.cb-mon-regard-app .cb-immersion-app-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:26px;
}

.cb-mon-regard-app .cb-immersion-app-actions button,
.cb-mon-regard-app .cb-immersion-app-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:13px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.09);
  color:#f7efe4;
  border:1px solid rgba(255,255,255,.12);
}

.cb-mon-regard-app .cb-immersion-app-actions button:first-child,
.cb-mon-regard-app .cb-immersion-app-actions a.cb-immersion-app-primary{
  background:linear-gradient(135deg,#e8c986,#c89f56);
  color:#18110d;
  border-color:transparent;
}

.cb-mon-regard-app .cb-immersion-app-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:60px;
}

.cb-mon-regard-app .cb-immersion-app-footer button,
.cb-mon-regard-app .cb-immersion-app-footer a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#f7efe4;
  border:1px solid rgba(255,255,255,.12);
}

.cb-mon-regard-app .cb-immersion-app-footer button:nth-child(2){
  background:rgba(232,201,134,.16);
  color:#e8c986;
  border-color:rgba(232,201,134,.22);
}

.cb-legacy-mobile-nav-hidden,
[data-cb-legacy-mobile-nav-hidden="1"]{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

@media(max-width:980px){
  .cb-mon-regard-app .cb-immersion-app-slide{
    grid-template-columns:1fr;
    align-content:center;
  }

  .cb-mon-regard-app .cb-immersion-app-visual{
    min-height:36vh;
  }
}

@media(max-width:760px){
  .cb-mobile-quickbar{
    grid-template-columns:1fr 1.25fr 1.05fr!important;
  }

  .cb-mobile-quickbar a{
    letter-spacing:.09em!important;
  }

  .cb-mon-regard-app .cb-immersion-app-inner{
    padding:10px;
    grid-template-rows:auto minmax(0,1fr) auto;
  }

  .cb-mon-regard-app .cb-immersion-app-header{
    min-height:52px;
    border-radius:26px;
    padding:8px 8px 8px 14px;
  }

  .cb-mon-regard-app .cb-immersion-app-header span{
    font-size:9px;
    letter-spacing:.15em;
  }

  .cb-mon-regard-app .cb-immersion-app-header strong{
    font-size:11px;
  }

  .cb-mon-regard-app .cb-immersion-app-header button{
    min-height:40px;
    padding:0 14px;
  }

  .cb-mon-regard-app .cb-immersion-app-stage{
    padding:10px 0;
    align-items:stretch;
  }

  .cb-mon-regard-app .cb-immersion-app-slide{
    height:100%;
    gap:10px;
    align-content:center;
  }

  .cb-mon-regard-app .cb-immersion-app-visual{
    min-height:31vh;
    max-height:36vh;
    border-radius:24px;
  }

  .cb-mon-regard-app .cb-immersion-app-copy{
    border-radius:24px;
    padding:20px;
    max-height:calc(100vh - 420px);
  }

  .cb-mon-regard-app .cb-immersion-app-copy h2{
    font-size:clamp(34px,10.5vw,52px);
    line-height:.96;
  }

  .cb-mon-regard-app .cb-immersion-app-copy > span{
    font-size:15.5px;
    line-height:1.5;
  }

  .cb-mon-regard-app .cb-immersion-app-tags,
  .cb-mon-regard-app .cb-immersion-app-offer-grid{
    margin-top:16px;
  }

  .cb-mon-regard-app .cb-immersion-app-offer-grid{
    grid-template-columns:1fr 1fr;
    gap:7px;
  }

  .cb-mon-regard-app .cb-immersion-app-offer-grid em,
  .cb-mon-regard-app .cb-immersion-app-tags em{
    font-size:9px;
    letter-spacing:.09em;
    min-height:32px;
    padding:7px 9px;
  }

  .cb-mon-regard-app .cb-immersion-app-actions{
    flex-direction:column;
    margin-top:18px;
  }

  .cb-mon-regard-app .cb-immersion-app-actions button,
  .cb-mon-regard-app .cb-immersion-app-actions a{
    width:100%;
    min-height:44px;
  }

  .cb-mon-regard-app .cb-immersion-app-footer{
    min-height:54px;
    gap:8px;
  }

  .cb-mon-regard-app .cb-immersion-app-footer button,
  .cb-mon-regard-app .cb-immersion-app-footer a{
    flex:1;
    min-height:44px;
    padding:0 8px;
    font-size:10px;
    letter-spacing:.1em;
  }
}

/* =========================================================
   V2.35 — Mon regard : flux corrigé, pas de double Continuer
   ========================================================= */

.cb-mon-regard-section .cb-immersion-explainer-copy h2{
  max-width:880px!important;
}

.cb-mon-regard-section .cb-immersion-explainer-copy p{
  max-width:760px!important;
}

.cb-mon-regard-section .cb-immersion-scenes{
  gap:8px!important;
}

.cb-mon-regard-section .cb-immersion-scenes li{
  font-size:clamp(21px,1.75vw,30px)!important;
}

/* App plein écran */
html.cb-immersion-app-open,
body.cb-immersion-app-open{
  overflow:hidden!important;
}

body.cb-immersion-app-open .cb-mobile-quickbar{
  opacity:0!important;
  transform:translateY(130%)!important;
  pointer-events:none!important;
}

.cb-mon-regard-app{
  position:fixed;
  inset:0;
  z-index:2147483600;
  background:
    radial-gradient(circle at 78% 6%, rgba(232,201,134,.15), transparent 28%),
    linear-gradient(180deg,#120f0d 0%,#050403 100%);
  color:#f7efe4;
  display:block;
}

.cb-mon-regard-app[aria-hidden="true"]{
  display:none!important;
}

.cb-mon-regard-app .cb-immersion-app-inner{
  min-height:100%;
  height:100%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  padding:clamp(14px,2vw,24px);
  box-sizing:border-box;
}

.cb-mon-regard-app .cb-immersion-app-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:58px;
  padding:10px 12px 10px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(18px);
}

.cb-mon-regard-app .cb-immersion-app-header span{
  display:block;
  margin-bottom:3px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-mon-regard-app .cb-immersion-app-header strong{
  display:block;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
  color:rgba(247,239,228,.78);
}

.cb-mon-regard-app .cb-immersion-app-header button,
.cb-mon-regard-app .cb-immersion-app-footer button,
.cb-mon-regard-app .cb-immersion-app-footer a,
.cb-mon-regard-app .cb-immersion-app-actions button,
.cb-mon-regard-app .cb-immersion-app-actions a{
  appearance:none;
  border:0;
  cursor:pointer;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.cb-mon-regard-app .cb-immersion-app-header button{
  min-height:44px;
  padding:0 18px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#f7efe4;
  border:1px solid rgba(255,255,255,.12);
}

.cb-mon-regard-app .cb-immersion-app-stage{
  position:relative;
  min-height:0;
  display:grid;
  align-items:center;
  padding:clamp(18px,3vw,36px) 0;
}

.cb-mon-regard-app .cb-immersion-app-slide{
  display:none;
  min-height:0;
  height:100%;
  grid-template-columns:minmax(0,1fr) minmax(390px,.72fr);
  gap:clamp(20px,3vw,46px);
  align-items:center;
  width:min(100%,1500px);
  margin:0 auto;
}

.cb-mon-regard-app .cb-immersion-app-slide.is-active{
  display:grid;
  animation:cbMonRegardSlideInV35 .34s ease both;
}

@keyframes cbMonRegardSlideInV35{
  from{
    opacity:0;
    transform:translateY(12px) scale(.992);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

.cb-mon-regard-app .cb-immersion-app-visual{
  min-height:min(68vh,760px);
  border-radius:42px;
  background:
    linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.42)),
    radial-gradient(circle at 45% 35%,rgba(232,201,134,.18),rgba(255,255,255,.04) 38%,rgba(0,0,0,.12) 100%);
  background-size:cover;
  background-position:center;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 32px 120px rgba(0,0,0,.42);
  overflow:hidden;
}

.cb-mon-regard-app .cb-immersion-app-copy{
  align-self:center;
  border-radius:34px;
  padding:clamp(24px,3vw,42px);
  background:rgba(10,8,6,.78);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 28px 100px rgba(0,0,0,.34);
  backdrop-filter:blur(18px);
  max-height:calc(100vh - 190px);
  overflow:auto;
}

.cb-mon-regard-app .cb-immersion-app-copy p{
  margin:0 0 14px;
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-mon-regard-app .cb-immersion-app-copy h2{
  margin:0 0 18px;
  font-family:var(--cb-serif);
  font-size:clamp(38px,4.3vw,78px);
  line-height:.94;
  letter-spacing:-.058em;
  font-weight:500;
  color:#f7efe4;
}

.cb-mon-regard-app .cb-immersion-app-copy > span{
  display:block;
  margin:0;
  font-size:clamp(16px,1.25vw,21px);
  line-height:1.56;
  color:rgba(247,239,228,.74);
}

.cb-mon-regard-app .cb-immersion-app-tags,
.cb-mon-regard-app .cb-immersion-app-offer-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:22px;
}

.cb-mon-regard-app .cb-immersion-app-tags em,
.cb-mon-regard-app .cb-immersion-app-offer-grid em{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(232,201,134,.12);
  border:1px solid rgba(232,201,134,.18);
  color:#e8c986;
  font-family:var(--cb-sans);
  font-size:10px;
  font-style:normal;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.cb-mon-regard-app .cb-immersion-app-offer-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.cb-mon-regard-app .cb-immersion-app-offer-grid em{
  justify-content:center;
  border-radius:18px;
  min-height:42px;
}

.cb-mon-regard-app .cb-immersion-app-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:26px;
}

.cb-mon-regard-app .cb-immersion-app-actions button,
.cb-mon-regard-app .cb-immersion-app-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:13px 18px;
  border-radius:999px;
  background:rgba(255,255,255,.09);
  color:#f7efe4;
  border:1px solid rgba(255,255,255,.12);
}

.cb-mon-regard-app .cb-immersion-app-actions a.cb-immersion-app-primary{
  background:linear-gradient(135deg,#e8c986,#c89f56);
  color:#18110d;
  border-color:transparent;
}

.cb-mon-regard-app .cb-immersion-app-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:60px;
}

.cb-mon-regard-app .cb-immersion-app-footer button,
.cb-mon-regard-app .cb-immersion-app-footer a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#f7efe4;
  border:1px solid rgba(255,255,255,.12);
}

.cb-mon-regard-app .cb-immersion-app-footer [data-cb-immersion-next-main]{
  background:linear-gradient(135deg,#e8c986,#c89f56);
  color:#18110d;
  border-color:transparent;
}

.cb-legacy-mobile-nav-hidden,
[data-cb-legacy-mobile-nav-hidden="1"]{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

@media(max-width:980px){
  .cb-mon-regard-app .cb-immersion-app-slide{
    grid-template-columns:1fr;
    align-content:center;
  }

  .cb-mon-regard-app .cb-immersion-app-visual{
    min-height:36vh;
  }
}

@media(max-width:760px){
  .cb-mobile-quickbar{
    grid-template-columns:1fr 1.25fr 1.05fr!important;
  }

  .cb-mobile-quickbar a{
    letter-spacing:.09em!important;
  }

  .cb-mon-regard-app .cb-immersion-app-inner{
    padding:10px;
    grid-template-rows:auto minmax(0,1fr) auto;
  }

  .cb-mon-regard-app .cb-immersion-app-header{
    min-height:52px;
    border-radius:26px;
    padding:8px 8px 8px 14px;
  }

  .cb-mon-regard-app .cb-immersion-app-stage{
    padding:10px 0;
    align-items:stretch;
  }

  .cb-mon-regard-app .cb-immersion-app-slide{
    height:100%;
    gap:10px;
    align-content:center;
  }

  .cb-mon-regard-app .cb-immersion-app-visual{
    min-height:31vh;
    max-height:36vh;
    border-radius:24px;
  }

  .cb-mon-regard-app .cb-immersion-app-copy{
    border-radius:24px;
    padding:20px;
    max-height:calc(100vh - 420px);
  }

  .cb-mon-regard-app .cb-immersion-app-copy h2{
    font-size:clamp(34px,10.5vw,52px);
    line-height:.96;
  }

  .cb-mon-regard-app .cb-immersion-app-copy > span{
    font-size:15.5px;
    line-height:1.5;
  }

  .cb-mon-regard-app .cb-immersion-app-tags,
  .cb-mon-regard-app .cb-immersion-app-offer-grid{
    margin-top:16px;
  }

  .cb-mon-regard-app .cb-immersion-app-offer-grid{
    grid-template-columns:1fr 1fr;
    gap:7px;
  }

  .cb-mon-regard-app .cb-immersion-app-offer-grid em,
  .cb-mon-regard-app .cb-immersion-app-tags em{
    font-size:9px;
    letter-spacing:.09em;
    min-height:32px;
    padding:7px 9px;
  }

  .cb-mon-regard-app .cb-immersion-app-actions{
    flex-direction:column;
    margin-top:18px;
  }

  .cb-mon-regard-app .cb-immersion-app-actions button,
  .cb-mon-regard-app .cb-immersion-app-actions a{
    width:100%;
    min-height:44px;
  }

  .cb-mon-regard-app .cb-immersion-app-footer{
    min-height:54px;
    gap:8px;
  }

  .cb-mon-regard-app .cb-immersion-app-footer button,
  .cb-mon-regard-app .cb-immersion-app-footer a{
    flex:1;
    min-height:44px;
    padding:0 8px;
    font-size:10px;
    letter-spacing:.1em;
  }
}

/* =========================================================
   V2.36 — Mon regard intégré à la section éditoriale sombre
   ========================================================= */

/* On neutralise le bloc autonome si un résidu existe encore */
#experience-photo.cb-immersion-explainer-section{
  display:none!important;
}

/* CTA intégré dans la grande section citation */
.cb-mon-regard-inline-cta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
  width:min(100% - 40px,980px);
  margin:clamp(28px,4vw,46px) auto 0;
  text-align:center;
}

.cb-mon-regard-inline-cta a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:15px 26px;
  border-radius:999px;
  text-decoration:none;
  font-family:var(--cb-sans);
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#18110d;
  background:linear-gradient(135deg,#e8c986,#c89f56);
  box-shadow:0 18px 44px rgba(151,103,38,.20);
}

.cb-mon-regard-inline-cta span{
  display:block;
  max-width:520px;
  font-size:15px;
  line-height:1.5;
  color:rgba(247,239,228,.62);
}

/* Fallback si jamais la citation n'était pas trouvée */
.cb-mon-regard-fallback-section{
  background:#120f0d;
  color:#f7efe4;
  padding:56px 0;
}

/* App Mon regard : dernière passe de confort */
.cb-mon-regard-app .cb-immersion-app-copy{
  scrollbar-width:thin;
  scrollbar-color:rgba(232,201,134,.45) rgba(255,255,255,.08);
}

.cb-mon-regard-app .cb-immersion-app-copy::-webkit-scrollbar{
  width:7px;
}

.cb-mon-regard-app .cb-immersion-app-copy::-webkit-scrollbar-thumb{
  background:rgba(232,201,134,.45);
  border-radius:999px;
}

.cb-mon-regard-app .cb-immersion-app-copy::-webkit-scrollbar-track{
  background:rgba(255,255,255,.08);
  border-radius:999px;
}

@media(min-width:981px){
  .cb-mon-regard-app .cb-immersion-app-copy{
    max-height:calc(100vh - 220px)!important;
  }

  .cb-mon-regard-app .cb-immersion-app-offer-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

@media(max-width:760px){
  .cb-mon-regard-inline-cta{
    width:min(100% - 32px,720px);
    flex-direction:column;
    gap:12px;
    margin-top:30px;
  }

  .cb-mon-regard-inline-cta a{
    width:100%;
    min-height:52px;
  }

  .cb-mon-regard-inline-cta span{
    max-width:100%;
    font-size:14px;
  }

  .cb-mon-regard-app .cb-immersion-app-copy{
    max-height:calc(100vh - 390px)!important;
  }

  .cb-mon-regard-app .cb-immersion-app-offer-grid{
    grid-template-columns:1fr 1fr!important;
  }
}

/* =========================================================
   V2.37 — Wording accessible + polish mobile Mon regard
   ========================================================= */

/* CTA Mon regard intégré */
.cb-mon-regard-inline-cta span{
  max-width:560px!important;
}

/* App : scroll plus propre */
.cb-mon-regard-app .cb-immersion-app-stage{
  scrollbar-width:none;
}

.cb-mon-regard-app .cb-immersion-app-stage::-webkit-scrollbar{
  display:none;
}

.cb-mon-regard-app .cb-immersion-app-copy{
  scrollbar-width:none!important;
}

.cb-mon-regard-app .cb-immersion-app-copy::-webkit-scrollbar{
  display:none!important;
}

/* Desktop : plus lisible, moins massif */
@media(min-width:981px){
  .cb-mon-regard-app .cb-immersion-app-copy h2{
    font-size:clamp(36px,4vw,70px)!important;
    line-height:.96!important;
  }

  .cb-mon-regard-app .cb-immersion-app-copy > span{
    font-size:clamp(16px,1.15vw,20px)!important;
    line-height:1.55!important;
  }

  .cb-mon-regard-app .cb-immersion-app-copy{
    max-height:calc(100vh - 230px)!important;
  }

  .cb-mon-regard-app .cb-immersion-app-offer-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

/* Mobile : on évite les cartes qui scrollent en interne */
@media(max-width:760px){
  .cb-mon-regard-app .cb-immersion-app-inner{
    height:100dvh!important;
    min-height:100dvh!important;
    overflow:hidden!important;
  }

  .cb-mon-regard-app .cb-immersion-app-stage{
    overflow-y:auto!important;
    align-items:start!important;
    padding:8px 0 10px!important;
  }

  .cb-mon-regard-app .cb-immersion-app-slide{
    height:auto!important;
    min-height:100%!important;
    align-content:start!important;
    gap:8px!important;
  }

  .cb-mon-regard-app .cb-immersion-app-visual{
    min-height:24vh!important;
    max-height:28vh!important;
    border-radius:22px!important;
  }

  .cb-mon-regard-app .cb-immersion-app-copy{
    max-height:none!important;
    overflow:visible!important;
    border-radius:22px!important;
    padding:18px!important;
  }

  .cb-mon-regard-app .cb-immersion-app-copy p{
    font-size:9px!important;
    letter-spacing:.14em!important;
    margin-bottom:10px!important;
  }

  .cb-mon-regard-app .cb-immersion-app-copy h2{
    font-size:clamp(29px,8.6vw,43px)!important;
    line-height:.98!important;
    margin-bottom:12px!important;
  }

  .cb-mon-regard-app .cb-immersion-app-copy > span{
    font-size:14.5px!important;
    line-height:1.46!important;
  }

  .cb-mon-regard-app .cb-immersion-app-tags,
  .cb-mon-regard-app .cb-immersion-app-offer-grid{
    margin-top:13px!important;
    gap:6px!important;
  }

  .cb-mon-regard-app .cb-immersion-app-tags em,
  .cb-mon-regard-app .cb-immersion-app-offer-grid em{
    font-size:8.5px!important;
    letter-spacing:.075em!important;
    min-height:30px!important;
    padding:6px 8px!important;
  }

  .cb-mon-regard-app .cb-immersion-app-offer-grid{
    grid-template-columns:1fr 1fr!important;
  }

  .cb-mon-regard-app .cb-immersion-final-actions{
    margin-top:14px!important;
  }

  .cb-mon-regard-app .cb-immersion-app-footer{
    min-height:50px!important;
  }

  .cb-mon-regard-app .cb-immersion-app-footer button,
  .cb-mon-regard-app .cb-immersion-app-footer a{
    min-height:42px!important;
    font-size:9.5px!important;
  }
}

/* Section ambiances : grille plus régulière */
@media(max-width:760px){
  .cb-ambiances-polish-v37 img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }

  .cb-ambiances-polish-v37 [class*="grid"]{
    align-items:stretch!important;
  }

  .cb-ambiances-polish-v37 [class*="grid"] > *{
    min-height:0!important;
  }
}

/* =========================================================
   V2.38 — Galeries mobile premium + contact drawer
   ========================================================= */

/* Le bouton envoyer / mail des galeries disparaît */
.cb-gallery-send-hidden-v38{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}

/* Polish des contrôles galerie plein écran mobile */
@media(max-width:760px){
  .cb-gallery-fullscreen-v38{
    touch-action:pan-y pinch-zoom;
  }

  .cb-gallery-fullscreen-v38 button,
  .cb-gallery-fullscreen-v38 a{
    -webkit-tap-highlight-color:transparent;
  }

  .cb-gallery-fullscreen-v38 button{
    border-radius:999px!important;
  }

  .cb-gallery-fullscreen-v38 [class*="control"],
  .cb-gallery-fullscreen-v38 [class*="toolbar"],
  .cb-gallery-fullscreen-v38 [class*="actions"],
  .cb-gallery-fullscreen-v38 [class*="nav"]{
    gap:10px!important;
  }
}

/* Contact drawer */
html.cb-contact-drawer-open,
body.cb-contact-drawer-open{
  overflow:hidden!important;
}

.cb-contact-drawer{
  position:fixed;
  inset:0;
  z-index:2147483500;
  display:block;
}

.cb-contact-drawer[aria-hidden="true"]{
  display:none!important;
}

.cb-contact-drawer-backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,4,3,.58);
  backdrop-filter:blur(10px);
}

.cb-contact-drawer-panel{
  position:absolute;
  top:0;
  right:0;
  width:min(100%,560px);
  height:100%;
  background:
    radial-gradient(circle at 80% 8%,rgba(232,201,134,.15),transparent 34%),
    linear-gradient(180deg,#17120f 0%,#0c0908 100%);
  color:#f7efe4;
  box-shadow:-28px 0 90px rgba(0,0,0,.38);
  border-left:1px solid rgba(255,255,255,.12);
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
  transform:translateX(0);
  animation:cbContactDrawerInV38 .32s ease both;
}

@keyframes cbContactDrawerInV38{
  from{
    transform:translateX(100%);
  }
  to{
    transform:translateX(0);
  }
}

.cb-contact-drawer-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px;
  border-bottom:1px solid rgba(255,255,255,.10);
}

.cb-contact-drawer-header span{
  display:block;
  margin-bottom:5px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-contact-drawer-header strong{
  display:block;
  font-family:var(--cb-serif);
  font-size:clamp(28px,4vw,40px);
  line-height:1;
  letter-spacing:-.045em;
  font-weight:500;
  color:#f7efe4;
}

.cb-contact-drawer-header button{
  appearance:none;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:#f7efe4;
  border-radius:999px;
  min-height:44px;
  padding:0 15px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.cb-contact-drawer-intro{
  padding:18px 18px 0;
}

.cb-contact-drawer-intro p{
  margin:0;
  color:rgba(247,239,228,.72);
  font-size:15px;
  line-height:1.55;
}

.cb-contact-drawer-form-slot{
  min-height:0;
  overflow:auto;
  padding:18px;
  scrollbar-width:none;
}

.cb-contact-drawer-form-slot::-webkit-scrollbar{
  display:none;
}

.cb-contact-drawer-loading{
  color:rgba(247,239,228,.62);
}

.cb-contact-drawer-moved-form{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}

.cb-contact-drawer-moved-form,
.cb-contact-drawer-moved-form *{
  box-sizing:border-box;
}

.cb-contact-drawer-moved-form input,
.cb-contact-drawer-moved-form textarea,
.cb-contact-drawer-moved-form select{
  width:100%!important;
  max-width:100%!important;
}

@media(min-width:761px){
  .cb-contact-drawer{
    display:none!important;
  }
}

@media(max-width:760px){
  .cb-contact-drawer-panel{
    width:min(94vw,520px);
    border-radius:28px 0 0 28px;
  }

  .cb-contact-drawer-header{
    padding:16px;
  }

  .cb-contact-drawer-intro{
    padding:16px 16px 0;
  }

  .cb-contact-drawer-form-slot{
    padding:16px;
  }
}

/* =========================================================
   V2.40 — Slide contact avec vraie section contact
   ========================================================= */

html.cb-contact-slide-open,
body.cb-contact-slide-open{
  overflow:hidden!important;
}

.cb-contact-slide{
  position:fixed;
  inset:0;
  z-index:2147483646;
  display:block;
}

.cb-contact-slide[aria-hidden="true"]{
  display:none!important;
}

.cb-contact-slide-backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,4,3,.62);
  backdrop-filter:blur(12px);
}

.cb-contact-slide-panel{
  position:absolute;
  top:0;
  right:0;
  width:min(92vw,760px);
  height:100%;
  background:
    radial-gradient(circle at 80% 8%,rgba(232,201,134,.16),transparent 34%),
    linear-gradient(180deg,#17120f 0%,#0c0908 100%);
  color:#f7efe4;
  box-shadow:-28px 0 90px rgba(0,0,0,.42);
  border-left:1px solid rgba(255,255,255,.12);
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
  animation:cbContactSlideInV40 .34s ease both;
}

@keyframes cbContactSlideInV40{
  from{ transform:translateX(100%); }
  to{ transform:translateX(0); }
}

.cb-contact-slide-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:22px 24px;
  border-bottom:1px solid rgba(255,255,255,.10);
}

.cb-contact-slide-header span{
  display:block;
  margin-bottom:5px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-contact-slide-header strong{
  display:block;
  font-family:var(--cb-serif);
  font-size:clamp(34px,4vw,56px);
  line-height:.95;
  letter-spacing:-.05em;
  font-weight:500;
  color:#f7efe4;
}

.cb-contact-slide-header button{
  appearance:none;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:#f7efe4;
  border-radius:999px;
  min-height:46px;
  padding:0 17px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
}

.cb-contact-slide-intro{
  padding:20px 24px 0;
}

.cb-contact-slide-intro p{
  margin:0;
  color:rgba(247,239,228,.74);
  font-size:16px;
  line-height:1.58;
}

.cb-contact-slide-slot{
  min-height:0;
  overflow:auto;
  padding:22px 24px 28px;
  scrollbar-width:none;
}

.cb-contact-slide-slot::-webkit-scrollbar{
  display:none;
}

.cb-contact-slide-loading{
  margin:0;
  color:rgba(247,239,228,.66);
}

.cb-contact-slide-moved-section{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  color:#f7efe4!important;
}

.cb-contact-slide-moved-section,
.cb-contact-slide-moved-section *{
  box-sizing:border-box;
}

.cb-contact-slide-moved-section form,
.cb-contact-slide-moved-section .cb-form,
.cb-contact-slide-moved-section [class*="form"]{
  width:100%!important;
  max-width:none!important;
}

.cb-contact-slide-moved-section input,
.cb-contact-slide-moved-section textarea,
.cb-contact-slide-moved-section select{
  width:100%!important;
  max-width:100%!important;
}

.cb-contact-slide-moved-section input,
.cb-contact-slide-moved-section textarea,
.cb-contact-slide-moved-section select{
  border-radius:18px!important;
}

.cb-contact-slide-moved-section button[type="submit"],
.cb-contact-slide-moved-section input[type="submit"]{
  width:100%!important;
  min-height:52px!important;
  border-radius:999px!important;
}

/* En desktop, le slide est plus large et vraiment premium */
@media(min-width:981px){
  .cb-contact-slide-panel{
    width:min(760px,48vw);
  }
}

/* Mobile */
@media(max-width:760px){
  .cb-contact-slide-panel{
    width:min(94vw,520px);
    border-radius:28px 0 0 28px;
  }

  .cb-contact-slide-header{
    padding:18px 16px;
  }

  .cb-contact-slide-header strong{
    font-size:clamp(30px,8vw,42px);
  }

  .cb-contact-slide-intro{
    padding:16px 16px 0;
  }

  .cb-contact-slide-intro p{
    font-size:15px;
    line-height:1.52;
  }

  .cb-contact-slide-slot{
    padding:16px 16px 24px;
  }
}

/* =========================================================
   V2.41 — Contact slide robuste + galerie mobile
   ========================================================= */

html.cb-contact-slide-open,
body.cb-contact-slide-open{
  overflow:hidden!important;
}

.cb-contact-slide{
  position:fixed;
  inset:0;
  z-index:2147483646;
  display:block;
}

.cb-contact-slide[aria-hidden="true"]{
  display:none!important;
}

.cb-contact-slide-backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,4,3,.62);
  backdrop-filter:blur(12px);
}

.cb-contact-slide-panel{
  position:absolute;
  top:0;
  right:0;
  width:min(92vw,760px);
  height:100%;
  background:
    radial-gradient(circle at 80% 8%,rgba(232,201,134,.16),transparent 34%),
    linear-gradient(180deg,#17120f 0%,#0c0908 100%);
  color:#f7efe4;
  box-shadow:-28px 0 90px rgba(0,0,0,.42);
  border-left:1px solid rgba(255,255,255,.12);
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr);
  animation:cbContactSlideInV41 .34s ease both;
}

@keyframes cbContactSlideInV41{
  from{ transform:translateX(100%); }
  to{ transform:translateX(0); }
}

.cb-contact-slide-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:22px 24px;
  border-bottom:1px solid rgba(255,255,255,.10);
}

.cb-contact-slide-header span{
  display:block;
  margin-bottom:5px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-contact-slide-header strong{
  display:block;
  font-family:var(--cb-serif);
  font-size:clamp(34px,4vw,56px);
  line-height:.95;
  letter-spacing:-.05em;
  font-weight:500;
  color:#f7efe4;
}

.cb-contact-slide-header button{
  appearance:none;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:#f7efe4;
  border-radius:999px;
  min-height:46px;
  padding:0 17px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
}

.cb-contact-slide-intro{
  padding:20px 24px 0;
}

.cb-contact-slide-intro p{
  margin:0;
  color:rgba(247,239,228,.74);
  font-size:16px;
  line-height:1.58;
}

.cb-contact-slide-slot{
  min-height:0;
  overflow:auto;
  padding:22px 24px 28px;
  scrollbar-width:none;
}

.cb-contact-slide-slot::-webkit-scrollbar{
  display:none;
}

.cb-contact-slide-moved-section{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  max-width:none!important;
  min-height:auto!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  color:#f7efe4!important;
  transform:none!important;
}

.cb-contact-slide-moved-section form,
.cb-contact-slide-moved-section .cb-form,
.cb-contact-slide-moved-section [class*="form"]{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  max-width:none!important;
}

.cb-contact-slide-moved-section input,
.cb-contact-slide-moved-section textarea,
.cb-contact-slide-moved-section select{
  width:100%!important;
  max-width:100%!important;
  border-radius:18px!important;
}

.cb-contact-slide-moved-section button[type="submit"],
.cb-contact-slide-moved-section input[type="submit"]{
  width:100%!important;
  min-height:52px!important;
  border-radius:999px!important;
}

.cb-contact-slide-fallback{
  padding:18px;
  border-radius:24px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.10);
}

.cb-contact-slide-fallback strong{
  display:block;
  font-family:var(--cb-serif);
  font-size:30px;
  line-height:1;
  color:#f7efe4;
}

.cb-contact-slide-fallback p{
  color:rgba(247,239,228,.68);
}

.cb-contact-slide-fallback a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  margin-top:10px;
  border-radius:999px;
  text-decoration:none;
  color:#18110d;
  background:linear-gradient(135deg,#e8c986,#c89f56);
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.cb-contact-slide-fallback a + a{
  color:#f7efe4;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}

/* Galerie mobile : on masque seulement l’enveloppe en mobile */
@media(max-width:760px){
  .cb-gallery-envelope-hidden-v41{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  .cb-gallery-fullscreen-v41{
    touch-action:pan-y pinch-zoom;
  }
}

@media(min-width:981px){
  .cb-contact-slide-panel{
    width:min(760px,48vw);
  }
}

@media(max-width:760px){
  .cb-contact-slide-panel{
    width:min(94vw,520px);
    border-radius:28px 0 0 28px;
  }

  .cb-contact-slide-header{
    padding:18px 16px;
  }

  .cb-contact-slide-header strong{
    font-size:clamp(30px,8vw,42px);
  }

  .cb-contact-slide-intro{
    padding:16px 16px 0;
  }

  .cb-contact-slide-intro p{
    font-size:15px;
    line-height:1.52;
  }

  .cb-contact-slide-slot{
    padding:16px 16px 24px;
  }
}

/* =========================================================
   V2.42 — Contact SAS avec formulaire seul
   ========================================================= */

html.cb-contact-slide-open,
body.cb-contact-slide-open{
  overflow:hidden!important;
}

.cb-contact-slide{
  position:fixed;
  inset:0;
  z-index:2147483646;
  display:block;
}

.cb-contact-slide[aria-hidden="true"]{
  display:none!important;
}

.cb-contact-slide-backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,4,3,.62);
  backdrop-filter:blur(12px);
}

.cb-contact-slide-panel{
  position:absolute;
  top:0;
  right:0;
  width:min(92vw,760px);
  height:100%;
  background:
    radial-gradient(circle at 80% 8%,rgba(232,201,134,.16),transparent 34%),
    linear-gradient(180deg,#17120f 0%,#0c0908 100%);
  color:#f7efe4;
  box-shadow:-28px 0 90px rgba(0,0,0,.42);
  border-left:1px solid rgba(255,255,255,.12);
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  animation:cbContactSlideInV42 .34s ease both;
}

@keyframes cbContactSlideInV42{
  from{ transform:translateX(100%); }
  to{ transform:translateX(0); }
}

.cb-contact-slide-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:22px 24px;
  border-bottom:1px solid rgba(255,255,255,.10);
}

.cb-contact-slide-header span{
  display:block;
  margin-bottom:5px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-contact-slide-header strong{
  display:block;
  font-family:var(--cb-serif);
  font-size:clamp(34px,4vw,56px);
  line-height:.95;
  letter-spacing:-.05em;
  font-weight:500;
  color:#f7efe4;
}

.cb-contact-slide-header button{
  appearance:none;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:#f7efe4;
  border-radius:999px;
  min-height:46px;
  padding:0 17px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
}

.cb-contact-sas-body{
  min-height:0;
  overflow:auto;
  padding:22px 24px 28px;
  scrollbar-width:none;
}

.cb-contact-sas-body::-webkit-scrollbar{
  display:none;
}

.cb-contact-sas-intro p{
  margin:0;
  color:rgba(247,239,228,.74);
  font-size:16px;
  line-height:1.58;
}

.cb-contact-sas-steps{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:18px;
}

.cb-contact-sas-steps article{
  min-height:94px;
  padding:15px;
  border-radius:20px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.10);
}

.cb-contact-sas-steps strong{
  display:block;
  margin-bottom:12px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em;
  color:#e8c986;
}

.cb-contact-sas-steps span{
  display:block;
  font-family:var(--cb-serif);
  font-size:26px;
  line-height:1;
  letter-spacing:-.04em;
  color:#f7efe4;
}

.cb-contact-sas-form-card{
  margin-top:18px;
  padding:18px;
  border-radius:26px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.10);
}

.cb-contact-sas-form-kicker{
  display:block;
  margin-bottom:14px;
  font-family:var(--cb-sans);
  font-size:10px;
  font-weight:900;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:#e8c986;
}

.cb-contact-slide-moved-form{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  color:#f7efe4!important;
  transform:none!important;
}

.cb-contact-slide-moved-form,
.cb-contact-slide-moved-form *{
  box-sizing:border-box;
}

.cb-contact-slide-moved-form input,
.cb-contact-slide-moved-form textarea,
.cb-contact-slide-moved-form select{
  width:100%!important;
  max-width:100%!important;
  border-radius:18px!important;
}

.cb-contact-slide-moved-form button[type="submit"],
.cb-contact-slide-moved-form input[type="submit"]{
  width:100%!important;
  min-height:52px!important;
  border-radius:999px!important;
}

.cb-contact-slide-fallback{
  padding:18px;
  border-radius:24px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.10);
}

.cb-contact-slide-fallback strong{
  display:block;
  font-family:var(--cb-serif);
  font-size:30px;
  line-height:1;
  color:#f7efe4;
}

.cb-contact-slide-fallback p{
  color:rgba(247,239,228,.68);
}

.cb-contact-slide-fallback a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  margin-top:10px;
  border-radius:999px;
  text-decoration:none;
  color:#18110d;
  background:linear-gradient(135deg,#e8c986,#c89f56);
  font-family:var(--cb-sans);
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.cb-contact-slide-fallback a + a{
  color:#f7efe4;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}

/* Galerie mobile : on masque seulement l’enveloppe en mobile */
@media(max-width:760px){
  .cb-gallery-envelope-hidden-v42{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  .cb-gallery-fullscreen-v42{
    touch-action:pan-y pinch-zoom;
  }
}

@media(min-width:981px){
  .cb-contact-slide-panel{
    width:min(760px,48vw);
  }
}

@media(max-width:760px){
  .cb-contact-slide-panel{
    width:min(94vw,520px);
    border-radius:28px 0 0 28px;
  }

  .cb-contact-slide-header{
    padding:18px 16px;
  }

  .cb-contact-slide-header strong{
    font-size:clamp(30px,8vw,42px);
  }

  .cb-contact-sas-body{
    padding:16px 16px 24px;
  }

  .cb-contact-sas-intro p{
    font-size:15px;
    line-height:1.52;
  }

  .cb-contact-sas-steps{
    grid-template-columns:1fr;
    gap:8px;
  }

  .cb-contact-sas-steps article{
    min-height:auto;
    border-radius:18px;
    padding:14px;
  }

  .cb-contact-sas-steps span{
    font-size:24px;
  }

  .cb-contact-sas-form-card{
    border-radius:22px;
    padding:15px;
  }
}

/* =========================================================
   V2.43 — Hotfix performance mobile
   ========================================================= */

/* Désactive les anciennes classes de scan galerie si elles restent en cache */
.cb-gallery-fullscreen-v41,
.cb-gallery-fullscreen-v42{
  will-change:auto!important;
}

/* Contact SAS : sécurité scroll */
html.cb-contact-slide-open,
body.cb-contact-slide-open{
  overflow:hidden!important;
}

.cb-contact-slide-slot,
.cb-contact-sas-body{
  overscroll-behavior:contain;
}

/* =========================================================
   V2.44 — Contact SAS polish + galerie mobile safe
   ========================================================= */

/* Contact SAS : polish, sans changer la logique JS */
.cb-contact-slide-backdrop{
  background:
    radial-gradient(circle at 70% 18%, rgba(232,201,134,.10), transparent 34%),
    rgba(5,4,3,.68)!important;
  backdrop-filter:blur(14px)!important;
}

.cb-contact-slide-panel{
  background:
    radial-gradient(circle at 82% 6%,rgba(232,201,134,.18),transparent 32%),
    linear-gradient(180deg,#201913 0%,#100c0a 42%,#070504 100%)!important;
}

.cb-contact-sas-slide .cb-contact-slide-header{
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));
}

.cb-contact-sas-slide .cb-contact-slide-header strong{
  max-width:520px;
}

.cb-contact-sas-intro{
  max-width:650px;
}

.cb-contact-sas-steps article{
  box-shadow:0 18px 48px rgba(0,0,0,.16);
}

.cb-contact-sas-form-card{
  box-shadow:0 24px 70px rgba(0,0,0,.22);
}

/* Formulaire seul déplacé dans le SAS */
.cb-contact-slide-moved-form label,
.cb-contact-slide-moved-form .label,
.cb-contact-slide-moved-form [class*="label"]{
  color:rgba(232,201,134,.78)!important;
  font-family:var(--cb-sans)!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
}

.cb-contact-slide-moved-form input,
.cb-contact-slide-moved-form textarea,
.cb-contact-slide-moved-form select{
  min-height:52px!important;
  padding:14px 18px!important;
  color:#f7efe4!important;
  background:rgba(255,255,255,.085)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important;
  outline:none!important;
}

.cb-contact-slide-moved-form textarea{
  min-height:128px!important;
  resize:vertical!important;
}

.cb-contact-slide-moved-form input::placeholder,
.cb-contact-slide-moved-form textarea::placeholder{
  color:rgba(247,239,228,.42)!important;
}

.cb-contact-slide-moved-form input:focus,
.cb-contact-slide-moved-form textarea:focus,
.cb-contact-slide-moved-form select:focus{
  border-color:rgba(232,201,134,.52)!important;
  box-shadow:
    0 0 0 3px rgba(232,201,134,.12),
    inset 0 1px 0 rgba(255,255,255,.05)!important;
}

.cb-contact-slide-moved-form input[type="date"]{
  color-scheme:dark!important;
}

.cb-contact-slide-moved-form button[type="submit"],
.cb-contact-slide-moved-form input[type="submit"]{
  color:#18110d!important;
  background:linear-gradient(135deg,#e8c986,#c89f56)!important;
  border:0!important;
  font-family:var(--cb-sans)!important;
  font-size:12px!important;
  font-weight:900!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
  box-shadow:0 18px 44px rgba(151,103,38,.20)!important;
}

/* Galerie mobile : enveloppe masquée uniquement sur mobile, desktop intact */
@media(max-width:760px){
  .cb-gallery-envelope-hidden-v44{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  .cb-gallery-fullscreen-v44{
    touch-action:pan-y pinch-zoom;
  }

  .cb-gallery-fullscreen-v44 button,
  .cb-gallery-fullscreen-v44 a{
    -webkit-tap-highlight-color:transparent;
  }

  .cb-gallery-fullscreen-v44 button{
    border-radius:999px!important;
  }
}

/* Desktop : slide un peu plus généreux */
@media(min-width:981px){
  .cb-contact-slide-panel{
    width:min(820px,52vw)!important;
  }

  .cb-contact-sas-body{
    padding:26px 30px 34px!important;
  }

  .cb-contact-sas-form-card{
    padding:22px!important;
  }
}

/* Mobile : plus compact, plus app-like */
@media(max-width:760px){
  .cb-contact-slide-panel{
    width:min(96vw,540px)!important;
    border-radius:30px 0 0 30px!important;
  }

  .cb-contact-slide-header{
    gap:12px!important;
  }

  .cb-contact-slide-header strong{
    font-size:clamp(30px,8.8vw,44px)!important;
  }

  .cb-contact-slide-header button{
    min-height:40px!important;
    padding:0 13px!important;
    font-size:9px!important;
  }

  .cb-contact-sas-steps{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
  }

  .cb-contact-sas-steps article{
    min-height:78px!important;
    padding:11px!important;
    border-radius:16px!important;
  }

  .cb-contact-sas-steps strong{
    margin-bottom:9px!important;
    font-size:9px!important;
  }

  .cb-contact-sas-steps span{
    font-size:clamp(17px,4.8vw,22px)!important;
  }

  .cb-contact-sas-form-card{
    margin-top:14px!important;
    padding:14px!important;
  }

  .cb-contact-slide-moved-form input,
  .cb-contact-slide-moved-form textarea,
  .cb-contact-slide-moved-form select{
    min-height:48px!important;
    padding:12px 15px!important;
    border-radius:16px!important;
  }

  .cb-contact-slide-moved-form textarea{
    min-height:112px!important;
  }
}

/* =========================================================
   V2.45 — Polish tactile contact SAS + galerie mobile
   ========================================================= */

/* Contact SAS : pleine largeur utile et scroll tactile */
.cb-contact-slide-panel,
.cb-contact-sas-body,
.cb-contact-sas-form-card,
.cb-contact-slide-slot,
.cb-contact-slide-moved-form{
  touch-action:pan-y!important;
}

.cb-contact-sas-body,
.cb-contact-slide-slot{
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
}

.cb-contact-sas-form-card,
.cb-contact-slide-slot,
.cb-contact-slide-moved-form{
  width:100%!important;
  max-width:100%!important;
}

.cb-contact-slide-moved-form{
  display:block!important;
}

.cb-contact-slide-moved-form > *{
  max-width:100%!important;
}

/* Mobile : le SAS prend vraiment toute la largeur utilisable */
@media(max-width:760px){
  .cb-contact-slide-panel{
    width:100vw!important;
    max-width:100vw!important;
    border-radius:0!important;
  }

  .cb-contact-sas-body{
    padding:14px 12px 24px!important;
    overflow-y:auto!important;
  }

  .cb-contact-sas-form-card{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    padding:13px!important;
    border-radius:22px!important;
  }

  .cb-contact-slide-slot{
    width:100%!important;
    padding:0!important;
  }

  .cb-contact-slide-moved-form{
    width:100%!important;
    max-width:100%!important;
  }

  .cb-contact-slide-moved-form input,
  .cb-contact-slide-moved-form textarea,
  .cb-contact-slide-moved-form select,
  .cb-contact-slide-moved-form button{
    width:100%!important;
    max-width:100%!important;
  }
}

/* Galerie mobile : enveloppe masquée uniquement sur mobile */
@media(max-width:760px){
  .cb-gallery-envelope-hidden-v45{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  .cb-gallery-fullscreen-v45{
    touch-action:pan-y pinch-zoom;
  }

  /* Les boutons du haut doivent tenir sur une ligne */
  .cb-gallery-fullscreen-v45 [class*="toolbar"],
  .cb-gallery-fullscreen-v45 [class*="control"],
  .cb-gallery-fullscreen-v45 [class*="actions"],
  .cb-gallery-fullscreen-v45 [class*="nav"]{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    max-width:100%!important;
  }

  .cb-gallery-fullscreen-v45 button,
  .cb-gallery-fullscreen-v45 a{
    flex:0 0 auto!important;
    min-width:38px!important;
    min-height:38px!important;
    max-width:52px!important;
    max-height:52px!important;
    border-radius:999px!important;
    -webkit-tap-highlight-color:transparent;
  }

  .cb-gallery-fullscreen-v45 button svg,
  .cb-gallery-fullscreen-v45 a svg{
    width:18px!important;
    height:18px!important;
  }

  .cb-gallery-fullscreen-v45 button span,
  .cb-gallery-fullscreen-v45 a span{
    white-space:nowrap!important;
  }
}

/* Petite animation au swipe galerie, proche de Mon regard */
@media(max-width:760px){
  .cb-gallery-swipe-left-v45{
    animation:cbGallerySwipeLeftV45 .32s ease both;
  }

  .cb-gallery-swipe-right-v45{
    animation:cbGallerySwipeRightV45 .32s ease both;
  }

  @keyframes cbGallerySwipeLeftV45{
    0%{
      transform:translateX(0) scale(1);
      filter:none;
    }
    45%{
      transform:translateX(-10px) scale(.992);
      filter:brightness(.92);
    }
    100%{
      transform:translateX(0) scale(1);
      filter:none;
    }
  }

  @keyframes cbGallerySwipeRightV45{
    0%{
      transform:translateX(0) scale(1);
      filter:none;
    }
    45%{
      transform:translateX(10px) scale(.992);
      filter:brightness(.92);
    }
    100%{
      transform:translateX(0) scale(1);
      filter:none;
    }
  }
}

/* =========================================================
   V2.46 — Scroll tactile fiable dans le SAS contact
   ========================================================= */

.cb-contact-slide-panel{
  height:100dvh!important;
  max-height:100dvh!important;
  overflow:hidden!important;
}

.cb-contact-sas-body{
  height:100%!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
}

.cb-contact-slide-slot,
.cb-contact-sas-form-card{
  overflow:visible!important;
  touch-action:pan-y!important;
}

.cb-contact-slide-moved-form{
  overflow:visible!important;
  touch-action:pan-y!important;
}

.cb-contact-slide-moved-form input,
.cb-contact-slide-moved-form select,
.cb-contact-slide-moved-form button{
  touch-action:manipulation!important;
}

.cb-contact-slide-moved-form textarea{
  touch-action:auto!important;
  -webkit-overflow-scrolling:touch!important;
}

/* Mobile : une seule zone de scroll, pleine largeur */
@media(max-width:760px){
  .cb-contact-slide{
    position:fixed!important;
    inset:0!important;
    overflow:hidden!important;
  }

  .cb-contact-slide-panel{
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr)!important;
  }

  .cb-contact-sas-body{
    width:100%!important;
    max-width:100%!important;
    padding:14px 12px calc(28px + env(safe-area-inset-bottom))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }

  .cb-contact-sas-form-card{
    width:100%!important;
    max-width:100%!important;
    margin:14px 0 0!important;
  }

  .cb-contact-slide-slot{
    width:100%!important;
    max-width:100%!important;
  }
}

/* =========================================================
   V2.47 — Contact SAS : scroll mobile natif amélioré
   ========================================================= */

/* Base : on évite les doubles scrolls gênants */
.cb-contact-slide{
  overscroll-behavior:contain!important;
}

.cb-contact-slide-panel{
  overscroll-behavior:contain!important;
}

/* Mobile : le panneau complet devient la zone de scroll native */
@media(max-width:760px){
  .cb-contact-slide{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    overflow:hidden!important;
  }

  .cb-contact-slide-panel{
    position:absolute!important;
    inset:0!important;
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;

    display:block!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;

    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    touch-action:pan-y!important;
  }

  .cb-contact-slide-header{
    position:sticky!important;
    top:0!important;
    z-index:3!important;

    background:
      radial-gradient(circle at 82% 8%,rgba(232,201,134,.16),transparent 34%),
      linear-gradient(180deg,rgba(32,25,19,.98),rgba(16,12,10,.94))!important;

    backdrop-filter:blur(14px)!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
  }

  .cb-contact-sas-body{
    display:block!important;
    height:auto!important;
    min-height:auto!important;
    max-height:none!important;

    overflow:visible!important;
    padding:14px 12px calc(34px + env(safe-area-inset-bottom))!important;

    touch-action:pan-y!important;
    overscroll-behavior:contain!important;
  }

  .cb-contact-sas-intro,
  .cb-contact-sas-steps,
  .cb-contact-sas-form-card,
  .cb-contact-slide-slot,
  .cb-contact-slide-moved-form{
    width:100%!important;
    max-width:100%!important;
  }

  .cb-contact-sas-form-card{
    margin:14px 0 0!important;
    padding:13px!important;
    border-radius:22px!important;
    overflow:visible!important;
    touch-action:pan-y!important;
  }

  .cb-contact-slide-slot{
    padding:0!important;
    overflow:visible!important;
    touch-action:pan-y!important;
  }

  .cb-contact-slide-moved-form{
    overflow:visible!important;
    touch-action:pan-y!important;
  }

  .cb-contact-slide-moved-form input,
  .cb-contact-slide-moved-form select,
  .cb-contact-slide-moved-form button{
    touch-action:manipulation!important;
  }

  .cb-contact-slide-moved-form textarea{
    touch-action:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }

  .cb-contact-slide-moved-form input,
  .cb-contact-slide-moved-form textarea,
  .cb-contact-slide-moved-form select,
  .cb-contact-slide-moved-form button{
    width:100%!important;
    max-width:100%!important;
  }

  /* Petite sécurité : grandes zones tactiles, moins de frustration */
  .cb-contact-slide-moved-form label,
  .cb-contact-slide-moved-form .label,
  .cb-contact-slide-moved-form [class*="label"]{
    display:block!important;
    margin-bottom:7px!important;
  }

  .cb-contact-slide-moved-form input,
  .cb-contact-slide-moved-form textarea,
  .cb-contact-slide-moved-form select{
    font-size:16px!important; /* évite le zoom mobile intempestif */
  }
}

/* Desktop : on garde le comportement précédent */
@media(min-width:761px){
  .cb-contact-slide-panel{
    overflow:hidden!important;
  }

  .cb-contact-sas-body{
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
}

/* =========================================================
   V2.48 — Mobile nav + preuve sociale courte dans le hero
   ========================================================= */

.cb-hero-mobile-proof{
  display:none;
}

@media(max-width:760px){
  .cb-mobile-quickbar a:first-child{
    letter-spacing:.01em;
  }

  .cb-hero-mobile-proof{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:16px;
    max-width:340px;
  }

  .cb-hero-mobile-proof span{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:0 10px;
    border-radius:999px;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.14);
    color:rgba(255,250,243,.88);
    font-family:var(--cb-sans);
    font-size:10px;
    font-weight:850;
    letter-spacing:.07em;
    text-transform:uppercase;
    backdrop-filter:blur(10px);
    box-shadow:0 12px 34px rgba(0,0,0,.16);
  }

  .cb-hero-mobile-proof span:first-child{
    color:#18110d;
    background:linear-gradient(135deg,#e8c986,#c89f56);
    border-color:rgba(232,201,134,.34);
  }
}

/* =========================================================
   V2.49 — Hero : preuve sociale plus discrète
   ========================================================= */

/* On supprime visuellement l’ancien bloc V2.48 s’il reste en cache/DOM */
.cb-hero-mobile-proof{
  display:none!important;
}

/* Nouvelle preuve mobile : une ligne, pas des pastilles */
.cb-hero-mobile-trustline{
  display:none;
}

@media(max-width:760px){
  .cb-hero-mobile-trustline{
    display:block;
    margin:14px 0 0;
    max-width:320px;
    color:rgba(255,250,243,.78);
    font-family:var(--cb-sans);
    font-size:10px;
    font-weight:850;
    line-height:1.45;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-shadow:0 2px 18px rgba(0,0,0,.38);
  }
}

/* Desktop : on allège le hero en masquant la rangée de stats basse.
   Les preuves restent dans les sections suivantes. */
@media(min-width:981px){
  .cb-hero .cb-hero-stats,
  .cb-hero .cb-hero-proof,
  .cb-hero .cb-hero-trust,
  .cb-hero [class*="hero"] [class*="stat"],
  .cb-hero [class*="hero"] [class*="proof"]{
    display:none!important;
  }
}

/* Sécurité : ne pas masquer les CTA ni le bloc contact à droite */
@media(min-width:981px){
  .cb-hero a[href="#contact-formulaire"],
  .cb-hero [data-cb-open-contact-slide],
  .cb-hero button,
  .cb-hero .cb-hero-contact,
  .cb-hero [class*="contact"]{
    display:revert!important;
  }
}

/* =========================================================
   V2.50 — Hero mobile compact : moins d’infos, plus d’impact
   ========================================================= */

@media(max-width:760px){
  .cb-mobile-hero-hide-v50{
    display:none!important;
  }

  /* Sécurité : le bouton Galerie de la barre fixe reste visible */
  .cb-mobile-quickbar .cb-mobile-hero-hide-v50{
    display:flex!important;
  }

  /* La preuve sociale devient une simple ligne discrète */
  .cb-hero-mobile-trustline{
    display:block!important;
    margin:10px 0 0!important;
    max-width:310px!important;
    color:rgba(255,250,243,.82)!important;
    font-family:var(--cb-sans)!important;
    font-size:9.5px!important;
    font-weight:850!important;
    line-height:1.3!important;
    letter-spacing:.055em!important;
    text-transform:uppercase!important;
    text-shadow:0 2px 18px rgba(0,0,0,.38)!important;
  }

  /* On enlève les badges statistiques du hero mobile : ils sont repris plus bas */
  .cb-hero-mobile-compact-v50 .cb-hero-stats,
  .cb-hero-mobile-compact-v50 .cb-hero-proof,
  .cb-hero-mobile-compact-v50 .cb-hero-trust,
  .cb-hero-mobile-compact-v50 [class*="hero"] [class*="stat"],
  .cb-hero-mobile-compact-v50 [class*="hero"] [class*="proof"],
  .cb-hero-mobile-compact-v50 [class*="hero"] [class*="badge"]{
    display:none!important;
  }

  /* Mais on ne masque jamais les CTA ni la barre mobile */
  .cb-hero-mobile-compact-v50 a[href="#contact-formulaire"],
  .cb-hero-mobile-compact-v50 [data-cb-open-contact-slide],
  .cb-mobile-quickbar,
  .cb-mobile-quickbar *{
    display:flex!important;
  }

  /* Le bouton secondaire vers les images est un doublon avec la barre fixe */
  .cb-hero-mobile-compact-v50 a[href="#galerie-signature"],
  .cb-hero-mobile-compact-v50 a[href="#portfolio-immersif"],
  .cb-hero-mobile-compact-v50 a[href="#galerie-suite"]{
    display:none!important;
  }

  /* Titre légèrement plus contenu pour faire respirer le premier écran */
  .cb-hero-mobile-compact-v50 h1,
  .cb-hero-mobile-compact-v50 .cb-hero-title,
  .cb-hero-mobile-compact-v50 .cb-hero-headline{
    font-size:clamp(44px,13.5vw,58px)!important;
    line-height:.9!important;
    letter-spacing:-.06em!important;
  }

  /* CTA principal plus proche du texte */
  .cb-hero-mobile-compact-v50 a[href="#contact-formulaire"]{
    margin-top:18px!important;
  }
}

/* =========================================================
   V2.51 — Hero mobile plein écran
   Classes ciblées :
   cb-hero cb-hero-story cb-hero-v27 cb-hero-mobile-compact-v50
   ========================================================= */

@media(max-width:760px){
  .cb-hero.cb-hero-story.cb-hero-v27.cb-hero-mobile-compact-v50,
  .cb-hero-mobile-compact-v50{
    min-height:100svh!important;
    min-height:100dvh!important;
    height:100svh!important;
    height:100dvh!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }

  /* On garde un vrai plein écran malgré le header flottant et la barre du bas */
  .cb-hero-mobile-compact-v50{
    padding-top:92px!important;
    padding-bottom:92px!important;
    box-sizing:border-box!important;
  }

  /* Le contenu principal reste dans l’écran */
  .cb-hero-mobile-compact-v50 .cb-hero-content,
  .cb-hero-mobile-compact-v50 .cb-hero-copy,
  .cb-hero-mobile-compact-v50 [class*="hero-content"],
  .cb-hero-mobile-compact-v50 [class*="hero-copy"]{
    max-height:calc(100svh - 184px)!important;
    max-height:calc(100dvh - 184px)!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }

  /* Titre et texte compactés pour tenir dans le premier écran */
  .cb-hero-mobile-compact-v50 h1,
  .cb-hero-mobile-compact-v50 .cb-hero-title,
  .cb-hero-mobile-compact-v50 .cb-hero-headline{
    margin-top:0!important;
    margin-bottom:16px!important;
  }

  .cb-hero-mobile-compact-v50 p{
    margin-bottom:0!important;
  }

  .cb-hero-mobile-trustline{
    margin-top:12px!important;
  }

  .cb-hero-mobile-compact-v50 a[href="#contact-formulaire"]{
    margin-top:18px!important;
  }

  /* Le signal “entrer dans l’histoire” ne doit pas casser le plein écran mobile */
  .cb-hero-mobile-compact-v50 [class*="enter"],
  .cb-hero-mobile-compact-v50 [class*="scroll"],
  .cb-hero-mobile-compact-v50 [class*="story-entry"]{
    display:none!important;
  }

  /* Mais on ne masque jamais la barre mobile fixe */
  .cb-mobile-quickbar,
  .cb-mobile-quickbar *{
    display:flex!important;
  }
}

/* Fallback iOS/Android anciens : si dvh est mal géré */
@supports not (height:100dvh){
  @media(max-width:760px){
    .cb-hero.cb-hero-story.cb-hero-v27.cb-hero-mobile-compact-v50,
    .cb-hero-mobile-compact-v50{
      min-height:100vh!important;
      height:100vh!important;
    }
  }
}

/* =========================================================
   V2.52 — Barre mobile sticky après le hero
   ========================================================= */

@media(max-width:760px){
  .cb-mobile-quickbar-v52{
    position:fixed!important;
    left:12px!important;
    right:12px!important;
    bottom:calc(10px + env(safe-area-inset-bottom))!important;
    z-index:9999!important;

    display:grid!important;
    grid-template-columns:.78fr 1fr 1.24fr!important;
    align-items:center!important;
    gap:6px!important;

    min-height:58px!important;
    padding:6px!important;
    border-radius:999px!important;

    background:rgba(22,18,15,.88)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    box-shadow:
      0 22px 70px rgba(0,0,0,.34),
      inset 0 1px 0 rgba(255,255,255,.07)!important;
    backdrop-filter:blur(18px)!important;

    opacity:0!important;
    transform:translateY(18px) scale(.985)!important;
    pointer-events:none!important;

    transition:
      opacity .26s ease,
      transform .26s ease!important;
  }

  .cb-mobile-quickbar-v52.cb-mobile-quickbar-visible-v52{
    opacity:1!important;
    transform:translateY(0) scale(1)!important;
    pointer-events:auto!important;
  }

  .cb-mobile-quickbar-v52 a{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;

    min-width:0!important;
    min-height:46px!important;
    height:46px!important;
    padding:0 9px!important;
    border-radius:999px!important;

    color:rgba(255,250,243,.88)!important;
    background:transparent!important;
    border:0!important;
    text-decoration:none!important;

    font-family:var(--cb-sans)!important;
    font-size:10px!important;
    font-weight:900!important;
    letter-spacing:.055em!important;
    line-height:1!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
  }

  .cb-mobile-quickbar-v52 a:nth-child(2){
    background:rgba(255,255,255,.07)!important;
  }

  .cb-mobile-quickbar-v52 .cb-mobile-quickbar-primary{
    color:#18110d!important;
    background:linear-gradient(135deg,#e8c986,#c89f56)!important;
    box-shadow:0 12px 34px rgba(151,103,38,.24)!important;
    letter-spacing:.035em!important;
  }

  .cb-mobile-quickbar-v52 a:active{
    transform:scale(.97)!important;
  }

  /* On évite que la barre cache le bas des sections */
  body{
    padding-bottom:calc(76px + env(safe-area-inset-bottom))!important;
  }
}

@media(max-width:380px){
  .cb-mobile-quickbar-v52{
    left:8px!important;
    right:8px!important;
    grid-template-columns:.72fr .92fr 1.36fr!important;
    gap:4px!important;
    padding:5px!important;
  }

  .cb-mobile-quickbar-v52 a{
    font-size:9px!important;
    padding:0 6px!important;
    letter-spacing:.035em!important;
  }

  .cb-mobile-quickbar-v52 .cb-mobile-quickbar-primary{
    font-size:8.8px!important;
  }
}

/* =========================================================
   V2.53 — Contact uniquement en SAS plein écran
   ========================================================= */

/* La section contact classique disparaît de la page.
   Le formulaire reste dans le DOM pour être déplacé dans le SAS. */
.cb-contact-source-hidden-v53{
  display:none!important;
}

/* Le SAS contact devient plein écran desktop + mobile */
.cb-contact-slide{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  max-height:100dvh!important;
  overflow:hidden!important;
  z-index:2147483646!important;
}

.cb-contact-slide-panel{
  position:absolute!important;
  inset:0!important;
  width:100vw!important;
  max-width:100vw!important;
  height:100dvh!important;
  max-height:100dvh!important;
  border-radius:0!important;
  border-left:0!important;

  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;

  background:
    radial-gradient(circle at 85% 8%,rgba(232,201,134,.16),transparent 34%),
    linear-gradient(180deg,#201913 0%,#100c0a 42%,#070504 100%)!important;

  animation:cbContactFullscreenInV53 .28s ease both!important;
}

@keyframes cbContactFullscreenInV53{
  from{
    opacity:0;
    transform:scale(1.015);
  }
  to{
    opacity:1;
    transform:scale(1);
  }
}

.cb-contact-slide-header{
  position:sticky!important;
  top:0!important;
  z-index:5!important;
  padding:22px clamp(18px,4vw,54px)!important;
  background:
    radial-gradient(circle at 86% 8%,rgba(232,201,134,.12),transparent 34%),
    linear-gradient(180deg,rgba(32,25,19,.98),rgba(16,12,10,.94))!important;
  backdrop-filter:blur(14px)!important;
}

.cb-contact-sas-body{
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
}

/* Desktop : vrai écran SAS, narration à gauche, formulaire à droite */
@media(min-width:981px){
  .cb-contact-sas-body{
    display:grid!important;
    grid-template-columns:minmax(360px,.78fr) minmax(480px,1.05fr)!important;
    grid-template-areas:
      "intro form"
      "steps form";
    gap:22px!important;
    align-items:start!important;
    padding:clamp(28px,4vw,64px)!important;
  }

  .cb-contact-sas-intro{
    grid-area:intro!important;
    max-width:620px!important;
    align-self:end!important;
  }

  .cb-contact-sas-intro p{
    font-size:clamp(18px,1.7vw,26px)!important;
    line-height:1.48!important;
    color:rgba(247,239,228,.76)!important;
  }

  .cb-contact-sas-steps{
    grid-area:steps!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    max-width:560px!important;
  }

  .cb-contact-sas-steps article{
    min-height:92px!important;
    display:flex!important;
    align-items:center!important;
    gap:18px!important;
    padding:20px 22px!important;
  }

  .cb-contact-sas-steps strong{
    margin:0!important;
    min-width:40px!important;
  }

  .cb-contact-sas-steps span{
    font-size:clamp(28px,2.3vw,40px)!important;
  }

  .cb-contact-sas-form-card{
    grid-area:form!important;
    width:100%!important;
    max-width:760px!important;
    justify-self:end!important;
    margin:0!important;
    padding:24px!important;
    border-radius:32px!important;
  }
}

/* Mobile : plein écran natif, très fluide au doigt */
@media(max-width:760px){
  .cb-contact-slide-panel{
    display:block!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
  }

  .cb-contact-slide-header{
    padding:16px 14px!important;
  }

  .cb-contact-slide-header strong{
    font-size:clamp(30px,8.8vw,44px)!important;
  }

  .cb-contact-sas-body{
    display:block!important;
    height:auto!important;
    overflow:visible!important;
    padding:14px 12px calc(34px + env(safe-area-inset-bottom))!important;
  }

  .cb-contact-sas-form-card{
    width:100%!important;
    max-width:100%!important;
    margin:14px 0 0!important;
    padding:13px!important;
    border-radius:22px!important;
  }

  .cb-contact-slide-slot,
  .cb-contact-slide-moved-form{
    width:100%!important;
    max-width:100%!important;
  }

  .cb-contact-slide-moved-form input,
  .cb-contact-slide-moved-form textarea,
  .cb-contact-slide-moved-form select,
  .cb-contact-slide-moved-form button{
    width:100%!important;
    max-width:100%!important;
  }
}

/* =========================================================
   V2.54 — Hero mobile : CTA fixe + rassurance stable
   ========================================================= */

@media(max-width:760px){
  .cb-hero-fixed-mobile-cta-v54{
    position:relative!important;
    min-height:100svh!important;
    min-height:100dvh!important;
    height:100svh!important;
    height:100dvh!important;
    overflow:hidden!important;
    padding-bottom:158px!important;
    box-sizing:border-box!important;
  }

  .cb-hero-fixed-mobile-cta-v54 .cb-hero-fixed-date-cta-v54{
    position:absolute!important;
    left:24px!important;
    right:24px!important;
    bottom:calc(34px + env(safe-area-inset-bottom))!important;
    z-index:20!important;

    display:flex!important;
    align-items:center!important;
    justify-content:center!important;

    width:auto!important;
    max-width:none!important;
    min-height:54px!important;
    margin:0!important;
    transform:none!important;

    border-radius:999px!important;
    box-shadow:
      0 18px 54px rgba(0,0,0,.30),
      0 12px 34px rgba(151,103,38,.22)!important;
  }

  .cb-hero-fixed-mobile-cta-v54 .cb-hero-fixed-trustline-v54{
    position:absolute!important;
    left:22px!important;
    right:22px!important;
    bottom:calc(102px + env(safe-area-inset-bottom))!important;
    z-index:20!important;

    display:block!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;

    color:rgba(255,250,243,.88)!important;
    font-family:var(--cb-sans)!important;
    font-size:10px!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:.075em!important;
    text-align:center!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;

    text-shadow:0 2px 18px rgba(0,0,0,.42)!important;
  }

  /* Le contenu central ne doit plus pousser le CTA */
  .cb-hero-fixed-mobile-cta-v54 .cb-hero-content,
  .cb-hero-fixed-mobile-cta-v54 .cb-hero-copy,
  .cb-hero-fixed-mobile-cta-v54 [class*="hero-content"],
  .cb-hero-fixed-mobile-cta-v54 [class*="hero-copy"]{
    padding-bottom:0!important;
    max-height:calc(100dvh - 250px)!important;
  }

  /* On évite les doublons de boutons galerie dans le hero */
  .cb-hero-fixed-mobile-cta-v54 a[href="#galerie-signature"],
  .cb-hero-fixed-mobile-cta-v54 a[href="#portfolio-immersif"],
  .cb-hero-fixed-mobile-cta-v54 a[href="#galerie-suite"]{
    display:none!important;
  }

  /* La barre mobile reste gérée par V2.52 : cachée sur le hero, visible après */
  .cb-mobile-quickbar-v52:not(.cb-mobile-quickbar-visible-v52){
    opacity:0!important;
    pointer-events:none!important;
  }
}

@media(max-width:380px){
  .cb-hero-fixed-mobile-cta-v54 .cb-hero-fixed-date-cta-v54{
    left:18px!important;
    right:18px!important;
    min-height:52px!important;
  }

  .cb-hero-fixed-mobile-cta-v54 .cb-hero-fixed-trustline-v54{
    left:16px!important;
    right:16px!important;
    font-size:9.2px!important;
    letter-spacing:.055em!important;
  }
}

/* =========================================================
   V2.55 — Contact SAS : drawer desktop + plein écran mobile
   ========================================================= */

/* Le fond du site reste visible, flouté, derrière le contact */
.cb-contact-slide-backdrop{
  background:
    radial-gradient(circle at 70% 18%, rgba(232,201,134,.10), transparent 34%),
    rgba(5,4,3,.58)!important;
  backdrop-filter:blur(16px)!important;
  -webkit-backdrop-filter:blur(16px)!important;
}

/* Desktop : retour au tiroir premium, plus large qu’avant */
@media(min-width:981px){
  .cb-contact-slide{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    overflow:hidden!important;
  }

  .cb-contact-slide-panel{
    position:absolute!important;
    inset:24px 24px 24px auto!important;
    left:auto!important;
    right:24px!important;
    top:24px!important;
    bottom:24px!important;

    width:min(900px,58vw)!important;
    max-width:900px!important;
    height:auto!important;
    max-height:calc(100dvh - 48px)!important;

    border-radius:36px!important;
    border-left:1px solid rgba(255,255,255,.12)!important;
    border:1px solid rgba(255,255,255,.13)!important;

    overflow:hidden!important;
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr)!important;

    box-shadow:
      -28px 0 90px rgba(0,0,0,.38),
      0 24px 90px rgba(0,0,0,.32),
      inset 0 1px 0 rgba(255,255,255,.06)!important;

    animation:cbContactDrawerInV55 .32s ease both!important;
  }

  @keyframes cbContactDrawerInV55{
    from{
      opacity:0;
      transform:translateX(34px) scale(.985);
    }
    to{
      opacity:1;
      transform:translateX(0) scale(1);
    }
  }

  .cb-contact-slide-header{
    position:relative!important;
    top:auto!important;
    padding:24px 30px!important;
  }

  .cb-contact-slide-header strong{
    max-width:620px!important;
    font-size:clamp(42px,4.2vw,68px)!important;
    line-height:.94!important;
  }

  .cb-contact-sas-body{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:24px 30px 32px!important;
    -webkit-overflow-scrolling:touch!important;
  }

  .cb-contact-sas-intro{
    max-width:680px!important;
  }

  .cb-contact-sas-intro p{
    font-size:17px!important;
    line-height:1.58!important;
    color:rgba(247,239,228,.74)!important;
  }

  .cb-contact-sas-steps{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
    margin-top:18px!important;
    max-width:none!important;
  }

  .cb-contact-sas-steps article{
    min-height:92px!important;
    display:block!important;
    padding:15px!important;
    border-radius:20px!important;
  }

  .cb-contact-sas-steps strong{
    display:block!important;
    min-width:0!important;
    margin:0 0 12px!important;
  }

  .cb-contact-sas-steps span{
    display:block!important;
    font-size:clamp(22px,1.8vw,30px)!important;
    line-height:1!important;
  }

  .cb-contact-sas-form-card{
    width:100%!important;
    max-width:none!important;
    justify-self:auto!important;
    margin:18px 0 0!important;
    padding:22px!important;
    border-radius:28px!important;
  }
}

/* Desktop : le formulaire doit rester lisible dans le drawer */
@media(min-width:981px){
  .cb-contact-slide-moved-form input,
  .cb-contact-slide-moved-form textarea,
  .cb-contact-slide-moved-form select{
    background:rgba(255,255,255,.075)!important;
    border-color:rgba(255,255,255,.14)!important;
    color:#f7efe4!important;
  }

  .cb-contact-slide-moved-form fieldset,
  .cb-contact-slide-moved-form [class*="checkbox"],
  .cb-contact-slide-moved-form [class*="choice"],
  .cb-contact-slide-moved-form [class*="option"]{
    border-color:rgba(255,255,255,.12)!important;
  }
}

/* Mobile : on conserve le plein écran natif validé */
@media(max-width:760px){
  .cb-contact-slide-panel{
    inset:0!important;
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;
    border:0!important;
  }
}

/* =========================================================
   V2.56 — Polish drawer contact desktop
   ========================================================= */

.cb-contact-slide-backdrop{
  background:
    radial-gradient(circle at 68% 14%, rgba(232,201,134,.08), transparent 34%),
    rgba(5,4,3,.54)!important;
  backdrop-filter:blur(18px) saturate(.92)!important;
  -webkit-backdrop-filter:blur(18px) saturate(.92)!important;
}

/* Desktop : tiroir plus élégant, moins massif */
@media(min-width:981px){
  .cb-contact-slide-panel{
    inset:28px 28px 28px auto!important;
    width:min(860px,56vw)!important;
    max-width:860px!important;
    max-height:calc(100dvh - 56px)!important;

    border-radius:34px!important;
    background:
      radial-gradient(circle at 82% 4%,rgba(232,201,134,.13),transparent 30%),
      linear-gradient(180deg,#1d1612 0%,#100c0a 48%,#080604 100%)!important;

    border:1px solid rgba(255,255,255,.12)!important;
    box-shadow:
      -30px 0 90px rgba(0,0,0,.30),
      0 26px 90px rgba(0,0,0,.30),
      inset 0 1px 0 rgba(255,255,255,.055)!important;
  }

  .cb-contact-slide-header{
    padding:22px 28px 20px!important;
    min-height:auto!important;
    border-bottom:1px solid rgba(255,255,255,.09)!important;
    background:
      radial-gradient(circle at 86% 4%,rgba(232,201,134,.10),transparent 34%),
      linear-gradient(180deg,rgba(29,22,18,.98),rgba(18,13,11,.94))!important;
  }

  .cb-contact-slide-header span{
    margin-bottom:7px!important;
    font-size:10px!important;
    letter-spacing:.18em!important;
  }

  .cb-contact-slide-header strong{
    max-width:calc(100% - 150px)!important;
    font-size:clamp(40px,3.6vw,58px)!important;
    line-height:.94!important;
    letter-spacing:-.055em!important;
  }

  .cb-contact-slide-header button{
    min-height:48px!important;
    padding:0 20px!important;
    background:rgba(255,255,255,.075)!important;
    border-color:rgba(255,255,255,.14)!important;
  }

  .cb-contact-slide-header button:hover{
    background:rgba(255,255,255,.11)!important;
  }

  .cb-contact-sas-body{
    padding:22px 28px 30px!important;
    scroll-padding-top:0!important;
  }

  .cb-contact-sas-intro p{
    max-width:680px!important;
    margin:0!important;
    font-size:16px!important;
    line-height:1.55!important;
    color:rgba(247,239,228,.72)!important;
  }

  .cb-contact-sas-steps{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
    margin-top:16px!important;
  }

  .cb-contact-sas-steps article{
    min-height:82px!important;
    padding:14px!important;
    border-radius:19px!important;
    background:rgba(255,255,255,.055)!important;
    border-color:rgba(255,255,255,.10)!important;
  }

  .cb-contact-sas-steps strong{
    margin-bottom:10px!important;
    color:#e8c986!important;
  }

  .cb-contact-sas-steps span{
    font-size:clamp(21px,1.6vw,28px)!important;
  }

  .cb-contact-sas-form-card{
    margin-top:16px!important;
    padding:20px!important;
    border-radius:28px!important;
    background:
      radial-gradient(circle at 92% 0%,rgba(232,201,134,.08),transparent 28%),
      rgba(255,255,255,.055)!important;
    border:1px solid rgba(255,255,255,.105)!important;
    box-shadow:0 22px 70px rgba(0,0,0,.20)!important;
  }

  .cb-contact-sas-form-kicker{
    margin-bottom:16px!important;
  }
}

/* Formulaire : intégration sombre premium */
.cb-contact-slide-moved-form label,
.cb-contact-slide-moved-form .label,
.cb-contact-slide-moved-form [class*="label"]{
  color:rgba(232,201,134,.76)!important;
}

.cb-contact-slide-moved-form input:not([type="checkbox"]):not([type="radio"]),
.cb-contact-slide-moved-form textarea,
.cb-contact-slide-moved-form select{
  background:rgba(255,255,255,.072)!important;
  border:1px solid rgba(255,255,255,.13)!important;
  color:#f7efe4!important;
}

.cb-contact-slide-moved-form input:not([type="checkbox"]):not([type="radio"]):focus,
.cb-contact-slide-moved-form textarea:focus,
.cb-contact-slide-moved-form select:focus{
  background:rgba(255,255,255,.095)!important;
  border-color:rgba(232,201,134,.52)!important;
}

/* Les blocs checkbox ne doivent plus ressortir en gris clair */
.cb-contact-slide-moved-form fieldset{
  background:rgba(255,255,255,.045)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:24px!important;
  color:#f7efe4!important;
}

.cb-contact-slide-moved-form label:has(input[type="checkbox"]),
.cb-contact-slide-moved-form label:has(input[type="radio"]){
  display:inline-flex!important;
  align-items:center!important;
  gap:10px!important;
  min-height:46px!important;
  padding:0 14px!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.075)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  color:#f7efe4!important;
  font-family:var(--cb-sans)!important;
  font-size:14px!important;
  font-weight:750!important;
  letter-spacing:0!important;
  text-transform:none!important;
}

.cb-contact-slide-moved-form label:has(input[type="checkbox"]):hover,
.cb-contact-slide-moved-form label:has(input[type="radio"]):hover{
  background:rgba(255,255,255,.10)!important;
  border-color:rgba(232,201,134,.26)!important;
}

.cb-contact-slide-moved-form input[type="checkbox"],
.cb-contact-slide-moved-form input[type="radio"]{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  max-height:18px!important;
  padding:0!important;
  margin:0!important;
  border-radius:5px!important;
  background:rgba(0,0,0,.20)!important;
  border:1px solid rgba(255,255,255,.36)!important;
  box-shadow:none!important;
}

.cb-contact-slide-moved-form input[type="radio"]{
  border-radius:999px!important;
}

.cb-contact-slide-moved-form input[type="checkbox"]:checked,
.cb-contact-slide-moved-form input[type="radio"]:checked{
  background:#e8c986!important;
  border-color:#e8c986!important;
  box-shadow:inset 0 0 0 4px rgba(24,17,13,.92)!important;
}

/* Si certains wrappers héritent encore d’un fond clair */
.cb-contact-slide-moved-form [class*="checkbox"],
.cb-contact-slide-moved-form [class*="radio"],
.cb-contact-slide-moved-form [class*="choice"],
.cb-contact-slide-moved-form [class*="option"]{
  color:#f7efe4!important;
}

/* Mobile : on conserve le plein écran validé, avec le même polish de champs */
@media(max-width:760px){
  .cb-contact-slide-header strong{
    max-width:calc(100% - 104px)!important;
  }

  .cb-contact-sas-form-card{
    background:rgba(255,255,255,.055)!important;
    border-color:rgba(255,255,255,.105)!important;
  }

  .cb-contact-slide-moved-form label:has(input[type="checkbox"]),
  .cb-contact-slide-moved-form label:has(input[type="radio"]){
    min-height:44px!important;
    padding:0 12px!important;
    font-size:13px!important;
  }
}

/* =========================================================
   V2.57 — Polish ciblé du drawer contact
   ========================================================= */

/* Backdrop : site visible mais plus doux */
.cb-contact-drawer-polished-v57 .cb-contact-slide-backdrop{
  background:
    radial-gradient(circle at 70% 16%, rgba(232,201,134,.08), transparent 34%),
    rgba(5,4,3,.52)!important;
  backdrop-filter:blur(20px) saturate(.86)!important;
  -webkit-backdrop-filter:blur(20px) saturate(.86)!important;
}

/* Desktop : drawer plus élégant, non plein écran */
@media(min-width:981px){
  .cb-contact-drawer-polished-v57 .cb-contact-slide-panel,
  .cb-contact-panel-polished-v57{
    position:absolute!important;
    top:28px!important;
    right:28px!important;
    bottom:28px!important;
    left:auto!important;
    inset:28px 28px 28px auto!important;

    width:min(860px,56vw)!important;
    max-width:860px!important;
    height:auto!important;
    max-height:calc(100dvh - 56px)!important;

    border-radius:34px!important;
    overflow:hidden!important;

    background:
      radial-gradient(circle at 84% 3%,rgba(232,201,134,.12),transparent 30%),
      linear-gradient(180deg,#1d1612 0%,#100c0a 48%,#080604 100%)!important;

    border:1px solid rgba(255,255,255,.12)!important;
    box-shadow:
      -30px 0 90px rgba(0,0,0,.30),
      0 26px 90px rgba(0,0,0,.30),
      inset 0 1px 0 rgba(255,255,255,.055)!important;

    display:grid!important;
    grid-template-rows:auto minmax(0,1fr)!important;
  }

  .cb-contact-drawer-polished-v57 .cb-contact-slide-header{
    position:relative!important;
    top:auto!important;
    padding:22px 28px 20px!important;
    border-bottom:1px solid rgba(255,255,255,.09)!important;
    background:
      radial-gradient(circle at 86% 4%,rgba(232,201,134,.10),transparent 34%),
      linear-gradient(180deg,rgba(29,22,18,.98),rgba(18,13,11,.94))!important;
  }

  .cb-contact-drawer-polished-v57 .cb-contact-slide-header strong{
    max-width:calc(100% - 150px)!important;
    font-size:clamp(40px,3.6vw,58px)!important;
    line-height:.94!important;
    letter-spacing:-.055em!important;
  }

  .cb-contact-drawer-polished-v57 .cb-contact-slide-header button{
    min-height:48px!important;
    padding:0 20px!important;
    background:rgba(255,255,255,.075)!important;
    border-color:rgba(255,255,255,.14)!important;
  }

  .cb-contact-drawer-polished-v57 .cb-contact-sas-body,
  .cb-contact-body-polished-v57{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:22px 28px 30px!important;
    -webkit-overflow-scrolling:touch!important;
  }

  .cb-contact-drawer-polished-v57 .cb-contact-sas-intro p{
    max-width:680px!important;
    margin:0!important;
    font-size:16px!important;
    line-height:1.55!important;
    color:rgba(247,239,228,.72)!important;
  }

  .cb-contact-drawer-polished-v57 .cb-contact-sas-steps{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
    margin-top:16px!important;
  }

  .cb-contact-drawer-polished-v57 .cb-contact-sas-steps article{
    min-height:82px!important;
    display:block!important;
    padding:14px!important;
    border-radius:19px!important;
    background:rgba(255,255,255,.055)!important;
    border:1px solid rgba(255,255,255,.10)!important;
  }

  .cb-contact-drawer-polished-v57 .cb-contact-sas-steps span{
    font-size:clamp(21px,1.6vw,28px)!important;
    line-height:1!important;
  }

  .cb-contact-drawer-polished-v57 .cb-contact-sas-form-card{
    margin-top:16px!important;
    padding:20px!important;
    border-radius:28px!important;
    background:
      radial-gradient(circle at 92% 0%,rgba(232,201,134,.08),transparent 28%),
      rgba(255,255,255,.055)!important;
    border:1px solid rgba(255,255,255,.105)!important;
    box-shadow:0 22px 70px rgba(0,0,0,.20)!important;
  }
}

/* Champs : ciblage direct par classes ajoutées */
.cb-contact-form-polished-v57 .cb-contact-field-v57{
  background:rgba(255,255,255,.072)!important;
  border:1px solid rgba(255,255,255,.13)!important;
  color:#f7efe4!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045)!important;
}

.cb-contact-form-polished-v57 .cb-contact-field-v57:focus{
  background:rgba(255,255,255,.095)!important;
  border-color:rgba(232,201,134,.52)!important;
  box-shadow:
    0 0 0 3px rgba(232,201,134,.12),
    inset 0 1px 0 rgba(255,255,255,.045)!important;
}

/* Groupes de choix : plus de gros fond gris clair */
.cb-contact-form-polished-v57 .cb-contact-choice-group-v57{
  background:rgba(255,255,255,.045)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:24px!important;
  color:#f7efe4!important;
}

/* Labels checkbox/radio, même si le HTML d’origine est atypique */
.cb-contact-form-polished-v57 .cb-contact-choice-label-v57{
  display:inline-flex!important;
  align-items:center!important;
  gap:10px!important;
  min-height:46px!important;
  padding:0 14px!important;
  border-radius:16px!important;

  background:rgba(255,255,255,.075)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  color:#f7efe4!important;

  font-family:var(--cb-sans)!important;
  font-size:14px!important;
  font-weight:750!important;
  letter-spacing:0!important;
  text-transform:none!important;
}

.cb-contact-form-polished-v57 .cb-contact-choice-label-v57:hover{
  background:rgba(255,255,255,.10)!important;
  border-color:rgba(232,201,134,.26)!important;
}

.cb-contact-form-polished-v57 .cb-contact-choice-input-v57{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  max-height:18px!important;
  padding:0!important;
  margin:0!important;
  border-radius:5px!important;
  background:rgba(0,0,0,.20)!important;
  border:1px solid rgba(255,255,255,.36)!important;
  box-shadow:none!important;
}

.cb-contact-form-polished-v57 input[type="radio"].cb-contact-choice-input-v57{
  border-radius:999px!important;
}

.cb-contact-form-polished-v57 .cb-contact-choice-input-v57:checked{
  background:#e8c986!important;
  border-color:#e8c986!important;
  box-shadow:inset 0 0 0 4px rgba(24,17,13,.92)!important;
}

/* Fallback agressif mais limité au formulaire du SAS */
.cb-contact-form-polished-v57 [style*="background: rgb(255"],
.cb-contact-form-polished-v57 [style*="background-color: rgb(255"],
.cb-contact-form-polished-v57 [style*="background:#fff"],
.cb-contact-form-polished-v57 [style*="background: #fff"]{
  background:rgba(255,255,255,.075)!important;
  color:#f7efe4!important;
}

/* Mobile : ne casse pas le plein écran validé */
@media(max-width:760px){
  .cb-contact-drawer-polished-v57 .cb-contact-slide-panel{
    inset:0!important;
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;
    border:0!important;
  }

  .cb-contact-form-polished-v57 .cb-contact-choice-label-v57{
    min-height:44px!important;
    padding:0 12px!important;
    font-size:13px!important;
  }
}

/* =========================================================
   V2.58 — Sécurité visuelle contact inline polish
   ========================================================= */

@media(min-width:981px){
  .cb-contact-slide .cb-contact-slide-panel{
    width:min(860px,56vw)!important;
    max-width:860px!important;
    border-radius:34px!important;
  }
}

/* Fallback CSS limité au formulaire du SAS */
.cb-contact-slide form input:not([type="checkbox"]):not([type="radio"]),
.cb-contact-slide form textarea,
.cb-contact-slide form select{
  background:rgba(255,255,255,.072)!important;
  border-color:rgba(255,255,255,.13)!important;
  color:#f7efe4!important;
}

.cb-contact-slide form input[type="checkbox"],
.cb-contact-slide form input[type="radio"]{
  background:rgba(0,0,0,.20)!important;
  border-color:rgba(255,255,255,.36)!important;
}

/* =========================================================
   V2.59 — Contact desktop clean
   ========================================================= */

@media(min-width:981px){
  .cb-contact-slide .cb-contact-slide-panel{
    width:min(800px,54vw)!important;
    max-width:800px!important;
    border-radius:34px!important;
  }

  .cb-contact-slide .cb-contact-sas-steps{
    display:none!important;
  }
}

/* Fallback limité au SAS */
.cb-contact-slide form input:not([type="checkbox"]):not([type="radio"]),
.cb-contact-slide form textarea,
.cb-contact-slide form select{
  background:rgba(255,255,255,.072)!important;
  border-color:rgba(255,255,255,.13)!important;
  color:#f7efe4!important;
}

.cb-contact-slide form fieldset{
  background:rgba(255,255,255,.035)!important;
  border-color:rgba(255,255,255,.10)!important;
}

.cb-contact-slide form label{
  color:rgba(247,239,228,.88)!important;
}

/* =========================================================
   V2.60A — Bridge contact depuis les overlays
   ========================================================= */

/* Sécurité : le SAS contact doit passer au-dessus des immersions/galeries */
.cb-contact-slide{
  z-index:2147483646!important;
}

/* =========================================================
   V2.61 — Hero mobile : CTA + rassurance vraiment en bas
   ========================================================= */

@media(max-width:760px){
  .cb-hero-fixed-mobile-cta-v54{
    position:relative!important;
    height:100dvh!important;
    min-height:100dvh!important;
    overflow:hidden!important;

    /* On réserve une vraie zone basse pour rassurance + CTA */
    padding-bottom:150px!important;
  }

  /* Dégradé bas pour que la rassurance et le bouton restent lisibles */
  .cb-hero-fixed-mobile-cta-v54::after{
    content:""!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    height:34vh!important;
    z-index:12!important;
    pointer-events:none!important;
    background:linear-gradient(
      180deg,
      rgba(5,4,3,0) 0%,
      rgba(5,4,3,.24) 34%,
      rgba(5,4,3,.70) 100%
    )!important;
  }

  /* Le contenu narratif remonte un peu pour ne jamais passer sous le CTA */
  .cb-hero-fixed-mobile-cta-v54 .cb-hero-content,
  .cb-hero-fixed-mobile-cta-v54 .cb-hero-copy,
  .cb-hero-fixed-mobile-cta-v54 [class*="hero-content"],
  .cb-hero-fixed-mobile-cta-v54 [class*="hero-copy"]{
    position:relative!important;
    z-index:14!important;
    max-height:calc(100dvh - 255px)!important;
    transform:translateY(-24px)!important;
  }

  /* La ligne de rassurance descend juste au-dessus du bouton */
  .cb-hero-fixed-mobile-cta-v54 .cb-hero-fixed-trustline-v54,
  .cb-hero-fixed-mobile-cta-v54 .cb-hero-mobile-trustline{
    position:absolute!important;
    left:18px!important;
    right:18px!important;
    bottom:calc(84px + env(safe-area-inset-bottom))!important;
    z-index:22!important;

    display:block!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;

    text-align:center!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;

    color:rgba(255,250,243,.86)!important;
    font-family:var(--cb-sans)!important;
    font-size:9.4px!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:.062em!important;
    text-transform:uppercase!important;
    text-shadow:0 2px 18px rgba(0,0,0,.48)!important;
  }

  /* Le bouton est vraiment posé tout en bas du hero */
  .cb-hero-fixed-mobile-cta-v54 .cb-hero-fixed-date-cta-v54{
    position:absolute!important;
    left:22px!important;
    right:22px!important;
    bottom:calc(18px + env(safe-area-inset-bottom))!important;
    z-index:23!important;

    min-height:54px!important;
    margin:0!important;
    transform:none!important;
  }

  /* Sécurité : les boutons secondaires du hero restent cachés */
  .cb-hero-fixed-mobile-cta-v54 a[href="#galerie-signature"],
  .cb-hero-fixed-mobile-cta-v54 a[href="#portfolio-immersif"],
  .cb-hero-fixed-mobile-cta-v54 a[href="#galerie-suite"]{
    display:none!important;
  }
}

@media(max-width:380px){
  .cb-hero-fixed-mobile-cta-v54{
    padding-bottom:142px!important;
  }

  .cb-hero-fixed-mobile-cta-v54 .cb-hero-content,
  .cb-hero-fixed-mobile-cta-v54 .cb-hero-copy,
  .cb-hero-fixed-mobile-cta-v54 [class*="hero-content"],
  .cb-hero-fixed-mobile-cta-v54 [class*="hero-copy"]{
    transform:translateY(-30px)!important;
    max-height:calc(100dvh - 248px)!important;
  }

  .cb-hero-fixed-mobile-cta-v54 .cb-hero-fixed-date-cta-v54{
    left:18px!important;
    right:18px!important;
    bottom:calc(16px + env(safe-area-inset-bottom))!important;
    min-height:52px!important;
  }

  .cb-hero-fixed-mobile-cta-v54 .cb-hero-fixed-trustline-v54,
  .cb-hero-fixed-mobile-cta-v54 .cb-hero-mobile-trustline{
    bottom:calc(80px + env(safe-area-inset-bottom))!important;
    font-size:8.8px!important;
    letter-spacing:.045em!important;
  }
}

/* =========================================================
   V2.62 — Hero mobile : vrai dock collé en bas
   ========================================================= */

@media(max-width:760px){
  .cb-hero-has-bottom-dock-v62{
    position:relative!important;
    height:100dvh!important;
    min-height:100dvh!important;
    overflow:hidden!important;
    padding-bottom:138px!important;
  }

  /* On masque les anciens éléments qui étaient influencés par les wrappers */
  .cb-hero-old-bottom-item-v62,
  .cb-hero-fixed-mobile-cta-v54 .cb-hero-fixed-date-cta-v54,
  .cb-hero-fixed-mobile-cta-v54 .cb-hero-fixed-trustline-v54{
    display:none!important;
  }

  .cb-hero-bottom-dock-v62{
    position:absolute!important;
    left:18px!important;
    right:18px!important;
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
    z-index:80!important;

    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:10px!important;

    pointer-events:auto!important;
  }

  .cb-hero-bottom-dock-v62::before{
    content:""!important;
    position:absolute!important;
    left:-18px!important;
    right:-18px!important;
    bottom:calc(-8px - env(safe-area-inset-bottom))!important;
    height:138px!important;
    z-index:-1!important;
    pointer-events:none!important;
    background:linear-gradient(
      180deg,
      rgba(5,4,3,0) 0%,
      rgba(5,4,3,.36) 34%,
      rgba(5,4,3,.78) 100%
    )!important;
  }

  .cb-hero-bottom-trustline-v62{
    margin:0!important;
    padding:0 4px!important;

    color:rgba(255,250,243,.88)!important;
    font-family:var(--cb-sans)!important;
    font-size:9.6px!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:.06em!important;
    text-align:center!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    text-shadow:0 2px 18px rgba(0,0,0,.55)!important;
  }

  .cb-hero-bottom-cta-v62{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;

    width:100%!important;
    min-height:54px!important;
    margin:0!important;
    padding:0 18px!important;

    border-radius:999px!important;
    border:0!important;
    text-decoration:none!important;

    color:#18110d!important;
    background:linear-gradient(135deg,#e8c986,#c89f56)!important;
    box-shadow:
      0 18px 54px rgba(0,0,0,.34),
      0 12px 34px rgba(151,103,38,.24)!important;

    font-family:var(--cb-sans)!important;
    font-size:11px!important;
    font-weight:900!important;
    letter-spacing:.12em!important;
    text-transform:uppercase!important;
  }

  .cb-hero-bottom-cta-v62:active{
    transform:scale(.985)!important;
  }

  /* Le contenu narratif garde sa place au-dessus du dock */
  .cb-hero-has-bottom-dock-v62 .cb-hero-content,
  .cb-hero-has-bottom-dock-v62 .cb-hero-copy,
  .cb-hero-has-bottom-dock-v62 [class*="hero-content"],
  .cb-hero-has-bottom-dock-v62 [class*="hero-copy"]{
    max-height:calc(100dvh - 238px)!important;
    transform:translateY(-18px)!important;
  }
}

@media(max-width:380px){
  .cb-hero-bottom-dock-v62{
    left:14px!important;
    right:14px!important;
    bottom:calc(6px + env(safe-area-inset-bottom))!important;
    gap:9px!important;
  }

  .cb-hero-bottom-cta-v62{
    min-height:52px!important;
    font-size:10.5px!important;
  }

  .cb-hero-bottom-trustline-v62{
    font-size:8.8px!important;
    letter-spacing:.045em!important;
  }
}

/* =========================================================
   V2.63 — Fix mobile hero + contact fullscreen mobile
   ========================================================= */

@media(max-width:760px){
  .cb-hero-has-bottom-dock-v63{
    position:relative!important;
    height:100dvh!important;
    min-height:100dvh!important;
    overflow:hidden!important;
    padding-bottom:138px!important;
  }

  .cb-hero-old-contact-cta-v63{
    display:none!important;
  }

  .cb-hero-bottom-dock-v62{
    display:none!important;
  }

  .cb-hero-bottom-dock-v63{
    position:absolute!important;
    left:18px!important;
    right:18px!important;
    bottom:calc(8px + env(safe-area-inset-bottom))!important;
    z-index:80!important;

    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:10px!important;
    pointer-events:auto!important;
  }

  .cb-hero-bottom-dock-v63::before{
    content:""!important;
    position:absolute!important;
    left:-18px!important;
    right:-18px!important;
    bottom:calc(-8px - env(safe-area-inset-bottom))!important;
    height:138px!important;
    z-index:-1!important;
    pointer-events:none!important;
    background:linear-gradient(
      180deg,
      rgba(5,4,3,0) 0%,
      rgba(5,4,3,.36) 34%,
      rgba(5,4,3,.78) 100%
    )!important;
  }

  .cb-hero-bottom-trustline-v63{
    margin:0!important;
    padding:0 4px!important;
    color:rgba(255,250,243,.88)!important;
    font-family:var(--cb-sans)!important;
    font-size:9.6px!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:.06em!important;
    text-align:center!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    text-shadow:0 2px 18px rgba(0,0,0,.55)!important;
  }

  .cb-hero-bottom-cta-v63{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-height:54px!important;
    margin:0!important;
    padding:0 18px!important;
    border-radius:999px!important;
    border:0!important;
    text-decoration:none!important;
    color:#18110d!important;
    background:linear-gradient(135deg,#e8c986,#c89f56)!important;
    box-shadow:
      0 18px 54px rgba(0,0,0,.34),
      0 12px 34px rgba(151,103,38,.24)!important;
    font-family:var(--cb-sans)!important;
    font-size:11px!important;
    font-weight:900!important;
    letter-spacing:.12em!important;
    text-transform:uppercase!important;
  }

  .cb-hero-has-bottom-dock-v63 .cb-hero-content,
  .cb-hero-has-bottom-dock-v63 .cb-hero-copy,
  .cb-hero-has-bottom-dock-v63 [class*="hero-content"],
  .cb-hero-has-bottom-dock-v63 [class*="hero-copy"]{
    max-height:calc(100dvh - 238px)!important;
    transform:translateY(-18px)!important;
  }

  /* Contact SAS : mobile plein écran quoi qu’il arrive */
  .cb-contact-slide{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
    z-index:2147483646!important;
  }

  .cb-contact-slide .cb-contact-slide-panel{
    position:absolute!important;
    inset:0!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;
    border:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    display:block!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
  }

  .cb-contact-slide .cb-contact-sas-body{
    display:block!important;
    height:auto!important;
    min-height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    padding:14px 12px calc(34px + env(safe-area-inset-bottom))!important;
  }
}

@media(max-width:380px){
  .cb-hero-bottom-dock-v63{
    left:14px!important;
    right:14px!important;
    bottom:calc(6px + env(safe-area-inset-bottom))!important;
    gap:9px!important;
  }

  .cb-hero-bottom-cta-v63{
    min-height:52px!important;
    font-size:10.5px!important;
  }

  .cb-hero-bottom-trustline-v63{
    font-size:8.8px!important;
    letter-spacing:.045em!important;
  }
}

/* =========================================================
   V2.64 — Fix doublon hero mobile + CSS SAS mobile
   ========================================================= */

@media(max-width:760px){
  /* Masque l’ancien CTA hero, avec plus de spécificité que les anciennes règles */
  .cb-hero-v64-single-cta .cb-hero-v64-hide-old-cta,
  .cb-hero-v64-single-cta a.cb-hero-v64-hide-old-cta[href="#contact-formulaire"],
  .cb-hero-v64-single-cta [data-cb-open-contact-slide].cb-hero-v64-hide-old-cta{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  /* Le dock reste le seul CTA visible */
  .cb-hero-v64-single-cta .cb-hero-bottom-dock-v63{
    display:flex!important;
  }

  .cb-hero-v64-single-cta .cb-hero-bottom-dock-v63 .cb-hero-bottom-cta-v63{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }

  /* Contact SAS mobile : plein écran conservé */
  .cb-contact-slide,
  .cb-contact-slide .cb-contact-slide-panel{
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
  }

  .cb-contact-slide .cb-contact-slide-panel{
    inset:0!important;
    border-radius:0!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }

  /* Choices : fallback CSS */
  .cb-contact-slide form .cb-contact-choice-container-v64,
  .cb-contact-slide form fieldset{
    background:rgba(255,255,255,.045)!important;
    border:1px solid rgba(255,255,255,.10)!important;
    border-radius:24px!important;
    color:#f7efe4!important;
    box-shadow:none!important;
  }

  .cb-contact-slide form .cb-contact-choice-label-v64{
    background:rgba(255,255,255,.075)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    color:#f7efe4!important;
    border-radius:999px!important;
  }

  .cb-contact-slide form .cb-contact-choice-label-v64 *{
    color:#f7efe4!important;
  }
}

/* Desktop aussi : le groupe de choix reste dans le thème sombre */
.cb-contact-slide form .cb-contact-choice-container-v64,
.cb-contact-slide form fieldset{
  background:rgba(255,255,255,.045)!important;
  border-color:rgba(255,255,255,.10)!important;
  color:#f7efe4!important;
}

.cb-contact-slide form .cb-contact-choice-label-v64{
  background:rgba(255,255,255,.075)!important;
  border-color:rgba(255,255,255,.12)!important;
  color:#f7efe4!important;
}

/* =========================================================
   V2.65 — Contact SAS desktop polish only
   ========================================================= */

@media(min-width:981px){
  .cb-contact-slide .cb-contact-slide-panel{
    top:30px!important;
    right:30px!important;
    bottom:30px!important;
    left:auto!important;
    width:min(760px,50vw)!important;
    max-width:760px!important;
    height:auto!important;
    max-height:calc(100dvh - 60px)!important;
    border-radius:34px!important;
    overflow:hidden!important;
  }

  .cb-contact-slide .cb-contact-slide-header{
    padding:20px 26px!important;
  }

  .cb-contact-slide .cb-contact-slide-header strong{
    max-width:calc(100% - 132px)!important;
    font-size:clamp(34px,2.8vw,46px)!important;
    line-height:.96!important;
  }

  .cb-contact-slide .cb-contact-sas-body{
    padding:20px 26px 28px!important;
    overflow-y:auto!important;
  }

  .cb-contact-slide .cb-contact-sas-steps{
    display:none!important;
  }

  .cb-contact-slide .cb-contact-sas-form-card{
    margin:0!important;
    padding:18px!important;
    border-radius:26px!important;
    background:rgba(255,255,255,.052)!important;
    border-color:rgba(255,255,255,.095)!important;
  }

  .cb-contact-slide form fieldset{
    background:transparent!important;
    border:0!important;
    padding:0!important;
    box-shadow:none!important;
  }

  .cb-contact-slide form label{
    color:rgba(247,239,228,.9)!important;
  }
}

/* =========================================================
   V2.66 — Accessibilité rapide Lighthouse
   ========================================================= */

/* Lien d’évitement clavier */
.cb-skip-link-v66{
  position:fixed!important;
  top:12px!important;
  left:12px!important;
  z-index:2147483647!important;

  transform:translateY(-140%)!important;
  opacity:0!important;

  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;

  min-height:44px!important;
  padding:0 16px!important;
  border-radius:999px!important;

  color:#18110d!important;
  background:#e8c986!important;
  border:1px solid rgba(24,17,13,.20)!important;
  box-shadow:0 16px 44px rgba(0,0,0,.26)!important;

  font-family:var(--cb-sans, system-ui, sans-serif)!important;
  font-size:12px!important;
  font-weight:900!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
}

.cb-skip-link-v66:focus{
  transform:translateY(0)!important;
  opacity:1!important;
}

/* Focus visibles premium */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[role="button"]:focus-visible{
  outline:3px solid rgba(232,201,134,.88)!important;
  outline-offset:4px!important;
  box-shadow:0 0 0 6px rgba(232,201,134,.16)!important;
}

/* Contraste des petits labels en mobile, notamment REPORTAGE */
@media(max-width:760px){
  .cb-reportage-kicker,
  .cb-section-kicker,
  .cb-gallery-kicker,
  .cb-proof-kicker,
  .cb-hero-kicker,
  [class*="kicker"],
  [class*="eyebrow"]{
    color:rgba(255,250,243,.94)!important;
    text-shadow:0 2px 18px rgba(0,0,0,.55)!important;
  }

  .cb-reportage-kicker,
  [class*="reportage"] [class*="kicker"]{
    background:rgba(0,0,0,.22)!important;
    border-color:rgba(255,255,255,.16)!important;
  }
}

/* Dots / petits contrôles : zone tactile minimale sans changer l’apparence */
.cb-hero button,
.cb-hero [role="button"]{
  -webkit-tap-highlight-color:transparent;
}

@media(max-width:760px){
  .cb-hero button,
  .cb-hero [role="button"]{
    min-width:36px;
    min-height:36px;
  }
}

/* =========================================================
   V2.67 — Render blocking mobile : garde-fous visuels
   ========================================================= */

/*
  Les CSS non critiques sont chargés en media=print/onload côté HTML.
  Ce bloc garde le rendu stable si les polices arrivent après le premier paint.
*/

html{
  font-synthesis-weight:none;
}

body{
  text-rendering:optimizeLegibility;
}

.cb-hero,
.cb-hero *{
  font-display:swap;
}

/* =========================================================
   V2.68 — Rollback defer CSS V2.67
   ========================================================= */

/*
  V2.67 a trop retardé le rendu visuel mobile.
  On conserve les optimisations sûres, mais les CSS redeviennent bloquants
  pour éviter l’écran noir prolongé au chargement.
*/

/* =========================================================
   V2.69 — Kickers lisibles + CTA contenu mobile masqués
   ========================================================= */

/* Kickers sur fonds clairs */
.cb-kicker-on-light-v69,
.cb-conversion-proof-kicker.cb-kicker-on-light-v69,
.cb-section-kicker.cb-kicker-on-light-v69,
.cb-hero-kicker.cb-kicker-on-light-v69,
.cb-reportage-kicker.cb-kicker-on-light-v69,
.cb-gallery-kicker.cb-kicker-on-light-v69,
.cb-proof-kicker.cb-kicker-on-light-v69{
  color:rgba(38,31,26,.72)!important;
  text-shadow:none!important;
}

/* Kickers sur fonds sombres ou images */
.cb-kicker-on-dark-v69,
.cb-section-kicker.cb-kicker-on-dark-v69,
.cb-hero-kicker.cb-kicker-on-dark-v69,
.cb-reportage-kicker.cb-kicker-on-dark-v69,
.cb-gallery-kicker.cb-kicker-on-dark-v69,
.cb-proof-kicker.cb-kicker-on-dark-v69{
  color:rgba(255,250,243,.92)!important;
  text-shadow:0 2px 18px rgba(0,0,0,.42)!important;
}

/* Cas explicitement vu : bloc conversion sur fond ivoire */
.cb-conversion-proof-kicker{
  color:rgba(38,31,26,.72)!important;
  text-shadow:none!important;
}

/* Sur mobile, le CTA fixe suffit : on retire les CTA de contenu */
@media(max-width:760px){
  .cb-mobile-hide-content-date-cta-v69{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  /* Gardes-fous : ne jamais masquer les CTA fixes validés */
  .cb-mobile-quickbar .cb-mobile-hide-content-date-cta-v69,
  .cb-hero-bottom-dock-v63 .cb-mobile-hide-content-date-cta-v69,
  .cb-hero-fixed-dock-v64 .cb-mobile-hide-content-date-cta-v69{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
}
