@font-face{font-family:"Familjen Grotesk";font-style:normal;font-weight:100 900;font-display:swap;src:url("/assets/familjen-grotesk-latin-wght-normal.woff2") format("woff2")}
@font-face{font-family:"Albert Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url("/assets/albert-sans-latin-wght-normal.woff2") format("woff2")}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 6rem;
}
body {
  margin: 0;
  color: var(--ink, #232828);
  background: var(--paper, #fff);
  font: 17px/1.65 var(--body-font, Arial, sans-serif);
}
h1,
h2,
h3,
p,
figure {
  margin: 0;
}
h1,
h2,
h3 {
  font-family: var(--heading-font, Georgia, serif);
  line-height: 1.12;
  text-wrap: balance;
}
h1 {
  font-size: clamp(2.6rem, 5vw, 4.8rem);
  letter-spacing: -0.04em;
}
h2 {
  font-size: clamp(2rem, 3vw, 3rem);
  letter-spacing: -0.025em;
}
h3 {
  font-size: 1.4rem;
}
p + p {
  margin-top: 1rem;
}
h2 + p,
h3 + p {
  margin-top: 1.2rem;
}
a {
  color: inherit;
  text-underline-offset: 0.23em;
}
img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
figure {
  overflow: hidden;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a,
input,
select,
textarea,
summary {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--focus, #147b98);
  outline-offset: 4px;
}
button:disabled {
  opacity: 0.7;
  cursor: wait;
}
.container {
  width: min(1200px, calc(100% - 80px));
  margin-inline: auto;
}
.narrow {
  max-width: 820px;
}
.section {
  padding: 88px 0;
}
.section.tint {
  background: var(--wash, #f1eee9);
}
.section.dark {
  background: var(--accent, #571e2b);
  color: #fff;
}
.section h2 {
  margin-bottom: 1.6rem;
}
.eyebrow {
  font-family: var(--body-font);
  font-size: 0.83rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 1.2rem;
}
.button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 1.5rem;
  min-height: 52px;
  padding: 13px 24px;
  background: var(--accent, #571e2b);
  color: #fff;
  text-decoration: none;
  border: 1px solid transparent;
  font-weight: 700;
  line-height: 1.35;
}
.button:hover {
  filter: brightness(1.18);
}
.dark .button {
  background: #fff;
  color: var(--accent);
}
.text-link {
  display: inline-block;
  font-weight: 700;
  margin-top: 1.2rem;
  padding: 6px 0;
}
.site-header {
  background: var(--paper);
  border-bottom: 1px solid var(--line, #ddd);
}
.header-inner {
  min-height: 104px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  font-weight: 800;
  font-size: 1.28rem;
  line-height: 1.15;
}
.brand small {
  display: block;
  letter-spacing: 0.25em;
  font-size: 0.67rem;
  margin-top: 6px;
}
.brand-mark {
  font-size: 2.5rem;
  color: var(--accent);
}
.site-header nav {
  display: flex;
  gap: 25px;
}
.site-header nav a {
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 700;
  padding: 12px 0;
}
.header-phone {
  font-weight: 800;
  white-space: nowrap;
}
.menu-toggle {
  display: none;
}
.skip-link {
  position: fixed;
  z-index: 1000;
  top: -100px;
  left: 16px;
  background: #fff;
  padding: 12px;
}
.skip-link:focus {
  top: 12px;
}
.page-hero {
  padding: 74px 0;
  background: var(--wash);
}
.hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.page-hero p:not(.eyebrow) {
  margin: 1.5rem 0;
  max-width: 620px;
  font-size: 1.14rem;
}
.page-hero figure {
  height: 420px;
}
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 76px;
  align-items: center;
}
.split figure {
  height: 430px;
}
.split.reverse > div {
  order: 2;
}
.split.reverse > figure {
  order: 1;
}
figcaption {
  font-size: 0.85rem;
  padding: 8px;
  background: var(--wash);
  color: var(--ink);
}
.nav-disclosure {display:grid;place-items:center;line-height:1;align-self:center}
.nav-disclosure span {display:block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);font-size:0}
.nav-disclosure[aria-expanded=true] span {transform:translateY(2px) rotate(225deg)}
.link-collection {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
  margin-top: 32px;
}
.link-collection article {
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line);
}
.link-collection img {
  height: 225px;
  margin-bottom: 24px;
}
.link-collection h3 a {
  text-decoration: none;
}
.link-collection h3 a:hover {
  text-decoration: underline;
}
.comparison {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 36px;
  margin-top: 28px;
}
.comparison > div {
  padding: 26px 0;
  border-top: 2px solid var(--accent);
}
.plain-list {
  padding-left: 1.3rem;
}
.plain-list li + li {
  margin-top: 12px;
}
.related-links {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
}
details {
  border-bottom: 1px solid var(--line);
  padding: 20px 0;
}
summary {
  cursor: pointer;
  font-size: 1.12rem;
  font-weight: 700;
  min-height: 32px;
}
details p {
  margin-top: 16px;
}
.cta-layout {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 50px;
}
.cta-layout > div {
  max-width: 680px;
}
.cta-layout .button {
  flex-shrink: 0;
}
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
}
.lead-form {
  padding: 32px;
  background: #fff;
  color: #242626;
  border: 1px solid var(--line);
  box-shadow: 0 16px 45px #24171b12;
}
.lead-form h2 {
  font: 700 1.7rem/1.2 var(--heading-font);
  margin-bottom: 10px;
}
.form-intro {
  font-size: 0.97rem;
  margin-bottom: 24px;
}
.lead-form label {
  display: block;
  font-size: 0.9rem;
  font-weight: 700;
  margin-bottom: 15px;
}
.lead-form label span {
  font-weight: 400;
}
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
}
.lead-form.lead-form-full .form-grid {grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.lead-form-full .form-grid.form-address-row {grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.lead-form-full .form-grid label {min-width:0}
input:not([type="checkbox"]),
select,
textarea {
  display: block;
  width: 100%;
  border: 1px solid #a3a5a3;
  background: #fff;
  color: #242626;
  padding: 10px 12px;
  margin-top: 6px;
  border-radius: 0;
  min-height: 46px;
}
textarea {
  resize: vertical;
}
.lead-form .consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.55;
  font-size: 0.8rem;
  margin: 18px 0;
}
.consent input {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 2px;
}
.lead-form .button {
  width: 100%;
}
.honey {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.form-status {
  font-size: 0.92rem;
  margin-top: 12px;
}
.header-actions {display:flex;align-items:center;gap:18px;flex-shrink:0}
.header-cta {font-size:.84rem;min-height:46px;padding:11px 16px;white-space:nowrap}
.lead-form {scroll-margin-top:28px}
.form-optional {border:0;border-block:1px solid var(--line);padding:10px 0;margin:2px 0 12px}
.form-optional summary {font-size:.85rem;min-height:28px;line-height:1.5;display:list-item}
.form-optional summary span {font-weight:400}
.form-optional[open] summary {margin-bottom:16px}
.form-optional label:last-child {margin-bottom:4px}
@media(min-width:1101px) and (max-width:1320px){.header-actions .header-phone{display:none}}
@media(max-width:1100px){.header-actions{display:none}}
@media(max-width:700px){.lead-form .form-grid{grid-template-columns:1.35fr 1fr;gap:14px}.form-optional summary{font-size:.83rem}}
.phone-large {
  font-size: 1.55rem;
  font-weight: 700;
}
.site-footer {
  padding: 64px 0 20px;
  background: var(--footer, #251e21);
  color: #fff;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 70px;
}
.footer-brand {
  font: 700 1.7rem var(--heading-font);
  margin-bottom: 16px;
}
.footer-grid h2 {
  font: 700 1.1rem var(--body-font);
  margin-bottom: 18px;
}
.footer-grid a {
  display: block;
  width: fit-content;
  padding: 5px 0;
  font-size: 0.94rem;
}
.footer-grid .phone-large {
  font-size: 1.45rem;
  margin-top: 16px;
}
.footer-grid > div:first-child p {
  max-width: 340px;
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid #ffffff33;
  margin-top: 50px;
  padding-top: 24px;
  font-size: 0.8rem;
}
.mobile-actions {
  display: none;
}
@media (max-width: 1000px) {
  .header-inner {
    gap: 18px;
  }
  .header-phone {
    display: none;
  }
  .site-header nav {
    gap: 20px;
  }
  .split {
    gap: 40px;
  }
  .hero-grid {
    gap: 35px;
  }
  .container {
    width: calc(100% - 48px);
  }
}
@media (max-width: 700px) {
  body {
    font-size: 16px;
    padding-bottom: 60px;
  }
  .container {
    width: calc(100% - 40px);
  }
  .section {
    padding: 52px 0;
  }
  .header-inner {
    min-height: 82px;
    flex-wrap: wrap;
    gap: 0;
  }
  .brand {
    font-size: 1.1rem;
  }
  .brand-mark {
    font-size: 2rem;
  }
  .menu-toggle {
    display: block;
    padding: 10px;
    border: 1px solid #aaa;
    background: transparent;
    color: var(--ink);
    font-size: 0.9rem;
  }
  .site-header nav {
    display: none;
    flex-basis: 100%;
    padding: 15px 0;
    gap: 0;
    flex-direction: column;
  }
  .site-header nav.open {
    display: flex;
  }
  .site-header nav a {
    border-top: 1px solid var(--line);
    padding: 12px;
  }
  .page-hero {
    padding: 44px 0;
  }
  .hero-grid,
  .split,
  .comparison,
  .contact-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .page-hero figure,
  .split figure {
    height: 270px;
  }
  .split.reverse > div,
  .split.reverse > figure {
    order: initial;
  }
  .link-collection {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .link-collection article {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 8px 20px;
  }
  .link-collection img {
    grid-row: 1/4;
    height: 140px;
    margin: 0;
  }
  .link-collection article:not(:has(img)) {
    display: block;
  }
  .link-collection p {
    margin: 0;
    font-size: 0.93rem;
  }
  .link-collection .text-link {
    margin: 0;
  }
  .cta-layout {
    display: block;
  }
  .cta-layout .button {
    margin-top: 24px;
  }
  .lead-form {
    padding: 24px;
  }
  .form-grid {
    grid-template-columns: 1fr;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 34px;
  }
  .footer-grid > div:first-child {
    grid-column: 1/-1;
  }
  .footer-bottom {
    display: block;
  }
  .footer-bottom p + p {
    margin-top: 10px;
  }
  .mobile-actions {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 20;
    box-shadow: 0 -3px 20px #0002;
    background: #fff;
  }
  .mobile-actions a {
    flex: 1;
    padding: 15px 6px;
    text-align: center;
    font-weight: 700;
    font-size: 0.83rem;
    text-decoration: none;
    color: var(--accent);
  }
  .mobile-actions a:last-child {
    background: var(--accent);
    color: #fff;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* Original Keystone geometry adapted to Studio's semantic components. */
.ks-table-scroll caption.ks-caption-accessible {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
@media (max-width: 900px) {
  .header-inner {
    flex-wrap: wrap;
    gap: 0;
    min-height: 82px;
  }
  .header-inner .menu-toggle {
    display: block;
    padding: 10px;
    background: transparent;
    border: 0;
    color: var(--accent);
  }
  .header-inner nav {
    display: none;
    flex-basis: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 15px 0;
  }
  .header-inner nav.open {
    display: flex;
  }
  .header-inner nav a {
    padding: 12px 0;
  }
  .nav-parent {
    justify-content: space-between;
    border-top: 1px solid var(--line);
  }
  .nav-parent > a {
    flex: 1;
    border: 0;
  }
  .nav-disclosure {
    width: 48px;
  }
  .header-inner .nav-panel {
    position: static;
    max-width: none;
    min-width: 0;
    box-shadow: none;
    border-top: 0;
    padding: 4px 16px 14px;
    background: #fff;
  }
}
.ks-ledger {
  background: #ffffff08;
  border: 1px solid #c7953670;
  padding: 4px 28px;
  border-radius: 4px;
}
:root {
  --accent: #612032;
  --plum: #39151f;
  --brass: #c79536;
  --brass-dark: #815c19;
  --paper: #faf8f4;
  --wash: #f2ede6;
  --ink: #2e2525;
  --line: #d9cfc4;
  --footer: #2d151d;
  --focus: #96600e;
  --heading-font: "Familjen Grotesk", "Segoe UI", sans-serif;
  --body-font: "Albert Sans", "Segoe UI", sans-serif;
}
body {
  -webkit-font-smoothing: antialiased;
}
h1,
h2,
h3 {
  font-weight: 600;
}
.container {
  max-width: 1120px;
}
.section {
  padding: 76px 0;
}
.section h2 {
  max-width: 23ch;
}
.section .narrow h2 {
  max-width: 100%;
}
.eyebrow {
  color: var(--brass-dark);
  font-size: 0.76rem;
  letter-spacing: 0.13em;
}
.site-header {
  position: relative;
  z-index: 30;
  background: var(--paper);
}
.header-inner {
  min-height: 96px;
  gap: 22px;
}
.brand {
  color: var(--plum);
  font-size: 1.27rem;
}
.brand-mark {
  display: grid;
  place-items: center;
  background: var(--accent);
  color: #fff;
  width: 39px;
  height: 45px;
  clip-path: polygon(14% 0, 86% 0, 100% 100%, 0 100%);
  font-size: 29px;
}
.brand small {
  color: var(--brass-dark);
}
.header-phone {
  font-size: 0.95rem;
  color: var(--accent);
  text-decoration: none;
}
.header-inner nav {
  gap: 19px;
  align-items: center;
}
.nav-group {
  position: relative;
}
.nav-parent {
  display: flex;
  align-items: center;
}
.nav-disclosure {
  border: 0;
  background: transparent;
  color: var(--accent);
  width: 30px;
  min-height: 44px;
  padding: 4px;
  font-size: 20px;
}
.nav-panel {
  position: absolute;
  top: 100%;
  left: -18px;
  min-width: 260px;
  max-width: 330px;
  padding: 12px 18px;
  background: #fff;
  border-top: 3px solid var(--brass);
  box-shadow: 0 12px 32px #25151d26;
}
.nav-panel[hidden] {
  display: none;
}
.nav-panel a {
  display: block;
  border-bottom: 1px solid var(--line);
  padding: 10px 0;
  line-height: 1.35;
}
.nav-panel a:last-child {
  border: 0;
}
.nav-panel a:hover {
  color: var(--brass-dark);
}
.nav-parent > a {
  white-space: nowrap;
}
.ks-seal {
  width: 35px;
  height: 40px;
  display: block;
  flex-shrink: 0;
  color: var(--brass);
}
.ks-hero {
  background: var(--accent);
  color: #fff;
  display: grid;
  grid-template-columns: 1fr 1fr;
  position: relative;
}
.ks-hero-copy {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 64px 54px 64px max(40px, calc((100vw - 1120px) / 2));
}
.ks-copy-inner {
  position: relative;
  z-index: 1;
  max-width: 540px;
}
.ks-hero .eyebrow {
  color: #f0d8b7;
}
.ks-hero h1 {
  font-size: clamp(2.5rem, 4.35vw, 4rem);
  letter-spacing: -0.03em;
  max-width: 16ch;
}
.ks-copy-inner > p:not(.eyebrow) {
  font-size: 1.14rem;
  line-height: 1.65;
  margin-top: 24px;
  max-width: 44ch;
}
.ks-watermark {
  position: absolute;
  bottom: -60px;
  right: 0;
  opacity: 0.065;
  transform: rotate(-8deg);
}
.ks-watermark .ks-seal {
  width: 280px;
  height: 330px;
  color: #fff;
}
.ks-call-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  margin: 30px 0;
}
.ks-call {
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
}
.ks-hero .button,
.ks-final .button {
  background: var(--brass);
  color: #231809;
}
.ks-hero .button:hover,
.ks-final .button:hover {
  background: #ddb05b;
  filter: none;
}
.ks-hero-note {
  display: flex;
  gap: 18px;
  align-items: center;
  border-top: 1px solid #ffffff40;
  padding-top: 22px;
  margin-top: 30px;
  font-size: 0.91rem;
  max-width: 44ch;
}
.ks-hero-note p {
  margin: 0;
}
.ks-hero-note .ks-seal {
  color: #f0d8b7;
}
.ks-hero-visual {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 44px max(30px, calc((100vw - 1220px) / 2)) 44px 38px;
  min-width: 0;
}
.ks-hero-visual > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ks-hero-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #25151d25;
}
.ks-hero-visual .lead-form {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 490px;
}
.lead-form {
  border: 0;
  border-top: 3px solid var(--brass);
  padding: 28px 30px;
  box-shadow: 0 15px 45px #25151d24;
  border-radius: 3px;
}
.lead-form h2 {
  font-size: 1.45rem;
  color: var(--ink);
  margin-bottom: 9px;
  max-width: none;
}
.lead-form .form-intro {
  font-size: 0.91rem;
  color: #514444;
  margin: 0 0 19px;
}
.lead-form label {
  font-size: 0.78rem;
  margin-bottom: 12px;
}
.lead-form input:not([type="checkbox"]),
.lead-form select,
.lead-form textarea {
  background: #faf8f4;
  border-color: #b5a99d;
  font-size: 0.92rem;
  min-height: 43px;
  padding: 9px 10px;
}
.lead-form textarea {
  min-height: 62px;
  height: 62px;
}
.lead-form .consent {
  font-size: 0.72rem;
  line-height: 1.5;
  margin: 13px 0;
}
.lead-form .button {
  font-size: 0.9rem;
  min-height: 47px;
}
.form-status:empty {
  margin: 0;
}
.ks-trust-rail {
  background: #fff;
  border-bottom: 1px solid var(--line);
}
.ks-trust-rail .container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.ks-trust-rail .container > div {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 21px 18px;
  border-right: 1px solid var(--line);
  font-size: 0.87rem;
  font-weight: 600;
}
.ks-trust-rail .container > div:first-child {
  border-left: 1px solid var(--line);
}
.ks-trust-rail .ks-seal {
  width: 23px;
  height: 28px;
  color: var(--accent);
}
.ks-two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: center;
}
.ks-two > div {
  min-width: 0;
}
.ks-two p {
  max-width: 60ch;
}
.ks-two > figure {
  height: 470px;
}
.split {
  gap: 70px;
}
.split figure {
  height: 440px;
  border-bottom: 4px solid var(--brass);
}
.section-split {
  background: #fff;
}
.section-links {
  background: var(--wash);
}
.link-collection {
  gap: 24px;
}
.link-collection article {
  background: #fff;
  border: 0;
  padding: 0 0 23px;
}
.link-collection article > h3,
.link-collection article > p,
.link-collection article > .text-link {
  margin-left: 23px;
  margin-right: 23px;
}
.link-collection article > img {
  height: 210px;
  margin-bottom: 24px;
}
.link-collection h3 {
  font-size: 1.4rem;
}
.link-collection p {
  font-size: 0.97rem;
}
.link-collection .text-link {
  color: var(--brass-dark);
  font-size: 0.9rem;
}
.ks-standard {
  background: var(--plum);
  color: #fff;
  position: relative;
}
.ks-standard .eyebrow {
  color: #e6c284;
}
.ks-standard .ks-two > div > .ks-seal {
  width: 73px;
  height: 82px;
  margin-bottom: 23px;
}
.ks-standard h2 {
  font-size: clamp(2rem, 3.2vw, 3rem);
}
.ks-ledger article {
  border-top: 1px solid #ffffff40;
  padding: 22px 0;
}
.ks-ledger article:last-child {
  border-bottom: 1px solid #ffffff40;
}
.ks-ledger h3 {
  font-size: 1.3rem;
  color: #f0d8b7;
}
.ks-ledger p {
  font-size: 1rem;
  margin-top: 8px;
}
.ks-estimate {
  background: var(--wash);
}
.ks-document {
  background: #fff;
  border-top: 4px solid var(--brass);
  padding: 30px 34px;
  box-shadow: 0 14px 32px #25151d0d;
}
.ks-doc-label {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brass-dark);
  margin-bottom: 20px;
}
.ks-doc-row {
  border-top: 1px solid var(--line);
  padding: 17px 0;
}
.ks-doc-row h3 {
  font-size: 1.1rem;
}
.ks-doc-row p {
  font-size: 0.93rem;
  margin-top: 7px;
}
.ks-document-note {
  border-top: 1px solid var(--line);
  padding-top: 15px;
  font-size: 0.79rem;
  color: #665a54;
}
.ks-process {
  background: #fff;
}
.ks-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 34px;
  margin-top: 36px;
}
.ks-steps .ks-seal {
  margin-bottom: 20px;
  width: 43px;
  height: 49px;
}
.ks-steps h3 {
  font-size: 1.28rem;
}
.ks-steps p {
  font-size: 0.98rem;
  line-height: 1.65;
}
.ks-table-section {
  background: var(--wash);
}
.ks-table-scroll {
  overflow-x: auto;
  margin-top: 28px;
}
.ks-table-scroll table {
  border-collapse: collapse;
  width: 100%;
  font-size: 0.95rem;
  background: #fff;
  min-width: 650px;
  text-align: left;
}
.ks-table-scroll caption {
  text-align: left;
  font-size: 0.8rem;
  padding-bottom: 12px;
  color: #665a54;
}
.ks-table-scroll th,
.ks-table-scroll td {
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.ks-table-scroll thead {
  background: var(--accent);
  color: #fff;
}
.ks-table-scroll tbody th {
  width: 25%;
  font-weight: 700;
}
.ks-source {
  font-size: 0.85rem;
  color: #665a54;
  margin-top: 20px;
}
.ks-statement {
  position: relative;
  overflow: hidden;
  background: var(--plum);
  color: #fff;
  padding: 94px 0;
}
.ks-statement > img {
  position: absolute;
  inset: 0;
  opacity: 0.17;
}
.ks-statement > .container {
  position: relative;
}
.ks-statement h2 {
  font-size: clamp(2rem, 3.7vw, 3.5rem);
  max-width: 25ch;
}
.ks-statement p {
  max-width: 68ch;
}
.ks-statement .eyebrow {
  color: #e6c284;
}
.ks-coverage .ks-two {
  grid-template-columns: 0.9fr 1.1fr;
}
.ks-area-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 26px;
}
.ks-area-links a {
  display: block;
  padding: 9px 14px;
  border: 1px solid var(--line);
  font-size: 0.9rem;
  text-decoration: none;
  background: #fff;
}
.ks-final {
  background: var(--plum);
  color: #fff;
}
.ks-final .eyebrow {
  color: #e6c284;
  margin-top: 25px;
}
.ks-final .ks-two > div > .ks-seal {
  width: 60px;
  height: 70px;
}
.ks-final .phone-large {
  display: inline-block;
  margin-top: 27px;
  color: #f0d8b7;
}
.ks-final .lead-form h2 {
  font-size: 1.5rem;
}
.ks-contact {
  background: var(--wash);
}
.ks-contact h1 {
  margin-bottom: 24px;
}
.ks-contact .phone-large {
  display: inline-block;
  margin-top: 25px;
}
.section-faq {
  background: #fff;
}
.section-faq summary {
  font-size: 1.07rem;
}
.section-faq details p {
  font-size: 1rem;
  max-width: 72ch;
}
.section-compare .comparison > div {
  border-top-color: var(--brass);
}
.section-text .narrow {
  max-width: 830px;
}
.section-text + .section-text {
  padding-top: 8px;
}
.section-text .related-links {
  margin-top: 12px;
}
.site-footer {
  background: var(--footer);
}
@media (max-width: 1100px) {
  .header-inner nav {
    gap: 10px;
  }
  .header-phone {
    display: none;
  }
  .ks-hero-copy {
    padding: 45px 32px;
  }
  .ks-hero-visual {
    padding: 30px 25px;
  }
  .ks-two {
    gap: 40px;
  }
  .ks-hero h1 {
    font-size: 3rem;
  }
  .container {
    width: calc(100% - 56px);
  }
}
@media (max-width: 800px) {
  .ks-hero {
    grid-template-columns: 1fr;
  }
  .ks-hero-copy {
    padding: 44px 28px;
  }
  .ks-copy-inner {
    max-width: 650px;
  }
  .ks-hero h1 {
    max-width: 20ch;
  }
  .ks-hero-visual {
    padding: 40px 28px;
    min-height: 650px;
  }
  .ks-hero-visual .lead-form {
    max-width: 550px;
  }
  .ks-trust-rail .container {
    grid-template-columns: repeat(2, 1fr);
  }
  .ks-trust-rail .container > div {
    border-bottom: 1px solid var(--line);
  }
  .ks-two,
  .ks-coverage .ks-two {
    gap: 36px;
  }
  .ks-steps {
    gap: 22px;
  }
}
@media (max-width: 700px) {
  .container {
    width: calc(100% - 40px);
  }
  .header-inner {
    min-height: 78px;
  }
  .header-inner nav {
    align-items: stretch;
    gap: 0;
  }
  .nav-parent {
    justify-content: space-between;
    border-top: 1px solid var(--line);
  }
  .nav-parent > a {
    border: 0;
    flex: 1;
  }
  .nav-disclosure {
    width: 48px;
  }
  .nav-panel {
    position: static;
    max-width: none;
    box-shadow: none;
    min-width: 0;
    border-top: 0;
    padding: 4px 16px 14px;
    background: #fff;
  }
  .nav-panel a {
    padding: 12px 0;
    border-top: 0;
  }
  .menu-toggle {
    border: 0;
    font-size: 0.95rem;
    color: var(--accent);
  }
  .section {
    padding: 52px 0;
  }
  .ks-hero-copy {
    padding: 39px 20px;
  }
  .ks-hero h1 {
    font-size: 2.55rem;
  }
  .ks-copy-inner > p:not(.eyebrow) {
    font-size: 1.05rem;
    line-height: 1.6;
  }
  .ks-call-row {
    gap: 17px;
    margin: 25px 0;
  }
  .ks-call-row .button {
    font-size: 0.92rem;
  }
  .ks-hero-note {
    font-size: 0.86rem;
    margin-top: 23px;
  }
  .ks-hero-visual {
    padding: 30px 20px;
    min-height: 0;
  }
  .lead-form {
    padding: 25px 22px;
  }
  .form-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0 12px;
  }
  .lead-form label {
    min-width: 0;
  }
  .lead-form .consent {
    font-size: 0.73rem;
  }
  .ks-trust-rail .container {
    width: 100%;
  }
  .ks-trust-rail .container > div {
    padding: 16px 18px;
    font-size: 0.77rem;
    gap: 10px;
  }
  .ks-two,
  .ks-coverage .ks-two {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .ks-two > figure,
  .split figure {
    height: 290px;
  }
  .ks-steps {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .ks-steps article {
    position: relative;
    padding: 23px 0 23px 65px;
    border-top: 1px solid var(--line);
  }
  .ks-steps .ks-seal {
    position: absolute;
    left: 0;
    top: 25px;
    width: 35px;
    height: 40px;
  }
  .ks-document {
    padding: 25px 24px;
  }
  .link-collection article {
    display: block;
    padding-bottom: 24px;
  }
  .link-collection article > img {
    height: 220px;
    margin-bottom: 22px;
  }
  .link-collection article > p {
    margin-top: 12px;
  }
  .link-collection article > .text-link {
    margin-top: 14px;
  }
  .ks-statement {
    padding: 64px 0;
  }
  .ks-statement h2 {
    font-size: 2.2rem;
  }
  .ks-table-scroll {
    margin-right: -20px;
    padding-right: 20px;
  }
  .ks-table-scroll table {
    min-width: 610px;
  }
  .ks-final .ks-two > div > .ks-seal {
    width: 45px;
    height: 52px;
  }
  .ks-final .lead-form h2 {
    font-size: 1.4rem;
  }
  .ks-contact h1 {
    font-size: 2.5rem;
  }
  .ks-source {
    font-size: 0.8rem;
  }
  .site-footer {
    padding-top: 48px;
  }
}
/* Recovered overview, map, cost-tool and journal compositions. */
.ks-overview {background:var(--paper,#faf7f2)}
.ks-overview .ks-two {align-items:center}
.ks-overview figure {margin:0; height:auto; position:relative}
.ks-overview figure img {width:100%;height:380px;object-fit:cover;border-radius:2px}
.ks-overview figcaption {font-size:.8rem;color:var(--muted);margin-top:12px}
.ks-profile {background:#f0e9df}
.ks-facts {margin:0;border-top:3px solid var(--accent,#a9864b);background:#fff;padding:12px 30px}
.ks-facts div {padding:20px 0;border-bottom:1px solid var(--line)}
.ks-facts div:last-child {border:0}
.ks-facts dt {font-size:.75rem;text-transform:uppercase;letter-spacing:.09em;color:#665442;margin-bottom:7px;font-weight:700}
.ks-facts dd {margin:0;font-size:1.12rem;line-height:1.5}
.ks-map-section {background:#efe9e1}
.ks-map-section .ks-two {align-items:center}
.ks-map-section .ks-map {margin:0;height:auto;border:1px solid #d3c5b5;background:#fff;padding:10px}
.ks-map img {display:block;width:100%;height:auto;object-fit:contain}
.ks-map figcaption {padding:12px 8px 4px;font-size:.78rem;line-height:1.6;color:#524b42}
.ks-map figcaption a {display:block;text-decoration:underline}
.ks-calc-section {background:#f4efe7}
.ks-calculator {display:grid;grid-template-columns:1fr 1fr;margin-top:32px;border:1px solid #d3c5b5}
.ks-calc-controls {background:#fff;padding:36px;display:grid;gap:18px}
.ks-calc-controls label {display:grid;gap:8px;font-weight:650}
.ks-calc-controls input,.ks-calc-controls select {font:inherit;width:100%;padding:12px;background:#fff;border:1px solid #8b8278;border-radius:2px;color:#292520;min-height:46px}
.ks-calc-controls input:disabled {background:#eee9e1;color:#655d53}
.ks-calc-help {font-size:.83rem;line-height:1.5;margin:-8px 0 0;color:#635a50}
.ks-calc-result {background:var(--accent);color:#fff;padding:44px;display:flex;flex-direction:column;justify-content:center}
.ks-calc-result .eyebrow {color:#e0c08e}
.ks-calc-result output {font-family:var(--heading-font);font-size:clamp(2rem,3vw,3rem);font-weight:650;line-height:1.15;display:block;margin:10px 0 16px}
.ks-calc-result p {color:#f5e9eb}
.ks-calc-result .button {align-self:flex-start;margin-top:16px}
.ks-article-hero {padding:70px 0 0;background:#f3ede5}
.ks-article-hero h1 {font-size:clamp(2.35rem,4.5vw,4rem);line-height:1.04;letter-spacing:-.035em;margin:18px 0 25px}
.ks-article-hero .eyebrow a {text-decoration:none;color:inherit}
.ks-article-hero figure {margin:38px auto 0}
.ks-article-hero figure img {width:100%;height:450px;object-fit:cover}
.ks-byline {font-size:.8rem;color:#685b4f;padding-top:14px}
.ks-article .section-text {padding:38px 0}
.ks-article .section-text h2 {font-size:2rem}
.ks-article .section-faq {padding-top:35px}
.ks-article-end {display:flex;gap:25px;align-items:center;justify-content:space-between;padding-top:20px;padding-bottom:65px}
@media(max-width:700px){
 .ks-overview figure img {height:270px}
 .ks-overview .ks-two > figure,.ks-map-section .ks-two > figure {height:auto}
 .ks-facts {padding:8px 22px}
 .ks-calculator {grid-template-columns:1fr}
 .ks-calc-controls,.ks-calc-result {padding:26px}
 .ks-calc-result output {font-size:2.1rem}
 .ks-article-hero {padding-top:40px}
 .ks-article-hero figure img {height:260px}
 .ks-article .section-text h2 {font-size:1.75rem}
 .ks-article-end {flex-direction:column;align-items:flex-start}
}

.ks-calc-result .button {background:var(--brass);color:#231809}
.ks-calc-result .button:hover {background:#ddb05b}

/* Site-owned article reading flow, calibrated against original approved Keystone. */
main .ks-article {background:#f8f4ee}
main .ks-article-hero {background:var(--plum);color:#fff;padding-top:54px}
main .ks-article-hero .eyebrow,main .ks-article-hero .eyebrow a {color:#f3d49c}
main .ks-article-hero .ks-byline {color:#eee1d3}
main .ks-article-hero h1 {max-width:22ch}
main .ks-article .narrow {max-width:800px}
main .ks-article .fay-article-intro {padding-top:42px;padding-bottom:12px}
main .ks-article .section-text {padding:20px 0;background:transparent;border:0}
main .ks-article .section-text h2 {font-size:clamp(1.55rem,2.7vw,2rem);max-width:30ch;line-height:1.18;margin:0 0 18px}
main .ks-article .section-text p {line-height:1.8}
main .ks-article .ks-faq-split {background:transparent;padding-top:40px}
main .ks-article .ks-faq-split-grid {max-width:800px;grid-template-columns:1fr;gap:22px}
@media(max-width:700px){main .ks-article-hero {padding-top:34px}main .ks-article-hero h1 {font-size:2.2rem}main .ks-article .fay-article-intro {padding-top:28px}main .ks-article .section-text {padding:16px 0}}
/* Keep the full service choice, with a compact thumbnail register on phones. */
@media(max-width:700px){
 main .ks-services-registry .link-collection article {display:grid;grid-template-columns:82px minmax(0,1fr);column-gap:16px;row-gap:8px;padding:22px 18px;align-items:start}
 main .ks-services-registry .link-collection article>img {grid-column:1;grid-row:1/4;width:82px;height:88px;margin:0;object-fit:cover}
 main .ks-services-registry .link-collection article>h3,main .ks-services-registry .link-collection article>p,main .ks-services-registry .link-collection article>.text-link {grid-column:2;min-width:0}
 main .ks-services-registry .link-collection article>h3 {font-size:1.13rem;line-height:1.2}
 main .ks-services-registry .link-collection article>p {font-size:.9rem;line-height:1.6}
 main .ks-services-registry .link-collection article>.text-link {font-size:.85rem;padding-top:2px}
}

/* September 7 whole-page composition: open priorities before the technical ledger. */
main .fay-about-values {background:var(--paper);color:var(--ink)}
main .fay-about-values .ks-two {gap:30px}
main .fay-about-values .ks-two>div:first-child {max-width:820px;margin:0;text-align:left}
main .fay-about-values .ks-seal {display:none}
main .fay-about-values .eyebrow {color:var(--brass-dark)}
main .fay-about-values h2 {max-width:26ch}
main .fay-about-values .ks-ledger {grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 52px;text-align:left}
main .fay-about-values .ks-ledger article {padding:22px 0 12px;border-top:1px solid var(--line)}
main .fay-about-values .ks-ledger h3 {color:var(--accent)}
.fay-home-hero .ks-legacy-background>img {object-position:50% 38%}
@media(max-width:700px){main .fay-about-values .ks-ledger {grid-template-columns:1fr;gap:0}main .fay-about-values .ks-two {gap:20px}main .fay-about-values .ks-ledger article {padding:22px 0}.fay-home-hero .ks-legacy-background>img {object-position:50% 32%}}

/* Targeted hero continuity: existing photos, identity and lower-page flow. */
main .ks-contact-photo {position:relative;isolation:isolate;overflow:hidden;background:var(--plum);color:#fff;padding:64px 0}
main .ks-contact-photo>.ks-legacy-background {z-index:0}
main .ks-contact-photo>.container {position:relative;z-index:1}
main .ks-contact-photo .ks-two>div:first-child h1 {color:inherit;font-size:clamp(34px,4.4vw,54px);line-height:1.06;letter-spacing:-.027em;max-width:19ch}
main .ks-contact-photo .ks-two>div:first-child>p {color:inherit}
main .ks-contact-photo .ks-two>div:first-child>.eyebrow {color:#e1ba73}
main .ks-contact-photo .phone-large {color:#fff}
main .ks-contact-photo .lead-form {color:var(--ink)}
main .ks-article-photo-overlay {position:relative;isolation:isolate;overflow:hidden;display:grid;align-items:center;min-height:390px;padding:72px 0;background:var(--plum);color:#fff}
main .ks-article-photo-overlay>.container {position:relative;z-index:1}
main .ks-article-photo-overlay>.ks-article-overlay-photo {position:absolute;inset:0;z-index:0;width:100%;height:100%;max-width:none;margin:0;padding:0}
main .ks-article-photo-overlay>.ks-article-overlay-photo>img {width:100%;height:100%;max-height:none;object-fit:cover;border-radius:0}
main .ks-article-photo-overlay>.ks-article-overlay-photo::after {content:"";position:absolute;inset:0;background:linear-gradient(96deg,rgba(46,11,19,.94),rgba(58,15,25,.78) 48%,rgba(58,15,25,.5))}
main .ks-article-photo-overlay h1 {max-width:24ch;font-size:clamp(34px,4.4vw,54px);line-height:1.08;letter-spacing:-.027em;color:#fff;margin:20px 0}
main .ks-article-photo-overlay .eyebrow,main .ks-article-photo-overlay .eyebrow a {color:#e1ba73}
main .ks-article-photo-overlay .ks-byline,main .ks-article-photo-overlay .ks-norman-article-meta {color:#f5e9e2}
main .ks-resource-heading {background:var(--plum);color:#fff;padding:56px 0}
main .ks-resource-heading h1 {color:inherit;font-size:clamp(34px,4.4vw,54px);line-height:1.08;max-width:24ch}
main .ks-resource-heading .eyebrow {color:#e1ba73}
@media(max-width:700px){main .ks-contact-photo{padding:40px 0}main .ks-article-photo-overlay{min-height:320px;padding:50px 0}main .ks-article-photo-overlay h1{font-size:34px}main .ks-resource-heading{padding:40px 0}}

/* Interior detail language: brass rules, numbered files, bone and wine bands. */
.ks-topic-icon {width:32px;height:32px;flex-shrink:0;color:var(--brass-dark)}
.ks-steps .ks-topic-icon,.ks-step-number {display:block;width:44px;height:44px;margin-bottom:24px}
.ks-step-number {font:500 1.5rem/44px var(--heading-font);color:var(--brass-dark);border-bottom:2px solid var(--brass)}
.ks-process-timeline .ks-steps .ks-topic-icon,.ks-process-timeline .ks-step-number {margin:0}
.ks-trust-rail .container>a {display:flex;align-items:center;gap:15px;padding:24px 18px;border-right:1px solid var(--line);text-decoration:none}
.ks-trust-rail .container>a:first-child {border-left:1px solid var(--line)}
.ks-trust-rail a:hover {background:var(--wash)}
.ks-trust-rail strong {display:block;font-size:.9rem;line-height:1.3;color:var(--plum)}
.ks-trust-rail small {display:block;font-size:.8rem;line-height:1.4;margin-top:6px;color:#685b53}
/* Balance authored counts without changing the established four-item rail. */
@media(min-width:681px){.ks-trust-rail>.container:has(>div:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.ks-trust-rail>.container:has(>div:nth-child(3):last-child){grid-template-columns:1fr}}
.ks-standard .ks-two>.ks-source,.ks-profile .ks-two>.ks-source{grid-column:1/-1}
@media(min-width:681px){.ks-trust-rail>.container:has(>a:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){
 .ks-trust-rail>.container:has(>a:nth-child(3):last-child){grid-template-columns:1fr}
 .ks-trust-rail>.container:has(>a:nth-child(3):last-child)>a{border-left:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center}
}
.ks-services-compact {background:var(--wash)}
.ks-directory-heading {display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:32px}
.ks-directory-heading>div {max-width:760px}
.ks-directory-heading .text-link {white-space:nowrap}
.ks-service-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px}
.ks-service-grid article {position:relative;display:flex;flex-direction:column;padding:0 0 24px;background:transparent;border:0;border-bottom:1px solid var(--line)}
.ks-service-grid article>img {height:auto;aspect-ratio:1.9;width:100%;object-fit:cover;margin-bottom:22px}
.ks-service-grid article>div {display:flex;flex-direction:column;flex:1}
.ks-service-grid h3 {font-size:1.45rem;line-height:1.15;margin:0 0 12px;text-wrap:initial}
.ks-service-grid h3 a {text-decoration:none}
.ks-service-grid h3 a:hover {text-decoration:underline}
.ks-service-grid p {font-size:1rem;line-height:1.55;margin:0 0 10px}
.ks-service-grid .ks-topic-icon {display:none}
.ks-service-grid .text-link {font-size:.87rem;margin:auto 0 0;padding:10px 0 0;color:var(--accent);align-self:flex-start}
.ks-estimate .ks-document-note:empty {display:none}
@media(min-width:1101px){.header-inner{gap:18px}.header-inner nav{gap:15px}.site-header nav a{font-size:.87rem}.header-actions{gap:16px}}
@media(max-width:1100px){.ks-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ks-directory-heading{display:block}.ks-trust-rail .container>a{padding:19px 16px}}
@media(max-width:700px){
 .ks-service-grid{grid-template-columns:1fr;gap:0}
 .ks-service-grid article{display:grid;grid-template-columns:110px minmax(0,1fr);gap:20px;padding:22px 0}
 .ks-service-grid article>img{width:110px;height:88px;aspect-ratio:auto;margin:0}
 .ks-service-grid article>div{display:block}
 .ks-service-grid .ks-topic-icon{display:none}
 .ks-service-grid h3{font-size:1.25rem;margin-bottom:8px}
 .ks-service-grid p{font-size:.94rem;margin-bottom:0}
 .ks-service-grid .text-link{font-size:.83rem;margin-top:5px}
 .ks-directory-heading{margin-bottom:25px}
 .ks-trust-rail .container>a{padding:20px 10px;gap:10px;align-items:flex-start}
 .ks-trust-rail .container>a:nth-child(3){border-left:1px solid var(--line)}
 .ks-trust-rail .ks-topic-icon{width:26px;height:26px}
 .ks-trust-rail strong{font-size:.83rem}
 .ks-trust-rail small{font-size:.76rem}
 .ks-steps .ks-topic-icon,.ks-step-number{position:absolute;left:0;top:25px;width:36px;height:40px;margin:0}
 .ks-process-timeline .ks-steps article{position:relative}
 .ks-process-timeline .ks-steps .ks-topic-icon,.ks-process-timeline .ks-step-number{top:25px}
}
.ks-footer {border-top:3px solid var(--brass);padding:48px 0 24px;background:#2c0e17}
.ks-footer-mast {display:flex;align-items:center;justify-content:space-between;gap:36px;padding-bottom:32px;border-bottom:1px solid #ffffff24}
.ks-footer-brand {display:flex;align-items:center;gap:18px;text-decoration:none;font:650 1.65rem/1.15 var(--heading-font);color:#fff}
.ks-footer-brand svg {width:42px;height:44px;flex-shrink:0;color:#eadbda}
.ks-footer-brand small {display:block;margin-top:8px;font:700 .68rem/1.4 var(--body-font);letter-spacing:.14em;text-transform:uppercase;color:#eadbda}
.ks-footer-mast>p {margin:0;font:500 1.05rem/1.5 var(--heading-font);color:#f1e4de}
.ks-footer-columns {display:grid;grid-template-columns:1fr 1fr 1.1fr 1.1fr;gap:40px;padding:34px 0 36px}
.ks-footer-columns>nav {display:block}
.ks-footer nav a {font-weight:400}
.ks-footer h2 {font:700 .72rem/1.4 var(--body-font);letter-spacing:.12em;text-transform:uppercase;margin:0 0 15px;color:#fff}
.ks-footer ul {list-style:none;padding:0;margin:0}
.ks-footer li a {display:inline-block;padding:6px 0;color:#ddc7c4;text-decoration:none;font-size:.92rem;line-height:1.45}
.ks-footer a:hover {color:#fff;text-decoration:underline;text-underline-offset:5px}
.ks-footer a:focus-visible {outline:2px solid #edc677;outline-offset:5px}
.ks-footer-contact .phone-large {font-size:1.6rem;color:#fff;display:inline-block;margin:0 0 14px;text-decoration:none}
.ks-footer-contact p {font-size:.92rem;color:#ddc7c4;line-height:1.8;margin:0 0 20px;max-width:25ch}
.ks-footer-contact .button {font-size:.81rem;padding:12px 19px;min-height:44px;color:#201609;background:var(--brass);text-decoration:none}
.ks-footer-contact .button:hover {background:#dfb866;color:#201609}
.ks-footer-bottom {border-top:1px solid #ffffff24;padding-top:20px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#ccb7b5;font-size:.78rem}
.ks-footer-bottom p {margin:0}
.ks-footer-bottom nav {display:flex;flex-wrap:wrap;gap:10px 24px}
.ks-footer-bottom a {color:inherit;text-decoration:none}
/* Supporting explanations have a smaller hierarchy than major feature sections. */
.section.ks-editorial {padding:52px 0}
.section.ks-editorial h2 {font-size:clamp(1.55rem,2.4vw,2.15rem);line-height:1.16;max-width:25ch}
.ks-editorial header {border-top:0;padding-top:0}
.ks-editorial-grid {align-items:start}
.ks-editorial-inset {background:var(--wash)}
.ks-editorial-inset .ks-editorial-grid {border-left:3px solid var(--brass);padding-left:30px}
.ks-editorial-sequence {padding:22px 0;background:#fff;border-block:1px solid var(--line)}
.ks-editorial-sequence .ks-editorial {border:0;padding:30px 0}
.ks-editorial-sequence .ks-editorial+.ks-editorial>.container {border-top:1px solid var(--line);padding-top:30px}
.ks-signs-illustrated .ks-sign-intro {display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px}
.ks-sign-intro figure {margin:0}
.ks-sign-intro figure img {display:block;width:100%;height:280px;object-fit:cover}
@media(max-width:1000px){.ks-footer-columns {grid-template-columns:1fr 1fr;gap:32px 50px}.ks-footer-mast>p {max-width:20ch}.ks-signs-illustrated .ks-sign-intro {gap:30px}}
@media(max-width:700px){
 .ks-footer {padding:36px 0 28px}
 .ks-footer-mast {display:block;padding-bottom:26px}
 .ks-footer-brand {font-size:1.4rem;gap:14px}
 .ks-footer-mast>p {max-width:none;margin:20px 0 0 56px;font-size:.95rem}
 .ks-footer-columns {gap:30px 20px;padding:28px 0}
 .ks-footer-columns>nav:nth-child(3),.ks-footer-contact {grid-column:1/-1}
 .ks-footer-columns>nav:nth-child(3) ul {display:grid;grid-template-columns:1fr 1fr;column-gap:20px}
 .ks-footer li a {font-size:.87rem;padding:9px 0}
 .ks-footer-contact {border-top:1px solid #ffffff24;padding-top:26px}
 .ks-footer-contact p {max-width:34ch}
 .ks-footer-bottom {display:block;line-height:1.7}
 .ks-footer-bottom nav {margin-top:14px;gap:10px 20px}
 .section.ks-editorial {padding:36px 0}
 .ks-editorial-inset .ks-editorial-grid {padding-left:20px}
 .ks-editorial-sequence {padding:8px 0}
 .ks-editorial-sequence .ks-editorial {padding:24px 0}
 .ks-signs-illustrated .ks-sign-intro {grid-template-columns:1fr;gap:24px}
 .ks-sign-intro figure img {height:240px}
}
.ks-detail-grid,.ks-editorial-grid {display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:72px}
.ks-detail header h2,.ks-editorial header h2 {max-width:19ch;margin-top:0}
.ks-detail header figure {margin:28px 0 0}
.ks-detail header figure img {display:block;width:100%;height:230px;object-fit:cover}
.ks-detail-rows {margin:0;border-top:3px solid var(--brass)}
.ks-detail-rows>div {padding:23px 0;border-bottom:1px solid var(--line)}
.ks-detail-rows dt {font:600 1.28rem/1.25 var(--heading-font);display:flex;align-items:center;gap:15px;margin-bottom:12px}
.ks-detail-marker {font:600 .75rem/1 var(--body-font);color:var(--brass-dark);width:29px;height:32px;display:grid;place-items:center;background:var(--wash);clip-path:polygon(15% 0,85% 0,100% 100%,0 100%);flex-shrink:0}
.ks-detail-rows dd {margin:0 0 0 44px}
.ks-detail-rows dd p {margin:0 0 10px}
.ks-detail-rows dd p:last-child {margin:0}
.ks-detail-fieldnote {background:var(--wash)}
.ks-detail-fieldnote .ks-detail-rows {background:var(--paper);padding:4px 30px 12px}
.ks-detail-note {font-size:.83rem;color:var(--muted);border-top:1px solid var(--line);padding-top:18px;margin-top:26px}
.ks-detail-links {display:flex;flex-wrap:wrap;gap:14px 28px;margin-top:24px}
.ks-detail-links:empty {display:none}
.ks-signs {background:var(--wash)}
.ks-signs header {max-width:760px}
.ks-sign-grid {list-style:none;margin:35px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 50px}
.ks-sign-grid li {padding:24px 0 24px 28px;border-top:1px solid var(--line);position:relative}
.ks-sign-grid li:before {content:'';position:absolute;left:0;top:31px;width:9px;height:12px;background:var(--brass-dark);clip-path:polygon(15% 0,85% 0,100% 100%,0 100%)}
.ks-sign-grid h3 {font-size:1.25rem;margin:0 0 10px}
.ks-sign-grid p {margin:0}
.ks-costband {background:var(--accent);color:var(--paper)}
.ks-costband .eyebrow {color:#ebcb92}
.ks-costband .text-link {color:#fff;border-color:#fff}
.ks-cost-points {border-top:1px solid #ffffff60}
.ks-cost-points>div {padding:19px 0;border-bottom:1px solid #ffffff40}
.ks-cost-points h3 {color:#f3d49c;font-size:1.22rem;margin:0 0 8px}
.ks-cost-points p {margin:0;color:#fff}
.ks-costband-paper {background:var(--paper);color:var(--ink)}
.ks-costband-paper .eyebrow {color:var(--brass-dark)}
.ks-costband-paper .text-link {color:var(--accent);border-color:var(--accent)}
.ks-costband-paper .ks-cost-points,.ks-costband-paper .ks-cost-points>div {border-color:var(--line)}
.ks-costband-paper .ks-cost-points h3 {color:var(--accent)}
.ks-costband-paper .ks-cost-points p {color:var(--ink)}
.ks-costband-example .ks-cost-points h3 {font-size:clamp(1.6rem,2.7vw,2.2rem);line-height:1.2}
.ks-costband-example .ks-cost-points>div {padding:28px 0}
.ks-editorial {border-top:1px solid var(--line)}
.ks-editorial header {padding-top:0;border-top:0}
.ks-editorial-copy>p:first-child {margin-top:0}
.ks-editorial-copy>p:last-child {margin-bottom:0}
.ks-standard-certificate .ks-two {border:1px solid #c7953670;padding:45px;grid-template-columns:1fr;gap:25px}
.ks-standard-certificate .ks-two>div:first-child {display:grid;grid-template-columns:70px 1fr;column-gap:24px}
.ks-standard-certificate .ks-two>div:first-child>.ks-seal {grid-row:1/5;width:58px;height:66px}
.ks-standard-certificate .ks-two>div:first-child>p,.ks-standard-certificate .ks-two>div:first-child>h2 {grid-column:2;max-width:none}
.ks-standard-certificate .ks-ledger {display:grid;grid-template-columns:1fr 1fr;gap:0 32px;border:0;padding:0;background:none}
.ks-standard-columns .ks-two {grid-template-columns:1fr;text-align:center;gap:25px}
.ks-standard-columns .ks-two>div:first-child {max-width:700px;margin:auto}
.ks-standard-columns .ks-seal {margin:0 auto 24px}
.ks-standard-columns h2 {max-width:none}
.ks-standard-columns .ks-ledger {display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:25px;padding:0;background:none;border:0}
.ks-standard-columns .ks-ledger article {padding:25px 10px;border-top:1px solid #c7953670;border-bottom:0}
.ks-process-timeline .ks-steps {display:block;max-width:760px;margin:36px auto 0}
.ks-process-timeline .ks-steps article {position:relative;display:grid;grid-template-columns:60px minmax(0,1fr);column-gap:24px;row-gap:6px;padding:0 0 36px;border:0}
.ks-process-timeline .ks-steps article:not(:last-child)::before {content:"";position:absolute;left:29px;top:60px;bottom:0;width:2px;background:var(--line)}
.ks-process-timeline .ks-steps article h3,.ks-process-timeline .ks-steps article p {margin:0}
.ks-process-timeline .ks-steps article > :first-child {position:relative;left:auto;top:auto;grid-column:1;grid-row:1 / 3;align-self:start;display:grid;place-items:center;width:60px;height:60px;padding:15px;border:1px solid var(--brass);border-radius:50%;background:var(--plum);color:#f3d49c;font-size:1.2rem;line-height:1;margin:0;z-index:1}
.ks-process-timeline .ks-step-heading {grid-column:2;grid-row:1;min-width:0}
.ks-process-timeline .ks-step-copy {grid-column:2;grid-row:2;min-width:0;max-width:56ch}
.ks-process-timeline .ks-step-heading .eyebrow {margin-bottom:8px}
.ks-process-timeline .ks-step-copy p + p {margin-top:14px}
.ks-standard:not(.ks-standard-watermark) .ks-source,.ks-final .ks-source {color:#f1e6da}
.ks-standard:not(.ks-standard-watermark) .ks-source a,.ks-final .ks-source a {color:inherit}
.ks-services-photo .link-collection {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.ks-services-photo .link-collection article {display:flex;flex-direction:column;position:relative;background:var(--plum);color:#fff;padding:0 25px 25px;gap:0;border:0;overflow:hidden}
.ks-services-photo .link-collection article>img {width:calc(100% + 50px);max-width:none;height:220px;object-fit:cover;margin:0 -25px 24px}
.ks-services-photo .link-collection h3 {font-size:1.5rem;margin:0 0 12px}
.ks-services-photo .link-collection h3 a {color:#fff}
.ks-services-photo .link-collection article>p {margin:0 0 22px;color:#fff}
.ks-services-photo .link-collection article>.text-link {color:#f3d49c;margin-top:auto;align-self:flex-start}
.ks-services-photo .link-collection article>h3,.ks-services-photo .link-collection article>p,.ks-services-photo .link-collection article>.text-link {margin-left:0;margin-right:0}
.ks-standard-certificate .ks-ledger article:last-child:nth-child(odd) {grid-column:1/-1}
.ks-services-registry .link-collection {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:32px}
.ks-services-registry .link-collection article {display:flex;flex-direction:column;align-items:flex-start;gap:12px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px}
.ks-services-registry .link-collection article>img {width:100%;height:210px;object-fit:cover;margin:0 0 12px}

@media(max-width:540px){.ks-services-registry .link-collection article>img {height:170px}}
.ks-services-registry .link-collection article h3,.ks-services-registry .link-collection article p {margin:0}
.ks-services-registry .link-collection article>.text-link {margin-top:auto;padding-top:8px}
.ks-final-centered .ks-two {grid-template-columns:1fr;max-width:850px}
.ks-final-centered .ks-two>div:first-child {text-align:center}
.ks-final-centered .ks-seal {margin:0 auto 25px}
.ks-final-centered h2 {max-width:none}
.ks-hero-inset {max-width:1320px;margin:28px auto 0;border:1px solid var(--line)}
.ks-hero-inset .ks-hero-copy {padding-left:50px}
.ks-hero-inset .ks-hero-visual {padding:44px 38px;min-width:0}
.ks-hero-inset .lead-form {min-width:0;width:100%;max-width:490px}
/* Long brand names and the open menu own separate grid rows. */
@media(max-width:900px){
 .site-header .header-inner {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;align-items:center}
 .site-header .brand {min-width:0;font-size:1.1rem;gap:10px;padding:16px 0}
 .site-header .brand>span:last-child {min-width:0;overflow-wrap:break-word}
 .site-header .brand-mark {flex-shrink:0}
 .site-header .menu-toggle {grid-column:2;grid-row:1;margin:0;white-space:nowrap}
 .site-header .header-inner nav {grid-column:1 / -1;grid-row:2;width:100%;min-width:0}
}
@media(max-width:1100px){
 .ks-detail-grid,.ks-editorial-grid {gap:38px}
 .ks-services-photo .link-collection,.ks-services-registry .link-collection {grid-template-columns:repeat(2,minmax(0,1fr))}
 .ks-hero-inset {margin-top:0;border:0}
 .ks-hero-inset .ks-hero-copy {padding-left:30px}
}
@media(max-width:700px){
 .ks-detail-grid,.ks-editorial-grid {grid-template-columns:1fr;gap:25px}
 .ks-detail header h2,.ks-editorial header h2 {max-width:none}
 .ks-detail-rows dd {margin-left:0}
 .ks-detail-fieldnote .ks-detail-rows {padding:2px 22px 10px}
 .ks-detail header figure img {height:250px}
 .ks-sign-grid {grid-template-columns:1fr;gap:0;margin-top:20px}
 .ks-standard-certificate .ks-two {padding:25px 20px;width:calc(100% - 40px)}
 .ks-standard-certificate .ks-two>div:first-child {display:block}
 .ks-standard-certificate .ks-ledger,.ks-standard-columns .ks-ledger {grid-template-columns:1fr;text-align:left;gap:0}
 .ks-process-timeline .ks-steps article {grid-template-columns:44px minmax(0,1fr);column-gap:18px;padding:0 0 30px}
 .ks-process-timeline .ks-steps article > :first-child {width:44px;height:44px;padding:10px;top:auto;left:auto}
 .ks-process-timeline .ks-steps article:not(:last-child)::before {left:21px;top:44px}
 .ks-services-photo .link-collection,.ks-services-registry .link-collection {grid-template-columns:1fr}
 .ks-services-photo .link-collection article>img {height:230px}
 .ks-services-registry .link-collection article {padding:25px}
 .ks-hero-inset .ks-hero-copy {padding-left:20px}
}
/* A service collection ends with a clear hub action, separate from its cards. */
.collection-actions {margin-top:32px}
.ks-storm-history {background:#fff}
.ks-storm-history > .container > p {max-width:78ch}
.storm-highlights {margin-top:36px}
.storm-highlights > h3 {margin:0 0 14px;font-size:1.5rem;line-height:1.25}
.storm-highlights > p {max-width:78ch;margin:0 0 24px}
.storm-year-links {display:flex;gap:10px;flex-wrap:wrap;margin:28px 0 44px}
.storm-year-links a {padding:9px 18px;border:1px solid var(--brass-dark);font-weight:600;text-decoration:none}
.storm-year {scroll-margin-top:120px;margin-top:38px}
.storm-year h3 {font-size:1.65rem;margin-bottom:18px;color:var(--accent)}
.storm-year table {width:100%;border-collapse:collapse;text-align:left;min-width:610px}
.storm-year th,.storm-year td {padding:17px 20px;border-bottom:1px solid #ded5ca;vertical-align:top}
.storm-year thead {background:var(--plum);color:#fff}
.storm-year tbody tr:nth-child(even) {background:#f7f4ef}
.storm-year td small {display:block;font-size:.8rem;margin-top:4px;color:#685b53}
.storm-year td a {font-weight:600;text-underline-offset:4px}
@media(max-width:600px){.storm-year th,.storm-year td {padding:13px 12px}.storm-year-links{margin-bottom:28px}}

/* Comparison information remains complete at a phone width. Native table roles and
   headers stay available to assistive technology; visible labels aid scanning. */
.table-cell-label {display:none}
@media(min-width:901px){.site-header {position:sticky;top:0;z-index:100;box-shadow:0 1px 0 var(--line)}}
@media(max-width:700px){
 .ks-table-scroll {margin-right:0;padding-right:0;overflow:visible}
 .ks-table-scroll table {display:block;min-width:0;background:transparent}
 .ks-table-scroll thead {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .ks-table-scroll tbody {display:grid;gap:18px}
 .ks-table-scroll tbody tr {display:block;border:1px solid var(--line);border-top:3px solid var(--brass);background:#fff}
 .ks-table-scroll tbody th,.ks-table-scroll tbody td {display:block;width:auto;padding:13px 18px;border:0;overflow-wrap:anywhere}
 .ks-table-scroll tbody th {font-size:1.05rem;color:var(--accent);background:var(--wash)}
 .ks-table-scroll tbody td + td {border-top:1px solid var(--line);margin:0 18px;padding:13px 0}
 .table-cell-label {display:block;font-size:.75rem;line-height:1.4;font-weight:700;color:var(--brass-dark);margin-bottom:6px}
 .storm-year tbody tr:nth-child(even) {background:#fff}
 .storm-year td small {font-size:.8rem}
}
.ks-model-method {margin-top:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;max-width:78ch}
.ks-model-method summary {font-weight:600;cursor:pointer}
.ks-model-method p {font-size:.92rem;margin-top:14px}
@media(min-width:901px){
 .section-compare .comparison:has(> div:nth-child(3):last-child) {grid-template-columns:repeat(3,minmax(0,1fr))}
}
.storm-archive {margin:32px 0}
.storm-archive .storm-year {margin:0;border-top:1px solid var(--line)}
.storm-archive .storm-year:last-child {border-bottom:1px solid var(--line)}
.storm-year > summary {display:flex;align-items:center;gap:30px;padding:24px 20px;cursor:pointer;list-style:none;background:var(--wash)}
.storm-year > summary::-webkit-details-marker {display:none}
.storm-year > summary h3 {margin:0;min-width:80px;font-size:1.65rem}
.storm-year > summary > span {font-weight:600}
.storm-year > summary small {display:block;font-weight:400;font-size:.82rem;margin-top:3px}
.storm-year > summary .storm-expand {margin-left:auto;font-size:1.8rem;line-height:1}
.storm-year[open] > summary .storm-expand {transform:rotate(45deg)}
.storm-year[open] .ks-table-scroll {padding:20px 0}
.ks-material-comparison {margin:32px 0 40px}
.ks-material-comparison > h3 {font-size:1.6rem;margin-bottom:10px}
.ks-material-comparison > p {max-width:75ch}
.ks-material-comparison dl {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0 16px}
.ks-material-comparison dl > div {padding:22px 26px;border-top:3px solid var(--brass);background:#fff}
.ks-material-comparison dt {font-weight:600;margin-bottom:8px}
.ks-material-comparison dd {margin:0;font-size:1.4rem;font-weight:600;color:var(--accent)}
@media(max-width:700px){
 .storm-year > summary {padding:20px 12px;gap:15px}
 .storm-year > summary h3 {min-width:64px;font-size:1.45rem}
 .storm-year > summary small {font-size:.75rem}
 .ks-material-comparison dl {grid-template-columns:1fr;gap:12px}
 .ks-material-comparison dl > div {padding:18px 22px}
}
/* Bounded article feeds: all crawlable links remain available without JavaScript. */
.ks-blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:30px}
@media(min-width:541px){.ks-blog-grid:has(>article:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}}
.ks-blog-grid article{background:#fff;min-width:0;border-top:2px solid var(--gold,#be8f2d)}
.ks-blog-grid article>img{width:100%;height:210px;object-fit:cover}
.ks-blog-grid article>div{padding:25px}.ks-blog-grid h3{font-size:1.2rem;line-height:1.3;margin:10px 0 14px}
.blog-date{font-size:.8rem;color:#67584a}.blog-pagination{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:32px}
.blog-pagination button:disabled{opacity:.45;cursor:default}[data-blog-card][hidden],[data-blog-controls][hidden]{display:none!important}
@media(max-width:800px){.ks-blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.ks-blog-grid{grid-template-columns:1fr}.ks-blog-grid article>img{height:200px}.blog-pagination{gap:12px}.blog-pagination .button{padding:12px 18px}}
.lead-form [data-form-step]{display:grid;gap:14px}.lead-form [data-form-step][hidden],.lead-form [data-form-next][hidden],.lead-form [data-form-back][hidden],.lead-form [data-form-progress][hidden]{display:none!important}
.form-progress{font-size:.8rem;font-weight:600;color:#685142;margin:0 0 12px}.form-back{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;padding:8px}.lead-form-two-step{min-height:0!important}

/* Approved pool marks carry their own geometry, without the old seal tile. */
.site-header .brand-mark-approved {width:40px;height:44px;background:none;clip-path:none;padding:0;display:block}
/* Legacy Keystone V4: full-bleed roof photograph, plum veil, floating form. */
.ks-hero-legacy {position:relative;display:block;overflow:hidden;background:var(--plum);color:#fff}
.ks-legacy-background {position:absolute;inset:0}
.ks-legacy-background>img {width:100%;height:100%;object-fit:cover}
.ks-legacy-background::after {content:"";position:absolute;inset:0;background:linear-gradient(96deg,rgba(46,11,19,.94),rgba(58,15,25,.78) 48%,rgba(58,15,25,.5))}
.ks-legacy-grid {position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:54px;align-items:center;padding-top:64px;padding-bottom:64px}
.ks-legacy-hero-copy {min-width:0}
.ks-legacy-hero-copy>.ks-seal {width:52px;height:58px;color:#e1ba73;margin-bottom:20px}
.ks-legacy-hero-copy h1 {font-size:clamp(34px,4.4vw,54px);font-weight:600;line-height:1.06;letter-spacing:-.027em;max-width:17ch;color:inherit}
.ks-legacy-hero-copy h1 {margin-bottom:20px}
.turnstile-slot:empty:not([data-turnstile-sitekey]) {display:none}
.ks-legacy-hero-copy>p:not(.eyebrow) {font-size:18px;line-height:1.55;max-width:46ch;color:inherit}
.ks-legacy-hero-copy .eyebrow {color:#e1ba73}
.ks-hero-legacy .ks-hero-form {min-width:0;width:100%}
.ks-hero-legacy .lead-form {width:100%;max-width:490px;min-width:0;margin-left:auto;color:var(--ink);text-align:left}
.ks-hero-legacy .ks-legacy-hero-note {font-size:15px;border-top:1px solid #ffffff44;padding-top:20px}
/* Legacy Keystone V3: photo left, copy and form together on bone. */
.ks-hero-photo-left {display:grid;grid-template-columns:.92fr 1.08fr;background:var(--paper);color:var(--ink)}
.ks-legacy-photo {position:relative;min-height:560px;margin:0}
.ks-legacy-photo>img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ks-legacy-right {padding:52px clamp(28px,4vw,64px);width:100%;max-width:720px;min-width:0}
.ks-hero-photo-left .ks-legacy-hero-copy h1 {font-size:clamp(32px,3.9vw,48px)}
.ks-hero-photo-left .ks-legacy-hero-copy>.ks-seal {display:none}
.ks-hero-photo-left .eyebrow {color:var(--brass-dark)}
.ks-hero-photo-left .ks-call {color:var(--accent)}
.ks-hero-photo-left .lead-form {margin:28px 0 0;max-width:550px}
@media(max-width:1100px){.ks-legacy-grid {gap:28px}.ks-legacy-right {padding:36px 28px}}
@media(max-width:900px){
 .ks-legacy-grid {grid-template-columns:1fr;gap:30px;padding-top:40px;padding-bottom:40px}
 .ks-hero-legacy .lead-form {margin-left:0;max-width:550px}
 .ks-hero-photo-left {grid-template-columns:1fr}
 .ks-legacy-photo {min-height:0;height:280px}
 .ks-legacy-right {max-width:700px;margin:auto}
 .ks-legacy-hero-copy h1 {max-width:20ch}
}
@media(max-width:700px){.ks-legacy-right {padding:32px 20px}.ks-legacy-hero-copy>.ks-seal {width:40px;height:46px;margin-bottom:12px}}
/* Other approved legacy compositions, selected for the section's purpose. */
.ks-standard-watermark {position:relative;overflow:hidden;background:var(--wash);color:var(--ink)}
.ks-standard-watermark .eyebrow {color:var(--brass-dark)}
.ks-standard-watermark .ks-ledger h3 {color:var(--accent)}
.ks-standard-watermark .ks-ledger article {border-color:var(--line)}
.ks-standard-watermark .ks-two {position:relative}
.ks-standard-watermark .ks-two>div:first-child>.ks-seal {position:absolute;left:-50px;bottom:-50px;width:370px;height:410px;opacity:.055;pointer-events:none}
.ks-standard-watermark .ks-two>div:first-child>p,.ks-standard-watermark .ks-two>div:first-child>h2 {position:relative}
.ks-process-nodes .ks-steps {display:grid;grid-template-columns:none;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;grid-template-rows:56px auto 1fr;border-top:0;text-align:center;column-gap:28px;row-gap:24px}
.ks-process-nodes .ks-steps article {display:grid;grid-template-rows:subgrid;grid-row:1/4;position:relative;min-width:0;padding:0;border:0}
.ks-process-nodes .ks-steps article:not(:last-child):before {content:"";position:absolute;top:28px;left:50%;right:calc(-50% - 28px);height:1px;background:var(--brass)}
.ks-process-nodes .ks-topic-icon,.ks-process-nodes .ks-step-number {position:relative;z-index:1;background:var(--paper);margin:0 auto;width:56px;height:56px;border:1px solid var(--brass);display:grid;place-items:center}
.ks-process-nodes .ks-step-heading h3,.ks-process-nodes .ks-step-copy p{margin:0}
.ks-final-photo {position:relative;isolation:isolate;overflow:hidden}
.ks-final-photo>.ks-legacy-background {z-index:-1}
.ks-final-photo>.container {position:relative}
.ks-services-residential-commercial .link-collection {grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.ks-services-residential-commercial .link-collection article {display:flex;flex-direction:column;background:var(--plum);color:white}
.ks-services-residential-commercial .link-collection article>img {height:280px;width:100%;object-fit:cover}
.ks-services-residential-commercial .link-collection article>h3,.ks-services-residential-commercial .link-collection article>p,.ks-services-residential-commercial .link-collection article>.text-link {margin-left:28px;margin-right:28px;color:white}
.ks-services-residential-commercial .link-collection article>h3 a {color:white}
.ks-services-residential-commercial .link-collection article>.text-link {color:#f3d49c;margin-top:auto;margin-bottom:28px}
@media(max-width:700px){.ks-services-residential-commercial .link-collection {grid-template-columns:1fr}}
.ks-table-section .container>.text-link{display:table;margin-top:20px}
/* A sequence follows one path. Long or narrow node sequences turn vertical. */
.ks-process-nodes .ks-steps:has(>article:nth-child(6)) {display:block;max-width:760px;margin-left:auto;margin-right:auto;text-align:left}
.ks-process-nodes .ks-steps:has(>article:nth-child(6))>article {display:grid;grid-template-rows:auto auto;grid-row:auto;grid-template-columns:56px minmax(0,1fr);column-gap:24px;row-gap:8px;padding:0 0 32px}
.ks-process-nodes .ks-steps:has(>article:nth-child(6))>article:last-child {padding-bottom:0}
.ks-process-nodes .ks-steps:has(>article:nth-child(6))>article:not(:last-child):before {left:27px;right:auto;top:56px;bottom:0;width:1px;height:auto}
.ks-process-nodes .ks-steps:has(>article:nth-child(6))>article>:first-child {grid-column:1;grid-row:1/3;top:0;left:0;margin:0}
.ks-process-nodes .ks-steps:has(>article:nth-child(6)) .ks-step-heading,.ks-process-nodes .ks-steps:has(>article:nth-child(6)) .ks-step-copy {grid-column:2}
.ks-process-nodes .ks-steps:has(>article:nth-child(6)) h3,.ks-process-nodes .ks-steps:has(>article:nth-child(6)) p {margin:0}
@media(max-width:1100px){
 .ks-process-nodes .ks-steps {display:block;max-width:760px;margin-left:auto;margin-right:auto;text-align:left}
 .ks-process-nodes .ks-steps>article {display:grid;grid-template-rows:auto auto;grid-row:auto;grid-template-columns:56px minmax(0,1fr);column-gap:24px;row-gap:8px;padding:0 0 32px}
 .ks-process-nodes .ks-steps>article:last-child {padding-bottom:0}
 .ks-process-nodes .ks-steps>article:not(:last-child):before {left:27px;right:auto;top:56px;bottom:0;width:1px;height:auto}
 .ks-process-nodes .ks-steps>article>:first-child {grid-column:1;grid-row:1/3;top:0;left:0;margin:0}
 .ks-process-nodes .ks-step-heading,.ks-process-nodes .ks-step-copy {grid-column:2}
 .ks-process-nodes .ks-steps h3,.ks-process-nodes .ks-steps p {margin:0}
}
@media(min-width:1101px) and (max-width:1280px){
 .ks-process-nodes .ks-steps:has(>article:nth-child(5):last-child){display:block;max-width:760px;margin-inline:auto;text-align:left}
 .ks-process-nodes .ks-steps:has(>article:nth-child(5):last-child)>article{grid-template-columns:56px minmax(0,1fr);grid-template-rows:auto auto;grid-row:auto;gap:8px 24px;padding:0 0 32px}
 .ks-process-nodes .ks-steps:has(>article:nth-child(5):last-child)>article:not(:last-child):before{left:27px;right:auto;top:56px;bottom:0;width:1px;height:auto}
 .ks-process-nodes .ks-steps:has(>article:nth-child(5):last-child)>article>:first-child{grid-column:1;grid-row:1/3;top:0;left:0;margin:0}
 .ks-process-nodes .ks-steps:has(>article:nth-child(5):last-child) :is(.ks-step-heading,.ks-step-copy){grid-column:2}
 .ks-process-nodes .ks-steps:has(>article:nth-child(5):last-child)>article:last-child{padding-bottom:0}
}
@media(max-width:900px){
 .site-header .header-inner nav.open{align-items:stretch;text-align:left;gap:0}
 .site-header .header-inner nav.open>a{width:100%}
 .site-header .header-inner nav.open .nav-parent{justify-content:space-between}
}

/* Material spec catalog and split FAQ from the approved family source. */
.ks-material-catalog {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:40px}
.ks-material-catalog>article {background:#fff;border:1px solid var(--line);border-radius:5px;overflow:hidden;min-width:0}
.ks-material-catalog>article>img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.ks-material-content{padding:24px 22px}
.ks-material-content h3{font-size:23px;line-height:1.2;margin:10px 0}
.ks-material-content p{font-size:16px;line-height:1.6}
.ks-material-content dl{margin:18px 0 0;border-top:1px solid var(--line)}
.ks-material-content dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:14px;padding:12px 0;border-bottom:1px dashed var(--line);font-size:14px;line-height:1.5}
.ks-material-content dt{color:var(--muted)}
.ks-material-content dd{font-weight:600;text-align:right;margin:0}
.ks-material-makers{margin-top:32px;border-top:1px solid var(--line);padding-top:22px}
.ks-material-makers ul{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:14px 0}
.ks-material-makers li{background:var(--wash);border-radius:3px;padding:9px 14px;font-size:14px;font-weight:600}
.ks-material-makers p{font-size:14px}
.ks-faq-split-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:start}
.ks-faq-split header h2{max-width:20ch}
.ks-faq-split header p{max-width:40ch}
.ks-faq-split details p{max-width:62ch}
@media(max-width:850px){.ks-material-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.ks-faq-split-grid{gap:32px}}
@media(max-width:700px){.ks-material-catalog,.ks-material-catalog:has(>article:nth-child(2):last-child),.ks-material-catalog:has(>article:nth-child(4):last-child),.ks-faq-split-grid{grid-template-columns:1fr}.ks-faq-split-grid{gap:20px}.ks-material-content{padding:24px 20px}}

/* Optional faithful legacy compositions. Original estimate.doc and neighborhood
   survey in blocks-keystone.php / styles-keystone.php. Existing variants stay
   unchanged; images and all public assertions belong to the authored page. */
.ks-estimate-photo {background:color-mix(in srgb,var(--paper) 92%,var(--accent) 3%)}
.ks-estimate-photo-grid {display:grid;grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);gap:56px;align-items:start}
.ks-estimate-photo-grid>figure {margin:0;align-self:center;min-width:0}
.ks-estimate-photo-grid>figure img {width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px;box-shadow:0 26px 50px -30px rgba(37,18,23,.5)}
.ks-estimate-photo-copy {min-width:0}
.ks-estimate-photo-copy>h2 {font-size:clamp(28px,3.4vw,38px);max-width:25ch;margin-top:15px}
.ks-estimate-photo-copy>p:not(.eyebrow) {max-width:46ch;font-size:17px;line-height:1.6;margin:15px 0 26px}
.ks-estimate-paper {background:#fff;border:1px solid var(--line);border-top:3px solid var(--brass);border-radius:6px;padding:30px 32px;box-shadow:0 22px 44px -30px rgba(37,18,23,.4)}
.ks-estimate-paper-heading {display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.ks-estimate-paper-heading h3 {font-size:20px;line-height:1.3;margin:0}
.ks-estimate-paper-heading .ks-seal {width:30px;height:34px;flex:none}
.ks-estimate-paper-row {padding:17px 0;border-bottom:1px dashed var(--line)}
.ks-estimate-paper-row h4 {font:700 15px/1.4 var(--body-font);margin:0}
.ks-estimate-paper-row p {font-size:15px;line-height:1.55;margin:5px 0 0}
.ks-estimate-paper-note {margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.ks-estimate-paper-note p {font-size:13px;line-height:1.6;margin:0}
.ks-profile-photo-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:48px;align-items:start}
.ks-profile-photo-grid>div {min-width:0}
.ks-profile-photo-grid>div>h2 {max-width:25ch}
.ks-profile-photo-grid>figure {margin:0;min-width:0}
.ks-profile-photo-grid>figure img {width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px;box-shadow:0 26px 50px -30px rgba(37,18,23,.5)}
.ks-profile-factplate {margin-top:26px;background:#fff;border:1px solid var(--line);border-top:2px solid var(--brass);border-radius:6px;padding:24px 22px}
.ks-profile-label {font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brass-dark);margin:0 0 16px}
.ks-profile-factplate dl {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0}
.ks-profile-factplate dl>div {border-top:1px solid var(--line);padding-top:11px}
.ks-profile-factplate dt {font-size:12px;line-height:1.35;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.ks-profile-factplate dd {font-size:15px;font-weight:700;line-height:1.4;margin:4px 0 0}
.ks-profile-factplate>p:not(.ks-profile-label) {font-size:13px;line-height:1.6;margin:18px 0 0}
.ks-profile-photo-grid figcaption,.ks-estimate-photo-grid figcaption {font-size:13px;line-height:1.5;color:var(--muted);margin-top:12px}
@media(max-width:900px){.ks-estimate-photo-grid{gap:32px}.ks-estimate-paper{padding:24px}.ks-profile-photo-grid{gap:30px}}
@media(max-width:700px){.ks-estimate-photo-grid,.ks-profile-photo-grid{grid-template-columns:1fr}.ks-estimate-photo-grid>figure{order:2}.ks-estimate-photo-grid>figure img,.ks-profile-photo-grid>figure img{aspect-ratio:4/3}.ks-profile-factplate dl{grid-template-columns:1fr}.ks-estimate-paper{padding:24px 20px}}

/* Full-width scope ledger recovered from the approved Keystone service pages.
   Selected explicitly for developed assembly explanations, not every list. */
.ks-detail-ledger {background:#fff}
.ks-detail-ledger .ks-detail-grid {display:block}
.ks-detail-ledger .ks-detail-grid>header {max-width:800px;margin-bottom:34px}
.ks-detail-ledger .ks-detail-rows {background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--brass);border-radius:6px;padding:4px 30px;box-shadow:0 16px 30px rgba(44,11,19,.05)}
.ks-detail-ledger .ks-detail-rows>div {display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:40px;padding:27px 0;border-bottom:1px solid var(--line)}
.ks-detail-ledger .ks-detail-rows>div:last-child {border-bottom:0}
.ks-detail-ledger .ks-detail-rows dt {font-size:1.15rem;line-height:1.4}
.ks-detail-ledger .ks-detail-rows dd {margin:0}
.ks-detail-ledger .ks-detail-rows dd p {margin:0;line-height:1.65}
@media(max-width:700px){.ks-detail-ledger .ks-detail-rows {padding:0 20px}.ks-detail-ledger .ks-detail-rows>div {grid-template-columns:1fr;gap:14px;padding:24px 0}}

.ks-detail-ledger h2 {max-width:26ch}
.ks-detail-ledger .ks-detail-rows dt {align-self:start}
.ks-process-steps {background:var(--paper)}
.ks-process-steps .container>.eyebrow,.ks-process-steps .container>h2,.ks-process-steps .container>p {max-width:800px;margin-left:auto;margin-right:auto;text-align:center}
.ks-process-steps .ks-steps:has(>article:nth-child(4):last-child) {grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--accent);margin-top:44px}
.ks-process-steps .ks-steps:has(>article:nth-child(4):last-child)>article {padding:28px 25px;border-right:1px solid var(--line)}
.ks-process-steps .ks-steps:has(>article:nth-child(4):last-child)>article:last-child {border-right:0}
.ks-process-steps .ks-steps:has(>article:nth-child(5):last-child) {grid-template-columns:repeat(5,minmax(0,1fr));gap:28px}
.ks-process-steps .ks-steps:has(>article:nth-child(6)) {grid-template-columns:1fr;max-width:760px;margin-left:auto;margin-right:auto;gap:0}
.ks-process-steps .ks-steps:has(>article:nth-child(6))>article {position:relative;padding:24px 0 24px 70px;border-right:0;border-top:1px solid var(--line)}
.ks-process-steps .ks-steps:has(>article:nth-child(6))>article>:first-child {position:absolute;left:0;top:24px;margin:0}
@media(min-width:701px) and (max-width:1100px){
 .ks-process-steps .ks-steps,.ks-process-steps .ks-steps:has(>article:nth-child(4):last-child),.ks-process-steps .ks-steps:has(>article:nth-child(5):last-child) {grid-template-columns:1fr;max-width:760px;margin-left:auto;margin-right:auto;gap:0}
 .ks-process-steps .ks-steps>article,.ks-process-steps .ks-steps:has(>article:nth-child(4):last-child)>article {position:relative;padding:24px 0 24px 70px;border-right:0;border-top:1px solid var(--line)}
 .ks-process-steps .ks-steps>article>:first-child {position:absolute;left:0;top:24px;margin:0}
}
@media(max-width:700px){.ks-process-steps .ks-steps:has(>article:nth-child(5):last-child){grid-template-columns:1fr;gap:0}}
@media(max-width:700px){.ks-process-steps .ks-steps:has(>article:nth-child(4):last-child){grid-template-columns:1fr}.ks-process-steps .ks-steps:has(>article:nth-child(4):last-child)>article{padding:24px 0 24px 55px;border-right:0;position:relative}}

/* Compact the original V3 without hiding fields or changing its photo-left identity. */
.ks-hero-photo-left .ks-legacy-right {padding:30px clamp(24px,3vw,48px)}
.ks-hero-photo-left .ks-legacy-hero-copy h1 {font-size:clamp(32px,3.1vw,42px);margin-bottom:12px;max-width:22ch}
.ks-hero-photo-left .ks-legacy-hero-copy .eyebrow {margin-bottom:12px}
.ks-hero-photo-left .ks-legacy-hero-copy>p:not(.eyebrow) {font-size:17px;line-height:1.5;margin-bottom:12px;max-width:52ch}
.ks-hero-photo-left .ks-call-row {margin-top:12px;margin-bottom:0;gap:0}
.ks-hero-photo-left .lead-form {margin-top:18px;padding:22px 26px}
.ks-hero-photo-left .lead-form .form-intro {margin-bottom:14px}
.ks-final-centered .ks-two>div:first-child>p {margin-left:auto;margin-right:auto}
.ks-final-centered .ks-two>div:first-child {width:100%}
.ks-final-split {padding-top:56px;padding-bottom:56px}
.ks-final-split .ks-two {gap:48px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.ks-final-split .ks-two>div>.ks-seal {width:38px;height:44px}
.ks-final-split .ks-two>div>h2 {font-size:clamp(30px,3vw,40px);line-height:1.12;max-width:23ch}
.ks-final-split .ks-two>div>.eyebrow {margin-top:18px;margin-bottom:18px}
.ks-final-split .phone-large {margin-top:12px}
@media(max-width:800px){.ks-final-split .ks-two {grid-template-columns:1fr;gap:28px}.ks-final-split {padding-top:36px;padding-bottom:36px}.ks-final-split .ks-two>div>h2 {max-width:25ch}.ks-hero-photo-left .ks-legacy-right {padding:26px 20px}.ks-hero-photo-left .lead-form {padding:22px 20px}.ks-hero-photo-left .ks-legacy-photo {height:220px}}

/* Approved Keystone systems matrix: concise categories above developed answers. */
.ks-system-matrix {background:var(--wash)}
.ks-system-matrix header {max-width:820px;margin-bottom:36px}
.ks-system-matrix header h2 {max-width:25ch}
.ks-system-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.ks-system-photo {margin:-28px -30px 24px;overflow:hidden;border-bottom:1px solid var(--line)}
.ks-system-photo img {display:block;width:100%;height:250px;object-fit:cover}
.ks-system-grid article {background:var(--paper);padding:28px 30px;border:1px solid var(--line);border-top:2px solid var(--brass);border-radius:4px;display:flex;flex-direction:column}
.ks-system-grid article .eyebrow {font-size:11px;color:var(--brass-dark);margin-bottom:14px}
.ks-system-grid article h3 {font-size:23px;margin-bottom:12px}
.ks-system-grid article p:not(.eyebrow) {font-size:16px;line-height:1.65}
.ks-system-grid article .text-link {margin-top:auto;padding-top:10px;align-self:flex-start}
@media(max-width:900px){.ks-system-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.ks-system-grid,.ks-system-grid:has(>article:nth-child(4):last-child),.ks-system-grid:has(>article:nth-child(2):last-child){grid-template-columns:1fr}.ks-system-grid article{padding:24px}.ks-system-photo{margin:-24px -24px 22px}.ks-system-photo img{height:205px}}

/* September 7 composition repairs: authored card counts and navigation space. */
.ks-services-photo .link-collection article:not(:has(>img)){align-self:start;padding-top:28px}
.ks-services-registry .link-collection article:not(:has(>img)){align-self:start}
@media(min-width:1101px){
 :is(.ks-service-grid,.ks-services-photo .link-collection,.ks-services-registry .link-collection,.ks-system-grid,.ks-material-catalog){grid-template-columns:repeat(6,minmax(0,1fr))}
 :is(.ks-service-grid,.ks-services-photo .link-collection,.ks-services-registry .link-collection,.ks-system-grid,.ks-material-catalog)>article{grid-column:span 2}
 :is(.ks-service-grid,.ks-services-photo .link-collection,.ks-services-registry .link-collection,.ks-system-grid,.ks-material-catalog):has(>article:last-child:nth-child(3n + 2))>article:nth-last-child(-n + 2),
 :is(.ks-service-grid,.ks-services-photo .link-collection,.ks-services-registry .link-collection,.ks-system-grid,.ks-material-catalog):has(>article:last-child:nth-child(3n + 1))>article:nth-last-child(-n + 4){grid-column:span 3}
 :is(.ks-service-grid,.ks-services-photo .link-collection,.ks-services-registry .link-collection,.ks-system-grid,.ks-material-catalog)>article:only-child{grid-column:1/-1}
}
@media(min-width:701px) and (max-width:1100px){
 :is(.ks-service-grid,.ks-services-photo .link-collection,.ks-services-registry .link-collection,.ks-system-grid,.ks-material-catalog){grid-template-columns:repeat(2,minmax(0,1fr))}
 :is(.ks-service-grid,.ks-services-photo .link-collection,.ks-services-registry .link-collection,.ks-system-grid,.ks-material-catalog)>article:last-child:nth-child(odd){grid-column:1/-1}
 .ks-standard-columns .ks-ledger:has(>article:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
}
.site-header .header-inner.container{max-width:1320px}
.site-header #main-nav>a,.site-header .nav-parent>a{white-space:nowrap}
.site-header .brand{min-width:0}
.site-header .brand-mark-approved{flex-shrink:0}
@media(min-width:901px) and (max-width:1200px){
 .site-header .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;min-height:82px}
 .site-header .brand{font-size:1.1rem;padding:16px 0}
 .site-header .header-actions{display:none}
 .site-header .menu-toggle{display:block;grid-column:2;grid-row:1;padding:10px;background:transparent;border:0;color:var(--accent);white-space:nowrap}
 .site-header .header-inner nav{display:none;grid-column:1/-1;grid-row:2;width:100%;min-width:0;flex-direction:column;align-items:stretch;gap:0;padding:15px 0}
 .site-header .header-inner nav.open{display:flex;align-items:stretch;text-align:left;gap:0}
 .site-header .header-inner nav a{padding:12px 0}
 .site-header .header-inner nav.open>a{width:100%}
 .site-header .nav-parent{justify-content:space-between;border-top:1px solid var(--line)}
 .site-header .nav-parent>a{flex:1;border:0}
 .site-header .nav-disclosure{width:48px}
 .site-header .header-inner .nav-panel{position:static;max-width:none;min-width:0;box-shadow:none;border-top:0;padding:4px 16px 14px;background:#fff}
}
:root{--accent:#82202F;--plum:#3F1019;--brass:#C79034;--brass-dark:#805715;--paper:#F8F4EF;--wash:#F4E7E8;--heading-font:"Familjen Grotesk","Segoe UI",sans-serif;--body-font:"Albert Sans","Segoe UI",sans-serif}