/* Website design system. Applied by build.py to HEADER pages only.
   styles.css remains a compatibility stylesheet for sibling sites.
   Order: legacy layout → page-specific visuals → this shared presentation layer. */
.site-ui {
 --site-paper:#fff;
 --site-ground:#f6f8fa;
 --site-ink:#2c3e50;
 --site-slate:#314352;
 --site-muted:#526677;
 --site-rule:#dce3e8;
 --site-orange:#e73c17;
 --site-action:#bd3012;
 --site-radius:3px;
 --site-section:72px;
 --site-gap:40px;
 --site-h1:clamp(34px,4vw,56px);
 --site-h2:clamp(27px,3vw,38px);
 --site-h3:22px;
 --primary-color:var(--site-orange);
 --secondary-color:var(--site-slate);
 --dark-color:var(--site-ink);
 --text-color:var(--site-ink);
 background:var(--site-paper);
 color:var(--site-ink);
 font-family:'Montserrat','Segoe UI',sans-serif;
 line-height:1.7;
}
.site-ui *, .site-ui *::before, .site-ui *::after { box-sizing:border-box; }
.site-ui .container { width:100%; max-width:1200px; padding-inline:32px; }
.site-ui section[id], .site-ui main[id] { scroll-margin-top:110px; }
.site-ui h1 { font-size:var(--site-h1); line-height:1.14; letter-spacing:-.035em; }
.site-ui :is(h2,.section-title,.section-title-centered,.section-intro h2) { font-size:var(--site-h2); line-height:1.22; letter-spacing:-.025em; }
.site-ui h3 { line-height:1.35; }
.site-ui :is(.section-title,.section-title-centered) { margin-bottom:36px; }
.site-ui .section-title::after { height:3px; width:64px; margin-top:18px; border-radius:0; }
.site-ui :is(.section-title,.section-title-centered,.section-intro h2)>i { display:none; }
.site-ui :is(.section-subtitle,.section-intro .lead,.centered-text p) { color:var(--site-muted); line-height:1.75; }
.site-ui :is(.case-study-section,.services,.process,.contact,.about,.ai-eng-details,.db-section,.oss-section) { padding-block:var(--site-section); }
.site-ui :is(.case-study-section.bg-light,.site-ground) { background:var(--site-ground); }
.site-ui .site-paper { background:var(--site-paper); }
.site-ui :is(.split-content,.hero-grid,.content-with-sidebar) { gap:var(--site-gap); }
.site-ui :is(.split-content,.hero-grid,.content-with-sidebar,.details-grid,.results-grid)>* { min-width:0; }
.site-ui :is(.section-intro,.centered-text) { margin-bottom:36px; }
.site-ui :is(.section-intro,.main-content) p+p { margin-top:16px; }
.site-ui :is(.image-caption,.asset-meta) { color:var(--site-muted); font-size:13px; font-style:normal; }
/* Shared actions: accessible orange, consistent borders and no hovering cards. */
.site-ui :is(.btn,.btn-secondary,.btn-small) {
 display:inline-flex; align-items:center; justify-content:center; gap:8px;
 font-family:inherit; font-size:14px; font-weight:600; line-height:1.5;
 padding:12px 20px; min-height:44px; max-width:100%; white-space:normal;
 border:1px solid var(--site-action); border-radius:var(--site-radius);
 background:var(--site-action); color:#fff; box-shadow:none; letter-spacing:0;
 text-decoration:none; vertical-align:middle; margin:0; cursor:pointer;
 transition:background-color .15s,color .15s,border-color .15s;
}
.site-ui .btn-secondary { color:var(--site-action); background:#fff; }
.site-ui :is(.btn,.btn-secondary,.btn-small):hover { background:var(--site-slate); border-color:var(--site-slate); color:#fff; box-shadow:none; transform:none; }
.site-ui :is(.btn,.btn-secondary)+:is(.btn,.btn-secondary) { margin-left:8px; }
.site-ui :is(.cta-buttons,.site-actions,.architectural-home-actions,.oss-actions,.db-actions) { display:flex; align-items:center; flex-wrap:wrap; gap:12px 20px; }
.site-ui :is(.cta-buttons,.site-actions,.architectural-home-actions,.oss-actions,.db-actions)>.btn { margin:0; }
.site-ui :is(a,button,input,select,textarea,summary):focus-visible { outline:2px solid var(--site-action); outline-offset:4px; }
.site-ui :is(p,li) a:not(.btn):not(.btn-secondary) { text-underline-offset:4px; }
.site-ui .site-skip { position:fixed; left:16px; top:-100px; z-index:1000; background:#fff; color:var(--site-action); padding:12px 20px; border:1px solid var(--site-rule); }
.site-ui .site-skip:focus { top:12px; }
/* One quiet header; keep familiar navigation and mobile-menu behaviour. */
.site-ui header { background:#fff; box-shadow:none; border-bottom:1px solid var(--site-rule); padding:16px 0; }
.site-ui header .logo { font-size:26px; }
.site-ui header .logo img { width:44px; height:44px; margin-right:12px; }
.site-ui header .nav-links a { font-size:14px; }
.site-ui footer { background:var(--site-slate); padding:56px 0 28px; }
.site-ui footer :is(p,li,a,.method-details p) { color:#d3dce3; }
.site-ui footer :is(h3,h4) { color:#fff; }
.site-ui footer .method-icon { background:transparent; }
.site-ui footer .method-icon svg { color:#fff; }
.site-ui .copyright { border-top-color:#ffffff26; }
/* Light page heroes; photography is an explicit exception. */
.site-ui :is(.case-study-hero,.case-study-hero-with-image,.hero-ai-eng):not(.site-hero-photo) { background:#fff; color:var(--site-ink); padding:64px 0; border-bottom:1px solid var(--site-rule); }
.site-ui :is(.case-study-hero,.case-study-hero-with-image,.hero-ai-eng) h1 { font-size:var(--site-h1); color:var(--site-ink); line-height:1.14; max-width:23ch; margin-bottom:24px; }
.site-ui :is(.case-study-hero,.case-study-hero-with-image,.hero-ai-eng) :is(.lead,.hero-content>p) { color:var(--site-muted); font-size:19px; line-height:1.75; opacity:1; }
.site-ui :is(.case-study-hero,.case-study-hero-with-image) .case-study-logo-text { color:var(--site-slate); font-size:26px; }
.site-ui .back-link { color:var(--site-action); font-size:13px; opacity:1; margin-bottom:24px; }
.site-ui :is(.hero-stats-row,.case-study-hero-stats) { border-top:1px solid var(--site-rule); margin-top:36px; padding-top:24px; gap:24px; }
.site-ui :is(.hero-stats-row,.case-study-hero-stats) .stat { color:var(--site-slate); }
.site-ui :is(.hero-stats-row,.case-study-hero-stats) .stat strong { font-size:22px; line-height:1.3; }
.site-ui :is(.hero-stats-row,.case-study-hero-stats) .stat span { color:var(--site-muted); opacity:1; }
.site-ui :is(.hero-stats-row,.case-study-hero-stats) .stat i { font-size:22px; color:var(--site-action); }
.site-ui .case-study-meta .tag { background:var(--site-ground); color:var(--site-slate); border-radius:var(--site-radius); }
.site-ui .site-hero-photo { padding:80px 0 64px; }
.site-ui .site-hero-photo :is(h1,.lead,.back-link,.stat,.stat strong,.stat span) { color:#fff; }
.site-ui .site-hero-photo .hero-stats-row { border-top-color:#ffffff4d; }
.site-ui .site-hero-photo h1 { max-width:none; }
/* Reusable editorial cards and media. Semantic diagrams retain their colours. */
.site-ui :is(.feature-card,.feature-item,.result-card,.result-small,.detail-item,.site-panel,.sidebar-cta .cta-box) {
 background:#fff; color:var(--site-ink); padding:24px; border:1px solid var(--site-rule); border-radius:var(--site-radius); box-shadow:none;
}
.site-ui :is(.feature-card,.result-card,.detail-item,.site-panel):hover { transform:none; box-shadow:none; }
.site-ui :is(.result-card.highlight,.site-panel-accent) { border-top:3px solid var(--site-orange); }
.site-ui :is(.feature-card,.feature-item,.result-card,.result-small,.challenge-point)>i { font-size:26px; color:var(--site-slate); }
.site-ui :is(.result-value,.result-number) { color:var(--site-action); }
.site-ui .result-big { background:var(--site-ground); color:var(--site-slate); border:1px solid var(--site-rule); border-top:3px solid var(--site-orange); border-radius:var(--site-radius); padding:32px; }
.site-ui .result-big h3 { color:var(--site-slate); }
.site-ui :is(.tech-item,.tech-items span) { border:1px solid var(--site-rule); border-radius:var(--site-radius); background:#fff; box-shadow:none; }
.site-ui :is(.highlight-text,.testimonial) { background:var(--site-ground); border:0; border-left:3px solid var(--site-orange); padding:24px 28px; border-radius:0; box-shadow:none; }
.site-ui :is(.hero-screenshot,.image-content img,.feature-screenshot img,.site-screenshot) { border-radius:var(--site-radius); box-shadow:none; }
.site-ui .hero-screenshot { border:1px solid var(--site-rule); }
.site-ui .site-screenshot { display:block; max-width:100%; height:auto; }
.site-ui .showcase-icon { width:48px; height:48px; background:transparent; border-radius:0; margin-bottom:16px; }
.site-ui .showcase-icon i { color:var(--site-action); font-size:30px; }
.site-ui .site-protocol-art { display:block; width:160px; height:auto; aspect-ratio:3/2; margin:0 auto 20px; box-shadow:none; }
.site-ui .site-story { border-top:1px solid var(--site-rule); padding:32px 0; margin:0; background:#fff; }
/* Slate sections are purposeful emphasis, not separate palettes. */
.site-ui :is(.site-band,.case-study-cta) { background:var(--site-slate); color:#fff; padding-block:var(--site-section); }
.site-ui :is(.site-band,.case-study-cta) :is(h1,h2,h3,.section-subtitle) { color:#fff; }
.site-ui :is(.site-band,.case-study-cta)>.container>p { color:#e1e7eb; }
.site-ui :is(.site-band,.case-study-cta) .btn-secondary { background:transparent; color:#fff; border-color:#c4ced6; }
.site-ui :is(.site-band,.case-study-cta) .btn-secondary:hover { background:#fff; color:var(--site-slate); }
/* Forms share presentation; Firebase validation and payloads are untouched. */
.site-ui .contact-form { padding:28px; background:#fff; border:1px solid var(--site-rule); border-radius:var(--site-radius); box-shadow:none; }
.site-ui .form-group label { font-size:14px; color:var(--site-slate); }
.site-ui .form-group :is(input,select,textarea) { font:inherit; font-size:16px; line-height:1.5; padding:12px; border:1px solid #aebcc7; border-radius:var(--site-radius); color:var(--site-ink); background:#fff; }
.site-ui .form-group textarea { min-height:140px; }
.site-ui input[type=checkbox] { accent-color:var(--site-action); }
.site-ui .site-consent { display:flex; align-items:flex-start; gap:10px; font-size:14px; line-height:1.6; cursor:pointer; font-weight:400; margin-top:12px; }
.site-ui .site-consent input { margin-top:5px; flex-shrink:0; }
/* Specific layouts use the same tokens without losing their behaviour. */
.site-ui :is(.oss-hero,.db-hero) { padding-block:64px; }
.site-ui .asset-library { padding-top:64px; }
.site-ui .db-envelope { box-shadow:none; border-radius:var(--site-radius); }
.site-ui .site-prose { max-width:820px; padding-block:64px; }
.site-ui .site-prose h1 { margin-bottom:16px; }
.site-ui .site-prose h2 { font-size:24px; margin:36px 0 16px; }
.site-ui .site-prose h3 { font-size:19px; margin:24px 0 12px; }
.site-ui .site-prose :is(ul,ol) { padding-left:24px; margin:16px 0; }
.site-ui .site-prose p { margin-bottom:16px; }
.site-ui .site-prose li+li { margin-top:8px; }
.site-ui .site-vision-hero .container { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:40px; align-items:center; }
.site-ui .site-vision-hero .hero-content { padding:0; max-width:none; }
.site-ui .site-vision-hero .hero-image { position:static; width:100%; height:auto; opacity:1; transform:none; max-width:500px; }
@media(max-width:1024px) {
 .site-ui header .nav-links a { font-size:16px; }
 .site-ui header .nav-links { box-shadow:none; border-bottom:1px solid var(--site-rule); }
}
@media(max-width:900px) {
 .site-ui .oss-explorer-launch { display:none; }
 .site-ui { --site-section:48px; --site-gap:28px; }
 .site-ui .container { padding-inline:24px; }
 .site-ui .hero-grid { grid-template-columns:1fr; }
 .site-ui .site-vision-hero .container { grid-template-columns:1fr; }
 .site-ui .site-vision-hero .hero-image { justify-self:center; max-width:400px; }
 .site-ui :is(.case-study-hero,.case-study-hero-with-image,.hero-ai-eng):not(.site-hero-photo) { padding-block:48px; }
}
@media(max-width:600px) {
 .site-ui .container { padding-inline:20px; }
 .site-ui header .logo { font-size:23px; }
 .site-ui header .logo img { width:36px; height:36px; }
 .site-ui :is(.btn,.btn-secondary)+:is(.btn,.btn-secondary) { margin-left:0; margin-top:8px; }
 .site-ui :is(.site-actions,.cta-buttons,.architectural-home-actions,.oss-actions,.db-actions)>.btn { margin:0; }
 .site-ui :is(.content-with-sidebar,.split-content,.results-showcase) { grid-template-columns:1fr; }
 .site-ui :is(.hero-stats-row,.case-study-hero-stats) { grid-template-columns:1fr 1fr; }
 .site-ui .hero-stats-row .stat strong { font-size:19px; overflow-wrap:anywhere; }
 .site-ui :is(.result-big,.feature-card,.result-card,.site-panel,.contact-form) { padding:22px; }
 .site-ui .site-hero-photo { padding:56px 0 48px; }
 .site-ui .site-story { padding:24px 0; }
 .site-ui :is(.oss-hero,.db-hero) { padding-block:48px; }
 .site-ui .asset-library { padding-top:48px; }
 .site-ui footer .footer-content { display:grid; grid-template-columns:1fr 1fr; gap:32px 24px; }
 .site-ui footer .footer-column { min-width:0; margin:0; }
 .site-ui footer .footer-column a { overflow-wrap:anywhere; }
 .site-ui .site-prose { padding-block:48px; }
}
@media(prefers-reduced-motion:reduce) {
 .site-ui :is(.btn,.feature-card,.case-study-card-compact,.service-card,.site-panel) { transition:none; }
}

/* Shared type and spacing for the previously independent page families. */
.site-ui :is(.architectural-home-copy,.open-source-page,.db-hero) h1 { font-size:var(--site-h1); line-height:1.14; }
.site-ui .hero-ai-eng, .site-ui .hero-ai-eng .container { min-height:0; }
.site-ui .hero-ai-eng .hero-content { text-align:left; }
.site-ui .case-study-meta { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 0; }
.site-ui .case-study-meta .tag { display:inline-block; font-size:12px; line-height:1.5; padding:4px 9px; border:1px solid var(--site-rule); }
.site-ui .case-study-card-compact { box-shadow:none; border:1px solid var(--site-rule); border-radius:var(--site-radius); }
.site-ui .case-study-card-compact:hover { transform:none; box-shadow:none; }
.site-ui .case-study-card-compact:hover .case-study-image img { transform:none; }
.site-ui :is(.db-real-preview img,.db-document-preview) { box-shadow:none; }
.site-ui.site-page-workshops :is(.service-card,.faq-item) { box-shadow:none; border:1px solid var(--site-rule); border-radius:var(--site-radius); padding:24px; }
.site-ui.site-page-workshops .service-card:hover { transform:none; box-shadow:none; }
.site-ui .pricing-tier, .site-ui .tier-option-card { border-radius:var(--site-radius); }
.site-ui .pricing-tier .badge { border-radius:var(--site-radius); background:var(--site-action); text-transform:none; }
.site-ui .pricing-tier :is(.tagline,.price-sub) { opacity:1; color:#dce3e8; }
.site-ui .tier-option { position:relative; }
.site-ui .tier-option input[type=radio] { display:block; position:absolute; width:1px; height:1px; opacity:0; }
.site-ui .tier-option input[type=radio]:focus-visible+.tier-option-card { outline:2px solid var(--site-action); outline-offset:4px; }
.site-ui .site-form-submit { width:100%; }
.site-ui .site-vision-hero .hero-image { max-width:100%; margin:0; order:0; }

.site-ui .detail-item h3 { color:var(--site-slate); }
.site-ui .service-icon { width:48px; height:48px; background:transparent; border-radius:0; color:var(--site-action); }
.site-ui .service-icon i { font-size:28px; color:var(--site-action); }
