
:root{--grey:#6d6e70;--grey-2:#9a9b9e;--ice:#7cc4e8;--sky:#4ba3d8;--blue:#2d7fc1;--navy:#15568f;
--ink:#1c2733;--ink-2:#51606f;--ink-3:#8c99a7;--bg-1:#d4e7f5;--bg-2:#eaf3fa;--bg-3:#f7fbfe;
--line:rgba(28,39,51,.1);--r-lg:24px;--r-md:16px;--r-pill:999px;--ease:cubic-bezier(.22,.9,.3,1);
--shadow-soft:0 20px 50px rgba(21,86,143,.10);--shadow-card:0 10px 34px rgba(21,86,143,.08)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Prompt',sans-serif;color:var(--ink);overflow-x:hidden;
background:radial-gradient(1200px 600px at 80% -10%,rgba(255,255,255,.92),transparent 60%),
linear-gradient(175deg,var(--bg-1) 0%,var(--bg-2) 46%,var(--bg-3) 100%);background-attachment:fixed}
::selection{background:var(--navy);color:#fff}
.micro{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--ink-3)}
.num-tag{font-size:.68rem;letter-spacing:.12em;color:var(--ink-3);font-weight:500}
.sq4{display:inline-flex;gap:3px;vertical-align:middle}
.sq4 i{width:7px;height:7px;border-radius:1.5px}
.sq4 i:nth-child(1){background:var(--ice)}.sq4 i:nth-child(2){background:var(--sky)}
.sq4 i:nth-child(3){background:var(--blue)}.sq4 i:nth-child(4){background:var(--navy)}
#cur,#curDot{position:fixed;pointer-events:none;z-index:9999;border-radius:50%;transform:translate(-50%,-50%)}
#curDot{width:5px;height:5px;background:var(--navy)}
#cur{width:34px;height:34px;border:1px solid rgba(21,86,143,.35);transition:width .3s var(--ease),height .3s var(--ease),border-color .3s,background .3s}
#cur.hov{width:64px;height:64px;border-color:rgba(45,127,193,.55);background:rgba(75,163,216,.06)}
@media(hover:none){#cur,#curDot{display:none}}
nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:100;width:min(1280px,94vw);
display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.78);
backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.85);
border-radius:var(--r-pill);padding:10px 10px 10px 22px;box-shadow:var(--shadow-card)}
.bw-logo{display:inline-flex;align-items:center;text-decoration:none}
.bw-logo img{height:44px;width:auto;display:block}
nav .links{display:flex;gap:2px;align-items:center}
nav .links a{color:var(--ink-2);text-decoration:none;font-size:.82rem;font-weight:400;padding:9px 14px;border-radius:var(--r-pill);transition:all .3s var(--ease)}
nav .links a:hover{background:rgba(28,39,51,.06);color:var(--ink)}
nav .links a.active{background:rgba(28,39,51,.08);color:var(--ink);font-weight:500}
nav .cta{background:var(--navy);color:#fff!important;font-weight:500!important;padding:11px 22px!important}
nav .cta:hover{background:#0f4472!important}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:10px 12px}
.burger i{width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s var(--ease),opacity .3s}
.burger.open i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open i:nth-child(2){opacity:0}
.burger.open i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mnav{position:fixed;top:86px;left:50%;transform:translateX(-50%) translateY(-12px);z-index:99;width:min(1280px,94vw);
background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.9);border-radius:20px;
box-shadow:var(--shadow-soft);padding:14px;display:flex;flex-direction:column;gap:2px;opacity:0;pointer-events:none;transition:all .35s var(--ease)}
.mnav.open{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.mnav a{color:var(--ink);text-decoration:none;font-size:.95rem;padding:13px 16px;border-radius:12px}
.mnav a:hover{background:rgba(75,163,216,.08)}
.mnav .cta2{background:var(--navy);color:#fff;text-align:center;font-weight:500;margin-top:8px}
@media(max-width:920px){nav .links a:not(.cta){display:none}.burger{display:flex}}
@media(min-width:921px){.mnav{display:none}}
.btn{display:inline-flex;align-items:center;gap:9px;text-decoration:none;cursor:pointer;font-family:'Prompt';
font-size:.88rem;font-weight:500;border:none;padding:15px 30px;border-radius:var(--r-pill);transition:all .35s var(--ease);will-change:transform}
.btn-dark{background:var(--navy);color:#fff;box-shadow:0 14px 30px rgba(21,86,143,.28)}
.btn-dark:hover{box-shadow:0 22px 44px rgba(21,86,143,.36)}
.btn-glass{background:rgba(255,255,255,.78);color:var(--ink);border:1px solid rgba(255,255,255,.9);backdrop-filter:blur(10px)}
.btn-glass:hover{background:#fff}
.btn .arr{transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
section{width:min(1280px,94vw);margin:0 auto;padding:90px 0 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:44px;flex-wrap:wrap}
.sec-head h2{font-size:clamp(1.6rem,3vw,2.3rem);font-weight:600;letter-spacing:-.01em;line-height:1.25}
.sec-head h2 em{font-style:normal;color:var(--blue)}
.sec-head .micro{margin-bottom:14px;display:inline-flex;align-items:center;gap:8px}
.sec-head p{color:var(--ink-2);font-weight:300;font-size:.92rem;max-width:400px;line-height:1.8}
[data-reveal]{opacity:0;transform:translateY(36px)}
[data-reveal].shown{opacity:1;transform:none;transition:all .9s var(--ease)}
.page-head{width:min(1280px,94vw);margin:0 auto;padding:150px 0 0}
.crumb{font-size:.72rem;color:var(--ink-3);font-weight:300;letter-spacing:.06em}
.crumb a{color:var(--ink-3);text-decoration:none}
.crumb a:hover{color:var(--ink)}
.page-head h1{font-size:clamp(1.9rem,4vw,3rem);font-weight:600;line-height:1.2;letter-spacing:-.01em;margin-top:14px}
.page-head h1 em{font-style:normal;color:var(--blue)}
.page-head .lead{margin-top:16px;max-width:600px;color:var(--ink-2);font-weight:300;font-size:.95rem;line-height:1.85}
.aeo{margin-top:28px;max-width:780px;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);
border:1px solid rgba(255,255,255,.95);border-left:3px solid var(--blue);border-radius:var(--r-md);
padding:20px 24px;box-shadow:var(--shadow-card)}
.aeo .q{font-weight:600;font-size:.92rem;margin-bottom:6px}
.aeo .a{font-size:.88rem;color:var(--ink-2);font-weight:300;line-height:1.75}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2px}
.gal figure{position:relative;overflow:hidden;cursor:zoom-in;background:#fff;margin:0}
.gal .ph{overflow:hidden;display:block}
.gal img{width:100%;height:400px;object-fit:cover;display:block;transition:transform .9s var(--ease)}
.gal figure:hover img{transform:scale(1.045)}
.gal figcaption{padding:14px 8px 26px;text-align:center;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--ink);background:rgba(255,255,255,.6)}
.gal figcaption span{display:block;margin-top:4px;color:var(--ink-3);letter-spacing:.12em;font-weight:400}
.gal-wide{width:min(1620px,96vw);margin:0 auto}
#lightbox{position:fixed;inset:0;background:rgba(12,26,42,.88);backdrop-filter:blur(8px);z-index:300;
display:none;align-items:center;justify-content:center;padding:4vh 4vw;cursor:zoom-out}
#lightbox.open{display:flex}
#lightbox img{max-width:100%;max-height:100%;border-radius:14px;box-shadow:0 30px 90px rgba(0,0,0,.5)}
.feat{background:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.92);border-radius:var(--r-lg);
box-shadow:var(--shadow-card);overflow:hidden;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.feat .f{padding:34px 30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .3s}
.feat .f:hover{background:rgba(75,163,216,.05)}
.feat .num-tag{display:block;margin-bottom:14px}
.feat h3{font-size:.98rem;font-weight:600;margin-bottom:8px;line-height:1.4}
.feat p{font-size:.8rem;color:var(--ink-2);font-weight:300;line-height:1.7}
a.f{display:block;color:inherit;text-decoration:none}
.feat .go2{margin-top:12px;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);font-weight:500;opacity:.85}
.feat a.f.active{background:rgba(75,163,216,.1);box-shadow:inset 3px 0 0 var(--blue);pointer-events:none}
.feat a.f.active .go2{color:var(--ink-3)}
.faq{max-width:780px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;padding:20px 4px;font-weight:500;font-size:.95rem;list-style:none;
display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:300;font-size:1.3rem;color:var(--ink-3);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{padding:0 4px 22px;color:var(--ink-2);font-size:.85rem;font-weight:300;line-height:1.8;max-width:640px}
.cta-panel{background:linear-gradient(120deg,var(--navy),#0d3a63);color:#fff;border-radius:28px;
padding:50px;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;
box-shadow:var(--shadow-soft);position:relative;overflow:hidden}
.cta-panel::before{content:"";position:absolute;right:-120px;top:-120px;width:340px;height:340px;border-radius:50%;
background:radial-gradient(circle at 35% 30%,rgba(124,196,232,.4),rgba(45,127,193,.1) 60%,transparent 75%)}
.cta-panel h2{font-size:clamp(1.4rem,2.5vw,2rem);font-weight:600;line-height:1.35;position:relative}
.cta-panel p{color:#bcd4e8;font-weight:300;font-size:.9rem;margin-top:10px;max-width:480px;position:relative}
.cta-panel .btn-glass{background:#fff;border:none;position:relative;color:var(--navy)}
footer{margin-top:110px;background:var(--ink);color:#b3c1cf;border-radius:34px 34px 0 0;position:relative;overflow:hidden}
.foot{width:min(1280px,94vw);margin:0 auto;padding:70px 0 30px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;position:relative;z-index:2}
footer h4{color:#fff;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;margin-bottom:18px}
footer p{font-size:.82rem;font-weight:300;line-height:1.85;max-width:300px}
footer a{color:#b3c1cf;text-decoration:none;display:block;font-size:.85rem;margin-bottom:10px;font-weight:300;transition:color .25s}
footer a:hover{color:#fff}
.copy{width:min(1280px,94vw);margin:0 auto;padding:22px 0 30px;border-top:1px solid rgba(255,255,255,.1);
font-size:.72rem;font-weight:300;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;position:relative;z-index:2}
.foot-ghost{position:absolute;left:50%;bottom:-1.4vw;transform:translateX(-50%);z-index:0;
font-size:clamp(3.4rem,11vw,11rem);font-weight:700;letter-spacing:.04em;white-space:nowrap;
color:rgba(255,255,255,.045);pointer-events:none;user-select:none;line-height:1}
.f-logocard{display:inline-block;background:#fff;border-radius:12px;padding:12px 16px;box-shadow:0 10px 26px rgba(0,0,0,.25)}
.f-logocard img{height:52px;width:auto;display:block}
@media(max-width:920px){.foot{grid-template-columns:1fr 1fr}}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.ccard{background:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.92);border-radius:var(--r-lg);
padding:34px 30px;box-shadow:var(--shadow-card)}
.ccard h3{font-size:1rem;font-weight:600;margin-bottom:10px}
.ccard p,.ccard a{font-size:.88rem;color:var(--ink-2);font-weight:300;line-height:1.9;text-decoration:none;display:block}
.ccard a:hover{color:var(--blue)}
.about-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:stretch}
.about-hero .txt{background:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.92);border-radius:var(--r-lg);padding:44px 40px;box-shadow:var(--shadow-card)}
.about-hero .txt p{color:var(--ink-2);font-weight:300;font-size:.92rem;line-height:1.9;margin-top:14px}
.about-hero .pic{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-card);min-height:320px}
.about-hero .pic img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:920px){.about-hero{grid-template-columns:1fr}}
/* ---------- 3D glyphs on subpages ---------- */
.ph-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:34px;align-items:center}
@media(max-width:920px){.ph-grid{grid-template-columns:1fr}.page-glyph{display:none}}
.page-glyph{display:flex;justify-content:center;perspective:1000px}
.page-glyph svg{width:min(320px,30vw);height:auto;overflow:visible;will-change:transform}
.orn{position:absolute;right:2vw;top:120px;perspective:800px;pointer-events:none}
.orn svg{will-change:transform}
@media(max-width:920px){.orn{display:none}}
.page-head{position:relative}
.m-float{animation:mfloat 5.5s ease-in-out infinite}
@keyframes mfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.m-sway{transform-origin:50% 100%;animation:msway 4.6s ease-in-out infinite}
@keyframes msway{0%,100%{transform:skewX(2deg)}50%{transform:skewX(-2.4deg)}}
.m-dance{transform-origin:50% 100%;animation:mdance 3.8s ease-in-out infinite}
@keyframes mdance{0%,100%{transform:skewX(3.5deg) rotate(.6deg)}50%{transform:skewX(-4deg) rotate(-.8deg)}}
.m-breathe{transform-origin:50% 100%;animation:mbre 4.8s ease-in-out infinite}
@keyframes mbre{0%,100%{transform:scale(1)}50%{transform:scale(1.028,1.045)}}
.m-bounce{transform-origin:50% 100%;animation:mbounce 3.8s ease-in-out infinite}
@keyframes mbounce{0%,100%{transform:scale(1,1)}35%{transform:scale(1.025,.97)}55%{transform:scale(.985,1.03) translateY(-5px)}75%{transform:scale(1.01,.99)}}
.armL,.armR{transform-box:fill-box}
.armL{transform-origin:95% 90%;animation:aL 3.8s ease-in-out infinite}
.armR{transform-origin:5% 90%;animation:aR 3.8s ease-in-out infinite}
@keyframes aL{0%,100%{transform:rotate(6deg)}50%{transform:rotate(-14deg)}}
@keyframes aR{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(14deg)}}
.wavearm{transform-box:fill-box;transform-origin:95% 95%;animation:wv 3s ease-in-out infinite}
@keyframes wv{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(16deg)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* --- internal linking additions --- */
.f-cols{display:grid;grid-template-columns:1fr 1fr;column-gap:22px}
.all-products{margin-top:38px;display:flex;flex-wrap:wrap;gap:10px}
.all-products a{font-size:.78rem;font-weight:400;padding:9px 18px;border-radius:999px;background:rgba(255,255,255,.8);border:1px solid var(--line);color:var(--ink-2);text-decoration:none;transition:all .3s var(--ease)}
.all-products a:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
