/* Shared brand, theme and interaction styles. Keep this after site.css. */
:root {
 --brand:#fc0404; --coral:#ff545b; --accent:#ed1b24; --pink:#fa8495;
 --ink-rgb:255,255,255; --panel-rgb:18,20,25;
 --panel:#101216; --panel-2:#181a20; --muted:#b0b3bd; --subtle:#9398a5;
 --soft-accent:#eea4aa; --line:rgba(255,255,255,.12);
 --header-bg:rgba(9,10,13,.9); --glass:rgba(22,23,29,.92);
 --surface-fill:linear-gradient(145deg,#16181e,#111318);
 --section-bg:#0e1015; --footer-bg:#07090d; --input-bg:#0d0f15;
 --shadow:0 18px 60px rgba(0,0,0,.2); --brand-wash:rgba(237,27,36,.08);
 --bs-primary:#ed1b24; --bs-body-bg:var(--bg); --bs-body-color:var(--text);
 color-scheme:dark;
}
html[data-theme="light"] {
 --bg:#faf9f7; --panel:#fff; --panel-2:#f0efed; --text:#191c25;
 --muted:#535b69; --subtle:#616a78; --soft-accent:#a52b35;
 --coral:#c91b26; --accent:#cb1722; --pink:#af2438;
 --ink-rgb:25,28,37; --panel-rgb:255,255,255;
 --line:rgba(25,28,37,.14); --header-bg:rgba(250,249,247,.94);
 --glass:rgba(255,255,255,.94); --surface-fill:linear-gradient(145deg,#fff,#f5f4f2);
 --section-bg:#f1f0ee; --footer-bg:#f0efed; --input-bg:#fff;
 --shadow:0 18px 60px rgba(26,25,33,.08); --brand-wash:rgba(203,23,34,.06);
 color-scheme:light;
}
body { background:var(--bg); color:var(--text); }
body, .site-header, .surface, .site-footer, .mobile-nav, .mega-menu,
.stack-section, .client-strip, .form-panel, input, select, textarea {
 transition:background-color .2s,color .2s,border-color .2s;
}
::selection { background:var(--accent); color:#fff; }
.site-header { background:var(--header-bg); }
.mega-menu,.mobile-nav,.lightbox,.nojs-nav { background:var(--panel); box-shadow:var(--shadow); }
.desktop-nav>a,.nav-trigger { color:var(--muted); }
.desktop-nav>a:hover,.nav-trigger:hover { color:var(--coral); }
.header-cta { color:var(--text); }
.header-cta:hover { border-color:var(--coral); background:var(--brand-wash); }
.brand img,.footer-brand img { filter:none; }
.theme-toggle { width:40px; height:40px; display:inline-flex; align-items:center;
 justify-content:center; padding:0; flex-shrink:0; border:1px solid var(--line);
 border-radius:50%; background:var(--panel); color:var(--text); }
.theme-toggle:hover { color:var(--coral); border-color:var(--coral); background:var(--brand-wash); }
.theme-toggle .icon { width:18px; height:18px; }
.theme-toggle .theme-moon,html[data-theme="light"] .theme-toggle .theme-sun { display:none; }
html[data-theme="light"] .theme-toggle .theme-moon { display:block; }
.theme-toggle[hidden] { display:none!important; }
.btn-primary { background:var(--accent); color:#fff; border-color:var(--accent);
 box-shadow:0 5px 28px rgba(237,27,36,.13); }
.btn-primary:hover,.btn-primary:focus-visible { background:#b80d18; color:#fff;
 border-color:#b80d18; box-shadow:0 6px 32px rgba(237,27,36,.23); }
.btn-outline { color:var(--text); border-color:var(--line); background:var(--panel); }
.btn-outline:hover { color:var(--text); border-color:var(--coral); background:var(--brand-wash); }
.gradient-text { background-image:linear-gradient(100deg,#ff333a,#ef1b2a 50%,#fd7185);
 background-clip:text; -webkit-background-clip:text; color:transparent; }
html[data-theme="light"] .gradient-text { background-image:linear-gradient(100deg,#b70918,#dd1827 56%,#a81f3b); }
.surface { background:var(--surface-fill); border-color:var(--line); }
.section+.section { border-color:var(--line); }
.client-strip,.stack-section,.work-section { background:var(--section-bg); }
.site-footer { background:var(--footer-bg); }
.eyebrow,.hero-description,.heading-side p { color:var(--muted); }
.icon-box,.quote-mark,.contact-method>.icon,.service-glyph .icon { color:var(--coral); }
.icon-box { border-color:var(--line); background:var(--brand-wash); }
.service-card:hover,.product-card:hover { border-color:var(--coral); }
.hero { background:radial-gradient(ellipse at 76% 40%,rgba(167,23,36,.15),transparent 54%); }
.light-one { background:#f2152c; }
.light-two { background:#bd1332; }
.hero-proof,.visual-coordinates,.visual-caption,.hero-bottom { color:var(--muted); }
.hero-controls { background:var(--panel); }
.hero-controls button { color:var(--muted); }
.hero-controls button.active { color:var(--text); background:var(--brand-wash); }
.hero[data-mode] .hero-visual { filter:none; }
.floating-capability { background:var(--glass); border-color:rgba(237,27,36,.25); box-shadow:var(--shadow); }
.floating-capability>.icon { color:var(--coral); }
.floating-capability div span { color:var(--subtle); }
.floating-capability strong { color:var(--text); }
.orbital-grid { border-color:rgba(237,27,36,.25);
 background-image:linear-gradient(rgba(237,27,36,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(237,27,36,.12) 1px,transparent 1px);
 box-shadow:0 0 85px rgba(237,27,36,.12); }
.orbit { border-color:rgba(237,27,36,.2); }
.orbit::after { background:#ff5460; box-shadow:0 0 20px #ef2339; }
.core-face { border-color:rgba(255,83,94,.6); box-shadow:inset 0 0 50px #ef233322,0 0 28px #ee182520; }
.core-top { background:linear-gradient(150deg,#ff576a88,#ee182533); }
.core-left { background:linear-gradient(150deg,#a915342e,#fa273d66); }
.core-right { background:linear-gradient(150deg,#e5194328,#ff647340); }
.core-w { color:#ffdadd; text-shadow:0 0 30px #ff243a90; }
.core-glow { background:#ed2339; }
.image-label { color:#fff; text-shadow:0 1px 6px #0009; }
html[data-theme="light"] .core-face { border-color:rgba(181,9,28,.45); }
html[data-theme="light"] .core-w { color:#a91127; text-shadow:0 0 24px #fc1c4230; }
.workflow-visual,.why-stat,.portfolio-download { background:radial-gradient(ellipse at 50% 60%,var(--brand-wash),transparent 65%),var(--panel); }
.workflow-node { background:var(--surface-fill); color:var(--text); border-color:var(--line); }
.workflow-node .icon { color:var(--coral); }
.node-center { border-color:var(--coral); color:var(--text); }
.big-stat,.metric strong { color:var(--coral); }
.feature-cta,.price-card.featured { background:linear-gradient(145deg,var(--brand-wash),var(--panel)); border-color:rgba(237,27,36,.35); }
.price-tag { background:var(--accent); color:#fff; }
.chips>span,.partner-small>span { color:var(--muted); background:var(--panel); border-color:var(--line); }
.filter-pill,.filter-pill:hover { color:var(--muted); border-color:var(--line); }
.filter-pill.active { color:var(--coral); background:var(--brand-wash); border-color:var(--coral); }
.testimonial-card blockquote { color:var(--muted); }
.avatar { color:var(--coral); background:var(--brand-wash); border-color:var(--line); }
.faq-item summary { color:var(--text); }
.faq-item summary .icon { color:var(--coral); }
.cta-panel { border-color:rgba(237,27,36,.28);
 background:radial-gradient(ellipse at 95% 100%,rgba(237,27,36,.15),transparent 65%),var(--panel); }
.cta-monogram { color:rgba(237,27,36,.06); }
.cta-lines { border-color:rgba(237,27,36,.09); box-shadow:0 0 0 50px rgba(237,27,36,.025),0 0 0 100px rgba(237,27,36,.015); }
.footer-brand p,.footer-links h2,.footer-links a,.footer-contact>a:not(.footer-email),.footer-bottom { color:var(--muted); }
.footer-links a:hover { color:var(--coral); }
.footer-email { color:var(--text); }
.blog-pattern { background:radial-gradient(ellipse at 50% 50%,var(--brand-wash),transparent 65%),var(--panel); }
.blog-pattern>span,.article-meta,.article-meta span,.pattern-mark .icon { color:var(--muted); }
.pattern-mark .icon { color:var(--coral); }
.article-body,.article-body p,.large-copy { color:var(--muted); }
.blog-search input,.lead-form>input,.lead-form>select,.lead-form>textarea,.form-grid input,.form-grid select {
 background:var(--input-bg); border-color:var(--line); color:var(--text); }
.blog-search button { color:var(--text); background:var(--panel); }
.lead-form input:hover,.lead-form textarea:hover,.lead-form select:hover { border-color:var(--subtle); }
input::placeholder,textarea::placeholder { color:var(--subtle); opacity:1; }
.lead-form input:focus,.lead-form textarea:focus,.lead-form select:focus { border-color:var(--coral); }
.form-status.error,.alert-wf { color:var(--coral); }
.alert-wf { background:var(--brand-wash); }
.model-panel { background:var(--panel); }
.model-panel model-viewer { background:radial-gradient(ellipse at 50% 70%,rgba(63,94,101,.14),transparent 65%),var(--panel-2); }
.model-progress { color:var(--text); background:var(--glass); }
/* Keep horizontal centering in every state. Generic button hover must not replace it. */
.ar-button,.ar-button:hover,.ar-button:focus-visible,.ar-button:active {
 transform:translateX(-50%); transition:background .2s,box-shadow .2s,color .2s;
 max-width:calc(100% - 30px); white-space:normal;
}
.before-after { padding:14px; max-width:740px; margin:0 auto 40px; }
.comparison-images { aspect-ratio:1.6; max-height:min(48svh,360px); background:var(--panel-2); }
.comparison-images>img,.comparison-before img { object-fit:contain; }
.comparison-before { background:var(--panel-2); }
.comparison-label { background:rgba(16,18,25,.85); color:#fff; }
.comparison-handle { background:var(--accent); color:transparent; font-size:0; }
.comparison-handle::after { background:var(--accent); color:#fff; font-size:17px; }
.before-after>label { color:var(--muted); margin:14px 0 4px; }
.before-after input { height:32px; margin:0; cursor:ew-resize; }
.before-after input::-webkit-slider-thumb { min-width:20px; min-height:20px; }
.gallery-item>span,.lightbox-close,.work-open { background:var(--glass); border-color:var(--line); color:var(--text); }
.lightbox { background:var(--panel); color:var(--text); }
/* These are image elements with real-name SVG text fallbacks, ready for your logo files. */
.brand-logo-slot { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; vertical-align:middle; }
.brand-logo-image { display:block; width:100%; height:100%; max-width:100%; object-fit:contain; }
.logo-for-light { display:none; }
html[data-theme="light"] .logo-for-dark { display:none; }
html[data-theme="light"] .logo-for-light { display:block; }
.client-names { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:30px; }
.client-names .brand-logo-slot { width:100%; height:48px; }
.client-names .brand-logo-image { width:100%; height:48px; }
.partner-emblem { height:60px; font-size:0; width:auto; }
.partner-emblem .brand-logo-slot { width:145px; height:56px; }
.aws-emblem .brand-logo-slot { width:100px; }
.proof-mark { color:var(--coral); display:flex; }
.proof-mark .brand-logo-slot { width:58px; height:23px; }
.hero-proof>.brand-logo-slot { width:42px; height:26px; }
.stack-mark { width:60px; height:45px; color:var(--text); }
.stack-mark .brand-logo-slot { width:60px; height:45px; }
.stack-item { color:var(--text); }
.stack-item:hover { background:var(--brand-wash); border-color:var(--coral); }
.partner-small>span { display:flex; align-items:center; gap:7px; }
.partner-small .brand-logo-slot { width:41px; height:17px; }
.service-location { font-size:11px; color:var(--muted); display:flex; align-items:center;
 gap:9px; margin-top:22px; line-height:1.7; }
.service-location::before { content:""; width:5px; height:5px; border-radius:50%; background:var(--brand); flex-shrink:0; }
.local-service-note { border:1px solid var(--line); border-left:3px solid var(--accent);
 border-radius:12px; background:var(--panel); padding:28px; margin-top:42px; }
.local-service-note h2 { font-size:26px; line-height:1.3; margin-bottom:16px; }
.local-service-note p { font-size:13px; max-width:920px; }
.local-service-note .text-link { margin-top:18px; color:var(--coral); }
.footer-location-note { font-size:11px; margin-top:10px; max-width:370px; }
.sticky-cta { left:25px; right:auto; bottom:22px; transform:none; opacity:1;
 background:var(--glass); color:var(--text); border:1px solid rgba(237,27,36,.5);
 box-shadow:var(--shadow); gap:10px; padding:13px 19px; }
.sticky-cta>.icon { color:var(--coral); width:22px; height:22px; }
.sticky-cta:hover { background:var(--accent); color:#fff; border-color:var(--accent); }
.sticky-cta:hover>.icon { color:#fff; }
.wf-cursor { display:none; position:fixed; left:0; top:0; z-index:2147483647;
 pointer-events:none; width:0; height:0; }
.wf-cursor-dot,.wf-cursor-ring { position:absolute; left:0; top:0; pointer-events:none;
 display:block; border-radius:50%; transform:translate(-50%,-50%); }
.wf-cursor-dot { width:6px; height:6px; background:var(--brand); }
.wf-cursor-ring { width:30px; height:30px; border:1px solid var(--brand);
 transition:width .15s,height .15s,background .15s; }
.wf-cursor.is-interactive .wf-cursor-ring { width:42px; height:42px; background:rgba(252,4,4,.06); }
.wf-cursor.is-pressed .wf-cursor-ring { width:24px; height:24px; }
@media(hover:hover) and (pointer:fine) {
 html.custom-cursor,html.custom-cursor * { cursor:none!important; }
 html.custom-cursor .wf-cursor { display:block; }
}
/* Light illustrations retain structure while using a readable light palette. */
html[data-theme="light"] .product-art,html[data-theme="light"] .product-hero-art {
 background:radial-gradient(ellipse at 50% 60%,#ed1b2419,transparent 65%),#f5f1ef;
}
html[data-theme="light"] .art-arenaflow { background:radial-gradient(ellipse at 50% 55%,#278c711d,transparent 65%),#edf4f0; }
html[data-theme="light"] .product-symbol { box-shadow:0 22px 55px #73362915; }
html[data-theme="light"] .product-symbol .icon,html[data-theme="light"] .product-art-name { color:#992c36; }
html[data-theme="light"] .art-arenaflow .product-symbol .icon,html[data-theme="light"] .art-arenaflow .product-art-name { color:#23684f; }
html[data-theme="light"] .product-orbit { border-color:#22222220; }
html[data-theme="light"] .service-glyph { background:linear-gradient(130deg,#f5dadc,#f1e9eb); border-color:#ed1b2440; }
html[data-theme="light"] .phone-shape { background:linear-gradient(150deg,#fff0f1,#ece9f0); border-color:#b7b0b6; }
html[data-theme="light"] .phone-line { background:#27283226; }
html[data-theme="light"] .phone-card { background:#fff; border-color:#ed1b2420; }
html[data-theme="light"] .ar-art { background:#ececee; }
html[data-theme="light"] .ar-frame { border-color:#ed1b2440; }
html[data-theme="light"] .app-orb { opacity:.65; }
html[data-theme="light"] .page-hero-glow { background:radial-gradient(ellipse,#ed1b2414,transparent 65%); }
@media(max-width:1100px) and (min-width:992px) {
 .desktop-nav { gap:17px; } .header-inner { gap:20px; } .header-actions { gap:10px; }
 .brand img { width:165px; }
}
@media(max-width:767px) {
 .header-actions { gap:9px; } .theme-toggle { width:34px; height:34px; }
 .client-names { grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px 26px; }
 .client-names .brand-logo-image { height:34px; }
 .client-names .brand-logo-slot { height:34px; }
 .stack-mark,.stack-mark .brand-logo-slot { width:52px; height:38px; }
 .sticky-cta { left:13px; right:auto; bottom:max(13px,env(safe-area-inset-bottom)); font-size:11px; padding:11px 16px; }
 .comparison-images { aspect-ratio:1.45; max-height:40svh; }
 .before-after { padding:10px; }
 .local-service-note { padding:23px; }
 .local-service-note h2 { font-size:23px; }
}
@media(max-width:479px) {
 .header-cta { display:none; } .brand img { width:156px; }
 .header-actions { gap:9px; } .header-inner { gap:12px; }
}
@media(max-width:374px) {
 .brand img { width:135px; } .header-actions { gap:8px; } .header-inner { gap:10px; }
 .theme-toggle { width:32px; height:32px; } .theme-toggle .icon { width:17px; height:17px; }
 .client-names { gap:20px 15px; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { transition:none!important; }
}
@media print {
 .theme-toggle,.wf-cursor { display:none!important; }
 body { background:#fff; color:#111; } p,.eyebrow,.article-body { color:#333; }
 .surface,.local-service-note { background:#fff; border-color:#bbb; }
}
