/* ============================================================================
   SutureNote — Structura-style theme (shared across all pages)

   Authored 2026-05-27 alongside the Structura aesthetic rollout (Phase 1).
   Load AFTER asset/css/style.css and asset/css/custom.css so the brand
   tokens + minimal-display treatment override page Tailwind utilities only
   where opted in.

   Pages opt into the heavy editorial hero via the `.sn-hero` wrapper, the
   oversized brand watermark via `<div class="sn-watermark">SutureNote</div>`,
   and the column rules via `<div class="sn-grid-guides"><span></span>...`.
   Plain pages (legal, articles) just inherit the type ramp + nav/footer
   styles without the hero treatment.
   ========================================================================= */

/* Inter weight 100–300 added for Helvetica-Neue-Thin fallback on
   non-Mac browsers. macOS / iOS render real Helvetica Neue locally. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap');

:root {
    /* Brand palette — Structura's mono ink + your existing brand gradient kept
       as an accent so the page never reads fully monochrome. */
    --sn-ink: #0F0F11;
    --sn-ink-soft: #4A4A4F;
    --sn-paper: #FFFFFF;
    --sn-paper-2: #F4F4F5;
    --sn-rule: #E7E7E8;
    --sn-watermark: rgba(15, 15, 17, 0.04);
    --sn-brand-1: #41b1ff;
    --sn-brand-2: #a055f3;
    --sn-grad: linear-gradient(135deg, var(--sn-brand-1), var(--sn-brand-2));

    /* Compact spacing scale tuned so hero content fits viewport on 700px+
       useful height. */
    --sn-nav-h: 64px;
    --sn-hero-pad-y: 24px;
    --sn-hero-pad-x: clamp(20px, 4vw, 56px);
}

/* ============ Reset-ish on body so the type ramp lands consistently ====== */
body {
    /* Neue Helvetica 35 Thin first (Linotype). macOS/iOS ship "Helvetica
       Neue" which carries the 35 Thin weight at font-weight: 200. On
       Windows/Linux we fall back to Inter Thin (a close cousin) loaded
       above. Arial is the last resort. */
    font-family: 'Helvetica Neue', 'HelveticaNeue', 'Inter', -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif;
    font-weight: 300;
    -webkit-font-smoothing: antialiased;
    color: var(--sn-ink);
    /* Force pure white so the SutureNote watermark + grid guides stay
       visible site-wide. Several pages set their own off-white body
       background in inline <style> blocks (blog: #F9FAFB, release:
       #EEF0F8, etc.) — !important wins those without touching each
       page. Tailwind `bg-*` utilities on <body> still apply because
       they sit on later inline-style attributes; the pricing page
       which intentionally wants white inherits this too. */
    background: var(--sn-paper) !important;
}

/* ============================================================================
   NAV STYLES — header (inline on index, included on other pages)
   ============================================================================ */

/* Brand mark — small gradient square next to the wordmark. Pages can apply
   `.sn-brand-mark` to the inline logo wrapper. */
.sn-brand-mark {
    width: 22px;
    height: 22px;
    background: var(--sn-grad);
    border-radius: 4px;
    display: inline-block;
}

/* Primary nav link styling */
.sn-nav-link {
    color: var(--sn-ink);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0;
    text-decoration: none;
    transition: color 0.15s ease;
}
.sn-nav-link:hover {
    color: var(--sn-brand-2);
}

/* Sign-in button (outlined → fills on hover). Replaces the gradient pill. */
.sn-signin {
    display: inline-block;
    font-weight: 600;
    font-size: 14px;
    padding: 9px 22px;
    color: var(--sn-ink);
    background: transparent;
    border: 1.5px solid var(--sn-ink);
    border-radius: 0;
    transition: background 0.15s ease, color 0.15s ease;
    text-decoration: none;
}
.sn-signin:hover {
    background: var(--sn-grad);
    border-color: transparent;
    color: white;
}

/* Sign-up button — filled gradient pill, the primary header CTA. */
.sn-signup {
    display: inline-block;
    font-weight: 600;
    font-size: 14px;
    padding: 9px 22px;
    color: white;
    background: var(--sn-grad);
    border: 1.5px solid transparent;
    border-radius: 0;
    transition: opacity 0.15s ease;
    text-decoration: none;
}
.sn-signup:hover {
    opacity: 0.9;
}

/* ============================================================================
   HERO LAYOUT — opt-in via `.sn-hero` on the section wrapper
   ============================================================================ */

.sn-hero {
    position: relative;
    padding: var(--sn-hero-pad-y) var(--sn-hero-pad-x);
    min-height: calc(100vh - var(--sn-nav-h));
    background: var(--sn-paper);
    overflow: hidden;
}

/* Oversized faint brand wordmark behind the hero. Pages drop a
   `<div class="sn-watermark">SutureNote</div>` inside `.sn-hero`.
   Slow horizontal drift gives the hero a sense of breathing motion
   without distracting from the foreground content. Respects
   prefers-reduced-motion for accessibility. */
.sn-watermark {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    text-align: center;
    font-size: clamp(140px, 20vw, 320px);
    font-weight: 900;
    letter-spacing: -0.045em;
    color: var(--sn-watermark);
    line-height: 0.85;
    user-select: none;
    pointer-events: none;
    white-space: nowrap;
    overflow: hidden;
    z-index: 0;
    animation: sn-watermark-drift 18s ease-in-out infinite;
    will-change: transform;
}
@keyframes sn-watermark-drift {
    0%   { transform: translateX(0); }
    50%  { transform: translateX(-48px); }
    100% { transform: translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
    .sn-watermark { animation: none; }
}

/* Page-level watermark variant: for pages without a `.sn-hero` wrapper
   (legal, blog, support, etc.). Sits absolutely at the top of the page
   so it appears as a faint top-band background that scrolls away as
   the user reads. Sized smaller than the hero variant so it doesn't
   dominate plain pages. `z-index: -1` keeps it behind static siblings
   without overriding fixed-position UI (drawers, modals). */
body:has(> .sn-watermark--page) { position: relative; }
.sn-watermark--page {
    position: absolute;
    top: var(--sn-nav-h);
    z-index: -1;
    font-size: clamp(110px, 16vw, 240px);
}
/* Let the watermark show through top-of-page title bands on themed pages.
   Without this, page-level `<section class="blog-header">` etc. paint a
   solid `var(--bg-white)` band that covers the watermark completely. */
body:has(> .sn-watermark--page) .blog-header,
body:has(> .sn-watermark--page) .blog-list-header,
body:has(> .sn-watermark--page) .support-header,
body:has(> .sn-watermark--page) .page-header-band {
    background: transparent !important;
}
/* Tiny butterfly mark above the title on .page-header-band sections
   (legal pages + release page) — gives each page a small brand beat
   below the nav, since their content is otherwise text-only. */
.page-header-band::before {
    content: "";
    display: block;
    width: 40px;
    height: 40px;
    margin: 0 auto 16px;
    background: url("../media/images/Suturenote_logo_BluePurple.png") center/contain no-repeat;
}

/* Override leftover `--primary: #7C3AED` (purple) used by the blog page
   inline <style> blocks for list bullets, link colors, back-arrows,
   marker dots, etc. Pages have a custom property scope; we redirect it
   to the Structura ink so the whole page reads monochrome. The
   `--primary-gradient` override flips CTA buttons (about-us, blog
   pages) from purple → ink so they match the home page Sign-in and
   pricing buttons. */
body:has(> .sn-watermark--page) {
    --primary: var(--sn-ink);
    --primary-dark: var(--sn-ink);
    --primary-gradient: var(--sn-ink);
}
/* Hardcoded purple SVG strokes that aren't reached by the variable
   override above (blog-list bullet-list checkmarks) — force currentColor
   so they inherit the surrounding ink text color. */
body:has(> .sn-watermark--page) svg [stroke="#7C3AED"] {
    stroke: currentColor !important;
}
body:has(> .sn-watermark--page) svg [fill="#7C3AED"] {
    fill: currentColor !important;
}


/* ============================================================================
   TYPE RAMP — display headlines + editorial body
   ============================================================================ */

.sn-display {
    /* Thin = 200 (Linotype Neue Helvetica 35 Thin). The large size carries
       the elegance; thin weight at display scale reads as confident, not
       wispy. */
    font-weight: 200;
    line-height: 0.95;
    letter-spacing: -0.025em;
    /* clamp lets the headline shrink at narrower viewports so it never forces
       scroll. Tuned so 3-line "Their Day 5. / Your Day 1. / No problem." fits
       in ~340px column height. */
    font-size: clamp(40px, 6vw, 78px);
    margin: 0 0 18px;
    color: var(--sn-ink);
}
.sn-display .sn-grad {
    background: var(--sn-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.sn-subhead {
    margin: 0 0 18px;
    font-size: clamp(15px, 1.1vw, 17px);
    line-height: 1.5;
    color: var(--sn-ink-soft);
    max-width: 540px;
}

.sn-microcaps {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--sn-ink-soft);
}

/* ============================================================================
   BUTTONS / CTAs
   ============================================================================ */

.sn-cta {
    display: inline-block;
    background: var(--sn-ink);
    color: white;
    padding: 16px 36px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.04em;
    border-radius: 0;
    border: none;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease;
    text-decoration: none;
}
.sn-cta:hover {
    background: var(--sn-grad);
    transform: translateY(-2px);
}

/* ============================================================================
   HERO STAT PILLS — compact inline badges below the subhead
   ============================================================================ */

.sn-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-bottom: 20px;
}
.sn-stat {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--sn-ink-soft);
}
.sn-stat::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--sn-grad);
    flex-shrink: 0;
}

/* ============================================================================
   TRUST STRIP — small chips for HIPAA, SOC2, etc. (replaces the round badges)
   ============================================================================ */

.sn-trust-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 18px;
    flex-wrap: wrap;
}
.sn-trust-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    background: var(--sn-paper-2);
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--sn-ink-soft);
    border-radius: 4px;
    text-decoration: none;
}
.sn-trust-chip:hover {
    background: white;
    color: var(--sn-ink);
}

/* ============================================================================
   FOOTER — editorial 5-column layout
   ============================================================================ */

.sn-footer {
    background: white;
    border-top: 1px solid var(--sn-rule);
    padding: 40px var(--sn-hero-pad-x) 24px;
}
/* Brand lock-up above the 5-column nav: butterfly mark + bold wordmark.
   Centered on its own row, separated by a hairline from the columns below. */
.sn-footer-lockup {
    max-width: 1600px;
    margin: 0 auto 28px;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--sn-rule);
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: var(--sn-ink);
}
.sn-footer-lockup-mark {
    width: 36px;
    height: 36px;
    object-fit: contain;
}
.sn-footer-lockup-wordmark {
    font-size: 16px;
    font-weight: 200;
    letter-spacing: 0.18em;
}
.sn-footer-grid {
    max-width: 1600px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 28px;
}
.sn-footer-col h5 {
    margin: 0 0 14px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--sn-ink);
}
.sn-footer-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.sn-footer-col li {
    margin-bottom: 9px;
    font-size: 13px;
}
.sn-footer-col a {
    color: var(--sn-ink-soft);
    text-decoration: none;
    transition: color 0.15s;
}
.sn-footer-col a:hover {
    color: var(--sn-brand-2);
}
.sn-footer-bottom {
    max-width: 1600px;
    margin: 28px auto 0;
    padding-top: 20px;
    border-top: 1px solid var(--sn-rule);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}
.sn-footer-bottom .copy {
    font-size: 11px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--sn-ink-soft);
}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */

@media (max-width: 1024px) {
    .sn-grid-guides { display: none; }
    .sn-watermark { font-size: clamp(100px, 18vw, 200px); }
    .sn-footer-grid { grid-template-columns: repeat(2, 1fr); }
}
/* Mobile (phones): bump body weight back to 400 so 13-14px copy
   stays legible at thin weight; shrink the page-level watermark
   floor so the wordmark doesn't overshoot the viewport; reduce
   the page-header butterfly so it doesn't dominate the narrow
   column above small legal headlines. */
@media (max-width: 720px) {
    body { font-weight: 400; }
    .sn-watermark--page { font-size: clamp(64px, 14vw, 140px); }
    .page-header-band::before { width: 28px; height: 28px; margin-bottom: 12px; }
}
@media (max-width: 640px) {
    .sn-display { font-size: clamp(36px, 11vw, 56px); }
    .sn-footer-grid { grid-template-columns: 1fr; }
}
