/* Clinic Marketing Systems: one stylesheet, mobile first.
   Identity: Clinic Navy, Clinical Sky accent, Booking Green actions on light
   backgrounds and Pulse Emerald actions on navy. Outfit for headings,
   Plus Jakarta Sans for body, JetBrains Mono for data and metrics.
   Signage yellow is for review stars and the focus ring only. */
:root {
  --bg: #ffffff;
  --surface: #eef3f6;
  --ink: #0f1a1c;
  --muted: #4f5d61;
  --line: #dde3e1;
  --line-strong: #c4cdca;
  --primary: #0b5d4b;
  --primary-dark: #084537;
  --link: #0b5d4b;
  --on-primary: #ffffff;
  --highlight: #f2c230;
  --band: #1e202d;
  --band-ink: #d7e6e1;
  --footer: #1e202d;
  --footer-ink: #b4c0bd;
  --radius: 4px;
  --navy: #1e202d;
  --navy-2: #272a3a;
  --sky: #a9c7d9;
  --emerald: #129477;
  --emerald-dark: #0f7d65;
  --ice: #dce8f0;
  --display: 'Outfit', system-ui, sans-serif;
  --sans: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --max: 1200px;
  --gutter: 20px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0d1416;
    --surface: #131c1e;
    --ink: #e6eceb;
    --muted: #a2afad;
    --line: #26322f;
    --line-strong: #364441;
    --primary: #0b5d4b;
    --primary-dark: #0d6d58;
    --link: #6cc9ab;
    --band: #0a3d32;
    --band-ink: #cfe0da;
    --footer: #080d0e;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #0d1416;
  --surface: #131c1e;
  --ink: #e6eceb;
  --muted: #a2afad;
  --line: #26322f;
  --line-strong: #364441;
  --primary: #0b5d4b;
  --primary-dark: #0d6d58;
  --link: #6cc9ab;
  --band: #0a3d32;
  --band-ink: #cfe0da;
  --footer: #080d0e;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 24px; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 400 1rem/1.6 var(--sans);
  -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; }
a { color: var(--link); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--highlight); outline-offset: 2px; }

h1, h2, h3, h4 { font-family: var(--sans); font-weight: 600; color: var(--ink); line-height: 1.15; letter-spacing: -.01em; margin: 0 0 .5em; }
h1, h2 { font-family: var(--display); font-weight: 700; letter-spacing: -0.8px; line-height: 1.15; }
h3 { font-family: var(--display); font-weight: 600; letter-spacing: -0.2px; line-height: 1.3; }
h1 { font-size: clamp(2.25rem, 6vw, 3rem); }
h2 { font-size: clamp(1.75rem, 4vw, 2.25rem); }
h3 { font-size: clamp(1.25rem, 2.2vw, 1.375rem); }
h4 { font-size: 1rem; letter-spacing: 0; }
p { margin: 0 0 1em; }
ul, ol { padding-left: 1.2em; }
li { margin-bottom: .35em; }
strong { font-weight: 600; }

.container { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }
@media (min-width: 720px) { :root { --gutter: 40px; } }
.narrow { max-width: 840px; }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--primary); color: #fff; padding: 10px 16px; border-radius: var(--radius); }
.skip:focus { left: 12px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.eyebrow { font: 500 .8rem/1.3 var(--mono); color: var(--link); margin: 0 0 18px; letter-spacing: .02em; }
.lead { font-size: 1.15rem; color: var(--muted); max-width: 620px; }
.muted { color: var(--muted); }
.mono { font-family: var(--mono); }

/* Buttons: one solid primary, everything else is a text link with an arrow. */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 15px 24px; border-radius: var(--radius); font: 600 1.05rem/1.2 var(--sans); text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background .15s; }
.btn-primary { background: var(--primary); color: var(--on-primary); }
.btn-primary:hover { background: var(--emerald); color: var(--on-primary); }
.btn-light { background: #fff; color: #084537; }
.btn-light:hover { background: #eaf2ef; color: #084537; }
.btn-sm { padding: 9px 14px; font-size: .92rem; white-space: nowrap; }
.btn-block { width: 100%; }
.btn-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: 30px; }
.link-arrow, .text-link { font-weight: 500; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; color: var(--link); }
.link-arrow::after, .text-link::after { content: '\2192'; transition: transform .15s; }
.link-arrow:hover, .text-link:hover { text-decoration: underline; }
.link-arrow:hover::after, .text-link:hover::after { transform: translateX(3px); }
.link-light { color: #fff; }

/* Header: an exact copy of the Physio Rooms Cork top bar, menu bar and mega menus.
   Manrope throughout, 1070px boxed width, values matched to their computed styles. */
.hdr-wrap { width: 100%; max-width: 1090px; margin: 0 auto; padding: 0 10px; }
.topbar { background: #1e202d; padding: 4px 0; font-family: 'Manrope', Arial, sans-serif; }
.topbar-inner { display: flex; align-items: center; justify-content: space-between; min-height: 36px; }
.topbar-list { list-style: none; margin: 0 0 0 -11px; padding: 0; display: flex; flex-wrap: wrap; }
.topbar-list li { margin: 0 8.5px; }
.topbar-list a { display: inline-flex; align-items: center; color: #fff; text-decoration: none; font-size: 17px; font-weight: 400; line-height: 26px; }
.topbar-list svg { fill: #a9c7d9; flex: none; }
.topbar-list span { padding-left: 5px; }
.topbar-list a:hover span { text-decoration: underline; text-underline-offset: 3px; }
.topbar-rating { display: flex; align-items: center; gap: 12px; min-height: 36px; padding-right: 10px; }
.tr-label { color: #fff; font: 700 13px/20px 'Manrope', Arial, sans-serif; }
.tr-stars { color: #ffc531; font-size: 18px; line-height: 18px; letter-spacing: 0; }
@media (max-width: 767px) { .topbar { display: none; } }

.site-header { position: relative; z-index: 100; background: #fff; padding: 6px 0; box-shadow: 0 5px 10px 0 rgba(0, 0, 0, .05); font-family: 'Manrope', Arial, sans-serif; }
.header-inner { display: flex; align-items: center; min-height: 82px; gap: 10px; }
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: #1e202d; flex: none; }
.brand-mark { flex: none; }
.brand-text { font: 800 17px/1.05 'Manrope', Arial, sans-serif; letter-spacing: -.2px; color: #1e202d; }
.brand-text span { display: block; color: #0b5d4b; }

.site-nav { flex: 1; display: flex; justify-content: center; }
.nav-top { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; }
.nav-top > li { margin: 0; }
.nav-link { display: inline-flex; align-items: center; color: #1e202d; text-decoration: none; font: 700 15px/20px 'Manrope', Arial, sans-serif; padding: 14px clamp(8px, 1vw, 16px); border-radius: 28px; transition: background .15s, color .15s; }
.nav-link:hover, .nav-link:focus-visible, .nav-link.mm-active { background: #eaf1f5; color: #3e5969; }
.nav-link[aria-current="page"] { color: #3e5969; }
.mm-chev { fill: currentColor; margin-left: 5px; transition: transform .15s; }
.nav-link.mm-active .mm-chev { transform: rotate(180deg); }
.nav-link:focus-visible { outline: 2px solid #4d6879; outline-offset: 3px; }
.hdr-btn { flex: none; display: inline-flex; align-items: center; background: #a9c7d9; color: #1e202d; text-decoration: none; font: 600 13px/26px 'Manrope', Arial, sans-serif; padding: 13px 18px; border-radius: 3px; transition: background .15s; }
.hdr-btn:hover, .hdr-btn:focus-visible { background: #c5dbe8; color: #1e202d; }
.nav-toggle { display: none; }
.mob-sub { display: none; }

/* Mega menu panels: full width under the menu bar */
.mm-panel { display: none; }
@media (min-width: 1025px) {
  .mm-panel.mm-open { display: block; position: absolute; top: 100%; left: 0; width: 100%; background: #fff; color: #1e202d; border-top: 1px solid #e4e9ed; box-shadow: 0 16px 24px rgba(30, 32, 45, .12); font-family: 'Manrope', Arial, sans-serif; text-align: left; }
  .mm-inner { max-width: 1280px; padding: 30px 36px 34px; margin: auto; }
  .mm-title { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; font-weight: 700; color: #4d6879; padding-bottom: 18px; border-bottom: 1px solid #dbe5ec; margin: 0 0 22px; }
  .mm-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 30px; }
  .mm-grid a { display: flex; align-items: center; gap: 14px; padding: 10px 8px; color: #1e202d; font-size: 15px; font-weight: 600; line-height: 1.5; text-decoration: none; border-radius: 7px; min-height: 60px; }
  .mm-grid a:hover, .mm-grid a:focus-visible { background: #f0f5f8; color: #3e5969; }
  .mm-icon { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; background: #eaf1f5; border-radius: 10px; color: #4d6879; }
  .mm-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  .mm-bottom { background: #eaf1f5; border-top: 1px solid #dbe5ec; }
  .mm-bottom > div { max-width: 1280px; margin: auto; padding: 16px 36px; display: flex; align-items: center; gap: 28px; }
  .mm-bottom a { font-size: 14px; font-weight: 600; color: #1e202d; text-decoration: none; }
  .mm-bottom a:hover { text-decoration: underline; text-underline-offset: 5px; }
  .mm-bottom a.mm-book { margin-left: auto; display: inline-flex; align-items: center; padding: 14px 22px; border-radius: 4px; background: #aac9da; color: #1e202d; min-height: 48px; }
  .mm-bottom a.mm-book:hover { background: #c5dbe8; text-decoration: none; }
  .mm-panel a:focus-visible { outline: 2px solid #4d6879; outline-offset: 3px; }
}
@media (min-width: 1400px) { .mm-inner, .mm-bottom > div { width: 75%; max-width: none; padding-left: 0; padding-right: 0; } }

/* Tablet and phone: logo plus a Menu pill that opens a full-width list */
@media (max-width: 1024px) {
  .header-inner { min-height: 66px; justify-content: space-between; }
  .brand-mark { width: 40px; height: 40px; }
  .brand-text { font-size: 15px; }
  .hdr-btn { display: none; }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-width: 92px; min-height: 44px; padding: 10px 12px; border: 0; border-radius: 6px; background: #eaf1f5; color: #1e202d; cursor: pointer; font: 700 14px 'Manrope', Arial, sans-serif; }
  .nav-toggle svg { fill: currentColor; }
  .site-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: #fff; border-top: 1px solid #e6eaed; box-shadow: 0 18px 30px rgba(30, 32, 45, .07); max-height: calc(100vh - 78px); overflow-y: auto; overscroll-behavior: contain; }
  .site-nav.open { display: block; }
  .nav-top { display: block; padding: 6px 0 14px; }
  .nav-top > li { border-bottom: 1px solid #edf1f4; }
  .nav-link { display: flex; justify-content: space-between; width: 100%; border-radius: 0; padding: 14px 20px; font-size: 15px; }
  .nav-link:hover, .nav-link.mm-active { background: #eaf1f5; }
  .mob-sub { list-style: none; margin: 0; padding: 4px 12px 12px; }
  .has-mm.mob-open > .mob-sub { display: block; }
  .has-mm.mob-open > .nav-link .mm-chev { transform: rotate(180deg); }
  .mob-sub li { margin: 0; }
  .mob-sub a { display: flex; align-items: center; gap: 12px; padding: 9px 8px; border-radius: 7px; color: #1e202d; text-decoration: none; font: 600 14px 'Manrope', Arial, sans-serif; }
  .mob-sub a:hover, .mob-sub a:focus-visible { background: #eaf1f5; }
  .mob-sub .mm-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 7px; background: #eaf1f5; color: #4d6879; }
  .mob-sub .mm-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
  .no-js .site-nav { display: block; position: static; box-shadow: none; }
  .no-js .nav-toggle { display: none; }
  .no-js .header-inner { flex-wrap: wrap; }
  .no-js .mob-sub { display: block; }
}
@media (max-width: 767px) { .brand-mark { width: 38px; height: 38px; } }

/* Breadcrumbs */
.crumbs { padding-top: 22px; }
.crumbs ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; font-size: .86rem; color: var(--muted); }
.crumbs li { margin: 0; display: inline-flex; align-items: center; gap: 6px; }
.crumbs li + li::before { content: '/'; color: var(--line-strong); }
.crumbs a { color: var(--muted); text-decoration: none; }
.crumbs a:hover { color: var(--ink); text-decoration: underline; }

/* Sections alternate white and surface. Heights are left to the content. */
.section { padding: 64px 0; }
.section-alt { background: var(--surface); border-block: 1px solid var(--line); }
.section-white { background: var(--bg); }
.section-tight { padding: 36px 0; }
.section-head { max-width: 700px; margin-bottom: 36px; }
.section-head p { color: var(--muted); font-size: 1.08rem; }
@media (min-width: 900px) {
  .section { padding: 96px 0; }
  .section-tight { padding: 44px 0; }
  .section-short { padding: 72px 0; }
}

/* Home hero: copy left, example report right */
.hero { padding: 44px 0 64px; }
.hero-grid { display: grid; gap: 48px; align-items: center; }
.hero h1 { max-width: 15ch; }
.hero .lead { margin-top: 4px; }
.page-hero { padding: 36px 0 56px; }
.page-hero h1 { max-width: 22ch; }
@media (min-width: 980px) {
  .hero { padding: 88px 0 104px; }
  .hero-grid { grid-template-columns: 7fr 5fr; gap: 64px; }
  .page-hero { padding: 52px 0 76px; }
}

/* Illustrative report table. The only element with a shadow. */
.report { margin: 0; background: var(--bg); border: 1px solid var(--line-strong); border-radius: var(--radius); box-shadow: 0 18px 40px -24px rgba(15, 26, 28, .35); }
.report-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--line); font-size: .92rem; font-weight: 600; }
.report-head span:last-child { font: 500 .76rem var(--mono); color: var(--muted); font-weight: 500; }
.report table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.report th, .report td { padding: 11px 16px; text-align: right; border-bottom: 1px solid var(--line); }
.report th:first-child, .report td:first-child { text-align: left; }
.report thead th { font: 500 .72rem/1.3 var(--mono); color: var(--muted); background: var(--surface); }
.report td { font: 500 .88rem var(--mono); }
.report td:first-child { font: 400 .92rem var(--sans); }
.report tfoot td { font-weight: 600; border-bottom: 0; }
.report tfoot td:first-child { font-weight: 600; }
.report figcaption { padding: 10px 16px 12px; border-top: 1px solid var(--line); font: 500 .76rem/1.4 var(--mono); color: var(--muted); background: var(--surface); }
@media (max-width: 420px) {
  .report th, .report td { padding: 10px 10px; }
  .report td:first-child { font-size: .86rem; }
}

/* Problem: one strong paragraph, then three statements without boxes */
.statement { font-size: clamp(1.25rem, 2.6vw, 1.6rem); line-height: 1.4; font-weight: 500; letter-spacing: -.01em; max-width: 30ch; margin: 0; }
.problem { display: grid; gap: 36px; }
.statements { display: grid; gap: 24px; list-style: none; padding: 0; margin: 0; }
.statements li { margin: 0; color: var(--muted); }
.statements strong { display: block; color: var(--ink); margin-bottom: 4px; }
@media (min-width: 900px) {
  .problem { grid-template-columns: 5fr 7fr; gap: 64px; align-items: start; }
  .statement { max-width: none; }
  .statements { grid-template-columns: repeat(3, 1fr); gap: 32px; padding-top: 6px; }
}

/* Compact service list: name and one line */
.svc-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--ink); }
.svc-list li { margin: 0; display: grid; gap: 4px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.svc-list a { font-weight: 600; font-size: 1.08rem; text-decoration: none; color: var(--ink); }
.svc-list a:hover { color: var(--link); text-decoration: underline; }
.svc-list span { color: var(--muted); }
@media (min-width: 760px) {
  .svc-list li { grid-template-columns: minmax(240px, 4fr) 7fr; gap: 32px; align-items: baseline; }
}
.svc-intro { display: grid; gap: 16px; margin-bottom: 32px; }
@media (min-width: 900px) { .svc-intro { grid-template-columns: 5fr 7fr; gap: 64px; align-items: end; } .svc-intro p { margin: 0; } }

/* Split: two columns of content */
.split { display: grid; gap: 40px; align-items: start; }
@media (min-width: 900px) { .split { grid-template-columns: 5fr 7fr; gap: 72px; } .split-even { grid-template-columns: 1fr 1fr; } }
.split-center { align-items: center; }

.check-list { list-style: none; padding: 0; margin: 4px 0 0; border-top: 1px solid var(--line); }
.check-list li { position: relative; padding: 11px 0 11px 22px; margin: 0; border-bottom: 1px solid var(--line); }
.check-list li::before { content: ''; position: absolute; left: 2px; top: 1.15em; width: 7px; height: 7px; background: var(--primary); }

/* Comparison table: gated vs open */
.table-wrap { overflow-x: auto; }
.compare-table { width: 100%; border-collapse: collapse; font-size: .97rem; background: var(--bg); border: 1px solid var(--line); }
.compare-table th, .compare-table td { text-align: left; vertical-align: top; padding: 13px 14px; border-bottom: 1px solid var(--line); }
.compare-table thead th { font-weight: 600; border-bottom: 1px solid var(--ink); }
.compare-table thead th:last-child { color: var(--link); }
.compare-table tbody th { font: 500 .76rem/1.5 var(--mono); color: var(--muted); width: 22%; }
.compare-table td:nth-child(2) { color: var(--muted); }
.compare-table tbody tr:last-child > * { border-bottom: 0; }
@media (max-width: 560px) {
  .compare-table { font-size: .9rem; }
  .compare-table th, .compare-table td { padding: 11px 9px; }
}

/* Numbered steps: only used where the order matters */
.steps { list-style: none; padding: 0; margin: 4px 0 0; counter-reset: st; border-top: 1px solid var(--line); }
.steps li { counter-increment: st; display: grid; grid-template-columns: 40px 1fr; gap: 12px; margin: 0; padding: 16px 0; border-bottom: 1px solid var(--line); }
.steps li::before { content: counter(st); font: 500 .95rem/1.6 var(--mono); color: var(--link); }
.steps strong { display: block; }
.steps span { color: var(--muted); font-size: .98rem; }

/* Rows: heading left, text right, hairline between */
.rows { border-top: 1px solid var(--line); }
.rows > div { display: grid; gap: 4px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.rows h3 { margin: 0; }
.rows p { margin: 0; color: var(--muted); }
@media (min-width: 760px) { .rows > div { grid-template-columns: minmax(220px, 4fr) 8fr; gap: 32px; align-items: baseline; } }

/* Plain link list for related pages */
.link-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; border-top: 1px solid var(--line); }
.link-list li { margin: 0; padding: 14px 0; border-bottom: 1px solid var(--line); display: grid; gap: 2px; }
.link-list a { font-weight: 600; }
.link-list span { color: var(--muted); font-size: .97rem; }
@media (min-width: 760px) { .link-list li { grid-template-columns: minmax(240px, 4fr) 8fr; gap: 32px; align-items: baseline; } }

/* Clinic types on the home page */
.type-list { list-style: none; padding: 0; margin: 0; columns: 1; column-gap: 56px; }
.type-list li { break-inside: avoid; margin: 0 0 22px; }
.type-list a { font-weight: 600; }
.type-list span { display: block; color: var(--muted); font-size: .97rem; }
@media (min-width: 760px) { .type-list { columns: 2; } }
@media (min-width: 1080px) { .type-list { columns: 3; } }

/* Resource list */
.res-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line); }
.res-list li { margin: 0; padding: 20px 0; border-bottom: 1px solid var(--line); display: grid; gap: 6px; }
.res-list h3 { margin: 0; font-size: 1.12rem; }
.res-list h3 a { color: var(--ink); text-decoration: none; }
.res-list h3 a:hover { color: var(--link); text-decoration: underline; }
.res-list p { margin: 0; color: var(--muted); }
.res-meta { font: 500 .76rem var(--mono); color: var(--muted); display: flex; gap: 14px; }
.res-list .soon h3 { color: var(--muted); }
@media (min-width: 860px) { .res-list li { grid-template-columns: 180px 1fr; gap: 6px 32px; } .res-list .res-meta { grid-row: span 2; padding-top: 4px; flex-direction: column; gap: 2px; } }

/* Generic bordered block (form, author) */
.card { background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; }
.card h3 { margin-bottom: 8px; }
.card p { color: var(--muted); }
.card p:last-child { margin-bottom: 0; }

/* Article */
.article-head { padding: 36px 0 28px; }
.article-head h1 { font-size: clamp(2rem, 5vw, 2.9rem); max-width: 22ch; }
.article-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; color: var(--muted); font: 500 .8rem var(--mono); margin-top: 18px; }
.article-cover { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; margin-bottom: 44px; background: var(--surface); }
.article-cover svg { display: block; width: 100%; height: auto; }
.prose { font-size: 1.08rem; line-height: 1.7; }
.prose h2 { font-size: clamp(1.4rem, 3vw, 1.75rem); margin-top: 1.9em; }
.prose h3 { margin-top: 1.6em; }
.prose ul, .prose ol { margin: 0 0 1.2em; }
.prose li { margin-bottom: .5em; }
.prose code { font: .88em var(--mono); background: var(--surface); padding: 2px 6px; border-radius: 3px; border: 1px solid var(--line); word-break: break-word; }
.callout { border-left: 3px solid var(--primary); background: var(--surface); padding: 18px 22px; margin: 28px 0; font-size: 1rem; }
.callout p:last-child { margin-bottom: 0; }
.article-foot { margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--line); }
.author { display: flex; gap: 14px; align-items: center; font-size: .95rem; color: var(--muted); }
.author-mark { width: 44px; height: 44px; border-radius: var(--radius); background: var(--primary); color: #fff; display: grid; place-items: center; font: 600 .95rem var(--sans); flex: none; }

/* Who we help */
.type-nav { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 26px; }
.type-nav a { font-weight: 500; }
.type-block { display: grid; gap: 16px; padding: 44px 0; border-top: 1px solid var(--line); }
.type-block:first-child { border-top: 0; padding-top: 0; }
@media (min-width: 900px) { .type-block { grid-template-columns: 4fr 8fr; gap: 56px; } }
.type-block h2 { font-size: 1.6rem; }

/* FAQ */
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; list-style: none; padding: 18px 36px 18px 0; position: relative; font-weight: 600; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; position: absolute; right: 4px; top: 15px; font: 400 1.35rem var(--mono); color: var(--link); }
.faq details[open] summary::after { content: '\2212'; }
.faq details p { color: var(--muted); padding-bottom: 6px; }

/* Forms */
.form-wrap { background: var(--bg); border: 1px solid var(--line-strong); border-radius: var(--radius); padding: 24px; }
@media (min-width: 640px) { .form-wrap { padding: 32px; } }
.form-wrap h2 { font-size: 1.5rem; }
.lead-form { display: grid; gap: 16px; }
.field-row { display: grid; gap: 16px; }
@media (min-width: 640px) { .field-row { grid-template-columns: 1fr 1fr; } }
.field label { display: block; font-weight: 500; font-size: .92rem; margin-bottom: 6px; }
.req { color: var(--link); }
.field input, .field select, .field textarea { width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: var(--bg); border: 1px solid var(--line-strong); border-radius: var(--radius); padding: 11px 12px; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 3px solid var(--highlight); outline-offset: 0; border-color: var(--primary); }
.field textarea { resize: vertical; min-height: 110px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-note { font-size: .86rem; color: var(--muted); margin: 0; }

/* CTA band */
.cta-band { background: var(--band); color: var(--band-ink); padding: 64px 0; }
.cta-band h2 { color: #fff; max-width: 20ch; }
.cta-band p { max-width: 560px; }
.cta-band a:not(.btn) { color: #fff; }
.cta-inner { display: grid; gap: 28px; }
.cta-actions { display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; }
@media (min-width: 900px) { .cta-band { padding: 84px 0; } .cta-inner { grid-template-columns: 7fr 5fr; align-items: end; gap: 64px; } }

/* Hub note: one plain line */
.hub-note { display: grid; gap: 10px 32px; align-items: baseline; }
.hub-note h3 { margin: 0 0 4px; }
.hub-note p { margin: 0; color: var(--muted); }
@media (min-width: 800px) { .hub-note { grid-template-columns: 1fr auto; } }

/* Footer */
.site-footer { background: var(--footer); color: var(--footer-ink); padding: 60px 0 28px; font-size: .95rem; }
.site-footer a { color: #e6eceb; text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.footer-grid { display: grid; gap: 36px; }
@media (min-width: 720px) { .footer-grid { grid-template-columns: 1.5fr 1fr 1fr 1.2fr; } }
.footer-logo { display: flex; align-items: center; gap: 10px; font: 700 1.25rem var(--display); letter-spacing: -0.3px; color: #fff; }
.footer-head { font: 500 .78rem var(--mono); color: #fff; margin-bottom: 14px; }
.site-footer ul { list-style: none; padding: 0; margin: 0 0 16px; }
.site-footer li { margin-bottom: 9px; }
.footer-small { font-size: .88rem; color: #93a19e; }
.footer-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 48px; padding-top: 22px; font-size: .86rem; color: #8a9895; }
.footer-base p { margin: 0; }

/* Legal */
.legal h2 { font-size: 1.4rem; margin-top: 1.8em; }

/* ---------- Home: dark hero with the check card ---------- */
.hero-dark { background: var(--navy); color: #dfe5ea; padding: 40px 0 48px; position: relative; overflow: hidden; }
.hero-dark::before { content: ''; position: absolute; inset: 0; background: radial-gradient(900px 420px at 85% 0%, rgba(169, 199, 217, .16), transparent 70%); pointer-events: none; }
.hero-dark .container { position: relative; }
.hero-dark h1 { color: #fff; max-width: 13ch; margin-bottom: .35em; }
.hero-dark .lead { color: #c9d3db; max-width: 34em; }
.hero-badge { display: inline-flex; align-items: center; gap: 12px; padding: 10px 16px 10px 12px; border: 1px solid rgba(255, 255, 255, .16); background: rgba(255, 255, 255, .06); border-radius: 6px; margin-bottom: 26px; }
.hero-badge strong { display: block; font: 500 1.35rem/1 var(--mono); color: #fff; }
.hero-badge span { font: 500 .72rem/1.3 var(--mono); color: #b9c6d0; text-transform: uppercase; letter-spacing: .08em; }
.hero-ticks { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 10px; }
.hero-ticks li { margin: 0; padding-left: 30px; position: relative; color: #e8edf1; }
.hero-ticks li::before { content: ''; position: absolute; left: 0; top: .25em; width: 18px; height: 18px; border-radius: 50%; background: var(--sky) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%231e202d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat; }
.hero-dark .link-arrow { color: #fff; }
.hero-layout { display: grid; gap: 36px; align-items: center; }
@media (min-width: 980px) {
  .hero-dark { padding: 80px 0 88px; }
  .hero-layout { grid-template-columns: 6fr 5fr; gap: 64px; }
}

/* The white "what's wrong" card form */
.check-card { background: #fff; color: #1e202d; border-radius: 10px; padding: 26px 22px; box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .55); }
.check-card h2 { font-size: 1.9rem; color: #1e202d; margin-bottom: 6px; }
.check-card > p { color: #4f5d61; margin-bottom: 20px; }
.check-card .field label { color: #1e202d; }
.check-card .field input, .check-card .field select { background: #fff; color: #1e202d; border-color: #c9d3da; padding: 14px 14px; }
.check-card .lead-form { gap: 14px; }
.check-card .form-note { color: #5b6770; }
.check-card .form-note a { color: #0b5d4b; }
@media (min-width: 640px) { .check-card { padding: 34px 32px; } }

/* Navy proof strip under the hero */
.stat-strip { background: var(--navy-2); color: #c9d3db; border-top: 1px solid rgba(255, 255, 255, .08); }
.stat-strip ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; }
.stat-strip li { margin: 0; padding: 22px 14px; text-align: center; border-right: 1px solid rgba(255, 255, 255, .1); border-bottom: 1px solid rgba(255, 255, 255, .1); }
.stat-strip li:nth-child(2n) { border-right: 0; }
.stat-strip strong { display: block; font: 600 1.3rem/1.2 var(--display); color: #fff; letter-spacing: -0.2px; }
.stat-strip span { font-size: .9rem; }
@media (min-width: 860px) {
  .stat-strip ul { grid-template-columns: repeat(4, 1fr); }
  .stat-strip li { border-bottom: 0; border-right: 1px solid rgba(255, 255, 255, .1); padding: 28px 16px; }
  .stat-strip li:nth-child(2n) { border-right: 1px solid rgba(255, 255, 255, .1); }
  .stat-strip li:last-child { border-right: 0; }
}

/* Case study: phone mockup beside the story */
.case { display: grid; gap: 40px; align-items: center; }
.phone { justify-self: center; width: min(300px, 78vw); border-radius: 38px; padding: 12px; background: #11131c; box-shadow: 0 40px 70px -35px rgba(30, 32, 45, .6), inset 0 0 0 2px #2c3040; }
.phone img { display: block; width: 100%; height: auto; border-radius: 28px; }
.case-tag { display: inline-block; font: 500 .74rem/1 var(--mono); text-transform: uppercase; letter-spacing: .08em; color: #0b5d4b; background: #e3efea; padding: 7px 10px; border-radius: 4px; margin-bottom: 16px; }
.case .check-list { margin: 22px 0 28px; }
@media (min-width: 900px) { .case { grid-template-columns: 5fr 7fr; gap: 72px; } }

/* A word from Aidan */
.founder { background: var(--navy); color: #c9d3db; }
.founder-inner { display: grid; gap: 28px; align-items: center; }
.founder blockquote { margin: 0; font: 500 clamp(1.25rem, 2.6vw, 1.6rem)/1.45 var(--sans); color: #fff; }
.founder blockquote p::before { content: '\201C'; } .founder blockquote p::after { content: '\201D'; }
.founder-who { display: flex; align-items: center; gap: 14px; margin-top: 24px; }
.founder-mark { width: 56px; height: 56px; border-radius: 50%; background: var(--sky); color: var(--navy); display: grid; place-items: center; font: 700 1.3rem var(--display); flex: none; }
.founder-who strong { display: block; color: #fff; font: 600 1.2rem var(--display); letter-spacing: -0.2px; }
.founder h2 { color: #fff; }
@media (min-width: 900px) { .founder-inner { grid-template-columns: 4fr 8fr; gap: 72px; } }

/* Results wall (renders only when src/results.json has entries) */
.results-grid { list-style: none; padding: 0; margin: 0; display: grid; gap: 18px; }
@media (min-width: 720px) { .results-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .results-grid { grid-template-columns: repeat(3, 1fr); } }
.result-card { margin: 0; background: var(--bg); border: 1px solid var(--line); border-top: 4px solid #0b5d4b; border-radius: 8px; padding: 22px; }
.result-type { font: 500 .74rem var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: 10px; }
.result-figure { font: 500 1.75rem/1.2 var(--mono); color: var(--ink); margin-bottom: 6px; }
.result-label { font-weight: 600; margin-bottom: 10px; }
.result-work, .result-client { color: var(--muted); font-size: .95rem; margin: 0; }
.result-client { margin-top: 8px; font-style: italic; }

/* Report figure under "How we start" */
.split .report { margin-top: 28px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
}
