:root{
  --accent:#E02D33; --accent-2:#B8202A; --accent-lt:#FF7379; --cyan:#16A9DD; --blue:#2F3182; --green:#2E9E5B;
  --white:#F8FAFC; --slate:#1E293B;
  --blue-2:#4648A6; --line:rgba(30,41,59,.12);
  --f-head:"Bricolage Grotesque",system-ui,sans-serif;
  --f-body:"Instrument Sans",system-ui,sans-serif;
  --r:8px; --ease:cubic-bezier(.2,.75,.2,1); --ease-io:cubic-bezier(.77,0,.18,1);
  --shadow:0 24px 50px -28px rgba(47,49,130,.45);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
main{overflow-x:clip}
body{font-family:var(--f-body);background:var(--white);color:var(--slate);line-height:1.65;font-size:1.05rem;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%}
img{display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--f-head);line-height:1.1;letter-spacing:-.02em;color:var(--blue)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.wrap{width:min(1180px,92%);margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:#fff;padding:.6rem 1rem;z-index:200}
.skip:focus{left:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
::selection{background:var(--accent);color:#fff}

/* ---------- Page transition: glass panes wipe ---------- */
.curtain{position:fixed;inset:0;z-index:300;display:flex;pointer-events:none;animation:curtainHide 0s 1.5s forwards}
.curtain i{flex:1;background:linear-gradient(160deg,var(--blue),#1B1C58);position:relative;transform:translateY(0);animation:paneOut .85s var(--ease-io) both;animation-delay:calc(.35s + var(--k,0)*.09s)}
.curtain i:nth-child(1){--k:0}.curtain i:nth-child(2){--k:1}.curtain i:nth-child(3){--k:2}.curtain i:nth-child(4){--k:3}
.curtain i::after{content:"";position:absolute;inset:0;border-right:1px solid rgba(248,250,252,.18);background:linear-gradient(115deg,transparent 30%,rgba(248,250,252,.12) 48%,transparent 62%)}
.curtain i:nth-child(even){background:linear-gradient(160deg,#3B3D9A,var(--blue))}
.curtain__mark{position:absolute;left:50%;top:50%;width:104px;height:104px;margin:-52px 0 0 -52px;border-radius:26px;background:#fff url("../img/logo-mark.png") center/76% no-repeat;box-shadow:0 18px 40px -12px rgba(0,0,0,.5);animation:markOut .5s .15s ease both}
@keyframes paneOut{to{transform:translateY(-102%)}}
@keyframes paneIn{from{transform:translateY(102%)}to{transform:translateY(0)}}
@keyframes markOut{to{opacity:0;transform:scale(.6)}}
@keyframes markIn{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes curtainHide{to{visibility:hidden}}
.curtain.is-leaving{visibility:visible;pointer-events:all;animation:none}
.curtain.is-leaving i{animation:paneIn .5s var(--ease-io) both;animation-delay:calc(var(--k,0)*.06s)}
.curtain.is-leaving .curtain__mark{animation:markIn .4s .25s ease both}

.progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:120;transform-origin:left;transform:scaleX(var(--p,0));background:linear-gradient(90deg,var(--accent),var(--accent-2))}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--accent);color:#fff;font-weight:600;text-decoration:none;padding:.9rem 1.6rem;border:0;border-radius:99px;cursor:pointer;font:600 1rem var(--f-body);position:relative;overflow:hidden;isolation:isolate;transition:transform .25s var(--ease),background .25s,box-shadow .25s,color .25s;box-shadow:0 10px 24px -12px rgba(224,45,51,.9)}
.btn::after{content:"";position:absolute;top:0;bottom:0;left:-70%;width:45%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.65),transparent);transform:skewX(-20deg);z-index:-1;transition:left .6s var(--ease)}
.btn:hover{background:var(--accent-2);transform:translateY(-3px);box-shadow:0 16px 28px -12px rgba(184,32,42,.9)}
.btn:hover::after{left:130%}
.btn--sm{padding:.55rem 1.15rem;font-size:.95rem}
.btn--ghost{background:transparent;color:var(--white);box-shadow:inset 0 0 0 2px rgba(248,250,252,.55)}
.btn--ghost:hover{background:var(--white);color:var(--blue);box-shadow:inset 0 0 0 2px var(--white)}
.btn--ghost-light{background:transparent;color:var(--white);box-shadow:inset 0 0 0 2px var(--accent)}
.btn--ghost-light:hover{background:var(--accent);color:#fff}
.btn--dark{background:var(--blue);color:var(--white)}
.btn--dark:hover{background:var(--slate)}
.btn--block{width:100%;font-size:1.05rem;padding:1.05rem}
.btn--pulse{animation:pulse 2.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(224,45,51,.55)}70%{box-shadow:0 0 0 16px rgba(224,45,51,0)}100%{box-shadow:0 0 0 0 rgba(224,45,51,0)}}
.more{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--blue);margin-top:1rem;text-decoration:none}
.more .ico{transition:transform .25s var(--ease)}
a:hover .more .ico,.more:hover .ico{transform:translateX(5px)}

/* ---------- Nav ---------- */
.nav{position:sticky;top:0;z-index:100;background:rgba(248,250,252,.82);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border-bottom:1px solid var(--line);transition:box-shadow .3s,background .3s}
.nav.is-scrolled{box-shadow:0 12px 30px -20px rgba(47,49,130,.55);background:rgba(248,250,252,.94)}
.nav__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:76px;transition:min-height .3s}
.nav.is-scrolled .nav__in{min-height:76px}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.brand__mark{width:54px;height:40px;flex:none;background:url("../img/logo-mark.png") center/contain no-repeat;transition:transform .5s var(--ease)}
.brand:hover .brand__mark{transform:scale(1.08)}
.brand__txt{display:flex;flex-direction:column;line-height:1.1}
.brand__txt b{font:800 1.28rem var(--f-head);color:var(--blue);letter-spacing:-.02em}
.brand__txt small{font-size:.72rem;color:#5b6778}
.brand--light .brand__txt b{color:var(--white)}.brand--light .brand__txt small{color:#B3B9D6}
.brand--light .brand__mark{background:#fff url("../img/logo-mark.png") center/76% no-repeat;border-radius:12px;width:56px;height:48px}
.menu{display:flex;align-items:center;gap:.25rem}
.menu a:not(.btn){position:relative;text-decoration:none;font-weight:500;font-size:.96rem;padding:.5rem .8rem;border-radius:99px;transition:color .2s,background .2s}
.menu a:not(.btn)::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:.22rem;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.menu a:not(.btn):hover::after,.menu a.is-active::after{transform:scaleX(1)}
.menu a.is-active{color:var(--blue);font-weight:600;background:rgba(224,45,51,.2)}
.menu .btn{margin-left:.6rem}
.nav__toggle{display:none;width:46px;height:46px;background:var(--blue);border:0;border-radius:12px;cursor:pointer;position:relative}
.nav__toggle span{position:absolute;left:12px;right:12px;height:2px;background:#fff;border-radius:2px;transition:transform .3s var(--ease),opacity .2s,top .3s var(--ease)}
.nav__toggle span:nth-child(1){top:15px}.nav__toggle span:nth-child(2){top:22px}.nav__toggle span:nth-child(3){top:29px}
.nav__toggle[aria-expanded="true"] span:nth-child(1){top:22px;transform:rotate(45deg)}
.nav__toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav__toggle[aria-expanded="true"] span:nth-child(3){top:22px;transform:rotate(-45deg)}

/* ---------- Reveal animations ---------- */
.js [data-reveal]{opacity:0;translate:0 38px;transition:opacity .9s var(--ease),translate .9s var(--ease),scale .9s var(--ease),transform .25s ease-out,box-shadow .3s;transition-delay:var(--d,0s)}
.js [data-reveal="left"]{translate:-60px 0}
.js [data-reveal="right"]{translate:60px 0}
.js [data-reveal="zoom"]{translate:0 0;scale:.86}
.js [data-reveal].is-in{opacity:1;translate:0 0;scale:1}
.js [data-reveal].done{transition-delay:0s}
.split-words .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.js .split-words .w>span{display:inline-block;transform:translateY(112%);animation:wordUp .85s var(--ease) forwards;animation-delay:calc(var(--base,.85s) + var(--i,0)*.07s)}
@keyframes wordUp{to{transform:none}}

/* ---------- Hero ---------- */
.hero{background:linear-gradient(135deg,#2F3182,#1B1C58 70%);color:var(--white);position:relative;overflow:hidden;padding:clamp(3rem,6vw,5.5rem) 0 clamp(5rem,9vw,8.5rem);clip-path:polygon(0 0,100% 0,100% 94%,0 100%)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(800px 480px at 88% 18%,rgba(224,45,51,.28),transparent 60%),radial-gradient(600px 400px at 0% 100%,rgba(22,169,221,.2),transparent 60%),repeating-linear-gradient(115deg,transparent 0 120px,rgba(248,250,252,.025) 120px 121px)}
.hero__bg i{position:absolute;display:block;border-radius:4px;background:linear-gradient(135deg,rgba(248,250,252,.14),rgba(248,250,252,.02));box-shadow:inset 0 0 0 1px rgba(248,250,252,.18);transform:skewX(-12deg);animation:drift 14s ease-in-out infinite alternate}
.hero__bg i:nth-child(1){left:-4%;top:-10%;width:18%;height:120%}
.hero__bg i:nth-child(2){left:38%;top:-20%;width:9%;height:130%;animation-duration:18s;animation-delay:-4s}
.hero__bg i:nth-child(3){right:-3%;top:-10%;width:14%;height:120%;animation-duration:16s;animation-delay:-8s}
@keyframes drift{from{translate:0 0}to{translate:40px 24px}}
.hero__in{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.hero__kicker{display:inline-flex;align-items:center;gap:.6rem;color:var(--accent-lt);font-weight:600;margin-bottom:1.1rem;padding:.35rem .9rem;border-radius:99px;background:rgba(248,250,252,.08);box-shadow:inset 0 0 0 1px rgba(248,250,252,.18);font-size:.95rem}
.dot{width:9px;height:9px;border-radius:50%;background:var(--accent);animation:blink 1.8s infinite}
@keyframes blink{50%{opacity:.25;transform:scale(.7)}}
.hero h1{color:var(--white);font-size:clamp(2.4rem,5.2vw,4.3rem);font-weight:800}
.hero h1>span{display:block;color:var(--accent-lt)}
.hero h1>.w>span{color:#fff}
.hero h1>span .w>span{color:var(--accent-lt)}
.hero__lead{margin-top:1.4rem;max-width:58ch;color:#dbe6f0}
.hero__lead2{margin-top:.8rem;max-width:58ch;color:#b9cbdc}
.hero__btns{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem}
.js .hero__copy>:not(h1){opacity:0;animation:fadeUp .9s var(--ease) forwards}
.js .hero__copy>.hero__kicker{animation-delay:.7s}
.js .hero__copy>.hero__lead{animation-delay:1.25s}
.js .hero__copy>.hero__lead2{animation-delay:1.4s}
.js .hero__copy>.hero__btns{animation-delay:1.55s}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

.stage{position:relative;aspect-ratio:1/1;max-width:560px;margin-inline:auto;width:100%;--mx:0;--my:0}
.js .stage{opacity:0;animation:fadeUp 1.1s 1s var(--ease) forwards}
.stage__glow{position:absolute;inset:8% 10% 12% 4%;border-radius:50%;background:radial-gradient(circle,rgba(224,45,51,.55),transparent 65%);filter:blur(24px);animation:breathe 5s ease-in-out infinite alternate}
@keyframes breathe{to{transform:scale(1.15);opacity:.7}}
.stage figure{position:absolute;margin:0;overflow:hidden;border-radius:18px;box-shadow:0 30px 60px -24px rgba(0,0,0,.65),0 0 0 1px rgba(248,250,252,.45),0 0 0 7px rgba(248,250,252,.08)}
.stage figure img{width:100%;height:100%;object-fit:cover}
.stage__main{inset:7% 12% 15% 0;translate:calc(var(--mx)*-10px) calc(var(--my)*-10px);transition:translate .25s ease-out}
.stage__shine{position:absolute;inset:-20% auto -20% -60%;width:35%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-18deg);animation:sweep 5s 2s ease-in-out infinite}
@keyframes sweep{0%{left:-60%}35%,100%{left:160%}}
.stage__card{width:42%;aspect-ratio:4/3;transition:translate .25s ease-out}
.stage__card--a{right:0;top:0;translate:calc(var(--mx)*16px) calc(var(--my)*14px);animation:float 6s ease-in-out infinite alternate}
.stage__card--b{left:7%;bottom:0;width:46%;translate:calc(var(--mx)*14px) calc(var(--my)*18px);animation:float 7s -2s ease-in-out infinite alternate}
@keyframes float{from{margin-top:0}to{margin-top:-14px}}
@keyframes floatT{from{translate:0 0}to{translate:0 -14px}}
.chip{position:absolute;display:flex;align-items:center;gap:.7rem;padding:.7rem 1rem .7rem .8rem;border-radius:14px;background:rgba(248,250,252,.92);backdrop-filter:blur(8px);color:var(--blue);box-shadow:0 18px 34px -16px rgba(0,0,0,.55);font-size:.82rem;line-height:1.25;animation:float 5s ease-in-out infinite alternate}
.chip b{display:block;font:700 .98rem var(--f-head);color:var(--blue)}
.chip .ico{color:var(--accent);flex:none}
.chip--1{right:-2%;bottom:24%;animation-delay:-1s}
.chip--2{left:-4%;top:12%;animation-delay:-3s}
.scrollcue{position:absolute;left:50%;bottom:2.6rem;width:26px;height:42px;margin-left:-13px;border-radius:14px;box-shadow:inset 0 0 0 2px rgba(248,250,252,.5);z-index:2}
.scrollcue span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--accent);animation:cue 1.8s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(16px)}}

/* ---------- Marquee ---------- */
.marquee{overflow:hidden;background:var(--accent);color:#fff;margin-top:-1.5rem;position:relative;z-index:2;transform:rotate(-1deg) scale(1.02);box-shadow:0 14px 30px -18px rgba(0,0,0,.5)}
.marquee__track{display:flex;width:max-content;gap:1.6rem;padding:.9rem 0;animation:marq 38s linear infinite;font:800 1.15rem var(--f-head);letter-spacing:-.01em;text-transform:uppercase}
.marquee__track b{color:var(--blue);font-size:.8rem;align-self:center}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- Stats ---------- */
.stats{padding:4.5rem 0 1rem}
.stats__in{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.stat{text-align:center;padding:1.8rem 1rem;border-radius:16px;background:#fff;box-shadow:var(--shadow),inset 0 0 0 1px var(--line);position:relative;overflow:hidden}
.stat::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.stat strong{display:block;font:800 clamp(2.4rem,4.4vw,3.4rem)/1 var(--f-head);color:var(--blue)}
.stat span{display:block;margin-top:.5rem;color:#475467;font-weight:500;font-size:.98rem}

/* ---------- Sections ---------- */
.sec{padding:clamp(3.5rem,7vw,6rem) 0}
.sec--tint{background:linear-gradient(180deg,#EFF1F9,#E8EBF6)}
.eyebrow{display:inline-block;font:600 .85rem var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.7rem;position:relative;padding-left:2.2rem}
.eyebrow::before{content:"";position:absolute;left:0;top:50%;width:1.6rem;height:2px;background:var(--accent)}
.eyebrow--light{color:var(--accent-lt)}.eyebrow--light::before{background:var(--accent-lt)}
.sec__h{font-size:clamp(1.9rem,3.6vw,2.8rem);margin-bottom:2.2rem;max-width:22ch}
.lead{font-size:1.28rem;line-height:1.5;color:var(--blue);font-family:var(--f-head);font-weight:500;letter-spacing:-.01em}
.lead--narrow{max-width:62ch;margin-bottom:2.4rem;font-size:1.2rem}
.prose p{margin-top:1rem;max-width:62ch}
.prose .btn{margin-top:1.6rem}
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:3.5rem;align-items:center}

/* ---------- Accordion of spaces ---------- */
.acc{display:flex;gap:.8rem;height:480px}
.acc__item{position:relative;flex:1;border-radius:20px;overflow:hidden;cursor:pointer;background:var(--img) center/cover no-repeat,var(--blue);color:#fff;transition:flex .8s var(--ease),transform .25s ease-out,opacity .9s var(--ease),translate .9s var(--ease);min-width:0;outline-offset:-3px}
.acc__item.is-open{flex:4.2}
.acc__shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,19,62,.92) 0%,rgba(18,19,62,.35) 55%,rgba(18,19,62,.18));transition:background .5s}
.acc__item:not(.is-open) .acc__shade{background:linear-gradient(0deg,rgba(18,19,62,.75),rgba(47,49,130,.55))}
.acc__ico{position:absolute;left:1.3rem;top:1.3rem;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:rgba(248,250,252,.18);backdrop-filter:blur(8px);color:var(--accent-lt);box-shadow:inset 0 0 0 1px rgba(248,250,252,.4)}
.acc__num{position:absolute;right:1.3rem;top:1rem;font:800 1.2rem var(--f-head);color:rgba(255,255,255,.7)}
.acc__txt{position:absolute;left:1.6rem;right:1.6rem;bottom:1.5rem;opacity:0;translate:0 20px;transition:opacity .5s .1s,translate .6s .1s var(--ease)}
.acc__item.is-open .acc__txt{opacity:1;translate:0 0;transition-delay:.3s}
.acc__txt h3{color:#fff;font-size:clamp(1.4rem,2.4vw,2rem);margin-bottom:.5rem}
.acc__txt p{max-width:46ch;color:#E2E6F3}

/* ---------- Bento tiles with images ---------- */
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:1.1rem}
.tile{grid-column:span 2;display:flex;flex-direction:column;text-decoration:none;border-radius:20px;background:#fff;box-shadow:var(--shadow),inset 0 0 0 1px var(--line);overflow:hidden;position:relative}
.tile__img{display:block;height:180px;overflow:hidden;position:relative}
.tile__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.tile:hover .tile__img img{transform:scale(1.1)}
.tile__img::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(47,49,130,.25),transparent 60%)}
.tile__body{display:block;padding:1.5rem 1.6rem 1.7rem;position:relative}
.tile__ico{position:absolute;right:1.3rem;top:-26px;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--accent);color:#fff;box-shadow:0 10px 20px -8px rgba(224,45,51,.9);transition:transform .5s var(--ease)}
.tile:hover .tile__ico{transform:rotate(-12deg) scale(1.1)}
.tile h3{font-size:1.35rem;margin-bottom:.5rem}
.tile p{color:#475467;font-size:.98rem}
.tile--1,.tile--6{display:grid;grid-template-columns:1fr 1fr}
.tile--1{grid-column:span 4;background:var(--blue)}
.tile--1 .tile__img{height:100%;min-height:260px;order:2}
.tile--1 h3{color:#fff;font-size:1.9rem}.tile--1 p{color:#CDD3EA}.tile--1 .more{color:var(--accent-lt)}
.tile--6{grid-column:span 6;background:var(--accent)}
.tile--6 .tile__img{height:100%;min-height:240px}
.tile--6 .tile__body{align-self:center;padding:2rem}
.tile--6 h3{font-size:1.9rem;color:#fff}.tile--6 p{color:rgba(255,255,255,.92)}.tile--6 .more{color:#fff}
.tile--6 .tile__ico{background:#fff;color:var(--accent)}
.tile--1 .tile__ico,.tile--6 .tile__ico{position:static;margin:0 0 1rem}
.tile--1 .tile__body,.tile--6 .tile__body{align-self:center}

/* tilt (JS sets --rx/--ry) */
.tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;will-change:transform}
.tilt::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;border-radius:inherit;background:radial-gradient(380px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.35),transparent 45%);opacity:0;transition:opacity .3s}
.tilt:hover::before{opacity:1}
.tilt:hover{box-shadow:0 34px 60px -28px rgba(47,49,130,.6),inset 0 0 0 1px var(--line)}

/* ---------- Process steps ---------- */
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;counter-reset:s;position:relative}
.steps::before{content:"";position:absolute;left:8%;right:8%;top:34px;height:2px;background:repeating-linear-gradient(90deg,var(--accent) 0 10px,transparent 10px 20px);opacity:.55}
.steps li{position:relative;text-align:center;padding:0 .6rem}
.steps__n{position:absolute;left:50%;top:-14px;translate:30px 0;font:800 .9rem var(--f-head);background:var(--blue);color:#fff;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;z-index:2;box-shadow:0 0 0 4px var(--white)}
.sec--tint .steps__n{box-shadow:0 0 0 4px #EAEDF8}
.steps__ico{display:grid;place-items:center;width:70px;height:70px;margin:0 auto 1.1rem;border-radius:22px;background:linear-gradient(145deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 16px 28px -14px rgba(184,32,42,.9);transition:transform .5s var(--ease);position:relative;z-index:1;transform:rotate(-6deg)}
.steps li:hover .steps__ico{transform:rotate(6deg) scale(1.1)}
.steps h3{font-size:1.25rem;margin-bottom:.4rem}
.steps p{color:#475467;font-size:.98rem}

/* ---------- Manufacturing band ---------- */
.mfg{background:linear-gradient(135deg,#25286E,#14153F);color:var(--white);padding:clamp(5rem,9vw,8rem) 0 clamp(4rem,8vw,7rem);clip-path:polygon(0 4%,100% 0,100% 100%,0 100%);margin-top:-2rem;position:relative}
.mfg__in{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center;padding-top:2rem}
.mfg h2{color:var(--white);font-size:clamp(1.9rem,3.6vw,2.7rem)}
.mfg p{margin:1.2rem 0 1.8rem;color:#cbd5e1;max-width:55ch}
.mfg__photo{position:relative;margin:0;border-radius:22px;overflow:hidden;box-shadow:0 40px 70px -30px rgba(0,0,0,.8),0 0 0 1px rgba(248,250,252,.2),0 0 0 10px rgba(248,250,252,.05)}
.mfg__photo img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s var(--ease)}
.mfg__photo:hover img{transform:scale(1.06)}
.mfg__photo figcaption{position:absolute;left:1rem;bottom:1rem;padding:.5rem 1rem;border-radius:99px;background:rgba(248,250,252,.92);color:var(--blue);font:700 .9rem var(--f-head)}

/* ---------- Saint-Gobain ---------- */
.sg__in{display:grid;grid-template-columns:auto 1fr;gap:3rem;align-items:center}
.sg h2{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:1rem}
.sg p{max-width:62ch}
.sg__seal{position:relative;width:170px;height:170px;border-radius:50%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 30% 25%,#46c27f,var(--green));color:var(--white);font:800 1.2rem/1.15 var(--f-head);box-shadow:0 0 0 8px var(--white),0 0 0 10px var(--green),0 24px 40px -18px rgba(46,158,91,.8)}
.sg__seal::before{content:"";position:absolute;inset:-22px;border-radius:50%;border:2px dashed rgba(46,158,91,.6);animation:spin 24s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Promise ---------- */
.promise{background:linear-gradient(120deg,var(--accent),var(--accent-2),var(--accent));background-size:200% 100%;animation:grad 9s ease-in-out infinite alternate;padding:clamp(3.5rem,7vw,5.5rem) 0;text-align:left;position:relative;overflow:hidden}
.promise::after{content:"";position:absolute;right:-6%;top:-40%;width:30%;height:180%;background:linear-gradient(135deg,rgba(255,255,255,.35),rgba(255,255,255,.02));transform:skewX(-14deg)}
@keyframes grad{to{background-position:100% 0}}
.promise h2{font-size:1.2rem;font-family:var(--f-body);font-weight:600;color:#fff;margin-bottom:.8rem}
.promise__big{font:800 clamp(1.9rem,4.6vw,3.6rem)/1.08 var(--f-head);color:#fff;max-width:20ch;letter-spacing:-.025em;margin-bottom:1.4rem}
.promise p:last-child{max-width:60ch;color:rgba(255,255,255,.95)}

/* ---------- CTA ---------- */
.cta{background:linear-gradient(135deg,var(--blue),#1B1C58);color:var(--white);padding:5rem 0;text-align:center;position:relative;overflow:hidden}
.cta__orb{position:absolute;border-radius:50%;filter:blur(50px);opacity:.45;animation:breathe 7s ease-in-out infinite alternate}
.cta__orb--1{width:340px;height:340px;background:var(--accent);left:-80px;top:-120px}
.cta__orb--2{width:300px;height:300px;background:var(--green);right:-60px;bottom:-140px;animation-delay:-3s}
.cta__in{position:relative}
.cta h2{color:var(--white);font-size:clamp(1.8rem,3.4vw,2.6rem)}
.cta p{margin:.8rem 0 1.8rem;color:#CDD3EA}
.cta .btn--dark{background:var(--accent);color:#fff}.cta .btn--dark:hover{background:var(--accent-2)}

/* ---------- Page head ---------- */
.phead{background:var(--blue);color:var(--white);padding:clamp(3.5rem,7vw,5.5rem) 0 clamp(4rem,8vw,6.5rem);clip-path:polygon(0 0,100% 0,100% 90%,0 100%);position:relative;overflow:hidden}
.phead__bg{position:absolute;inset:-12% 0;background-size:cover;background-position:center;transform:translateY(var(--py,0px)) scale(1.08);animation:zoomIn 1.8s var(--ease) both}
@keyframes zoomIn{from{scale:1.18;opacity:.4}to{scale:1;opacity:1}}
.phead__shade{position:absolute;inset:0;background:linear-gradient(95deg,rgba(47,49,130,.96) 12%,rgba(47,49,130,.8) 50%,rgba(47,49,130,.45))}
.phead__in{position:relative;display:flex;justify-content:space-between;align-items:center;gap:2rem}
.crumb{font-size:.92rem;color:#CDD3EA;margin-bottom:.9rem}
.crumb a{text-decoration:none;color:var(--accent-lt);font-weight:600}.crumb a:hover{text-decoration:underline}
.crumb span{opacity:.5;margin:0 .3rem}
.phead h1{color:var(--white);font-size:clamp(2.1rem,4.6vw,3.6rem);font-weight:800}
.phead .split-words{--base:.75s}
.phead__sub{color:#d3e0ec;margin-top:.8rem;max-width:56ch;font-size:1.15rem}
.js .phead__sub,.js .crumb{opacity:0;animation:fadeUp .9s var(--ease) forwards}
.js .crumb{animation-delay:.65s}.js .phead__sub{animation-delay:1.15s}
.phead__panes{display:flex;gap:10px;flex:none;height:170px;align-items:flex-end}
.phead__panes i{display:block;width:46px;height:130px;border-radius:3px;background:linear-gradient(135deg,rgba(248,250,252,.34),rgba(248,250,252,.05));box-shadow:inset 0 0 0 1px rgba(248,250,252,.5),inset 3px 0 0 rgba(248,250,252,.8);transform:skewX(-8deg);animation:floatT 5s ease-in-out infinite alternate}
.phead__panes i:nth-child(2){height:170px;background:linear-gradient(135deg,rgba(224,45,51,.7),rgba(184,32,42,.25));animation-delay:-1.5s}
.phead__panes i:nth-child(3){height:100px;animation-delay:-3s}

/* ---------- Grids / cards ---------- */
.grid{display:grid;gap:1.3rem}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}

.svc{display:grid;grid-template-columns:40% 1fr;background:#fff;border-radius:20px;box-shadow:var(--shadow),inset 0 0 0 1px var(--line);overflow:hidden;position:relative}
.svc__img{display:block;overflow:hidden;min-height:230px}
.svc__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.svc:hover .svc__img img{transform:scale(1.1)}
.svc__body{padding:1.6rem 1.6rem 1.5rem;position:relative}
.svc__ico{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:14px;background:rgba(224,45,51,.25);color:var(--blue);margin-bottom:.8rem}
.svc h3,.prod h3,.focus h3,.pillar h3{font-size:1.28rem;margin-bottom:.4rem}
.svc p,.prod p,.focus p,.why p,.pillar p{color:#475467}

.prod{display:flex;flex-direction:column;text-decoration:none;background:#fff;border-radius:20px;box-shadow:var(--shadow),inset 0 0 0 1px var(--line);overflow:hidden;position:relative}
.prod__img{display:block;height:200px;overflow:hidden;position:relative}
.prod__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.prod:hover .prod__img img{transform:scale(1.1)}
.prod__ico{position:absolute;left:1.2rem;bottom:1rem;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--blue);color:var(--accent-lt);box-shadow:0 0 0 4px rgba(255,255,255,.9)}
.prod__body{display:block;padding:1.4rem 1.6rem 1.7rem}

.focus{padding:1.8rem;background:#fff;border-radius:18px;border-top:4px solid var(--accent);box-shadow:var(--shadow);position:relative}
.pillar{padding:1.8rem;background:#fff;border-radius:20px;box-shadow:var(--shadow),inset 0 0 0 1px var(--line);position:relative;overflow:hidden}
.pillar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.pillar:hover::after{transform:scaleX(1)}
.pillar__ico{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:var(--blue);color:var(--accent-lt);margin-bottom:1rem}

.why{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}
.why__card{display:flex;gap:1.1rem;padding:1.7rem;background:#fff;border-radius:18px;box-shadow:var(--shadow),inset 0 0 0 1px var(--line);position:relative;overflow:hidden;transition:transform .3s var(--ease)}
.why__card:hover{transform:translateY(-4px)}
.why__no{position:absolute;right:1rem;top:-.2rem;font:800 4.4rem var(--f-head);color:rgba(47,49,130,.06);line-height:1}
.why h3{font-size:1.3rem;margin-bottom:.35rem}
.why__tick{flex:none;width:40px;height:40px;border-radius:50%;background:linear-gradient(145deg,#46c27f,var(--green));color:#fff;display:grid;place-items:center;box-shadow:0 10px 18px -8px rgba(46,158,91,.9)}

/* ---------- Gallery + lightbox ---------- */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.1rem}
.shot{position:relative;margin:0;border-radius:18px;overflow:hidden;cursor:zoom-in;aspect-ratio:4/3;box-shadow:var(--shadow)}
.shot img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.shot:hover img{transform:scale(1.12) rotate(.6deg)}
.shot figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:2.4rem 1.2rem 1rem;background:linear-gradient(0deg,rgba(18,19,62,.92),transparent);color:#fff;font:700 1.05rem var(--f-head)}
.shot figcaption em{font:600 .8rem var(--f-body);font-style:normal;padding:.25rem .8rem;border-radius:99px;background:var(--accent);color:#fff;opacity:0;translate:0 8px;transition:.4s var(--ease)}
.shot:hover figcaption em,.shot:focus-visible figcaption em{opacity:1;translate:0 0}
.lightbox{position:fixed;inset:0;z-index:250;background:rgba(7,20,32,.92);backdrop-filter:blur(8px);display:grid;place-items:center;padding:2rem;animation:fadeIn .3s both}
.lightbox[hidden]{display:none}
.lightbox figure{max-width:min(1000px,94vw);animation:pop .5s var(--ease) both}
.lightbox img{width:100%;max-height:78vh;object-fit:contain;border-radius:14px;background:#0b1624}
.lightbox figcaption{color:#fff;text-align:center;margin-top:.9rem;font:700 1.2rem var(--f-head)}
.lightbox__x{position:absolute;right:1.2rem;top:1rem;width:48px;height:48px;border-radius:50%;border:0;background:rgba(248,250,252,.15);color:#fff;font-size:2rem;line-height:1;cursor:pointer;transition:background .2s,transform .3s}
.lightbox__x:hover{background:var(--accent);color:#fff;transform:rotate(90deg)}
@keyframes fadeIn{from{opacity:0}}
@keyframes pop{from{opacity:0;transform:scale(.88)}}

/* ---------- About / photos ---------- */
.about__media{position:relative;padding-bottom:3rem}
.ph{display:grid;place-items:center;text-align:center;min-height:300px;border-radius:20px;color:#64748b;background:repeating-linear-gradient(135deg,#E7EAF5 0 14px,#EEF0F8 14px 28px);border:2px dashed #b6c4d4;padding:1rem;position:relative}
.ph small{display:block;font-size:.8rem;margin-top:.3rem}
.ph--owner{min-height:440px;background:linear-gradient(160deg,rgba(47,49,130,.06),rgba(224,45,51,.14)),repeating-linear-gradient(135deg,#E7EAF5 0 14px,#EEF0F8 14px 28px)}
.about__float{position:absolute;left:-2.2rem;bottom:0;width:52%;margin:0;border-radius:16px;overflow:hidden;box-shadow:0 26px 44px -18px rgba(47,49,130,.6),0 0 0 6px #fff;animation:float 6s ease-in-out infinite alternate}
.about__float img{width:100%;aspect-ratio:4/3;object-fit:cover}
.photo{margin:0;border-radius:22px;overflow:hidden;box-shadow:var(--shadow),0 0 0 8px #fff,0 0 0 9px var(--line);position:relative}
.photo img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s var(--ease)}
.photo:hover img{transform:scale(1.05)}
.photo figcaption{padding:.8rem 1rem;font-size:.85rem;color:#64748b;background:#fff}

/* ---------- Contact ---------- */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.info{margin-top:1.6rem;display:grid;grid-template-columns:130px 1fr;gap:1rem 1rem;align-items:start}
.info dt{font-weight:600;color:var(--blue);display:flex;align-items:center;gap:.5rem}
.info dt .ico{color:var(--accent)}
.map{margin-top:1.6rem;border-radius:18px;overflow:hidden;box-shadow:var(--shadow),inset 0 0 0 1px var(--line)}
.map iframe{width:100%;height:280px;border:0;display:block}
.form{background:#fff;padding:2.2rem;border-radius:22px;box-shadow:0 30px 60px -30px rgba(47,49,130,.45),inset 0 0 0 1px var(--line);border-top:6px solid var(--accent)}
.form h2{font-size:1.7rem;margin-bottom:1.2rem}
.field{margin-bottom:1rem}
.field label{display:block;font-weight:600;font-size:.93rem;margin-bottom:.3rem}
.field input,.field select,.field textarea{width:100%;padding:.85rem .95rem;border:1.5px solid #cbd5e1;border-radius:12px;font:inherit;background:var(--white);color:var(--slate);transition:border-color .25s,box-shadow .25s,background .25s}
.field input:hover,.field select:hover,.field textarea:hover{border-color:#9AA1C4}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(224,45,51,.4);background:#fff}
.field--err input,.field--err select,.field--err textarea{border-color:#c0392b}
.err{color:#b03a2e;display:block;margin-top:.25rem}
.toast{background:var(--green);color:#fff;text-align:center;padding:.9rem 1rem;font-weight:600;animation:slideDown .6s var(--ease) both}
@keyframes slideDown{from{translate:0 -100%;opacity:0}}

/* ---------- Footer ---------- */
.foot{background:#17184A;color:#cbd5e1;padding-top:4rem;position:relative;overflow:hidden}
.foot__glow{position:absolute;right:-120px;top:-160px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(224,45,51,.25),transparent 65%)}
.foot__grid{position:relative;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2.5rem}
.foot h4{color:var(--white);font-size:1.1rem;margin-bottom:.8rem}
.foot a{display:block;text-decoration:none;margin:.35rem 0;width:fit-content;transition:color .2s,transform .25s var(--ease)}
.foot a:not(.btn):not(.brand):hover{color:var(--accent-lt);transform:translateX(5px)}
.foot .brand,.foot .btn{display:inline-flex}
.foot .btn{margin-top:1rem;color:#fff}
.foot__lead{margin:1rem 0;max-width:34ch}
.badge-sg{display:inline-block;border:1px solid var(--green);color:#8be0ab;border-radius:99px;padding:.3rem .9rem;font-size:.85rem}
.foot__base{position:relative;margin-top:2.5rem;padding:1.2rem 0;border-top:1px solid rgba(248,250,252,.12);font-size:.88rem;color:#9AA1C4}
.wa{position:fixed;right:1rem;bottom:1rem;z-index:90;background:var(--green);color:#fff;text-decoration:none;font-weight:600;padding:.8rem 1.2rem;border-radius:99px;box-shadow:0 10px 24px -8px rgba(0,0,0,.4);animation:pulse 2.6s infinite}
.totop{position:fixed;right:1.1rem;bottom:5rem;z-index:90;width:46px;height:46px;border-radius:50%;border:0;cursor:pointer;background:var(--blue);color:var(--accent-lt);display:grid;place-items:center;box-shadow:0 14px 26px -10px rgba(47,49,130,.8);opacity:0;visibility:hidden;translate:0 16px;transition:.4s var(--ease)}
.totop .ico{transform:rotate(-90deg)}
.totop.is-on{opacity:1;visibility:visible;translate:0 0}
.totop:hover{background:var(--accent);color:#fff}

/* ---------- Banner slider ---------- */
.slider{position:relative;height:clamp(340px,46vw,520px);overflow:hidden;background:var(--slate)}
.slider__track{position:absolute;inset:0}
.slide{position:absolute;inset:0;display:flex;align-items:center;opacity:0;visibility:hidden;transition:opacity 1s ease,visibility 1s;background-size:cover;background-position:center;color:var(--white)}
.slide.is-active{opacity:1;visibility:visible}
.slide::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 90px,rgba(255,255,255,.05) 90px 92px)}
.slide--photo::before,.slide--img::before{background:linear-gradient(90deg,rgba(18,19,62,.94),rgba(47,49,130,.74) 58%,rgba(47,49,130,.3))}
.slide__in{position:relative;padding:0 4rem}
.slide__ico{display:grid;place-items:center;width:84px;height:84px;margin-bottom:1rem;border-radius:24px;background:rgba(248,250,252,.14);backdrop-filter:blur(8px);color:var(--accent-lt);box-shadow:inset 0 0 0 1px rgba(248,250,252,.35)}
.slide h2{color:inherit;font-size:clamp(1.8rem,4.2vw,3.2rem);font-weight:800;max-width:20ch}
.slide p{margin:.8rem 0 1.5rem;max-width:52ch;font-size:1.12rem;color:#E2E6F3}
.slide.is-active .slide__in>*{animation:rise .9s var(--ease) both}
.slide.is-active .slide__in>*:nth-child(2){animation-delay:.12s}.slide.is-active .slide__in>*:nth-child(3){animation-delay:.24s}.slide.is-active .slide__in>*:nth-child(4){animation-delay:.36s}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.slider__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:48px;border-radius:50%;border:0;cursor:pointer;background:rgba(248,250,252,.88);color:var(--blue);font-size:1.8rem;line-height:1;display:grid;place-items:center;transition:background .2s,transform .25s var(--ease)}
.slider__nav:hover{background:var(--accent);transform:translateY(-50%) scale(1.1)}
.slider__prev{left:1rem}.slider__next{right:1rem}
.slider__dots{position:absolute;z-index:3;left:0;right:0;bottom:1.1rem;display:flex;justify-content:center;gap:.5rem}
.slider__dots button{width:38px;height:6px;border:0;border-radius:3px;background:rgba(248,250,252,.5);cursor:pointer;padding:0;position:relative;overflow:hidden}
.slider__dots button.is-active::after{content:"";position:absolute;inset:0;background:var(--accent);transform-origin:left;animation:fill var(--dur,5s) linear both}
.slider.paused .slider__dots button.is-active::after{animation-play-state:paused}
@keyframes fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---------- Responsive ---------- */
@media (max-width:1240px){
  .nav__toggle{display:block}
  .menu{display:flex;visibility:hidden;opacity:0;translate:0 -12px;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:.1rem;background:rgba(248,250,252,.98);padding:1rem 4% 1.4rem;border-bottom:1px solid var(--line);box-shadow:0 26px 40px -24px rgba(47,49,130,.5);transition:.35s var(--ease)}
  .menu.open{visibility:visible;opacity:1;translate:0 0}
  .menu a:not(.btn){padding:.8rem 1rem;font-size:1.05rem}
  .menu a:not(.btn)::after{display:none}
  .menu .btn{margin:.6rem 0 0}
}
@media (max-width:960px){
  .hero__in,.split,.mfg__in,.contact{grid-template-columns:1fr}
  .hero{clip-path:polygon(0 0,100% 0,100% 97%,0 100%)}
  .stage{max-width:480px}
  .grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}
  .phead__panes{display:none}
  .stats__in{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr);row-gap:2.4rem}.steps::before{display:none}
  .tile,.tile--1{grid-column:span 3}.tile--6{grid-column:span 6}
  .tile--1{display:flex}.tile--1 .tile__img{height:180px;min-height:0;order:0}
  .tile--6{display:flex;flex-direction:column}.tile--6 .tile__img{height:200px;min-height:0}
  .tile--1 .tile__ico,.tile--6 .tile__ico{position:absolute;right:1.3rem;top:-26px;margin:0}
  .svc{grid-template-columns:1fr}.svc__img{height:200px;min-height:0}
  .about__float{left:.5rem}
}
@media (max-width:760px){
  .acc{flex-direction:column;height:auto}
  .acc__item{flex:none;height:92px}
  .acc__item.is-open{height:320px}
  .acc__ico{width:44px;height:44px;left:1rem;top:1rem}
  .grid--2,.grid--3,.grid--4,.why,.foot__grid{grid-template-columns:1fr}
  .tile,.tile--1,.tile--6{grid-column:span 6}
  .sg__in{grid-template-columns:1fr}.sg__seal{width:130px;height:130px}
  .info{grid-template-columns:1fr;gap:.2rem}.info dd{margin-bottom:.8rem}
  .steps{grid-template-columns:1fr}
  .chip--2{left:0}.chip--1{right:0}
  .slide__in{padding:0 3.4rem 0 1.2rem}.slider__nav{width:38px;height:38px}
  .slider__prev{left:.4rem}.slider__next{right:.4rem}
  .stage{max-width:380px}
  .marquee{transform:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .js [data-reveal]{opacity:1;translate:none;scale:none}
  .js .split-words .w>span,.js .hero__copy>*,.js .stage,.js .phead__sub,.js .crumb{opacity:1;transform:none}
  .curtain{display:none}
}

/* Admin login button + staff edit bar */
.menu .menu__admin{margin-left:.5rem;padding:.45rem .95rem;border-radius:99px;font-size:.88rem;font-weight:600;color:var(--blue);box-shadow:inset 0 0 0 2px var(--blue);white-space:nowrap}
.menu .menu__admin::after{display:none}
.menu .menu__admin:hover{background:var(--blue);color:#fff}
.menu .menu__admin--on{background:var(--green);color:#fff;box-shadow:none}
.menu .menu__admin--on:hover{background:var(--slate)}
.foot__base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.foot__admin a{color:#9AA1C4;text-decoration:underline;text-underline-offset:3px}
.foot__admin a:hover{color:var(--accent-lt)}
.adminbar{position:fixed;left:50%;transform:translateX(-50%);bottom:14px;z-index:70;display:flex;align-items:center;gap:.3rem;padding:.4rem .5rem;border-radius:99px;background:rgba(30,41,59,.94);backdrop-filter:blur(8px);box-shadow:0 12px 30px -10px rgba(0,0,0,.55);max-width:94vw;flex-wrap:wrap;justify-content:center}
.adminbar a,.adminbar button{font:600 .85rem var(--f-body);color:#fff;text-decoration:none;padding:.45rem .8rem;border-radius:99px;border:0;background:transparent;cursor:pointer}
.adminbar a:hover,.adminbar button:hover{background:rgba(255,255,255,.15)}
.adminbar a:first-of-type{background:var(--accent);color:#fff}
.adminbar a:first-of-type:hover{background:var(--accent-2)}
.adminbar__tag{font:800 .72rem var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-lt);padding:0 .5rem}
.adminbar form{display:inline}
@media (max-width:1240px){.menu .menu__admin{margin:.4rem 0 0;display:inline-block;align-self:flex-start}}
@media (max-width:900px){.adminbar{bottom:70px}}

/* Keep the top menu on ONE line */
.menu a,.menu .btn{white-space:nowrap}
@media (min-width:1241px) and (max-width:1380px){
  .brand__txt small{display:none}
  .menu a:not(.btn){padding:.5rem .6rem;font-size:.92rem}
  .menu a:not(.btn)::after{left:.6rem;right:.6rem}
  .menu .btn{margin-left:.3rem}
  .menu .menu__admin{margin-left:.3rem}
}

/* ---- Stability: no layout shift while scrolling ---- */
html{overflow-anchor:none}
.brand{flex:none}
.brand__txt b,.brand__txt small{white-space:nowrap}
.nav__in{height:76px}
.map{position:relative}
.map iframe{pointer-events:none}            /* the map no longer steals the mouse wheel */
.map.is-live iframe{pointer-events:auto}
.map__hint{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:2;font:600 .8rem var(--f-body);color:#fff;background:rgba(30,41,59,.82);padding:.35rem .9rem;border-radius:99px;pointer-events:none;transition:opacity .2s}
.map.is-live .map__hint{opacity:0}


/* ---------- Photos shown in full (no cropping) with a soft blurred backdrop ---------- */
.tile__img,.svc__img,.prod__img,.shot{background:#E1E5F1}
.tile__img::before,.svc__img::before,.prod__img::before,.shot::before{content:"";position:absolute;inset:-24px;background:var(--bg) center/cover no-repeat;filter:blur(22px) saturate(1.15);opacity:.9;z-index:0}
.svc__img{position:relative}
.tile__img img,.svc__img img,.prod__img img,.shot img{position:relative;z-index:1;object-fit:contain}
.tile__img::after{z-index:2}
.prod__ico{z-index:3}
.shot figcaption{z-index:3}
.tile__img{height:250px}
.prod__img{height:250px}
.tile--1 .tile__img,.tile--6 .tile__img{height:100%}
.tile:hover .tile__img img,.svc:hover .svc__img img,.prod:hover .prod__img img{transform:scale(1.04)}
.shot:hover img{transform:scale(1.03)}

/* ---------- Product detail pages ---------- */
.prod__types{display:inline-block;margin-top:.7rem;padding:.2rem .75rem;border-radius:99px;background:rgba(224,45,51,.22);color:var(--blue);font:600 .82rem var(--f-body)}
.phead--product .phead__in{align-items:flex-end}
.phead--product .crumb a{color:var(--accent-lt);text-decoration:none}
.pd__cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}
.pd{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,4vw,3.6rem);align-items:start}
.pd__gal{position:sticky;top:96px}
.pd__main{position:relative;margin:0;border-radius:22px;overflow:hidden;background:#E1E5F1;aspect-ratio:4/3;box-shadow:var(--shadow),inset 0 0 0 1px var(--line)}
.pd__main::before,.pd__thumb::before,.ptype__media::before{content:"";position:absolute;inset:-24px;background:var(--bg) center/cover no-repeat;filter:blur(22px) saturate(1.15);opacity:.9}
.pd__main img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;transition:opacity .25s}
.pd__thumbs{display:flex;gap:.7rem;margin-top:.9rem;flex-wrap:wrap}
.pd__thumb{position:relative;width:84px;height:64px;border:0;border-radius:12px;overflow:hidden;cursor:pointer;background:#E1E5F1;padding:0;box-shadow:inset 0 0 0 1px var(--line);opacity:.75;transition:opacity .2s,box-shadow .2s}
.pd__thumb img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain}
.pd__thumb:hover,.pd__thumb.is-on{opacity:1}
.pd__thumb.is-on{box-shadow:0 0 0 3px var(--accent)}
.pd__info h2{font-size:clamp(1.7rem,3vw,2.3rem);margin-bottom:1rem}
.pd__info>p{color:#475467;margin-bottom:1rem}
.pd__facts{margin:1.6rem 0 0;border-radius:16px;background:#fff;box-shadow:var(--shadow),inset 0 0 0 1px var(--line);overflow:hidden}
.pd__facts div{display:grid;grid-template-columns:38% 1fr;gap:1rem;padding:.8rem 1.2rem;border-bottom:1px solid var(--line)}
.pd__facts div:last-child{border-bottom:0}
.pd__facts div:nth-child(odd){background:#f5f8fb}
.pd__facts dt{font-weight:600;color:var(--blue)}
.pd__facts dd{color:#475467}
.pd__cta--dark{margin-top:1.8rem}
.pd__two{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.pd__card{background:#fff;border-radius:20px;padding:2rem;box-shadow:var(--shadow),inset 0 0 0 1px var(--line);border-top:5px solid var(--accent)}
.pd__card h3{font-size:1.5rem;margin-bottom:1.1rem}
.ticks{list-style:none;display:grid;gap:.75rem}
.ticks li{display:flex;gap:.7rem;align-items:flex-start;color:#344054}
.ticks .ico{flex:none;margin-top:.15rem;color:var(--green)}
.pd__uses{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem}
.pd__uses li{padding:.45rem 1rem;border-radius:99px;background:#EFF1F9;color:var(--blue);font-weight:500;box-shadow:inset 0 0 0 1px var(--line)}
.ptype{display:grid;grid-template-columns:38% 1fr;background:#fff;border-radius:20px;overflow:hidden;box-shadow:var(--shadow),inset 0 0 0 1px var(--line)}
.ptype__media{position:relative;min-height:220px;overflow:hidden;background:linear-gradient(150deg,var(--blue),#1B1C58);display:grid;place-items:center}
.ptype__media[style]{background:#E1E5F1}
.ptype__media img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain}
.ptype__ico{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;background:rgba(248,250,252,.12);color:var(--accent-lt);box-shadow:inset 0 0 0 1px rgba(248,250,252,.3)}
.ptype__num{position:absolute;left:1rem;top:.8rem;z-index:2;font:800 1.1rem var(--f-head);color:rgba(255,255,255,.85)}
.ptype__media[style] .ptype__num{color:var(--blue)}
.ptype__body{padding:1.5rem 1.6rem 1.4rem}
.ptype__body h3{font-size:1.25rem;margin-bottom:.45rem}
.ptype__body p{color:#475467;font-size:.98rem}
.ptype__facts{list-style:none;margin-top:.9rem;display:grid;gap:.25rem;font-size:.92rem;color:#475467}
.ptype__facts b{color:var(--blue);font-weight:600}
@media (max-width:960px){
  .pd,.pd__two{grid-template-columns:1fr}
  .pd__gal{position:static}
  .phead--product .phead__in{align-items:flex-start}
}
@media (max-width:760px){
  .ptype{grid-template-columns:1fr}.ptype__media{min-height:180px}
  .pd__facts div{grid-template-columns:1fr;gap:.1rem}
}

/* Built-in illustrations fill the whole card (photos keep showing in full) */
.tile__img img[src$=".svg"],.svc__img img[src$=".svg"],.prod__img img[src$=".svg"],.shot img[src$=".svg"],.pd__main img[src$=".svg"],.pd__thumb img[src$=".svg"]{object-fit:cover}
/* keep the yellow icon badge above the picture */
.tile__img,.prod__img,.svc__img{isolation:isolate}
.tile__ico{z-index:3}

/* ---------- Footer logo card ---------- */
.foot__logo{display:inline-block;background:#fff;border-radius:18px;padding:.9rem 1.3rem;margin-bottom:1.2rem;box-shadow:0 18px 36px -20px rgba(0,0,0,.6)}
.foot__logo img{height:118px;width:auto}

.cta__btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.photo img{object-position:center 22%}

.foot__row{display:flex;align-items:flex-start;gap:.6rem;margin:.5rem 0}
.foot__row .ico{flex:none;margin-top:.2rem;color:var(--accent-lt)}

.award__in{display:grid;grid-template-columns:auto 1fr;gap:2.5rem;align-items:center;max-width:820px;margin:0 auto}
.award__in img{width:min(255px,100%);height:auto;border-radius:18px;box-shadow:0 18px 40px -22px rgba(23,24,74,.45)}
.award__in .sec__h{margin-bottom:.8rem}
@media (max-width:700px){.award__in{grid-template-columns:1fr;text-align:center;justify-items:center}}


/* Saint-Gobain logo and ISI mark (home page) */
.sg__logo,.sg__isi{background:#fff;border-radius:16px;box-shadow:0 18px 40px -26px rgba(23,24,74,.45);border:1px solid var(--line)}
.sg__logo{width:min(300px,100%);padding:1.1rem 1.3rem}
.sg__logo img{width:100%;height:auto}
.sg__cert{margin-top:2.4rem}
.sg__isi{width:min(300px,100%);padding:.9rem 1.1rem}
.sg__isi img{width:100%;height:auto}
.sg__cert h2{font-size:clamp(1.4rem,2.4vw,1.9rem)}
@media (max-width:960px){.sg__logo,.sg__isi{width:min(260px,100%)}}


/* Owner profile card (About page) */
.owner{position:relative;margin:0;border-radius:24px;background:#fff;padding:.6rem;box-shadow:var(--shadow),0 0 0 1px var(--line)}
.owner::before{content:"";position:absolute;left:1.6rem;right:1.6rem;top:-5px;height:5px;border-radius:99px;background:linear-gradient(90deg,var(--blue),var(--cyan),var(--accent))}
.owner__frame{position:relative;overflow:hidden;border-radius:18px;background:var(--blue)}
.owner__frame img{width:100%;aspect-ratio:6/5;object-fit:cover;object-position:center 12%;transition:transform 1.2s var(--ease)}
.owner:hover .owner__frame img{transform:scale(1.03)}
.owner__frame::after{content:"";position:absolute;inset:auto 0 0 0;height:46%;background:linear-gradient(180deg,rgba(23,24,74,0),rgba(23,24,74,.78));pointer-events:none}
.owner__plate{position:absolute;z-index:1;left:1rem;right:1rem;bottom:1rem;display:grid;gap:.15rem;padding:.8rem 1.1rem;border-radius:14px;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-left:4px solid var(--accent)}
.owner__role{font:600 .78rem var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:#ffd9db}
.owner__name{font:700 1.3rem/1.2 var(--f-head)}
.owner__intro{font-size:.92rem;line-height:1.45;color:rgba(255,255,255,.9)}
@media (max-width:700px){.owner__plate{left:.6rem;right:.6rem;bottom:.6rem;padding:.6rem .8rem}.owner__name{font-size:1.1rem}}


/* Fix: logo rows with a fixed first column (the logo no longer stretches the column) */
.sg__row{display:grid;grid-template-columns:300px minmax(0,1fr);gap:3rem;align-items:center}
.sg__row .sg__logo,.sg__row .sg__isi{width:100%}
.sg__row p{max-width:62ch}
@media (max-width:760px){.sg__row{grid-template-columns:1fr;gap:1.4rem}.sg__row .sg__logo,.sg__row .sg__isi{max-width:280px}}

/* Fix: owner card is not covered by the factory picture any more (the picture sits below it) */
.about__media{padding-bottom:0}
.about__float{position:static;width:100%;margin:1.4rem 0 0;animation:none;box-shadow:var(--shadow),0 0 0 6px #fff}
.about__float img{aspect-ratio:16/8}
@media (max-width:960px){.about__float{left:auto}}


/* Owner portrait (tall studio photo): head to hips, centred on the face */
.owner__frame img{aspect-ratio:4/5;object-position:center 8%}
.owner__frame{background:#E9ECF4}
.owner__frame::after{height:24%;background:linear-gradient(180deg,rgba(23,24,74,0),rgba(23,24,74,.28))}
.owner__plate{background:rgba(23,24,74,.86);border-color:rgba(255,255,255,.25)}


/* About page layout: text starts at the top, owner card is a sensible size, factory picture is a wide strip below */
.split--top{align-items:start;grid-template-columns:1.15fr .85fr}
.split--top .about__media{width:100%;max-width:440px;justify-self:center}
.about__float--wide{position:static;width:100%;margin:3.2rem 0 0;box-shadow:var(--shadow);border-radius:22px;overflow:hidden;animation:none}
.about__float--wide img{display:block;width:100%;aspect-ratio:21/6;object-fit:cover}
@media (max-width:960px){.split--top{grid-template-columns:1fr}.split--top .about__media{max-width:420px}.about__float--wide img{aspect-ratio:16/8}}
