/* Optional shared toolbar styling; load in the staff app. */
.formatting-toolbar{display:flex;flex-wrap:wrap;gap:.35rem;margin:.45rem 0}
.formatting-toolbar button{font:inherit;font-size:.8rem;padding:.35rem .6rem;border:1px solid currentColor;border-radius:.4rem;background:transparent;color:inherit;cursor:pointer;min-height:2.25rem}
.formatting-toolbar button:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
.formatting-toolbar button:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.formatting-help{display:block;line-height:1.5;opacity:.8;margin:.35rem 0 .8rem}

.rich-copy{overflow-wrap:anywhere;min-width:0}.rich-copy p:last-child{margin-bottom:0}.rich-copy ul,.rich-copy ol{padding-left:1.4em}
.quantity-pricing{margin:24px 0;padding:16px;border:1px solid var(--line);border-radius:8px}
.quantity-pricing h3{font-size:1.1rem;margin:0 0 12px}.quantity-pricing table{width:100%;min-width:0;border-collapse:collapse}
.quantity-pricing th,.quantity-pricing td{text-align:left;padding:8px;border-bottom:1px solid var(--line)}
.quantity-pricing p{font-size:.85rem;margin:12px 0 0}.quantity-price-hint{display:block;font-size:.75rem;color:var(--muted);margin-top:4px}

:root{--ink:#112741;--muted:#526277;--blue:#175cdb;--navy:#102c50;--line:#dce4ef;--pale:#eef4fc;--white:#fff;--green:#136744;--radius:12px}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#fff;font:16px/1.6 'DM Sans',sans-serif}h1,h2,h3,.brand{font-family:Manrope,sans-serif;line-height:1.16;letter-spacing:-.045em}h1{font-size:clamp(2.5rem,5.6vw,5rem);font-weight:800;margin:18px 0 25px}h2{font-size:clamp(1.9rem,3vw,2.7rem);margin:0 0 18px}h3{font-size:1.25rem;letter-spacing:-.025em}p{margin:0 0 20px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button,.button{cursor:pointer;border:1px solid transparent;border-radius:6px;padding:12px 20px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:white;line-height:1.4}button:hover,.button:hover{filter:brightness(.94)}button:disabled{cursor:not-allowed;opacity:.55}.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.quiet{background:transparent;color:var(--ink);border-color:var(--line)}.small{padding:8px 13px;font-size:.875rem}.danger{color:#ab2634;background:#fff4f4;border-color:#efb7bd}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #f4ab31;outline-offset:3px}.wrap{max-width:1200px;margin:auto;padding:0 32px}.topbar{background:var(--navy);color:#fff;font-size:.875rem;padding:9px 0}.topbar .wrap{display:flex;justify-content:space-between}.preview-bar{background:#fff3cf;color:#6e4c06;text-align:center;padding:8px;font-size:.875rem}.nav{border-bottom:1px solid var(--line);background:white}.nav .wrap{min-height:92px;display:flex;align-items:center;gap:34px}.brand{font-weight:800;font-size:1.2rem;margin-right:auto;letter-spacing:-.055em}.brand span{display:block;color:var(--blue);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;margin-top:5px}.navlinks{display:flex;gap:28px;align-items:center}.navlinks a[aria-current=page]{color:var(--blue)}.cart-count{background:#e9f0ff;color:var(--blue);padding:2px 7px;border-radius:4px}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:var(--blue);font-size:.8rem;font-weight:800}.hero{padding:76px 0 64px;background:linear-gradient(115deg,#f1f6ff 0%,#fff 70%)}.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:68px;align-items:center}.hero p{max-width:580px;color:var(--muted);font-size:1.125rem}.hero h1 em{font-style:normal;color:var(--blue)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0}.hero-panel{background:var(--navy);color:#fff;padding:32px;border-radius:var(--radius);box-shadow:16px 16px 0 #dce9ff}.hero-panel .eyebrow{color:#a8c8ff}.hero-panel h2{font-size:2rem;margin-top:18px}.service-row{display:flex;align-items:center;padding:18px 0;border-top:1px solid #ffffff26;gap:16px}.service-row strong{display:block}.service-row small{color:#c2d3e7;font-size:.875rem}.num{font-size:.875rem;color:#9fbde6;align-self:flex-start;margin-top:3px}.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.strip .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding-top:23px;padding-bottom:23px;font-size:.9rem}.strip strong{display:block}.muted{color:var(--muted)}section.section{padding:66px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.section-head p{margin:0;color:var(--muted)}.text-link{color:var(--blue);font-weight:700;text-decoration:underline;text-underline-offset:5px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.service-card{border:1px solid var(--line);padding:30px;border-radius:var(--radius);background:#fff}.service-card .num{color:var(--blue);font-weight:700}.service-card p{color:var(--muted)}.service-card h3{font-size:1.4rem}.tint{background:#f5f8fc}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.steps b{color:var(--blue);font-size:1.5rem}.steps p{color:var(--muted)}.contact-band{background:var(--navy);color:white;padding:42px;border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:24px}.contact-band p{color:#c8d7e9;margin:0}.contact-band h2{font-size:2rem}.footer{border-top:1px solid var(--line);padding:36px 0;color:var(--muted);font-size:.875rem}.footer .wrap{display:flex;justify-content:space-between;gap:20px}.footer nav{display:flex;gap:20px}.page-head{padding:48px 0 26px}.page-head h1{font-size:3rem;margin:12px 0 16px}.breadcrumbs{font-size:.875rem;color:var(--muted);margin-bottom:26px}.toolbar{display:flex;gap:14px;margin:24px 0;flex-wrap:wrap}.toolbar input{flex:1;min-width:200px}input,select,textarea{padding:12px;border:1px solid #c6d2e0;border-radius:6px;width:100%;background:#fff;color:var(--ink)}select{width:auto}textarea{min-height:130px;resize:vertical}label{display:block;font-size:.9rem;font-weight:700;margin:16px 0 6px}.toolbar select{max-width:220px}.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.product{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:white}.product-image{height:185px;background:#f1f5fa;display:flex;align-items:center;justify-content:center;position:relative}.product-image img{height:100%;width:100%;object-fit:contain;padding:20px}.placeholder{text-align:center;color:#526882}.placeholder b{display:block;font-family:Manrope,sans-serif;font-size:1.6rem;letter-spacing:-.06em}.placeholder small{font-size:.8rem}.product-body{padding:22px}.product h3{margin:8px 0 13px}.product .category{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.price{font-size:1.4rem;font-weight:800}.price small{font-size:.8rem;color:var(--muted);font-weight:500}.product-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:18px}.badge{font-size:.8rem;background:#eaf5ef;color:var(--green);padding:4px 8px;border-radius:4px;display:inline-block}.badge.neutral{background:#edf1f7;color:#526277}.badge.warn{background:#fff0d4;color:#87540a}.empty{border:1px dashed #b9c9dc;border-radius:10px;padding:42px;text-align:center;grid-column:1/-1}.detail{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:24px 0 60px}.detail .product-image{height:420px;border-radius:12px}.detail h1{font-size:2.7rem}.detail p{white-space:pre-line}.detail ul{padding-left:20px}.detail li{margin:9px 0}.service-detail{max-width:800px;margin:auto;padding:50px 32px 70px}.service-detail h1{font-size:3.3rem}.checklist{list-style:none;padding:0}.checklist li{padding:14px 0;border-bottom:1px solid var(--line)}.checklist li:before{content:'✓';color:var(--blue);margin-right:12px}.notice{padding:16px 20px;background:var(--pale);border-left:3px solid var(--blue);margin:22px 0}.admin-shell{display:grid;grid-template-columns:215px 1fr;min-height:70vh}.sidebar{background:var(--navy);color:white;padding:28px 20px}.sidebar strong{display:block;margin-bottom:28px}.sidebar a{display:block;padding:12px;border-radius:5px;color:#d5e3f6}.sidebar a.active{background:#ffffff18;color:#fff}.admin-main{padding:35px;min-width:0}.admin-main h1{font-size:2rem;margin:0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0}.metric{padding:20px;border:1px solid var(--line);border-radius:8px}.metric strong{font-size:1.75rem;display:block}.metric span{font-size:.875rem;color:var(--muted)}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:.8rem;color:var(--muted);background:#f3f6fa}td,th{padding:16px 12px;border-bottom:1px solid var(--line)}td:first-child{font-weight:600}.editor{display:grid;grid-template-columns:1.5fr 1fr;gap:28px}.panel{border:1px solid var(--line);padding:24px;border-radius:10px;background:#fff}.panel h2{font-size:1.3rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.editor select{width:100%}.photo-list{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.photo{border:1px solid var(--line);padding:8px;width:110px}.photo img{width:100%;height:75px;object-fit:contain}.photo button{padding:4px 8px;margin:2px}.login{max-width:480px;margin:60px auto;padding:30px}.login h1{font-size:2rem}.message{margin:16px 0;color:#9f2635}.success{color:var(--green)}dialog{border:0;border-radius:12px;max-width:600px;width:calc(100% - 32px);padding:30px;color:var(--ink);max-height:90vh;overflow:auto}dialog::backdrop{background:#0e233cb3}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.dialog-head h2{font-size:1.6rem;margin:0}.cart-item{padding:18px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}.cart-item input{width:65px;padding:5px}.cart-item small{display:block}.cart-total{margin:22px 0;display:flex;justify-content:space-between;font-weight:700}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;padding:12px 24px;box-shadow:0 8px 25px #102c5033;border-radius:8px;z-index:5}.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;background:#fff;padding:10px;z-index:10}.hidden{display:none!important}details{padding:20px 0;border-bottom:1px solid var(--line)}summary{cursor:pointer;font-weight:700}details p{margin:14px 0 0}.result-count{font-size:.875rem;color:var(--muted);margin-bottom:20px}.full{width:100%}.page-bottom{padding-bottom:60px}.gallery-thumbs{display:flex;gap:10px;margin-top:12px}.gallery-thumbs button{background:#f1f5fa;padding:4px}.gallery-thumbs img{width:60px;height:60px;object-fit:contain}
@media(max-width:850px){.hero-grid{grid-template-columns:1fr;gap:35px}.hero{padding:42px 0}.hero-panel{box-shadow:none}.grid,.products{grid-template-columns:repeat(2,minmax(0,1fr))}.nav .wrap{gap:20px;flex-wrap:wrap;padding-top:20px;padding-bottom:20px}.navlinks{order:3;width:100%;justify-content:center}.hero h1{max-width:650px}.admin-shell{grid-template-columns:1fr}.sidebar{display:flex;align-items:center;gap:10px;padding:12px 20px;flex-wrap:wrap}.sidebar strong{margin:0 auto 0 0}.sidebar a{display:inline-block}.editor{grid-template-columns:1fr}.detail{gap:25px}.detail .product-image{height:320px}}
@media(max-width:550px){.wrap{padding-left:20px;padding-right:20px}.topbar .wrap span:last-child{display:none}.nav .wrap{gap:12px}.brand{font-size:1rem}.nav .button{padding:9px 10px;font-size:.8rem}.navlinks{font-size:.9rem;gap:25px}.hero h1{font-size:2.7rem}.hero-panel{padding:24px}.strip .wrap{grid-template-columns:1fr;gap:12px}.strip strong{display:inline;margin-right:8px}.grid,.products,.steps,.detail{grid-template-columns:1fr}.section-head{align-items:start;flex-direction:column}section.section{padding:42px 0}.product-image{height:200px}.contact-band{padding:28px;display:block}.contact-band .button{margin-top:20px}.footer .wrap{flex-direction:column}.admin-main{padding:24px 16px}.metrics{gap:8px}.metric{padding:12px}.metric span{font-size:.8rem}.form-row{grid-template-columns:1fr}.page-head h1,.service-detail h1{font-size:2.5rem}.service-detail{padding:35px 20px}.detail h1{font-size:2.2rem}.login{margin:30px 16px}.toolbar select{max-width:none;width:100%}.detail .product-image{height:280px}}

.space-top{margin-top:20px}.space-top-large{margin-top:40px}
/* Editorial storefront: sharp composition, restrained colour, real products. */
:root{--ink:#17202a;--muted:#58616b;--blue:#204dd9;--navy:#16202b;--line:#d9dde2;--pale:#edf1f7;--radius:2px}
body{background:#fdfdfc;font-family:'DM Sans',sans-serif}h1,h2,h3,.brand{font-family:'Manrope',sans-serif}.wrap{max-width:1280px;padding-left:48px;padding-right:48px}.topbar{background:#18212c;padding:8px 0}.preview-bar{background:#eaeef4;color:#475364;font-size:.75rem;padding:5px}.nav{background:#fdfdfc}.nav .wrap{min-height:94px}.brand{font-size:1.35rem;letter-spacing:-.065em}.brand span{font-size:.75rem;letter-spacing:.16em}.navlinks{font-size:.9rem;gap:30px}.button,button{border-radius:2px;padding:14px 22px;font-size:.9rem}.small{padding:9px 12px;font-size:.8rem}.eyebrow{letter-spacing:.13em;font-size:.75rem}.text-link{font-size:.9rem;text-decoration-thickness:1px;text-underline-offset:6px}.editorial-hero{background:#eaf0f8;padding:25px 0 20px}.hero-meta{display:flex;justify-content:space-between;font-size:.75rem;font-weight:700;letter-spacing:.11em;padding-bottom:28px;border-bottom:1px solid #c7d0de}.editorial-hero .hero-grid{grid-template-columns:1.02fr 1fr;gap:65px;padding:42px 0}.hero-copy h1{font-size:clamp(3.7rem,6.3vw,6.1rem);font-weight:700;letter-spacing:-.075em;line-height:1.02;margin:0 0 24px}.hero-copy h1 em{font-style:normal;color:var(--blue)}.hero-copy p{font-size:1.05rem;line-height:1.7;color:#495667}.hero-copy .actions{align-items:center;gap:25px;margin-top:30px}.hero-feature{min-width:0;align-self:stretch;background:#fff;position:relative;border:1px solid #d9e0e9}.feature-link{display:flex;flex-direction:column;height:100%}.feature-top{padding:20px 24px;display:flex;justify-content:space-between;gap:20px;font-size:.75rem;font-weight:700;letter-spacing:.12em;color:#586371}.hero-feature .product-image{height:300px;flex:1;background:white;min-height:270px}.hero-feature .product-image img{padding:24px 45px;max-height:340px;mix-blend-mode:multiply;transition:transform .35s}.feature-link:hover img{transform:scale(1.035)}.feature-caption{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:22px 24px;border-top:1px solid var(--line)}.feature-caption span{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.feature-caption h2{font-size:1.35rem;letter-spacing:-.04em;margin:5px 0 0}.feature-caption strong{white-space:nowrap;font-size:1rem}.hero-bottom{display:flex;justify-content:space-between;border-top:1px solid #c7d0de;padding-top:18px;font-size:.75rem;color:#526073}.section-head h2{font-size:2.9rem;line-height:1.08;font-weight:600;letter-spacing:-.055em;margin-top:14px}.section-head p{font-size:.95rem}.section-head>div:last-child .text-link{display:inline-block;margin-top:16px}.section-head{margin-bottom:36px}.section{padding:84px 0!important}.products{gap:30px}.product{border:0;border-radius:0;background:transparent}.product-image{background:#f0f2f4;height:250px;border-radius:1px}.product-image img{mix-blend-mode:multiply;padding:30px;transition:transform .25s}.product>a:hover .product-image img{transform:scale(1.045)}.product-body{padding:20px 0 0}.product h3{font-size:1.15rem;margin:9px 0 12px;letter-spacing:-.035em}.product .category{font-size:.75rem;font-weight:600;letter-spacing:.12em}.product .price{font-size:1.1rem;font-weight:700}.product-bottom{padding:0 0 22px;margin:16px 0 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.product-bottom button{background:transparent;color:var(--blue);padding:6px 0;border:0;border-bottom:1px solid var(--blue);border-radius:0;font-size:.8rem}.badge{border-radius:2px;font-size:.75rem;background:transparent;padding:0}.badge.neutral{background:transparent}.badge.warn{padding:3px 6px}.support-section{background:#18232f;color:#fff;padding:72px 0}.support-layout{display:grid;grid-template-columns:1fr 1.12fr;gap:100px}.support-intro .eyebrow{color:#a7bbeb}.support-intro h2{font-size:3.3rem;font-weight:500;letter-spacing:-.055em;margin:22px 0}.support-intro p{max-width:360px;color:#bec8d4;font-size:.95rem}.support-intro .button{background:#e9eff8;border:0;color:#17202a;margin-top:10px}.service-ledger{border-top:1px solid #ffffff35}.ledger-row{display:flex;gap:27px;padding:32px 0;border-bottom:1px solid #ffffff35}.ledger-number{font-size:.75rem;color:#9baabb;padding-top:6px}.ledger-row h3{font-size:1.5rem;font-weight:500;letter-spacing:-.035em;margin:0 0 10px}.ledger-row p{color:#c0cbd9;font-size:.9rem;margin:0 0 16px}.ledger-link{font-size:.8rem;color:#c6d6ff;text-decoration:underline;text-underline-offset:5px}.ledger-row:hover h3{color:#abc4ff}.steps{gap:50px}.steps>div{border-top:1px solid #aeb8c5;padding-top:18px}.steps b{font-size:.8rem;font-weight:500;color:var(--muted)}.steps h3{font-size:1.2rem;font-weight:600}.steps p{font-size:.9rem}.contact-band{background:#e9eef7;border-radius:0;color:var(--ink);padding:40px}.contact-band p{color:var(--muted)}.contact-band h2{font-size:2rem;font-weight:600;letter-spacing:-.04em}.footer{background:#18232f;border:0;color:#bdc6d2;padding:42px 0}.footer strong{color:#fff}.service-card{border-radius:0;border:0;border-top:1px solid #afbaca;padding:28px 0}.service-card h3{font-weight:600}.service-card .num{font-size:.75rem}.page-head h1{letter-spacing:-.06em;font-weight:600}.page-head{padding-top:48px}.toolbar input,.toolbar select{border-radius:2px}.detail .product-image{border-radius:0}.detail h1{font-weight:600;letter-spacing:-.05em}.admin-main .badge{padding:4px 8px}.admin-main .panel,.metric{border-radius:3px}.admin-main .notice{font-size:.875rem}.service-detail h1{font-weight:600;letter-spacing:-.06em}.service-detail h2{font-size:1.75rem;font-weight:500;letter-spacing:-.03em}.hero-support{padding:35px}.hero-support h2{margin:25px 0;font-size:2.7rem}.placeholder{color:#52616e}.placeholder b{font-weight:500}.how-section{padding-bottom:0!important}
@media(max-width:950px){.wrap{padding-left:28px;padding-right:28px}.editorial-hero .hero-grid{gap:30px}.hero-copy h1{font-size:4.2rem}.hero-feature .product-image{min-height:230px}.support-layout{gap:45px}.support-intro h2{font-size:2.7rem}.hero-copy .actions{gap:18px}.feature-caption{align-items:start;flex-direction:column;gap:12px}.products{gap:22px}}
@media(max-width:700px){.navlinks{gap:24px}.editorial-hero .hero-grid{grid-template-columns:1fr;gap:35px;padding-top:32px}.hero-copy h1{font-size:4.5rem}.hero-meta span:last-child{display:none}.hero-feature .product-image{height:260px;min-height:260px}.feature-caption{flex-direction:row;align-items:end}.hero-bottom{gap:20px}.hero-bottom span:last-child{text-align:right}.support-layout{grid-template-columns:1fr;gap:35px}.support-intro h2{font-size:3rem}.support-intro p{max-width:460px}.support-intro h2 br:last-of-type{display:none}.section-head h2{font-size:2.4rem}.section{padding:55px 0!important}.how-section{padding-bottom:0!important}.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.product-image{height:180px}.product-image img{padding:16px}.product-bottom{align-items:start;flex-direction:column;gap:14px}.product h3{font-size:1rem}.product .price{font-size:1rem}.collection-section .product:last-child{display:none}.contact-band{padding:28px}.footer nav{flex-wrap:wrap}.detail .product-image{height:330px}}
@media(max-width:420px){.wrap{padding-left:20px;padding-right:20px}.hero-copy h1{font-size:3.8rem}.brand{font-size:1.2rem}.feature-caption strong{font-size:.9rem}.feature-caption h2{font-size:1.1rem}.feature-top{padding:18px;font-size:.75rem}.hero-copy .actions{align-items:start;flex-direction:column}.hero-copy .actions .text-link{margin-top:5px}.hero-bottom{font-size:.75rem}.product-image{height:160px}.products{gap:14px}.section-head h2{font-size:2.2rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Installation stays a deliberate, quiet action in both apps. */
.install-app{max-width:34rem}.install-help{font-size:.85rem;line-height:1.5;margin:.45rem 0 0}.install-help:empty{display:none}.admin-header .install-app{max-width:22rem}.admin-header .install-help{font-size:.75rem}

/* Device appearance, shared by the two independently deployed applications. */
:root{color-scheme:dark;--ink:#edf3f8;--muted:#a4b4c4;--blue:#83bdff;--navy:#111e2c;--line:#2d4154;--pale:#162b40;--surface:#101e2c;--canvas:#09131e;--field:#132333;--glass:#0c1825dc;--hero:#102233;--green:#82dfbc;--button:#a8d8ff;--button-ink:#092033;--glow:#188ec522;--glow-2:#1cc7a918;--danger:#ffabb4;--danger-bg:#3e202c;--photo:#edf1f4;--shadow:0 22px 60px #0004}
@media(prefers-color-scheme:light){:root:not([data-theme]){color-scheme:light;--ink:#162a3b;--muted:#4f6578;--blue:#185daf;--navy:#102c42;--line:#c8d7e2;--pale:#e5eff8;--surface:#fff;--canvas:#f5f9fc;--field:#fff;--glass:#f8fbffdf;--hero:#e8f2f8;--green:#176849;--button:#155bb0;--button-ink:#fff;--glow:#26a4dd20;--glow-2:#36bfa51c;--danger:#9b263d;--danger-bg:#fff0f3;--shadow:0 22px 60px #1c466a13}}
:root[data-theme="light"]{color-scheme:light;--ink:#162a3b;--muted:#4f6578;--blue:#185daf;--navy:#102c42;--line:#c8d7e2;--pale:#e5eff8;--surface:#fff;--canvas:#f5f9fc;--field:#fff;--glass:#f8fbffdf;--hero:#e8f2f8;--green:#176849;--button:#155bb0;--button-ink:#fff;--glow:#26a4dd20;--glow-2:#36bfa51c;--danger:#9b263d;--danger-bg:#fff0f3;--shadow:0 22px 60px #1c466a13}
html{scroll-behavior:smooth;scroll-padding-top:130px}body{background:var(--canvas);color:var(--ink);overflow-wrap:break-word;background-image:radial-gradient(ellipse at 0 50%,var(--glow),transparent 55%)}
button,.button{background:var(--button);color:var(--button-ink);border-radius:8px;transition:transform .22s ease,box-shadow .22s ease,background .22s ease;min-height:44px}button:hover,.button:hover{filter:none;transform:translateY(-2px);box-shadow:0 8px 25px var(--glow)}button:disabled{transform:none;box-shadow:none}.secondary,.quiet{background:var(--surface);color:var(--ink);border-color:var(--line)}.danger{color:var(--danger);background:var(--danger-bg)}.message{color:var(--danger)}.preview-bar{background:var(--pale);color:var(--muted)}
.nav{position:sticky;top:0;z-index:4;background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-color:var(--line)}.navlinks a{position:relative;padding:10px 0;transition:color .2s}.navlinks a:after{content:'';position:absolute;bottom:1px;left:0;right:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s}.navlinks a:hover:after,.navlinks a[aria-current=page]:after{transform:scaleX(1)}.cart-count{background:var(--pale);color:var(--blue)}
.editorial-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--hero)}.editorial-hero:before{content:'';position:absolute;z-index:-1;inset:-25%;background:radial-gradient(ellipse at 65% 30%,var(--glow),transparent 45%),radial-gradient(ellipse at 15% 80%,var(--glow-2),transparent 50%);animation:ambient-drift 4s ease-out both;pointer-events:none}.editorial-hero:after{content:'';position:absolute;z-index:-1;inset:0;pointer-events:none;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:85px 85px;opacity:.17;mask-image:linear-gradient(90deg,transparent 30%,black)}
.hero-meta,.hero-bottom{border-color:var(--line);color:var(--muted)}.hero-copy p{color:var(--muted)}.hero-copy h1 em{color:var(--blue)}.hero-feature{background:var(--surface);border-color:var(--line);border-radius:16px;overflow:hidden;box-shadow:none;transform:none}.feature-top{color:var(--muted)}.feature-caption{background:var(--surface)}.hero-feature .product-image{background:var(--photo)}.product-image{background:var(--photo);border-radius:14px;overflow:hidden}.product-image img{mix-blend-mode:multiply}.placeholder{color:#4c6173}.feature-top span:last-child{font-size:.65rem}.product{transition:transform .25s}.product:hover{transform:translateY(-4px)}.product-bottom{border-color:var(--line)}.product-bottom button{color:var(--blue);min-height:44px}.badge.neutral{color:var(--muted);background:transparent}.badge.warn{color:#f4d68c;background:#40351c}.badge{color:var(--green)}
.contact-band{position:relative;overflow:hidden;background:linear-gradient(115deg,var(--pale),var(--surface));border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.contact-band:before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--blue),#4fc5b1,transparent)}.service-card{background:transparent;border-color:var(--line);transition:transform .2s}.service-card:hover{transform:translateY(-3px)}.support-section{background:linear-gradient(120deg,#132739,#10202f 65%,#132d36);position:relative}.support-intro .button{background:#d5e9ff;color:#102238}.steps>div{border-color:var(--line)}.footer{background:#0d1c29;color:#b9cbd9}.tint{background:var(--pale)}
input,textarea,select{background:var(--field);color:var(--ink);border-color:var(--line);border-radius:8px;min-height:44px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}dialog,.panel{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow)}dialog::backdrop{background:#030e19c4;backdrop-filter:blur(5px)}dialog[open]{animation:dialog-in .2s ease-out}.panel,.metric{border-radius:12px}.metric{background:var(--surface)}th{background:var(--pale)}.table-wrap{border:1px solid var(--line);border-radius:12px}.table-wrap td{white-space:normal;min-width:130px}.table-wrap td:first-child{min-width:230px}.table-wrap tbody tr:hover{background:var(--pale)}.photo{border-radius:10px;background:var(--surface)}.gallery-thumbs button{background:var(--photo)}.skip:focus{background:var(--surface);color:var(--ink)}.toast{background:var(--ink);color:var(--canvas);max-width:calc(100% - 32px);text-align:center}.admin-header{border-bottom:1px solid var(--line);background:var(--glass)}.admin-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:90px}.admin-label{font-size:.8rem;color:var(--muted)}.admin-shell{max-width:1600px;margin:auto;min-height:calc(100vh - 91px)}.sidebar{background:var(--surface);color:var(--ink);border-right:1px solid var(--line)}.sidebar a{color:var(--muted)}.sidebar a.active{background:var(--pale);color:var(--blue)}.login{box-shadow:var(--shadow);position:relative;margin-top:70px}.login:before{content:'';position:absolute;left:28px;right:28px;top:-1px;height:2px;background:linear-gradient(90deg,var(--blue),#48c3ac,transparent)}.login h1{font-weight:600}.empty{border-color:var(--line);background:var(--surface)}
@keyframes ambient-drift{to{transform:translate3d(5%,3%,0) scale(1.1)}}@keyframes dialog-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){.hero-feature{transform:none}.nav .wrap{padding-top:14px;padding-bottom:12px}.nav .wrap{min-height:80px}.navlinks{gap:20px}.hero-feature .product-image{min-height:230px}.admin-label{display:none}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.table-wrap{max-width:100%}.login{margin:40px 18px}.contact-band{border-radius:14px}.hero-copy h1{font-size:clamp(3.4rem,11vw,4.5rem)}}
@media(max-width:380px){.navlinks{gap:16px;font-size:.8rem}.nav .wrap{gap:8px}.nav .brand{font-size:1.05rem}.brand span{font-size:.65rem}.nav .button{font-size:.7rem;padding:9px 8px}.products{grid-template-columns:1fr}.collection-section .product:last-child{display:block}.product-image{height:240px}.feature-top{letter-spacing:.07em;padding:16px}.hero-copy h1{font-size:3.35rem}}
/* Storefront refinements stay separate from the staff editor. */
.nav .wrap{min-height:80px}
.navlinks a{display:inline-flex;align-items:center;min-height:44px}
#main .editorial-hero{padding-top:20px}
#main .hero-meta{padding-bottom:18px;letter-spacing:.08em}
#main .editorial-hero .hero-grid{gap:56px;padding:32px 0}
#main .hero-copy h1{font-size:clamp(3rem,5.4vw,4.75rem);letter-spacing:-.06em;line-height:1.08}
#main .hero-copy p{max-width:34ch}
#main .hero-copy .actions{gap:20px;margin-bottom:0}
#main .text-link{display:inline-flex;align-items:center;min-height:44px}
#main .feature-top{padding:16px 22px;letter-spacing:.08em}
#main .hero-feature .product-image{border-radius:0;min-height:220px;height:250px}
#main .hero-feature .product-image img{max-height:280px;padding:20px 36px}
#main .feature-caption{padding:20px 22px}
#main .hero-bottom{font-size:.8125rem;padding-top:16px}
#main .hero-support{height:100%;padding:32px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
#main .hero-support h2{font-size:clamp(2rem,3.2vw,2.8rem)}
#main .hero-support p{color:var(--muted);max-width:34ch}
#main .section-head h2{font-size:clamp(2rem,3.4vw,2.65rem)}
#main .products{gap:24px;align-items:stretch}
#main .product{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
#main .product>a{flex:1}
#main .product .product-image{border-radius:0;height:240px}
#main .product-body{padding:20px 20px 0}
#main .product h3{line-height:1.4;letter-spacing:-.025em}
#main .product .price{font-size:1.2rem;font-variant-numeric:tabular-nums}
#main .product-bottom{margin:18px 20px 0;padding:16px 0;border-bottom:0;border-top:1px solid var(--line);flex-wrap:wrap}
#main .product-bottom button{padding:10px 12px;background:var(--pale);border:0;border-radius:6px}
#main .collection-section .product:last-child{display:flex}
#main .toolbar{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;gap:12px}
#main .toolbar input,#main .toolbar select{border-radius:6px}
#main .page-head h1{font-size:clamp(2.25rem,4.3vw,3.5rem);line-height:1.12}
#main .grid:has(.service-card){display:block}
#main .service-card{display:grid;grid-template-columns:180px 1fr 1.2fr auto;align-items:center;gap:24px;padding:28px 0}
#main .service-card h3,#main .service-card p{margin:0}
#main .service-card .num{align-self:center;margin:0;color:var(--muted)}
#main .service-card:hover{transform:none}
#main .contact-band{background:var(--pale);box-shadow:none;border-radius:12px}
#main .contact-band:before{display:none}
#main .contact-band .button{flex-shrink:0}
#main .notice{border:1px solid var(--line);border-radius:8px}
#main summary{min-height:44px;padding:8px 0}
#main .catalogue-empty{grid-column:1/-1;padding:28px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
#main .catalogue-empty h3{margin-top:0}
#main .catalogue-empty p{color:var(--muted);margin-bottom:8px}
#main .catalogue-category-rows{display:block}
#main .catalogue-category-rows>[data-product-collection]{padding:28px 0 32px;border-top:1px solid var(--line);min-width:0}
#main .catalogue-category-rows>[data-product-collection]:first-child{border-top:0;padding-top:8px}
#main .catalogue-category-rows .collection-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
#main .catalogue-category-rows .collection-heading h3{font-size:clamp(1.45rem,2.8vw,2rem);font-weight:500;margin:4px 0 0;letter-spacing:-.04em}
#main .catalogue-category-rows .collection-controls{display:flex;gap:8px;flex-shrink:0}
#main .catalogue-category-rows .collection-controls button{min-width:44px;min-height:44px;border-radius:6px}
#main .catalogue-category-rows .collection-viewport{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding:4px 0 16px;outline-offset:4px;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
#main .catalogue-category-rows .collection-track{display:flex;width:max-content;position:relative;gap:20px}
#main .catalogue-category-rows .product{width:288px;flex:0 0 288px}
#main .catalogue-category-rows .product .product-image{height:230px}
#main .catalogue-category-rows .catalogue-empty{display:flex;align-items:center;justify-content:space-between;gap:24px}
@media(max-width:700px){
 #main .catalogue-category-rows>[data-product-collection]{padding:22px 0 26px}
 #main .catalogue-category-rows .collection-heading{align-items:start;gap:14px;flex-wrap:wrap;margin-bottom:12px}
 #main .catalogue-category-rows .collection-controls{margin-left:auto}
 #main .catalogue-category-rows .collection-track{gap:14px}
 #main .catalogue-category-rows .product{width:min(78vw,268px);flex-basis:min(78vw,268px)}
 #main .catalogue-category-rows .product .product-image{height:210px}
 #main .catalogue-category-rows .catalogue-empty{display:block}
}
@media(max-width:950px){
 #main .editorial-hero .hero-grid{gap:28px}
 #main .service-card{grid-template-columns:1fr 2fr;gap:12px 24px}
 #main .service-card .num{grid-column:1/-1}
 #main .service-card .text-link{grid-column:2;justify-self:start}
}
@media(max-width:700px){
 .nav .wrap{padding-top:12px;padding-bottom:8px;gap:8px}
 .navlinks{justify-content:space-between;gap:12px}
 #main .editorial-hero .hero-grid{padding:28px 0;gap:28px}
 #main .hero-copy h1{font-size:clamp(3rem,9vw,4rem)}
 #main .hero-copy .actions{flex-direction:row;align-items:center;gap:10px 18px;margin-top:22px}
 #main .hero-copy .actions .text-link{margin:0}
 #main .hero-meta{font-size:.7rem}
 #main .hero-feature .product-image{height:230px;min-height:230px}
 #main .hero-bottom{flex-wrap:wrap;gap:4px 16px}
 #main .hero-bottom span:last-child{text-align:left}
 #main .products{gap:16px}
 #main .product .product-image{height:190px}
 #main .product-body{padding:16px 16px 0}
 #main .product-bottom{margin-left:16px;margin-right:16px;gap:8px}
 #main .product-bottom button{width:100%}
 #main .support-intro h2{font-size:2.5rem}
 #main .toolbar{padding:14px}
 #main .hero-support{padding:24px}
}
@media(max-width:550px){
 #main .products{grid-template-columns:1fr}
 #main .product .product-image{height:250px}
 #main .product-bottom{flex-direction:row;align-items:center}
 #main .product-bottom button{width:auto}
 #main .service-card{grid-template-columns:1fr;gap:12px}
 #main .service-card .text-link{grid-column:auto}
 #main .feature-caption{align-items:start;flex-direction:column;gap:10px}
 #main .toolbar input{min-width:0}
 #main .detail h1{font-size:2.2rem}
 #main .contact-band{padding:24px}
}
/* Premium storefront: technical labels, open product rails, original blue/teal brand. */
#main{isolation:isolate}
#main .eyebrow,#main .hero-meta,#main .feature-top,#main .category,#main .ledger-number,#main .steps b{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:500;letter-spacing:.12em}
#main .editorial-hero{padding-top:24px;background:var(--canvas);border-bottom:1px solid var(--line)}
#main .editorial-hero:before{inset:-15%;background:radial-gradient(ellipse at 75% 20%,#188ec52e,transparent 50%),radial-gradient(ellipse at 30% 90%,#1cc7a91e,transparent 45%)}
#main .editorial-hero:after{background-size:56px 56px;opacity:.22;mask-image:linear-gradient(90deg,transparent,black)}
#main .editorial-hero .hero-grid{grid-template-columns:1.12fr 1fr;gap:64px;padding:56px 0 60px}
#main .hero-copy h1{font-size:clamp(2.8rem,4.6vw,4.5rem);font-weight:600;line-height:1.08;letter-spacing:-.065em;margin-top:22px;max-width:13ch}
#main .hero-copy h1 em{color:var(--blue)}
#main .hero-copy p{max-width:42ch;font-size:1.02rem}
#main .hero-copy .button{gap:24px}
#main .hero-stage{align-self:center}
#main .hero-stage .hero-feature{border-radius:8px}
#main .hero-stage .product-image{min-height:300px;height:320px}
#main .hero-stage .product-image img{max-height:340px}
#main .hero-support{min-height:360px;background:var(--surface)}
#main .hero-bottom{padding:20px 0 0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem}
#main .circuit-field{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
#main .circuit-field i{position:absolute;right:9%;top:8%;width:35%;height:75%;border:1px solid var(--blue);border-left:0;border-bottom:0;opacity:.2;transform:skewY(-18deg)}
#main .circuit-field i:nth-child(2){right:14%;top:17%;width:27%;border-color:var(--green)}
#main .circuit-field i:nth-child(3){right:4%;top:28%;width:22%}
#main .circuit-field i:after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:var(--blue);top:-3px;left:0;box-shadow:0 0 16px var(--blue)}
#main .collection-section{background:var(--canvas)}
#main .collection{padding:30px 0 36px;border-top:1px solid var(--line);min-width:0}
#main .collection:last-child{padding-bottom:0}
#main .collection-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
#main .collection-heading .eyebrow{font-size:.65rem;color:var(--muted)}
#main .collection-heading h3{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:500;margin:4px 0 0;letter-spacing:-.04em}
#main .collection-controls{display:flex;gap:8px;flex-shrink:0}
#main .collection-controls button{min-width:44px;min-height:44px;border-radius:4px}
#main .collection-controls [data-collection-toggle]{min-width:98px;font-size:.75rem}
#main .collection-viewport{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding:4px 0 16px;outline-offset:4px}
#main .collection-track{display:flex;width:max-content;position:relative}
#main .collection-group{display:flex;gap:24px;padding-right:24px;flex-shrink:0}
#main .collection .product{width:288px;flex:0 0 288px;border-radius:6px;animation:none;translate:none;opacity:1}
#main .collection .product .product-image{height:240px}
#main .collection .product-body{padding:20px 20px 0}
#main .collection .product-bottom{margin-left:20px;margin-right:20px}
#main .collection .product h3{font-size:1.05rem}
#main .collection .catalogue-empty{display:flex;align-items:center;justify-content:space-between;gap:24px;border:0;border-radius:0;background:var(--surface);padding:24px}
#main .collection .catalogue-empty p{margin:0}
#main .collection .catalogue-empty a{flex-shrink:0}
#main .collection[data-manual=true] .collection-track{animation:none!important;transform:none}
#main .collection[data-manual=true] .product[aria-hidden],#main .collection[data-manual=true] .collection-group[aria-hidden],html[data-motion=paused] #main .collection .product[aria-hidden],html[data-motion=paused] #main .collection-group[aria-hidden]{display:none}
.storefront-app>.site-notice{background:var(--pale);color:var(--ink);border-bottom:1px solid var(--line);padding:10px 0;font-size:.875rem}
.storefront-app>.site-notice .wrap{display:block;white-space:pre-line;overflow-wrap:anywhere}
#main .opening-hours{margin:20px 0}
.opening-hours div{display:flex;justify-content:space-between;gap:28px;padding:8px 0;border-bottom:1px solid var(--line)}
.opening-hours dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.footer .opening-hours{margin:8px 0 0;font-size:.8rem}
.footer-hours{min-width:240px}
#main .support-section{background:#0b1c2a;border-top:1px solid #274453;border-bottom:1px solid #274453}
#main .support-intro h2{font-weight:500;font-size:clamp(2.4rem,4vw,3.5rem)}
#main .ledger-row{padding:28px 0}
#main .contact-band{padding:40px;border-radius:6px;background:var(--surface);color:var(--ink)}
@keyframes collection-loop{to{transform:translateX(-50%)}}
@keyframes circuit-signal{from{left:0}to{left:100%}}
@media(prefers-reduced-motion:no-preference){
 html[data-motion=running] #main .collection-track{animation:collection-loop 48s linear infinite}
 html[data-motion=running] #main .collection:hover .collection-track,html[data-motion=running] #main .collection:focus-within .collection-track,html[data-motion=running] #main .collection[data-paused=true] .collection-track{animation-play-state:paused}
 html[data-motion=running] #main .circuit-field i:after{animation:circuit-signal 8s linear infinite}
 html[data-motion=running] #main .circuit-field i:nth-child(2):after{animation-delay:-3s}
 html[data-motion=running] #main .circuit-field i:nth-child(3):after{animation-delay:-5s}
}
@media(prefers-reduced-motion:reduce){#main .collection .product[aria-hidden],#main .collection-group[aria-hidden]{display:none}}
@media(max-width:950px){#main .editorial-hero .hero-grid{gap:36px}#main .hero-stage .product-image{min-height:260px;height:280px}.footer .wrap{flex-wrap:wrap}}
@media(max-width:700px){
 #main .editorial-hero .hero-grid{grid-template-columns:1fr;padding:36px 0;gap:32px}
 #main .hero-copy h1{font-size:clamp(2.8rem,8.8vw,3.9rem);max-width:16ch}
 #main .hero-stage{margin:0 8px}
 #main .hero-stage .product-image{height:270px}
 #main .collection-heading{align-items:start;gap:14px;flex-wrap:wrap}
 #main .collection .product{width:268px;flex-basis:268px}
 #main .collection .catalogue-empty{display:block}
 #main .collection .catalogue-empty a{margin-top:12px}
 #main .collection .product-bottom{flex-direction:row;align-items:center}
 #main .collection .product-bottom button{width:auto}
 #main .hero-meta{font-size:.65rem}
 #main .hero-bottom{font-size:.7rem}
 #main .contact-band{padding:28px}
 .footer .wrap{flex-direction:column}
}
/* Photo-based 3D stage: depth without inventing a product model. */
#main .hero-stage{position:relative;min-width:0;align-self:stretch;display:grid;perspective:1100px;perspective-origin:50% 45%}
#main .hero-stage .hero-feature{height:100%;overflow:visible;transform-style:preserve-3d;transform:none;box-shadow:0 20px 50px #0002}
#main .hero-stage .feature-top{background:var(--surface);border-radius:16px 16px 0 0}
#main .hero-stage .feature-caption{border-radius:0 0 16px 16px}
#main .hero-stage .product-image{border-radius:10px;box-shadow:0 12px 25px #0002}
#main .hero-stage .product-image img{padding:24px 36px}
#main .hero-stage .hero-support{border-radius:16px}
#main .hero-bottom{align-items:center;gap:12px;flex-wrap:wrap}
#main .motion-toggle{font-size:.75rem;padding:8px 12px;min-height:44px;background:var(--surface);color:var(--ink)}
/* The spotlight now changes products; no continuous orbit or image floating. */
html[data-motion=paused] #main *,html[data-motion=paused] #main *:before,html[data-motion=paused] #main *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html[data-motion=paused] #main .hero-stage .hero-feature{transform:none}
@media(max-width:700px){#main .hero-stage{margin:8px 4px}#main .hero-bottom .motion-toggle{order:3}}
/* Motion enhances browsing; no content depends on an animation finishing. */
@keyframes storefront-enter{from{opacity:.72;translate:0 16px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:no-preference){
 #main .hero-feature{animation:storefront-enter 600ms cubic-bezier(.2,.7,.2,1) 80ms backwards}
 #main .hero-copy p{animation:storefront-enter 420ms ease-out backwards}
 #main .hero-copy .actions{animation:storefront-enter 420ms ease-out 100ms backwards}
 #main .page-head,#main .detail,#main .service-detail{animation:storefront-enter 320ms ease-out}
 #main .product{transition:transform 220ms ease,border-color 220ms ease,box-shadow 220ms ease}
 #main .ledger-row{transition:background-color 180ms ease}
 #main .ledger-link{display:inline-block;transition:translate 180ms ease}
 #main .product:focus-within{border-color:var(--blue)}
 #main .feature-link:focus-visible img{transform:scale(1.035)}
 #main button:not(:disabled):active,#main .button:active{transform:scale(.98)}
 /* Progressive enhancement: unsupported browsers retain the complete static layout. */
 @supports(animation-timeline:view()){
  #main .collection-section .product,#main .support-intro,#main .ledger-row,#main .steps>div,#main .contact-band{
   animation:storefront-enter linear both;
   animation-timeline:view();
   animation-range:entry 0% entry 100%;
  }
  #main .collection-section .product:focus-within,#main .ledger-row:focus-visible,#main .contact-band:focus-within{animation:none}
 }
 @media(hover:hover) and (pointer:fine){
  #main .product:hover{border-color:var(--blue);box-shadow:0 12px 28px #00000014}
  #main .ledger-row:hover{background:#ffffff06}
  #main .ledger-row:hover .ledger-link,#main .ledger-row:focus-visible .ledger-link{translate:4px 0}
 }
}
@media(hover:none){
 #main .product:hover,#main button:hover,#main .button:hover{transform:none;box-shadow:none}
 #main .product>a:hover .product-image img,#main .feature-link:hover img{transform:none}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.product:hover,.hero-feature:hover,button:hover,.button:hover,.service-card:hover{transform:none}}

/* Appearance stays readable in both modes, including secondary surfaces. */
.theme-control{display:flex;align-items:center;gap:10px;margin:0;font-size:.8rem;color:var(--muted);font-weight:500;white-space:nowrap}
.theme-control select{min-height:44px;width:100px;padding:8px 10px;background:var(--surface);color:var(--ink);border:1px solid var(--line)}
:root[data-theme=light] .footer{background:var(--pale);color:var(--muted);border-top:1px solid var(--line)}
:root[data-theme=light] .footer strong{color:var(--ink)}
:root[data-theme=light] .support-section{background:var(--hero);color:var(--ink)}
:root[data-theme=light] .support-intro p,:root[data-theme=light] .ledger-row p{color:var(--muted)}
:root[data-theme=light] .support-intro .eyebrow,:root[data-theme=light] .ledger-link{color:var(--blue)}
:root[data-theme=light] .badge.warn{background:#fff2d3;color:#765100}
.admin-header .theme-control{margin-left:auto}
@media(max-width:650px){.admin-header .wrap{flex-wrap:wrap;gap:12px;padding-block:16px}.footer .theme-control{align-self:start}.footer .wrap{flex-wrap:wrap}}

/* Keep gallery stages bounded without cropping or stretching their artwork. */
#main .product .product-image{height:auto;min-height:0;aspect-ratio:4/3}
#main .product .product-image img{display:block;width:100%;height:100%;padding:10px;object-fit:contain}
#main .product-gallery .product-image{height:clamp(250px,32vw,430px);min-height:0}
#main .product-gallery .product-image img{width:100%;height:100%;object-fit:contain;padding:12px}
#main .hero-stage .product-image{height:clamp(240px,25vw,340px);min-height:0}
#main .hero-stage .product-image img{height:100%;max-height:none;padding:12px;object-fit:contain}
.availability-filter,.content-toggle{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:6px;font-size:.9rem;cursor:pointer}
.availability-filter input,.content-toggle input{width:20px;height:20px;flex:none;margin:0;accent-color:var(--blue)}
.content-toggle{margin:16px 0 10px}
.branding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.branding-editor{min-width:0}.branding-preview img{display:block;width:100%;max-height:200px;object-fit:contain;background:#fff;border:1px solid var(--line);margin:12px 0}
@media(max-width:700px){.branding-grid{grid-template-columns:1fr}.availability-filter{width:100%}#main .product .product-image img{padding:6px}#main .product-gallery .product-image{height:300px}.toolbar .availability-filter{flex-basis:100%}}

/* Lightweight private previews sit behind compressed product and service photos. */
#main .product-image,.section-photo{position:relative;isolation:isolate;overflow:hidden}
#main .product-image img.image-preview,#main .section-photo img.image-preview{display:block;position:absolute;z-index:0;inset:-8px;width:calc(100% + 16px);height:calc(100% + 16px);max-height:none;padding:0!important;object-fit:cover;filter:blur(1.5px) saturate(1.12);opacity:.98;transform:scale(1.04);mix-blend-mode:normal;pointer-events:none;transition:opacity .18s ease}
#main .product-image img.image-preview.image-preview-fading,#main .section-photo img.image-preview.image-preview-fading{opacity:0}
#main .product-image>img:not(.image-preview),#main .section-photo>img:not(.image-preview){position:relative;z-index:1}
#main .product-image>img.full-photo,#main .section-photo>img.full-photo{opacity:0;transition:opacity .18s ease}
#main .product-image>img.full-photo.image-ready,#main .section-photo>img.full-photo.image-ready{opacity:1}
/* A little more depth and hierarchy in the light palette while keeping photos neutral. */
:root[data-theme=light] body{background-image:radial-gradient(ellipse at 0 12%,#2c85c50c,transparent 38%),radial-gradient(ellipse at 100% 68%,#29a88c0a,transparent 34%)}
:root[data-theme=light] .product{box-shadow:0 10px 28px #173b5910;border-color:#cfdae4}
:root[data-theme=light] .product:hover{box-shadow:0 15px 36px #173b5919}
:root[data-theme=light] .product-collection{border-color:#d4e0e9}
:root[data-theme=light] .collection-heading{border-color:#d4e0e9}
:root[data-theme=light] .product-collection .collection-controls button{background:#fff;box-shadow:0 2px 8px #14375212}
:root[data-theme=light] .admin-content .content-section{box-shadow:0 7px 22px #173b5908}
:root[data-theme=light] .admin-content :is(.content-row,.service-editor,.homepage-section-editor){border-color:#d2dee8}
:root[data-theme=light] .admin-content :is(input,select,textarea,.markdown-editor){box-shadow:inset 0 1px 2px #173b5908}
:root[data-theme=light] .admin-header{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}

/* Full-page technical field. Transform-only loops; fixed layer avoids a giant page-height texture. */
/* Native focus scrolling must not move a button between pointerdown and pointerup. */
html:has(.storefront-app){scroll-behavior:auto}
.storefront-app{isolation:isolate;position:relative}
.storefront-app .technical-background{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 85% 10%,var(--glow),transparent 60%),var(--canvas)}
.storefront-app .technical-grid{position:absolute;inset:-64px;background-image:linear-gradient(color-mix(in srgb,var(--blue) 17%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--blue) 17%,transparent) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(90deg,#0009,#0003 45%,#000)}
.storefront-app .circuit-field{position:absolute;inset:0;overflow:hidden}
.storefront-app .circuit-field i{position:absolute;inset:8% 7% 12% 12%;border:1px solid color-mix(in srgb,var(--blue) 40%,transparent);border-left:0;transform:skewY(-16deg);opacity:.8}
.storefront-app .circuit-field i:nth-child(2){inset:26% 15% 8% 4%;border-color:color-mix(in srgb,var(--green) 38%,transparent)}
.storefront-app .circuit-field i:nth-child(3){inset:48% 3% -12% 22%}
.storefront-app .circuit-field i:after{content:'';position:absolute;top:-2px;left:0;width:96px;height:3px;background:linear-gradient(90deg,transparent,var(--blue));box-shadow:0 0 14px var(--glow)}
#main .editorial-hero,#main .collection-section{background:transparent}
#main .editorial-hero:before,#main .editorial-hero:after{display:none}
#main .hero-copy,#main .section-head,#main .page-head,#main .service-detail,#main .detail>div:not(.product-gallery),#main .problem-selector,#main .steps{background:color-mix(in srgb,var(--canvas) 93%,transparent)}
#main .section-head{padding-block:12px;gap:32px}
#main .section-head h2{max-width:22ch}
#main .section-head p{max-width:45ch}
#main .collection .browse-tile{display:flex;flex-direction:column;width:288px;flex:0 0 288px;background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow:hidden}
#main .collection[data-manual=true] .browse-tile[aria-hidden],html[data-motion=paused] #main .browse-tile[aria-hidden]{display:none}
@media(prefers-reduced-motion:reduce){#main .browse-tile[aria-hidden]{display:none}}
#main .browse-tile>a{display:flex;flex-direction:column;gap:24px;padding:28px;min-height:230px;height:100%}
#main .browse-tile h3{font-size:1.8rem;letter-spacing:-.04em}
#main .browse-tile .text-link{margin-top:auto}
#main .browse-tile p{color:var(--muted);margin:0}
#main .service-tile>a{min-height:280px}
#main [data-home-section=proof] .wrap .wrap{padding-inline:0}
.storefront-app .eyebrow{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.storefront-app .footer-disclosure{font-size:.75rem;max-width:42ch;margin:12px 0;color:var(--muted)}
.storefront-app .motion-settings{border:0;margin:0;font-size:.8rem;max-width:240px}
.storefront-app .motion-settings summary{min-height:44px;display:list-item;padding-block:12px;cursor:pointer;color:var(--muted)}
.storefront-app .motion-settings button{margin-top:8px;white-space:normal}
@keyframes technical-grid-drift{to{transform:translate3d(64px,64px,0)}}
@keyframes technical-packet{from{transform:translateX(-100px)}to{transform:translateX(100vw)}}
@media(prefers-reduced-motion:no-preference){
 html[data-motion=running] .technical-grid{animation:technical-grid-drift 32s linear infinite}
 html[data-motion=running] .technical-background .circuit-field i:after{animation:technical-packet 12s linear infinite}
 html[data-motion=running] .technical-background .circuit-field i:nth-child(2):after{animation-delay:-4s}
 html[data-motion=running] .technical-background .circuit-field i:nth-child(3):after{animation-delay:-8s}
}
@media(max-width:700px){.storefront-app .technical-grid{background-size:64px 64px}.storefront-app .circuit-field i{opacity:.8}#main .section-head{gap:16px}}
/* Public bundle only: fluid Explore surface, bounded reading columns. */
.storefront-app [hidden]{display:none!important}
.storefront-app .wrap{max-width:none;width:100%;padding-inline:clamp(20px,4vw,96px)}
.storefront-app .service-detail{max-width:820px}
#main .hero-grid>*{min-width:0}
#main .hero-copy h1{font-size:clamp(2.8rem,4.5vw,5.8rem);max-width:15ch}
#main .hero-stage{align-self:center}
#main .hero-stage .product-image{height:clamp(300px,26vw,500px);flex:0 0 auto}
#main .hero-stage .product-image img{max-height:100%;width:100%;object-fit:contain}
#main .hero-stage .hero-feature{height:auto;overflow:hidden;transition:transform .4s ease,box-shadow .4s ease}
#main .hero-stage .feature-link{height:auto}
/* Keep the introduction and both actions visible on ordinary laptop screens. */
@media(min-width:701px){#main .editorial-hero .hero-grid{padding-block:32px}}
#main .spotlight-slides{display:grid;isolation:isolate;overflow:hidden}
#main .spotlight-slide{grid-area:1/1;min-width:0}
#main .spotlight-controls{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;background:var(--surface);border-top:1px solid var(--line)}
#main [data-spotlight-position]{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}
#main .products{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr))}
/* Stationary homepage browsing: products, shortcuts and services each have a distinct rhythm. */
#main [data-home-section]{padding-block:56px}
#main .section-tail{display:flex;justify-content:flex-end;padding-top:24px}
#main .home-catalogue-empty{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:32px;border:1px solid var(--line);background:var(--surface);border-radius:8px}
#main .home-catalogue-empty h3{margin:0 0 8px;font-size:1.5rem}
#main .home-catalogue-empty p{margin:0;color:var(--muted);max-width:52ch}
#main .home-catalogue-empty .button{flex-shrink:0}
#main [data-home-section=categories]{padding-block:30px!important;border-block:1px solid var(--line)}
#main [data-home-section=categories]>.wrap{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
#main [data-home-section=categories] .section-head{margin:0;padding:0}
#main [data-home-section=categories] .section-head h2{font-size:1.35rem;margin:6px 0 0}
#main [data-home-section=categories] .section-head p{display:none}
#main .category-links{display:flex;flex-wrap:wrap;gap:10px}
#main .category-link{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:48px;padding:10px 18px;border:1px solid var(--line);border-radius:100px;background:var(--surface);font-weight:600;font-size:.9rem}
#main .category-link>span:last-child{color:var(--blue)}
#main .category-link:hover{border-color:var(--blue);background:var(--pale)}
#main .service-list{border-top:1px solid var(--line);background:color-mix(in srgb,var(--canvas) 95%,transparent)}
#main .service-list .service-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:24px;min-height:0;padding:28px 8px;border-top:0;border-bottom:1px solid var(--line)}
#main .service-index{color:var(--blue);font:500 .85rem ui-monospace,SFMono-Regular,Consolas,monospace;align-self:start;padding-top:7px}
#main .service-summary{min-width:0}
#main .service-summary h3{font-size:clamp(1.3rem,2vw,1.8rem);margin:0 0 8px;font-weight:500}
#main .service-summary p,.service-summary .service-copy{margin:0;color:var(--muted);font-size:.95rem}
#main .service-summary .service-status{margin-bottom:8px}
#main .service-action{color:var(--blue);font-size:.85rem;white-space:nowrap}
#main .service-list .service-row:hover{background:var(--surface)}
#main .service-row:focus-visible,.category-link:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
#main .service-browse-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;color:var(--muted);font-size:.85rem}
#main .service-browse-controls>div{display:flex;gap:8px}
#main .service-browse-controls button{min-height:44px;min-width:44px}
#main .service-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding:4px 2px 16px;outline-offset:4px}
#main .service-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 40px)/2.5);gap:20px}
#main .service-carousel .service-tile{min-width:0;scroll-snap-align:start;scroll-margin-top:100px}
#main .service-carousel .service-row{display:flex;flex-direction:column;align-items:start;gap:20px;min-height:280px;height:100%;margin:0;padding:26px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
#main .service-carousel .service-index{padding:0}
#main .service-carousel .service-summary h3{font-size:1.45rem}
#main .service-carousel .service-action{margin-top:auto;white-space:normal}
html[data-motion=running] #main .service-viewport{scroll-behavior:smooth}
@media(min-width:701px) and (max-width:1000px){#main .service-track{grid-auto-columns:calc((100% - 20px)/2)}}
@media(max-width:700px){#main .service-track{grid-auto-columns:min(85%,340px)}#main .service-browse-controls{align-items:start;flex-wrap:wrap}#main .service-carousel .service-row{min-height:260px;padding:22px}}
#main .home-faqs{display:grid;grid-template-columns:1fr 1.3fr;gap:48px;margin-bottom:48px;background:color-mix(in srgb,var(--canvas) 95%,transparent)}
#main .home-faqs h3{font-size:1.7rem;font-weight:500;margin:12px 0}
#main .home-faqs details{border-bottom:1px solid var(--line);margin:0}
#main .home-faqs summary{cursor:pointer;min-height:52px;padding-block:16px;font-weight:600}
#main .home-faqs p{color:var(--muted);max-width:60ch;padding-bottom:16px;margin:0}
@media(max-width:700px){
 #main [data-home-section]{padding-block:36px!important}
 #main .home-catalogue-empty{align-items:start;flex-direction:column;padding:24px}
 #main [data-home-section=categories]>.wrap{gap:20px}
 #main .category-links{width:100%}
 #main .category-link{flex:1 1 auto;padding-inline:16px}
 #main .service-list .service-row{grid-template-columns:28px minmax(0,1fr);gap:10px 16px;padding:24px 0}
 #main .service-action{grid-column:2;white-space:normal}
 #main .home-faqs{grid-template-columns:1fr;gap:8px;margin-bottom:32px}
}
#main .toolbar{flex-wrap:wrap}#main .toolbar>*{min-width:0}#main .toolbar select{flex:1 1 170px}#main .toolbar input{flex:2 1 260px}
#main .card-photos{position:relative;overflow:hidden;background:var(--photo)}
#main .use-tags{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
#main .use-tags span{font-size:.72rem;border:1px solid var(--line);padding:3px 8px;border-radius:4px;color:var(--muted)}
#main .product-highlights{padding-left:20px;margin:16px 0;line-height:1.6;font-size:.9rem;color:var(--muted)}
#main .product-highlights li+li{margin-top:6px}
#main .product-bottom [aria-pressed=true]{outline:2px solid var(--blue);outline-offset:1px}
#main .product-bottom [data-view-list]{text-decoration:underline;text-underline-offset:4px}
#main .detail{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(28px,5vw,100px);padding-bottom:64px;align-items:start}
#main .detail>div{min-width:0}#main .detail h1{font-size:clamp(2.2rem,3.6vw,4rem)}
#main .detail .product-image{height:clamp(320px,36vw,680px)}
#main .gallery-zoom{display:block;width:100%;padding:0;background:var(--photo);color:#162a3b;cursor:zoom-in;border-radius:12px;overflow:hidden;box-shadow:none;transform:none}
#main .gallery-zoom>span{display:block;text-align:left;padding:12px 20px;font-size:.75rem}
#main .gallery-zoom img{width:100%;height:100%;object-fit:contain}
#main .gallery-thumbs{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
#main .gallery-thumbs button{width:72px;height:72px;padding:6px;border:2px solid transparent;box-shadow:none}
#main .gallery-thumbs img{width:100%;height:100%;object-fit:contain}
#main .gallery-thumbs [aria-pressed=true]{border-color:var(--blue)}
#main .confidence-panel{margin:28px 0;padding:24px 0;border-block:1px solid var(--line)}
#main .confidence-panel h2{font-size:1.35rem}
#main .confidence-panel dl{margin:0 0 16px}
#main .confidence-panel dl>div{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:10px 0}
#main .confidence-panel dt{color:var(--muted);font-size:.85rem}#main .confidence-panel dd{margin:0;white-space:pre-line}
#main .confidence-panel p{font-size:.8rem;margin:0}
#zoom-dialog{width:min(96vw,1400px);max-width:96vw;max-height:92vh}
#zoom-dialog .zoom-scroll{overflow:auto;max-height:65vh;background:var(--photo)}
#zoom-dialog img{display:block;max-width:none;min-width:100%;width:auto;max-height:none;object-fit:contain}
#zoom-dialog h2{font-size:1.3rem}#zoom-dialog p{font-size:.8rem;margin:12px 0 0}
.storefront-app #compare-dialog{width:min(96vw,1200px);max-width:96vw}
.comparison-scroll{overflow:auto;margin-block:24px;max-width:100%}
.comparison-scroll table{width:100%;border-collapse:collapse}
.comparison-scroll td,.comparison-scroll th{padding:16px;border-bottom:1px solid var(--line);text-align:left;min-width:160px;vertical-align:top}
.comparison-scroll th button{display:block;margin-top:12px}
.comparison-bar{position:fixed;z-index:5;bottom:22px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-width:calc(100% - 32px)}
.comparison-bar span{white-space:nowrap;font-size:.8rem}
.whatsapp-float{position:fixed;z-index:5;right:24px;bottom:24px;border:1px solid var(--green);background:var(--surface);color:var(--green);box-shadow:var(--shadow);padding:14px 18px;border-radius:100px;min-height:48px;font-weight:700;font-size:.85rem}
.mobile-enquiry{display:none}
#main .problem-selector{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,6vw,120px);padding-block:64px;border-bottom:1px solid var(--line)}
#main .problem-selector>div{min-width:0}#main .problem-selector p{max-width:52ch}
#main .problem-selector input,#main .problem-selector select,#main .problem-selector textarea{width:100%;margin-bottom:12px}
#main .problem-selector label{display:block;margin-bottom:8px;font-weight:600}
#main .problem-selector h2{max-width:18ch}
#main #problem-privacy{font-size:.8rem}
#main .case-study{display:flex;align-items:start;gap:clamp(24px,5vw,80px);padding-block:32px;border-top:1px solid var(--line)}
#main .case-study img{width:40%;max-height:420px;object-fit:cover;border-radius:8px}
#main .case-study>div{max-width:65ch;min-width:0}#main .case-study dt{font-weight:700}#main .case-study dd{margin:4px 0 20px;color:var(--muted);white-space:pre-line}
#main .review-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:40px}
#main .customer-review{margin:0;padding-top:24px;border-top:1px solid var(--line)}
#main .customer-review blockquote{margin:0 0 20px;font-size:1.2rem;max-width:45ch;white-space:pre-line}
#main .customer-review figcaption{color:var(--muted);font-size:.85rem}
#main .owner-intro{display:flex;gap:48px;align-items:center}
#main .owner-intro img{width:220px;max-height:280px;object-fit:cover;border-radius:8px}
#main .owner-intro p{max-width:60ch;white-space:pre-line}
#main .video-panel{margin:24px 0}#main .video-panel p{font-size:.8rem;margin-top:10px}
#main video{display:block;width:100%;max-height:70vh;background:#000;border-radius:8px}
@keyframes spotlight-in{from{opacity:0;transform:translateX(28px) scale(.97)}to{opacity:1;transform:none}}
@keyframes spotlight-out{from{opacity:1;transform:none;visibility:visible}to{opacity:0;transform:translateX(-28px) scale(.97);visibility:hidden}}
@media(prefers-reduced-motion:no-preference){
 html[data-motion=running] #main .spotlight-slide.is-entering{animation:spotlight-in .55s cubic-bezier(.2,.7,.2,1) both}
 html[data-motion=running] #main .spotlight-slide.is-leaving[hidden]{display:block!important;pointer-events:none;animation:spotlight-out .4s ease both;z-index:-1}
 @media(hover:hover) and (pointer:fine){
  html[data-motion=running] #main .hero-stage:hover .hero-feature{transform:rotateY(-2deg) rotateX(1deg);box-shadow:8px 22px 60px var(--glow)}
  html[data-motion=running] #main .product:hover{background:radial-gradient(ellipse at top right,var(--glow),transparent 65%),var(--surface)}
 }
}
@media(min-width:1100px){#main .product-gallery{position:sticky;top:110px}}
@media(max-width:850px){#main .detail{grid-template-columns:1fr 1fr;gap:24px}.comparison-bar{bottom:90px}.whatsapp-float{right:16px;bottom:16px}}
.storefront-app .service-status{display:inline-flex;align-self:flex-start;width:max-content;max-width:100%;padding:4px 10px;border:1px solid var(--blue);border-radius:4px;font-size:.8rem;font-weight:700;color:var(--blue);background:var(--pale)}
.storefront-app .nav .brand{min-height:44px;display:flex;flex-direction:column;justify-content:center}
@media(min-width:701px) and (max-width:850px){
 .storefront-app .nav .wrap{flex-wrap:nowrap;gap:16px;padding-block:12px}
 .storefront-app .navlinks{order:0;width:auto;gap:16px}
}
@media(max-width:700px){
 .storefront-app .nav .wrap{padding-block:6px;gap:4px 12px}
 .storefront-app .nav .brand{min-height:44px;display:flex;flex-direction:column;justify-content:center}
 .storefront-app .wrap{padding-inline:16px}
 #main .editorial-hero{padding-top:16px}
 #main .editorial-hero .hero-grid{padding:20px 0;gap:20px}
 #main .hero-meta{padding-bottom:12px}
 #main .hero-copy h1{margin:14px 0 18px;font-size:clamp(2.35rem,8.5vw,3.2rem)}
 #main .hero-copy p{font-size:1rem;line-height:1.6;margin-block:16px}
 #main .hero-copy .actions{margin-top:16px;gap:8px 16px}
 #main .hero-stage{margin:0}
 #main .hero-stage .product-image{height:220px;min-height:220px;max-height:220px}
 #main .hero-bottom{padding-top:12px;padding-bottom:16px}
 #main .section{padding-block:36px}
 #main .collection .browse-tile{width:min(288px,calc(100vw - 48px));flex-basis:min(288px,calc(100vw - 48px))}
 #main .browse-tile>a{padding:22px;gap:18px}
 #main .gallery-thumbs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px}
 #main .gallery-thumbs button{flex:0 0 72px}
 .storefront-app :is(button,.button,.text-link,summary){min-height:44px}
 .storefront-app button{min-width:44px}
 .storefront-app .text-link{display:inline-flex;align-items:center}
 .storefront-app :is(input,select,textarea){font-size:16px}
 #main .detail,#main .problem-selector{grid-template-columns:1fr}
 #main .problem-selector{padding-block:40px;gap:20px}
 #main .detail{padding-bottom:110px}#main .detail .product-image{height:350px}
 .mobile-enquiry{position:fixed;z-index:5;bottom:0;inset-inline:0;display:flex;gap:8px;align-items:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}
 .mobile-enquiry span{margin-right:auto;font-size:.8rem}.mobile-enquiry button{font-size:.75rem;padding:10px}
 .storefront-app:has(.mobile-enquiry) .whatsapp-float{bottom:calc(88px + env(safe-area-inset-bottom))}
 .storefront-app:has(.mobile-enquiry) .comparison-bar{bottom:calc(150px + env(safe-area-inset-bottom))}
 .storefront-app .footer{padding-bottom:calc(230px + env(safe-area-inset-bottom))}
 .comparison-bar{gap:8px;padding:8px;width:max-content}.comparison-bar button{font-size:.75rem;padding:10px}.comparison-bar span{font-size:.7rem}
 #main .case-study,#main .owner-intro{flex-direction:column;gap:24px}
 #main .case-study img{width:100%}#main .owner-intro img{width:160px}
 #main .spotlight-controls{gap:8px}#main .spotlight-controls button{padding:8px 12px}
 #zoom-dialog .dialog-head{align-items:start;gap:12px}#zoom-dialog h2{font-size:1rem}
}

/* Compact visual arrows with touch targets of at least 44px. */
#main .gallery-main{position:relative}
#main :is(.gallery-main,.card-photos) .gallery-arrow{position:absolute;top:calc(50% - 22px);display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:1px solid #b8c8d5;border-radius:50%;background:#fffffff2;color:#162a3b;font-size:2rem;line-height:1;box-shadow:0 2px 8px #102b4026;transform:none}
#main .gallery-previous{left:12px}
#main .gallery-next{right:12px}
#main .gallery-arrow:hover{background:#e5f2ff;border-color:#245f9e}
#main .gallery-arrow:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
#main .gallery-count{position:absolute;right:12px;bottom:12px;padding:5px 9px;border-radius:20px;background:#fffffff2;color:#162a3b;font-size:.75rem;pointer-events:none}

#main .service-cover{display:block;width:100%;height:190px;object-fit:cover;border-radius:8px;background:var(--photo);margin:0 0 20px}
#main .service-list .service-cover{max-width:360px;height:170px}
#main .service-detail .product-gallery{margin:24px 0 32px}
#main .service-detail .gallery-main .product-image{height:clamp(240px,40vw,440px)}
#main .service-detail .product-gallery+.gallery-thumbs{margin-bottom:28px}
@media(max-width:700px){#main .service-cover{height:170px}#main .service-detail .product-gallery{max-width:100%}.theme-control{white-space:normal}}

/* Short pages keep the business-information footer at the viewport bottom. */
.storefront-app{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}
.storefront-app>#main{flex:1 0 auto;min-width:0;width:100%}
.storefront-app>.footer{margin-top:auto;flex-shrink:0;width:100%}
.storefront-app .nav-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.storefront-app .settings-trigger{display:grid;place-items:center;min-width:44px;width:44px;height:44px;padding:0;border:1px solid var(--line)}
.storefront-app .settings-trigger svg{display:block}
.catalogue-pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin:32px 0 8px;padding-top:24px;border-top:1px solid var(--line)}
.catalogue-pagination span{font-size:.85rem;color:var(--muted);text-align:center}
.catalogue-pagination button:disabled{opacity:.4;cursor:default}
#settings-dialog{width:min(540px,calc(100% - 32px));padding:24px}
#settings-dialog h2{font-size:1.45rem}
#settings-dialog h3{font-size:1.1rem;margin:0 0 14px}
#settings-dialog>.muted{margin-top:16px}
#settings-dialog .settings-section{border-top:1px solid var(--line);padding-block:20px}
#settings-dialog .theme-control{justify-content:space-between}
#settings-dialog .settings-density{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:.85rem;color:var(--muted);font-weight:500;margin:12px 0 0}
#settings-dialog select{max-width:210px;min-width:0}
#settings-dialog .settings-option{display:flex;align-items:start;gap:12px;margin:0;padding:12px 0;font-weight:400;cursor:pointer}
#settings-dialog .settings-option input{width:20px;height:20px;min-height:20px;margin:4px 0 0;flex:0 0 auto;accent-color:var(--blue)}
#settings-dialog .settings-option strong{display:block;font-size:.9rem;font-weight:600}
#settings-dialog .settings-option small{display:block;color:var(--muted);font-size:.8rem;line-height:1.5;margin-top:4px}
#settings-dialog .settings-footnote{font-size:.75rem;margin:12px 0 0}
#settings-dialog .motion-settings{max-width:none;font-size:inherit}
#settings-dialog #settings-motion-note{font-size:.8rem;margin:12px 0 4px}
html[data-background=off] .storefront-app .technical-background{display:none}
html[data-contact-button=off] .storefront-app .whatsapp-float{display:none}
html[data-hover=off] .storefront-app :is(.product,.service-card,button,.button,.hero-feature):hover{transform:none!important;box-shadow:none!important}
html[data-motion=paused] .storefront-app :is(.product,.service-card,button,.button,.hero-feature):hover{transform:none!important}
html[data-motion=paused] .storefront-app,html[data-motion=paused] .storefront-app *,html[data-motion=paused] .storefront-app *:before,html[data-motion=paused] .storefront-app *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:700px){
 #main .products{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 #main .products .product{display:flex;flex-direction:column;min-width:0}
 #main .products .product-image{height:auto;min-height:0;aspect-ratio:1.15;border-radius:0}
 #main .products .product-image img{padding:10px}
 #main .products .product-body{padding:12px 12px 0}
 #main .products .product h3{font-size:.9rem;line-height:1.35;letter-spacing:-.025em;margin:6px 0 10px;overflow-wrap:anywhere}
 #main .products .category{font-size:.62rem;letter-spacing:.07em;overflow-wrap:anywhere}
 #main .products .price{font-size:.9rem}
 #main .products .product-bottom{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin:10px 12px 12px;padding:0;border:0;margin-top:auto;padding-top:12px}
 #main .products .badge{font-size:.7rem;line-height:1.4;min-height:20px}
 #main .products .product-bottom button{font-size:.72rem;white-space:normal;padding:8px 6px;min-height:44px;border-radius:6px}
 #main .products .product-bottom [data-add]{background:var(--button);color:var(--button-ink);border:0}
 #main .products .product-bottom [data-compare]{border:1px solid var(--line);background:var(--surface);color:var(--ink)}
 #main .products .product-highlights,#main .products .use-tags{display:none}
 #main .products .gallery-previous{left:4px}#main .products .gallery-next{right:4px}
 #main .products .gallery-count{right:6px;bottom:6px;font-size:.6rem;padding:3px 6px}
 #main .products .placeholder b{font-size:1rem}#main .products .placeholder small{font-size:.65rem}
 html[data-catalogue-density=comfortable] #main .products{grid-template-columns:minmax(0,1fr)}
 html[data-catalogue-density=comfortable] #main .products .product-image{height:230px;aspect-ratio:auto}
 html[data-catalogue-density=comfortable] #main .products .product h3{font-size:1.15rem}
 html[data-catalogue-density=comfortable] #main .products .product-highlights{display:block}
 html[data-catalogue-density=comfortable] #main .products .use-tags{display:flex}
 .storefront-app .footer{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
 .storefront-app:has(.mobile-enquiry) .footer{padding-bottom:calc(150px + env(safe-area-inset-bottom))}
 .catalogue-pagination{gap:12px}.catalogue-pagination button{font-size:.8rem;padding:10px}
 #settings-dialog .settings-density{display:block}#settings-dialog .settings-density select{display:block;width:100%;max-width:none;margin-top:8px}
}

@media(max-width:700px){
 #main:has(#results) .page-head{padding:28px 0 12px}
 #main:has(#results) .page-head h1{font-size:clamp(2rem,8vw,2.7rem);margin:8px 0 12px}
 #main:has(#results) .page-head p{font-size:.9rem;margin-bottom:0}
 #main .toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-block:18px}
 #main .toolbar input,#main .toolbar #use-case,#main .toolbar #clear-filters{grid-column:1/-1}
 #main .toolbar select{width:100%;max-width:none;font-size:.8rem;padding:10px}
 #main .products .product h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
 html[data-catalogue-density=comfortable] #main .products .product h3{display:block;min-height:0}
}

.quote-request{margin:36px 0;padding:28px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.quote-request h2{font-size:clamp(1.45rem,3vw,2rem)}
.quote-fields{border:0;padding:0;margin:0;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.quote-fields>div{min-width:0}.quote-fields .quote-wide{grid-column:1/-1}
.quote-request select,.quote-request input,.quote-request textarea{width:100%;min-width:0}
.quote-request .muted{font-size:.85rem;margin-top:10px}.quote-request button,.quote-request .button{min-height:44px;white-space:normal}
#quote-result{margin-top:26px;border-top:1px solid var(--line);padding-top:22px}
#quote-message{min-height:180px;margin-bottom:18px}
@media(max-width:550px){.quote-request{padding:20px;margin-inline:0}.quote-fields{grid-template-columns:minmax(0,1fr)}.quote-request button,.quote-request .button{width:100%}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Adjustable, bounded photo viewing on desktop and touch screens. */
#zoom-dialog{width:min(1100px,calc(100vw - 24px));max-width:calc(100vw - 24px);height:min(900px,90vh);height:min(900px,90dvh);max-height:94dvh;padding:20px;background:var(--surface);border:1px solid var(--line)}
#zoom-dialog[open]{display:flex;flex-direction:column;gap:14px}
#zoom-dialog .dialog-head{flex:0 0 auto;align-items:center}#zoom-dialog .dialog-head h2{overflow-wrap:anywhere;min-width:0}
#zoom-dialog .dialog-head button{flex-shrink:0;min-height:44px}
.zoom-toolbar{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-width:0}
.zoom-toolbar button{min-width:44px;min-height:44px;padding:8px}.zoom-toolbar [data-zoom-value]{font-variant-numeric:tabular-nums;min-width:43px;text-align:center;font-size:.85rem}
.zoom-slider{flex:1;min-width:0;margin:0}.zoom-slider input{width:100%;min-width:0;min-height:44px;padding:0;accent-color:var(--blue)}
#zoom-dialog .zoom-viewport{position:relative;flex:1;min-height:120px;overflow:hidden;background:var(--photo);border-radius:8px;touch-action:none;overscroll-behavior:contain}
#zoom-dialog .zoom-viewport[data-zoomed=true]{cursor:grab}#zoom-dialog .zoom-viewport.is-dragging{cursor:grabbing}
#zoom-dialog .zoom-viewport img{position:absolute;left:50%;top:50%;display:block;min-width:0;max-width:none;max-height:none;padding:0;object-fit:contain;user-select:none;pointer-events:none;mix-blend-mode:normal;transform-origin:center}
#zoom-dialog #zoom-instructions{flex:0 0 auto;margin:0;font-size:.8rem;color:var(--muted)}#zoom-dialog .zoom-error{position:absolute;inset:20px;background:var(--surface);color:var(--ink);padding:16px}
@media(max-width:550px){#zoom-dialog{padding:12px;gap:10px}#zoom-dialog .dialog-head h2{font-size:1rem}#zoom-dialog .dialog-head button{padding:8px 10px}.zoom-toolbar{gap:5px}.zoom-toolbar button{padding:8px}.zoom-toolbar [data-zoom-value]{min-width:39px;font-size:.75rem}#zoom-dialog #zoom-instructions{font-size:.72rem}}

.section-photo{margin:0 0 28px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--photo)}.section-photo img{display:block;width:100%;height:clamp(220px,36vw,460px);object-fit:contain;padding:12px}@media(max-width:550px){.section-photo img{height:auto;max-height:360px;min-height:0;object-fit:contain}}
/* Availability filters remain one compact, labelled touch target at every width. */
#main .availability-filter input{flex:0 0 20px;width:20px;max-width:20px;min-width:20px;height:20px;min-height:20px;padding:0;margin:0}
#main .toolbar .availability-filter{flex:0 0 auto;min-height:44px;white-space:nowrap}
#main .products .product .product-image{height:auto;min-height:0;aspect-ratio:4/3}
@media(max-width:700px){#main .toolbar .availability-filter{grid-column:1/-1;width:100%}}

/* Selected categories stay in compact, single-line rows at every viewport. */
#main .collection-section .product-collection{--collection-columns:2;--collection-gap:12px;min-width:0;margin-top:30px}
#main .collection-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;margin-bottom:14px}
#main .collection-heading h3{font-size:1.2rem;margin:0 0 5px;overflow-wrap:anywhere}
#main .collection-heading .text-link{font-size:.78rem}
#main .collection-controls{display:flex;align-items:center;gap:6px;flex-shrink:0}
#main .collection-controls button{width:44px;height:44px;min-width:44px;padding:8px;border-radius:8px;font-size:1.1rem}
#main .collection-controls button[aria-pressed=true]{background:var(--surface);border-color:var(--blue)}
#main .collection-controls [hidden]{display:none!important}
#main .collection-viewport{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;scroll-behavior:auto!important;overflow-anchor:none;outline-offset:4px;padding-bottom:10px}
#main .collection-track{display:flex;flex-wrap:nowrap;align-items:stretch;gap:var(--collection-gap);width:100%;overflow-anchor:none}
#main .collection-section .collection-track>.product{flex:0 0 calc((100% - (var(--collection-columns) - 1)*var(--collection-gap))/var(--collection-columns));display:flex;flex-direction:column;min-width:0;margin:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden;box-shadow:none}
#main .collection-track .product-image{height:auto;min-height:0;aspect-ratio:4/3;border:0;border-radius:0}
#main .collection-track .product-image img{padding:10px;object-fit:contain;transform:none}
#main .collection-track .product-body{padding:12px 12px 0}
#main .collection-track .category{display:none}
#main .collection-track .product h3{font-size:.9rem;line-height:1.35;letter-spacing:-.025em;margin:0 0 8px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
#main .collection-track .price{font-size:.95rem;font-weight:700}
#main .collection-track .product-highlights,#main .collection-track .use-tags{display:none}
#main .collection-track .product-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:12px;margin-top:auto;border:0}
#main .collection-track .badge{width:100%;font-size:.7rem;line-height:1.4;min-height:20px}
#main .collection-track .product-bottom button{min-height:44px;padding:8px 6px;white-space:normal;font-size:.72rem;border-radius:6px;flex:1 0 100%}
#main .collection-track .product-bottom [data-add]{background:var(--button);color:var(--button-ink);border:0}
#main .collection-track .product-bottom [data-compare]{background:transparent;color:var(--ink);border:1px solid var(--line)}
#main .collection-track .gallery-previous{left:4px}#main .collection-track .gallery-next{right:4px}
#main .collection-track .gallery-count{right:6px;bottom:6px;font-size:.6rem;padding:3px 6px}
#main .collection-track .placeholder b{font-size:1rem}#main .collection-track .placeholder small{font-size:.65rem}
@media(min-width:600px){#main .collection-section .product-collection{--collection-columns:3;--collection-gap:16px}}
@media(min-width:960px){#main .collection-section .product-collection{--collection-columns:4}}
@media(min-width:1200px){#main .collection-section .product-collection{--collection-columns:5}}
@media(max-width:700px){html[data-catalogue-density=comfortable] #main .collection-section .product-collection{--collection-columns:1}#main .collection-heading h3{font-size:1.05rem}}

#main .collection-track :is(a,button):focus-visible{outline-offset:-3px}
/* Native scrolling owns position; do not inherit the historical CSS marquee. */
#main .product-collection .collection-track{animation:none!important;transform:none!important}

/* Keep mobile product-page actions visible directly beneath stock status. */
@media(max-width:700px){
 #main .catalogue-category-rows .collection-track .product-bottom{margin-top:12px;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}
 #main .catalogue-category-rows .collection-track .product-bottom .badge{width:100%}
 #main .catalogue-category-rows .collection-track .product-bottom button{flex:1 1 calc(50% - 4px);width:auto;min-width:0}
 #main .catalogue-category-rows .collection-track .product-bottom [hidden]{display:none!important}
}

/* Page discovery is visible before and after the catalogue. */
#main #count{scroll-margin-top:140px}
#main .catalogue-pagination{flex-wrap:wrap;justify-content:space-between;gap:12px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin:24px 0}
#main .catalogue-pagination[hidden]{display:none}
#main .pagination-status{font-weight:600;color:var(--ink);white-space:nowrap}
#main .pagination-buttons{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}
#main .catalogue-pagination button{min-height:44px;padding:10px 14px}
#main .catalogue-pagination .page-number{min-width:44px;padding-inline:10px}
#main .catalogue-pagination [aria-current=page]{background:var(--button);color:var(--button-ink);border-color:var(--button)}
#main .pagination-gap{padding-inline:2px}
@media(max-width:700px){#main .catalogue-pagination{justify-content:center;padding:12px;gap:10px}#main .pagination-status{flex-basis:100%}#main .pagination-buttons{gap:6px}#main .catalogue-pagination button{font-size:.78rem;padding:8px 10px}#main #count{scroll-margin-top:130px}}

/* Keep owner-entered service line breaks while wrapping long lines on phones. */
#main .service-copy{white-space:pre-line;overflow-wrap:anywhere}

#main .rich-copy{white-space:normal}#main .rich-copy>p:last-child{margin-bottom:0}

.service-addons{border:1px solid var(--line);padding:18px;border-radius:8px;margin:24px 0;min-width:0}.service-addons legend{font-weight:700;padding:0 8px}.service-addons>.muted{font-size:.875rem}.service-addon{display:flex;align-items:flex-start;gap:12px;border-top:1px solid var(--line);padding:14px 0;margin:0;cursor:pointer}.service-addon input{width:20px;height:20px;flex:0 0 20px;margin:3px 0 0;accent-color:var(--blue)}.service-addon>span{min-width:0;overflow-wrap:anywhere}.service-addon strong,.service-addon small,.addon-description{display:block}.service-addon small,.addon-description{font-weight:400;color:var(--muted);margin-top:5px}.service-addon:focus-within{outline:2px solid var(--blue);outline-offset:4px}
