/* Kompass theme styles. Mirrors the approved layout sketch. */

@font-face {
  font-family: 'Kompass Newsreader';
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url('../fonts/newsreader-latin-var.woff') format('woff');
}

@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url('../fonts/figtree-latin-var.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --k-navy: #12233D;
  --k-cream: #FAF5E5;
  --k-sand: #F1E9D0;
  --k-card: #FFFBF0;
  --k-line: #E6DCBE;
  --k-muted: #3B4F6B;
  --k-soft: #AEB9CC;
  --k-gutter: clamp(16px, 4vw, 32px);
  --k-accent: #E3A72F;
  --k-accent-ink: #12233D;
  --k-head: 'Kompass Newsreader', Georgia, 'Times New Roman', serif;
  --k-hw: 600;
  --k-hls: -0.01em;
  --k-body: 'Figtree', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { overflow-wrap: break-word; }

body {
  margin: 0;
  background: var(--k-cream);
  color: var(--k-navy);
  font-family: var(--k-body);
  font-size: clamp(16px, 0.4vw + 14.4px, 17px);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

.wp-site-blocks > * { margin-block: 0; }

/* ---------- base typography ---------- */
h1, h2, h3, h4 {
  font-family: var(--k-head);
  font-weight: var(--k-hw);
  letter-spacing: var(--k-hls);
  line-height: 1.14;
  margin: 0;
  text-wrap: balance;
  color: inherit;
}
p, ul, ol, figure { margin: 0; }
a { color: inherit; text-underline-offset: 3px; }
img, svg { max-width: 100%; }
:focus-visible { outline: 3px solid var(--k-navy); outline-offset: 2px; }
.k-nv :focus-visible, .k-foot :focus-visible { outline-color: var(--k-accent); }

.k-skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--k-navy); color: var(--k-cream); padding: 10px 16px; border-radius: 8px; font-weight: 600; text-decoration: none; }
.k-skip:focus { top: 12px; }

/* ---------- layout helpers ---------- */
.k-w { max-width: 1120px; margin-inline: auto; padding-inline: var(--k-gutter); width: 100%; }
.k-s { padding-block: clamp(56px, 8vw, 96px); }
.k-s--tight { padding-block: clamp(48px, 7vw, 80px); }
.k-nv { background: var(--k-navy); color: var(--k-cream); }
.k-sand { background: var(--k-sand); }
.k-eb { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--k-muted); margin-bottom: 12px; }
.k-nv .k-eb { color: var(--k-soft); }
.k-lead { font-size: clamp(17px, 2vw, 20px); color: var(--k-muted); line-height: 1.55; }
.k-nv .k-lead { color: #DCE2EC; }
h2.k-t { font-size: clamp(28px, 4vw, 40px); margin-bottom: 36px; }
.k-nv h2 { font-size: clamp(30px, 4.4vw, 42px); }
.k-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 20px; }
/* three cards: three across on wide screens, one under the other below that (no 2 + 1 split) */
.k-g--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 899px) { .k-g--3 { grid-template-columns: minmax(0, 1fr); } }
.k-g--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
/* the four steps: four across, two by two on tablets, stacked on phones */
.k-g--steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; }
@media (max-width: 1000px) { .k-g--steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .k-g--steps { grid-template-columns: minmax(0, 1fr); gap: 32px; } }
.k-g > * { margin: 0; min-width: 0; }
.k-head-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px 32px; margin-bottom: 36px; }
.k-head-row h2.k-t { margin-bottom: 0; }
.k-note { margin-top: 24px; color: var(--k-muted); }
.k-center { text-align: center; }
.k-center .wp-block-buttons { justify-content: center; }
.k-mt { margin-top: 44px; }

.k-card { background: var(--k-card); border: 1px solid var(--k-line); border-radius: 16px; padding: 28px; min-width: 0; }
.k-card h3 { font-size: 22px; margin-bottom: 16px; }
.k-card p + p { margin-top: 10px; }
.k-card .k-foot-note { margin-top: 18px; font-size: 14px; color: var(--k-muted); }

/* ---------- buttons ---------- */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.wp-block-button { margin: 0; }
.k-btn,
.wp-block-button .wp-block-button__link {
  display: inline-block;
  padding: 14px 24px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 1em;
  line-height: 1.4;
  text-decoration: none;
  background: var(--k-accent);
  color: var(--k-accent-ink);
  border: 2px solid var(--k-accent);
  cursor: pointer;
  font-family: inherit;
}
.wp-block-button.is-style-outline > .wp-block-button__link {
  background: transparent;
  color: var(--k-navy);
  border: 2px solid var(--k-navy);
}
.k-nv .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--k-cream); border-color: var(--k-cream); }
@media (prefers-reduced-motion: no-preference) {
  .k-btn, .wp-block-button .wp-block-button__link { transition: transform .12s; }
  .k-btn:hover, .wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); }
}
.k-more { font-weight: 600; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; text-decoration-color: var(--k-accent); }
.k-more a { text-decoration: inherit; }

/* ---------- header ---------- */
.k-top { background: var(--k-cream); }
.k-top .k-top__in { padding-inline: max(var(--k-gutter), env(safe-area-inset-left, 0px)) max(var(--k-gutter), env(safe-area-inset-right, 0px)) !important; }
.k-top__in { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px 28px; padding-block: 20px; }
.k-logo { display: inline-flex; align-items: center; gap: 10px; font-family: var(--k-head); font-weight: var(--k-hw); letter-spacing: var(--k-hls); font-size: 26px; text-decoration: none; color: var(--k-navy); line-height: 1; }
.k-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.k-nav a:not(.k-btn) { text-decoration: none; font-weight: 500; padding-block: 4px; border-bottom: 2px solid transparent; }
.k-nav a:not(.k-btn):hover { border-bottom-color: var(--k-accent); }
.k-nav a[aria-current="page"]:not(.k-btn) { border-bottom-color: var(--k-accent); }
.k-lang { display: inline-flex; border: 1px solid var(--k-navy); border-radius: 8px; overflow: hidden; font-size: 14px; font-weight: 600; line-height: 1.2; }
.k-lang > * { padding: 6px 12px; text-decoration: none; border: 0 !important; }
.k-nav .k-lang > *, .k-nav .k-lang a:not(.k-btn) { padding: 6px 12px; font-size: 14px; font-weight: 600; line-height: 1.2; border: 0 !important; }
.k-lang .on { background: var(--k-navy); color: var(--k-cream); }
.k-lang a:hover { background: var(--k-sand); }
.k-burger { display: none; }
.lgm { flex: none; --lg-ink: var(--k-navy); --lg-bg: var(--k-cream); }
.k-nv .lgm, .k-foot .lgm { --lg-ink: var(--k-cream); --lg-bg: var(--k-navy); }

@media (max-width: 860px) {
  .js .k-top__in { flex-wrap: nowrap; }
  .js .k-burger { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--k-navy); border-radius: 10px; background: transparent; color: var(--k-navy); cursor: pointer; padding: 0; }
  .js .k-burger span, .js .k-burger span::before, .js .k-burger span::after { display: block; width: 20px; height: 2px; background: currentColor; border-radius: 2px; position: relative; content: ""; }
  .js .k-burger span::before { position: absolute; top: -6px; left: 0; }
  .js .k-burger span::after { position: absolute; top: 6px; left: 0; }
  .js .k-top__in { position: relative; }
  .js .k-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; z-index: 20; background: var(--k-cream); flex-direction: column; align-items: flex-start; gap: 6px; padding: 8px var(--k-gutter) 24px; border-bottom: 1px solid var(--k-line); box-shadow: 0 16px 24px -16px rgba(18,35,61,.25); }
  .js .k-nav.is-open { display: flex; }
  .js .k-nav a:not(.k-btn) { padding-block: 10px; font-size: 18px; }
  .js .k-nav .k-btn { margin-top: 8px; }
  .js .k-nav .k-lang > *, .js .k-nav .k-lang a:not(.k-btn) { padding: 10px 18px; font-size: 16px; }
}

/* ---------- hero ---------- */
.k-hero__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: clamp(32px, 5vw, 56px); align-items: center; padding-block: 40px 88px; }
.k-hero__grid > * { margin: 0; min-width: 0; }
.k-hero h1 { font-size: clamp(38px, 6vw, 62px); margin-bottom: 24px; }
.k-hero .k-lead { margin-bottom: 32px; }
.k-hero .k-facts { margin-top: 28px; }
.k-facts { display: flex; flex-wrap: wrap; gap: 8px 24px; padding: 0; list-style: none; font-size: 15px; font-weight: 500; color: var(--k-muted); }
.k-facts li { display: flex; align-items: center; gap: 8px; margin: 0; }
.k-facts li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--k-accent); box-shadow: 0 0 0 1px var(--k-navy); flex: none; }
.wp-block-image.k-photo { margin: 0; }
.wp-block-image.k-photo img { display: block; width: 100%; height: auto; border-radius: 16px; }

/* ---------- pledge / method band ---------- */
.k-pledge { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: clamp(24px, 5vw, 64px); align-items: start; }
.k-pledge > * { margin: 0; min-width: 0; }
.k-pledge h2 { font-size: clamp(28px, 4vw, 40px); }
.k-pledge p { color: #DCE2EC; max-width: 56ch; }
.k-pledge p + p { margin-top: 14px; }
.k-pledge .k-bigp { font-size: clamp(17px, 2vw, 20px); }
.k-pledge .wp-block-buttons { margin-top: 28px; }

/* ---------- steps ---------- */
.k-n { display: block; font-family: var(--k-head); font-weight: var(--k-hw); font-size: 40px; line-height: 1; color: var(--k-muted); margin-bottom: 10px; }
.k-step h3 { font-size: 21px; margin-bottom: 6px; }

/* ---------- prices ---------- */
.k-pricerow { display: flex; align-items: baseline; gap: .3em; margin: 12px 0; flex-wrap: wrap; }
.k-price { font-size: 36px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.2; }
.k-unit { font-size: 16px; }

/* ---------- quote ---------- */
.k-quote { max-width: 800px; margin-inline: auto; text-align: center; }
.k-quote h2 { font-size: clamp(24px, 3.4vw, 34px); margin-bottom: 20px; }
.k-quote .k-by { color: var(--k-muted); margin-bottom: 32px; }
.k-quote .k-by:last-child { margin-bottom: 0; }
.k-final h2 { margin-bottom: 14px; }
.k-final .k-lead { margin: 0 auto 28px; max-width: 52ch; }
.k-quote .wp-block-buttons { justify-content: center; }

/* ---------- footer ---------- */
.k-foot { background: var(--k-navy); color: var(--k-cream); padding-block: 48px; }
.k-foot__in { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 24px; font-size: 15px; }
.k-foot .k-logo { color: var(--k-cream); font-size: 22px; margin-bottom: 6px; }
.k-foot a { text-underline-offset: 3px; }
.k-foot address { font-style: normal; }
.k-nw { white-space: nowrap; }

/* ---------- inner page headers ---------- */
.k-page-h { padding-block: 48px 56px; }
.k-page-h > * { max-width: 760px; }
.k-page-h h1 { font-size: clamp(36px, 5.4vw, 56px); margin-bottom: 20px; }
.k-pad-b { padding-bottom: 88px; }
.k-pad-b-sm { padding-bottom: 72px; }

/* ---------- method ---------- */
.k-num { font-family: var(--k-head); font-weight: var(--k-hw); font-size: 40px; line-height: 1; color: var(--k-muted); display: block; }
.k-hour h3 { margin: 10px 0 8px; font-size: 22px; }
.k-why > .wp-block-group { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 16px clamp(24px, 5vw, 64px); padding-block: 32px; border-top: 1px solid var(--k-line); }
.k-why > .wp-block-group:last-child { border-bottom: 1px solid var(--k-line); }
.k-why > .wp-block-group > * { margin: 0; min-width: 0; }
.k-why .k-k { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--k-muted); margin-bottom: 10px; }
.k-why h3 { font-size: clamp(21px, 2.4vw, 26px); line-height: 1.25; }
.k-why p { max-width: 62ch; }
.k-hd { display: flex; gap: 18px; align-items: flex-start; }
.k-hd > * { margin: 0; }
.k-hd > .wp-block-group { min-width: 0; padding-top: 2px; }
.k-ico { flex: none; width: 52px; height: 52px; border-radius: 14px; background: var(--k-accent); color: var(--k-accent-ink); display: inline-flex; align-items: center; justify-content: center; }
.wp-block-html .k-ico, .k-ico-wrap { margin: 0; flex: none; }
@media (max-width: 720px) { .k-why > .wp-block-group { grid-template-columns: minmax(0, 1fr); } }

.good, .poor { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.good li, .poor li { display: flex; gap: 12px; align-items: baseline; margin: 0; }
.good li::before, .poor li::before { content: ""; flex: none; width: 10px; height: 10px; border-radius: 50%; transform: translateY(1px); }
.good li::before { background: var(--k-navy); }
.poor li::before { border: 2px solid var(--k-navy); }

/* ---------- faq ---------- */
.k-faq { max-width: 860px; }
.k-faq > .wp-block-group { border-top: 1px solid var(--k-line); padding: 22px 0; }
.k-faq h3 { font-size: 22px; margin-bottom: 8px; }
.k-faq p { color: var(--k-muted); }

/* ---------- included / facts ---------- */
.k-inc { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 36px 32px; }
.k-inc > * { margin: 0; min-width: 0; }
.k-inc h3 { font-size: 20px; margin: 16px 0 6px; }
.k-inc p { color: var(--k-muted); }
.k-facts-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); border-top: 1px solid var(--k-line); }
.k-facts-g > * { margin: 0; padding: 22px 24px 22px 0; border-bottom: 1px solid var(--k-line); min-width: 0; }
.k-facts-g .k-k { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--k-muted); margin-bottom: 6px; }
.k-co { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px 40px; }
.k-co > * { margin: 0; }
.k-co h2 { font-size: clamp(26px, 3.4vw, 34px); margin-bottom: 8px; }
.k-co p { color: #DCE2EC; max-width: 52ch; }

/* ---------- book / contact form ---------- */
.k-book { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.k-book > * { margin: 0; min-width: 0; }
@media (max-width: 860px) { .k-book { grid-template-columns: minmax(0, 1fr); } }
.k-side h3 { font-size: 22px; margin-bottom: 14px; }
.k-side .k-card + .k-card { margin-top: 20px; }
.k-side p + p { margin-top: 8px; }
.k-steps { list-style: none; padding: 0; display: grid; gap: 16px; counter-reset: s; }
.k-steps li { counter-increment: s; display: flex; gap: 14px; align-items: baseline; margin: 0; }
.k-steps li::before { content: counter(s); flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--k-accent); color: var(--k-accent-ink); font-weight: 700; font-size: 14px; display: inline-flex; align-items: center; justify-content: center; transform: translateY(-1px); }
.k-form { display: grid; gap: 18px; }
.k-form .row2 { align-items: end; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 18px; }
.k-form label { display: block; font-weight: 600; font-size: 15px; margin-bottom: 6px; }
.k-form .opt { font-weight: 400; color: var(--k-muted); }
.k-form input[type=text], .k-form input[type=email], .k-form input[type=tel], .k-form select, .k-form textarea {
  width: 100%; font: inherit; color: var(--k-navy); background: var(--k-card); border: 1px solid #C9BD97; border-radius: 10px; padding: 12px 14px; line-height: 1.4;
}
.k-form textarea { min-height: 150px; resize: vertical; }
.k-form input:focus, .k-form select:focus, .k-form textarea:focus { outline: 3px solid var(--k-accent); outline-offset: 1px; border-color: var(--k-navy); }
.k-form .consent { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--k-muted); }
.k-form .consent input { margin-top: 4px; width: 18px; height: 18px; flex: none; accent-color: var(--k-navy); }
.k-form .consent label { font-weight: 400; margin: 0; font-size: 14px; }
.k-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.k-msg { border-radius: 12px; padding: 16px 20px; margin-bottom: 20px; font-weight: 500; }
.k-msg--ok { background: #E6F0DF; border: 1px solid #A9C79A; }
.k-msg--err { background: #FBE6DF; border: 1px solid #E3A692; }

/* ---------- legal / prose pages ---------- */
.k-prose { max-width: 760px; }
.k-prose h2 { font-size: clamp(22px, 2.6vw, 28px); margin: 40px 0 12px; }
.k-prose > h2:first-child { margin-top: 0; }
.k-prose h3 { font-size: 20px; margin: 28px 0 8px; }
.k-prose p, .k-prose ul { margin-bottom: 14px; }
.k-prose ul { padding-left: 1.2em; }
.k-prose li { margin-bottom: 6px; }
.k-tbd { background: rgba(227,167,47,.28); padding: 1px 6px; border-radius: 4px; }
.wp-block-post-content > :where(p, ul, ol, h2, h3, h4, figure, .wp-block-buttons) { max-width: 760px; margin-inline: auto; padding-inline: clamp(16px, 4vw, 32px); }
.wp-block-post-content > :where(p, ul, ol) { margin-block: 0 14px; }

/* ---------- 404 / blog fallback ---------- */
.k-404 { padding-block: clamp(64px, 10vw, 120px); }
.k-404 h1 { font-size: clamp(36px, 5.4vw, 56px); margin-bottom: 16px; }
.wp-block-query .wp-block-post-title { font-size: 28px; margin-bottom: 8px; }
.wp-block-query li { margin-bottom: 36px; list-style: none; }
.wp-block-query ul { padding: 0; }

@media print {
  .k-top, .k-foot, .k-skip { display: none; }
}

/* ---------- about: people and location ---------- */
.k-people { display: grid; gap: clamp(48px, 7vw, 80px); }
.k-people > * { margin: 0; }
.k-person { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: clamp(24px, 5vw, 56px); align-items: center; }
.k-person > * { margin: 0; min-width: 0; }
.k-person--rev { grid-template-columns: minmax(0, 1fr) minmax(0, 300px); }
.k-person--rev .k-avatar { order: 2; }
.wp-block-image.k-avatar { margin: 0; width: 100%; max-width: 300px; }
.wp-block-image.k-avatar img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 50%; border: 6px solid var(--k-cream); box-shadow: 0 0 0 3px var(--k-accent); }
.k-person__text h2 { font-size: clamp(28px, 4vw, 40px); margin-bottom: 16px; }
.k-person__p p + p { margin-top: 14px; }
.k-person .k-facts { margin-top: 22px; }
.k-person .k-langs { margin: 20px 0 0; }
@media (max-width: 720px) {
  .k-person, .k-person--rev { grid-template-columns: minmax(0, 1fr); }
  .k-person--rev .k-avatar { order: 0; }
  .wp-block-image.k-avatar { max-width: 220px; }
}
.k-where { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: clamp(32px, 5vw, 64px); align-items: center; }
.k-where > * { margin: 0; min-width: 0; }
.k-where h2 { font-size: clamp(28px, 4vw, 40px); margin-bottom: 20px; }
.k-where__p { margin-bottom: 24px; }
.k-where__p p + p { margin-top: 14px; }
.k-collage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: repeat(2, clamp(150px, 24vw, 230px)); gap: 14px; }
.k-collage > * { margin: 0; min-height: 0; }
.k-collage .wp-block-image { height: 100%; }
.k-collage .k-c-tall { grid-row: 1 / span 2; }
.k-collage img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 16px; }
.k-collage a { display: block; height: 100%; }
.k-collage .k-c-tall img { object-position: 50% 30%; }

/* three key aspects list on navy */
.k-pts { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 12px; max-width: 56ch; }
.k-pts li { display: flex; gap: 12px; align-items: baseline; margin: 0; color: #DCE2EC; font-size: clamp(16px, 1.8vw, 18px); }
.k-pts li::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--k-accent); transform: translateY(-1px); }


/* ======================================================================
   Version 1.2: sections of the approved sketch
   ====================================================================== */
.k-bigp { font-size: clamp(17px, 2vw, 20px); }
.k-mt-sm { margin-top: 28px; }
.wp-block-buttons.k-center { justify-content: center; }
.k-t--sm { margin-bottom: 28px; }
.k-t--xs { margin-bottom: 14px; }
.k-lead--gap { margin-bottom: 36px; max-width: 62ch; }
.k-lead--gap2 { margin-bottom: 32px; max-width: 62ch; }
.k-lead.k-lead--gap, .k-lead.k-lead--gap2 { margin-top: 0; }

/* stars */
.k-stars { color: var(--k-accent); font-size: 20px; letter-spacing: 3px; line-height: 1; -webkit-text-stroke: .6px var(--k-navy); }

/* home: hero review card */
.k-hero__text > * { margin-top: 0; }
.k-herorev { margin: 0; display: flex; flex-direction: column; gap: 18px; padding: clamp(28px, 4vw, 44px); box-shadow: 0 22px 44px -28px rgba(18,35,61,.38); }
.k-herorev .k-stars { font-size: 24px; }
.k-herorev blockquote { margin: 0; font-family: var(--k-head); font-weight: var(--k-hw); letter-spacing: var(--k-hls); font-size: clamp(21px, 2.5vw, 28px); line-height: 1.3; text-wrap: pretty; }
.k-herorev figcaption { font-weight: 600; font-size: 15px; color: var(--k-muted); }

/* home: "In 150 words" */
.k-m150 { text-align: center; }
.k-m150 h2 { margin-bottom: 20px; }
.k-m150p { font-size: clamp(17px, 2vw, 20px); max-width: 62ch; margin-inline: auto; }
.k-aspects { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 22px); margin: 44px 0 40px; text-align: left; }
.k-aspects > * { margin: 0; min-width: 0; border: 1px solid rgba(250,245,229,.22); background: rgba(250,245,229,.05); border-radius: 16px; padding: clamp(22px, 2.4vw, 30px); }
.k-anum { font-family: var(--k-head); font-weight: var(--k-hw); font-size: 40px; line-height: 1; color: var(--k-soft); opacity: .85; margin-bottom: 12px; }
.k-aspect p:not(.k-anum) { font-family: var(--k-head); font-weight: var(--k-hw); letter-spacing: var(--k-hls); font-size: clamp(19px, 2vw, 22px); line-height: 1.3; }
@media (max-width: 760px) { .k-aspects { grid-template-columns: minmax(0, 1fr); margin: 32px 0; } }
.k-quote .k-stars { margin-bottom: 14px; }
.k-quote .k-by { margin-bottom: 0; }

/* home: who we work with, closing call */
.k-who { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: clamp(24px, 5vw, 64px); align-items: start; }
.k-who > * { margin: 0; min-width: 0; }
.k-who h2 { font-size: clamp(28px, 4vw, 40px); }
.k-who__text p { max-width: 56ch; }
.k-who__text p + p { margin-top: 14px; }
.k-w.k-final { max-width: 800px; text-align: center; }
.k-final h2 { font-size: clamp(26px, 3.6vw, 36px); }

/* method */
.k-readenough { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 14px 24px; margin-top: 48px; }
.k-readenough > * { margin: 0; }
.k-readq { font-family: var(--k-head); font-weight: var(--k-hw); letter-spacing: var(--k-hls); font-size: clamp(22px, 2.6vw, 28px); }
.k-acc { max-width: 860px; border-bottom: 1px solid var(--k-line); }
.k-acc > * { margin: 0; }
.k-acc .wp-block-details { margin: 0; border-top: 1px solid var(--k-line); padding: 0; }
.k-acc summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 0; font-family: var(--k-head); font-weight: var(--k-hw); letter-spacing: var(--k-hls); font-size: clamp(18px, 2vw, 21px); line-height: 1.3; }
.k-acc summary::-webkit-details-marker { display: none; }
.k-acc summary::marker { content: ""; }
.k-acc summary::after { content: ""; flex: none; width: 10px; height: 10px; border-right: 2px solid var(--k-navy); border-bottom: 2px solid var(--k-navy); transform: rotate(45deg) translateY(-3px); transition: transform .15s; }
.k-acc details[open] summary::after { transform: rotate(-135deg) translate(-3px, -2px); }
.k-acc summary:focus-visible { outline: 3px solid var(--k-accent); outline-offset: 2px; border-radius: 6px; }
.k-acc .wp-block-details p { color: var(--k-muted); padding: 0 40px 22px 0; max-width: 68ch; margin: 0; }
@media (prefers-reduced-motion: reduce) { .k-acc summary::after { transition: none; } }

/* get started: pricing */
.k-promo { display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline; gap: 4px 10px; background: var(--k-accent); color: var(--k-accent-ink); border-radius: 12px; padding: 9px 20px; margin-bottom: 24px; text-align: center; font-size: 16px; }
.k-promo strong { font-family: var(--k-head); font-size: clamp(18px, 2.2vw, 22px); font-weight: 700; }
@media (max-width: 520px) { .k-promo { flex-wrap: nowrap; gap: 8px; padding: 9px 12px; font-size: 13px; } .k-promo strong { font-size: 16px; } }
@media (max-width: 400px) { .k-s:not(.k-howwork) .k-promo { flex-wrap: wrap; gap: 2px 8px; } }
.k-pcard { display: flex; flex-direction: column; }
.k-pcard > p { color: var(--k-navy); }
.k-pprice { font-size: 36px; font-weight: 600; margin: 18px 0 14px; font-variant-numeric: tabular-nums; line-height: 1.2; }
.k-pprice small { font-size: 16px; font-weight: 400; }
.k-psub { display: inline-block; font-size: 15px; font-weight: 600; color: var(--k-navy); margin: 0 0 0 0; padding: 4px 12px; border-radius: 8px; background: color-mix(in srgb, var(--k-accent) 30%, transparent); }
.k-pprice .k-psub { display: table; margin-top: 8px; }
.k-checks { list-style: none; margin: 0 0 26px; padding: 0; display: grid; gap: 10px; }
.k-checks li { display: flex; gap: 10px; align-items: baseline; margin: 0; }
.k-checks li::before { content: ""; flex: none; width: 5px; height: 10px; border: solid var(--k-navy); border-width: 0 2px 2px 0; transform: rotate(40deg) translateY(-2px); margin: 0 5px 0 3px; }
.k-checks li.lead-in { font-style: italic; }
.k-checks li.lead-in::before { display: none; }
.k-pcard .k-btn { margin-top: auto; text-align: center; }
@media (min-width: 561px) and (max-width: 899px) { .k-pcard .k-btn { align-self: flex-start; min-width: 200px; } }
.k-cobox { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px 40px; margin-top: 24px; padding: 28px 32px; }
.k-cobox > * { margin: 0; }
.k-cobox h3 { font-size: 22px; margin-bottom: 6px; }
.k-cobox p { color: var(--k-muted); max-width: 52ch; }

/* get started: what is included */
.k-inc2 { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(32px, 5vw, 56px); align-items: center; }
.k-inc2 > * { margin: 0; min-width: 0; }
@media (max-width: 720px) { .k-inc2 { grid-template-columns: minmax(0, 1fr); } }
.k-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 132px)); gap: 28px; justify-content: start; }
@media (max-width: 720px) { .k-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
.k-tile { background: var(--k-navy); color: var(--k-cream); border-radius: 16px; padding: 20px 10px; min-height: 124px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; text-align: center; font-weight: 500; font-size: 15px; line-height: 1.3; text-wrap: balance; }
.k-tile svg { color: var(--k-accent); width: 26px; height: 26px; }
.k-inc-text { max-width: 60ch; }
.k-inc-text p + p { margin-top: 14px; }

/* get started: form with plan choices */
.k-formcard .k-form { max-width: none; }
.k-plans { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 10px; }
.k-plans legend { font-weight: 600; font-size: 15px; padding: 0; margin-bottom: 8px; }
.k-form .k-plan { display: flex; gap: 14px; align-items: center; border: 1px solid var(--k-line); border-radius: 12px; background: var(--k-card); padding: 14px 16px; cursor: pointer; font-weight: 400; margin: 0; font-size: 1em; }
.k-form .k-plan input, .k-form .k-pill input { accent-color: var(--k-navy); margin: 0; flex: none; }
.k-form .k-plan input { width: 20px; height: 20px; }
.k-form .k-pill input { width: 18px; height: 18px; }
.k-form .k-plan:has(input:checked), .k-form .k-pill:has(input:checked) { border-color: var(--k-navy); box-shadow: 0 0 0 2px var(--k-accent); }
.k-form .k-plan:has(input:focus-visible), .k-form .k-pill:has(input:focus-visible) { outline: 3px solid var(--k-accent); outline-offset: 2px; }
.k-plan__main { flex: 1; min-width: 0; display: grid; gap: 2px; }
.k-plan__name { font-weight: 600; font-size: 17px; }
.k-plan__desc { color: var(--k-muted); font-size: 14px; line-height: 1.4; }
.k-plan-more { display: flex; flex-wrap: wrap; gap: 10px; }
.k-form .k-pill { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--k-line); border-radius: 999px; background: var(--k-card); padding: 8px 16px; cursor: pointer; font-weight: 400; margin: 0; font-size: 1em; }
.k-side .k-more { font-weight: 600; }

/* get started: reviews */
.k-revs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .k-revs { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); } }
.k-rev { margin: 0; display: flex; flex-direction: column; gap: 12px; }
.k-rev h3 { font-size: 21px; margin: 0; }
.k-rev blockquote { margin: 0; }
.k-rev figcaption { margin-top: auto; padding-top: 6px; font-weight: 600; font-size: 14px; color: var(--k-muted); }

/* about: the name, where we meet, how we work */
.k-namesec { padding-block: clamp(64px, 9vw, 112px); }
.k-name { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
.k-name > * { margin: 0; min-width: 0; }
.k-namehead { display: flex; flex-direction: column; align-items: flex-start; gap: clamp(24px, 3vw, 36px); }
.k-namehead > * { margin: 0; }
.k-namehead h2 { font-size: clamp(30px, 4.4vw, 44px); }
.k-namehead svg.lgm { width: clamp(52px, 5.5vw, 68px); height: auto; display: block; }
.k-name > p { font-size: clamp(19px, 2.2vw, 23px); line-height: 1.6; color: #DCE2EC; max-width: 34em; }
@media (max-width: 720px) { .k-name { grid-template-columns: minmax(0, 1fr); } }
.k-where__text > p { max-width: 52ch; }
.k-mapframe { display: block; position: relative; border-radius: 16px; overflow: hidden; border: 1px solid var(--k-line); aspect-ratio: 4 / 3; max-width: 100%; background: var(--k-sand); }
.k-mapframe__a { display: block; width: 100%; height: 100%; text-decoration: none; }
.k-mapframe img { display: block; width: 100%; height: 100%; object-fit: cover; }
.k-mapframe iframe { display: block; width: 100%; height: 100%; border: 0; }
.k-maphint { position: absolute; left: 12px; bottom: 12px; background: var(--k-card); color: var(--k-navy); border: 1px solid var(--k-line); border-radius: 8px; padding: 6px 10px; font-size: 13px; font-weight: 600; }
.k-mapnote { margin: 8px 0 0; font-size: 13px; color: var(--k-muted); }
.k-where > * { min-width: 0; }

.k-howwork .k-bigp { max-width: 62ch; }
.k-howwork h2 { font-size: clamp(28px, 4vw, 40px); margin-bottom: 18px; }
.k-howwork .k-promo { margin: 28px 0 0; max-width: 760px; }
