/* VOLT CONNECT ALSACE | Interface validée : ivoire / bleu pétrole / turquoise.
   Aucun framework graphique ni dépendance de police distante. */
:root{--petrol:#073f43;--petrol-deep:#063236;--turquoise:#0bb7af;--turquoise-dark:#078b88;--text:#102f34;--muted:#607277;--line:#d7e5e5;--pale:#f6faf9;--max:1150px;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:#fff;scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:#fff}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}img,video,svg{max-width:100%}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #f5a648;outline-offset:3px}.ui-icon{width:1em;height:1em;display:inline-block;flex-shrink:0;vertical-align:-.15em}.content-wrap{max-width:var(--max);width:calc(100% - 40px);margin-inline:auto}p{line-height:1.5}.main-header{position:sticky;z-index:50;top:0;background:#fff;box-shadow:0 1px 10px #0d3e4314}.header-inner{height:87px;display:flex;justify-content:space-between;align-items:center;gap:10px}.wordmark{display:flex;align-items:center;gap:8px;min-width:0}.brand-symbol{display:flex;align-items:center;justify-content:center;width:59px;height:59px;color:#00a69e;flex-shrink:0}.brand-symbol svg{width:59px;height:59px}.brand-symbol img{width:59px;height:59px;object-fit:contain}.brand-type{display:flex;flex-direction:column;line-height:.98}.brand-type b{font-size:36px;letter-spacing:-.075em;font-weight:900}.brand-type small{font-size:13px;font-weight:900;letter-spacing:-.026em}.header-action{display:flex;align-items:center;gap:18px}.header-phone{display:flex;align-items:center;gap:10px;background:#edf9f8;color:var(--petrol);font-size:14px;font-weight:850;padding:12px 16px;border:1px solid #aee6e1;border-radius:9px;white-space:nowrap}.header-phone .ui-icon{font-size:17px;color:var(--turquoise-dark)}.header-phone:hover{background:#d8f3f0}.menu-toggle{width:43px;height:43px;display:flex;flex-direction:column;justify-content:center;gap:6px;align-items:center;background:none;border:0;border-radius:7px;padding:8px}.menu-toggle i{display:block;height:2.8px;width:28px;border-radius:2px;background:var(--text)}.nav-panel[hidden]{display:none}.nav-panel{position:absolute;right:max(18px,calc((100vw - var(--max))/2));top:77px;min-width:min(320px,calc(100vw - 36px));background:white;box-shadow:0 16px 45px #12393d2c;border:1px solid var(--line);border-radius:14px;padding:10px;display:grid}.nav-panel a{padding:14px 16px;border-radius:9px;font-weight:750;font-size:14px}.nav-panel a:hover,.nav-panel [aria-current=page]{background:#e8f8f6;color:var(--petrol)}
/* PAGE 1 ------------------------------------------------------------ */
.hero{position:relative;min-height:480px;color:#fff;background:linear-gradient(90deg,#033d40 0%,#064044ec 43%,#083d426b 67%,#073c430e 100%),var(--hero-image) right center / auto 100% no-repeat,#06383c;overflow:hidden}.hero::after{content:"";position:absolute;bottom:-54px;left:-7%;width:115%;height:90px;border-radius:55% 48% 0 0;background:#fff;transform:rotate(-1deg);pointer-events:none}.hero-copy{position:relative;z-index:1;min-height:480px;display:flex;align-items:center;padding-top:38px;padding-bottom:80px}.hero-text{width:min(560px,60%)}.hero h1{font-size:clamp(36px,4.6vw,66px);line-height:1.09;letter-spacing:-.043em;font-weight:850;margin:0;max-width:600px;text-wrap:balance}.teal-stroke{height:5px;width:83px;background:var(--turquoise);border-radius:9px;margin:22px 0}.hero p{font-size:clamp(15px,1.5vw,22px);line-height:1.35;max-width:510px;margin:0 0 24px}.hero-cta{display:flex;align-items:center;gap:13px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:11px;border:0;border-radius:38px;font-size:16px;font-weight:850;padding:14px 26px;line-height:1.2;min-height:52px}.btn-primary{color:#fff;background:var(--turquoise);box-shadow:0 8px 22px #002c3045}.btn-primary:hover{background:#08a6a0}.btn .ui-icon{font-size:21px}.circle-mail{border:2px solid #fff;color:#fff;border-radius:50%;width:51px;height:51px;display:grid;place-items:center;background:#013d4140}.circle-mail .ui-icon{font-size:25px}.circle-mail:hover{background:#ffffff25}.hero-number{display:inline-flex;align-items:center;gap:9px;margin-top:17px;font-size:17px;font-weight:800;color:white}.hero-number .ui-icon{color:var(--turquoise)}
.services-section{padding:35px 0 15px}.section-label{text-align:center;display:flex;align-items:center;justify-content:center;gap:16px;color:var(--text);font-weight:850;font-size:clamp(20px,2.6vw,31px);margin:0 0 22px;line-height:1.18}.section-label:before,.section-label:after{content:"";flex:1 1 28px;max-width:80px;height:2px;background:#08a99f}.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.service-card{background:linear-gradient(#f7fafb,#eaf8f7);border-radius:13px;text-align:center;padding:23px 13px 22px;min-width:0;box-shadow:inset 0 0 0 1px #e7f2f2}.service-glyph{font-size:46px;color:var(--turquoise-dark);height:58px}.service-card h3{font-size:clamp(15px,1.8vw,22px);letter-spacing:-.028em;margin:7px 0 7px}.service-card p{font-size:clamp(12px,1.15vw,16px);line-height:1.37;margin:0;color:#334b4f}
.approach-section{padding:24px 0}.approach-pill{margin:0 0 21px;background:linear-gradient(95deg,#006d6b,#053f43);border-radius:30px;color:white;text-align:center;font-size:clamp(18px,2.2vw,27px);font-weight:900;padding:12px 18px;line-height:1.24}.steps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.step{text-align:center;min-width:0;padding:2px 8px 9px;position:relative}.step+.step:before{content:"›";color:var(--turquoise);font-size:39px;position:absolute;top:24px;left:-15px}.step-symbol{height:62px;display:grid;place-items:center;color:var(--turquoise-dark);font-size:44px}.step b{font-size:clamp(13px,1.6vw,19px);letter-spacing:-.025em;display:block}.step p{font-size:clamp(11px,1.1vw,15px);color:var(--muted);margin:7px 0 0;line-height:1.4}
.photos-section{padding:13px 0 32px}.photo-intro{font-size:clamp(17px,2.2vw,28px);font-weight:800;margin:2px 0 15px;letter-spacing:-.03em}.gallery-carousel{position:relative}.carousel-track{display:flex;overflow:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;border-radius:17px;gap:0}.carousel-track::-webkit-scrollbar{display:none}.photo-slide{scroll-snap-align:start;flex:0 0 100%;min-width:0}.photo-shell{height:290px;position:relative;background:#d8e3e2;overflow:hidden;border-radius:17px}.photo-shell img{width:100%;height:100%;object-fit:cover;display:block}.photo-label{position:absolute;bottom:13px;left:14px;right:auto;background:#073a3cd6;border-radius:7px;color:#fff;padding:11px 14px;font-weight:750;font-size:17px}.sample-label{position:absolute;right:10px;top:10px;background:#fffdf2de;color:#36595d;font-size:10px;padding:5px 9px;border-radius:7px}.carousel-arrow{position:absolute;top:calc(50% - 13px);transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:white;color:#183a3d;border:1px solid #e3eceb;font-size:33px;font-family:Arial,sans-serif;line-height:0;display:grid;place-items:center;box-shadow:0 2px 6px #0002}.carousel-arrow:hover{background:#e1f6f3}.carousel-prev{left:-12px}.carousel-next{right:-12px}.carousel-dots{display:flex;justify-content:center;gap:9px;margin-top:13px}.carousel-dot{padding:0;border:0;border-radius:50%;width:11px;height:11px;background:#c8cece;transition:transform .2s}.carousel-dot.active{background:var(--turquoise-dark);transform:scale(1.12)}.visual-notice{text-align:center;font-size:11px;color:#7a8c8e;line-height:1.5;margin:13px 0 0}.quick-contact{margin-top:14px;padding:24px 0;background:#ecf8f7}.quick-contact .content-wrap{display:flex;align-items:center;justify-content:space-between;gap:17px;flex-wrap:wrap}.quick-contact p{margin:0;font-weight:750}.quick-contact a{color:#056763;font-weight:800;display:flex;align-items:center;gap:5px;font-size:15px}
/* PAGE 2 ------------------------------------------------------------ */
.presentation-layout{max-width:950px;padding-top:30px;padding-bottom:22px}.video-section,.realizations-section,.social-section{margin-bottom:38px}.video-frame{position:relative;background:var(--petrol);aspect-ratio:1.98;overflow:hidden;border-radius:15px;box-shadow:0 3px 15px #193c4017}.video-frame img,.video-frame video{display:block;width:100%;height:100%;object-fit:cover}.video-unavailable{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(0deg,#062e3399,#093b4044);color:white;font-weight:800;text-align:center;gap:10px;padding:20px;font-size:14px}.video-play{border:3px solid #fff;border-radius:50%;width:76px;height:76px;display:grid;place-items:center;font-size:35px;padding-left:4px}.video-caption{margin:8px 0 0;color:#667b7b;font-size:12px;text-align:center}.realizations-section{margin-bottom:46px}.gallery-thumbs .carousel-track{gap:10px;overflow-x:auto;scrollbar-width:none;border-radius:0}.gallery-thumbs .photo-slide{flex:0 0 calc((100% - 30px) / 4)}.gallery-thumbs .photo-shell{height:165px;border-radius:11px}.gallery-thumbs .photo-label{position:static;background:transparent;color:var(--text);padding:10px 0 0;font-size:11px;text-align:center}.gallery-thumbs .sample-label{font-size:9px;right:3px;top:3px;padding:3px 5px}.gallery-thumbs .carousel-arrow{top:80px;width:33px;height:33px}.gallery-thumbs .carousel-prev{left:-15px}.gallery-thumbs .carousel-next{right:-15px}.social-section{margin-bottom:31px}.social-links{display:flex;justify-content:center;gap:31px;align-items:center;padding-top:12px}.social-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;color:white;filter:drop-shadow(0 3px 5px #0002)}.social-icon svg{width:27px;height:27px}.social-facebook{background:#1877f2}.social-instagram{background:linear-gradient(30deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5)}.social-youtube{background:#f50019}.social-disabled{opacity:.72;cursor:help}.social-icon:hover{transform:translateY(-2px)}.contact-band{background:linear-gradient(115deg,#083b3f,#006765);border-radius:18px;color:white;display:flex;align-items:center;gap:18px;padding:27px 30px;flex-wrap:wrap}.contact-band-mark{font-size:45px;color:#a0e3da}.contact-band>div:nth-child(2){flex:1;min-width:170px}.contact-band h2{font-size:21px;margin:0 0 5px}.contact-band p{font-size:13px;margin:0 0 5px}.contact-phone{font-size:16px;font-weight:800;color:#9af4e8}.contact-band-button{display:flex;align-items:center;gap:12px;border:1px solid #ddffff;border-radius:30px;padding:11px 17px;font-size:14px;font-weight:750}.contact-band-button:hover{background:#ffffff21}.contact-mail,.contact-local{text-align:center;color:#496569;margin:11px auto 0;font-size:14px}.contact-mail .ui-icon,.contact-local .ui-icon{font-size:17px;color:var(--turquoise-dark)}.contact-mail a{text-decoration:underline;text-underline-offset:3px}
.main-footer{background:#063d42;color:#fff;padding:19px 0 15px}.footer-top{display:flex;align-items:center;gap:24px;justify-content:space-between}.footer-logo{display:flex;align-items:baseline;gap:6px;font-size:23px;font-weight:900}.footer-logo span{color:var(--turquoise);font-size:30px}.footer-logo small{font-size:10px;max-width:75px;line-height:1}.footer-services{font-size:12px;font-weight:650}.footer-bottom{margin-top:15px;display:flex;justify-content:space-between;gap:9px;flex-wrap:wrap;border-top:1px solid #ffffff26;padding-top:11px;font-size:11px;color:#c9e4e3}.footer-bottom a:hover{text-decoration:underline}.footer-bottom>span{font-size:10px}
/* Controls desktop and tablet */
@media(max-width:750px){.header-inner{height:78px}.brand-type b{font-size:29px}.brand-type small{font-size:11px}.brand-symbol,.brand-symbol svg,.brand-symbol img{width:50px;height:50px}.header-phone{padding:9px 10px;font-size:12px}.header-action{gap:8px}.hero{min-height:440px}.hero-copy{min-height:440px}.hero-text{width:min(540px,74%)}.hero h1{font-size:clamp(31px,6vw,46px)}.hero p{font-size:16px}.photo-shell{height:260px}.gallery-thumbs .photo-shell{height:135px}}
@media(max-width:520px){.content-wrap{width:calc(100% - 30px)}.header-inner{height:73px}.brand-symbol,.brand-symbol svg,.brand-symbol img{width:40px;height:40px}.brand-type b{font-size:24px}.brand-type small{font-size:9.5px}.wordmark{gap:5px}.header-action{gap:2px}.header-phone{background:none;border:0;padding:7px 1px;font-size:11px}.header-phone .ui-icon{display:none}.menu-toggle{width:33px;height:40px;padding:4px}.menu-toggle i{width:24px}.nav-panel{top:70px}.hero{min-height:438px;background:linear-gradient(90deg,#033d40 0%,#043c40ed 35%,#063d40ad 64%,#03363d53 100%),var(--hero-image) 71% center/auto 100% no-repeat,#06383c}.hero::after{bottom:-57px}.hero-copy{min-height:438px;padding-top:30px;padding-bottom:72px}.hero-text{width:100%}.hero h1{max-width:310px;font-size:clamp(29px,8vw,37px);line-height:1.12;text-wrap:pretty}.teal-stroke{margin:15px 0;width:56px;height:4px}.hero p{font-size:15px;max-width:270px;line-height:1.35;margin-bottom:15px}.hero-cta{gap:10px}.btn{font-size:14px;min-height:44px;padding:11px 19px}.btn .ui-icon{font-size:19px}.circle-mail{width:43px;height:43px}.circle-mail .ui-icon{font-size:21px}.hero-number{font-size:15px;margin-top:12px}.services-section{padding:16px 0 12px}.section-label{font-size:18px;gap:9px;margin-bottom:17px}.section-label:before,.section-label:after{max-width:36px}.services-grid{gap:6px}.service-card{border-radius:11px;padding:15px 4px 12px}.service-glyph{font-size:39px;height:43px}.service-card h3{font-size:13.2px;margin:7px 0 6px}.service-card p{font-size:10.8px;line-height:1.27;letter-spacing:-.025em}.approach-section{padding:13px 0}.approach-pill{font-size:17px;padding:10px 10px;margin-bottom:15px}.steps-grid{gap:2px}.step{padding:0 3px 8px}.step+.step:before{font-size:26px;left:-10px;top:23px}.step-symbol{font-size:34px;height:48px}.step b{font-size:11.3px}.step p{font-size:10px;margin-top:3px}.photos-section{padding:7px 0 25px}.photo-intro{font-size:16px;margin-bottom:11px}.photo-shell{height:163px}.photo-label{font-size:13px;padding:8px 10px}.carousel-arrow{width:35px;height:35px;font-size:26px}.carousel-prev{left:-7px}.carousel-next{right:-7px}.visual-notice{font-size:10px;margin-top:8px}.quick-contact{padding:20px 0}.quick-contact p{font-size:13px}.quick-contact a{font-size:13px}.presentation-layout{padding-top:27px}.video-section{margin-bottom:31px}.video-frame{border-radius:11px;aspect-ratio:1.83}.video-unavailable{font-size:11px;padding:9px;gap:6px}.video-play{width:54px;height:54px;font-size:27px}.gallery-thumbs .carousel-track{gap:7px}.gallery-thumbs .photo-slide{flex-basis:calc((100% - 21px)/4)}.gallery-thumbs .photo-shell{height:119px;border-radius:9px}.gallery-thumbs .photo-label{font-size:9.5px;line-height:1.2;padding-top:6px}.gallery-thumbs .carousel-arrow{top:54px;width:29px;height:29px;font-size:25px}.gallery-thumbs .carousel-prev{left:-9px}.gallery-thumbs .carousel-next{right:-9px}.realizations-section{margin-bottom:31px}.social-section{margin-bottom:24px}.social-links{gap:25px;padding-top:8px}.social-icon{width:43px;height:43px}.social-icon svg{width:25px;height:25px}.contact-band{border-radius:16px;padding:18px 16px;gap:12px}.contact-band-mark{font-size:32px}.contact-band h2{font-size:15px}.contact-band p{font-size:11px}.contact-phone{font-size:13px}.contact-band-button{font-size:11px;padding:8px 11px;margin-left:auto}.contact-mail,.contact-local{font-size:11px}.footer-top{gap:6px}.footer-services{font-size:9px}.footer-logo{font-size:19px}.footer-logo small{font-size:8px}.footer-bottom{font-size:10px}}
@media(max-width:355px){.header-phone{font-size:10px}.brand-type b{font-size:21px}.brand-type small{font-size:8px}.hero h1{font-size:28px}.service-card h3{font-size:11.7px}.service-card p{font-size:10px}.contact-band-button{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.carousel-track{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* Photo de fond en balise image, compatible avec CSP sans style inline. */
.hero-background{position:absolute;top:0;right:0;width:58%;height:100%;object-fit:cover;object-position:center;z-index:0}.hero{background:#06383c}.hero:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#033d40 0%,#064044ec 43%,#083d426b 67%,#073c430e 100%)}.hero-copy{z-index:2}.hero:after{z-index:3}@media(max-width:520px){.hero-background{width:70%}.hero:before{background:linear-gradient(90deg,#033d40 0%,#043c40ed 35%,#063d40ad 64%,#03363d53 100%)}}

/* Pages juridiques */
.skip-link{position:absolute;left:20px;top:-100px}.skip-link:focus{top:15px;background:white;color:#073f43;z-index:200;padding:10px}.legal-page{padding:75px 0;min-height:60vh}.legal-page .narrow-content{max-width:770px;margin:0 auto;width:calc(100% - 36px)}.legal-page h1{font-size:clamp(30px,4vw,48px)}.legal-page h2{font-size:22px;margin-top:28px}.legal-page p{line-height:1.65}.legal-warning{border-left:4px solid #dd9c2e;background:#fff6e5;padding:13px 15px}.legal-page a:not(.back-link){text-decoration:underline;color:#007f79}.back-link{display:inline-block;margin-top:24px;color:#007f79;text-decoration:underline}


/* V2 : navigation entre deux écrans, contacts explicites et composition 16:9.
   À moins de 960 px, les pages restent verticales et défilables. */
body{container-type:inline-size}
.main-header .header-inner{justify-content:flex-start}
.wordmark .brand-symbol,.wordmark .brand-symbol img{width:70px;height:60px;object-fit:contain}
.hero-contact-phone{min-width:210px;letter-spacing:.025em;text-decoration:none}
.hero-contact-mail{display:inline-flex;gap:9px;align-items:center;max-width:100%;padding:10px 12px;color:white;background:#043d44b0;border:1px solid #ffffffa8;border-radius:13px;font-size:clamp(12px,1.1vw,17px);font-weight:760;overflow-wrap:anywhere}
.hero-contact-mail .ui-icon{width:21px;height:21px;flex-shrink:0}
.hero-cta{flex-wrap:wrap;align-items:center}
.page-surface{position:relative;min-width:0}
.page-turn{position:absolute;z-index:12;top:50%;display:grid;place-items:center;width:clamp(56px,6vw,90px);height:clamp(68px,8vw,102px);background:#08a9a4e6;color:white;text-shadow:0 1px 2px #0002;text-decoration:none;font-size:clamp(43px,5vw,72px);font-weight:350;line-height:1;border:2px solid #ffffffbb;box-shadow:0 8px 28px #062b3660;transition:background .18s,transform .18s;transform:translateY(-50%)}
.page-turn:hover,.page-turn:focus-visible{background:#007b77;transform:translateY(-50%) scale(1.035)}
.page-turn-next{right:0;border-radius:70px 0 0 70px}
.page-turn-prev{left:0;border-radius:0 70px 70px 0}
.footer-logo{align-items:center;gap:8px}
.footer-logo-image{width:38px;height:37px;object-fit:contain;flex-shrink:0}
.footer-logo-text{display:flex;flex-direction:column;font-size:21px;line-height:.9}
.footer-logo-text small{margin-top:5px;font-size:9px;line-height:1}
.footer-bottom{justify-content:space-between}
.footer-legal{display:flex;gap:12px;flex-wrap:wrap}
.contact-mail-inline{color:#affaf0;overflow-wrap:anywhere;font-size:14px;font-weight:750;text-decoration:underline;text-underline-offset:3px}
.photos-inner{min-width:0}
.service-description{min-width:0}

/* 16:9 horizontal : deux pages visibles dans un seul cadre, sans scroll vertical. */
@container (min-width: 960px){
 body:not(.vca-demo){background:#dfeae9;min-height:100dvh;display:grid;place-items:center}
 .site-stage{display:flex;flex-direction:column;position:relative;isolation:isolate;background:white;width:min(100%,calc(100dvh * 16 / 9));aspect-ratio:16 / 9;max-height:100dvh;overflow:hidden;margin:auto;box-shadow:0 12px 60px #042f3430}
 .vca-demo .site-stage{width:min(100%,calc((100dvh - 110px) * 16 / 9));max-height:calc(100dvh - 110px)}
 .site-stage .main-header{height:9%;flex:0 0 9%;position:relative;top:auto;box-shadow:0 1px 5px #073f4310}
 .site-stage .header-inner{height:100%}
 .site-stage .brand-symbol,.site-stage .brand-symbol img{height:54px;width:66px}
 .site-stage .brand-type b{font-size:clamp(24px,2.7cqw,38px)}
 .site-stage .brand-type small{font-size:clamp(9px,1cqw,13px)}
 .site-stage .main-footer{height:9%;flex:0 0 9%;padding:4px 0 3px}
 .site-stage .footer-top{height:55%;gap:12px}
 .site-stage .footer-logo{font-size:15px}
 .site-stage .footer-logo-image{height:28px;width:31px}
 .site-stage .footer-logo-text{font-size:18px}
 .site-stage .footer-services{font-size:clamp(9px,.9cqw,12px)}
 .site-stage .footer-bottom{height:40%;margin:0;padding:2px 0;border:0;font-size:clamp(9px,.85cqw,11px)}
 .site-stage .page-home,.site-stage .page-presentation{height:82%;flex:1 1 82%;min-height:0;min-width:0;overflow:hidden}
 .site-stage .page-home{display:grid;grid-template-columns:55% 45%;grid-template-rows:68% 32%}
 .site-stage .page-home .hero{grid-column:1;grid-row:1;min-height:0;height:100%;background:#06383c;overflow:hidden}
 .site-stage .page-home .hero::after{display:none}
 .site-stage .page-home .hero-copy{min-height:0;height:100%;width:100%;padding:12px 6% 20px 6%;align-items:center}
 .site-stage .hero-text{width:100%;max-width:100%;padding-right:10%}
 .site-stage .hero h1{font-size:clamp(30px,3.5cqw,54px);line-height:1.09;max-width:100%;text-wrap:balance}
 .site-stage .teal-stroke{width:65px;height:4px;margin:14px 0}
 .site-stage .hero p{font-size:clamp(13px,1.38cqw,19px);line-height:1.35;margin-bottom:17px;max-width:90%}
 .site-stage .hero-cta{gap:10px}
 .site-stage .hero-contact-phone{min-width:0;min-height:0;padding:12px 18px;font-size:clamp(15px,1.5cqw,21px)}
 .site-stage .hero-contact-mail{font-size:clamp(10px,1.08cqw,14px);padding:10px 12px}
 .site-stage .page-home .services-section{grid-column:2;grid-row:1;min-width:0;min-height:0;display:flex;align-items:center;padding:12px 10% 12px 5%;overflow:hidden}
 .site-stage .services-section>.content-wrap{width:100%;margin:0}
 .site-stage .services-section>.content-wrap{max-width:none}
 .site-stage .services-section .section-label{font-size:clamp(16px,1.9cqw,26px);margin-bottom:12px;line-height:1.15}
 .site-stage .services-grid{display:flex;flex-direction:column;gap:7px}
 .site-stage .service-card{display:grid;grid-template-columns:64px minmax(0,1fr);grid-template-rows:auto;gap:8px;text-align:left;align-items:center;border-radius:10px;padding:12px 13px}
 .site-stage .service-glyph{font-size:clamp(27px,3cqw,44px);height:auto;text-align:center}
 .site-stage .service-description h3{font-size:clamp(15px,1.45cqw,22px);margin:0 0 3px}
 .site-stage .service-description p{font-size:clamp(11px,1.1cqw,15px);line-height:1.25;margin:0}
 .site-stage .page-home .photos-section{grid-column:1/-1;grid-row:2;min-height:0;overflow:hidden;padding:10px 5% 5px;background:#f6faf9}
 .site-stage .photos-inner{height:100%;max-width:none;width:100%;display:grid;grid-template-columns:22% minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:center;gap:2%}
 .site-stage .photo-intro{font-size:clamp(17px,1.9cqw,28px);line-height:1.2;margin:0}
 .site-stage .photos-section .gallery-carousel{min-height:0;height:100%;display:flex;flex-direction:column}
 .site-stage .photos-section .carousel-track{flex:1;min-height:0}
 .site-stage .photos-section .photo-slide{height:100%}
 .site-stage .photos-section .photo-shell{height:100%;min-height:0}
 .site-stage .photos-section .carousel-dots{height:14px;min-height:14px;margin-top:3px}
 .site-stage .photos-section .photo-label{font-size:clamp(12px,1.1cqw,17px);padding:7px 10px}
 .site-stage .photos-section .visual-notice{display:none}
 .site-stage .page-presentation .presentation-layout{width:100%;max-width:none;height:100%;min-height:0;display:grid;grid-template-columns:56% 44%;grid-template-rows:67% 33%;gap:0;padding:14px 6% 8px}
 .site-stage .video-section{grid-column:1;grid-row:1;min-height:0;display:flex;flex-direction:column;padding-right:22px;margin:0}
 .site-stage .video-section .section-label,.site-stage .realizations-section .section-label,.site-stage .social-section .section-label{margin:0 0 11px;font-size:clamp(16px,1.75cqw,24px)}
 .site-stage .video-frame{flex:1;min-height:0;aspect-ratio:auto}
 .site-stage .video-caption{font-size:11px;margin-top:4px}
 .site-stage .realizations-section{grid-column:2;grid-row:1;min-height:0;margin:0;display:flex;flex-direction:column;padding-left:10px}
 .site-stage .realizations-section .gallery-carousel{min-height:0;flex:1;display:flex;flex-direction:column}
 .site-stage .gallery-thumbs .carousel-track{flex:1;min-height:0;align-items:stretch}
 .site-stage .gallery-thumbs .photo-slide{flex:0 0 calc((100% - 16px) / 3);height:100%}
 .site-stage .gallery-thumbs .photo-shell{height:100%;display:flex;flex-direction:column;overflow:visible}
 .site-stage .gallery-thumbs .photo-shell img{height:calc(100% - 28px);min-height:0;border-radius:9px}
 .site-stage .gallery-thumbs .photo-label{padding:5px 0;font-size:clamp(10px,.85cqw,13px)}
 .site-stage .gallery-thumbs .carousel-arrow{top:44%}
 .site-stage .gallery-thumbs .carousel-dots{flex:0 0 15px;margin-top:3px}
 .site-stage .realizations-section .visual-notice{font-size:10px;margin:6px 0 0}
 .site-stage .social-section{grid-column:1;grid-row:2;display:flex;justify-content:center;flex-direction:column;margin:0;padding-right:20px}
 .site-stage .social-links{gap:20px;padding-top:8px}
 .site-stage .social-icon{width:40px;height:40px}
 .site-stage .contact-band{grid-column:2;grid-row:2;align-self:center;margin:0;padding:14px 20px;gap:8px;min-height:0}
 .site-stage .contact-band-mark{font-size:25px}
 .site-stage .contact-band h2{font-size:clamp(13px,1.3cqw,19px)}
 .site-stage .contact-band p{font-size:11px}
 .site-stage .contact-band-button{font-size:11px;padding:8px 11px}
 .site-stage .contact-mail-inline{font-size:clamp(10px,.95cqw,14px)}
 .site-stage .contact-local{display:none}
 .site-stage .page-turn{top:47%;width:clamp(55px,5cqw,75px);height:clamp(65px,6cqw,88px);font-size:clamp(39px,4.4cqw,62px)}
}
@container (max-width:959px){
 .site-stage{width:100%;max-width:none;aspect-ratio:auto;display:flex;flex-direction:column;min-height:100dvh;overflow:visible}
 .site-stage .main-header{position:relative;top:auto}
 .site-stage .page-home,.site-stage .page-presentation{display:block;height:auto;overflow:visible}
 .page-home .services-section{padding:20px 16px 10px}
 .page-home .photos-section{padding:13px 16px 20px}
 .page-home .photos-inner{width:100%;max-width:100%}
 .page-home .hero{min-height:445px}
 .page-home .hero-copy{min-height:445px}
 .page-home .hero-text{width:min(600px,100%)}
 .page-home .hero-contact-phone{font-size:clamp(15px,4vw,19px);padding:11px 18px}
 .page-home .hero-contact-mail{font-size:clamp(11px,3vw,14px);line-height:1.2}
 .page-home .hero-cta{align-items:flex-start}
 .page-turn{position:absolute;top:40%;width:49px;height:62px;font-size:41px}
 .page-home .page-turn{top:46%}
 .page-presentation .page-turn{top:32%}
 .gallery-thumbs .photo-slide{flex-basis:calc((100% - 16px) / 3)}
 .footer-logo-image{width:34px;height:34px}
}
@media (max-width:520px){
 .hero-contact-mail{font-size:11px}
 .hero-contact-mail .ui-icon{width:17px;height:17px}
 .page-home .hero h1{font-size:clamp(31px,8vw,39px)}
 .page-home .hero-cta{display:flex;gap:8px}
 .page-home .hero-contact-phone{width:auto}
 .page-home .hero-contact-mail{padding:9px 10px}
 .page-home .photos-section{padding:9px 15px 24px}
 .page-home .service-description{min-width:0}
 .page-home .photo-shell{height:175px}
 .gallery-thumbs .photo-slide{flex:0 0 calc((100% - 16px)/3)}
 .gallery-thumbs .photo-shell{height:125px}
 .page-presentation .contact-band{padding-right:15px}
 .page-turn{width:43px;height:57px;font-size:38px}
}
@media (prefers-reduced-motion:reduce){
 .gallery-carousel{scroll-behavior:auto}
}


/* Champs éditoriaux supplémentaires : titre ET description de chaque photo. */
.photo-label strong{display:block;font-weight:800;line-height:1.15}
.photo-label small{display:block;margin-top:4px;font-size:.7em;line-height:1.22;font-weight:500;white-space:normal}
.gallery-thumbs .photo-label strong{font-size:inherit}
.gallery-thumbs .photo-label small{display:none}
.contact-band .contact-professional{font-weight:750}
.contact-band .contact-subtitle{opacity:.9}
@container (min-width: 960px){
 .site-stage .photo-label small{font-size:clamp(9px,.85cqw,12px)}
 .site-stage .photos-section .photo-label{max-width:min(320px,72%)}
 .site-stage .contact-band .contact-subtitle{font-size:clamp(10px,.8cqw,12px);line-height:1.18}
}

/* Footer : logo à gauche, centré en hauteur ; liens légaux en bas à droite. */
.main-footer {display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:1fr 1fr}
.main-footer .footer-top {
  grid-column:1;grid-row:1 / 3;display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  grid-template-rows:1fr 1fr;align-items:center;
  height:100%;gap:0 12px;
}
.main-footer .footer-top .footer-logo {
  grid-column:1;grid-row:1 / 3;align-self:center;justify-self:start;min-width:0;
}
.main-footer .footer-top .footer-services {
  grid-column:2;grid-row:1;align-self:center;justify-self:end;text-align:right;line-height:1.25;
}
.main-footer .footer-bottom {
  grid-column:1;grid-row:2;z-index:1;display:flex;align-self:end;align-items:center;
  justify-content:flex-end;height:auto;margin:0 auto;padding:0;border:0;text-align:right;gap:0;
}
.main-footer .footer-logo-text {font-size:20px}
.main-footer .footer-logo-text small {font-size:9px}
@container (min-width:960px) {
  .site-stage .main-footer .footer-top {height:100%}
  .site-stage .main-footer .footer-bottom {height:auto;margin:0 auto;padding:0;border:0}
  .site-stage .main-footer .footer-logo-text {font-size:clamp(15px,1.55cqw,20px)}
}
@media(max-width:650px) {
  .main-footer {min-height:105px}
  .main-footer .footer-top {column-gap:8px}
  .main-footer .footer-logo-text {font-size:16px}
  .main-footer .footer-logo-text small {font-size:8px}
  .main-footer .footer-services {font-size:9px}
  .main-footer .footer-bottom {font-size:10px;line-height:1.4}
  .main-footer .footer-logo-image {width:32px;height:32px}
}
/* Une transition courte accompagne le geste, sans bloquer le défilement vertical. */
.page-surface.page-swipe-out-left { transform: translateX(-12%); opacity: .5; transition: transform .15s ease-out, opacity .15s ease-out; }
.page-surface.page-swipe-out-right { transform: translateX(12%); opacity: .5; transition: transform .15s ease-out, opacity .15s ease-out; }
@media (prefers-reduced-motion: reduce) {
  .page-surface.page-swipe-out-left, .page-surface.page-swipe-out-right { transform: none; opacity: 1; transition: none; }
}

/* Page 2 : un seul visuel à la fois, avec carrousel automatique. */
.gallery-thumbs .carousel-track,.site-stage .gallery-thumbs .carousel-track {display:flex;flex-wrap:nowrap;gap:0;overflow-x:hidden;scroll-snap-type:x mandatory;width:100%}
.gallery-thumbs .photo-slide,.site-stage .gallery-thumbs .photo-slide {flex:0 0 100%;width:100%;min-width:100%;max-width:100%;scroll-snap-align:start;box-sizing:border-box}
.gallery-thumbs .photo-shell {width:100%}
.gallery-thumbs .photo-shell img {width:100%;object-fit:cover}
@container (min-width:960px) {
 .site-stage .gallery-thumbs .photo-shell {height:100%;overflow:hidden}
 .site-stage .gallery-thumbs .photo-shell img {width:100%;height:calc(100% - 30px);object-fit:cover}
}
/* Pied de page sans superposition : logo centré verticalement à gauche ; liens en bas à droite. */
.main-footer,.site-stage .main-footer {position:relative;display:block}
.main-footer {min-height:105px}
.main-footer .footer-top,.site-stage .main-footer .footer-top {display:flex;align-items:center;justify-content:space-between;height:100%;grid-column:auto;grid-row:auto;gap:12px}
.main-footer .footer-top .footer-logo,.site-stage .main-footer .footer-top .footer-logo {display:flex;align-items:center;justify-self:auto;align-self:center;grid-column:auto;grid-row:auto;min-width:0}
.main-footer .footer-top .footer-services,.site-stage .main-footer .footer-top .footer-services {grid-column:auto;grid-row:auto;align-self:center;justify-self:auto;padding-bottom:14px;margin-left:auto;text-align:right;max-width:50%}
.main-footer .footer-bottom,.site-stage .main-footer .footer-bottom {position:absolute;display:flex;right:max(15px,calc((100% - var(--max))/2));bottom:5px;left:auto;z-index:2;width:auto;max-width:calc(100% - 30px);height:auto;margin:0;padding:0;border:0;justify-content:flex-end;text-align:right;white-space:nowrap}
@container (min-width:960px) {
 .site-stage .main-footer {min-height:0}
 .site-stage .main-footer .footer-top {height:100%}
}
@media (max-width:650px) {
 .main-footer .footer-top,.site-stage .main-footer .footer-top {flex-direction:row;align-items:center}
 .main-footer .footer-top .footer-logo,.site-stage .main-footer .footer-top .footer-logo {margin:0}
 .main-footer .footer-bottom,.site-stage .main-footer .footer-bottom {right:15px}
}
.page-surface {touch-action:pan-y}
.gallery-carousel,.carousel-track {touch-action:pan-y}

/* Centrage vertical réel du bloc logo dans tout le bandeau, y compris sur téléphone. */
.main-footer,.site-stage .main-footer {display:flex;align-items:center}
.main-footer .footer-top,.site-stage .main-footer .footer-top {flex:1 1 auto;min-height:0}
