/* [BHT-DESIGN-A-V1] Scoped to public pages; specificity survives Turbo head ordering. */
@font-face { font-family:"Sora"; font-style:normal; font-weight:100 800; font-display:swap; src:url("/fonts/sora-latin.woff2") format("woff2"); }
@font-face { font-family:"Instrument Sans"; font-style:normal; font-weight:400 700; font-display:swap; src:url("/fonts/instrument-sans-latin.woff2") format("woff2"); }
html:root:root:has(body.bht-a) {
  --bg-primary:#f4f8fc; --bg-secondary:#fff; --bg-tertiary:#e2ecf5;
  --text-primary:#102c48; --text-secondary:#405970; --text-muted:#4c6178;
  --accent:#08649c; --accent-light:#e2f2fb; --border-color:#c8dae9;
  --gradient-start:#0a2a66; --gradient-end:#08649c;
  --a-glass:rgba(255,255,255,.94); --a-deep:#0a2a66; --a-blue:#08649c; --a-cyan:#066579;
  --shadow-sm:0 2px 10px #0b37600a; --shadow-md:0 14px 38px -22px #0b37604d; --shadow-lg:0 24px 60px -28px #0b376066;
}
html:root:root[data-theme="dark"]:has(body.bht-a) {
  color-scheme:dark; --bg-primary:#091625; --bg-secondary:#11263a; --bg-tertiary:#1b354e;
  --text-primary:#edf5ff; --text-secondary:#c1d1e4; --text-muted:#b6c9de;
  --accent:#8bd9ff; --accent-light:#183d56; --border-color:#34516e;
  --gradient-start:#071b40; --gradient-end:#064665;
  --a-glass:rgba(17,38,58,.96); --a-deep:#071b40; --a-blue:#09476e; --a-cyan:#095365;
}
html body.bht-a { display:block; min-height:100vh; margin:0; padding:0; background:var(--bg-primary); color:var(--text-primary); font:400 16px/1.65 "Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif; overflow-x:visible; transition:none; }
html body.bht-a *,html body.bht-a *::before,html body.bht-a *::after { box-sizing:border-box; }
html body.bht-a :is(h1,h2,h3) { font-family:"Sora",system-ui,sans-serif; font-weight:600; letter-spacing:-.025em; text-wrap:balance; }
html body.bht-a :is(button,input,textarea,select) { font-family:inherit; }
html body.bht-a :is(.navbar-btn,.navbar-links a,.filter-btn,.sort-select,input,textarea,select,.project-card,.service-card,.contact-form-wrapper,.contact-item,.btn,.cta-btn,.submit-btn) { transition:box-shadow .2s,border-color .2s; }
html body.bht-a a { text-underline-offset:.2em; }
html body.bht-a :focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
html body.bht-a .navbar { display:flex; position:sticky; top:0; z-index:1000; width:100%; gap:1.25rem; align-items:center; justify-content:space-between; padding:1rem max(2rem,calc((100vw - 1180px)/2)); background:var(--bg-secondary); border-bottom:1px solid var(--border-color); }
html body.bht-a .navbar-brand { display:flex; align-items:center; gap:.65rem; color:var(--text-primary); font-size:1rem; font-weight:700; text-decoration:none; white-space:nowrap; }
html body.bht-a .navbar-logo { width:42px; max-width:42px; height:42px; object-fit:contain; padding:3px; background:#fff; border-radius:11px; }
html body.bht-a .navbar-links { display:flex; align-items:center; gap:1.5rem; }
html body.bht-a .navbar-links a { color:var(--text-secondary); font-weight:600; text-decoration:none; }
html body.bht-a .navbar-links a:is(:hover,.active) { color:var(--accent); }
html body.bht-a .navbar-controls { display:flex; align-items:center; gap:.5rem; }
html body.bht-a .navbar-btn { color:var(--text-primary); background:var(--bg-primary); border:1px solid var(--border-color); padding:.5rem .7rem; border-radius:10px; font-size:.85rem; cursor:pointer; }
html body.bht-a .navbar-btn option { background:var(--bg-secondary); color:var(--text-primary); }
html body.bht-a .mobile-menu-btn { display:none; background:none; border:0; color:var(--text-primary); font-size:1.5rem; cursor:pointer; }
html body.bht-a .bht-hero { isolation:isolate; position:relative; overflow:hidden; margin:0; padding:3.75rem max(2rem,calc((100vw - 1100px)/2)); color:#fff; text-align:left; background:linear-gradient(120deg,var(--a-deep),var(--a-blue),var(--a-cyan),var(--a-blue),var(--a-deep)); background-size:320% 320%; animation:bhtShift 16s ease-in-out infinite; }
html body.bht-a .bht-hero::before,html body.bht-a .bht-hero::after { content:""; position:absolute; z-index:-1; width:300px; height:300px; border-radius:50%; pointer-events:none; opacity:.16; }
html body.bht-a .bht-hero::before { background:radial-gradient(circle,#66d9ed,transparent 70%); top:-130px; right:-100px; animation:bhtFloat 14s ease-in-out infinite; }
html body.bht-a .bht-hero::after { background:radial-gradient(circle,#071d4f,transparent 70%); left:5%; bottom:-170px; animation:bhtFloat 18s ease-in-out infinite reverse; }
html body.bht-a .bht-hero h1 { margin:0 0 1.2rem; max-width:22ch; font-size:clamp(2rem,4vw,3.2rem); font-weight:800; line-height:1.12; color:#fff; }
html body.bht-a .bht-hero p { max-width:54ch; margin:0; font-size:1.13rem; opacity:1; color:#fff; }
html body.bht-a .bht-home-hero { padding-top:4.75rem; padding-bottom:8.5rem; }
html body.bht-a .bht-home-hero h1 { font-size:clamp(2.2rem,4.5vw,3.85rem); }
html body.bht-a .bht-kicker { font-size:.76rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; margin-bottom:1.25rem; color:#fff; }
html body.bht-a .bht-ctas { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.8rem; }
html body.bht-a .bht-cta { padding:.75rem 1.2rem; border:1px solid #ffffff80; border-radius:12px; font-weight:700; text-decoration:none; }
html body.bht-a .bht-cta-solid { background:#fff; color:#0a2a66; }
html body.bht-a .bht-cta-glass { background:#07345499; color:#fff; }
html body.bht-a .bht-hero :focus-visible { outline-color:#fff; }
html body.bht-a .bht-products { position:relative; z-index:2; max-width:1164px; margin:-4.6rem auto 1.5rem; padding:0 2rem; scroll-margin-top:110px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4rem; }
html body.bht-a .bht-products article { position:relative; isolation:isolate; overflow:hidden; margin:0; padding:2rem; border:1px solid var(--border-color); border-radius:22px; background:var(--a-glass); box-shadow:var(--shadow-lg); transition:box-shadow .3s; }
html body.bht-a .bht-products article::after { content:""; position:absolute; z-index:-1; inset:0; pointer-events:none; background:linear-gradient(110deg,transparent 30%,#7ccaff1c 50%,transparent 70%); transform:translateX(-120%); transition:transform .9s ease; }
html body.bht-a .bht-products article:hover::after { transform:translateX(120%); }
html body.bht-a .bht-products article:hover { box-shadow:0 28px 60px -26px #08649c80; }
html body.bht-a .bht-products h3 { margin:.75rem 0; font-size:1.35rem; }
html body.bht-a .bht-products h3 a { text-decoration:none; color:var(--text-primary); }
html body.bht-a .bht-products p { color:var(--text-secondary); margin:0; }
html body.bht-a .bht-tag { color:var(--accent); text-transform:uppercase; font-size:.72rem; letter-spacing:.12em; font-weight:700; }
html body.bht-a .bht-more { display:inline-block; margin-top:1rem; color:var(--accent); font-weight:600; }
@supports (backdrop-filter:blur(8px)) {
  html body.bht-a .bht-products article { backdrop-filter:blur(8px); }
}
@supports not (backdrop-filter:blur(8px)) {
  html body.bht-a .bht-products article { background:var(--bg-secondary); }
}
html body.bht-a :is(.container,.services-section>.container,.contact-section>.container) { max-width:1164px; width:100%; margin-inline:auto; padding-inline:2rem; }
html body.bht-a :is(.controls-section,.services-section,.contact-section) { padding-block:3rem; }
html body.bht-a .projects-section { padding-bottom:4rem; }
html body.bht-a :is(.project-card,.service-card,.contact-form-wrapper,.login-container,.feature-card,.demo-cta) { background:var(--bg-secondary); border:1px solid var(--border-color); border-radius:18px; box-shadow:var(--shadow-md); color:var(--text-primary); }
html body.bht-a :is(.project-card,.service-card):hover { transform:none; box-shadow:var(--shadow-lg); border-color:var(--accent); }
html body.bht-a .service-card { padding:2rem; }
html body.bht-a :is(.service-icon,.contact-item-icon,.section-icon) { display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#08649c,#08778c); color:#fff; border-radius:13px; }
html body.bht-a .service-icon { width:48px; height:48px; font-size:1.5rem; margin-bottom:1.5rem; }
html body.bht-a :is(.section-title h2,.contact-info h2,.contact-form-wrapper h2) { font-size:clamp(1.5rem,3vw,2rem); }
html body.bht-a :is(.search-bar input,.sort-select,.form-group input,.form-group textarea,.form-group select) { max-width:100%; background:var(--bg-secondary); color:var(--text-primary); border:1px solid var(--border-color); border-radius:10px; font-size:1rem; }
html body.bht-a :is(input,textarea)::placeholder { color:var(--text-muted); opacity:1; }
html body.bht-a :is(.form-group input,.form-group textarea,.form-group select):focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-light); outline:0; }
html body.bht-a .form-message.error,html body.bht-a .message-error { background:#fff0f1; color:#9a1730; border-color:#9a1730; }
html body.bht-a .form-message.success { background:#e5f8ef; color:#155b39; }
html body.bht-a .filter-btn { border-radius:999px; padding:.55rem 1rem; background:var(--bg-secondary); color:var(--text-secondary); border:1px solid var(--border-color); }
html body.bht-a .filter-btn:is(.active,:hover) { background:#08649c; color:#fff; border-color:#08649c; }
html body.bht-a :is(.submit-btn,.btn-primary,.cta-btn.primary) { background:#08649c; color:#fff; border:1px solid #08649c; border-radius:10px; }
html body.bht-a .cta-section { background:#0a2a66; color:#fff; }
html body.bht-a .bht-legal { max-width:850px; margin:3rem auto; padding-inline:2rem; }
html body.bht-a .bht-legal h2 { margin:2rem 0 .7rem; font-size:1.4rem; }
html body.bht-a .bht-legal p { margin-bottom:1rem; }
html body.bht-a .bht-footer { width:100%; max-width:none; margin-top:2rem; padding:2.5rem 1.5rem; border-radius:0; background:#071a33; color:#d3e1f1; line-height:1.8; text-align:center; overflow-wrap:anywhere; }
html body.bht-a .bht-footer a,html body.bht-a .bht-footer button,html body.bht-a .bht-footer a:hover { color:#a5ddff; }
html body.bht-a .bht-footer button { margin-top:.8rem; padding:.4rem .8rem; border:1px solid #7299b9; border-radius:8px; background:transparent; cursor:pointer; }
html body.bht-a .login-container { width:calc(100% - 2rem); max-width:440px; margin:2.5rem auto; overflow:hidden; }
html body.bht-a .login-header { background:var(--bg-secondary); color:var(--text-primary); padding:1.5rem; }
html body.bht-a .login-header h1 { font-size:1.2rem; }
html body.bht-a .login-header p { color:var(--text-secondary); opacity:1; }
html body.bht-a .login-logo { width:64px; height:64px; object-fit:contain; background:#fff; border-radius:12px; }
html body.bht-a .bht-expired-card { max-width:700px; margin:3rem auto; padding:2rem; text-align:center; }
html body.bht-a .bht-expired-card>img { display:none; }
html body.bht-a .bht-expired-card a { color:var(--accent); overflow-wrap:anywhere; }
html body.bht-a .bht-expired-card p { color:var(--text-secondary); }
html body.bht-a .bht-expired-card .cta { background:#08649c; color:#fff; }
html body.bht-a :is(.reveal,.reveal-stagger,.demo-header-inner) { opacity:1; transform:none; animation:none; transition:none; }
html body.bht-a .demo-header-inner>img { display:none; }
html body.bht-a .demo-header .client-name { color:#fff; }
html body.bht-a :is(.demo-section h2,.demo-cta h2,.feature-card h3) { color:var(--text-primary); }
html body.bht-a :is(.demo-cta p,.feature-card p,.empty-message,.demo-message) { color:var(--text-secondary); }
html body.bht-a .demo-message { background:var(--bg-secondary); }
html body.bht-a .cta-btn.secondary { color:var(--accent); background:var(--bg-secondary); border-color:var(--border-color); }
html body.bht-a .demo-footer { display:none; }
html body.bht-a .device-tabs { background:var(--bg-tertiary); }
html body.bht-a .device-tab { color:var(--text-secondary); }
html body.bht-a .device-tab.active { background:#08649c; color:#fff; }
html body.bht-a :is(.filter-btn,.submit-btn,.btn,.cta-btn,.cta,.project-link,.feature-card,.cookie-btn):hover { transform:none; }
html body.bht-a :is(.message,.cookie-consent) { animation:none; transition:none; }
@keyframes bhtShift { 0%,100% { background-position:0% 50%; } 50% { background-position:100% 50%; } }
@keyframes bhtFloat { 0%,100% { transform:translate(0,0); } 50% { transform:translate(-25px,20px); } }
@media(max-width:768px) {
  html body.bht-a .navbar { gap:.4rem; padding:.7rem .65rem; flex-wrap:wrap; }
  html body.bht-a .navbar-brand { font-size:.76rem; gap:.35rem; }
  html body.bht-a .navbar-logo { width:30px; max-width:30px; height:30px; }
  html body.bht-a .navbar-controls { gap:.3rem; margin-left:auto; }
  html body.bht-a .navbar-btn { padding:.35rem; font-size:.75rem; min-height:34px; }
  html body.bht-a .mobile-menu-btn { display:block; order:3; padding:.1rem .3rem; }
  html body.bht-a .navbar-links { display:none; order:4; position:static; width:100%; padding:.8rem 0; flex-direction:column; gap:.8rem; background:var(--bg-secondary); box-shadow:none; }
  html body.bht-a .navbar-links.active { display:flex; }
  html body.bht-a .bht-hero { padding:2.75rem 1.25rem; }
  html body.bht-a .bht-home-hero { padding-bottom:6rem; }
  html body.bht-a .bht-products { margin-top:-3rem; padding-inline:1rem; grid-template-columns:1fr; gap:1rem; }
  html body.bht-a .bht-products article { padding:1.5rem; }
  html body.bht-a :is(.container,.services-section>.container,.contact-section>.container,.bht-legal) { padding-inline:1rem; }
  html body.bht-a .contact-grid { grid-template-columns:minmax(0,1fr); }
  html body.bht-a .contact-form-wrapper { padding:1.5rem; }
  html body.bht-a .contact-item-content a { overflow-wrap:anywhere; }
  html body.bht-a .demo-container { padding-inline:1rem; }
}
@media(prefers-reduced-motion:reduce) {
  html body.bht-a,html body.bht-a *,html body.bht-a *::before,html body.bht-a *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
