/* site.css bundle: tokens + components + landing (brand v0.1 DRAFT) + site. Generated by scripts/build.py; edit shared/styles/. */
/* Siqwes design tokens v0.1.0 - DRAFT, pending founder sign-off via Orion.
   Generated from brand/scripts/tokens.py (source of truth: design-tokens.json). Do not hand-edit values here. */
:root {
  /* Core palette */
  --color-night: #050B18;
  --color-navy-900: #0B1F45;
  --color-navy-800: #13306B;
  --color-electric-500: #1677FF;
  --color-cyan-400: #2FD3EE;
  --color-cyan-200: #9BE8F6;
  --color-blue-700: #1450C8;
  --color-blue-800: #0F3E9E;
  --color-cyan-700: #0A7894;
  --color-blue-100: #E3EDFF;
  --color-blue-50: #F1F6FF;
  --color-amber-500: #F2B544;
  --color-amber-100: #FDF1D8;
  --color-amber-800: #8A5300;
  --color-ink: #18202E;
  --color-slate: #475166;
  --color-stone: #5E6677;
  --color-line: #E4DCCF;
  --color-sand: #F3EDE3;
  --color-cream: #FBF8F2;
  --color-white: #FFFFFF;
  --color-success-700: #1F6F46;
  --color-success-100: #DFF1E6;
  --color-warning-700: #8A5300;
  --color-warning-100: #FDF0D5;
  --color-error-700: #B3261E;
  --color-error-100: #FBE4E1;
  /* Semantic roles */
  --bg-page: var(--color-cream);
  --bg-surface: var(--color-white);
  --bg-subtle: var(--color-sand);
  --bg-inverse: var(--color-night);
  --bg-inverse-soft: var(--color-navy-900);
  --bg-tint: var(--color-blue-50);
  --bg-highlight: var(--color-amber-100);
  --text-primary: var(--color-ink);
  --text-secondary: var(--color-slate);
  --text-muted: var(--color-stone);
  --text-heading: var(--color-navy-900);
  --text-link: var(--color-blue-700);
  --text-link-hover: var(--color-blue-800);
  --text-inverse: var(--color-white);
  --text-inverse-muted: var(--color-cyan-200);
  --text-eyebrow: var(--color-blue-700);
  --border-default: var(--color-line);
  --border-input: var(--color-stone);
  --border-strong: var(--color-slate);
  --focus-ring: var(--color-electric-500);
  --focus-ring-inverse: var(--color-cyan-400);
  --action-primary-bg: var(--color-blue-700);
  --action-primary-bg-hover: var(--color-blue-800);
  --action-primary-text: var(--color-white);
  --action-secondary-bg: var(--color-white);
  --action-secondary-text: var(--color-blue-700);
  --action-secondary-border: var(--color-blue-700);
  --action-secondary-bg-hover: var(--color-blue-50);
  --action-disabled-bg: var(--color-sand);
  --action-disabled-text: var(--color-stone);
  --action-disabled-border: var(--color-line);
  --accent: var(--color-amber-500);
  --glow-blue: var(--color-electric-500);
  --glow-cyan: var(--color-cyan-400);
  --success-text: var(--color-success-700);
  --success-bg: var(--color-success-100);
  --warning-text: var(--color-warning-700);
  --warning-bg: var(--color-warning-100);
  --error-text: var(--color-error-700);
  --error-bg: var(--color-error-100);
  /* Typography */
  --font-heading: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'Source Sans 3', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-mono: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --font-email-heading: Georgia, 'Times New Roman', serif;
  --font-email-body: -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --gradient-logo-si-dark: linear-gradient(60deg, #1677FF 15%, #2FD3EE 100%);
  --gradient-logo-si-light: linear-gradient(60deg, #1450C8 15%, #0A7894 100%);
  --gradient-hero-night: radial-gradient(120% 140% at 20% 20%, #0B2154 0%, #07122B 45%, #050B18 100%);
  --font-heading-variation: 'SOFT' 100, 'WONK' 0;
  --font-weight-regular: 400;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --text-display-size: 2.5rem;
  --text-display-line: 1.1;
  --text-display-weight: 600;
  --text-display-tracking: -0.01em;
  --text-h1-size: 2.125rem;
  --text-h1-line: 1.15;
  --text-h1-weight: 600;
  --text-h1-tracking: -0.01em;
  --text-h2-size: 1.75rem;
  --text-h2-line: 1.2;
  --text-h2-weight: 600;
  --text-h2-tracking: 0;
  --text-h3-size: 1.375rem;
  --text-h3-line: 1.25;
  --text-h3-weight: 600;
  --text-h3-tracking: 0;
  --text-h4-size: 1.25rem;
  --text-h4-line: 1.3;
  --text-h4-weight: 700;
  --text-h4-tracking: 0;
  --text-body-lg-size: 1.188rem;
  --text-body-lg-line: 1.6;
  --text-body-lg-weight: 400;
  --text-body-lg-tracking: 0;
  --text-body-size: 1.062rem;
  --text-body-line: 1.6;
  --text-body-weight: 400;
  --text-body-tracking: 0;
  --text-small-size: 0.9375rem;
  --text-small-line: 1.5;
  --text-small-weight: 400;
  --text-small-tracking: 0;
  --text-eyebrow-size: 0.8125rem;
  --text-eyebrow-line: 1.4;
  --text-eyebrow-weight: 700;
  --text-eyebrow-tracking: 0.08em;
  --text-caption-size: 0.8125rem;
  --text-caption-line: 1.4;
  --text-caption-weight: 400;
  --text-caption-tracking: 0.01em;
  /* Spacing (4px base) */
  --space-0: 0rem; /* 0px */
  --space-1: 0.25rem; /* 4px */
  --space-2: 0.5rem; /* 8px */
  --space-3: 0.75rem; /* 12px */
  --space-4: 1rem; /* 16px */
  --space-5: 1.5rem; /* 24px */
  --space-6: 2rem; /* 32px */
  --space-7: 3rem; /* 48px */
  --space-8: 4rem; /* 64px */
  --space-9: 6rem; /* 96px */
  --space-10: 8rem; /* 128px */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-pill: 999px;
  --shadow-sm: 0 1px 2px rgba(11,31,69,0.08);
  --shadow-md: 0 1px 3px rgba(11,31,69,0.06), 0 4px 12px rgba(11,31,69,0.08);
  --shadow-lg: 0 2px 6px rgba(11,31,69,0.06), 0 12px 32px rgba(11,31,69,0.12);
  --shadow-glow: 0 0 24px rgba(22,119,255,0.45);
  --border-width-default: 1px;
  --border-width-input: 1.5px;
  --border-width-strong: 2px;
  --focus-width: 3px;
  --focus-offset: 2px;
  --focus-ring: 0 0 0 2px var(--color-white), 0 0 0 5px var(--color-electric-500);
  --layout-container-max: 1120px;
  --layout-container-narrow: 720px;
  --layout-gutter: 24px;
  --layout-gutter-mobile: 20px;
  --layout-columns: 12;
  --control-height-md: 48px;
  --control-height-lg: 56px;
  --control-height-sm: 40px;
  --motion-duration-fast: 120ms;
  --motion-duration-base: 200ms;
  --motion-easing: cubic-bezier(0.2, 0, 0, 1);
  /* Breakpoints (reference only; CSS vars can't be used in @media): sm 480px, md 768px, lg 1024px, xl 1280px */
}

/* Desktop type sizes (min-width: 768px) */
@media (min-width: 768px) {
  :root {
    --text-display-size: 3.5rem; /* 56px */
    --text-h1-size: 2.75rem; /* 44px */
    --text-h2-size: 2.125rem; /* 34px */
    --text-h3-size: 1.625rem; /* 26px */
    --text-h4-size: 1.312rem; /* 21px */
    --text-body-lg-size: 1.25rem; /* 20px */
    --text-body-size: 1.125rem; /* 18px */
    --text-small-size: 0.9375rem; /* 15px */
    --text-eyebrow-size: 0.875rem; /* 14px */
    --text-caption-size: 0.8125rem; /* 13px */
  }
}

@media (prefers-reduced-motion: reduce) {
  :root { --motion-duration-fast: 0ms; --motion-duration-base: 0ms; }
}

/* Siqwes components v0.1 - DRAFT. Requires tokens.css. Button, card, form field, signup form. */

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);
  min-height:var(--control-height-md);padding:0 var(--space-5);border-radius:var(--radius-md);
  font-family:var(--font-body);font-size:1.0625rem;font-weight:var(--font-weight-bold);line-height:1.2;letter-spacing:.005em;
  text-decoration:none;border:var(--border-width-strong) solid transparent;cursor:pointer;
  transition:background-color var(--motion-duration-fast) var(--motion-easing),box-shadow var(--motion-duration-fast) var(--motion-easing),transform var(--motion-duration-fast) var(--motion-easing)}
.btn--lg{min-height:var(--control-height-lg);padding:0 var(--space-6);font-size:1.1875rem;border-radius:var(--radius-md)}
.btn--block{display:flex;width:100%}
.btn--primary{background:var(--action-primary-bg);color:var(--action-primary-text);box-shadow:var(--shadow-sm)}
.btn--primary:hover{background:var(--action-primary-bg-hover);box-shadow:var(--shadow-md)}
.btn--primary:active{transform:translateY(1px);box-shadow:var(--shadow-sm)}
.btn--secondary{background:var(--action-secondary-bg);color:var(--action-secondary-text);border-color:var(--action-secondary-border)}
.btn--secondary:hover{background:var(--action-secondary-bg-hover)}
.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.btn[disabled],.btn[aria-disabled="true"],.btn.is-disabled{background:var(--action-disabled-bg);color:var(--action-disabled-text);border-color:var(--action-disabled-border);box-shadow:none;cursor:not-allowed;transform:none}
.on-dark .btn--primary{background:var(--color-white);color:var(--color-navy-900)}
.on-dark .btn--primary:hover{background:var(--color-cyan-200)}
.on-dark .btn:focus-visible{box-shadow:0 0 0 2px var(--color-night),0 0 0 5px var(--color-cyan-400)}

/* ---------- Cards ---------- */
.card{background:var(--bg-surface);border:var(--border-width-default) solid var(--border-default);border-radius:var(--radius-lg);
  padding:var(--space-5);box-shadow:var(--shadow-sm)}
@media (min-width:768px){.card{padding:var(--space-6)}}
.card--raised{box-shadow:var(--shadow-md);border-color:transparent}
.card--tint{background:var(--bg-tint);border-color:var(--color-blue-100);box-shadow:none}
.card--night{background:var(--gradient-hero-night);color:var(--text-inverse);border:0;box-shadow:var(--shadow-lg)}
.card__title{font-family:var(--font-body);font-size:var(--text-h4-size);line-height:var(--text-h4-line);font-weight:700;color:var(--text-heading);margin:0 0 var(--space-2)}
.card__body{margin:0;color:var(--text-secondary);font-size:var(--text-body-size);line-height:var(--text-body-line)}
.card__icon{width:44px;height:44px;border-radius:var(--radius-md);background:var(--color-blue-50);display:grid;place-items:center;margin-bottom:var(--space-4)}

/* ---------- Form fields ---------- */
.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-5)}
.field__label{font-weight:700;font-size:1.0625rem;color:var(--text-primary)}
.field__label .opt{font-weight:400;color:var(--text-muted)}
.field__help{font-size:var(--text-small-size);line-height:var(--text-small-line);color:var(--text-muted);margin:0}
.input,.select{appearance:none;width:100%;box-sizing:border-box;min-height:var(--control-height-md);padding:0 var(--space-4);
  font:inherit;font-size:1.0625rem;color:var(--text-primary);background:var(--color-white);
  border:var(--border-width-input) solid var(--border-input);border-radius:var(--radius-md);
  transition:border-color var(--motion-duration-fast),box-shadow var(--motion-duration-fast)}
.select{padding-right:var(--space-7);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5l5.5 5.5 5.5-5.5' fill='none' stroke='%23475166' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}
.input::placeholder{color:var(--text-muted)}
.input:hover,.select:hover{border-color:var(--border-strong)}
.input:focus,.select:focus{outline:none;border-color:var(--color-blue-700);box-shadow:0 0 0 3px rgba(22,119,255,.35)}
.field.is-error .input,.field.is-error .select,.input[aria-invalid="true"]{border-color:var(--error-text);border-width:var(--border-width-strong)}
.field.is-error .input:focus{box-shadow:0 0 0 3px rgba(179,38,30,.25)}
.field__error{display:flex;gap:var(--space-2);align-items:flex-start;font-size:var(--text-small-size);color:var(--error-text);font-weight:600;margin:0}
.input:disabled{background:var(--bg-subtle);color:var(--text-muted);border-color:var(--border-default)}
.check{display:flex;gap:var(--space-3);align-items:flex-start;font-size:var(--text-small-size)}
.check input{width:22px;height:22px;accent-color:var(--color-blue-700);margin:2px 0 0}

/* ---------- Alerts ---------- */
.alert{border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);font-size:var(--text-small-size);line-height:var(--text-small-line);border-left:4px solid}
.alert--success{background:var(--success-bg);color:var(--success-text);border-color:var(--success-text)}
.alert--warning{background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-text)}
.alert--error{background:var(--error-bg);color:var(--error-text);border-color:var(--error-text)}

/* ---------- Signup form ---------- */
.signup{background:var(--bg-surface);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-lg);border:1px solid var(--border-default)}
@media (min-width:768px){.signup{padding:var(--space-7)}}
.signup__title{font-family:var(--font-heading);font-variation-settings:var(--font-heading-variation);font-weight:600;font-size:var(--text-h2-size);line-height:var(--text-h2-line);color:var(--text-heading);margin:0 0 var(--space-5)}
.signup__what{background:var(--bg-highlight);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin:0 0 var(--space-5);font-size:1.0625rem;line-height:1.55;color:var(--text-primary)}
.signup__consent{font-size:var(--text-small-size);line-height:var(--text-small-line);color:var(--text-secondary);margin:var(--space-4) 0 0}
.signup__privacy{font-size:var(--text-small-size);line-height:var(--text-small-line);color:var(--text-secondary);margin:var(--space-4) 0 0;padding-top:var(--space-4);border-top:1px solid var(--border-default)}
.placeholder{background:var(--color-amber-100);color:var(--color-amber-800);border:1px dashed var(--color-amber-800);border-radius:4px;padding:0 4px;font-size:.92em}
/* Landing page layout v0.1 - uses tokens.css + components.css */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg-page);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-body-size);line-height:var(--text-body-line);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--text-link);text-underline-offset:3px}
a:hover{color:var(--text-link-hover)}
a:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:4px}
/* Audit 2026-10-19: a:hover / a:focus-visible must not override button text colour or radius (component-spec.md:18) */
.btn--primary:hover,.btn--primary:focus-visible{color:var(--action-primary-text)}
.btn--secondary:hover,.btn--secondary:focus-visible{color:var(--action-secondary-text)}
.on-dark .btn--primary:hover,.on-dark .btn--primary:focus-visible{color:var(--color-navy-900)}
a.btn:focus-visible{border-radius:var(--radius-md)}
.skip{position:absolute;left:-999px;top:8px;background:var(--color-white);padding:8px 12px;border-radius:var(--radius-sm);z-index:10}
.skip:focus{left:8px}
.container{max-width:var(--layout-container-max);margin:0 auto;padding:0 var(--layout-gutter-mobile)}
.container--narrow{max-width:var(--layout-container-narrow)}
@media (min-width:768px){.container{padding:0 var(--layout-gutter)}}

.display,.h2{font-family:var(--font-heading);font-variation-settings:var(--font-heading-variation);font-weight:600;color:var(--text-heading);margin:0}
.display{font-size:var(--text-display-size);line-height:var(--text-display-line);letter-spacing:var(--text-display-tracking)}
.h2{font-size:var(--text-h2-size);line-height:var(--text-h2-line)}
.eyebrow{font-size:var(--text-eyebrow-size);line-height:var(--text-eyebrow-line);font-weight:700;letter-spacing:var(--text-eyebrow-tracking);text-transform:uppercase;color:var(--text-eyebrow);margin:0 0 var(--space-4)}
.lead{font-size:var(--text-body-lg-size);line-height:var(--text-body-lg-line);color:var(--text-secondary);margin:var(--space-5) 0 0;max-width:38em}
.micro{font-size:var(--text-small-size);color:var(--text-muted);margin:var(--space-3) 0 0}

.site-header{border-bottom:1px solid var(--border-default);background:var(--bg-page)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;min-height:76px}
.brand img{height:44px;width:auto}
.header-cta{min-height:44px;padding:0 var(--space-4);font-size:1rem}
@media (max-width:479px){.header-cta{display:none}}

.hero{padding:var(--space-7) 0 var(--space-8)}
.hero__grid{display:grid;gap:var(--space-7);align-items:center}
.hero__cta{margin-top:var(--space-6)}
@media (min-width:1024px){.hero{padding:var(--space-9) 0}.hero__grid{gap:var(--space-8)}}

.section{padding:var(--space-8) 0;position:relative}
@media (min-width:768px){.section{padding:var(--space-9) 0}}
.section--sand{background:var(--bg-subtle)}
.section__title{margin-bottom:var(--space-6)}
.benefits{display:grid;gap:var(--space-5);list-style:none;padding-left:0;margin:0}
@media (min-width:768px){.benefits{grid-template-columns:1fr 1fr}}
.card__icon{color:var(--color-blue-700)}

.who{display:grid;gap:var(--space-5)}
@media (min-width:768px){.who{grid-template-columns:3fr 2fr}}
.ticks{list-style:none;margin:var(--space-4) 0 0;padding:0;display:grid;gap:var(--space-4)}
.ticks li{display:grid;grid-template-columns:28px 1fr;gap:var(--space-2);color:var(--text-secondary)}
.ticks svg{margin-top:4px;color:var(--success-text)}
.ticks--no svg{color:var(--text-muted)}
.who__no{background:transparent;box-shadow:none;border-style:dashed;border-color:#CFC5B4}

.steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-5);counter-reset:s}
@media (min-width:768px){.steps{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.steps{grid-template-columns:repeat(4,1fr)}}
.steps li{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);border-top:3px solid var(--color-blue-700);background:var(--bg-surface);border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:var(--shadow-sm)}
.steps p{margin:0;color:var(--text-secondary)}
.steps__n{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--color-navy-900);color:var(--color-white);font-weight:700;font-size:1.125rem}

.section--signup{background:linear-gradient(180deg,var(--bg-tint) 0%,var(--bg-page) 100%);overflow:hidden}
.signup{position:relative}

.faq{display:grid;gap:var(--space-3)}
.faq details{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5)}
.faq summary{cursor:pointer;font-weight:700;font-size:var(--text-h4-size);line-height:var(--text-h4-line);color:var(--text-heading);list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--color-blue-700);font-weight:700}
.faq details[open] summary::after{content:"\2013"}
.faq summary:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:4px}
.faq p{margin:var(--space-3) 0 0;color:var(--text-secondary)}

.site-footer{border-top:1px solid var(--border-default);padding:var(--space-7) 0;background:var(--bg-subtle)}
.site-footer__inner{display:flex;flex-direction:column;gap:var(--space-4)}
.site-footer p{margin:0;font-size:var(--text-small-size);color:var(--text-secondary)}
.site-footer img{height:38px;width:auto}
@media (min-width:768px){.site-footer__inner{flex-direction:row;align-items:center;justify-content:space-between}}
[hidden]{display:none !important}

/* Siqwes site.css: Web-owned additions on top of tokens/components/landing (brand v0.1). */
@font-face{font-family:'Fraunces';src:url('/fonts/Fraunces-Latin-SOFT100-VariableFont.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('/fonts/SourceSans3-VariableFont.woff2') format('woff2');font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('/fonts/SourceSans3-Italic-VariableFont.woff2') format('woff2');font-weight:200 900;font-style:italic;font-display:swap}

/* Draft banner: delete from every page at launch (README "Launch gate"). */
.draft-banner{background:var(--warning-bg);color:var(--warning-text);font-size:var(--text-small-size);text-align:center;padding:var(--space-2) var(--space-4);margin:0}
.skip:focus{outline:none;box-shadow:var(--focus-ring)}
.brand{display:inline-block;border-radius:4px}
.brand:focus-visible{outline:none;box-shadow:var(--focus-ring)}

/* FAQ: SEO needs <h3> questions; brand uses <details>. The h3 sits inside <summary>. */
.faq summary h3{display:inline;font:inherit;color:inherit;margin:0}

/* "Other" free-text: shown only when "Other" is selected (CSS :has, no JS). Without :has support it is always shown. */
@supports selector(:has(*)){
  .field--other{display:none}
  form:has(#btype option[value="other"]:checked) .field--other{display:flex}
}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.field__error[hidden]{display:none}
.signup__checkbox{margin:var(--space-4) 0 0}

/* Generic content pages (home, offer, legal, thanks, 404) */
.page{padding:var(--space-8) 0}
@media (min-width:768px){.page{padding:var(--space-9) 0}}
.prose{max-width:var(--layout-container-narrow)}
.prose h1{font-family:var(--font-heading);font-variation-settings:var(--font-heading-variation);font-weight:600;color:var(--text-heading);font-size:var(--text-h1-size);line-height:var(--text-h1-line);margin:0 0 var(--space-5)}
.prose h2{font-family:var(--font-heading);font-variation-settings:var(--font-heading-variation);font-weight:600;color:var(--text-heading);font-size:var(--text-h3-size);line-height:var(--text-h3-line);margin:var(--space-7) 0 var(--space-3)}
.prose h3{font-size:var(--text-h4-size);line-height:var(--text-h4-line);color:var(--text-heading);margin:var(--space-5) 0 var(--space-2)}
.prose p,.prose ul,.prose ol{margin:0 0 var(--space-4)}
.prose li{margin-bottom:var(--space-2)}
.updated{color:var(--text-muted);font-size:var(--text-small-size)}
.home-card{margin-top:var(--space-7)}
.home-card .btn{margin-top:var(--space-5)}
.offer-cta{margin-top:var(--space-6)}
.site-footer nav a{white-space:nowrap}

/* Hub (siqwes.com): one card per entry in shared/niches.json */
.niche-grid{list-style:none;padding:0;margin:var(--space-6) 0 0;display:grid;gap:var(--space-5);grid-template-columns:1fr}
@media (min-width:768px){.niche-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}
.niche-card{display:flex;flex-direction:column;gap:var(--space-3)}
.niche-card .card__title{margin:0}
.niche-card .btn{margin-top:auto;align-self:flex-start}
.niche-card__host{color:var(--text-muted);font-size:var(--text-small-size);margin:0}
.notice{border-left:4px solid var(--warning-text);background:var(--warning-bg);color:var(--warning-text);padding:var(--space-3) var(--space-4);margin:var(--space-5) 0}
/* Info variant (Creative review P3, 2026-10-19): Blue-50 background, Blue-700 rule, Ink text */
.notice--info{border-left-color:var(--color-blue-700);background:var(--color-blue-50);color:var(--color-ink)}

/* Hero without art (D-36): copy keeps a readable measure */
.hero__grid--solo .hero__copy{max-width:46rem}

/* Opens-soon niche pages (Creative nits 2026-10-19): footer pinned to the bottom on short pages; mobile footer wordmark left-aligned */
.opens-soon{min-height:100vh;display:flex;flex-direction:column}
.opens-soon main{flex:1}
.opens-soon .site-footer img{align-self:flex-start}
@media (min-width:768px){.opens-soon .site-footer img{align-self:center}}
