:root{--navy:#2B2D33;--navy2:#3C3F47;--deep:#16171B;--gold:#D9A441;--gold2:#EBCB85;--cream:#FBF8F0;--mist:#F3F1EC;--ink:#1D1E20;--w:#fff;--r:18px;--sh:0 18px 50px -24px rgba(22,23,27,.45);--hf:'Reem Kufi','Cairo',sans-serif;--bf:'IBM Plex Sans Arabic','Tajawal',system-ui,-apple-system,'Segoe UI',Tahoma,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--bf);color:var(--ink);background:var(--w);line-height:1.85;font-size:17px;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--hf);line-height:1.35;color:var(--navy);font-weight:700}
.wrap{width:min(1180px,100% - 40px);margin-inline:auto}
.sec{padding:clamp(64px,9vw,112px) 0}
.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--gold);font-weight:600;font-size:.95rem;letter-spacing:.02em;margin-bottom:14px}
.eyebrow:before{content:"";width:34px;height:2px;background:var(--gold)}
h2.t{font-size:clamp(1.7rem,3.6vw,2.6rem);margin-bottom:14px}
p.lead{font-size:1.12rem;color:#3b3a36;max-width:680px}
.dark{background:var(--deep);color:#ecebe6}.dark h2,.dark h3{color:#fff}.dark p.lead{color:#cfcdc6}
.cream{background:var(--cream)}.mist{background:var(--mist)}
/* mashrabiya pattern */
.pat{position:relative;isolation:isolate;overflow:hidden}
.pat:before{content:"";position:absolute;inset:-88px;z-index:-1;pointer-events:none;opacity:.55;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='88' viewBox='0 0 88 88'%3E%3Cg fill='none' stroke='%23D9A441' stroke-opacity='.28' stroke-width='1.1'%3E%3Cpolygon points='14,14 74,14 74,74 14,74'/%3E%3Cpolygon points='44,0 88,44 44,88 0,44'/%3E%3Ccircle cx='44' cy='44' r='9'/%3E%3C/g%3E%3C/svg%3E");animation:drift 60s linear infinite}
.pat.light:before{opacity:.35}
@keyframes drift{to{transform:translate(88px,88px)}}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--bf);font-weight:600;font-size:1rem;padding:13px 26px;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s,color .25s}
.btn:hover{transform:translateY(-3px)}
.btn.gold{background:var(--gold);color:var(--deep);box-shadow:0 10px 24px -10px rgba(217,164,65,.9)}
.btn.gold:hover{background:var(--gold2)}
.btn.line{border-color:rgba(255,255,255,.55);color:#fff}.btn.line:hover{background:#fff;color:var(--deep)}
.btn.navy{background:var(--navy);color:#fff}.btn.navy:hover{background:var(--deep)}
.btn.outline{border-color:var(--navy);color:var(--navy)}.btn.outline:hover{background:var(--navy);color:#fff}
.btn svg{width:20px;height:20px;flex:none}
/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(251,248,240,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(43,45,51,.1);transition:box-shadow .3s}
.hdr.sc{box-shadow:0 8px 30px -18px rgba(22,23,27,.5)}
.hdr .in{display:flex;align-items:center;justify-content:space-between;height:78px;gap:18px;transition:height .3s}
.hdr.sc .in{height:64px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:56px;width:auto;transition:height .3s}.hdr.sc .brand img{height:46px}
.brand b{font-family:var(--hf);font-size:1.3rem;color:var(--navy);display:block;line-height:1.1}
.brand small{font-size:.78rem;color:#76736b;display:block;line-height:1.2}
.nav{display:flex;gap:4px;align-items:center}
.nav a{padding:8px 13px;border-radius:999px;font-weight:500;font-size:.98rem;color:var(--navy);transition:background .2s,color .2s;position:relative}
.nav a:hover{background:rgba(43,45,51,.08)}
.nav a.on{background:var(--navy);color:#fff}
.hdr .btn{padding:10px 20px;font-size:.95rem}
.burger{display:none;width:46px;height:46px;border-radius:12px;border:0;background:var(--navy);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.burger i{display:block;width:22px;height:2px;background:#fff;transition:.3s}
.burger.o i:nth-child(1){transform:translateY(7px) rotate(45deg)}.burger.o i:nth-child(2){opacity:0}.burger.o i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:1020px){
 .burger{display:flex}.hdr .btn.cta{display:none}
 .nav{position:fixed;inset:78px 0 auto 0;background:var(--cream);flex-direction:column;align-items:stretch;padding:14px 20px 24px;gap:2px;border-bottom:1px solid rgba(43,45,51,.15);transform:translateY(-130%);transition:transform .35s;max-height:calc(100vh - 78px);overflow:auto;box-shadow:0 30px 40px -30px rgba(22,23,27,.5)}
 .nav.o{transform:none}.nav a{padding:13px 16px;font-size:1.05rem;border-radius:12px}
 .nav .mcta{display:inline-flex;margin-top:10px;justify-content:center}
}
.nav .mcta{display:none}@media(max-width:1020px){.nav .mcta{display:inline-flex}}
/* hero */
.hero{background:linear-gradient(135deg,var(--deep) 0%,var(--navy) 100%);color:#fff;overflow:hidden;position:relative}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding:clamp(48px,7vw,92px) 0 clamp(60px,8vw,110px)}
.hero h1{color:#fff;font-size:clamp(2.1rem,5vw,3.7rem);margin:6px 0 18px}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero p{color:#dcd9d0;font-size:1.15rem;max-width:560px;margin-bottom:30px}
.hero .acts{display:flex;gap:14px;flex-wrap:wrap}
.hero .pill{display:inline-block;border:1px solid rgba(235,203,133,.5);color:var(--gold2);border-radius:999px;padding:5px 16px;font-size:.9rem}
.hshow{position:relative;height:min(560px,70vw)}
.hshow .p{position:absolute;border-radius:22px;overflow:hidden;box-shadow:0 30px 60px -25px rgba(0,0,0,.7);border:4px solid rgba(255,255,255,.95)}
.hshow .p img{width:100%;height:100%;object-fit:cover}
.hshow .p1{width:62%;height:78%;inset-inline-start:0;top:0;animation:fl 9s ease-in-out infinite}
.hshow .p2{width:50%;height:46%;inset-inline-end:0;top:8%;animation:fl 11s ease-in-out -3s infinite}
.hshow .p3{width:50%;height:44%;inset-inline-end:6%;bottom:0;animation:fl 10s ease-in-out -6s infinite}
.hshow .ring{position:absolute;width:190px;height:190px;border:2px dashed var(--gold);border-radius:50%;inset-inline-start:-40px;bottom:-30px;opacity:.7;animation:spin 40s linear infinite}
@keyframes fl{50%{transform:translateY(-14px)}}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:900px){.hero .wrap{grid-template-columns:1fr}.hshow{height:420px;order:-1}}
/* facts */
.facts{margin-top:-52px;position:relative;z-index:5}
.facts .g{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.fact{padding:28px 20px;text-align:center;border-inline-end:1px solid var(--mist)}
.fact:last-child{border:0}
.fact b{display:block;font-family:var(--hf);font-size:clamp(1.9rem,4vw,2.8rem);color:var(--navy);line-height:1.2}
.fact b span{color:var(--gold)}
.fact small{color:#5f5c54;font-size:.95rem}
@media(max-width:760px){.facts .g{grid-template-columns:1fr 1fr}.fact{border-bottom:1px solid var(--mist)}.fact:nth-child(2n){border-inline-end:0}}
/* cards */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:40px}
@media(max-width:900px){.grid3{grid-template-columns:1fr 1fr}}@media(max-width:620px){.grid3,.grid2{grid-template-columns:1fr}}
.card.ph0{}.card{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:0 10px 34px -22px rgba(22,23,27,.5);transition:transform .35s,box-shadow .35s;border:1px solid rgba(43,45,51,.08)}
.card:hover{transform:translateY(-8px);box-shadow:var(--sh)}
.card .ph{aspect-ratio:4/3;overflow:hidden;background:var(--mist)}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.card:hover .ph img{transform:scale(1.08)}
.card .bd{padding:22px 24px 26px}
.card h3{font-size:1.3rem;margin-bottom:6px}
.card p{color:#524f48;font-size:.98rem}
.num{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--gold);color:var(--deep);font-family:var(--hf);font-weight:700;margin-bottom:12px}
.ic{width:52px;height:52px;border-radius:14px;background:rgba(217,164,65,.15);color:var(--gold);display:grid;place-items:center;margin-bottom:14px}
.ic svg{width:28px;height:28px}
/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split.rev>:first-child{order:2}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:32px}.split.rev>:first-child{order:0}}
.imgframe{position:relative}
.imgframe img{border-radius:var(--r);width:100%;aspect-ratio:4/5;object-fit:cover;box-shadow:var(--sh)}
.imgframe:after{content:"";position:absolute;inset:18px -18px -18px 18px;border:2px solid var(--gold);border-radius:var(--r);z-index:-1}
[dir=rtl] .imgframe:after{inset:18px 18px -18px -18px}
.checks{list-style:none;margin-top:20px;display:grid;gap:10px}
.checks li{display:flex;gap:12px;align-items:flex-start}
.checks li:before{content:"";flex:none;width:22px;height:22px;margin-top:5px;border-radius:50%;background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316171B' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/14px no-repeat}
/* marquee */
.mq{overflow:hidden;direction:ltr;padding:6px 0}
.mq .tr{display:flex;gap:16px;width:max-content;animation:mq 70s linear infinite}
.mq:hover .tr{animation-play-state:paused}
.mq img{height:220px;width:auto;border-radius:14px;flex:none}
@keyframes mq{to{transform:translateX(-50%)}}
/* timeline */
.tl{position:relative;margin-top:44px;display:grid;gap:26px}
.tl:before{content:"";position:absolute;inset-block:8px;inset-inline-start:21px;width:2px;background:linear-gradient(var(--gold),rgba(217,164,65,.15))}
.tl .it{position:relative;padding-inline-start:64px}
.tl .it:before{content:"";position:absolute;inset-inline-start:11px;top:8px;width:22px;height:22px;border-radius:50%;background:var(--cream);border:4px solid var(--gold)}
.tl h3{font-size:1.25rem}.tl .y{font-family:var(--hf);color:var(--gold);font-size:1.05rem}
/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px;counter-reset:s}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}}@media(max-width:620px){.steps{grid-template-columns:1fr}}
.step{background:#fff;border-radius:var(--r);padding:26px;border:1px solid rgba(43,45,51,.1);position:relative;overflow:hidden}
.step:after{content:"";position:absolute;inset-inline:0;bottom:0;height:4px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform 1s .3s}
.step.in:after{transform:scaleX(1)}
.step h3{font-size:1.15rem;margin-bottom:6px}.step p{font-size:.97rem;color:#524f48}
/* spec table */
.spec{margin-top:36px;border-radius:var(--r);overflow:hidden;border:1px solid rgba(255,255,255,.14)}
.spec div{display:grid;grid-template-columns:200px 1fr;gap:20px;padding:16px 24px;border-bottom:1px solid rgba(255,255,255,.1)}
.spec div:last-child{border:0}.spec b{color:var(--gold2);font-weight:600}
@media(max-width:620px){.spec div{grid-template-columns:1fr;gap:2px}}
/* faq */
.faq{max-width:860px;margin:40px auto 0;display:grid;gap:14px}
.faq details{background:#fff;border:1px solid rgba(43,45,51,.14);border-radius:14px;overflow:hidden;transition:box-shadow .3s}
.faq details[open]{box-shadow:var(--sh);border-color:var(--gold)}
.faq summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:600;color:var(--navy);display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:1.05rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-size:1.7rem;color:var(--gold);line-height:1;transition:transform .3s;flex:none}
.faq details[open] summary:after{transform:rotate(45deg)}
.faq .a{padding:0 22px 20px;color:#3b3a36}
/* projects list */
.pl{display:grid;gap:14px;margin-top:36px}
.pl .row{display:flex;align-items:center;gap:20px;background:#fff;border-radius:16px;padding:22px 26px;border:1px solid rgba(43,45,51,.1);transition:transform .3s,box-shadow .3s}
.pl .row:hover{transform:translateX(-6px);box-shadow:var(--sh)}
.pl .n{flex:none;width:54px;height:54px;border-radius:14px;background:var(--navy);color:var(--gold);display:grid;place-items:center;font-family:var(--hf);font-size:1.3rem}
.pl h3{font-size:1.2rem}.pl p{color:#5f5c54;font-size:.96rem}
/* page hero */
.ph-hero{background:linear-gradient(135deg,var(--deep),var(--navy));color:#fff;padding:clamp(54px,8vw,96px) 0;overflow:hidden}
.ph-hero h1{color:#fff;font-size:clamp(2rem,5vw,3.2rem)}
.ph-hero p{color:#d6d3ca;max-width:640px;margin-top:10px;font-size:1.1rem}
/* gallery */
.gal{column-count:4;column-gap:14px;margin-top:34px}
@media(max-width:1000px){.gal{column-count:3}}@media(max-width:700px){.gal{column-count:2;column-gap:10px}}
.gal button{display:block;width:100%;margin:0 0 14px;padding:0;border:0;background:var(--mist);border-radius:14px;overflow:hidden;cursor:zoom-in;break-inside:avoid;position:relative}
@media(max-width:700px){.gal button{margin-bottom:10px}}
.gal img{width:100%;height:auto;transition:transform .6s,opacity .6s;opacity:0}
.gal img.ld{opacity:1}
.gal button:hover img{transform:scale(1.07)}
.gal button:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 60%,rgba(22,23,27,.55));opacity:0;transition:opacity .3s}
.gal button:hover:after{opacity:1}
.gal button.rv{opacity:0;transform:translateY(20px)}.gal button.rv.in{opacity:1;transform:none;transition:opacity .6s,transform .6s}
.more{text-align:center;margin-top:30px}
/* lightbox */
.lb{position:fixed;inset:0;z-index:100;background:rgba(6,7,36,.96);display:none;align-items:center;justify-content:center;touch-action:pan-y}
.lb.o{display:flex;animation:fi .3s}
@keyframes fi{from{opacity:0}}
.lb .stage{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:64px 70px}
.lb img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;transition:opacity .25s,transform .25s}
.lb img.sw{opacity:0;transform:scale(.97)}
.lb .b{direction:ltr;z-index:3;position:absolute;width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:1.6rem;cursor:pointer;display:grid;place-items:center;transition:background .2s;line-height:1}
.lb .b:hover{background:var(--gold);color:var(--deep)}
.lb .x{top:14px;inset-inline-end:14px}
.lb .pv{top:50%;margin-top:-26px;inset-inline-start:12px}
.lb .nx{top:50%;margin-top:-26px;inset-inline-end:12px}
.lb .ct{z-index:3;position:absolute;top:22px;inset-inline-start:22px;color:#dcd9d0;font-size:.95rem;direction:ltr}
@media(max-width:700px){.lb .stage{padding:64px 8px}.lb .pv,.lb .nx{top:auto;bottom:14px;margin:0}.lb .pv{inset-inline-start:24px}.lb .nx{inset-inline-end:24px}}
/* contact */
.cgrid{display:grid;grid-template-columns:1fr 1.1fr;gap:34px;margin-top:36px;align-items:start}
@media(max-width:900px){.cgrid{grid-template-columns:1fr}}
.cinfo{display:grid;gap:14px}
.ci{display:flex;gap:16px;background:#fff;border-radius:16px;padding:20px 22px;border:1px solid rgba(43,45,51,.1);align-items:flex-start}
.ci .ic{margin:0;flex:none;width:48px;height:48px}.ci h3{font-size:1.05rem;margin-bottom:2px}
.ci p,.ci a{color:#3b3a36;font-size:1rem;word-break:break-word}.ci a:hover{color:var(--navy);text-decoration:underline}
.ltr{direction:ltr;unicode-bidi:embed;display:inline-block;user-select:all}
form.q{background:#fff;border-radius:var(--r);padding:30px;box-shadow:var(--sh);border:1px solid rgba(43,45,51,.08)}
form.q h3{font-size:1.4rem;margin-bottom:4px}
.f{margin-top:16px}.f label{display:block;font-weight:600;font-size:.95rem;color:var(--navy);margin-bottom:6px}
.f input,.f select,.f textarea{width:100%;font:inherit;padding:13px 16px;border-radius:12px;border:1.5px solid #d6d9e8;background:var(--mist);color:var(--ink);transition:border .2s,background .2s}
.f input:focus,.f select:focus,.f textarea:focus{outline:0;border-color:var(--gold);background:#fff}
.f textarea{min-height:120px;resize:vertical}
form.q .btn{margin-top:20px;width:100%;justify-content:center}
.note{font-size:.88rem;color:#76736b;margin-top:10px}
/* cta band */
.band{background:linear-gradient(120deg,var(--navy),var(--deep));color:#fff;border-radius:26px;padding:clamp(34px,5vw,60px);display:flex;align-items:center;justify-content:space-between;gap:26px;flex-wrap:wrap;overflow:hidden}
.band h2{color:#fff;font-size:clamp(1.5rem,3vw,2.2rem)}.band p{color:#d6d3ca}
/* footer */
.ftr{background:var(--deep);color:#cfcdc6;padding:64px 0 26px;font-size:.98rem}
.ftr .g{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:36px}
@media(max-width:800px){.ftr .g{grid-template-columns:1fr}}
.ftr h4{color:#fff;font-size:1.1rem;margin-bottom:12px}
.ftr a:hover{color:var(--gold2)}
.ftr ul{list-style:none;display:grid;gap:6px}
.ftr .lg{background:var(--cream);display:inline-flex;padding:10px 14px;border-radius:14px;margin-bottom:14px}.ftr .lg img{height:72px}
.ftr .cp{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:20px;font-size:.88rem;color:#928f86;text-align:center}
.wa{position:fixed;inset-inline-start:18px;bottom:18px;z-index:60;width:58px;height:58px;border-radius:50%;background:#25D366;display:grid;place-items:center;box-shadow:0 12px 26px -8px rgba(0,0,0,.5);transition:transform .25s}
.wa:hover{transform:scale(1.1)}.wa svg{width:32px;height:32px}
.wa:before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:pl 2.4s infinite}
@keyframes pl{to{transform:scale(1.6);opacity:0}}
/* reveal */
.rv{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}
.hero .rv{transform:translateY(20px)}
.skip{position:absolute;inset-inline-start:-999px}.skip:focus{inset-inline-start:10px;top:10px;background:#fff;padding:8px 14px;z-index:200}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv,.gal button.rv{opacity:1;transform:none}}
/* ===== motion v2 ===== */
body{animation:pg .9s cubic-bezier(.16,1,.3,1) both}
@keyframes pg{from{opacity:0}}
.rv{transform:translateY(40px) scale(.985);filter:blur(6px);transition:opacity 1.2s cubic-bezier(.16,1,.3,1),transform 1.2s cubic-bezier(.16,1,.3,1),filter 1.2s cubic-bezier(.16,1,.3,1);transition-delay:var(--d,0s);will-change:transform,opacity}
.rv.in{filter:none}
.split-h .ln span{display:inline-block;opacity:0;transform:translateY(.7em) rotateX(-40deg);filter:blur(8px);animation:wd 1.1s cubic-bezier(.16,1,.3,1) calc(.15s + var(--i)*.09s) forwards;transform-origin:50% 100%}
@keyframes wd{to{opacity:1;transform:none;filter:none}}
.hero{perspective:1400px}
.hero .wrap{position:relative;z-index:1}
.hero .bp{position:absolute;z-index:0;inset-inline-end:-2%;top:2%;width:min(660px,62vw);color:var(--gold);opacity:.32;pointer-events:none}
.bp .d,.bp .d path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.6s cubic-bezier(.65,0,.35,1) var(--k,0s) forwards}
.bp .d{stroke-dasharray:1}
@keyframes draw{to{stroke-dashoffset:0}}
.hshow{transform-style:preserve-3d}
.hshow .p{transition:box-shadow .5s}
.imgframe{overflow:visible}
.imgframe img{will-change:transform}
.imgframe .pw{overflow:hidden;border-radius:var(--r);box-shadow:var(--sh)}
.imgframe .pw img{box-shadow:none;border-radius:0;transform:scale(1.14)}
.card .ph img{transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.btn{transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .4s,background .3s,color .3s}
/* flow */
.flow{height:380vh;position:relative}
.flow .stick{position:sticky;top:64px;height:calc(100vh - 64px);display:flex;align-items:center;overflow:hidden}
.fl{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;width:min(1180px,100% - 40px)}
.fl .t{font-size:clamp(1.6rem,3.2vw,2.4rem);margin-bottom:18px}
.fl-s{list-style:none;display:grid;gap:14px}
.fl-s li{display:grid;gap:2px;padding-inline-start:26px;position:relative;opacity:.38;transition:opacity .6s,transform .6s cubic-bezier(.16,1,.3,1);transform:translateX(0)}
.fl-s li:before{content:"";position:absolute;inset-inline-start:0;top:.7em;width:12px;height:12px;border-radius:50%;border:2px solid var(--gold);transition:background .5s,transform .5s}
.fl-s li.on{opacity:1;transform:translateX(-8px)}
.fl-s li.on:before{background:var(--gold);transform:scale(1.35)}
.fl-s b{font-family:var(--hf);font-size:1.25rem;color:#fff}.fl-s span{color:#cfcdc6;font-size:.98rem}
.fl-v svg{width:100%;max-height:calc(100vh - 150px);background:rgba(255,255,255,.03);border:1px solid rgba(217,164,65,.25);border-radius:22px}
@media(max-width:900px){.fl{grid-template-columns:1fr;gap:14px}.fl-v{order:-1}.fl-v svg{max-height:38vh;margin-inline:auto}.fl-s li:not(.on) span{display:none}.fl-s{gap:8px}.fl .eyebrow{margin-bottom:4px}.fl .t{font-size:1.45rem;margin-bottom:8px}.flow{height:340vh}}
/* factory */
.fac svg{width:100%;overflow:visible}
.fac .bt{animation:bt 1.2s linear infinite}
@keyframes bt{to{stroke-dashoffset:-24}}
.fac .pls{animation:pls 11s linear infinite}
@keyframes pls{from{transform:translateX(0)}to{transform:translateX(760px)}}
.fac .gear{animation:spin 9s linear infinite}
.fac .sm circle{animation:sm 5s ease-out infinite;transform-box:fill-box;transform-origin:center}
.fac .sm circle:nth-child(2){animation-delay:1.6s}.fac .sm circle:nth-child(3){animation-delay:3.2s}
@keyframes sm{0%{opacity:0;transform:translateY(40px) scale(.5)}30%{opacity:1}100%{opacity:0;transform:translateY(-60px) scale(1.6)}}
@media(prefers-reduced-motion:reduce){.flow{height:auto}.flow .stick{position:static;height:auto;padding:70px 0}.split-h .ln span{opacity:1;transform:none;filter:none}.bp .d,.bp .d path{stroke-dashoffset:0}.rv{filter:none}body{animation:none}}
/* round 3 */
.dark .card{background:rgba(255,255,255,.06);border:1px solid rgba(217,164,65,.3);box-shadow:none}
.dark .card h3{color:#fff}.dark .card p{color:#d6d3ca}
.dark .card:hover{background:rgba(255,255,255,.1);box-shadow:0 20px 50px -24px rgba(0,0,0,.8)}
.imgframe.land img{aspect-ratio:4/3}
.xrow{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:center;margin-top:48px}
.xrow.rev .xt{order:2}
.xt h3{font-size:1.5rem;margin-bottom:10px}.xt p{color:#524f48;font-size:1.05rem}
.mos{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:12px;aspect-ratio:4/3}
.mos img{width:100%;height:100%;object-fit:cover;border-radius:14px;box-shadow:0 12px 30px -18px rgba(22,23,27,.6)}
.mos img:first-child{grid-row:span 2}
@media(max-width:800px){.xrow{grid-template-columns:1fr;gap:20px}.xrow.rev .xt{order:0}}
.ftr .g{grid-template-columns:1.2fr .8fr 1.3fr 1.2fr;gap:34px}
@media(max-width:1000px){.ftr .g{grid-template-columns:1fr 1fr}}@media(max-width:560px){.ftr .g{grid-template-columns:1fr}}
.ftr h4{padding-bottom:10px;margin-bottom:16px;border-bottom:1px solid rgba(217,164,65,.35);display:inline-block;min-width:60%}
.ftr .fb p{margin-bottom:18px;max-width:320px}
.ftr .fl2 li a{display:block;padding:4px 0}
.ftr .fi{gap:16px}.ftr .fi li{display:flex;gap:12px;align-items:flex-start;line-height:1.7}
.ftr .fi i{flex:none;width:36px;height:36px;border-radius:10px;background:rgba(217,164,65,.14);color:var(--gold);display:grid;place-items:center}
.ftr .fi i svg{width:19px;height:19px}.ftr .fi small{display:block;color:#928f86;font-size:.82rem;line-height:1.4}
.ftr .fi .ltr{display:inline}
.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}
@media(max-width:900px){.nums{grid-template-columns:1fr 1fr}}
.nm{border:1px solid rgba(217,164,65,.3);background:rgba(255,255,255,.05);border-radius:var(--r);padding:26px 18px;text-align:center}
.nm b{display:block;font-family:var(--hf);font-size:clamp(2rem,4vw,3rem);color:var(--gold);line-height:1.2}
.nm small{color:#d6d3ca;font-size:.97rem;line-height:1.6;display:block;margin-top:4px}
.card .ph img{filter:saturate(.92) contrast(1.02)}
.fact b.txt{font-size:clamp(1.15rem,2.2vw,1.55rem);line-height:1.5;padding:.5rem 0}
/* ===== round 4: AEO block, mobile bar, mobile polish ===== */
.def-s{padding-bottom:0}
.def{display:grid;grid-template-columns:.8fr 1.6fr;gap:40px;align-items:start;background:var(--cream);border:1px solid rgba(217,164,65,.35);border-radius:var(--r);padding:clamp(24px,4vw,44px)}
.def h2.t{margin:0}
.def p{color:#3b3a36;font-size:1.06rem}.def p+p{margin-top:12px}
.def a{color:var(--navy);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.def .more-l{white-space:nowrap;font-weight:600}
.faq-more{text-align:center;margin-top:26px;color:#524f48}
.faq-more a{color:var(--navy);font-weight:600;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.hdr.sc .nav{inset-block-start:64px;max-height:calc(100vh - 64px)}
.mbar{display:none}
@media(max-width:760px){
 body{font-size:16px;line-height:1.8;padding-bottom:calc(68px + env(safe-area-inset-bottom))}
 .wrap{width:min(1180px,100% - 32px)}
 .sec{padding:56px 0}
 /* sticky bottom contact bar */
 .mbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.35fr);box-sizing:border-box;width:100%;gap:8px;position:fixed;inset-inline:0;bottom:0;z-index:70;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:rgba(22,23,27,.96);backdrop-filter:blur(10px);border-top:1px solid rgba(217,164,65,.3)}
 .mbar a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:48px;border-radius:12px;font-weight:600;font-size:.95rem;color:#fff;background:rgba(255,255,255,.08)}
 .mbar a svg{width:19px;height:19px;flex:none}
 .mbar a.w{background:#25D366;color:#0b2e17}
 .mbar a.q{background:var(--gold);color:var(--deep)}
 .wa{display:none}
 /* header */
 .hdr .in{height:66px}.hdr.sc .in{height:60px}
 .brand img{height:46px}.hdr.sc .brand img{height:40px}
 .brand b{font-size:1.15rem}.brand small{font-size:.72rem}
 .nav{inset-block-start:66px;max-height:calc(100vh - 66px)}
 .hdr.sc .nav{inset-block-start:60px;max-height:calc(100vh - 60px)}
 /* hero: headline + buttons first, photos after */
 .hero .wrap{gap:30px;padding:34px 0 84px}
 .hshow{order:0;height:300px}
 .hshow .ring{width:130px;height:130px;inset-inline-start:-20px}
 .hero .bp{display:none}
 .hero h1{font-size:clamp(1.85rem,8.4vw,2.4rem);margin:12px 0 14px}
 .hero p{font-size:1.04rem;margin-bottom:22px}
 .hero .acts .btn{flex:1 1 140px;justify-content:center}
 .facts{margin-top:-44px}
 .fact{padding:20px 12px}
 .fact b.txt{font-size:1.05rem}
 /* type */
 h2.t{font-size:1.6rem}
 p.lead{font-size:1.04rem}
 .ph-hero{padding:40px 0 44px}
 .ph-hero h1{font-size:2rem}
 .ph-hero p{font-size:1.02rem}
 .band{padding:28px 22px;border-radius:20px}
 .band>div:last-child{width:100%}
 .band .btn{flex:1 1 auto;justify-content:center;white-space:nowrap;padding:13px 20px}
 .grid3,.grid2{gap:16px;margin-top:28px}
 .card .bd{padding:18px 20px 22px}
 .mq img{height:150px}
 .imgframe:after{inset:12px 12px -12px -12px}
 .def{grid-template-columns:1fr;gap:10px}
 .split{gap:28px}
 .spec div{padding:14px 18px}
 .pl .row{padding:16px 18px;gap:14px}.pl .n{width:44px;height:44px;font-size:1.1rem}
 .faq summary{padding:16px 18px;font-size:1rem;min-height:56px}
 .faq .a{padding:0 18px 18px}
 /* contact: form first on phones */
 .cgrid{display:flex;flex-direction:column-reverse;gap:22px}
 form.q{padding:22px 18px}
 .f input,.f select,.f textarea{font-size:16px}
 .ci{padding:16px}
 .ftr{padding:48px 0 22px}
 .ftr .fl2{grid-template-columns:1fr 1fr}
 .ftr h4{min-width:100%}
 /* lighter motion on phones */
 .rv{filter:none;transform:translateY(24px)}
 .split-h .ln span{filter:none}
 .card:hover,.pl .row:hover{transform:none}
 .imgframe .pw img{transform:none}
 .lb{bottom:0}
}
@media(max-width:380px){.mbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr)}.mbar a{font-size:.88rem;gap:5px}.hero h1{font-size:1.75rem}}
.skip{position:absolute;inset-inline-start:auto;top:-60px;right:10px;background:#fff;padding:8px 14px;z-index:200;border-radius:8px;transition:top .2s}.skip:focus{top:10px;inset-inline-start:auto}
html{overflow-x:hidden}
/* gallery filter */
.gf{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.gf button{font:inherit;font-weight:600;font-size:.95rem;padding:9px 16px;border-radius:999px;border:1.5px solid rgba(43,45,51,.18);background:#fff;color:var(--navy);cursor:pointer;white-space:nowrap;transition:background .2s,color .2s,border-color .2s}
.gf button span{font-weight:500;opacity:.6;font-size:.85em;margin-inline-start:2px}
.gf button:hover{border-color:var(--gold)}
.gf button.on{background:var(--navy);border-color:var(--navy);color:#fff}
.gf button.on span{color:var(--gold2);opacity:1}
@media(max-width:760px){.gf{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding:4px 16px 8px;scroll-snap-type:x proximity}.gf::-webkit-scrollbar{display:none}.gf button{scroll-snap-align:start;min-height:44px}.gal{margin-top:18px}}
