/* ==========================================================================
   Summerton Design — design system + depth/motion styles
   Concept: "The Inspection". Blueprint navy, inspection-tag yellow, report paper.
   Everything is scoped under .sd so it never fights Divi's own styles.
   ========================================================================== */

:root {
	/* Core palette */
	--sd-ink: #0D1B2E;          /* blueprint navy, base dark */
	--sd-ink-deep: #081321;     /* footer */
	--sd-steel: #16304D;        /* raised dark layer */
	--sd-line: #2B5A8A;         /* blueprint lines, accents */
	--sd-tag: #F2C230;          /* inspection-tag yellow (brand accent) */
	--sd-tag-hover: #F7D054;
	--sd-tag-deep: #C99A0E;
	--sd-red: #E5533D;          /* critical findings only */
	--sd-orange: #F08A3C;       /* high */
	--sd-sky: #7FB6E6;          /* medium */
	--sd-green: #4FB985;        /* opportunity / pass */

	/* Text on dark */
	--sd-on-ink: #E8EEF6;
	--sd-on-ink-muted: #A3B6CD;
	--sd-ink-line: rgba(127, 182, 230, .18);
	--sd-ink-glass: rgba(13, 27, 46, .8);

	/* Paper sections (can be re-themed) */
	--sd-surface-paper: #F5F7FA;
	--sd-surface-paper-2: #E9EEF4;
	--sd-on-paper: #13243A;
	--sd-on-paper-muted: #4A5D75;
	--sd-paper-line: #D3DCE7;
	--sd-feat-col: rgba(242, 194, 48, .16);

	/* Tickets, sheets, forms: always light, whatever the section */
	--sd-ticket: #F7F9FC;
	--sd-ticket-2: #E6ECF3;
	--sd-ticket-line: #DCE3EC;
	--sd-on-ticket: #13243A;
	--sd-on-ticket-muted: #4F627A;
	--sd-on-tag: #1A1406;

	/* Severity pills on light paper */
	--sd-crit-bg: #FBE1DC; --sd-crit-fg: #A12B19;
	--sd-high-bg: #FDE7D5; --sd-high-fg: #9A4A0F;
	--sd-med-bg:  #DDEBF8; --sd-med-fg:  #1F4E7D;
	--sd-opp-bg:  #DAF2E5; --sd-opp-fg:  #1C6A43;

	/* Type */
	--sd-display: "Bricolage Grotesque", "Arial Narrow", system-ui, sans-serif;
	--sd-body: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	/* Motion + depth */
	--sd-ease: cubic-bezier(.2, .7, .1, 1);
	--sd-shadow-deep: 0 1px 0 rgba(255, 255, 255, .06) inset, 0 30px 60px -22px rgba(4, 12, 24, .7), 0 70px 120px -50px rgba(4, 12, 24, .6);
	--sd-shadow-paper: 0 0 0 1px var(--sd-paper-line), 0 40px 80px -46px rgba(13, 27, 46, .5);

	--sd-header-h: 76px;
}

:root:has(body.sd-canvas) {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--sd-header-h) + 20px);
}

/* ---------- Base ---------- */
.sd {
	font-family: var(--sd-body);
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--sd-on-ink);
	background: var(--sd-ink);
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
.sd *, .sd *::before, .sd *::after { box-sizing: border-box; }
.sd :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote) { margin: 0; padding: 0; }
.sd :where(ul, ol) { list-style: none; }
.sd :where(a) { color: inherit; }
.sd :where(img, svg) { max-width: 100%; display: block; }
.sd :where(h1, h2, h3, h4) {
	font-family: var(--sd-display);
	font-weight: 700;
	line-height: 1.06;
	letter-spacing: -.02em;
	color: inherit;
	text-wrap: balance;
}
.sd :where(p) { text-wrap: pretty; }
.sd :focus-visible { outline: 3px solid var(--sd-tag); outline-offset: 3px; border-radius: 6px; }
.sd-vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.sd-skip {
	position: absolute; left: 16px; top: -60px; z-index: 200;
	background: var(--sd-tag); color: var(--sd-on-tag);
	padding: 10px 16px; border-radius: 8px; font-weight: 700; text-decoration: none;
}
.sd-skip:focus { top: 16px; }

.sd-wrap {
	width: 100%;
	max-width: 1220px;
	margin-inline: auto;
	padding-inline: clamp(20px, 4vw, 44px);
}

/* ---------- Type scale ---------- */
.sd-h1 {
	font-size: clamp(2.6rem, 5.4vw, 5.1rem);
	font-weight: 750;
	font-variation-settings: "wdth" 80, "opsz" 96;
	line-height: .98;
	letter-spacing: -.035em;
	max-width: 15ch;
}
.sd-h1--page { font-size: clamp(2.4rem, 4.8vw, 4.3rem); max-width: 18ch; }
.sd-h2 {
	font-size: clamp(2rem, 3.7vw, 3.35rem);
	font-weight: 720;
	font-variation-settings: "wdth" 84, "opsz" 72;
	letter-spacing: -.03em;
	max-width: 22ch;
}
.sd :where(h3) { font-size: clamp(1.2rem, 1.5vw, 1.4rem); line-height: 1.2; letter-spacing: -.012em; font-variation-settings: "wdth" 92; }
.sd-lede { font-size: clamp(1.1rem, 1.35vw, 1.28rem); line-height: 1.55; color: var(--sd-on-ink-muted); max-width: 56ch; margin-top: 1.5rem; }
.sd-sub { font-size: 1.14rem; color: var(--sd-on-ink-muted); max-width: 60ch; }
.sd-kicker {
	display: flex; align-items: center; gap: .65rem;
	font-size: .98rem; font-weight: 600; color: var(--sd-tag);
	margin-bottom: 1.4rem;
}
.sd-kicker::before {
	content: ""; flex: none; width: 22px; height: 12px; border-radius: 2px 6px 6px 2px;
	background: radial-gradient(circle at 5px 50%, var(--sd-ink) 2.2px, transparent 2.6px), var(--sd-tag);
}

/* ---------- Buttons ---------- */
.sd-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: 52px; padding: .85rem 1.5rem;
	border: 1.5px solid transparent; border-radius: 12px;
	font-family: var(--sd-body); font-weight: 700; font-size: 1rem; line-height: 1.1;
	text-decoration: none; cursor: pointer;
	transition: transform .25s var(--sd-ease), background-color .25s, border-color .25s, box-shadow .25s, color .25s;
}
.sd-btn:hover { transform: translateY(-2px); }
.sd-btn:active { transform: translateY(0); }
.sd-btn--tag { background: var(--sd-tag); color: var(--sd-on-tag); box-shadow: 0 1px 0 rgba(255, 255, 255, .55) inset, 0 12px 26px -12px rgba(242, 194, 48, .6); }
.sd-btn--tag:hover { background: var(--sd-tag-hover); }
.sd-btn--ghost { border-color: rgba(232, 238, 246, .3); color: var(--sd-on-ink); }
.sd-btn--ghost:hover { border-color: var(--sd-tag); }
.sd-btn--ink { background: var(--sd-ink); color: var(--sd-on-ink); }
.sd-btn--ink:hover { background: var(--sd-steel); }
.sd-btn--ghost-ink { border-color: rgba(26, 20, 6, .4); color: var(--sd-on-tag); }
.sd-btn--ghost-ink:hover { border-color: var(--sd-on-tag); }
.sd-btn--sm { min-height: 42px; padding: .55rem 1.05rem; font-size: .93rem; border-radius: 10px; }
.sd-btn--block { width: 100%; }
.sd-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.2rem; }

.sd-link {
	display: inline-block; font-weight: 700;
	text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px;
	transition: text-underline-offset .2s;
}
.sd-link:hover { text-underline-offset: 8px; }

/* ---------- Header ---------- */
.sd-header {
	position: fixed; inset: 0 0 auto; z-index: 100;
	padding-top: env(safe-area-inset-top, 0px);
	transition: background-color .35s, box-shadow .35s;
}
body.admin-bar .sd-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .sd-header { top: 46px; } }
.sd-header.is-scrolled, .sd-header.is-open {
	background: var(--sd-ink-glass);
	-webkit-backdrop-filter: blur(16px) saturate(1.3);
	backdrop-filter: blur(16px) saturate(1.3);
	box-shadow: 0 1px 0 var(--sd-ink-line);
}
.sd-header__bar { display: flex; align-items: center; justify-content: space-between; height: var(--sd-header-h); }
.sd-logo {
	display: inline-flex; align-items: center; gap: .65rem; text-decoration: none;
	font-family: var(--sd-display); font-weight: 800; font-size: 1.28rem; letter-spacing: -.025em;
	color: var(--sd-on-ink);
}
.sd-logo__mark { width: 34px; height: 34px; flex: none; transform: rotate(-12deg); transition: transform .5s var(--sd-ease); }
.sd-logo:hover .sd-logo__mark { transform: rotate(4deg); }
.sd-logo__word span { font-weight: 400; color: var(--sd-on-ink-muted); }
.sd-nav { display: flex; align-items: center; gap: clamp(1.2rem, 2.4vw, 2.2rem); }
.sd-nav a:not(.sd-btn) {
	text-decoration: none; font-weight: 600; font-size: .98rem; color: var(--sd-on-ink-muted);
	transition: color .2s;
}
.sd-nav a:not(.sd-btn):hover { color: var(--sd-on-ink); }
.sd-menu {
	display: none; position: relative; width: 46px; height: 46px; margin-right: -8px;
	border: 0; background: transparent; cursor: pointer; color: var(--sd-on-ink);
}
.sd-menu span:not(.sd-vh) {
	position: absolute; left: 12px; right: 12px; height: 2px; background: currentColor; border-radius: 2px;
	transition: transform .35s var(--sd-ease), top .35s var(--sd-ease);
}
.sd-menu span:nth-child(1) { top: 18px; }
.sd-menu span:nth-child(2) { top: 27px; }
.sd-header.is-open .sd-menu span:nth-child(1) { top: 22px; transform: rotate(45deg); }
.sd-header.is-open .sd-menu span:nth-child(2) { top: 22px; transform: rotate(-45deg); }

/* ---------- Hero ---------- */
.sd-hero {
	position: relative; isolation: isolate;
	min-height: 100svh; display: flex; align-items: center;
	padding: calc(var(--sd-header-h) + 60px + env(safe-area-inset-top, 0px)) 0 90px;
	background:
		radial-gradient(1100px 700px at 78% 42%, var(--sd-steel), transparent 70%),
		var(--sd-ink);
}
.sd-hero__grid-bg {
	position: absolute; inset: -10% 0 0; z-index: -1; pointer-events: none;
	background-image:
		linear-gradient(var(--sd-ink-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--sd-ink-line) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(ellipse 70% 65% at 72% 45%, #000 25%, transparent 75%);
	mask-image: radial-gradient(ellipse 70% 65% at 72% 45%, #000 25%, transparent 75%);
	transform: translate3d(0, calc(var(--sd-scroll, 0) * .25px), 0);
}
.sd-hero__inner {
	display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: clamp(36px, 5vw, 80px); align-items: center;
}
.sd-hero__note { margin-top: 1.4rem; font-size: .95rem; color: var(--sd-on-ink-muted); }

/* The 3D inspection stage */
.sd-stage { --mx: 0; --my: 0; --sp: 0; position: relative; perspective: 1700px; perspective-origin: 50% 35%; }
.sd-stage__in { transform-style: preserve-3d; }
.sd-stage.is-ready .sd-stage__in { animation: sd-rise 1.5s var(--sd-ease) both; }
.sd-stack {
	position: relative; aspect-ratio: 4 / 3.05;
	transform-style: preserve-3d;
	transform:
		rotateX(calc(15deg - var(--sp) * 11deg - var(--my) * 5deg))
		rotateY(calc(-19deg + var(--sp) * 9deg + var(--mx) * 7deg))
		rotateZ(2.5deg);
	will-change: transform;
}
@keyframes sd-rise {
	from { opacity: 0; transform: rotateX(48deg) translate3d(0, 90px, -120px) scale(.92); }
	to   { opacity: 1; transform: none; }
}
.sd-floor {
	position: absolute; inset: -14% -12%; border-radius: 28px;
	transform: translateZ(-110px);
	background-image:
		linear-gradient(rgba(242, 194, 48, .16) 1px, transparent 1px),
		linear-gradient(90deg, rgba(242, 194, 48, .16) 1px, transparent 1px);
	background-size: 28px 28px;
	-webkit-mask-image: radial-gradient(closest-side, #000 35%, transparent);
	mask-image: radial-gradient(closest-side, #000 35%, transparent);
}
.sd-mock {
	position: absolute; inset: 0; overflow: hidden;
	border-radius: 14px; background: var(--sd-ticket);
	box-shadow: var(--sd-shadow-deep), 0 0 0 1px rgba(255, 255, 255, .1);
}
.sd-mock__bar {
	display: flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px;
	background: var(--sd-ticket-2); border-bottom: 1px solid var(--sd-ticket-line);
}
.sd-mock__bar i { width: 9px; height: 9px; border-radius: 50%; background: #C3CDD9; }
.sd-mock__bar span {
	margin-left: 14px; flex: 1; max-width: 55%; height: 20px; border-radius: 6px;
	background: var(--sd-ticket); color: var(--sd-on-ticket-muted);
	font-size: .7rem; line-height: 20px; padding-left: 10px; white-space: nowrap; overflow: hidden;
}
.sd-mock__body { padding: 4.5% 5%; height: calc(100% - 34px); display: grid; grid-template-rows: auto 1fr auto; gap: 5%; }
.sd-mock__nav { display: flex; align-items: center; gap: 8px; }
.sd-mock__nav b { width: 26%; height: 12px; border-radius: 3px; background: var(--sd-on-ticket); }
.sd-mock__nav span { margin-left: auto; width: 9%; height: 7px; border-radius: 3px; background: #C3CDD9; }
.sd-mock__nav span + span { margin-left: 0; }
.sd-mock__hero {
	border-radius: 10px; padding: 6% 6%; display: grid; align-content: center; gap: 9px;
	background: linear-gradient(135deg, #2E4A6B, #4B7398);
}
.sd-mock__h { height: 14px; width: 72%; border-radius: 4px; background: #F7F9FC; }
.sd-mock__h--short { width: 48%; }
.sd-mock__p { height: 7px; width: 60%; border-radius: 4px; background: rgba(247, 249, 252, .5); margin-top: 4px; }
.sd-mock__btn { height: 18px; width: 22%; border-radius: 5px; background: #D9573F; margin-top: 6px; }
.sd-mock__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4%; }
.sd-mock__cards div { height: 58px; border-radius: 8px; background: var(--sd-ticket-2); }
.sd-scan {
	position: absolute; left: 0; right: 0; top: -40%; height: 40%; opacity: 0;
	background: linear-gradient(to bottom, transparent 35%, rgba(242, 194, 48, .26) 92%, rgba(242, 194, 48, .55));
	border-bottom: 2px solid var(--sd-tag);
	box-shadow: 0 6px 20px rgba(242, 194, 48, .45);
	pointer-events: none;
}
.sd-stage.is-ready .sd-scan { animation: sd-scan 3.8s var(--sd-ease) 1.4s infinite; }
@keyframes sd-scan {
	0% { top: -40%; opacity: 0; }
	12% { opacity: 1; }
	78% { opacity: 1; }
	100% { top: 100%; opacity: 0; }
}

/* Inspection hang tags floating at different depths */
.sd-htag {
	--d: 40; --r: -3deg;
	position: absolute; left: var(--x); top: var(--y);
	display: grid; gap: 3px;
	min-width: 172px; max-width: 250px; padding: 10px 14px 11px 28px;
	border-radius: 4px 10px 10px 4px;
	background: var(--sd-tag); color: var(--sd-on-tag);
	font-size: .82rem; line-height: 1.25; font-weight: 600;
	box-shadow: 0 2px 0 rgba(255, 255, 255, .5) inset, 0 22px 34px -14px rgba(4, 12, 24, .7);
	transform: translate3d(calc(var(--mx) * var(--d) * .55px), calc(var(--my) * var(--d) * .4px), calc(var(--d) * 1px)) rotate(var(--r));
	transform-origin: 12px 50%;
	opacity: 0;
}
.sd-htag::before {
	content: ""; position: absolute; left: 9px; top: 50%; width: 10px; height: 10px; margin-top: -5px;
	border-radius: 50%; background: var(--sd-ink); box-shadow: 0 0 0 3px rgba(26, 20, 6, .16);
}
.sd-htag::after {
	content: ""; position: absolute; right: calc(100% - 14px); top: 50%;
	width: 34px; height: 1.5px; background: var(--sd-tag-deep);
	transform-origin: right center; transform: rotate(22deg);
}
.sd-htag__sev { display: flex; align-items: center; gap: 6px; font-size: .7rem; font-weight: 800; opacity: .8; }
.sd-htag__sev::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--sd-red); }
.sd-htag--high .sd-htag__sev::before { background: var(--sd-orange); }
.sd-htag--med .sd-htag__sev::before { background: #3D7DBA; }
.sd-htag--opp .sd-htag__sev::before { background: #23864F; }
.sd-stage.is-ready .sd-htag { animation: sd-tagin .8s var(--sd-ease) both; animation-delay: calc(.9s + var(--i, 0) * .17s); }
@keyframes sd-tagin {
	from { opacity: 0; scale: .55; }
	to   { opacity: 1; scale: 1; }
}
.sd-stage__cap { margin-top: 26px; text-align: center; font-size: .86rem; color: var(--sd-on-ink-muted); }

/* ---------- Trades strip ---------- */
.sd-trades { background: var(--sd-ink); border-block: 1px solid var(--sd-ink-line); padding: 22px 0; }
.sd-trades .sd-wrap { display: flex; align-items: baseline; gap: .6rem 1.6rem; flex-wrap: wrap; }
.sd-trades p { color: var(--sd-on-ink-muted); font-size: .95rem; }
.sd-trades ul { display: flex; flex-wrap: wrap; gap: .3rem 1.5rem; }
.sd-trades li { font-family: var(--sd-display); font-weight: 650; font-size: 1.06rem; letter-spacing: -.01em; color: var(--sd-on-ink); }

/* ---------- Sections ---------- */
.sd-sec { position: relative; padding-block: clamp(88px, 11vw, 150px); }
.sd-sec--ink { background: var(--sd-ink); color: var(--sd-on-ink); }
.sd-sec--steel { background: linear-gradient(180deg, var(--sd-ink) 0%, var(--sd-steel) 100%); color: var(--sd-on-ink); }
.sd-sec--paper { background: var(--sd-surface-paper); color: var(--sd-on-paper); }
.sd-sec--paper2 { background: var(--sd-surface-paper-2); color: var(--sd-on-paper); }
.sd-sec--paper .sd-sub, .sd-sec--paper2 .sd-sub, .sd-sec--paper .sd-lede { color: var(--sd-on-paper-muted); }
.sd-head { display: grid; gap: 1.1rem; max-width: 800px; margin-bottom: clamp(48px, 6vw, 84px); }
.sd-head--center { margin-inline: auto; text-align: center; justify-items: center; }

/* ---------- What we inspect ---------- */
.sd-checks { border-top: 1px solid var(--sd-ink-line); }
.sd-check {
	display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 1rem 2.5rem;
	padding: clamp(28px, 3.6vw, 42px) 0; border-bottom: 1px solid var(--sd-ink-line);
}
.sd-check__q { display: flex; gap: 1.1rem; align-items: flex-start; }
.sd-check__q svg { flex: none; width: 34px; height: 34px; margin-top: .15rem; }
.sd-check h3 { font-size: clamp(1.5rem, 2.5vw, 2.15rem); font-variation-settings: "wdth" 84; letter-spacing: -.025em; }
.sd-check p { color: var(--sd-on-ink-muted); max-width: 54ch; padding-top: .3rem; }

/* ---------- Process (a real sequence, so numbered) ---------- */
.sd-steps {
	--p: 0;
	position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(22px, 3vw, 44px); padding-top: 72px;
}
.sd-steps::before, .sd-steps::after { content: ""; position: absolute; left: 0; top: 21px; height: 2px; }
.sd-steps::before { right: 0; background: var(--sd-ink-line); }
.sd-steps::after { width: calc(var(--p) * 100%); background: var(--sd-tag); box-shadow: 0 0 18px rgba(242, 194, 48, .7); }
.sd-step { position: relative; }
.sd-step__n {
	position: absolute; top: -72px; left: 0; width: 44px; height: 44px; border-radius: 50%;
	display: grid; place-items: center;
	background: var(--sd-ink); border: 2px solid var(--sd-line); color: var(--sd-on-ink);
	font-family: var(--sd-display); font-weight: 800; font-size: 1.1rem;
	transition: background-color .45s, border-color .45s, color .45s, transform .45s var(--sd-ease);
}
.sd-step.is-on .sd-step__n { background: var(--sd-tag); border-color: var(--sd-tag); color: var(--sd-on-tag); transform: scale(1.08); }
.sd-step h3 { margin-bottom: .65rem; }
.sd-step p { color: var(--sd-on-ink-muted); font-size: .99rem; }

/* ---------- Pricing tiers as hang tags ---------- */
.sd-tiers { background: linear-gradient(var(--sd-ink), transparent 220px), radial-gradient(1000px 620px at 50% 22%, var(--sd-steel), transparent 72%), var(--sd-ink); }
.sd-tagrow {
	position: relative; display: grid; grid-template-columns: 1fr 1.16fr 1fr;
	gap: clamp(18px, 2.4vw, 32px); align-items: start; padding-top: 64px; perspective: 1500px;
}
.sd-tagrow::before {
	content: ""; position: absolute; top: 0; left: 6%; right: 6%; height: 3px; border-radius: 3px;
	background: linear-gradient(90deg, transparent, var(--sd-line) 12%, var(--sd-line) 88%, transparent);
}
.sd-ptag {
	--rx: 0; --ry: 0;
	position: relative; padding: 58px clamp(22px, 2.3vw, 34px) 32px;
	border-radius: 8px 8px 20px 20px;
	background: var(--sd-ticket); color: var(--sd-on-ticket);
	box-shadow: var(--sd-shadow-deep);
	transform: rotateX(calc(var(--ry) * 1deg)) rotateY(calc(var(--rx) * 1deg));
	transform-origin: 50% 0;
	transition: transform .6s var(--sd-ease);
}
.sd-ptag.is-tilting { transition: transform .12s linear; }
.sd-ptag--featured { background: var(--sd-tag); color: var(--sd-on-tag); margin-top: -18px; }
.sd-ptag__hole {
	position: absolute; top: 18px; left: 50%; width: 18px; height: 18px; margin-left: -9px;
	border-radius: 50%; background: var(--sd-ink); box-shadow: 0 0 0 5px rgba(19, 36, 58, .1);
}
.sd-ptag__hole::before {
	content: ""; position: absolute; bottom: 50%; left: 50%; width: 2px; height: 82px; margin-left: -1px;
	background: linear-gradient(to top, var(--sd-tag-deep), rgba(201, 154, 14, .25));
}
.sd-ptag--featured .sd-ptag__hole::before { height: 64px; }
.sd-ptag__flag {
	display: inline-block; margin-bottom: 1rem; padding: 6px 12px; border-radius: 99px;
	background: var(--sd-ink); color: var(--sd-on-ink); font-size: .8rem; font-weight: 700;
}
.sd-ptag__name { font-size: 1.45rem; }
.sd-ptag__price {
	font-family: var(--sd-display); font-weight: 800; letter-spacing: -.05em;
	font-size: clamp(3.6rem, 5.6vw, 5rem); line-height: 1; margin: .55rem 0 .7rem;
	font-variation-settings: "wdth" 80;
}
.sd-ptag__cur { font-size: .45em; vertical-align: .95em; margin-right: .06em; }
.sd-ptag__for { color: var(--sd-on-ticket-muted); margin-bottom: 1.4rem; }
.sd-ptag--featured .sd-ptag__for { color: rgba(26, 20, 6, .78); }
.sd-ptag__inc { font-weight: 700; font-size: .92rem; margin-bottom: .4rem; }
.sd-ptag__time { margin: 1.5rem 0 1rem; padding-top: 1rem; border-top: 1px dashed rgba(19, 36, 58, .25); font-size: .92rem; font-weight: 650; }
.sd-ptag--featured .sd-ptag__time { border-top-color: rgba(26, 20, 6, .3); }
.sd-ptag .sd-link { margin-top: 1rem; font-size: .95rem; }

/* Check lists */
.sd-list li { position: relative; padding-left: 1.75rem; margin: .58rem 0; font-size: .97rem; line-height: 1.45; }
.sd-list li::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 1.1rem; height: 1.1rem; border-radius: 5px;
	background: rgba(19, 36, 58, .1) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%2313243A' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 72% no-repeat;
}
.sd-list li strong { display: block; font-weight: 750; }
.sd-list li span { display: block; font-size: .93rem; opacity: .82; margin-top: 2px; }
.sd-list--onink li::before {
	background-color: rgba(242, 194, 48, .16);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23F2C230' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.sd-sec--paper .sd-list:not(.sd-list--onink) li::before, .sd-sec--paper2 .sd-list li::before { background-color: var(--sd-surface-paper-2); }

/* ---------- Full Audit deep dive ---------- */
.sd-feature {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(40px, 6vw, 100px); align-items: center; padding-block: clamp(34px, 5vw, 70px);
}
.sd-feature--flip .sd-feature__art { order: 2; }
.sd-head + .sd-feature { padding-top: 0; }
.sd-feature h3 { font-size: clamp(1.8rem, 3vw, 2.6rem); font-variation-settings: "wdth" 84; letter-spacing: -.028em; margin-bottom: 1rem; }
.sd-feature__copy > p { color: var(--sd-on-paper-muted); max-width: 52ch; margin-bottom: 1.3rem; }
.sd-art-cap { margin-top: 18px; font-size: .85rem; color: var(--sd-on-paper-muted); text-align: center; }

/* 3D radar: competitors around you */
.sd-radar { --p: 0; position: relative; max-width: 520px; margin-inline: auto; aspect-ratio: 1; perspective: 1100px; }
.sd-radar__plane {
	position: absolute; inset: 4%; border-radius: 50%; overflow: hidden;
	transform: rotateX(calc(56deg - var(--p) * 16deg)) rotateZ(calc(var(--p) * 30deg - 10deg));
	background: radial-gradient(circle, var(--sd-steel) 0%, var(--sd-ink) 72%);
	box-shadow: 0 50px 70px -30px rgba(13, 27, 46, .65), 0 0 0 1px rgba(43, 90, 138, .5);
}
.sd-radar__plane::before {
	content: ""; position: absolute; inset: 0; border-radius: 50%;
	background:
		repeating-radial-gradient(circle, transparent 0 calc(16.6% - 1px), rgba(127, 182, 230, .25) calc(16.6% - 1px) 16.6%),
		linear-gradient(transparent calc(50% - .5px), rgba(127, 182, 230, .2) calc(50% - .5px) calc(50% + .5px), transparent calc(50% + .5px)),
		linear-gradient(90deg, transparent calc(50% - .5px), rgba(127, 182, 230, .2) calc(50% - .5px) calc(50% + .5px), transparent calc(50% + .5px));
}
.sd-radar__sweep {
	position: absolute; inset: 0; border-radius: 50%;
	background: conic-gradient(from 0deg, rgba(242, 194, 48, .5), rgba(242, 194, 48, 0) 20%, transparent 100%);
	animation: sd-spin 7s linear infinite;
}
@keyframes sd-spin { to { transform: rotate(360deg); } }
.sd-radar__dot {
	position: absolute; left: var(--x); top: var(--y); width: 14px; height: 14px; margin: -7px 0 0 -7px;
	border-radius: 50%; background: var(--sd-on-ink); box-shadow: 0 0 0 6px rgba(232, 238, 246, .12);
}
.sd-radar__dot--you {
	width: 22px; height: 22px; margin: -11px 0 0 -11px; background: var(--sd-tag);
	box-shadow: 0 0 0 8px rgba(242, 194, 48, .22);
	animation: sd-pulse 2.4s ease-out infinite;
}
@keyframes sd-pulse {
	0% { box-shadow: 0 0 0 0 rgba(242, 194, 48, .55); }
	100% { box-shadow: 0 0 0 26px rgba(242, 194, 48, 0); }
}
.sd-legend { display: flex; justify-content: center; gap: 1.4rem; flex-wrap: wrap; margin-top: 14px; font-size: .88rem; color: var(--sd-on-paper-muted); }
.sd-legend span { display: inline-flex; align-items: center; gap: .45rem; }
.sd-legend i { width: 11px; height: 11px; border-radius: 50%; background: var(--sd-on-paper); }
.sd-legend i.is-you { background: var(--sd-tag); box-shadow: 0 0 0 2px var(--sd-on-paper); }

/* Keyword research card */
.sd-kw-stage { --p: 0; perspective: 1300px; }
.sd-kw {
	border-radius: 16px; padding: clamp(18px, 2.4vw, 30px);
	background: var(--sd-ticket); color: var(--sd-on-ticket);
	box-shadow: var(--sd-shadow-paper);
	transform: rotateY(calc(12deg - var(--p) * 12deg)) rotateX(calc(7deg - var(--p) * 7deg));
	transform-origin: 0 50%;
}
.sd-kw__title { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: .6rem; }
.sd-kw__title h4 { font-size: 1.08rem; }
.sd-kw__title span { font-size: .82rem; color: var(--sd-on-ticket-muted); }
.sd-kw__row {
	display: grid; grid-template-columns: 1.55fr 1.1fr .75fr 1.05fr; gap: 12px; align-items: center;
	padding: 11px 0; border-bottom: 1px solid var(--sd-ticket-line); font-size: .88rem;
}
.sd-kw__row:last-child { border-bottom: 0; }
.sd-kw__row--head { font-size: .76rem; font-weight: 700; color: var(--sd-on-ticket-muted); padding-top: 4px; }
.sd-kw__term { font-weight: 650; }
.sd-bar { height: 8px; border-radius: 99px; background: var(--sd-ticket-2); overflow: hidden; }
.sd-bar span { display: block; height: 100%; width: var(--w); border-radius: inherit; background: var(--sd-line); }
.sd-dots { display: flex; gap: 4px; }
.sd-dots i { width: 8px; height: 8px; border-radius: 50%; background: var(--sd-ticket-line); }
.sd-dots i.on { background: var(--sd-orange); }
.sd-page { font-size: .8rem; color: var(--sd-on-ticket-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sd-pill { display: inline-block; padding: 3px 9px; border-radius: 99px; font-size: .74rem; font-weight: 750; white-space: nowrap; }
.sd-pill--miss { background: var(--sd-crit-bg); color: var(--sd-crit-fg); }
.sd-pill--win { background: var(--sd-opp-bg); color: var(--sd-opp-fg); }

.sd-alsoin { margin-top: clamp(40px, 6vw, 80px); padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--sd-paper-line); }
.sd-alsoin > h3 { font-size: clamp(1.5rem, 2.4vw, 2rem); margin-bottom: 2rem; letter-spacing: -.025em; }
.sd-gridlist { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 30px 44px; }
.sd-gridlist li { padding-top: 16px; border-top: 2px solid var(--sd-on-paper); }
.sd-gridlist strong { display: block; font-family: var(--sd-display); font-size: 1.12rem; letter-spacing: -.01em; margin-bottom: .35rem; }
.sd-gridlist span { display: block; color: var(--sd-on-paper-muted); font-size: .96rem; }

/* ---------- Comparison table ---------- */
.sd-tablewrap { overflow-x: auto; border-radius: 18px; background: var(--sd-surface-paper); box-shadow: var(--sd-shadow-paper); -webkit-overflow-scrolling: touch; }
.sd-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: .97rem; color: var(--sd-on-paper); }
.sd-table th, .sd-table td { padding: 14px 18px; text-align: center; border-bottom: 1px solid var(--sd-paper-line); vertical-align: middle; }
.sd-table th[scope="row"] { text-align: left; font-weight: 500; }
.sd-table thead th { font-family: var(--sd-display); font-size: 1.2rem; letter-spacing: -.015em; padding-top: 26px; padding-bottom: 20px; vertical-align: bottom; }
.sd-table thead th small { display: block; font-family: var(--sd-body); font-size: .92rem; font-weight: 600; letter-spacing: 0; color: var(--sd-on-paper-muted); margin-top: 4px; }
.sd-table thead th:first-child { text-align: left; font-family: var(--sd-body); font-size: .95rem; color: var(--sd-on-paper-muted); font-weight: 600; }
.sd-table .is-feat { background: var(--sd-feat-col); }
.sd-table th[scope="row"], .sd-table thead th:first-child { position: sticky; left: 0; z-index: 1; background: var(--sd-surface-paper); min-width: 200px; }
.sd-table tr.sd-group th { position: static; }
.sd-table tr.sd-group th { text-align: left; padding-top: 24px; font-family: var(--sd-display); font-weight: 700; font-size: 1.04rem; background: var(--sd-surface-paper-2); }
.sd-table tfoot th, .sd-table tfoot td { border-bottom: 0; padding-block: 22px; }
.sd-table tfoot td { font-family: var(--sd-display); font-weight: 800; font-size: 1.6rem; letter-spacing: -.03em; }
.sd-yes { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--sd-on-paper); color: var(--sd-surface-paper); vertical-align: middle; }
.sd-yes svg { width: 14px; height: 14px; }
.sd-no { color: var(--sd-on-paper-muted); }
.sd-table td.sd-txt { font-size: .9rem; font-weight: 600; }

/* ---------- Sample report ---------- */
.sd-report__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.sd-report__copy .sd-sub { margin-top: 1.1rem; }
.sd-sevkey { display: grid; gap: .85rem; margin-top: 2.2rem; }
.sd-sevkey li { display: grid; grid-template-columns: 96px 1fr; gap: .9rem; align-items: center; color: var(--sd-on-ink-muted); font-size: .97rem; }
.sd-sev {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	padding: 4px 11px; border-radius: 99px; font-size: .78rem; font-weight: 800; white-space: nowrap;
	background: var(--sd-crit-bg); color: var(--sd-crit-fg);
}
.sd-sev--high { background: var(--sd-high-bg); color: var(--sd-high-fg); }
.sd-sev--med { background: var(--sd-med-bg); color: var(--sd-med-fg); }
.sd-sev--low { background: var(--sd-ticket-2); color: var(--sd-on-ticket-muted); }
.sd-sheet-stage { --p: 0; position: relative; perspective: 1700px; }
.sd-sheet-stage::before, .sd-sheet-stage::after {
	content: ""; position: absolute; inset: 0; border-radius: 12px; z-index: 0;
	background: var(--sd-ticket-2); box-shadow: var(--sd-shadow-deep);
	transform: translate3d(calc(14px - var(--p) * 6px), calc(16px - var(--p) * 6px), 0) rotate(calc(3deg - var(--p) * 1.5deg));
}
.sd-sheet-stage::after { background: #CCD6E2; transform: translate3d(calc(28px - var(--p) * 12px), calc(30px - var(--p) * 12px), 0) rotate(calc(5.5deg - var(--p) * 3deg)); z-index: -1; }
.sd-sheet {
	position: relative; z-index: 1; border-radius: 12px; padding: clamp(22px, 3vw, 40px);
	background: var(--sd-ticket); color: var(--sd-on-ticket); box-shadow: var(--sd-shadow-deep);
	transform: rotateX(calc(16deg - var(--p) * 16deg)) rotateZ(calc(-3deg + var(--p) * 3deg)) translate3d(0, calc(46px - var(--p) * 46px), 0);
	transform-origin: 50% 100%;
}
.sd-sheet__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; padding-bottom: 16px; border-bottom: 2px solid var(--sd-on-ticket); }
.sd-sheet__head h3 { font-size: 1.5rem; }
.sd-sheet__head p { font-size: .82rem; color: var(--sd-on-ticket-muted); text-align: right; line-height: 1.4; }
.sd-find { display: grid; grid-template-columns: 96px 1fr; gap: 4px 16px; padding: 18px 0; border-bottom: 1px solid var(--sd-ticket-line); }
.sd-find:last-child { border-bottom: 0; padding-bottom: 0; }
.sd-find .sd-sev { grid-row: span 3; align-self: start; margin-top: 2px; }
.sd-find h4 { font-size: 1.04rem; letter-spacing: -.01em; }
.sd-find p { font-size: .9rem; color: var(--sd-on-ticket-muted); line-height: 1.5; }
.sd-find p b { color: var(--sd-on-ticket); }

/* ---------- About ---------- */
.sd-about__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 100px); align-items: center; }
.sd-about__art { --p: .5; position: relative; isolation: isolate; max-width: 380px; width: 100%; }
.sd-about__art::before {
	content: ""; position: absolute; inset: 18px -18px -18px 18px; z-index: -1;
	border: 1.5px solid var(--sd-line); border-radius: 22px;
	transform: translate3d(0, calc((var(--p) - .5) * 40px), 0);
}
.sd-mono {
	aspect-ratio: 4 / 5; border-radius: 18px; display: grid; place-items: center; overflow: hidden;
	background: linear-gradient(160deg, var(--sd-steel), var(--sd-ink) 80%);
	box-shadow: var(--sd-shadow-deep);
	transform: translate3d(0, calc((var(--p) - .5) * -36px), 0);
}
.sd-mono img { width: 100%; height: 100%; object-fit: cover; }
.sd-mono span { font-family: var(--sd-display); font-weight: 800; font-size: clamp(6rem, 12vw, 9rem); letter-spacing: -.06em; color: var(--sd-tag); font-variation-settings: "wdth" 75; }
.sd-about__copy p { color: var(--sd-on-ink-muted); max-width: 60ch; margin-top: 1.1rem; font-size: 1.08rem; }
.sd-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; margin-top: 2.6rem; padding-top: 2rem; border-top: 1px solid var(--sd-ink-line); }
.sd-principles strong { display: block; font-family: var(--sd-display); font-size: 1.12rem; margin-bottom: .35rem; color: var(--sd-on-ink); }
.sd-principles span { display: block; color: var(--sd-on-ink-muted); font-size: .95rem; }

/* ---------- FAQ ---------- */
.sd-faq__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(36px, 6vw, 90px); align-items: start; }
.sd-faq details { border-bottom: 1px solid var(--sd-paper-line); }
.sd-faq details:first-child { border-top: 1px solid var(--sd-paper-line); }
.sd-faq summary {
	display: flex; justify-content: space-between; align-items: center; gap: 1.5rem;
	padding: 22px 0; cursor: pointer; list-style: none;
	font-family: var(--sd-display); font-weight: 700; font-size: clamp(1.08rem, 1.45vw, 1.28rem); letter-spacing: -.012em;
}
.sd-faq summary::-webkit-details-marker { display: none; }
.sd-faq summary::after {
	content: ""; flex: none; width: 28px; height: 28px; border-radius: 50%;
	background:
		linear-gradient(currentColor, currentColor) center / 12px 2px no-repeat,
		linear-gradient(currentColor, currentColor) center / 2px 12px no-repeat,
		var(--sd-surface-paper-2);
	transition: transform .35s var(--sd-ease);
}
.sd-faq details[open] summary::after { transform: rotate(45deg); }
.sd-faq__a { padding: 0 0 24px; color: var(--sd-on-paper-muted); max-width: 64ch; }
.sd-faq__a p + p { margin-top: .8rem; }

/* ---------- CTA band ---------- */
.sd-cta { position: relative; overflow: hidden; background: var(--sd-tag); color: var(--sd-on-tag); padding-block: clamp(80px, 10vw, 130px); }
.sd-cta__inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem 3rem; align-items: end; }
.sd-cta .sd-h2 { max-width: 16ch; font-size: clamp(2.3rem, 4.6vw, 4.2rem); }
.sd-cta p { margin-top: 1.1rem; max-width: 52ch; font-size: 1.12rem; color: rgba(26, 20, 6, .8); }
.sd-cta .sd-actions { margin-top: 0; }
.sd-cta__ring {
	position: absolute; right: -120px; top: 50%; width: 460px; height: 460px; margin-top: -230px; border-radius: 50%;
	border: 70px solid rgba(26, 20, 6, .07); pointer-events: none;
	transform: translate3d(0, calc((var(--p, .5) - .5) * -80px), 0);
}

/* ---------- Contact ---------- */
.sd-contact__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.sd-next { margin-top: 2.2rem; display: grid; gap: 1.1rem; }
.sd-next li { display: grid; grid-template-columns: 36px 1fr; gap: 14px; align-items: start; color: var(--sd-on-paper-muted); }
.sd-next li b {
	display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%;
	background: var(--sd-on-paper); color: var(--sd-surface-paper); font-family: var(--sd-display); font-size: 1rem;
}
.sd-next li strong { display: block; color: var(--sd-on-paper); }
.sd-form {
	position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px;
	padding: clamp(22px, 3vw, 40px); border-radius: 20px;
	background: var(--sd-ticket); color: var(--sd-on-ticket); box-shadow: var(--sd-shadow-paper);
}
.sd-field { display: grid; gap: 7px; align-content: start; }
.sd-field--full, .sd-form__notice, .sd-form__fine, .sd-form .sd-btn { grid-column: 1 / -1; }
.sd-form .sd-btn { justify-self: start; margin-top: 4px; }
.sd-form label { font-weight: 700; font-size: .93rem; }
.sd-form label small { font-weight: 500; color: var(--sd-on-ticket-muted); }
.sd-form input, .sd-form select, .sd-form textarea {
	width: 100%; min-height: 50px; padding: 12px 14px; margin: 0;
	font: inherit; font-size: 1rem; color: var(--sd-on-ticket);
	background: #fff; border: 1.5px solid #C6D1DE; border-radius: 10px;
	transition: border-color .2s, box-shadow .2s;
	-webkit-appearance: none; appearance: none;
}
.sd-form select {
	padding-right: 40px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%2313243A' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") right 14px center / 16px no-repeat;
}
.sd-form textarea { min-height: 130px; resize: vertical; }
.sd-form input:focus, .sd-form select:focus, .sd-form textarea:focus { outline: none; border-color: var(--sd-line); box-shadow: 0 0 0 4px rgba(43, 90, 138, .2); }
.sd-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sd-form__notice { padding: 12px 16px; border-radius: 10px; font-weight: 650; }
.sd-form__notice--sent { background: var(--sd-opp-bg); color: var(--sd-opp-fg); }
.sd-form__notice--error, .sd-form__notice--missing { background: var(--sd-crit-bg); color: var(--sd-crit-fg); }
.sd-form__fine { font-size: .85rem; color: var(--sd-on-ticket-muted); }

/* ---------- Page head (inner pages) ---------- */
.sd-pagehead {
	position: relative; isolation: isolate;
	padding: calc(var(--sd-header-h) + 100px + env(safe-area-inset-top, 0px)) 0 clamp(70px, 9vw, 110px);
	background: radial-gradient(900px 520px at 80% 30%, var(--sd-steel), transparent 70%), var(--sd-ink);
}


/* ---------- Service area map ---------- */
.sd-area__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.sd-area__copy .sd-sub { margin-top: 1.1rem; }
.sd-area__towns { margin-top: 1.4rem; color: var(--sd-on-ink); font-weight: 600; max-width: 52ch; }
.sd-map { --p: 0; position: relative; aspect-ratio: 5 / 4; perspective: 1300px; }
.sd-map__plane {
	position: absolute; inset: 0; border-radius: 22px; transform-style: preserve-3d;
	background:
		radial-gradient(circle at 46% 49%, rgba(242, 194, 48, .22), transparent 32%),
		linear-gradient(var(--sd-ink-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--sd-ink-line) 1px, transparent 1px),
		var(--sd-steel);
	background-size: auto, 40px 40px, 40px 40px, auto;
	box-shadow: var(--sd-shadow-deep), 0 0 0 1px var(--sd-ink-line);
	transform: rotateX(calc(42deg - var(--p) * 24deg)) rotateZ(calc(-8deg + var(--p) * 8deg));
}
.sd-town {
	position: absolute; left: var(--x); top: var(--y);
	padding: 5px 11px; border-radius: 99px; white-space: nowrap;
	background: var(--sd-ink); color: var(--sd-on-ink); border: 1px solid var(--sd-line);
	font-size: .82rem; font-weight: 650;
	transform: translate(-50%, -50%) translateZ(24px);
	box-shadow: 0 12px 20px -10px rgba(4, 12, 24, .8);
}
.sd-town--big { font-size: .92rem; }
.sd-town--home {
	padding: 9px 18px; font-family: var(--sd-display); font-size: 1.15rem; font-weight: 800;
	background: var(--sd-tag); color: var(--sd-on-tag); border-color: var(--sd-tag);
	transform: translate(-50%, -50%) translateZ(60px);
	box-shadow: 0 0 0 8px rgba(242, 194, 48, .18), 0 22px 30px -12px rgba(4, 12, 24, .8);
}

/* ---------- Footer ---------- */
.sd-footer { background: var(--sd-ink-deep); color: var(--sd-on-ink-muted); padding: 70px 0 calc(40px + env(safe-area-inset-bottom, 0px)); font-size: .95rem; }
.sd-footer__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); gap: 36px; padding-bottom: 44px; border-bottom: 1px solid var(--sd-ink-line); }
.sd-footer__about p { margin-top: 1rem; max-width: 40ch; }
.sd-footer h2 { font-size: 1rem; color: var(--sd-on-ink); margin-bottom: .9rem; letter-spacing: 0; }
.sd-footer li { margin: .45rem 0; }
.sd-footer a { text-decoration: none; transition: color .2s; }
.sd-footer a:hover { color: var(--sd-on-ink); }
.sd-footer__base { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding-top: 26px; font-size: .86rem; }

/* ==========================================================================
   Utility classes for Divi modules (add in Advanced > CSS ID & Classes)
   ========================================================================== */
.sd-tilt { --rx: 0; --ry: 0; transform: perspective(900px) rotateX(calc(var(--ry) * 1deg)) rotateY(calc(var(--rx) * 1deg)); transition: transform .6s var(--sd-ease); }
.sd-tilt.is-tilting { transition: transform .12s linear; }
.sd-parallax { --p: .5; transform: translate3d(0, calc((var(--p) - .5) * var(--sd-par, -60px)), 0); }
.sd-parallax-slow { --sd-par: -30px; }
.sd-parallax-fast { --sd-par: -110px; }
.sd-glass {
	background: rgba(22, 48, 77, .55); border: 1px solid var(--sd-ink-line); border-radius: 18px;
	-webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}
.sd-depth { box-shadow: var(--sd-shadow-deep); }
.sd-blueprint {
	background-image:
		linear-gradient(var(--sd-ink-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--sd-ink-line) 1px, transparent 1px);
	background-size: 56px 56px;
}
html.sd-js [data-sd-reveal], html.sd-js .sd-reveal { opacity: 0; transform: translate3d(0, 26px, 0); transition: opacity .9s var(--sd-ease), transform .9s var(--sd-ease); }
html.sd-js [data-sd-reveal].is-in, html.sd-js .sd-reveal.is-in { opacity: 1; transform: none; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1080px) {
	.sd-tagrow { grid-template-columns: 1fr 1fr; padding-top: 0; }
	.sd-tagrow::before, .sd-ptag__hole::before { display: none; }
	.sd-ptag--featured { grid-column: 1 / -1; order: -1; margin-top: 0; }
	.sd-principles { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 900px) {
	.sd-hero { min-height: 0; padding-bottom: 70px; }
	.sd-hero__inner, .sd-area__grid, .sd-feature, .sd-report__grid, .sd-about__grid, .sd-faq__grid, .sd-contact__grid, .sd-check { grid-template-columns: minmax(0, 1fr); }
	.sd-feature--flip .sd-feature__art { order: 0; }
	.sd-stage { margin-top: 20px; max-width: 620px; width: 100%; justify-self: center; }
	.sd-check { gap: .6rem; }
	.sd-check p { padding-left: calc(34px + 1.1rem); }
	.sd-steps { grid-template-columns: minmax(0, 1fr); padding-top: 0; gap: 34px; }
	.sd-steps::before, .sd-steps::after { left: 21px; top: 0; width: 2px; height: auto; }
	.sd-steps::before { bottom: 0; right: auto; }
	.sd-steps::after { height: calc(var(--p) * 100%); width: 2px; }
	.sd-step { padding-left: 70px; }
	.sd-step__n { top: -6px; }
	.sd-cta__inner { grid-template-columns: minmax(0, 1fr); align-items: start; }
	.sd-footer__grid { grid-template-columns: 1fr 1fr; }
	.sd-footer__about { grid-column: 1 / -1; }
	.sd-about__art { margin-inline: auto; max-width: 300px; }

	.sd-menu { display: block; }
	.sd-nav {
		position: fixed; left: 0; right: 0; top: calc(var(--sd-header-h) + env(safe-area-inset-top, 0px));
		flex-direction: column; align-items: stretch; gap: 0;
		padding: 10px clamp(20px, 4vw, 44px) 26px;
		background: var(--sd-ink); border-bottom: 1px solid var(--sd-ink-line);
		box-shadow: 0 30px 40px -20px rgba(4, 12, 24, .7);
		visibility: hidden; opacity: 0; transform: translateY(-10px);
		transition: opacity .3s, transform .3s var(--sd-ease), visibility 0s .3s;
	}
	body.admin-bar .sd-nav { top: calc(var(--sd-header-h) + 46px); }
	.sd-header.is-open .sd-nav { visibility: visible; opacity: 1; transform: none; transition: opacity .3s, transform .3s var(--sd-ease); }
	.sd-nav a:not(.sd-btn) { padding: 15px 0; font-size: 1.12rem; border-bottom: 1px solid var(--sd-ink-line); color: var(--sd-on-ink); }
	.sd-nav .sd-btn { margin-top: 18px; min-height: 52px; }
}
@media (max-width: 640px) {
	.sd-town { font-size: .68rem; padding: 3px 7px; }
	.sd-town--home { font-size: .95rem; padding: 6px 12px; }
	.sd-tagrow { grid-template-columns: minmax(0, 1fr); }
	.sd-htag { min-width: 0; max-width: 170px; font-size: .72rem; padding: 8px 10px 8px 24px; }
	.sd-htag::after { display: none; }
	.sd-form { grid-template-columns: minmax(0, 1fr); }
	.sd-footer__grid { grid-template-columns: minmax(0, 1fr); }
	.sd-kw__row { grid-template-columns: 1.5fr 1fr .9fr; }
	.sd-kw__row > :nth-child(3) { display: none; }
	.sd-sevkey li, .sd-find { grid-template-columns: 84px 1fr; }
	.sd-actions .sd-btn { width: 100%; }
}

/* ==========================================================================
   Reduced motion: everything settles into its final, flat state
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	:root:has(body.sd-canvas) { scroll-behavior: auto; }
	.sd *, .sd *::before, .sd *::after { animation: none !important; transition-duration: .01ms !important; }
	.sd-stage .sd-htag { opacity: 1; }
	.sd-scan { display: none; }
	.sd-steps, .sd-radar, .sd-kw-stage, .sd-sheet-stage, .sd-map { --p: 1; }
	.sd-about__art, .sd-parallax { --p: .5; }
	.sd-hero__grid-bg { transform: none; }
	html.sd-js [data-sd-reveal], html.sd-js .sd-reveal { opacity: 1; transform: none; }
}

.sd-sec--ink + .sd-sec--ink { border-top: 1px solid var(--sd-ink-line); }
