/* Design kit (from branch design-kit, design-kit/css/kit.css, Oct 28 2026). Used by the new homepage (Nov 8 2026).
   Live vw/vh units kept. Fonts are the self-hosted Work Sans files (same as style.css). */
@font-face { font-family: "Work Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/work-sans-latin-500-normal.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; }
@font-face { font-family: "Work Sans"; font-style: italic; font-weight: 500; font-display: swap; src: url(/assets/fonts/work-sans-latin-500-italic.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; }
@font-face { font-family: "Work Sans"; font-style: normal; font-weight: 700; font-display: swap; src: url(/assets/fonts/work-sans-latin-700-normal.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; }
@font-face { font-family: "Work Sans"; font-style: italic; font-weight: 700; font-display: swap; src: url(/assets/fonts/work-sans-latin-700-italic.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; }

/* Design kit: conversion landing-page styles (first built for torontoneurofeedback.com, Oct 2026).
   Mobile-first. Breakpoints: 640px (tablet) and 960px (desktop).
   Every class starts with "k-" so this file can sit next to the existing
   hamiltonneurofeedback.com style.css without clashing. See DESIGN-NOTES.md. */

/* ---------- Tokens ---------- */
:root {
  --k-blue: #1470af;          /* brand blue: links, ticks, numbers, CTA band */
  --k-blue-dark: #105d92;     /* hover, text on blue tint */
  --k-blue-tint: #e8f1f8;     /* eyebrow pill background */
  --k-orange: #cc5500;        /* primary buttons only */
  --k-orange-dark: #b34b00;   /* primary button hover */
  --k-orange-tint: #fbe9dd;   /* offer badge background */
  --k-orange-text: #8f3c00;   /* text on orange tint */
  --k-ink: #111111;           /* headings, body text */
  --k-text: #333333;          /* longer paragraphs */
  --k-muted: #4a4a4a;         /* small print, captions */
  --k-line: #eaeaee;          /* borders, dividers */
  --k-chip-line: #c9c9cf;     /* chip outlines */
  --k-bg: #ffffff;
  --k-bg-alt: #f4f4f6;        /* alternating grey bands */
  --k-dark: #111111;          /* guarantee band */
  --k-black: #000000;         /* promo bar, footer */
  --k-accent-on-dark: #f0a46b;/* small label on the dark band */

  --k-font: "Work Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --k-wrap: 1200px;
  --k-gutter: 24px;
  --k-section-y: clamp(56px, 7vw, 104px);
  --k-radius: 16px;
  --k-radius-sm: 12px;
  --k-pill: 300px;
  --k-shadow: 0 12px 36px rgba(0, 0, 0, .10);
  --k-shadow-sm: 0 10px 30px rgba(0, 0, 0, .16);
  --k-header-h: 72px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--k-header-h) + 12px); }
body {
  margin: 0;
  background: var(--k-bg);
  color: var(--k-ink);
  font-family: var(--k-font);
  font-weight: 500;
  font-size: 17px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--k-blue); }
a:hover { color: var(--k-blue-dark); }
h1, h2, h3, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
b, strong { font-weight: 700; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--k-blue); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

.k-skip { position: absolute; left: -9999px; top: 8px; background: var(--k-bg); padding: 8px 14px; z-index: 100; }
.k-skip:focus { left: 8px; }
.k-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Layout ---------- */
.k-wrap { max-width: var(--k-wrap); margin: 0 auto; padding: 0 var(--k-gutter); }
.k-wrap--narrow { max-width: 860px; }
.k-section { padding: var(--k-section-y) 0; }
.k-section--alt { background: var(--k-bg-alt); }
.k-split { display: flex; flex-wrap: wrap; gap: 40px; align-items: center; }
.k-split > .k-split__main { flex: 999 1 520px; min-width: 0; }
.k-split > .k-split__side { flex: 1 1 340px; min-width: 0; }
.k-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 24px; }

/* ---------- Type ---------- */
.k-h1 { font-size: clamp(36px, 4.6vw, 64px); line-height: 1.04; letter-spacing: -.02em; font-weight: 700; }
.k-h2 { font-size: clamp(30px, 3.4vw, 46px); line-height: 1.1; letter-spacing: -.015em; font-weight: 700; }
.k-h2--xl { font-size: clamp(32px, 3.8vw, 52px); line-height: 1.06; letter-spacing: -.02em; }
.k-h3 { font-size: 21px; line-height: 1.25; font-weight: 700; }
.k-lead { font-size: clamp(19px, 1.7vw, 23px); line-height: 1.45; color: #222; }
.k-intro { margin-top: 16px; max-width: 680px; font-size: 18px; color: var(--k-text); }
.k-small { font-size: 15px; color: var(--k-muted); }
.k-label { font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--k-muted); }
.k-eyebrow { display: inline-block; margin-bottom: 20px; padding: 6px 14px; border-radius: var(--k-pill); background: var(--k-blue-tint); color: var(--k-blue-dark); font-size: 14px; font-weight: 700; }
.k-section-head { max-width: 760px; }

/* ---------- Buttons ---------- */
.k-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 52px; padding: 0 26px; border: 0; border-radius: var(--k-pill);
  font-family: inherit; font-weight: 700; font-size: 17px; line-height: 1.1; text-align: center;
  text-decoration: none; cursor: pointer;
  transition: background-color .2s, color .2s, transform .2s, box-shadow .2s;
}
.k-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0, 0, 0, .14); }
.k-btn:active { transform: none; box-shadow: none; }
.k-btn--primary { background: var(--k-orange); color: #fff; text-transform: uppercase; letter-spacing: .02em; }
.k-btn--primary:hover { background: var(--k-orange-dark); color: #fff; }
.k-btn--outline { background: transparent; color: var(--k-blue); box-shadow: inset 0 0 0 2px var(--k-blue); }
.k-btn--outline:hover { color: var(--k-blue-dark); box-shadow: inset 0 0 0 2px var(--k-blue-dark), 0 6px 16px rgba(0, 0, 0, .10); }
.k-btn--lg { min-height: 60px; padding: 0 32px; font-size: 19px; }
.k-btn--sm { min-height: 46px; padding: 0 20px; font-size: 15px; }
.k-btn--block { display: flex; width: 100%; }
.k-btn svg { flex: none; }
.k-cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

/* ---------- Icon lists ---------- */
.k-ticks, .k-crosses { display: flex; flex-direction: column; gap: 12px; }
.k-ticks li, .k-crosses li { display: flex; gap: 10px; align-items: flex-start; }
.k-ticks svg, .k-crosses svg { flex: none; margin-top: 2px; }
.k-ticks svg { color: var(--k-blue); }
.k-crosses svg { color: #6b6b6b; }

/* ---------- Promo bar ---------- */
.k-promo { position: relative; background: var(--k-black); color: #fff; text-align: center; padding: 12px 48px; font-size: 14px; line-height: 1.4; }
.k-promo__close { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: 0; background: none; color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.k-promo[hidden] { display: none; }

/* ---------- Header ---------- */
.k-header { position: sticky; top: 0; z-index: 40; background: var(--k-bg); border-bottom: 1px solid var(--k-line); }
.k-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: var(--k-header-h); }
.k-logo { display: flex; align-items: center; gap: 12px; color: var(--k-ink); text-decoration: none; line-height: 1.1; }
.k-logo:hover { color: var(--k-ink); }
.k-logo__mark { width: 44px; height: 44px; flex: none; }
.k-logo__name { display: block; font-weight: 700; font-size: 20px; letter-spacing: -.01em; }
.k-logo__name span { color: var(--k-blue); }
.k-logo__tag { display: block; font-size: 13px; color: var(--k-muted); margin-top: 3px; }
.k-menu-btn { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 1px solid var(--k-line); border-radius: 10px; background: var(--k-bg); cursor: pointer; }
.k-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--k-bg); border-bottom: 1px solid var(--k-line); box-shadow: 0 16px 24px rgba(0, 0, 0, .08); }
.k-nav.is-open { display: block; }
.k-nav__list { display: flex; flex-direction: column; padding: 8px var(--k-gutter) 20px; }
.k-nav__list a:not(.k-btn) { display: block; padding: 12px 0; color: var(--k-ink); text-decoration: none; font-size: 18px; border-bottom: 1px solid var(--k-line); }
.k-nav__list a.k-nav__phone { color: var(--k-blue); font-weight: 700; }
.k-nav__list .k-btn { margin-top: 16px; }
@media (min-width: 960px) {
  .k-menu-btn { display: none; }
  .k-nav { display: block; position: static; border: 0; box-shadow: none; background: none; }
  .k-nav__list { flex-direction: row; align-items: center; gap: 28px; padding: 0; }
  .k-nav__list a:not(.k-btn) { padding: 0; border: 0; font-size: 16px; }
  .k-nav__list a:not(.k-btn):hover { color: var(--k-blue); }
  .k-nav__list .k-btn { margin-top: 0; }
}

/* ---------- Hero ---------- */
.k-hero { padding: clamp(40px, 6vw, 88px) 0; }
.k-hero__grid { display: flex; flex-wrap: wrap; align-items: center; gap: 48px; }
.k-hero__text { flex: 1 1 520px; min-width: 0; }
.k-hero__text .k-lead { margin-top: 22px; }
.k-hero__text .k-ticks { margin-top: 26px; gap: 10px; }
.k-hero__note { margin-top: 18px; font-size: 15px; color: var(--k-muted); }
.k-hero__media { flex: 1 1 400px; min-width: 0; position: relative; }
.k-hero__img { width: 100%; height: clamp(360px, 44vw, 620px); object-fit: cover; object-position: center 20%; border-radius: 18px; }
.k-stat { position: absolute; left: 16px; right: 16px; bottom: 16px; max-width: 320px; background: var(--k-bg); border-radius: var(--k-radius-sm); padding: 16px 18px; box-shadow: var(--k-shadow-sm); }
.k-stat__num { font-weight: 700; font-size: 26px; line-height: 1.1; color: var(--k-blue); }
.k-stat__text { margin-top: 4px; font-size: 15px; color: var(--k-text); }

/* ---------- Proof strip ---------- */
.k-proof { background: var(--k-bg-alt); padding: 36px 0; }
.k-proof__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(230px, 100%), 1fr)); gap: 24px 32px; }
.k-proof__title { font-weight: 700; font-size: 19px; }
.k-proof__text { margin-top: 4px; font-size: 15px; color: var(--k-muted); }

/* ---------- Cards (comparison, options) ---------- */
.k-compare { margin-top: 40px; }
.k-card { border-radius: var(--k-radius); padding: 32px; background: var(--k-bg); }
.k-card--muted { background: var(--k-bg-alt); }
.k-card--feature { box-shadow: inset 0 0 0 3px var(--k-blue); }
.k-card__label { font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--k-muted); }
.k-card--feature .k-card__label { color: var(--k-blue); }
.k-card__price { margin-top: 10px; font-size: 40px; font-weight: 700; line-height: 1.1; }
.k-card__sub { margin-top: 4px; font-size: 15px; color: var(--k-muted); }
.k-card .k-ticks, .k-card .k-crosses { margin-top: 24px; }
.k-card__title { font-weight: 700; font-size: 20px; }
.k-card__text { margin-top: 8px; color: var(--k-text); }

/* ---------- Offer: value stack + price box ---------- */
.k-offer { margin-top: 40px; align-items: flex-start; }
.k-offer__img { width: 100%; height: 260px; object-fit: cover; border-radius: var(--k-radius); background: var(--k-bg); }
.k-stack { margin-top: 28px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 22px 28px; }
.k-stack li { display: flex; gap: 12px; }
.k-stack svg { flex: none; margin-top: 3px; color: var(--k-blue); }
.k-stack__name { display: block; font-weight: 700; }
.k-stack__desc { display: block; font-size: 15px; color: var(--k-muted); }
.k-price { background: var(--k-bg); border-radius: 18px; padding: 32px; box-shadow: var(--k-shadow); }
.k-badge { display: inline-block; padding: 5px 12px; border-radius: var(--k-pill); background: var(--k-orange-tint); color: var(--k-orange-text); font-size: 14px; font-weight: 700; }
.k-price .k-badge + .k-label { margin-top: 18px; }
.k-price__amount { margin-top: 4px; display: flex; align-items: baseline; gap: 8px; }
.k-price__big { font-size: 60px; font-weight: 700; line-height: 1; letter-spacing: -.02em; }
.k-price__mid { font-size: 28px; font-weight: 700; }
.k-price__tax { font-size: 16px; font-weight: 500; color: var(--k-muted); }
.k-price__ext { margin-top: 8px; font-size: 15px; color: var(--k-muted); }
.k-price__divider { height: 1px; background: var(--k-line); margin: 22px 0; }
.k-price .k-btn { margin-top: 26px; }
.k-price__fine { margin-top: 16px; font-size: 14px; color: var(--k-muted); text-align: center; }

/* ---------- Steps ---------- */
.k-steps { display: flex; flex-direction: column; gap: 28px; }
.k-steps li { display: flex; gap: 20px; }
.k-steps__num { flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--k-blue); color: #fff; font-weight: 700; font-size: 21px; display: flex; align-items: center; justify-content: center; }
.k-steps__text { color: var(--k-text); }
.k-steps__text b { display: block; font-size: 21px; color: var(--k-ink); }
.k-steps-img { width: 100%; height: 340px; object-fit: cover; border-radius: var(--k-radius); }

/* ---------- Guarantee (dark band) ---------- */
.k-dark { background: var(--k-dark); color: #fff; }
.k-dark .k-label { color: var(--k-accent-on-dark); letter-spacing: .06em; }
.k-dark .k-h2 { margin-top: 10px; }
.k-dark .k-lead { margin-top: 20px; color: #e6e6e6; }
.k-dark a { color: #fff; }
.k-quote { margin-top: 36px; padding-top: 24px; border-top: 1px solid #3a3a3a; }
.k-quote blockquote { font-size: 18px; line-height: 1.6; }
.k-quote figcaption { margin-top: 12px; font-size: 15px; color: #bdbdbd; }
.k-dark-img { width: 100%; height: 460px; object-fit: cover; border-radius: var(--k-radius); }

/* ---------- Area chips ---------- */
.k-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.k-chips li { padding: 10px 18px; border-radius: var(--k-pill); border: 1px solid var(--k-chip-line); font-size: 16px; }
.k-area-options { margin-top: 36px; }

/* ---------- FAQ ---------- */
.k-faq { margin-top: 32px; display: flex; flex-direction: column; gap: 12px; }
.k-faq details { background: var(--k-bg); border-radius: var(--k-radius-sm); padding: 0 24px; }
.k-faq summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 64px; font-weight: 700; font-size: 19px; cursor: pointer; list-style: none; }
.k-faq summary::-webkit-details-marker { display: none; }
.k-faq summary::after { content: "+"; flex: none; font-size: 26px; font-weight: 500; color: var(--k-blue); }
.k-faq details[open] summary::after { content: "\2212"; }
.k-faq details p { padding-bottom: 20px; color: var(--k-text); }
.k-faq-more { margin-top: 24px; font-weight: 700; }

/* ---------- CTA band + form ---------- */
.k-cta-band { background: var(--k-blue); color: #fff; }
.k-cta-band__grid { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.k-cta-band__text { flex: 1 1 400px; min-width: 0; }
.k-cta-band__text .k-lead { margin-top: 18px; color: #eef5fb; }
.k-cta-band__contact { margin-top: 28px; display: flex; flex-direction: column; gap: 8px; font-size: 18px; font-weight: 700; }
.k-cta-band a { color: #fff; }
.k-form { flex: 1 1 440px; min-width: 0; background: var(--k-bg); color: var(--k-ink); border-radius: 18px; padding: 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: 18px 16px; }
.k-field { display: flex; flex-direction: column; gap: 6px; font-size: 15px; font-weight: 700; }
.k-field--full, .k-form__full { grid-column: 1 / -1; }
.k-field input, .k-field select, .k-field textarea { min-height: 48px; border: 1px solid var(--k-ink); border-radius: 0; padding: 10px; font-weight: 500; background: var(--k-bg); width: 100%; }
.k-field textarea { resize: vertical; }
.k-field.is-invalid input, .k-field.is-invalid select, .k-field.is-invalid textarea { border-color: #b00020; box-shadow: 0 0 0 1px #b00020; }
.k-hp { position: absolute; left: -9999px; }
.k-form__status { grid-column: 1 / -1; font-size: 14px; color: var(--k-muted); text-align: center; min-height: 1.4em; }
.k-form__done { font-size: 19px; font-weight: 700; color: var(--k-ink); }

/* ---------- Footer ---------- */
.k-footer { background: var(--k-black); color: #d6d6d6; padding: 48px 0 36px; font-size: 15px; }
.k-footer__grid { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 32px 64px; }
.k-footer__brand { flex: 1 1 300px; min-width: 0; }
.k-footer__name { font-weight: 700; font-size: 20px; color: #fff; }
.k-footer__brand p + p { margin-top: 8px; }
.k-footer__col { display: flex; flex-direction: column; gap: 8px; }
.k-footer a { color: #fff; text-decoration: none; }
.k-footer a:hover { text-decoration: underline; color: #fff; }
.k-footer__legal { margin-top: 32px; padding-top: 20px; border-top: 1px solid #2e2e2e; font-size: 13px; color: #a8a8a8; }

/* ---------- Sticky phone CTA ---------- */
.k-sticky-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: flex; gap: 10px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .97); border-top: 1px solid var(--k-line); box-shadow: 0 -8px 20px rgba(0, 0, 0, .08); transform: translateY(110%); transition: transform .25s; }
.k-sticky-cta.is-visible { transform: none; }
.k-sticky-cta .k-btn--primary { flex: 1; }
.k-sticky-cta .k-btn--outline { width: 52px; padding: 0; flex: none; }
@media (min-width: 960px) { .k-sticky-cta { display: none; } }
@media (max-width: 959px) { body.k-has-sticky { padding-bottom: 76px; } }

/* ---------- Tablet / desktop tweaks ---------- */
@media (min-width: 640px) {
  .k-logo__name { font-size: 22px; }
}
@media (max-width: 639px) {
  .k-card, .k-price, .k-form { padding: 24px; }
  .k-faq details { padding: 0 18px; }
  .k-cta-row .k-btn { width: 100%; }
  .k-dark-img { height: 320px; }
  .k-steps-img { height: 240px; }
}

.k-block-gap { margin-top: 40px; }
