:root {
  color-scheme: light;
  --paper: #f8f4ed;
  --paper-deep: #f1e9de;
  --surface: #fffdf9;
  --ink: #17171a;
  --muted: #676267;
  --line: #d9d0c5;
  --accent: #493b88;
  --accent-dark: #35296e;
  --accent-soft: #e7e1f3;
  --danger: #9a2f2f;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  font-family: var(--sans);
  background: var(--paper);
  color: var(--ink);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--paper); color: var(--ink); }
a { color: inherit; text-underline-offset: .24em; text-decoration-thickness: .08em; }
img { display: block; max-width: 100%; }
p, li { font-size: 1rem; line-height: 1.7; }

.shell { width: min(100% - 48px, 1240px); margin-inline: auto; }
.site-header { position: relative; z-index: 10; border-bottom: 1px solid transparent; }
.header-inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { font: 500 clamp(1.55rem, 2.4vw, 2rem)/1 var(--serif); text-decoration: none; letter-spacing: -.025em; }
.site-nav { display: flex; align-items: center; gap: clamp(22px, 3vw, 44px); }
.site-nav a { font-size: .94rem; text-decoration: none; }
.site-nav a:hover, .site-nav a:focus-visible { color: var(--accent); }
.nav-toggle { display: none; }

.site-main { min-height: calc(100vh - 190px); }
.hero { min-height: min(760px, calc(100vh - 88px)); display: grid; grid-template-columns: minmax(320px, .83fr) minmax(520px, 1.17fr); align-items: center; gap: clamp(36px, 5vw, 84px); padding-block: 60px 72px; }
.hero-copy { position: relative; z-index: 2; }
.hero h1 { max-width: 8.8ch; margin: 0; font: 500 clamp(4.4rem, 7.2vw, 7.4rem)/.88 var(--serif); letter-spacing: -.055em; }
.hero .lede { max-width: 26ch; margin: 32px 0 0; font-size: clamp(1.15rem, 1.5vw, 1.42rem); line-height: 1.55; }
.hero-actions { margin-top: 32px; display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; padding: 0 26px; border-radius: 9px; background: var(--accent); color: #fff; font-weight: 600; text-decoration: none; transition: transform .18s ease, background .18s ease; }
.button:hover, .button:focus-visible { background: var(--accent-dark); transform: translateY(-2px); }
.quiet-note { color: var(--muted); font-size: .94rem; }
.hero-media { position: relative; min-height: 560px; align-self: stretch; overflow: hidden; border-radius: 2px; background: #eee5d8; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; }
.hero-media::after { content: ""; position: absolute; inset: auto auto 38px -68px; width: 285px; height: 88px; background: var(--paper); mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 90'%3E%3Cpath d='M4 47h10l7-21 10 43 12-55 12 67 12-57 12 34 12-46 12 70 12-57 12 31 12-44 12 64 12-54 12 38 12-49 12 67 12-48 12 29 12-39 12 51 12-43 12 21h10' fill='none' stroke='black' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat; opacity: .92; }

.band { border-top: 1px solid var(--line); }
.steps { padding-block: 96px 110px; }
.section-title { max-width: 18ch; margin: 0 auto 64px; text-align: center; font: 500 clamp(3rem, 5vw, 5rem)/1 var(--serif); letter-spacing: -.045em; }
.step-list { display: grid; grid-template-columns: repeat(3, 1fr); }
.step { min-height: 260px; padding: 0 clamp(26px, 4vw, 58px); text-align: center; border-left: 1px solid var(--line); }
.step:first-child { border-left: 0; }
.step-number { width: 39px; height: 39px; margin: 0 auto 38px; display: grid; place-items: center; border-radius: 50%; background: var(--paper-deep); font-weight: 600; }
.step-icon { width: 88px; height: 88px; margin: 0 auto 30px; color: var(--accent); }
.step h3 { margin: 0; font-size: 1.18rem; font-weight: 600; }
.step p { max-width: 25ch; margin: 12px auto 0; color: var(--muted); }

.trust { padding-block: 108px; display: grid; grid-template-columns: 1fr .8fr; align-items: center; gap: 90px; }
.trust h2 { max-width: 10ch; margin: 0; font: 500 clamp(3.6rem, 5.8vw, 6rem)/.95 var(--serif); letter-spacing: -.05em; }
.trust p { max-width: 52ch; color: var(--muted); }
.text-link { color: var(--accent-dark); font-weight: 600; text-decoration: none; }
.text-link:hover, .text-link:focus-visible { text-decoration: underline; }
.lock-art { min-height: 330px; display: grid; place-items: center; position: relative; }
.lock-art::before { content: ""; width: 280px; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #f4d9ca, #efe7dd 72%); }
.lock { position: absolute; width: 120px; height: 140px; overflow: visible; }
.lock-shackle, .lock-body { fill: none; stroke: var(--accent); stroke-width: 6; vector-effect: non-scaling-stroke; }
.lock-shackle { stroke-linecap: round; }
.lock-body { stroke-linejoin: round; }
.lock-keyhole { fill: var(--accent); }

.site-footer { border-top: 1px solid var(--line); }
.footer-inner { min-height: 118px; display: flex; justify-content: space-between; align-items: center; gap: 32px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 28px; }
.footer-links a { font-size: .88rem; text-decoration: none; }

.legal-shell { padding-block: 78px 120px; display: grid; grid-template-columns: minmax(0, 720px) 250px; justify-content: center; gap: 86px; }
.legal-copy h1 { margin: 0; font: 500 clamp(3.6rem, 6vw, 6rem)/.95 var(--serif); letter-spacing: -.05em; }
.effective { margin: 18px 0 30px; color: var(--accent); font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.legal-copy .intro { font-size: 1.12rem; line-height: 1.65; }
.legal-copy section { padding-top: 14px; scroll-margin-top: 26px; }
.legal-copy h2 { margin: 48px 0 10px; font: 500 2rem/1.1 var(--serif); letter-spacing: -.025em; }
.legal-copy ul { padding-left: 21px; }
.legal-copy li + li { margin-top: 7px; }
.legal-aside { align-self: start; position: sticky; top: 38px; padding-left: 26px; border-left: 1px solid var(--line); }
.legal-aside strong { color: var(--accent); font-size: .74rem; letter-spacing: .11em; text-transform: uppercase; }
.legal-aside ol { margin: 24px 0 0; padding-left: 20px; }
.legal-aside li { padding-left: 5px; font-size: .88rem; line-height: 1.45; }
.legal-aside li + li { margin-top: 17px; }
.legal-aside a { text-decoration: none; }
.legal-aside a:hover, .legal-aside a:focus-visible { color: var(--accent); }
.table-wrap { overflow-x: auto; margin-top: 28px; }
table { width: 100%; min-width: 700px; border-collapse: collapse; background: var(--surface); }
th, td { padding: 16px; text-align: left; vertical-align: top; border: 1px solid var(--line); font-size: .9rem; line-height: 1.5; }
th { font-weight: 600; }
.contact-list { display: grid; grid-template-columns: max-content 1fr; gap: 12px 26px; margin-top: 28px; }
.contact-list dt { font-weight: 600; }
.contact-list dd { margin: 0; }
.handoff { min-height: 66vh; display: grid; place-items: center; text-align: center; }
.handoff-inner { max-width: 620px; padding-block: 80px; }
.handoff h1, .not-found h1 { margin: 0; font: 500 clamp(3.4rem, 7vw, 6rem)/.95 var(--serif); letter-spacing: -.05em; }
.handoff p, .not-found p { color: var(--muted); }
.not-found { min-height: 64vh; display: grid; place-items: center; text-align: center; }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; padding-top: 32px; }
  .hero h1 { max-width: 9ch; font-size: clamp(4rem, 13vw, 7rem); }
  .hero-media { min-height: 480px; }
  .trust { grid-template-columns: 1fr; gap: 30px; }
  .legal-shell { grid-template-columns: minmax(0, 720px); }
  .legal-aside { display: none; }
}

@media (max-width: 680px) {
  .shell { width: min(100% - 32px, 1240px); }
  .header-inner { min-height: 72px; }
  .site-nav { gap: 18px; }
  .site-nav a:first-child { display: none; }
  .hero { min-height: auto; padding-bottom: 54px; }
  .hero h1 { font-size: clamp(3.65rem, 18vw, 5.2rem); }
  .hero .lede { margin-top: 24px; }
  .hero-media { min-height: 410px; margin-inline: -16px; }
  .hero-media img { object-position: 64% center; }
  .hero-media::after { display: none; }
  .steps { padding-block: 72px 78px; }
  .section-title { text-align: left; margin-bottom: 44px; }
  .step-list { grid-template-columns: 1fr; }
  .step { min-height: 0; padding: 34px 0; border-left: 0; border-top: 1px solid var(--line); text-align: left; display: grid; grid-template-columns: 44px 74px 1fr; align-items: center; gap: 16px; }
  .step:first-child { border-top: 0; }
  .step-number, .step-icon { margin: 0; }
  .step-icon { width: 66px; height: 66px; }
  .step p { grid-column: 3; margin: 6px 0 0; }
  .trust { padding-block: 78px; }
  .lock-art { min-height: 270px; }
  .footer-inner { padding-block: 30px; align-items: flex-start; flex-direction: column; }
  .footer-links { gap: 16px 24px; }
  .legal-shell { padding-block: 52px 90px; }
  .legal-copy h2 { font-size: 1.7rem; }
  .contact-list { grid-template-columns: 1fr; gap: 4px; }
  .contact-list dd + dt { margin-top: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button { transition: none; }
}
