/* Strategic Wealth Solutions: shared stylesheet. Mobile-first; tokens come from the design brief. */

:root {
  --background: #f4f3f0;
  --surface: #ffffff;
  --text: #12262f;
  --muted: #4a5c66;
  --primary: #0b78a8;
  --primary-text: #ffffff;
  --accent: #d9a75f;
  --dark: #12262f;
  --dark-text: #f4f3f0;
  --hero-bg: #0b5f85;
  --hero-text: #ffffff;
  --sky: #13aff0;
  --color-primary: var(--hero-bg);

  --line: rgba(18, 38, 47, .16);
  --line-light: rgba(255, 255, 255, .28);

  --font-display: "Red Hat Display", system-ui, sans-serif;
  --font-body: "Red Hat Text", system-ui, sans-serif;

  --step--1: .875rem;
  --step-0: clamp(1rem, .96rem + .2vw, 1.0625rem);
  --step-1: clamp(1.125rem, 1.06rem + .35vw, 1.3125rem);
  --step-2: clamp(1.3rem, 1.15rem + .8vw, 1.75rem);
  --step-3: clamp(1.7rem, 1.35rem + 1.7vw, 2.75rem);
  --step-4: clamp(2.05rem, 1.5rem + 2.8vw, 3.75rem);
  --step-5: clamp(2.6rem, 2rem + 3.2vw, 4.5rem);

  --gutter: clamp(1rem, .5rem + 3vw, 3rem);
  --section: clamp(3.25rem, 2.25rem + 5vw, 6.5rem);
  --radius: 2px;
  --header-h: 64px;
  --bar-h: 64px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 1rem); }
body {
  margin: 0;
  background: var(--dark);
  color: var(--text);
  font-family: var(--font-body);
  font-size: var(--step-0);
  line-height: 1.6;
  padding-block-end: var(--bar-h);
  overflow-wrap: break-word;
}
img, svg, iframe { max-width: 100%; }
img { display: block; height: auto; }
h1, h2, h3 { font-family: var(--font-display); line-height: 1.12; letter-spacing: -.015em; margin: 0; text-wrap: balance; }
h1 { font-size: var(--step-4); font-weight: 800; }
h2 { font-size: var(--step-3); font-weight: 700; }
h3 { font-size: var(--step-1); font-weight: 700; line-height: 1.25; letter-spacing: 0; }
p { margin: 0; }
p + p { margin-block-start: .85em; }
ul { margin: 0; padding: 0; }
a { color: var(--hero-bg); text-underline-offset: .18em; }
a:hover { text-decoration-thickness: 2px; }
address { font-style: normal; }
:focus-visible { outline: 3px solid var(--hero-bg); outline-offset: 2px; }
.on-colour :focus-visible, .site-footer :focus-visible, .top-bar :focus-visible { outline-color: var(--accent); }
.results :focus-visible { outline-color: var(--dark); }

.skip-link {
  position: absolute; inset-inline-start: 1rem; inset-block-start: -5rem; z-index: 1100;
  background: var(--dark); color: var(--dark-text); padding: .75rem 1rem;
}
.skip-link:focus { inset-block-start: .5rem; }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}

.wrap { width: min(100% - 2 * var(--gutter), 1240px); margin-inline: auto; }
.section { padding-block: var(--section); }
.bg-light { background: var(--background); }
.bg-surface { background: var(--surface); }
.bg-primary { background: var(--primary); color: var(--primary-text); }
.bg-dark { background: var(--dark); color: var(--dark-text); }
.bg-primary a:not(.btn), .bg-dark a:not(.btn) { color: inherit; }

.section-head { max-width: 46rem; margin-block-end: clamp(1.75rem, 1.25rem + 2vw, 3rem); }
.section-head p { margin-block-start: .85rem; font-size: var(--step-1); color: var(--muted); }
.bg-primary .section-head p, .bg-dark .section-head p { color: inherit; }
.label {
  display: block; font-family: var(--font-display); font-weight: 600; font-size: .8125rem;
  letter-spacing: .16em; text-transform: uppercase; margin-block-end: .75rem;
}

.risk { font-size: var(--step-0); color: var(--muted); border-inline-start: 3px solid var(--accent); padding-inline-start: 1rem; margin-block-start: 1.25rem; max-width: 62ch; }
.risk p + p { margin-block-start: .5em; }
.bg-primary .risk, .bg-dark .risk { color: inherit; }
.note { font-size: var(--step-0); color: var(--muted); }

/* Spacing helpers */
.m-0 { margin: 0; }
.mb-0 { margin-block-end: 0; }
.mb-04 { margin-block-end: .4rem; }
.mb-05 { margin-block-end: .5rem; }
.mb-085 { margin-block-end: .85rem; }
.mb-1 { margin-block-end: 1rem; }
.mb-125 { margin-block-end: 1.25rem; }
.mt-085 { margin-block-start: .85rem; }
.mt-1 { margin-block-start: 1rem; }
.mt-15 { margin-block-start: 1.5rem; }
.mt-2 { margin-block-start: 2rem; }
.mt-25 { margin-block-start: 2.5rem; }
.measure { max-width: 46rem; }
.topics-title { margin-block: 2.5rem .75rem; }
.pos-top { object-position: center 20%; }

/* Buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  min-height: 48px; padding: .7rem 1.35rem; border: 2px solid transparent; border-radius: var(--radius);
  font-family: var(--font-display); font-weight: 700; font-size: 1rem; line-height: 1.2;
  text-align: center; text-decoration: none; cursor: pointer;
}
.btn-accent { background: var(--accent); border-color: var(--accent); color: var(--dark); }
.btn-solid { background: var(--hero-bg); border-color: var(--hero-bg); color: var(--hero-text); }
.btn-ghost-light { background: transparent; border-color: currentColor; color: var(--hero-text); }
.btn-ghost { background: transparent; border-color: var(--dark); color: var(--dark); }
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.text-link { font-family: var(--font-display); font-weight: 700; display: inline-flex; align-items: center; min-height: 48px; }

/* Top bar */
.top-bar { background: var(--dark); color: var(--dark-text); font-size: .8125rem; }
.top-bar .wrap { display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: 1.25rem; height: 36px; }
.top-bar a { display: inline-flex; align-items: center; gap: .4rem; color: inherit; text-decoration: none; white-space: nowrap; min-height: 36px; }
.top-bar a:hover { text-decoration: underline; }
.top-bar svg { width: 15px; height: 15px; flex: none; }
.top-bar .long { display: none; }
.top-bar .place { display: none; }

/* Header */
.site-header { position: sticky; top: 0; z-index: 1000; background: var(--surface); border-block-end: 1px solid var(--line); }
.header-inner { position: static; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: nowrap; height: calc(var(--header-h) - 1px); }
.logo { display: flex; align-items: center; gap: .55rem; min-width: 0; flex: 0 1 auto; min-height: 48px; color: var(--text); text-decoration: none; }
.logo img { height: clamp(32px, 9vw, 44px); width: auto; max-width: min(60vw, 200px); object-fit: contain; flex: none; }
.wordmark {
  font-family: var(--font-display); font-weight: 600; font-size: clamp(.6875rem, 3vw, .8125rem); line-height: 1.25;
  letter-spacing: .13em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nav-toggle {
  flex: 0 0 48px; width: 48px; height: 48px; margin-inline-start: auto; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; color: var(--text); border: 1px solid var(--line); border-radius: var(--radius); cursor: pointer;
}
.nav-toggle .bars, .nav-toggle .bars::before, .nav-toggle .bars::after {
  display: block; width: 22px; height: 2px; background: currentColor; content: "";
}
.nav-toggle .bars { position: relative; }
.nav-toggle .bars::before { position: absolute; inset-block-start: -7px; }
.nav-toggle .bars::after { position: absolute; inset-block-start: 7px; }
.nav-toggle[aria-expanded="true"] .bars { background: transparent; }
.nav-toggle[aria-expanded="true"] .bars::before { inset-block-start: 0; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .bars::after { inset-block-start: 0; transform: rotate(-45deg); }

.site-nav {
  display: none; position: absolute; inset-inline: 0; inset-block-start: 100%;
  background: var(--surface); border-block-end: 3px solid var(--hero-bg);
  max-height: calc(100vh - var(--header-h)); max-height: calc(100dvh - var(--header-h)); overflow-y: auto;
  padding: .5rem var(--gutter) 1.25rem;
}
.site-nav.is-open { display: block; }
.site-nav ul { list-style: none; }
.site-nav a { display: flex; align-items: center; min-height: 48px; color: var(--text); text-decoration: none; font-family: var(--font-display); font-weight: 600; }
.nav-list > li { border-block-end: 1px solid var(--line); }
.nav-list > li.nav-cta { border: 0; padding-block-start: 1rem; }
.nav-list > li.nav-cta a.btn { display: flex; color: var(--hero-text); }
.sub-list { padding-inline-start: 1rem; padding-block-end: .5rem; }
.sub-list a { font-family: var(--font-body); font-weight: 500; color: var(--muted); }
.site-nav a.is-active { color: var(--hero-bg); box-shadow: inset 3px 0 0 var(--hero-bg); padding-inline-start: .75rem; }
html:not(.js) .nav-toggle { display: none; }

/* Hero */
.contour { position: relative; isolation: isolate; }
.contour::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 900' preserveAspectRatio='xMaxYMid slice'%3E%3Cpath fill='none' stroke='%23fff' stroke-opacity='.12' d='M919 430C921 434 920 440 916 443C912 447 903 448 897 450C891 452 887 453 882 454C877 456 873 459 868 459C863 460 857 459 852 458C848 456 845 453 841 452C837 450 833 449 829 447C825 445 821 442 819 440C817 437 816 434 815 430C813 426 811 423 810 418C810 414 808 407 812 404C815 400 824 398 831 397C838 397 847 402 853 404C859 405 862 408 866 409C870 410 873 410 877 411C881 412 885 413 889 414C894 416 899 417 904 420C909 422 917 426 919 430ZM983 430C987 438 982 450 974 457C967 464 948 467 936 471C925 475 916 478 906 481C896 484 887 490 877 491C867 493 854 490 844 487C835 484 828 478 820 474C812 471 804 469 796 465C789 460 781 456 776 450C771 444 770 437 767 430C764 423 757 415 756 405C754 396 752 383 759 376C767 369 786 363 800 363C815 363 833 372 845 376C857 380 863 385 872 387C880 389 887 389 895 391C903 392 911 394 920 397C930 400 942 403 952 408C963 414 979 422 983 430ZM1051 430C1056 443 1047 461 1035 471C1023 482 994 487 977 493C960 500 947 504 932 510C917 516 902 525 886 526C870 528 850 523 836 518C821 514 811 504 799 498C786 493 773 490 762 483C750 477 738 469 731 460C723 451 722 441 716 430C710 419 698 406 696 392C694 377 691 356 703 345C715 334 746 327 769 328C791 328 819 342 837 348C856 353 865 360 878 363C891 367 902 366 915 369C928 371 939 375 954 379C969 384 988 388 1004 396C1021 405 1045 417 1051 430ZM1126 430C1132 447 1118 472 1101 486C1083 501 1045 508 1022 517C998 527 982 535 962 543C941 552 920 565 897 566C875 568 847 560 826 553C806 546 792 533 775 525C758 517 739 513 723 504C708 495 692 484 682 472C671 460 668 446 659 430C650 414 631 395 627 375C624 356 622 325 640 311C657 296 702 288 734 289C766 290 804 309 829 317C854 324 868 332 886 336C904 341 920 340 937 344C955 348 970 352 991 359C1012 365 1041 370 1064 382C1086 394 1120 413 1126 430ZM1205 430C1211 452 1190 483 1167 502C1144 521 1097 530 1068 543C1040 556 1021 569 994 580C968 591 938 607 909 609C879 610 843 598 817 589C790 579 773 563 750 553C728 542 703 537 683 526C663 514 645 500 631 484C617 468 611 451 598 430C585 409 557 384 553 358C549 332 548 292 572 274C597 256 657 248 699 250C740 252 788 275 820 285C853 294 870 302 894 307C917 313 938 312 961 317C984 322 1004 329 1031 337C1059 346 1098 352 1127 367C1156 383 1198 408 1205 430ZM1290 430C1297 458 1266 495 1238 519C1209 542 1154 553 1120 571C1085 588 1064 607 1031 622C998 636 959 655 922 656C884 657 839 640 806 627C773 615 751 596 723 583C696 570 664 564 640 549C615 535 595 516 577 496C559 477 549 456 531 430C512 404 473 371 468 338C463 305 466 256 498 234C530 213 609 205 661 208C714 211 771 239 811 250C851 262 873 269 902 275C932 281 958 282 987 288C1016 294 1041 303 1076 313C1111 323 1163 331 1198 351C1234 370 1284 402 1290 430ZM1382 430C1387 464 1345 507 1311 536C1277 564 1216 579 1176 601C1137 623 1114 651 1074 669C1034 687 983 709 936 709C890 709 835 684 795 669C754 653 728 631 694 615C661 600 623 592 593 574C564 557 542 534 519 510C496 486 479 462 455 430C430 398 378 355 372 315C366 276 376 216 418 191C460 166 559 161 622 164C686 168 753 201 801 214C849 226 876 232 912 239C948 246 980 248 1016 256C1052 264 1082 273 1126 286C1169 299 1235 308 1277 332C1320 356 1376 396 1382 430ZM1478 430C1482 470 1427 520 1387 554C1347 588 1283 607 1239 635C1194 663 1170 701 1122 723C1074 745 1008 768 952 766C895 764 831 732 783 713C735 693 703 669 663 650C623 632 578 622 544 601C510 580 487 553 458 524C429 496 402 469 370 430C338 391 271 338 265 290C258 243 279 173 332 144C385 116 506 115 582 119C658 124 733 161 790 174C847 187 880 191 923 198C966 206 1005 211 1048 220C1091 230 1128 241 1181 256C1233 272 1315 283 1364 312C1414 341 1474 390 1478 430ZM1578 430C1579 477 1510 532 1465 572C1420 613 1356 637 1308 672C1260 708 1232 757 1176 783C1119 809 1036 831 969 827C901 823 827 782 770 759C714 735 676 709 630 688C583 666 532 653 493 629C453 604 429 573 393 540C357 507 316 476 275 430C233 384 150 318 145 262C139 206 176 127 242 95C308 64 452 68 541 74C630 80 713 118 778 131C844 144 885 145 935 154C986 162 1031 170 1082 182C1133 193 1179 206 1241 224C1304 241 1403 255 1459 289C1515 324 1577 383 1578 430ZM1680 430C1677 484 1595 544 1546 591C1497 638 1437 671 1386 715C1334 758 1303 821 1236 850C1170 880 1066 900 986 892C906 885 822 834 757 807C692 779 647 752 594 727C541 702 485 686 440 658C395 629 370 594 324 556C279 518 219 484 167 430C115 376 17 295 14 231C10 167 67 79 148 45C229 11 397 21 499 27C602 34 691 71 765 84C840 97 890 95 949 105C1008 114 1059 126 1119 140C1179 154 1235 167 1308 187C1382 208 1499 225 1561 265C1623 306 1682 376 1680 430ZM1784 430C1777 492 1683 556 1631 611C1580 667 1531 711 1476 764C1422 816 1383 894 1305 927C1226 960 1099 974 1005 962C912 950 818 890 743 858C668 826 616 798 556 770C496 742 435 721 383 688C332 655 305 617 248 574C191 531 105 493 42 430C-22 367 -135 270 -134 197C-132 124 -47 28 51 -8C149 -44 340 -28 456 -21C573 -15 666 19 751 31C836 43 896 38 964 49C1032 59 1091 78 1161 94C1231 110 1299 122 1384 146C1469 171 1606 192 1673 239C1740 286 1791 368 1784 430ZM1889 430C1877 500 1775 568 1724 633C1673 698 1639 758 1582 821C1525 884 1475 978 1382 1013C1289 1049 1134 1052 1025 1035C916 1018 814 948 728 912C643 875 582 848 514 816C447 784 383 757 325 720C266 683 234 642 162 594C91 546 -28 503 -105 430C-181 357 -305 241 -295 159C-286 77 -166 -23 -48 -62C70 -100 281 -77 411 -72C541 -66 639 -40 734 -30C829 -20 903 -26 981 -13C1060 -1 1125 24 1206 43C1288 62 1372 72 1470 100C1567 128 1723 156 1793 211C1863 266 1900 360 1889 430ZM1992 430C1976 509 1874 580 1826 657C1779 733 1767 813 1707 888C1647 963 1577 1071 1467 1108C1357 1145 1172 1134 1046 1111C920 1088 809 1010 713 969C617 928 545 901 470 865C396 829 332 794 264 752C197 711 155 670 65 617C-24 563 -185 513 -274 430C-363 347 -490 209 -469 118C-447 27 -285 -74 -146 -115C-8 -155 220 -128 363 -125C507 -123 609 -107 715 -99C821 -92 910 -97 1000 -82C1090 -68 1163 -35 1257 -14C1351 8 1455 16 1565 48C1675 81 1847 118 1918 182C1989 245 2007 351 1992 430Z'/%3E%3C/svg%3E") right center / cover no-repeat;
  -webkit-mask-image: linear-gradient(to bottom, transparent 18%, #000 72%);
  mask-image: linear-gradient(to bottom, transparent 18%, #000 72%);
}
.hero, .page-hero, .closing { background: var(--hero-bg); color: var(--hero-text); }
.hero { padding-block: clamp(2.25rem, 1.5rem + 4vw, 5.5rem); }
.hero-grid { display: grid; gap: clamp(2rem, 1rem + 4vw, 4.5rem); grid-template-columns: minmax(0, 1fr); align-items: center; }
.hero h1 { font-size: var(--step-5); line-height: 1.04; letter-spacing: -.025em; }
.eyebrow {
  display: block; font-size: .8125rem; font-weight: 600; letter-spacing: .16em; line-height: 1.5;
  text-transform: uppercase; margin-block-end: 1rem;
}
.hero-sub { font-size: var(--step-1); margin-block: 1rem 1.5rem; padding-block-start: 1rem; border-block-start: 1px solid var(--line-light); max-width: 36rem; }
.hero-proof {
  list-style: none; display: flex; flex-wrap: wrap; gap: .15rem 1.1rem; margin-block-start: 1rem;
  font-size: var(--step--1); font-weight: 500;
}
.hero-proof a { color: inherit; font-weight: 700; display: inline-flex; align-items: center; min-height: 28px; }
.hero-photo { position: relative; margin: 0; margin-inline-end: 10px; margin-block-start: 10px; }
.hero-photo img { width: 100%; aspect-ratio: 2560 / 1829; object-fit: cover; }
.hero-photo::after {
  content: ""; position: absolute; inset-block-start: -10px; inset-inline-end: -10px;
  width: clamp(72px, 16vw, 132px); aspect-ratio: 1;
  border-block-start: clamp(8px, 1.4vw, 14px) solid var(--sky); border-inline-end: clamp(8px, 1.4vw, 14px) solid var(--sky);
}

.page-hero { padding-block: clamp(2.5rem, 1.75rem + 4vw, 5rem); }
.page-hero .lead { font-size: var(--step-1); margin-block-start: 1rem; max-width: 42rem; }
.page-hero .btn-row { margin-block-start: 1.5rem; }
.page-hero h1 { max-width: 20ch; }

/* Results band: the signature moment */
.results { position: relative; background: var(--sky); color: var(--dark); padding-block: clamp(2.5rem, 2rem + 3vw, 4.5rem) clamp(5rem, 4rem + 5vw, 9rem); }
.results h2 { font-size: var(--step-0); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; margin-block-end: 1.75rem; }
.results-grid { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 1.25rem; }
.results-grid li { position: relative; padding-block-start: 1.1rem; padding-inline-end: 1.1rem; min-width: 0; }
.results-grid li::after {
  content: ""; position: absolute; inset-block-start: 0; inset-inline-end: 0; width: 26px; height: 26px;
  border-block-start: 4px solid var(--dark); border-inline-end: 4px solid var(--dark);
}
.figure { display: block; font-family: var(--font-display); font-weight: 800; font-size: clamp(2.75rem, 1rem + 5.2vw, 6rem); line-height: 1; letter-spacing: -.03em; white-space: nowrap; }
.figure-label { display: block; margin-block-start: .5rem; font-weight: 500; line-height: 1.35; }
.results a { color: inherit; }
.results-note { position: relative; z-index: 1; margin-block-start: 1.75rem; font-size: var(--step--1); max-width: 62ch; }
.ridge { position: absolute; inset-inline: 0; inset-block-end: 0; width: 100%; height: clamp(56px, 3rem + 6vw, 130px); display: block; }
.ridge path { fill: none; stroke: var(--dark); stroke-width: 2.5; vector-effect: non-scaling-stroke; }

/* Outcome rows */
.outcomes { list-style: none; border-block-start: 2px solid var(--dark); }
.outcome { display: grid; grid-template-columns: minmax(0, 1fr); gap: .5rem; padding-block: 1.4rem; border-block-end: 1px solid var(--line); }
.outcome h3 { font-size: var(--step-2); font-weight: 700; line-height: 1.15; }
.outcome .outcome-body { min-width: 0; }
.outcome .text-link { min-height: 44px; }
.outcome.quiet h3 { font-size: var(--step-1); font-weight: 600; }
.who-line { margin-block-start: 1.5rem; font-size: var(--step-1); max-width: 54rem; }
.intro-split { display: grid; gap: 1rem 3rem; grid-template-columns: minmax(0, 1fr); margin-block-end: clamp(1.75rem, 1.25rem + 2vw, 3rem); }
.intro-split p { color: var(--muted); }

/* How it works */
.how-grid { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); align-items: end; margin-block-end: 2.5rem; }
.how-grid img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.steps { list-style: none; display: grid; gap: 0; grid-template-columns: minmax(0, 1fr); counter-reset: step; }
.step { position: relative; padding-block-end: 2rem; counter-increment: step; border-inline-start: 2px solid var(--hero-bg); margin-inline-start: 1.1rem; padding-inline-start: 2rem; }
.step:last-child { border-inline-start-color: transparent; padding-block-end: 0; }
.step::before {
  content: counter(step); position: absolute; inset-inline-start: -1.2rem; inset-block-start: 0;
  width: 2.3rem; height: 2.3rem; display: grid; place-items: center;
  background: var(--hero-bg); color: var(--hero-text); font-family: var(--font-display); font-weight: 800;
}
.step h3 { margin-block-end: .4rem; font-size: var(--step-2); }
.how-foot { margin-block-start: 2.5rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 2rem; }
.how-foot p { font-size: var(--step-1); font-family: var(--font-display); font-weight: 600; }

/* Reviews */
.reviews-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1rem 2rem; margin-block-end: 2rem; }
.rating-chip { font-family: var(--font-display); font-weight: 700; }
.rating-chip .stars { color: var(--accent); letter-spacing: .1em; }
.quote-lead { margin: 0 0 2.25rem; max-width: 56rem; }
.quote-lead p { font-family: var(--font-display); font-size: var(--step-2); font-weight: 500; line-height: 1.35; }
blockquote { margin: 0; }
.cite { display: block; margin-block-start: .85rem; font-style: normal; font-size: var(--step--1); }
.cite strong { font-family: var(--font-display); font-size: 1rem; display: block; }
.quote-row {
  list-style: none; display: grid; grid-auto-flow: column; grid-auto-columns: min(82%, 21rem); gap: 1rem;
  overflow-x: auto; scroll-snap-type: x mandatory; padding-block-end: .75rem; -webkit-overflow-scrolling: touch;
}
.quote-card { scroll-snap-align: start; border-block-start: 3px solid var(--accent); padding-block-start: 1rem; min-width: 0; }
.reviews-note { margin-block-start: 1.75rem; font-size: var(--step--1); max-width: 70ch; }

/* Team */
.team-lead { display: grid; gap: 1.5rem clamp(2rem, 1rem + 4vw, 4rem); grid-template-columns: minmax(0, 1fr); align-items: center; margin-block-end: 2.5rem; }
.team-lead img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; object-position: center 20%; }
.team-lead h3 { font-size: var(--step-3); }
.team-role { color: var(--muted); font-weight: 500; }
.team-lead p + p { margin-block-start: .85rem; }
.team-grid { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
.team-grid img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; margin-block-end: .6rem; }
.team-grid h3 { font-size: 1.0625rem; }
.team-grid .team-role { font-size: var(--step--1); line-height: 1.35; }

.people { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.25rem; }
.person img, .person .monogram { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; margin-block-end: .9rem; }
.monogram {
  display: grid; place-items: center; background: var(--hero-bg); color: var(--hero-text);
  font-family: var(--font-display); font-weight: 800; font-size: var(--step-4); letter-spacing: .04em;
}
.person h3 { font-size: var(--step-2); }
.person .team-role { margin-block-end: .6rem; }

/* Backed by */
.backed { display: grid; gap: 2rem clamp(2rem, 1rem + 4vw, 5rem); grid-template-columns: minmax(0, 1fr); align-items: center; }
.backed h2 { margin-block-end: 1rem; }
.backed p { max-width: 42rem; }
.tile { background: var(--surface); padding: clamp(1rem, .5rem + 2vw, 2rem); width: min(100%, 22rem); }
.tile img { width: 100%; aspect-ratio: 1024 / 829; object-fit: contain; }

/* FAQ */
.faq-list { max-width: 56rem; border-block-start: 2px solid var(--dark); }
.faq-list details { border-block-end: 1px solid var(--line); }
.faq-list summary {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 56px; padding-block: .85rem; cursor: pointer;
  font-family: var(--font-display); font-weight: 700; font-size: var(--step-1); line-height: 1.3; list-style: none;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; flex: none; font-size: 1.5rem; line-height: 1; color: var(--hero-bg); }
.faq-list details[open] summary::after { content: "\2212"; }
.faq-list details > p { padding-block-end: 1.25rem; max-width: 62ch; }

/* Find us */
.find-grid { display: grid; gap: 2rem clamp(2rem, 1rem + 4vw, 4.5rem); grid-template-columns: minmax(0, 1fr); align-items: center; }
.find-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.find-photos img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.find-photos img:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 10; object-position: center 60%; }
.contact-list { list-style: none; margin-block: 1.25rem; }
.contact-list li { padding-block: .6rem; border-block-end: 1px solid var(--line); }
.contact-list li:first-child { border-block-start: 1px solid var(--line); }
.contact-list a { display: inline-flex; align-items: center; min-height: 32px; font-weight: 500; overflow-wrap: anywhere; }
.contact-list .k { display: block; font-size: .8125rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.hours { border-collapse: collapse; width: 100%; max-width: 24rem; }
.hours th, .hours td { padding-block: .25rem; text-align: start; font-weight: 400; }
.hours td { text-align: end; }

/* Closing band */
.closing { padding-block: var(--section); }
.closing h2 { font-size: var(--step-4); max-width: 22ch; }
.closing .btn-row { margin-block-start: 1.75rem; }
.closing .quiz-line { margin-block-start: 1.5rem; max-width: 40rem; }
.closing .quiz-line a { color: inherit; font-weight: 700; }

/* Services page */
.jump { background: var(--surface); border-block-end: 1px solid var(--line); }
.jump ul { list-style: none; display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; padding-block: .5rem; }
.jump a { display: inline-flex; align-items: center; min-height: 48px; font-family: var(--font-display); font-weight: 600; color: var(--text); }
.svc { display: grid; gap: 1.75rem clamp(2rem, 1rem + 4vw, 5rem); grid-template-columns: minmax(0, 1fr); }
.svc-head h2 { margin-block-end: .85rem; }
.svc-head p { color: var(--muted); }
.bg-primary .svc-head p, .bg-dark .svc-head p { color: inherit; }
.svc-body { min-width: 0; display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); }
.topic h3 { margin-block-end: .5rem; }
.topic ul, .check { padding-inline-start: 1.15rem; }
.topic li + li, .check li + li { margin-block-start: .3rem; }
.topic .risk { margin-block-start: .85rem; font-size: var(--step--1); }
.topic.wide { grid-column: 1 / -1; }
.banner-photo { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }

/* Two-column prose */
.split { display: grid; gap: 1.75rem clamp(2rem, 1rem + 4vw, 5rem); grid-template-columns: minmax(0, 1fr); align-items: center; }
.split img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.split h2 { margin-block-end: 1rem; }
.benefits { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: .25rem 2rem; }
.benefits li { font-family: var(--font-display); font-weight: 600; font-size: var(--step-1); padding-block: .8rem; border-block-end: 1px solid var(--line); }
.big-quote { font-family: var(--font-display); font-weight: 500; font-size: var(--step-2); line-height: 1.35; max-width: 50rem; }

/* Learn */
.video-card { display: grid; gap: 1.25rem 3rem; grid-template-columns: minmax(0, 1fr); align-items: center; }
.video-thumb { position: relative; display: block; }
.video-thumb img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.video-thumb .play {
  position: absolute; inset-block-end: 0; inset-inline-start: 0; display: inline-flex; align-items: center; gap: .5rem;
  background: var(--accent); color: var(--dark); font-family: var(--font-display); font-weight: 700; padding: .65rem 1rem; min-height: 48px;
}
.topics { list-style: none; display: flex; flex-wrap: wrap; gap: .5rem; }
.topics li { border: 1px solid var(--line); padding: .3rem .75rem; font-size: var(--step--1); }

/* Contact */
.contact-grid { display: grid; gap: 2.5rem clamp(2rem, 1rem + 4vw, 5rem); grid-template-columns: minmax(0, 1fr); }
.form { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
.field { display: grid; gap: .3rem; min-width: 0; }
.field label { font-weight: 600; }
.field input, .field textarea {
  width: 100%; min-height: 48px; padding: .7rem .8rem; font: inherit; color: var(--text);
  background: var(--surface); border: 1px solid var(--muted); border-radius: var(--radius);
}
.field textarea { min-height: 9rem; resize: vertical; }
.form .full { grid-column: 1 / -1; }
.form-status { font-weight: 600; }
.map-frame { display: block; width: 100%; aspect-ratio: 16 / 10; border: 0; background: var(--background); }

/* Footer */
.site-footer { background: var(--dark); color: var(--dark-text); padding-block: clamp(2.5rem, 2rem + 3vw, 4.5rem) 2rem; font-size: .9375rem; }
.site-footer a { color: inherit; }
.footer-grid { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); }
.footer-logo { background: var(--surface); width: 84px; height: 84px; padding: 2px; margin-block-end: 1rem; }
.footer-logo img { width: 100%; height: 100%; object-fit: contain; }
.site-footer h2 { font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; margin-block-end: .6rem; color: var(--sky); }
.footer-links { list-style: none; }
.footer-links a { display: inline-flex; align-items: center; min-height: 40px; text-decoration: none; }
.footer-links a:hover { text-decoration: underline; }
.footer-legal { margin-block-start: 2rem; padding-block-start: 1.5rem; border-block-start: 1px solid var(--line-light); font-size: var(--step--1); }
.footer-legal p + p { margin-block-start: .75rem; }
.legal-links { list-style: none; display: flex; flex-wrap: wrap; gap: 0 1.25rem; margin-block: .5rem; }
.legal-links a { display: inline-flex; align-items: center; min-height: 40px; }

/* Fixed controls */
.back-to-top {
  position: fixed; inset-inline-end: 16px; inset-block-end: calc(var(--bar-h) + 12px); z-index: 950;
  width: 48px; height: 48px; display: grid; place-items: center; padding: 0;
  background: var(--hero-bg); color: var(--hero-text); border: 2px solid var(--surface); border-radius: var(--radius); cursor: pointer;
  opacity: 0; visibility: hidden;
}
.back-to-top.is-visible { opacity: 1; visibility: visible; }
.mobile-bar {
  position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 940; display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
  padding: 8px 12px; padding-block-end: calc(8px + env(safe-area-inset-bottom)); background: var(--dark);
}
.mobile-bar .btn { padding-inline: .5rem; min-width: 0; }
.mobile-bar svg { width: 18px; height: 18px; flex: none; }
.apex-cookie-banner, .apex-cookie-reopen { bottom: calc(var(--bar-h) + 12px) !important; }

/* Video dialog */
.video-dialog { width: min(100% - 2rem, 960px); padding: 0; border: 0; background: var(--dark); color: var(--dark-text); }
.video-dialog::backdrop { background: rgba(18, 38, 47, .8); }
.video-dialog-bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .25rem .25rem .25rem 1rem; }
.video-dialog h2 { font-size: 1rem; }
.video-dialog button { width: 48px; height: 48px; flex: none; background: transparent; color: inherit; border: 0; font-size: 1.5rem; cursor: pointer; }
.video-dialog iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }

/* Tablet and up */
@media (min-width: 768px) {
  :root { --header-h: 76px; --bar-h: 0px; }
  body { padding-block-end: 0; }
  .mobile-bar { display: none; }
  .apex-cookie-banner, .apex-cookie-reopen { bottom: max(16px, env(safe-area-inset-bottom)) !important; }
  .back-to-top { inset-block-end: 24px; inset-inline-end: 24px; }

  .top-bar .wrap { height: 40px; justify-content: space-between; }
  .top-bar .place { display: inline; }
  .top-bar .links { display: flex; gap: 1.5rem; }
  .top-bar .long { display: inline; }
  .top-bar .short { display: none; }

  .logo img { height: 56px; max-width: 200px; }
  .wordmark { display: none; }
  .nav-toggle { display: none; }
  .site-nav { display: block; position: static; padding: 0; border: 0; max-height: none; overflow: visible; background: none; margin-inline-start: auto; }
  .nav-list { display: flex; align-items: center; gap: clamp(.5rem, -.5rem + 1.8vw, 1.5rem); }
  .nav-list > li { border: 0; position: relative; }
  .nav-list > li > a { font-size: .9375rem; white-space: nowrap; }
  .nav-list > li > a:not(.btn) { position: relative; }
  .site-nav a.is-active { box-shadow: inset 0 -3px 0 var(--hero-bg); padding-inline-start: 0; }
  .nav-list > li.nav-cta { padding: 0; }
  .nav-list > li.nav-cta a.btn { display: inline-flex; padding-inline: .9rem; }
  .sub-list {
    display: none; position: absolute; inset-block-start: 100%; inset-inline-start: -1rem; z-index: 5; min-width: 17rem;
    padding: .4rem 1rem; background: var(--surface); border: 1px solid var(--line); border-block-start: 3px solid var(--hero-bg);
  }
  .has-sub:hover .sub-list, .has-sub:focus-within .sub-list { display: block; }
  .sub-list a { font-size: .9375rem; color: var(--text); min-height: 44px; }

  .contour::before {
    -webkit-mask-image: linear-gradient(to right, transparent 22%, #000 68%);
    mask-image: linear-gradient(to right, transparent 22%, #000 68%);
  }
  .hero-grid { grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); }
  .hero-photo { margin-block-start: 14px; margin-inline-end: 14px; }
  .hero-photo::after { inset-block-start: -14px; inset-inline-end: -14px; }

  .outcome { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 2rem; align-items: start; }
  .intro-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; }
  .intro-split .section-head, .intro-split h2 { margin-block-end: 0; }
  .how-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
  .step, .step:last-child {
    margin: 0; padding: 3.25rem 0 0; border-inline-start: 0; border-block-start: 2px solid var(--hero-bg);
  }
  .step::before { inset-inline-start: 0; inset-block-start: -1.2rem; }
  .quote-row { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; gap: 2rem; }
  .team-lead { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
  .team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .people { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem 2rem; }
  .backed { grid-template-columns: minmax(0, 1fr) auto; }
  .tile { width: clamp(14rem, 22vw, 20rem); }
  .find-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .svc-body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .video-card { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
  .contact-grid { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
  .form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .wordmark { display: block; font-size: .8125rem; }
  .results-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
  .footer-grid { grid-template-columns: 1.4fr 1fr 1.1fr 1.3fr; gap: 2.5rem; }
  .quote-row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .team-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .people { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .svc { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
  .svc-head { position: sticky; top: calc(var(--header-h) + 1.5rem); align-self: start; }
}

/* Motion: nothing moves or fades unless the visitor is happy with it */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .btn, .back-to-top, .logo img, .site-nav a, .team-grid img, .video-thumb img { transition: transform .2s ease, background-color .2s ease, color .2s ease, box-shadow .2s ease, opacity .2s ease, visibility .2s; }
  .btn:hover { transform: translateY(-2px); }
  .btn-accent:hover { box-shadow: 0 6px 0 -2px rgba(18, 38, 47, .35); }
  .team-grid li:hover img, .video-thumb:hover img { opacity: .9; }
  .js .reveal { opacity: 0; transform: translateY(16px); transition: opacity .55s ease, transform .55s ease; }
  .js .reveal.is-in { opacity: 1; transform: none; }
}

@media print {
  .top-bar, .mobile-bar, .back-to-top, .nav-toggle { display: none; }
  .site-header { position: static; }
}
