
:root{
  --black:#080b0c; --black2:#101516; --gold:#c79a47; --gold2:#e1bd72;
  --white:#fff; --ink:#121617; --muted:#687174; --line:rgba(255,255,255,.12);
  --wrap:1180px; --radius:2px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--black);overflow-x:hidden}
img{max-width:100%;height:auto} a{color:inherit} .wrap{width:min(var(--wrap),calc(100% - 48px));margin:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.site-header{position:fixed;inset:0 0 auto;z-index:1000;background:rgba(7,10,11,.72);border-bottom:1px solid rgba(255,255,255,.08);backdrop-filter:blur(14px);transition:.35s}
.site-header.scrolled{background:rgba(7,10,11,.96);box-shadow:0 8px 30px rgba(0,0,0,.28)}
.header-inner{width:min(1260px,calc(100% - 48px));height:74px;margin:auto;display:flex;align-items:center;gap:32px}
.brand img{display:block;width:190px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.35))}
.primary-nav{margin-left:auto;display:flex;gap:27px;align-items:center}
.primary-nav a{text-decoration:none;color:#fff;text-transform:uppercase;font-size:11px;letter-spacing:.07em;font-weight:700;opacity:.88}
.primary-nav a:hover{color:var(--gold2)}
.header-cta,.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;text-transform:uppercase;font-size:12px;font-weight:800;letter-spacing:.035em;padding:15px 21px;border:1px solid var(--gold);transition:.28s;cursor:pointer}
.header-cta,.btn-gold{background:linear-gradient(135deg,var(--gold2),#a8752d);color:#111;border-color:transparent}
.header-cta:hover,.btn-gold:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(196,148,63,.26)}
.btn-outline{color:#fff;background:transparent}.btn-outline:hover{background:var(--gold);color:#111}
.menu-toggle{display:none;margin-left:auto;background:none;border:0;padding:8px}.menu-toggle span:not(.sr-only){display:block;width:26px;height:2px;background:#fff;margin:5px}
.hero{position:relative;min-height:780px;color:#fff;overflow:hidden;background:#050708}
.hero-media{position:absolute;inset:0;background-image:var(--hero-image);background-size:cover;background-position:center 38%;transform:scale(1.015);animation:heroZoom 14s ease-in-out infinite alternate}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,8,9,.98) 0%,rgba(5,8,9,.92) 31%,rgba(5,8,9,.35) 61%,rgba(5,8,9,.12) 100%)}
.hero-glow{position:absolute;width:760px;height:760px;left:35%;top:5%;background:radial-gradient(circle,rgba(215,168,79,.16),transparent 66%);filter:blur(5px);animation:glow 7s ease-in-out infinite alternate}
.hero-content{position:relative;z-index:2;min-height:780px;padding:142px 0 45px;display:flex;flex-direction:column;justify-content:space-between}
.hero-copy{max-width:480px}.hero-wordmark{font-size:42px;font-weight:900;letter-spacing:-.045em;margin-bottom:16px}.hero-wordmark strong{color:var(--gold2)}.hero-copy h1{text-transform:uppercase;font-size:42px;line-height:1.08;margin:0 0 18px;max-width:470px}.gold-rule{display:block;width:42px;height:4px;background:var(--gold);margin:0 0 22px}.hero-copy p{font-size:16px;line-height:1.6;color:#e7e7e7;max-width:460px}.button-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px}
.hero-features{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;max-width:1050px;padding-top:28px;border-top:1px solid rgba(255,255,255,.2)}
.hero-features article{display:flex;gap:12px;align-items:flex-start}.hero-features .icon{color:var(--gold2);font-size:27px;line-height:1}.hero-features strong{display:block;color:var(--gold2);font-size:11px;text-transform:uppercase;margin-bottom:6px}.hero-features small{display:block;color:#f0f0f0;font-size:11px;line-height:1.45}
.scroll-cue{position:absolute;z-index:3;bottom:12px;left:50%;color:var(--gold2);font-size:30px;text-decoration:none;animation:bounce 1.6s infinite}
.section{padding:72px 0}.section.light{background:#fff}.section.dark{background:radial-gradient(circle at 60% 40%,#162021 0,#0b0f10 52%,#070909 100%);color:#fff}.section-heading{text-align:center;margin-bottom:44px}.section-heading h2,.analysis-intro h2,.tech-copy h2,.expert-copy h2{font-size:30px;text-transform:uppercase;line-height:1.12;margin:0}.section-heading span,.tech-copy h2 span{color:var(--gold)}
.benefit-grid{display:grid;grid-template-columns:repeat(5,1fr)}.benefit{text-align:center;padding:8px 25px;border-right:1px solid #e6e6e6}.benefit:last-child{border-right:0}.benefit b{font-size:42px;font-weight:400;color:var(--gold)}.benefit h3{text-transform:uppercase;font-size:14px;margin:16px 0 8px}.benefit p{font-size:12px;line-height:1.5;color:#586064;margin:0}
.tech-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;align-items:center;min-height:510px}.eyebrow{text-transform:uppercase;letter-spacing:.09em;color:var(--gold2);font-size:12px;font-weight:800}.tech-copy>p:not(.eyebrow){color:#d4d8d8;line-height:1.65}.check-list{padding:0;list-style:none}.check-list li{position:relative;padding:8px 0 8px 25px;color:#eef0f0;font-size:14px}.check-list li:before{content:"✓";position:absolute;left:0;color:var(--gold2)}
.tech-visual{min-height:450px;display:grid;place-items:center;perspective:900px}.layer-stack{position:relative;width:600px;height:430px;transform:rotate(-6deg)}.layer{position:absolute;left:90px;width:430px;height:120px;border-radius:48% 57% 47% 46%;transform:skewX(-13deg);box-shadow:0 24px 42px rgba(0,0,0,.5);transition:.45s}.layer:hover{transform:skewX(-13deg) translateX(16px)}.layer span,.heel-ring span{position:absolute;color:var(--gold2);font-size:11px;text-transform:uppercase;font-weight:800;white-space:nowrap}.layer-1{top:34px;background:repeating-linear-gradient(45deg,#62686a 0 4px,#3c4143 4px 8px)}.layer-1 span{right:-150px;top:25px}.layer-2{top:125px;background:repeating-linear-gradient(135deg,#111 0 6px,#333 6px 12px)}.layer-2 span{left:-120px;top:44px}.layer-3{top:215px;background:linear-gradient(145deg,#eee7d7,#bea873)}.layer-3 span{right:-155px;top:45px}.layer-4{top:305px;background:linear-gradient(145deg,#292c2d,#080909)}.layer-4 span{right:-145px;top:57px}.heel-ring{position:absolute;width:95px;height:62px;border:16px solid #111;border-radius:50%;top:316px;left:83px}.heel-ring span{left:-140px;top:9px}
.analysis-intro{max-width:510px;margin-bottom:34px}.analysis-intro p{color:#626b6e;line-height:1.55}.analysis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.analysis-card h3{text-transform:uppercase;font-size:14px}.analysis-card p{font-size:12px;color:#626b6e}.analysis-image{height:260px;background:#e9eded;position:relative;overflow:hidden}.analysis-image:before,.analysis-image:after{content:"";position:absolute}.pressure-map{background:radial-gradient(circle at 35% 60%,#e83b28 0 7%,#f6ce36 8% 16%,#1daf5b 17% 25%,#1f76e3 26% 38%,transparent 39%),radial-gradient(circle at 66% 53%,#e83b28 0 7%,#f6ce36 8% 16%,#1daf5b 17% 25%,#1f76e3 26% 38%,transparent 39%),linear-gradient(#f5f8f8,#d9e5e5)}.pressure-map:after{left:49%;top:0;width:2px;height:100%;background:#fff}.runner-lab{background:linear-gradient(90deg,#e5e9e9 0 28%,#111 29% 31%,#edf1f1 32% 68%,#111 69% 71%,#e5e9e9 72%)}.runner-lab:before{width:70px;height:170px;left:50%;top:42px;background:#111;border-radius:40% 40% 20% 20%;transform:translateX(-50%) rotate(-8deg)}.clinic{background:linear-gradient(135deg,#d8e0df,#f4f6f5)}.clinic:before{width:170px;height:70px;border-radius:50%;background:#c6ae78;left:50%;top:105px;transform:translateX(-50%) rotate(-18deg);box-shadow:0 15px 0 #242829}
.sports-band{display:grid;grid-template-columns:29% 71%;min-height:290px;background:#090d0e;color:#fff}.sports-intro{padding:48px max(40px,calc((100vw - var(--wrap))/2));padding-right:35px;background:linear-gradient(135deg,#0d1516,#060708)}.sports-intro h2{text-transform:uppercase;font-size:25px}.sports-intro p{font-size:13px;color:#d8dcdc;line-height:1.5}.sports-strip{display:grid;grid-template-columns:repeat(6,1fr)}.sports-strip article{position:relative;background-image:linear-gradient(to top,rgba(0,0,0,.92),rgba(0,0,0,.05)),var(--sport);background-size:cover;background-position:center;filter:saturate(.8);transition:.35s}.sports-strip article:hover{filter:saturate(1.15);transform:scale(1.025);z-index:2}.sports-strip span{position:absolute;bottom:18px;left:0;right:0;text-align:center;text-transform:uppercase;font-weight:800;font-size:11px}
.expertise-layout{display:grid;grid-template-columns:34% 66%;align-items:center}.portrait{height:360px;background:linear-gradient(135deg,#2f3839,#070909);display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.portrait-silhouette{width:190px;height:310px;background:linear-gradient(#d3ab85 0 18%,#111 19% 100%);border-radius:48% 48% 15% 15%;box-shadow:0 0 60px rgba(0,0,0,.65)}.expert-copy{padding:20px 55px}.expert-copy p{line-height:1.6;color:#d5dada}.expert-points{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px}.expert-points span{font-size:11px;text-transform:uppercase;color:var(--gold2);font-weight:800}.signature{font-family:cursive;font-size:27px;margin-top:30px;text-align:right}.signature small{display:block;font-family:Arial;font-size:12px;color:#ddd}
.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.testimonial-grid blockquote{text-align:center;margin:0;padding:20px 30px;color:#4c5558;font-size:14px;line-height:1.55;position:relative}.testimonial-grid blockquote:before{content:"“";display:block;color:var(--gold);font-size:55px;line-height:.8}.testimonial-grid cite{display:block;margin-top:18px;color:#111;font-style:normal;font-weight:700;font-size:12px}
.site-footer{background:#080b0c;color:#fff}.footer-visual{min-height:300px;width:min(var(--wrap),calc(100% - 48px));margin:auto;display:grid;grid-template-columns:.8fr 1.2fr;align-items:center}.footer-visual h2{text-transform:uppercase;font-size:30px;margin:5px 0}.footer-visual p:not(.eyebrow){color:#d3d8d8}.footer-insole{display:grid;place-items:center}.insole-shape{width:480px;height:125px;border-radius:58% 48% 52% 42%;background:repeating-linear-gradient(135deg,#252929 0 8px,#090a0a 8px 16px);transform:rotate(-7deg);box-shadow:0 26px 45px rgba(0,0,0,.65),inset 0 0 30px rgba(255,255,255,.08)}.footer-bottom{border-top:1px solid var(--line);padding:30px max(24px,calc((100vw - var(--wrap))/2));display:grid;grid-template-columns:220px 1fr 220px;align-items:center;gap:30px}.footer-bottom img{width:190px}.footer-bottom nav{display:flex;justify-content:center;gap:24px;flex-wrap:wrap}.footer-bottom a{text-decoration:none;color:#eee;text-transform:uppercase;font-size:10px}.contact-list{display:grid;gap:5px;font-size:12px}.legal{text-align:center;color:#7e8789;font-size:10px;padding:14px;border-top:1px solid var(--line)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.in-view{opacity:1;transform:none}
@keyframes heroZoom{to{transform:scale(1.06)}}@keyframes glow{to{transform:translate(50px,25px);opacity:.7}}@keyframes bounce{50%{transform:translateY(8px)}}
@media(max-width:980px){.primary-nav,.header-cta{display:none}.menu-toggle{display:block}.primary-nav.open{display:flex;position:absolute;top:74px;left:0;right:0;background:#080b0c;flex-direction:column;padding:25px}.hero{min-height:850px}.hero-content{min-height:850px}.hero-features{grid-template-columns:1fr 1fr}.benefit-grid{grid-template-columns:repeat(2,1fr)}.benefit{border-bottom:1px solid #eee}.tech-layout,.expertise-layout{grid-template-columns:1fr}.sports-band{grid-template-columns:1fr}.sports-strip{min-height:270px}.footer-bottom{grid-template-columns:1fr;text-align:center}.footer-bottom nav{justify-content:center}.contact-list{justify-items:center}}
@media(max-width:680px){.wrap,.header-inner{width:min(100% - 30px,var(--wrap))}.brand img{width:150px}.hero{min-height:900px}.hero-content{min-height:900px;padding-top:120px}.hero-media{background-position:62% center}.hero-overlay{background:linear-gradient(180deg,rgba(5,8,9,.86),rgba(5,8,9,.55) 48%,rgba(5,8,9,.97))}.hero-copy h1{font-size:34px}.hero-wordmark{font-size:34px}.hero-features{grid-template-columns:1fr;gap:14px}.benefit-grid,.analysis-grid,.testimonial-grid{grid-template-columns:1fr}.benefit{border-right:0}.section{padding:54px 0}.tech-layout{gap:25px}.layer-stack{transform:scale(.63) rotate(-6deg);margin:-70px}.sports-strip{grid-template-columns:repeat(2,1fr)}.expert-points{grid-template-columns:1fr 1fr}.footer-visual{grid-template-columns:1fr;padding:50px 0}.footer-insole{overflow:hidden}.insole-shape{width:340px}.footer-visual h2{font-size:25px}.button-row .btn{width:100%}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

/* EXOCARBON Premium V2 */
.hero-media{animation:exoHeroBreath 16s ease-in-out infinite alternate;will-change:transform}
.hero:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.10;mix-blend-mode:screen;background-image:radial-gradient(circle at 30% 20%,rgba(255,255,255,.5) 0 1px,transparent 1.4px);background-size:9px 9px;animation:exoNoise 18s linear infinite}
.feature-card,.benefit,.analysis-card,.testimonial-grid blockquote{transition:transform .4s ease,box-shadow .4s ease,background .4s ease}
.feature-card:hover,.benefit:hover,.analysis-card:hover,.testimonial-grid blockquote:hover{transform:translateY(-8px);box-shadow:0 20px 48px rgba(0,0,0,.16)}
.hero-features .icon,.benefit b{display:inline-block;animation:exoIconPulse 3s ease-in-out infinite}
.btn,.header-cta{overflow:hidden;position:relative}
.btn:before,.header-cta:before{content:"";position:absolute;inset:-2px;transform:translateX(-120%);background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.5),transparent 70%);transition:.65s}
.btn:hover:before,.header-cta:hover:before{transform:translateX(120%)}
.technology{position:relative;overflow:hidden}
.technology:before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 30% 50%,rgba(205,157,68,.08),transparent 32%),repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 1px,transparent 1px 15px);animation:exoBgDrift 18s linear infinite}
.technology .wrap{position:relative}
.site-header{background:rgba(7,10,11,.24);backdrop-filter:blur(7px)}
.site-header.scrolled{background:rgba(7,10,11,.97);backdrop-filter:blur(18px)}
@keyframes exoHeroBreath{to{transform:scale(1.07) translate3d(-1.1%,.8%,0)}}
@keyframes exoNoise{to{background-position:120px 80px}}
@keyframes exoIconPulse{50%{transform:translateY(-3px) scale(1.08);filter:drop-shadow(0 0 8px rgba(222,177,88,.55))}}
@keyframes exoBgDrift{to{transform:translate3d(90px,45px,0)}}
@media(prefers-reduced-motion:reduce){.hero-media,.hero:after,.technology:before,.hero-features .icon,.benefit b{animation:none!important}}

/* V3 branding, contact modal and professional portrait */
.exo-wordmark-text{font-family:Arial Black,Arial,sans-serif;font-weight:900;letter-spacing:.12em;background:linear-gradient(90deg,#f4f4f4 0 26%,#c99845 48%,#e5c47d 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 1px 0 rgba(255,255,255,.1)}
.practitioner-photo{position:relative;background:linear-gradient(145deg,#182022,#070909);min-height:380px}
.portrait-photo-placeholder{position:absolute;inset:28px;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;background:radial-gradient(circle at 50% 26%,#f6f6f6 0 13%,#dfdfdf 14% 24%,#fff 25% 44%,#15191a 45% 100%);border:1px solid rgba(198,153,70,.35);color:#fff;text-align:center}
.portrait-photo-placeholder span{font-weight:800;text-transform:uppercase;font-size:13px}.portrait-photo-placeholder small{margin-top:8px;color:#c7a25b;line-height:1.4}
.contact-modal{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;padding:24px}.contact-modal.is-open{display:flex}.contact-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(10px)}.contact-modal-card{position:relative;z-index:1;width:min(520px,100%);background:linear-gradient(145deg,#111718,#070909);border:1px solid rgba(202,157,71,.55);box-shadow:0 30px 90px rgba(0,0,0,.65);padding:36px;color:#fff}.contact-modal-card>img{width:230px;display:block;margin:0 auto 20px}.contact-modal-card h2{text-align:center;text-transform:uppercase;color:#d8ad62}.contact-modal-card p{display:grid;gap:5px;border-top:1px solid rgba(255,255,255,.12);padding:14px 0;margin:0}.contact-modal-card p strong{color:#c89c4d;text-transform:uppercase;font-size:11px}.contact-modal-card a,.contact-modal-card span{color:#fff;text-decoration:none;line-height:1.5}.contact-modal-card>.btn{margin-top:20px;width:100%}.contact-modal-close{position:absolute;right:14px;top:10px;border:0;background:none;color:#fff;font-size:30px;cursor:pointer}
body.contact-modal-open{overflow:hidden}


/* V4 — portrait réel détouré et branding final */
.practitioner-photo{position:relative;min-height:430px;overflow:hidden;background:radial-gradient(circle at 50% 34%,rgba(213,174,103,.20),transparent 34%),linear-gradient(145deg,#1a2325,#050708 72%)}
.practitioner-photo:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 1px,transparent 1px 14px);animation:exoPortraitBg 17s linear infinite}
.portrait-halo{position:absolute;width:330px;height:330px;left:50%;top:20%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(211,167,84,.28),transparent 68%);filter:blur(10px);animation:exoPortraitHalo 6s ease-in-out infinite alternate}
.practitioner-cutout{position:absolute;z-index:2;left:50%;bottom:-3px;transform:translateX(-50%);width:min(420px,96%);height:auto;max-height:430px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 24px 38px rgba(0,0,0,.65));transition:transform .55s ease,filter .55s ease}
.practitioner-photo:hover .practitioner-cutout{transform:translateX(-50%) scale(1.025);filter:drop-shadow(0 30px 50px rgba(0,0,0,.72))}
/* Neutralise l'ancien faux portrait s'il reste mis en cache. */
.portrait-photo-placeholder{display:none!important}
/* Logo exact, plus lisible sans agrandir les marges transparentes. */
.brand img{width:205px;height:58px;object-fit:contain;object-position:left center}
.footer-bottom img{width:215px;max-height:90px;object-fit:contain}
.contact-modal-card>img{width:270px;max-height:150px;object-fit:contain}
/* Le nom écrit reprend l'aspect typographique noir/or du logo. */
.exo-wordmark-text{display:inline-block;font-family:Arial Black,Arial,sans-serif;font-weight:900;font-style:normal;letter-spacing:.095em;background:linear-gradient(96deg,#252a2d 0 27%,#b57e25 45%,#f0d37c 68%,#ad7621 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 1px 0 rgba(255,255,255,.08)}
.section.dark .exo-wordmark-text,.site-footer .exo-wordmark-text{background:linear-gradient(96deg,#f8f8f8 0 27%,#c28b32 48%,#f1d27b 72%,#b47b25 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes exoPortraitBg{to{background-position:120px 60px}}
@keyframes exoPortraitHalo{to{transform:translate(-50%,-46%) scale(1.08);opacity:.68}}
@media(max-width:980px){.practitioner-photo{min-height:460px}.practitioner-cutout{max-height:455px}}
@media(max-width:680px){.practitioner-photo{min-height:400px}.practitioner-cutout{max-height:395px;width:100%}.brand img{width:155px;height:50px}}
@media(prefers-reduced-motion:reduce){.practitioner-photo:before,.portrait-halo{animation:none!important}}

/* Extension V5 isolation */
body.exo-premium-extension-page{margin:0!important;padding:0!important;background:#070a0b!important}
body.exo-premium-extension-page>header:not(.site-header),
body.exo-premium-extension-page>.site,
body.exo-premium-extension-page>#page>header,
body.exo-premium-extension-page>#page>footer{display:none!important}
body.exo-premium-extension-page .site-header,
body.exo-premium-extension-page main,
body.exo-premium-extension-page .site-footer,
body.exo-premium-extension-page .contact-modal{font-family:Arial,Helvetica,sans-serif}


/* EXOCARBON Premium V6 — visuels exacts de la première maquette */

/* Le sportif reste clairement visible dans le Hero. */
.exo-premium-extension-page .hero {
    min-height: 820px;
}
.exo-premium-extension-page .hero-media {
    inset: -2%;
    background-size: cover;
    background-position: center 43%;
    opacity: 1;
    filter: saturate(1.04) contrast(1.03);
}
.exo-premium-extension-page .hero-overlay {
    background:
        linear-gradient(90deg,
            rgba(4,7,8,.98) 0%,
            rgba(4,7,8,.91) 28%,
            rgba(4,7,8,.42) 55%,
            rgba(4,7,8,.08) 78%,
            rgba(4,7,8,.02) 100%);
}
.exo-premium-extension-page .hero-content {
    min-height: 820px;
}

/* Image exacte des semelles de la première ébauche. */
.original-tech-visual {
    min-height: 470px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.original-insole-image {
    width: min(100%, 820px);
    height: auto;
    display: block;
    object-fit: contain;
    filter: drop-shadow(0 24px 36px rgba(0,0,0,.46));
    transition: transform .55s ease, filter .55s ease;
}
.original-insole-image:hover {
    transform: translateY(-8px) scale(1.018);
    filter: drop-shadow(0 34px 48px rgba(0,0,0,.58));
}

/* Images exactes d’analyse, sans illustrations CSS synthétiques. */
.analysis-image {
    height: 270px;
    background: #e9eded;
    overflow: hidden;
}
.analysis-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    transition: transform .55s ease, filter .55s ease;
}
.analysis-card:hover .analysis-image img {
    transform: scale(1.045);
    filter: contrast(1.03) saturate(1.06);
}

/* Le portrait fourni remplace réellement l’ancien jeune homme. */
.practitioner-photo {
    position: relative;
    height: 410px;
    overflow: hidden;
    background:
      radial-gradient(circle at 50% 42%, rgba(202,157,69,.16), transparent 38%),
      linear-gradient(145deg, #222a2b, #070909 78%);
}
.practitioner-cutout {
    position: absolute;
    z-index: 2;
    left: 50%;
    bottom: 0;
    width: auto;
    height: 98%;
    max-width: none;
    transform: translateX(-50%);
    object-fit: contain;
    object-position: bottom center;
    filter: drop-shadow(0 22px 35px rgba(0,0,0,.58));
}
.portrait-halo {
    position: absolute;
    z-index: 1;
    width: 290px;
    height: 290px;
    left: 50%;
    top: 12%;
    transform: translateX(-50%);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(206,161,75,.22), transparent 67%);
    filter: blur(10px);
}

@media (max-width: 980px) {
    .original-tech-visual { min-height: 390px; }
    .practitioner-photo { height: 440px; }
}
@media (max-width: 680px) {
    .exo-premium-extension-page .hero,
    .exo-premium-extension-page .hero-content {
        min-height: 930px;
    }
    .exo-premium-extension-page .hero-media {
        background-position: 61% center;
    }
    .original-tech-visual {
        min-height: 300px;
        margin-top: 12px;
    }
    .original-insole-image {
        width: 112%;
        max-width: 112%;
    }
    .analysis-image { height: 245px; }
    .practitioner-photo { height: 410px; }
    .practitioner-cutout { height: 96%; }
}


/* EXOCARBON Premium V7 — photos distinctes pour chaque pratique sportive */
.sports-strip-v7 {
    grid-template-columns: repeat(7, 1fr);
}
.sports-strip-v7 article {
    min-height: 300px;
    background-size: cover;
    background-position: center;
}
.sports-strip-v7 article::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.90) 0%, rgba(0,0,0,.20) 48%, rgba(0,0,0,.03) 100%);
    transition: background .35s ease;
}
.sports-strip-v7 article:hover::before {
    background: linear-gradient(to top, rgba(0,0,0,.78) 0%, rgba(0,0,0,.08) 55%, rgba(0,0,0,0) 100%);
}
.sports-strip-v7 article span {
    z-index: 2;
    padding: 0 8px;
    line-height: 1.25;
}
@media (max-width: 1180px) {
    .sports-strip-v7 {
        grid-template-columns: repeat(4, 1fr);
    }
    .sports-strip-v7 article {
        min-height: 260px;
    }
}
@media (max-width: 680px) {
    .sports-strip-v7 {
        grid-template-columns: repeat(2, 1fr);
    }
    .sports-strip-v7 article {
        min-height: 235px;
    }
    .sports-strip-v7 article:last-child {
        grid-column: 1 / -1;
    }
}
