/* ==========================================================================
   Samhita Engineering — theme.css
   Shared components for the graphite/paper/amber/trace design system.
   All pages load this; page templates contain only content markup.
   ========================================================================== */

.se-site *{ box-sizing:border-box; }
.se-site{ background:var(--se-paper); }
.se-site .wrap{ max-width:1180px; margin:0 auto; padding:0 24px; }
.se-site a{ text-decoration:none; }

.se-site .eyebrow{
    font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:.14em;
    text-transform:uppercase; font-weight:500; display:inline-flex; align-items:center; gap:8px;
}
.se-site .eyebrow::before{ content:""; width:16px; height:1px; background:currentColor; display:inline-block; }

/* ---------- Buttons ---------- */
.se-btn{ font-family:'IBM Plex Sans'; font-weight:600; font-size:14px; padding:13px 24px; border-radius:2px; display:inline-flex; align-items:center; gap:8px; transition:transform .15s ease, background .15s ease; }
.se-btn:hover{ transform:translateY(-1px); }
.se-btn-primary{ background:var(--se-amber); color:var(--se-amber-ink) !important; }
.se-btn-primary:hover{ background:#FFB246; color:var(--se-amber-ink) !important; }
.se-btn-outline{ border:1px solid var(--se-hairline-dark); color:#EAEDF2 !important; }
.se-btn-outline:hover{ border-color:#4C5A6C; }
.se-btn-outline-light{ border:1px solid var(--se-hairline-light); color:var(--se-ink) !important; }
.se-btn-dark{ background:var(--se-ink); color:#fff !important; }
.se-btn-dark:hover{ background:#1C2330; }

/* ---------- Homepage hero ---------- */
.se-hero{ background:var(--se-ink); color:#EAEDF2; padding:72px 0 56px; border-bottom:1px solid var(--se-hairline-dark); }
.se-hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center; }
.se-hero .eyebrow{ color:var(--se-amber); margin-bottom:20px; }
.se-hero h1{ font-family:'Space Grotesk',sans-serif; font-size:clamp(30px,4.2vw,48px); line-height:1.1; font-weight:600; color:#fff; margin:0; }
.se-hero h1 em{ font-style:normal; color:var(--se-trace); }
.se-hero p.lead{ margin-top:20px; font-size:16.5px; line-height:1.65; color:var(--se-text-muted-dark); max-width:520px; }
.se-cta-row{ display:flex; gap:12px; margin-top:30px; flex-wrap:wrap; }
.se-compliance-row{ margin-top:34px; padding-top:20px; border-top:1px solid var(--se-hairline-dark); display:flex; gap:10px; flex-wrap:wrap; }
.se-chip{ font-family:'IBM Plex Mono'; font-size:11px; padding:6px 10px; border:1px solid var(--se-hairline-dark); border-radius:2px; color:var(--se-text-muted-dark); }

/* ---------- Inner-page hero band ---------- */
.se-page-hero{ background:var(--se-ink); color:#EAEDF2; padding:64px 0 48px; border-bottom:1px solid var(--se-hairline-dark); }
.se-page-hero .eyebrow{ color:var(--se-amber); margin-bottom:16px; }
.se-page-hero h1{ font-family:'Space Grotesk'; font-size:clamp(28px,3.6vw,42px); line-height:1.12; font-weight:600; color:#fff; margin:0; max-width:760px; }
.se-page-hero p.lead{ margin-top:16px; font-size:16px; line-height:1.65; color:var(--se-text-muted-dark); max-width:640px; }
.se-page-hero .se-cta-row{ margin-top:26px; }

/* ---------- Trace diagram (homepage) ---------- */
.se-thread-panel{ background:var(--se-ink-2); border:1px solid var(--se-hairline-dark); border-radius:4px; padding:22px 18px 16px; }
.se-thread-panel-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; font-family:'IBM Plex Mono'; font-size:11px; color:var(--se-text-muted-dark); letter-spacing:.06em; }
.se-thread-panel-head .dot{ width:7px;height:7px;border-radius:50%;background:#3ADB76;display:inline-block;margin-right:6px; }
.se-trace-node-label{ font-family:'IBM Plex Mono'; font-size:9.5px; fill:#8B96A6; }
.se-trace-node-id{ font-family:'IBM Plex Mono'; font-size:9px; fill:#4C5A6C; }
.se-trace-line{ stroke:#3AA9FF; stroke-width:1.4; fill:none; stroke-dasharray:6 6; opacity:.55; }
.se-trace-line.solid{ stroke-dasharray:none; opacity:.9; }
.se-trace-node circle{ fill:#171D28; stroke:#3AA9FF; stroke-width:1.4; }
.se-trace-node.flag circle{ stroke:#FF9E1B; }
.se-trace-node.done circle{ fill:#17301F; stroke:#3ADB76; }

/* ---------- Sections ---------- */
.se-section{ padding:80px 0; }
.se-section-light{ background:var(--se-paper); color:#10141C; }
.se-section-dark{ background:var(--se-ink); color:#EAEDF2; border-top:1px solid var(--se-hairline-dark); border-bottom:1px solid var(--se-hairline-dark); }
.se-section-head{ max-width:680px; margin-bottom:48px; }
.se-section-light .eyebrow{ color:var(--se-rust); }
.se-section-dark .eyebrow{ color:var(--se-amber); }
.se-section-head h2{ font-family:'Space Grotesk'; font-size:clamp(24px,3vw,34px); margin-top:14px; line-height:1.2; font-weight:600; }
.se-section-light p.sub{ margin-top:12px; font-size:15px; line-height:1.65; max-width:600px; color:var(--se-text-muted-light); }
.se-section-dark p.sub{ margin-top:12px; font-size:15px; line-height:1.65; max-width:600px; color:var(--se-text-muted-dark); }

/* ---------- Findings grid ---------- */
.se-findings-grid{ display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--se-hairline-light); border-left:1px solid var(--se-hairline-light); }
.se-finding{ padding:28px 30px; border-right:1px solid var(--se-hairline-light); border-bottom:1px solid var(--se-hairline-light); background:var(--se-paper); }
.se-finding .fid{ font-family:'IBM Plex Mono'; font-size:12px; color:var(--se-rust); font-weight:600; }
.se-finding h3{ font-family:'Space Grotesk'; font-size:18px; margin-top:10px; font-weight:600; }
.se-finding p{ margin-top:8px; color:var(--se-text-muted-light); font-size:14px; line-height:1.6; }
@media (max-width:760px){ .se-findings-grid{ grid-template-columns:1fr; } }

/* ---------- Pipeline ---------- */
.se-pipeline{ position:relative; border-left:1px solid var(--se-hairline-dark); margin-left:6px; }
.se-section-light .se-pipeline{ border-left-color:var(--se-hairline-light); }
.se-pl-item{ position:relative; padding:0 0 40px 36px; }
.se-pl-item:last-child{ padding-bottom:4px; }
.se-pl-item::before{ content:""; position:absolute; left:-5.5px; top:4px; width:10px; height:10px; border-radius:50%; background:var(--se-ink); border:1.5px solid var(--se-trace); }
.se-section-light .se-pl-item::before{ background:var(--se-paper); }
.se-pl-item.emph::before{ border-color:var(--se-amber); }
.se-pl-id{ font-family:'IBM Plex Mono'; font-size:12px; color:var(--se-amber); font-weight:600; }
.se-section-light .se-pl-id{ color:var(--se-rust); }
.se-pl-item h3{ font-family:'Space Grotesk'; font-size:19px; font-weight:600; color:#fff; margin-top:4px; }
.se-section-light .se-pl-item h3{ color:var(--se-ink); }
.se-pl-item p{ margin-top:8px; color:var(--se-text-muted-dark); font-size:14px; max-width:640px; line-height:1.6; }
.se-section-light .se-pl-item p{ color:var(--se-text-muted-light); }
.se-pl-item ul{ margin:10px 0 0; padding-left:18px; color:var(--se-text-muted-dark); font-size:14px; line-height:1.7; max-width:640px; }
.se-section-light .se-pl-item ul{ color:var(--se-text-muted-light); }
.se-pl-link{ display:inline-block; margin-top:8px; font-size:12.5px; font-family:'IBM Plex Mono'; color:var(--se-trace); }
.se-section-light .se-pl-link{ color:var(--se-rust); }
.se-pl-link:hover{ text-decoration:underline; }

/* ---------- Industry chips ---------- */
.se-industry-row{ display:flex; flex-wrap:wrap; gap:12px; }
.se-industry-chip{ border:1px solid var(--se-hairline-light); background:var(--se-paper-2); padding:13px 17px; border-radius:3px; font-size:13.5px; }
.se-industry-chip .std{ display:block; margin-top:4px; font-family:'IBM Plex Mono'; font-size:11px; color:var(--se-text-muted-light); }
.se-industry-chip.primary{ border-color:var(--se-ink); background:var(--se-ink); color:#fff; }
.se-industry-chip.primary .std{ color:var(--se-amber); }

/* ---------- Detail cards (features, industries, templates) ---------- */
.se-card-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:20px; }
.se-card{ border:1px solid var(--se-hairline-light); background:var(--se-paper-2); border-radius:3px; padding:26px 26px 22px; display:flex; flex-direction:column; }
.se-card .se-card-id{ font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--se-rust); font-weight:600; letter-spacing:.04em; }
.se-card h3{ font-family:'Space Grotesk'; font-size:18.5px; font-weight:600; margin:10px 0 0; }
.se-card p{ margin:10px 0 0; color:var(--se-text-muted-light); font-size:14px; line-height:1.6; }
.se-card ul{ margin:12px 0 0; padding-left:18px; color:var(--se-text-muted-light); font-size:13.5px; line-height:1.8; }
.se-card .se-card-cta{ margin-top:auto; padding-top:16px; }
.se-card.dark{ background:var(--se-ink); border-color:var(--se-ink); color:#EAEDF2; }
.se-card.dark h3{ color:#fff; }
.se-card.dark p, .se-card.dark ul{ color:var(--se-text-muted-dark); }
.se-card.dark .se-card-id{ color:var(--se-amber); }

/* ---------- Two-column content (about) ---------- */
.se-two-col{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:820px){ .se-two-col{ grid-template-columns:1fr; } }

/* ---------- Doc/template cards ---------- */
.se-doc-card{ border:1px solid var(--se-hairline-light); background:var(--se-paper-2); padding:22px; border-radius:3px; display:flex; flex-direction:column; }
.se-doc-card .se-mono-label{ font-family:'IBM Plex Mono'; font-size:11px; color:var(--se-rust); font-weight:600; letter-spacing:.04em; }
.se-doc-card h4{ font-family:'Space Grotesk'; margin:8px 0 0; font-size:16px; font-weight:600; }
.se-doc-card p{ margin:8px 0 0; font-size:13.5px; color:var(--se-text-muted-light); line-height:1.6; }
.se-doc-card .se-card-cta{ margin-top:auto; padding-top:16px; }
.se-doc-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:18px; }

/* ---------- Credibility split ---------- */
.se-cred-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
@media (max-width:760px){ .se-cred-grid{ grid-template-columns:1fr; } }

/* ---------- FAQ accordion ---------- */
.se-faq{ border-top:1px solid var(--se-hairline-light); max-width:820px; }
.se-faq details{ border-bottom:1px solid var(--se-hairline-light); }
.se-faq summary{ cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:20px 4px; font-family:'Space Grotesk'; font-weight:600; font-size:16.5px; }
.se-faq summary::-webkit-details-marker{ display:none; }
.se-faq summary::after{ content:"+"; font-family:'IBM Plex Mono'; color:var(--se-rust); font-size:18px; flex-shrink:0; }
.se-faq details[open] summary::after{ content:"–"; }
.se-faq .se-faq-a{ padding:0 4px 22px; color:var(--se-text-muted-light); font-size:14.5px; line-height:1.7; max-width:700px; }

/* ---------- Contact form ---------- */
.se-form-panel{ border:1px solid var(--se-hairline-light); background:var(--se-paper-2); border-radius:3px; padding:32px; max-width:720px; }
.se-form-panel label{ display:block; font-family:'IBM Plex Mono'; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--se-text-muted-light); margin:18px 0 6px; }
.se-form-panel label:first-of-type{ margin-top:0; }
.se-form-panel input, .se-form-panel select, .se-form-panel textarea{
    width:100%; padding:12px 14px; border:1px solid var(--se-hairline-light); border-radius:2px;
    font-family:'IBM Plex Sans'; font-size:14.5px; background:#fff; color:var(--se-ink);
}
.se-form-panel input:focus, .se-form-panel select:focus, .se-form-panel textarea:focus{
    outline:none; border-color:var(--se-trace); box-shadow:0 0 0 1px var(--se-trace);
}
.se-form-panel button[type="submit"]{ margin-top:24px; border:none; cursor:pointer; }
.se-contact-meta{ margin-top:28px; }
.se-contact-meta p{ font-size:14.5px; color:var(--se-text-muted-light); margin:0 0 10px; }
.se-contact-meta i{ color:var(--se-rust); width:20px; }

/* ---------- CTA band ---------- */
.se-cta-band{ background:var(--se-amber); color:var(--se-amber-ink); padding:56px 0; }
.se-cta-band-inner{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.se-cta-band h2{ font-family:'Space Grotesk'; font-size:clamp(22px,3vw,30px); font-weight:600; max-width:560px; margin:0; }

/* ---------- Cookie consent banner ---------- */
.se-consent{
    position:fixed; left:16px; right:16px; bottom:16px; z-index:9999;
    max-width:560px; margin:0 auto;
    background:var(--se-ink); color:#EAEDF2;
    border:1px solid var(--se-hairline-dark); border-radius:4px;
    padding:18px 20px;
    box-shadow:0 8px 32px rgba(16,20,28,.35);
}
.se-consent p{ margin:0; font-size:13.5px; line-height:1.6; color:var(--se-text-muted-dark); }
.se-consent p a{ color:var(--se-trace); }
.se-consent-actions{ display:flex; gap:10px; margin-top:14px; }
.se-consent-actions .se-btn{ padding:9px 18px; font-size:13px; cursor:pointer; border:none; }
.se-consent-actions .se-btn-outline-light{ background:transparent; border:1px solid var(--se-hairline-dark); color:#EAEDF2 !important; }

/* ---------- 404 ---------- */
.se-404{ text-align:center; padding:110px 0; }
.se-404 .code{ font-family:'IBM Plex Mono'; font-size:64px; font-weight:600; color:var(--se-rust); }
.se-404 h2{ font-family:'Space Grotesk'; font-size:26px; font-weight:600; margin-top:8px; }
.se-404 p{ color:var(--se-text-muted-light); margin-top:12px; }

/* ---------- Placeholder blocks (content pending) ---------- */
.se-pending{ border:1px dashed var(--se-hairline-light); border-radius:3px; padding:26px; color:var(--se-text-muted-light); font-size:14px; background:rgba(255,255,255,.5); }
.se-pending .se-mono-label{ font-family:'IBM Plex Mono'; font-size:11px; color:var(--se-rust); font-weight:600; display:block; margin-bottom:8px; }

@media (max-width:860px){ .se-hero-grid{ grid-template-columns:1fr; } }
