/* ==========================================================================
   SelfDrive — public home pages (About us / Privacy / Terms)
   Shared stylesheet for app/Views/home/*.php

   Every class, custom property and state class in this file uses the `sm-`
   prefix so nothing here can collide with dashboard.css, drive.css, etc.

   Page scope
   ----------
   The <html> element carries a variant class:
       <html class="sm-page sm-page--about">   → about_us.php
       <html class="sm-page sm-page--legal">   → privacy.php, terms.php
   Shared rules are unscoped; the two variants only override what actually
   differed between the original per-page stylesheets.

   Contents
   --------
   1.  Design tokens
   2.  Base & reset
   3.  Skip link + shell
   4.  Header & navigation
   5.  Buttons
   6.  Eyebrow
   7.  Hero                (about)
   8.  Section primitives  (about)
   9.  Feature rows        (about)
   10. Cards & grids       (about)
   11. Page head           (legal)
   12. Document layout + TOC
   13. Document body
   14. Callouts, contact box, banned list (legal)
   15. CTA                 (about)
   16. Footer
   17. Motion
   18. Responsive
   19. Reduced motion & print
   ========================================================================== */


/* -------------------------------------------------- 1. Design tokens ----- */
.sm-page{
	--sm-brand:#0180ff;
	--sm-brand-600:#0169d6;
	--sm-brand-700:#0b57b8;
	--sm-brand-tint:#eaf3ff;

	--sm-ink:#0d1330;
	--sm-body:#4d5875;
	--sm-muted:#7b86a0;

	--sm-surface:#ffffff;
	--sm-line:#e6ecf5;
	--sm-line-soft:#eef2f9;

	--sm-font:'Red Hat Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.sm-page--about{
	--sm-navy:#101433;

	--sm-bg:#ffffff;
	--sm-bg-soft:#f4f7fc;

	--sm-radius-sm:10px;
	--sm-radius:16px;
	--sm-radius-lg:24px;

	--sm-shadow-sm:0 1px 2px rgba(13,19,48,.04), 0 2px 6px rgba(13,19,48,.05);
	--sm-shadow:0 4px 12px rgba(13,19,48,.05), 0 18px 44px -14px rgba(13,19,48,.12);

	--sm-section-y:clamp(64px,8vw,110px);
	--sm-shell-max:1180px;
	--sm-focus-radius:6px;

	--sm-toc-top:104px;
	--sm-doc-max:74ch;
	--sm-doc-pad:clamp(28px,4vw,52px);

	scroll-padding-top:100px;
}

.sm-page--legal{
	--sm-danger:#c2410c;
	--sm-danger-tint:#fff4ed;
	--sm-danger-line:#fbdcc8;

	--sm-bg:#f4f7fc;

	--sm-radius-sm:8px;
	--sm-radius:14px;
	--sm-radius-lg:20px;

	--sm-shadow:0 4px 12px rgba(13,19,48,.05), 0 16px 40px -12px rgba(13,19,48,.10);

	--sm-shell-max:1120px;
	--sm-focus-radius:4px;

	--sm-toc-top:100px;
	--sm-doc-max:72ch;
	--sm-doc-pad:clamp(28px,4vw,56px);

	scroll-padding-top:96px;
}


/* --------------------------------------------------- 2. Base & reset ----- */
*,*::before,*::after{box-sizing:border-box;}

.sm-page{
	scroll-behavior:smooth;
	-webkit-text-size-adjust:100%;
}

body{
	margin:0;
	font-family:var(--sm-font);
	font-size:16px;
	line-height:1.75;
	font-weight:400;
	color:var(--sm-body);
	background:var(--sm-bg);
	-webkit-font-smoothing:antialiased;
	-moz-osx-font-smoothing:grayscale;
	overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block;}

a{color:var(--sm-brand-600);text-decoration:none;transition:color .2s ease;}
a:hover{color:var(--sm-brand-700);}
.sm-page--legal a:hover{text-decoration:underline;}

:focus-visible{
	outline:3px solid var(--sm-brand);
	outline-offset:3px;
	border-radius:var(--sm-focus-radius);
}
::selection{background:var(--sm-brand);color:#fff;}

/* The about page drives all vertical rhythm from components, so it zeroes the
   UA margins outright. The legal pages keep UA defaults outside the document. */
.sm-page--about h1,
.sm-page--about h2,
.sm-page--about h3,
.sm-page--about h4,
.sm-page--about h5,
.sm-page--about h6{
	margin:0;
	color:var(--sm-ink);
	line-height:1.22;
	letter-spacing:-.015em;
	font-weight:800;
}
.sm-page--about p{margin:0;}
.sm-page--about ul{margin:0;padding:0;list-style:none;}


/* ---------------------------------------------- 3. Skip link + shell ----- */
.sm-skip-link{
	position:absolute;left:16px;top:-100px;z-index:100;
	background:var(--sm-surface);color:var(--sm-ink);font-weight:700;
	padding:12px 20px;border-radius:var(--sm-radius-sm);box-shadow:var(--sm-shadow);
	transition:top .2s ease;
}
.sm-skip-link:focus{top:16px;text-decoration:none;}

.sm-shell{
	width:100%;
	max-width:var(--sm-shell-max);
	margin:0 auto;
	padding:0 24px;
}


/* --------------------------------------- 4. Header & navigation ---------- */
.sm-header{
	position:sticky;top:0;
	backdrop-filter:saturate(180%) blur(14px);
	-webkit-backdrop-filter:saturate(180%) blur(14px);
}
.sm-page--about .sm-header{
	z-index:60;
	background:rgba(255,255,255,.85);
	border-bottom:1px solid transparent;
	transition:border-color .25s ease, box-shadow .25s ease;
}
.sm-page--legal .sm-header{
	z-index:50;
	background:rgba(255,255,255,.82);
	border-bottom:1px solid var(--sm-line);
}
/* Toggled by the about page script once the document scrolls. */
.sm-header.sm-is-stuck{
	border-bottom-color:var(--sm-line);
	box-shadow:0 4px 20px -12px rgba(13,19,48,.25);
}

.sm-header__inner{
	display:flex;align-items:center;justify-content:space-between;
}
.sm-page--about .sm-header__inner{gap:24px;min-height:80px;}
.sm-page--legal .sm-header__inner{gap:20px;min-height:76px;}

.sm-logo img{width:auto;}
.sm-page--about .sm-logo img{max-height:58px;}
.sm-page--legal .sm-logo img{max-height:58px;}

.sm-nav{display:flex;align-items:center;}
.sm-page--about .sm-nav{gap:6px;}
.sm-page--legal .sm-nav{gap:8px;}

.sm-nav__link{
	color:var(--sm-body);font-weight:600;font-size:15px;
	padding:9px 14px;border-radius:var(--sm-radius-sm);
}
.sm-nav__link:hover{color:var(--sm-ink);background:var(--sm-brand-tint);text-decoration:none;}
.sm-nav__link[aria-current="page"]{color:var(--sm-brand-600);background:var(--sm-brand-tint);}


/* ----------------------------------------------------- 5. Buttons -------- */
.sm-btn{
	display:inline-flex;align-items:center;justify-content:center;
	font:inherit;font-size:15px;font-weight:700;line-height:1;
	border:1px solid transparent;
	cursor:pointer;white-space:nowrap;
}
.sm-btn svg{flex:none;width:16px;height:16px;}

.sm-page--about .sm-btn{
	gap:9px;height:50px;padding:0 28px;border-radius:12px;
	transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
}
.sm-page--legal .sm-btn{
	gap:8px;height:46px;padding:0 24px;border-radius:10px;
	transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}

.sm-btn--primary{background:var(--sm-brand);color:#fff;}
.sm-btn--primary:hover{background:var(--sm-brand-600);color:#fff;text-decoration:none;}
.sm-btn--primary:active{transform:translateY(0);}

.sm-page--about .sm-btn--primary{
	box-shadow:0 1px 2px rgba(1,128,255,.25), 0 10px 24px -8px rgba(1,128,255,.6);
}
.sm-page--about .sm-btn--primary:hover{
	transform:translateY(-2px);
	box-shadow:0 2px 4px rgba(1,128,255,.3), 0 18px 34px -12px rgba(1,128,255,.7);
}
.sm-page--legal .sm-btn--primary{
	box-shadow:0 1px 2px rgba(1,128,255,.24), 0 8px 20px -8px rgba(1,128,255,.55);
}
.sm-page--legal .sm-btn--primary:hover{
	transform:translateY(-1px);
	box-shadow:0 2px 4px rgba(1,128,255,.28), 0 14px 28px -10px rgba(1,128,255,.6);
}

.sm-btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.35);}
.sm-btn--ghost:hover{
	background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.6);
	color:#fff;transform:translateY(-2px);text-decoration:none;
}
.sm-btn--sm{height:44px;padding:0 22px;font-size:14px;}


/* ----------------------------------------------------- 6. Eyebrow -------- */
.sm-eyebrow{
	display:inline-flex;align-items:center;gap:8px;
	text-transform:uppercase;
	color:var(--sm-brand-600);background:var(--sm-brand-tint);
	padding:7px 14px;border-radius:999px;
}
.sm-page--about .sm-eyebrow{font-size:12.5px;font-weight:800;letter-spacing:.1em;margin-bottom:18px;}
.sm-page--legal .sm-eyebrow{font-size:13px;font-weight:700;letter-spacing:.08em;margin-bottom:20px;}


/* -------------------------------------------------- 7. Hero (about) ------ */
.sm-hero{
	position:relative;isolation:isolate;
	background:var(--sm-navy);
	color:#fff;
	padding:clamp(64px,9vw,110px) 0 clamp(72px,10vw,120px);
	overflow:hidden;
}
.sm-hero::before,
.sm-hero::after{content:"";position:absolute;z-index:-1;border-radius:50%;filter:blur(90px);}
.sm-hero::before{
	width:640px;height:640px;top:-260px;right:-180px;
	background:radial-gradient(circle, rgba(1,128,255,.55) 0%, rgba(1,128,255,0) 70%);
}
.sm-hero::after{
	width:520px;height:520px;bottom:-280px;left:-160px;
	background:radial-gradient(circle, rgba(94,63,255,.4) 0%, rgba(94,63,255,0) 70%);
}
.sm-hero__grid-overlay{
	position:absolute;inset:0;z-index:-1;opacity:.5;
	background-image:
		linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
	background-size:64px 64px;
	-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 30%, #000 30%, transparent 100%);
	mask-image:radial-gradient(ellipse 80% 60% at 50% 30%, #000 30%, transparent 100%);
}
.sm-hero__inner{
	display:grid;grid-template-columns:1.05fr .95fr;
	gap:clamp(32px,5vw,64px);align-items:center;
}
.sm-hero h1{
	font-size:clamp(38px,5.6vw,62px);font-weight:900;color:#fff;
	letter-spacing:-.03em;line-height:1.06;margin:0 0 20px;
}
.sm-hero h1 .sm-accent{
	background:linear-gradient(96deg,#4fa9ff 0%,#8fd0ff 55%,#c9e7ff 100%);
	-webkit-background-clip:text;background-clip:text;
	-webkit-text-fill-color:transparent;color:#4fa9ff;
}
.sm-hero__sub{
	font-size:clamp(17px,1.9vw,20px);line-height:1.6;
	color:rgba(255,255,255,.78);max-width:56ch;margin:0 0 14px;
}
.sm-hero__lede{font-size:16px;color:rgba(255,255,255,.62);max-width:54ch;}
.sm-hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}

.sm-pill{
	display:inline-flex;align-items:center;gap:9px;
	font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
	color:#a8d3ff;background:rgba(1,128,255,.16);
	border:1px solid rgba(1,128,255,.32);
	padding:8px 16px;border-radius:999px;margin-bottom:26px;
}
.sm-pill .sm-dot{width:7px;height:7px;border-radius:50%;background:#4fa9ff;flex:none;}

.sm-hero__media{position:relative;}
.sm-hero__media img{
	width:100%;border-radius:var(--sm-radius-lg);
	box-shadow:0 30px 80px -30px rgba(0,0,0,.7);
}

.sm-hero__stats{
	display:grid;grid-template-columns:repeat(3,1fr);
	gap:1px;background:rgba(255,255,255,.12);
	border:1px solid rgba(255,255,255,.12);
	border-radius:var(--sm-radius);overflow:hidden;
	margin-top:clamp(48px,6vw,72px);
}
.sm-hero__stat{background:rgba(255,255,255,.03);padding:24px 26px;}
.sm-hero__stat dt{
	font-size:13px;font-weight:600;letter-spacing:.04em;
	color:rgba(255,255,255,.6);text-transform:uppercase;margin:0 0 6px;
}
.sm-hero__stat dd{margin:0;font-size:clamp(20px,2.4vw,26px);font-weight:800;color:#fff;line-height:1.25;}


/* --------------------------------- 8. Section primitives (about) --------- */
.sm-section{padding:var(--sm-section-y) 0;}
.sm-section--soft{background:var(--sm-bg-soft);}
.sm-section--tight{padding-top:0;}

.sm-section-head{max-width:680px;margin:0 0 clamp(36px,5vw,56px);}
.sm-section-head--center{margin-left:auto;margin-right:auto;text-align:center;}
.sm-section-head h2{font-size:clamp(28px,3.8vw,42px);font-weight:800;}
.sm-section-head p{margin-top:16px;font-size:clamp(16px,1.6vw,18px);color:var(--sm-muted);}


/* ------------------------------------- 9. Feature rows (about) ----------- */
.sm-feature-row{
	display:grid;grid-template-columns:1fr 1fr;
	gap:clamp(28px,5vw,72px);align-items:center;
}
.sm-feature-row + .sm-feature-row{margin-top:clamp(48px,7vw,96px);}
.sm-feature-row--reverse .sm-feature-row__media{order:2;}
.sm-feature-row__media{position:relative;text-align:center;}
.sm-feature-row__media img{
	width:100%;max-width:420px;margin:0 auto;
	border-radius:var(--sm-radius-lg);
}
.sm-feature-row__media::after{
	content:"";position:absolute;inset:auto 0 -6% 0;z-index:-1;
	height:70%;margin:0 auto;width:78%;
	background:radial-gradient(ellipse at center, rgba(1,128,255,.14) 0%, rgba(1,128,255,0) 70%);
}
.sm-feature-row h3{font-size:clamp(22px,2.6vw,30px);margin-bottom:14px;}
.sm-feature-row p{color:var(--sm-body);}
.sm-feature-row p + p{margin-top:14px;}

.sm-checklist{margin-top:22px;display:grid;gap:12px;}
.sm-checklist li{
	position:relative;padding-left:36px;
	font-size:16px;font-weight:600;color:var(--sm-ink);line-height:1.55;
}
.sm-checklist li::before{
	content:"";position:absolute;left:0;top:2px;
	width:24px;height:24px;border-radius:8px;background:var(--sm-brand-tint);
}
.sm-checklist li::after{
	content:"";position:absolute;left:8px;top:9px;
	width:9px;height:5px;
	border-left:2px solid var(--sm-brand);border-bottom:2px solid var(--sm-brand);
	transform:rotate(-45deg);
}


/* --------------------------------- 10. Cards & card grids (about) -------- */
.sm-card-grid{display:grid;gap:24px;}
.sm-card-grid--2{grid-template-columns:repeat(2,1fr);}
.sm-card-grid--3{grid-template-columns:repeat(3,1fr);}
.sm-card-grid--4{grid-template-columns:repeat(4,1fr);}

.sm-card{
	background:var(--sm-surface);
	border:1px solid var(--sm-line);
	border-radius:var(--sm-radius-lg);
	padding:32px 28px;
	box-shadow:var(--sm-shadow-sm);
	transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
	height:100%;
}
.sm-card:hover{transform:translateY(-4px);box-shadow:var(--sm-shadow);border-color:#d8e4f4;}
.sm-card__icon{
	width:72px;height:72px;margin-bottom:22px;
	display:flex;align-items:center;justify-content:center;
	background:linear-gradient(160deg,var(--sm-brand-tint) 0%,#f7fbff 100%);
	border-radius:18px;
}
.sm-card__icon img{max-width:40px;max-height:40px;width:auto;}
.sm-card h3{font-size:19px;font-weight:700;margin-bottom:10px;line-height:1.4;}
.sm-card p{color:var(--sm-body);font-size:15.5px;}
.sm-card--center{text-align:center;}
.sm-card--center .sm-card__icon{margin-left:auto;margin-right:auto;}
.sm-card--center h3{font-size:17px;}

.sm-card__list{margin-top:18px;display:grid;gap:12px;}
.sm-card__list li{
	position:relative;padding-left:24px;
	font-size:15.5px;line-height:1.6;color:var(--sm-body);
}
.sm-card__list li::before{
	content:"";position:absolute;left:4px;top:11px;
	width:7px;height:7px;border-radius:50%;background:var(--sm-brand);
}
.sm-card__list li b{color:var(--sm-ink);font-weight:700;}

.sm-card--feature{padding:36px 32px;}
.sm-card--feature h3{font-size:22px;}

/* Connected AI sources — logo tiles */
.sm-logos{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(168px,1fr));
	gap:12px;
}
.sm-logos li{
	display:flex;align-items:center;gap:12px;
	background:var(--sm-surface);
	border:1px solid var(--sm-line);
	border-radius:var(--sm-radius);
	padding:14px 16px;
	box-shadow:var(--sm-shadow-sm);
	transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.sm-logos li:hover{transform:translateY(-3px);box-shadow:var(--sm-shadow);border-color:#d8e4f4;}
.sm-logos img{flex:none;width:30px;height:30px;object-fit:contain;}
.sm-logos span{font-size:14.5px;font-weight:700;color:var(--sm-ink);line-height:1.3;}


/* -------------------------------------------- 11. Page head (legal) ------ */
.sm-page-head{padding:64px 0 40px;}
.sm-page-head h1{
	margin:0;
	font-size:clamp(34px,5.2vw,52px);
	font-weight:800;line-height:1.1;letter-spacing:-.02em;
	color:var(--sm-ink);
}
.sm-page-head__lede{
	margin:18px 0 0;max-width:62ch;
	font-size:clamp(16px,1.6vw,18px);color:var(--sm-muted);
}


/* ------------------------------------- 12. Document layout + TOC --------- */
.sm-doc-layout,
.sm-legal-layout{
	display:grid;grid-template-columns:250px minmax(0,1fr);
	align-items:start;
}
.sm-doc-layout{gap:44px;}
.sm-legal-layout{gap:40px;padding-bottom:80px;}

.sm-toc{position:sticky;top:var(--sm-toc-top);}
.sm-toc__title{
	font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
	color:var(--sm-muted);margin:0 0 14px;padding-left:14px;
}
.sm-toc__list{
	list-style:none;margin:0;padding:0;
	border-left:2px solid var(--sm-line);
}
.sm-toc__list a{
	display:block;padding:8px 14px;margin-left:-2px;
	border-left:2px solid transparent;
	font-size:14px;font-weight:600;line-height:1.45;color:var(--sm-muted);
}
.sm-toc__list a:hover{color:var(--sm-ink);text-decoration:none;}
.sm-toc__list a.sm-is-active{color:var(--sm-brand-600);border-left-color:var(--sm-brand);}


/* ------------------------------------------- 13. Document body ----------- */
.sm-doc{
	background:var(--sm-surface);
	border:1px solid var(--sm-line);
	border-radius:var(--sm-radius-lg);
	box-shadow:var(--sm-shadow);
	padding:var(--sm-doc-pad);
	max-width:var(--sm-doc-max);
}
.sm-doc p:last-child{margin-bottom:0;}
.sm-doc code,
.sm-card code{
	font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
	font-size:.88em;
	background:var(--sm-brand-tint);
	color:var(--sm-brand-700);
	border-radius:5px;
	padding:.15em .4em;
	word-break:break-word;
}
.sm-doc ul li::before{
	content:"";position:absolute;left:6px;top:11px;
	width:6px;height:6px;border-radius:50%;background:var(--sm-brand);
}
.sm-doc ul li{position:relative;padding-left:26px;}

/* --- about: h3-driven document --- */
.sm-page--about .sm-doc p{margin-bottom:16px;}
.sm-page--about .sm-doc ul{margin:0 0 16px;display:grid;gap:10px;}
.sm-page--about .sm-doc h3{
	margin:38px 0 12px;font-size:21px;font-weight:700;
	scroll-margin-top:104px;
}
.sm-page--about .sm-doc h3:first-child{margin-top:0;}

.sm-note{
	display:block;margin-top:26px;
	background:#fff8ed;border:1px solid #f7e2c2;border-left:3px solid #e79a2b;
	border-radius:var(--sm-radius);padding:18px 22px;
	font-size:15px;color:#7a5620;
}
.sm-note b{color:#5c3f14;}

/* --- legal: numbered h2-driven document --- */
.sm-doc__intro{
	border-bottom:1px solid var(--sm-line-soft);
	padding-bottom:28px;margin-bottom:8px;
}
.sm-page--legal .sm-doc p{margin:0 0 18px;}
.sm-page--legal .sm-doc b,
.sm-page--legal .sm-doc strong{color:var(--sm-ink);font-weight:700;}
.sm-page--legal .sm-doc ul{margin:0 0 18px;padding:0;list-style:none;}
.sm-page--legal .sm-doc ul li{margin-bottom:10px;}

.sm-doc h2{
	display:flex;gap:14px;align-items:baseline;
	margin:44px 0 16px;
	font-size:clamp(20px,2.4vw,24px);font-weight:800;line-height:1.3;
	letter-spacing:-.01em;color:var(--sm-ink);
	scroll-margin-top:100px;
}
.sm-doc h2:first-of-type{margin-top:32px;}
.sm-doc h2 .sm-num{
	flex:none;
	font-size:14px;font-weight:800;color:var(--sm-brand);
	background:var(--sm-brand-tint);
	min-width:34px;height:34px;
	display:inline-flex;align-items:center;justify-content:center;
	border-radius:9px;
	transform:translateY(-2px);
}
.sm-page--legal .sm-doc h3{
	margin:28px 0 10px;
	font-size:17px;font-weight:700;color:var(--sm-ink);line-height:1.4;
}


/* ------------------ 14. Callouts, contact box, banned list (legal) ------- */
.sm-callout{
	border:1px solid var(--sm-line);
	border-left:3px solid var(--sm-brand);
	background:#fbfcfe;
	border-radius:var(--sm-radius);
	padding:20px 24px;margin:24px 0;
}
.sm-callout p:last-child{margin-bottom:0;}

.sm-contact-box{
	display:flex;flex-wrap:wrap;align-items:center;gap:12px;
	background:var(--sm-brand-tint);border-radius:var(--sm-radius);
	padding:16px 20px;margin:16px 0 0;
	font-weight:600;color:var(--sm-ink);
}
.sm-contact-box a{font-weight:700;}

/* Prohibited-material grid — replaces the old stack of oversized headings */
.sm-banned{
	margin:20px 0 24px;padding:24px;
	background:var(--sm-danger-tint);
	border:1px solid var(--sm-danger-line);
	border-radius:var(--sm-radius);
}
.sm-banned__title{
	display:flex;align-items:center;gap:10px;
	margin:0 0 16px;
	font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
	color:var(--sm-danger);
}
.sm-banned__grid{
	display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
	gap:10px 20px;margin:0;padding:0;list-style:none;
}
.sm-banned__grid li{
	position:relative;padding-left:26px;margin:0;
	font-size:15px;font-weight:500;line-height:1.5;color:#7c4426;
}
.sm-banned__grid li::before{
	content:"";position:absolute;left:6px;top:9px;
	width:7px;height:2px;border-radius:2px;background:var(--sm-danger);
}


/* --------------------------------------------------- 15. CTA (about) ----- */
.sm-cta{
	position:relative;isolation:isolate;overflow:hidden;
	background:var(--sm-navy);color:#fff;
	border-radius:var(--sm-radius-lg);
	padding:clamp(40px,6vw,72px) clamp(28px,5vw,64px);
	text-align:center;
}
.sm-cta::before{
	content:"";position:absolute;z-index:-1;
	width:560px;height:560px;top:-300px;left:50%;transform:translateX(-50%);
	border-radius:50%;filter:blur(90px);
	background:radial-gradient(circle, rgba(1,128,255,.6) 0%, rgba(1,128,255,0) 70%);
}
.sm-cta h2{font-size:clamp(26px,3.6vw,40px);color:#fff;font-weight:800;}
.sm-cta p{margin:16px auto 0;max-width:56ch;color:rgba(255,255,255,.72);font-size:17px;}
.sm-cta__actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:32px;}


/* ------------------------------------------------------ 16. Footer ------- */
/* --- about: dark multi-column footer --- */
.sm-page--about .sm-footer{
	background:var(--sm-navy);
	color:rgba(255,255,255,.66);
	padding:clamp(48px,6vw,72px) 0 0;
}
.sm-footer__grid{
	display:grid;grid-template-columns:1.6fr 1fr 1fr;
	gap:40px;padding-bottom:48px;
}
/* No invert filter here: the footer is served logo-w.svg, already white. */
.sm-footer__brand img{max-height:58px;width:auto;margin-bottom:20px;}
.sm-footer__brand p{max-width:38ch;font-size:15px;color:rgba(255,255,255,.6);}
.sm-page--about .sm-footer h4{
	color:#fff;font-size:13px;font-weight:800;letter-spacing:.1em;
	text-transform:uppercase;margin-bottom:18px;
}
.sm-page--about .sm-footer ul{display:grid;gap:11px;}
.sm-page--about .sm-footer ul a{color:rgba(255,255,255,.66);font-size:15px;font-weight:500;}
.sm-page--about .sm-footer ul a:hover{color:#fff;}
.sm-footer__bar{
	border-top:1px solid rgba(255,255,255,.1);
	padding:24px 0;
	display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;
}
.sm-footer__bar p{font-size:14px;color:rgba(255,255,255,.5);}
.sm-footer__bar ul{display:flex;flex-wrap:wrap;gap:6px;}
.sm-footer__bar ul a{padding:6px 12px;border-radius:var(--sm-radius-sm);font-size:14px;}
.sm-footer__bar ul a:hover{background:rgba(255,255,255,.08);}

/* --- legal: light single-row footer --- */
.sm-page--legal .sm-footer{
	border-top:1px solid var(--sm-line);
	background:var(--sm-surface);
	padding:36px 0;
}
.sm-footer__inner{
	display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;
}
.sm-page--legal .sm-footer p{margin:0;font-size:14px;color:var(--sm-muted);}
.sm-footer__links{display:flex;flex-wrap:wrap;gap:8px 4px;list-style:none;margin:0;padding:0;}
.sm-footer__links a{
	font-size:14px;font-weight:600;color:var(--sm-body);
	padding:6px 12px;border-radius:var(--sm-radius-sm);
}
.sm-footer__links a:hover{color:var(--sm-brand-600);background:var(--sm-brand-tint);text-decoration:none;}


/* ------------------------------------------------------ 17. Motion ------- */
.sm-js .sm-reveal{opacity:0;transform:translateY(22px);}
.sm-js .sm-reveal.sm-is-visible{
	opacity:1;transform:none;
	transition:opacity .65s cubic-bezier(.16,1,.3,1), transform .65s cubic-bezier(.16,1,.3,1);
}
.sm-js .sm-reveal:nth-child(2){transition-delay:.08s;}
.sm-js .sm-reveal:nth-child(3){transition-delay:.16s;}
.sm-js .sm-reveal:nth-child(4){transition-delay:.24s;}


/* -------------------------------------------------- 18. Responsive ------- */
@media (max-width:1024px){
	.sm-hero__inner{grid-template-columns:1fr;text-align:center;}
	.sm-hero__sub,.sm-hero__lede{margin-left:auto;margin-right:auto;}
	.sm-hero__actions{justify-content:center;}
	.sm-hero__media{order:-1;max-width:520px;margin:0 auto;}
	.sm-card-grid--4{grid-template-columns:repeat(2,1fr);}
	.sm-doc-layout{grid-template-columns:1fr;gap:28px;}
	.sm-page--about .sm-toc{
		position:static;background:var(--sm-surface);
		border:1px solid var(--sm-line);border-radius:var(--sm-radius);padding:18px 16px;
	}
	.sm-page--about .sm-toc__title{padding-left:0;}
	.sm-page--about .sm-toc__list{
		display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
		border-left:0;gap:2px;
	}
	.sm-page--about .sm-toc__list a{padding:8px 10px;border-left:0;border-radius:var(--sm-radius-sm);}
	.sm-page--about .sm-toc__list a.sm-is-active{background:var(--sm-brand-tint);}
	.sm-page--about .sm-doc{max-width:none;}
	.sm-footer__grid{grid-template-columns:1fr 1fr;}
	.sm-footer__brand{grid-column:1 / -1;}
}

@media (max-width:960px){
	.sm-legal-layout{grid-template-columns:1fr;gap:28px;}
	.sm-page--legal .sm-toc{
		position:static;
		background:var(--sm-surface);border:1px solid var(--sm-line);
		border-radius:var(--sm-radius);padding:18px 16px;
	}
	.sm-page--legal .sm-toc__title{padding-left:0;}
	.sm-page--legal .sm-toc__list{
		display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
		border-left:0;gap:2px;
	}
	.sm-page--legal .sm-toc__list a{padding:8px 10px;border-left:0;border-radius:var(--sm-radius-sm);}
	.sm-page--legal .sm-toc__list a.sm-is-active{background:var(--sm-brand-tint);}
	.sm-page--legal .sm-doc{max-width:none;}
}

@media (max-width:860px){
	.sm-card-grid--3{grid-template-columns:1fr;}
	.sm-card-grid--2{grid-template-columns:1fr;}
	.sm-feature-row{grid-template-columns:1fr;}
	.sm-feature-row--reverse .sm-feature-row__media{order:0;}
	.sm-feature-row__media{order:-1;}
	.sm-hero__stats{grid-template-columns:1fr;}
	.sm-page--about .sm-nav__link{display:none;}
}

@media (max-width:640px){
	.sm-shell{padding:0 18px;}
	.sm-page--legal .sm-nav__link{display:none;}

	.sm-page--about .sm-header__inner{min-height:70px;}
	.sm-card-grid--4{grid-template-columns:1fr;}
	.sm-card{padding:26px 22px;}
	.sm-logos{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;}
	.sm-logos li{padding:12px;gap:10px;}
	.sm-logos img{width:26px;height:26px;}
	.sm-logos span{font-size:13.5px;}
	.sm-footer__grid{grid-template-columns:1fr;gap:32px;}
	.sm-footer__bar{flex-direction:column;text-align:center;}
	.sm-cta__actions{flex-direction:column;}
	.sm-cta__actions .sm-btn{width:100%;}

	.sm-page--legal .sm-header__inner{min-height:68px;}
	.sm-page-head{padding:40px 0 28px;}
	.sm-doc h2{gap:10px;}
	.sm-banned{padding:18px;}
	.sm-footer__inner{flex-direction:column;text-align:center;}
}


/* -------------------------------------- 19. Reduced motion & print ------- */
@media (prefers-reduced-motion:reduce){
	.sm-page{scroll-behavior:auto;}
	.sm-js .sm-reveal{opacity:1;transform:none;}
	*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}

@media print{
	.sm-page--legal .sm-header,
	.sm-page--legal .sm-toc,
	.sm-page--legal .sm-footer,
	.sm-page--legal .sm-skip-link{display:none !important;}
	.sm-page--legal body{background:#fff;color:#000;}
	.sm-page--legal .sm-doc{border:0;box-shadow:none;padding:0;max-width:none;}
	.sm-legal-layout{display:block;}
}
