/* Atelier visual layer. Plain CSS; shared by public, customer, worker and admin. */
:root{--bg:#080a0d;--s1:#11151b;--s2:#191f27;--s3:#242c36;--line:#29313b;--line2:#3a4451;--tx:#f4f5f7;--tx2:#bac2cd;--mute:#929eae;--r-s:8px;--r:14px;--r-l:20px;--wrap:1376px;--gutter:clamp(22px,4.8vw,72px);--head:82px;--graphite:#11151b;--hair:rgba(255,255,255,.12)}
body{background:var(--bg)}
.btn{border-radius:7px;box-shadow:none;letter-spacing:.01em;font-size:14px;height:52px;padding-inline:26px}
.btn.sm{border-radius:6px;height:44px;font-size:13px}.btn:hover{box-shadow:0 6px 24px -10px #009efe66}.btn.alt:hover{box-shadow:none}
.ib{border-radius:8px;min-width:44px;min-height:44px}
.in,.in-pre,.select{border-radius:9px}.chip,.seg,.seg button,.switch{border-radius:8px}.pill{letter-spacing:.01em}
.site-head{border-bottom:1px solid var(--hair);background:#080a0de8}.site-head .wrap{gap:38px}.nav a{font-size:12px;padding-inline:10px;letter-spacing:.02em}.brand .wm{font-size:23px}.brand .by{font-size:9px;letter-spacing:.09em}.head-actions .login{font-size:12px}
.site-foot{background:#0a0d11;padding-block:70px 28px}.site-foot .tag{line-height:1.85;max-width:24em}.site-foot .bottom{font-size:11px}.site-foot h2{text-transform:uppercase;letter-spacing:.12em;font-size:10px}.site-foot a{font-size:12px}.site-foot .cols{gap:46px}
.eyebrow{font-size:10px;font-weight:500;letter-spacing:.19em;color:var(--blue2);margin-block-end:24px;line-height:1.7;text-transform:uppercase}
.ed-h{font-weight:500;font-size:clamp(2rem,4vw,3.6rem);letter-spacing:-.055em;line-height:1.12}.ed-lead{font-size:14px;line-height:1.9;color:#aab5c3;max-width:30em}.ed{padding-block:clamp(72px,9vw,130px)}
.hx{min-height:91svh;align-items:center}.hx .media{inset:-3% 0 -3%}.hx .media img{object-position:64% center}.hx::after{background:linear-gradient(90deg,rgba(4,7,11,.82),rgba(4,7,11,.46) 38%,rgba(4,7,11,.02) 70%),linear-gradient(0deg,#080a0d,transparent 24%)}
.hx .wrap{padding-block:150px 80px}.hx h1{font-weight:500;font-size:clamp(3rem,5.2vw,5.6rem);line-height:1.04;max-width:9.6em;letter-spacing:-.065em}.hero-soft{display:block;color:#b9c4d1}.hx .lead{font-size:13px;line-height:1.85;max-width:31em;margin-top:28px;color:#c0cad5}.hx .ctas{margin-top:30px;gap:16px}.hx .ctas .btn{height:52px;font-size:12px;padding-inline:23px}.hx .ctas .glass{background:transparent;border:0;box-shadow:none;backdrop-filter:none;padding-inline:6px}.hx .ctas .glass::after{content:'↗';margin-inline-start:12px;font-size:19px}.hx .cue{inset-inline-end:var(--gutter);bottom:64px;font-size:9px;letter-spacing:.15em}
.trust-x{background:#0b0e12}.trust-x li{padding:24px 20px;color:#b8c2ce;font-size:11px;font-weight:400;gap:12px}.trust-x .ic{width:19px;height:19px;color:#8297aa}
.collection-head{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;margin-block-end:42px}.collection-head .ed-h{max-width:12em}.textbtn{font-size:12px;font-weight:500;gap:16px;color:var(--tx)}.collection-head .textbtn{white-space:nowrap}.collection-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.treatment{display:block;position:relative;overflow:hidden;text-decoration:none!important;color:var(--tx);background:var(--s1)}.treatment-photo{aspect-ratio:4/5;overflow:hidden;background:#161b22}.treatment-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}.treatment:hover img{transform:scale(1.04)}.treatment-copy{position:relative;padding:24px 20px 26px;border-top:1px solid var(--line)}.treatment-n{font-size:10px;color:var(--blue2);letter-spacing:.12em}.treatment h3{font-size:19px;font-weight:500;margin-block:10px 7px;letter-spacing:-.04em}.treatment p{font-size:11px;color:var(--mute)}.treatment-arrow{position:absolute;inset-inline-end:18px;top:24px;color:#fff;font-size:18px}
.live-feature{background:#0d1117;border-block:1px solid var(--hair)}.live-feature-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:center}.live-feature .ed-h{white-space:pre-line;font-size:clamp(2.5rem,4.4vw,4.4rem)}.live-feature .textbtn{margin-top:28px;color:var(--blue2)}
.story .st h3{font-size:clamp(1.8rem,3vw,2.8rem);font-weight:500}.story .st p{font-size:14px}.story .st{min-height:34vh}.story .st-body{opacity:.48}.phone{box-shadow:0 0 0 1px #47515f,0 0 0 7px #0d1116,0 0 0 8px #252d37,0 30px 70px #0007;height:min(100%,600px)}
.scr .wash{margin-inline:-12px;height:auto}.scr .wash-stage{border:0;border-radius:0;background:transparent}.scr .wash-hud{display:none}.scr .wash-caption{padding:0 12px;font-size:11px}.scr .wash-num{font-size:9px}.scr .wash-note{font-size:8px;padding:10px 12px}.scr .wash-segments{margin:10px 12px}.scr .wash-render{margin-top:-20px}.scr .wash-title{font-size:11px}.scr.s4 .prog,.scr.s4 .ticks{display:none}
.areas .amap{border:1px solid var(--line);border-radius:4px}.final{background:#10151c}.final .fh,.page-h,.px h1{font-weight:500;letter-spacing:-.055em}.px{padding-block:95px 60px}.px .display{font-weight:500}.pkx{border-color:var(--line)}.pkx h2{font-weight:500}.pkx .media{border-radius:4px}.cx-form{border-radius:14px}.cx-big b{font-weight:500}.plx h3{font-weight:500}.doc-sec p{font-size:14px;line-height:1.95}
/* Rendered assets use a stable 3:2 canvas. No CSS mirroring in RTL: paint/wheel anchors stay aligned. */
.rendered-car{position:relative;display:block;width:100%;aspect-ratio:3/2;height:auto;transform:none!important}.rendered-car canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity .28s}.rendered-car.render-ready canvas{opacity:1}.rendered-car:not(.render-ready)::before{content:'';position:absolute;inset:20% 10%;border-radius:50%;background:radial-gradient(ellipse,#25324280,transparent 65%)}
.wash-stage{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 55%,#24364b75,transparent 64%),linear-gradient(135deg,#151c25,#0b1016 70%);border:1px solid #354253;border-radius:16px;contain:layout paint;margin-block:18px;color:var(--tx)}
.wash-stage::before{content:'';position:absolute;inset-inline:8%;top:65%;height:25%;border:1px solid #7c9dbc25;transform:perspective(420px) rotateX(69deg);border-radius:50%;z-index:-1;box-shadow:0 0 50px #009efe08}
.wash-hud{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:24px 26px 0;font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:#97a8ba}.wash-hud>span:first-child{display:flex;align-items:center;gap:8px;color:#d1efff}.wash-hud i{display:inline-block;width:5px;height:5px;background:var(--blue);border-radius:50%;box-shadow:0 0 9px #009efe99}
.wash-render{position:relative;margin-block:-6px -24px;aspect-ratio:3/2;width:100%}.wash-render canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity .35s}.render-ready .wash-render canvas{opacity:1}.wash-caption{display:flex;align-items:center;gap:15px;padding-inline:26px;min-height:38px}.wash-num{font-size:10px;color:var(--blue2);font-variant-numeric:tabular-nums;white-space:nowrap}.wash-title{font-size:16px;font-weight:500;letter-spacing:-.025em}.wash-signal{margin-inline-start:auto;display:flex;gap:3px;align-items:center}.wash-signal i{width:2px;height:10px;background:var(--blue)}.wash-signal i:nth-child(2){height:16px}.wash-signal i:nth-child(3){height:7px}.wash-signal i:nth-child(4){height:12px}.wash-segments{display:flex;gap:5px;margin:18px 26px 0}.wash-segments i{display:block;flex:1;height:2px;background:#344252;border-radius:1px;transition:background .5s}.wash-segments .done{background:#7dc8ed}.wash-segments .active{background:var(--blue);box-shadow:0 0 8px #009efe44}.wash-segments .skipped{background:repeating-linear-gradient(90deg,#7e8b9b 0 3px,transparent 3px 6px)}.wash-note{font-size:9px;line-height:1.6;color:#94a1b2;padding:14px 26px 22px}.render-fallback{position:absolute;inset:45% 10%;text-align:center;color:var(--mute);font-size:13px}
/* App: clear hierarchy, large touch targets, quiet surfaces. */
.shell{grid-template-columns:205px minmax(0,1fr);gap:40px}.side a,.side button.navb{font-size:12px;padding:14px 12px;border-radius:7px}.side .who b{font-size:13px}.side .who div span{font-size:11px}.vhead{margin-block:8px 30px}.vhead h1{font-size:clamp(1.8rem,3vw,2.6rem);font-weight:500;letter-spacing:-.055em}.vhead p{font-size:13px}.mockbar{font-size:10px;padding-block:6px}.auth .art{background:linear-gradient(0deg,#080a0d 5%,#080a0d00 95%),url('../img/hero-mobile.jpg') center/cover;min-height:640px}.auth .art .art-media{display:none}.auth .art .carsvg{display:none}.auth .art h2{font-weight:500;font-size:36px;letter-spacing:-.045em}.auth .art p{font-size:13px}.auth h1{font-weight:500;font-size:32px}.auth .lead{font-size:13px}.auth .pane{padding-top:68px}.auth .box{max-width:415px}
.vcard{border-radius:14px;transition:border-color .25s,transform .25s}.vcard:hover{border-color:#546276;transform:translateY(-2px)}.vcard .img{padding:0 14px;background:radial-gradient(ellipse at 50% 80%,#24395070,transparent 70%),#131921}.vcard .img .carsvg{max-width:420px}.vcard .bd{padding:14px 20px 22px}.vcard h2{font-size:16px;font-weight:500}.vcard .acts,.acard .acts{padding:10px 14px}.vcard .acts .ib{width:44px;height:44px}.preview{padding:6px 24px}.preview .carsvg{max-width:380px}.pick-car{width:130px!important}.pick .carsvg{min-width:100px}.bhead h1{font-weight:500;letter-spacing:-.04em}.vprog{border-radius:16px}.vprog-h{font-size:12px}.vprog-h>span{font-size:10px}.steps-live li{padding-block:18px}.steps-live b{font-size:13px;font-weight:500}.steps-live small{font-size:11px;line-height:1.7}.steps-live .pill{font-size:9px}.steps-live .dot{width:27px;height:27px;font-size:10px}.steps-live li.skipped{opacity:.75}.live-grid{gap:32px}.live-side{background:#11151b;border:1px solid var(--line);border-radius:12px;padding:22px;align-self:start}.worker-render{max-width:650px}.worker-render .wash-stage{margin-block:16px}.worker-render .wash-hud{padding-top:16px}.worker-render .wash-render{max-width:480px;margin-inline:auto;margin-block:-15px -28px}.worker-render .wash-note{padding-bottom:16px}.tick{min-height:70px}.tick b{font-size:13px}.tick small{font-size:11px}.skip-btn{min-height:44px}.wiz{border-radius:14px}.wiz-steps li{font-size:12px}.wiz-h{font-weight:500}.pbar{height:3px}.table-wrap{border-radius:12px}.sheet{border-radius:18px}.sheet .sh-head h2{font-weight:500}.sheet .sh-foot{padding-bottom:max(20px,env(safe-area-inset-bottom))}
/* Reviewable standalone design and animation gallery. */
.design-page{max-width:1180px;margin-inline:auto;padding:64px var(--gutter)}.design-page h1{font-size:clamp(2.5rem,5vw,4.2rem);font-weight:500;letter-spacing:-.065em;line-height:1.05}.design-page>.lead{font-size:14px;margin-block:20px 42px}.design-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:32px;align-items:start}.design-grid .wash-stage{margin:0}.demo-tools{display:grid;gap:18px}.demo-tools label{display:block;font-size:11px;letter-spacing:.05em;color:var(--mute);margin-bottom:8px}.demo-tools select{appearance:auto}.step-picker{display:grid;grid-template-columns:1fr 1fr;gap:6px}.step-picker button{min-height:44px;padding:10px;text-align:start;background:#111720;border:1px solid var(--line);border-radius:6px;font-size:10px;line-height:1.5}.step-picker button[aria-pressed=true]{border-color:var(--blue);color:#9fd6ff}.demo-colors{display:flex;gap:8px;flex-wrap:wrap}.demo-colors button{width:44px;height:44px;border:8px solid #10151c;border-radius:50%;box-shadow:0 0 0 1px #66778b}.demo-colors button[aria-pressed=true]{box-shadow:0 0 0 2px var(--blue)}.demo-actions{display:flex;gap:8px;flex-wrap:wrap}.demo-actions .btn{height:44px;padding-inline:14px;font-size:11px}.demo-skip{font-size:11px;color:var(--mute);min-height:20px}.body-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:50px}.body-gallery article{background:var(--s1);padding:10px 18px 18px;border:1px solid var(--line);border-radius:8px}.body-gallery p{font-size:11px;color:var(--mute)}
@media (min-width:1500px){.hx .wrap{padding-block:180px 130px}}
@media (max-width:1050px){.site-head .wrap{gap:20px}.nav a{font-size:11px}.head-actions{gap:5px}.live-feature-grid{gap:32px}.collection-grid{gap:10px}.treatment-copy{padding:20px 14px}.treatment h3{font-size:16px}.treatment p{font-size:10px}.shell{gap:24px;grid-template-columns:175px minmax(0,1fr)}}
@media (max-width:860px){:root{--head:70px}.shell{grid-template-columns:1fr;gap:24px}.side{background:#0b1016f5}.side a{font-size:11px;padding:10px 12px;min-height:44px}.side .ic{width:17px;height:17px}.live-feature-grid{grid-template-columns:1fr;gap:32px}.live-feature .ed-h{white-space:normal;max-width:11em}.live-feature .ed-lead{max-width:36em}.live-feature .wash-stage{max-width:650px;margin-inline:auto}.collection-grid{grid-template-columns:1fr 1fr;gap:16px}.design-grid{grid-template-columns:1fr}.demo-tools{grid-template-columns:1fr 1fr}.demo-tools .wide{grid-column:1/-1}.step-picker{grid-template-columns:repeat(3,1fr)}.body-gallery{grid-template-columns:repeat(3,1fr)}.live-side{padding:20px}.auth .pane{padding-top:40px}}
@media (max-width:600px){.hx{min-height:90svh;align-items:flex-start}.hx .wrap{padding-block:140px 280px}.hx h1{font-size:clamp(2.75rem,10.8vw,4rem);max-width:10em}.hx .eyebrow{font-size:8px;letter-spacing:.15em;margin-bottom:18px}.hx .lead{font-size:11px;max-width:29em;line-height:1.85;margin-top:20px}.hx .ctas{gap:12px;margin-top:22px}.hx .ctas .btn{font-size:11px;padding-inline:18px;height:46px}.hx .ctas .glass{padding-inline:0}.hx .media img{object-position:50% 65%}.hx::after{background:linear-gradient(180deg,#04070bc9,rgba(4,7,11,.54) 35%,rgba(4,7,11,0) 70%,#080a0d 100%)}.trust-x li{font-size:10px;gap:9px;padding:20px 13px}.trust-x .ic{width:17px;height:17px}.collection-head{display:block;margin-bottom:28px}.collection-head .textbtn{margin-top:24px}.collection-grid{gap:12px}.treatment-copy{padding:18px 12px 22px}.treatment h3{font-size:16px}.treatment p{line-height:1.8;min-height:32px}.treatment-arrow{inset-inline-end:12px;top:16px}.treatment-n{font-size:8px}.treatment-photo{aspect-ratio:4/5}.eyebrow{font-size:9px;margin-bottom:16px}.ed{padding-block:72px}.ed-h{font-size:34px}.site-foot .cols{gap:30px}.site-foot .cols>div:first-child{margin-bottom:12px}.site-foot .cols{grid-template-columns:1fr 1fr}.site-foot .cols>div:first-child{grid-column:1/-1}.site-foot .cols>div:last-child{grid-column:1/-1}.site-foot .bottom{font-size:10px}.wash-hud{padding:19px 18px 0;font-size:8px;letter-spacing:.08em}.wash-caption{padding-inline:18px;gap:10px}.wash-title{font-size:13px}.wash-num{font-size:9px}.wash-segments{margin-inline:18px}.wash-note{padding:12px 18px 18px;font-size:8px}.wash-render{margin-block:0 -10px}.wash-stage{border-radius:12px}.pick-car{width:97px!important}.preview .carsvg{max-width:320px}.steps-live li{flex-wrap:wrap;column-gap:10px;row-gap:8px}.steps-live li>.grow{min-width:150px}.steps-live time{font-size:10px}.steps-live li>.pill{margin-inline-start:37px}.vprog-h{gap:8px;flex-wrap:wrap}.vprog{padding:14px}.vcard .img .carsvg{max-width:360px}.worker-render .wash-render{max-width:340px}.design-page{padding-top:40px}.demo-tools{gap:16px}.body-gallery{grid-template-columns:1fr 1fr}.design-page h1{font-size:42px}.step-picker{grid-template-columns:1fr 1fr}.demo-actions .btn{font-size:10px}.live-grid{gap:22px}.story .st{min-height:29vh}.story .st p{font-size:13px}.px{padding-block:60px 40px}}
@media (prefers-reduced-motion:reduce){.wash-render canvas,.rendered-car canvas{transition:none}.treatment:hover img,.vcard:hover{transform:none}html.js .rv{opacity:1;transform:none}.story .st-body{opacity:1;transform:none}.cue i{animation:none}}
/* Keep the worker's action and checklist close together on a phone. */
.worker-render .wash-render{max-width:300px;margin-block:-12px -26px}.worker-render .wash-note{display:none}.worker-render .wash-segments{margin-block-end:16px}.worker-render .wash-title{font-size:13px}
@media(max-width:600px){.worker-render .wash-render{max-width:240px}.worker-render .wash-hud{font-size:8px}.worker-render .wash-caption{min-height:28px}}
/* Avoid cross-document ViewTransition promise errors in unsupported contexts.
   Section reveals, route motion and canvas crossfades provide the visual motion. */
@view-transition{navigation:none}

/* ================= Sprint 7: shared (public, customer, worker, admin) ================= */
/* new logo */
.brand{gap:10px;align-items:center}
.brand .brand-logo{display:block;height:34px;width:auto;border-radius:0}
.brand .by{display:none}
.site-foot .brand .brand-logo{height:46px}
.site-foot .brand .by{display:block;margin-top:6px;color:var(--mute)}
.mnav .brand .brand-logo{height:30px}
@media (max-width:640px){.brand .brand-logo{height:28px}}
/* Omani-style number plate: logo band on the side, then number and letters */
.plate-x{display:inline-flex;align-items:stretch;height:38px;border-radius:6px;background:#fff;border:2px solid #0b0f14;box-shadow:0 0 0 1px rgba(255,255,255,.25),0 6px 16px -8px rgba(0,0,0,.7);overflow:hidden;vertical-align:middle;direction:ltr}
.plate-x .pb-band{display:grid;place-items:center;width:58px;background:#0b1622;padding:3px 5px;border-inline-end:2px solid #0b0f14}
.plate-x .pb-band img{width:100%;height:auto;display:block}
.plate-x .pb-main{display:flex;align-items:center;gap:10px;padding:0 12px;font-family:"Poppins",system-ui,sans-serif;font-weight:700;color:#0b0f14;letter-spacing:.06em;line-height:1}
.plate-x .pb-num{font-size:19px}.plate-x .pb-let{font-size:17px}
.plate-x .ph{color:#9aa3ad;font-weight:600}
.plate-x.sm{height:30px;border-radius:5px}.plate-x.sm .pb-band{width:46px}.plate-x.sm .pb-main{gap:7px;padding:0 9px}.plate-x.sm .pb-num{font-size:15px}.plate-x.sm .pb-let{font-size:13.5px}
.plate-x.lg{height:48px}.plate-x.lg .pb-band{width:74px}.plate-x.lg .pb-num{font-size:24px}.plate-x.lg .pb-let{font-size:21px}
.swatch-dot{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid rgba(255,255,255,.35);box-shadow:inset 0 0 0 1px rgba(0,0,0,.25);flex:none;vertical-align:middle}
/* homepage: Watch your wash live (static preview, no renders) */
.live7 .l7-points{list-style:none;margin:22px 0 28px;padding:0;display:grid;gap:10px;color:var(--tx2);font-size:14.5px}
.live7 .l7-points li{display:flex;gap:10px;align-items:flex-start}.live7 .l7-points .ic{color:var(--blue2);margin-top:3px}
.l7-demo{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;align-items:stretch}
.l7-frame{position:relative;border-radius:var(--r-l);overflow:hidden;border:1px solid var(--hair);aspect-ratio:16/10;background:#0b1118}
.l7-frame img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.92) contrast(1.04)}
.l7-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 30%,transparent 70%,rgba(0,0,0,.45));pointer-events:none}
.l7-badge{position:absolute;top:14px;left:14px;z-index:2;display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:6px;background:#e5243b;color:#fff;font-size:12px;font-weight:700;letter-spacing:.12em}
.l7-badge i{width:8px;height:8px;border-radius:50%;background:#fff;animation:l7blink 1.4s ease-in-out infinite}
.l7-badge.sm{top:10px;left:10px;font-size:10px;padding:3px 7px}
.l7-rec{position:absolute;left:14px;bottom:12px;z-index:2;font-size:11.5px;color:#fff;background:rgba(0,0,0,.55);padding:4px 9px;border-radius:6px}
@keyframes l7blink{50%{opacity:.25}}
.l7-list{border-radius:var(--r-l);border:1px solid var(--hair);background:var(--s1);padding:18px}
.l7-list>p{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:12px}
.l7-list ol{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.l7-list li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--mute);transition:color .4s}
.l7-list .lt-dot{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line2);display:grid;place-items:center;flex:none;transition:all .4s}
.l7-list .lt-dot .ic{opacity:0;color:#03110a}
.l7-list li.done{color:var(--tx2)}.l7-list li.done .lt-dot{background:var(--ok);border-color:var(--ok)}.l7-list li.done .lt-dot .ic{opacity:1}
.l7-list li.now{color:#fff}.l7-list li.now .lt-dot{border-color:var(--blue);box-shadow:0 0 0 4px rgba(0,158,254,.18)}
@media (max-width:900px){.l7-demo{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.l7-badge i{animation:none}}
/* homepage phone screens without renders */
.plate-mini{display:flex;align-items:center;width:auto!important}
.wash-live{position:relative;border-radius:14px;overflow:hidden;flex:1;min-height:0}.wash-live img{width:100%;height:100%;object-fit:cover;display:block}
.shine-photo{border-radius:14px;overflow:hidden;flex:1;min-height:0}.shine-photo img{width:100%;height:100%;object-fit:cover;display:block}
.arrive-badge{display:grid;place-items:center}.arrive-badge .ic{width:64px;height:64px;color:var(--blue2);padding:14px;border-radius:50%;background:rgba(0,158,254,.12)}
.final-photo{margin:48px auto 0;max-width:980px;border-radius:var(--r-l);overflow:hidden;border:1px solid var(--hair)}.final-photo img{display:block;width:100%;height:auto;aspect-ratio:16/7;object-fit:cover}
/* three-package collection */
.collection-grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:860px){.collection-grid.c3{grid-template-columns:1fr}}
/* public add-ons list (names only, no prices) */
.ao-pub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,40px)}
.ao-pub h3{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue2);margin-bottom:12px;font-weight:600}
.ao-pub-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}
.ao-pub-list li{display:flex;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--hair);color:var(--tx2);font-size:15px}.ao-pub-list .ic{color:var(--blue2)}
@media (max-width:720px){.ao-pub-grid{grid-template-columns:1fr}}
/* legal: draft clause flag */
.legal-draft{background:rgba(255,178,63,.05);border-radius:12px;padding-inline:14px}
.draft-flag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--warn);border:1px solid rgba(255,178,63,.45);border-radius:6px;padding:3px 8px;margin-bottom:10px}

/* ================= Sprint 18: image slots, banners, gallery, home cards ================= */
.collection-grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1050px){.collection-grid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.collection-grid.c4{grid-template-columns:1fr}}
.treatment-photo picture{display:block;width:100%;height:100%}
.treatment-photo picture img{width:100%;height:100%;object-fit:cover}
.l7-frame picture{display:block;position:absolute;inset:0}
.l7-frame picture img{width:100%;height:100%;object-fit:cover}
.st-media{border-radius:14px;overflow:hidden;aspect-ratio:4/3;margin:0 0 16px;background:#0b1118;max-width:420px}
.st-media picture,.st-media img{display:block;width:100%;height:100%;object-fit:cover}
.s18-banner.is-short{min-height:min(56svh,480px)}
.s18-gallery-sec{padding-block:clamp(40px,7vw,90px)}
.s18-gallery{list-style:none;margin:24px 0 0;padding:0 0 8px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,32%);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;overscroll-behavior-x:contain}
.s18-gallery li{scroll-snap-align:start;border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:#0b1118}
.s18-gallery picture,.s18-gallery img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:640px){.s18-gallery{grid-auto-columns:80%}}
.s18-picker .svc-groups{margin-top:28px}
.s18-picker a.svc-card{text-decoration:none;color:var(--tx)}
.s18-picker a.svc-card:hover{border-color:var(--line2)}
/* app sign in: the app-login slot as the side image (desktop) and a top band (phone) */
.auth .art{background:#080a0d}
.auth .art .art-media{display:block;position:absolute;inset:0;z-index:0}
.auth .art .art-media picture,.auth .art .art-media img{display:block;width:100%;height:100%;object-fit:cover}
.auth .art .art-media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#080a0d 8%,rgba(8,10,13,.15) 70%)}
.auth .art>*:not(.art-media){position:relative;z-index:1}
@media (max-width:900px){.auth .art{display:block;min-height:0;height:150px;padding:0;border:0}.auth .art>*:not(.art-media){display:none}}
/* report banner */
.rp-banner{border-radius:18px;overflow:hidden;aspect-ratio:16/5;margin:0 0 18px;background:#0b1118}
.rp-banner picture,.rp-banner img{display:block;width:100%;height:100%;object-fit:cover}
@media print{.rp-banner{display:none}}
/* app first paint: a light skeleton instead of a blank screen */
.app-skel{display:block;padding-block:28px}
.skel-wrap{display:grid;gap:14px;max-width:880px}
.skel-h,.skel-l,.skel-card{min-height:0}
.skel-h{height:38px;width:55%;border-radius:12px}
.skel-l{height:16px;width:35%;border-radius:8px}
.skel-card{height:120px;border-radius:18px}
/* contact honeypot: hidden without a far off screen position, so Arabic pages do not scroll sideways */
.hp{left:auto;inset-inline-start:0;clip-path:inset(50%);white-space:nowrap}
