/* Layout: a left-aligned column of plain sections; the one loud thing is a drawn street of five buildings, one per line of work. Investor tools (deal pack, yield check, fees) sit below the everyday services. */
:root {
  --stone: #E9ECE8;      /* page ground: cool doorstep stone */
  --paper: #F6F7F4;      /* raised surfaces, form fields */
  --ink: #12303A;        /* petrol front-door blue: text and ground line */
  --ink-soft: #4A626A;
  --line: #C6CEC9;
  --brass: #A9782A;      /* door furniture: marks and details only */
  --brass-text: #7A5516;
  --panel: #12303A;
  --on-panel: #F1F3EE;
  --on-panel-soft: #B8C7C8;
  --panel-line: #2E4F5A;
  --panel-brass: #D7A44A;
  --btn: #12303A;
  --on-btn: #F1F3EE;
  --alert: #9B2C1F;

  --brick: #9C4A3A;
  --stucco: #D8D1C2;
  --paint: #8FA89B;
  --slate: #3C4A52;
  --door: #12303A;
  --glass: #BFD0D4;
  --glass-lit: #F2CC6B;
  --leaf: #5E7F5A;

  --display: "Young Serif", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --body: "Albert Sans", "Segoe UI", system-ui, -apple-system, Helvetica, Arial, sans-serif;

  --s-1: 0.875rem;
  --s0: 1.0625rem;
  --s1: 1.25rem;
  --s2: 1.625rem;
  --s3: clamp(1.75rem, 3.6vw, 2.375rem);
  --s4: clamp(2.3rem, 6.2vw, 4.25rem);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --stone: #0E2229; --paper: #15303A; --ink: #EAEDE6; --ink-soft: #A5B6B8; --line: #2A4650;
    --brass: #D7A44A; --brass-text: #E2B665;
    --panel: #1A3944; --on-panel: #F1F3EE; --on-panel-soft: #B8C7C8; --panel-line: #33545F; --panel-brass: #D7A44A;
    --btn: #D7A44A; --on-btn: #0E2229; --alert: #F0A092;
    --brick: #7E3F33; --stucco: #6B777B; --paint: #4C6459; --slate: #2B4652;
    --door: #0A1A20; --glass: #F0C665; --glass-lit: #FFE8A8; --leaf: #4F7350;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --stone: #0E2229; --paper: #15303A; --ink: #EAEDE6; --ink-soft: #A5B6B8; --line: #2A4650;
  --brass: #D7A44A; --brass-text: #E2B665;
  --panel: #1A3944; --on-panel: #F1F3EE; --on-panel-soft: #B8C7C8; --panel-line: #33545F; --panel-brass: #D7A44A;
  --btn: #D7A44A; --on-btn: #0E2229; --alert: #F0A092;
  --brick: #7E3F33; --stucco: #6B777B; --paint: #4C6459; --slate: #2B4652;
  --door: #0A1A20; --glass: #F0C665; --glass-lit: #FFE8A8; --leaf: #4F7350;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--stone);
  color: var(--ink);
  font-family: var(--body);
  font-size: var(--s0);
  line-height: 1.6;
  padding-left: max(clamp(16px, 4vw, 48px), env(safe-area-inset-left, 0px));
  padding-right: max(clamp(16px, 4vw, 48px), env(safe-area-inset-right, 0px));
  padding-block: 0;
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

.wrap { max-width: 1120px; margin-inline: auto; }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
h1, h2, h3 { font-family: var(--display); font-weight: 400; line-height: 1.12; text-wrap: balance; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--brass); outline-offset: 3px; border-radius: 2px; }

.eyebrow {
  font-size: var(--s-1); font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase;
  color: var(--brass-text);
}

/* Header */
.site-head {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 12px 32px; padding-block: 22px;
}
.brand { display: grid; gap: 10px; width: min(390px, 100%); container-type: inline-size; text-decoration: none; }
.brand::before { content: ""; display: block; aspect-ratio: 13 / 5; border-radius: 12px; background: #0E1218 url(data:image/webp;base64,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) center / cover no-repeat; }
.brand-name { text-align: center; font-family: var(--body); font-weight: 700; font-size: 6.2cqw; line-height: 1; letter-spacing: .05em; text-transform: uppercase; color: var(--ink); white-space: nowrap; }
.brand-name em { font-style: normal; color: var(--brass); }

.s-hand { fill: var(--ink); }
.s-star { fill: var(--brass); stroke: var(--brass); stroke-width: 3; stroke-linejoin: round; }
.site-nav { display: flex; flex-wrap: wrap; gap: 6px 22px; font-size: 0.9375rem; font-weight: 500; }
.site-nav a { text-decoration: none; padding-block: 4px; border-bottom: 2px solid transparent; }
.site-nav a:hover { border-bottom-color: var(--brass); }

/* Page rhythm */
main { display: grid; gap: clamp(60px, 9vw, 112px); padding-block: clamp(20px, 4vw, 44px) clamp(60px, 9vw, 112px); }
.sec-head { display: grid; gap: 12px; max-width: 46rem; margin-bottom: clamp(24px, 4vw, 40px); }
.sec-head h2 { font-size: var(--s3); }
.sec-head p { color: var(--ink-soft); max-width: 60ch; }

/* Hero */
.hero { display: grid; gap: clamp(32px, 5vw, 56px); }
.hero-copy { display: grid; gap: 20px; justify-items: start; }
.hero h1 { font-size: var(--s4); max-width: 17ch; letter-spacing: -0.01em; }
.hero .lead { font-size: var(--s1); line-height: 1.5; color: var(--ink-soft); max-width: 58ch; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 4px; }
.btn {
  display: inline-block; font: inherit; font-weight: 600; font-size: 1rem; line-height: 1.2;
  padding: 14px 22px; border-radius: 3px; border: 2px solid var(--btn); text-decoration: none; cursor: pointer;
}
.btn-solid { background: var(--btn); color: var(--on-btn); }
.btn-line { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn:hover { filter: brightness(1.12); }

/* The street */
.street { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); } /* one column per visible plot: 5 when all return */
.plot { display: grid; gap: 10px; text-decoration: none; min-width: 0; }
.plot svg { display: block; width: 100%; height: auto; border-bottom: 3px solid var(--ink); }
.plot-label { font-size: clamp(0.6875rem, 1.9vw, 0.9375rem); font-weight: 600; text-align: center; padding-inline: 2px; }
.plot:hover .plot-label, .plot:focus-visible .plot-label { color: var(--brass-text); }
.plot:hover .s-glass, .plot:focus-visible .s-glass { fill: var(--glass-lit); }
.s-brick { fill: var(--brick); } .s-stucco { fill: var(--stucco); } .s-paint { fill: var(--paint); }
.s-roof { fill: var(--slate); } .s-door { fill: var(--door); } .s-brass { fill: var(--brass); }
.s-post { fill: var(--ink-soft); } .s-tree { fill: var(--leaf); }
.s-glass { fill: var(--glass); }
.s-dash { fill: none; stroke: var(--ink-soft); stroke-width: 2.5; stroke-dasharray: 8 7; }
.s-note { fill: var(--paper); stroke: var(--ink-soft); stroke-width: 1.5; }
@media (prefers-reduced-motion: no-preference) { .s-glass { transition: fill 0.25s ease; } }

/* Credentials strip */
.creds { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; padding-block: 20px; border-block: 1px solid var(--line); }
.creds div { min-width: 0; font-size: var(--s-1); color: var(--ink-soft); }
.creds strong { display: block; color: var(--ink); font-weight: 700; font-size: 0.9375rem; margin-bottom: 2px; }

/* Services */
.service {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); gap: 16px clamp(24px, 5vw, 64px);
  padding-block: clamp(24px, 4vw, 36px); border-top: 1px solid var(--line);
}
.service:last-child { border-bottom: 1px solid var(--line); }
.service-name { display: grid; gap: 8px; align-content: start; }
.service-name h3 { font-size: var(--s2); }
.service-body { display: grid; gap: 16px; min-width: 0; }
.service-body > p { max-width: 62ch; }
.ticks { display: grid; gap: 8px; }
.ticks li { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 12px; align-items: baseline; color: var(--ink-soft); }
.ticks li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--brass); transform: translateY(-1px); }

/* Sourcing panel */
.panel { background: var(--panel); color: var(--on-panel); border-radius: 4px; padding: clamp(24px, 5vw, 56px); display: grid; gap: clamp(24px, 4vw, 40px); }
.panel .eyebrow { color: var(--panel-brass); }
.panel-head { display: grid; gap: 12px; max-width: 44rem; }
.panel-head h2 { font-size: var(--s3); }
.panel-head p { color: var(--on-panel-soft); }
.finds { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); }
.finds li { display: grid; gap: 8px; align-content: start; padding-top: 18px; border-top: 2px solid var(--panel-brass); }
.finds h3 { font-size: var(--s1); font-family: var(--body); font-weight: 700; }
.finds p { color: var(--on-panel-soft); font-size: 1rem; }
.finds .terms { font-size: var(--s-1); color: var(--on-panel); font-weight: 500; }

/* Deal pack inside the panel */
.pack { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: clamp(20px, 4vw, 48px); padding-top: clamp(20px, 3vw, 32px); border-top: 1px solid var(--panel-line); }
.pack-copy { display: grid; gap: 10px; align-content: start; }
.pack-copy h3 { font-size: var(--s2); }
.pack-copy p { color: var(--on-panel-soft); }
.figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--panel-line); border: 1px solid var(--panel-line); border-radius: 3px; overflow: hidden; }
.figs div { background: var(--panel); padding: 14px 16px; min-width: 0; }
.figs dt { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--on-panel-soft); }
.figs dd { font-family: var(--display); font-size: var(--s1); font-variant-numeric: tabular-nums; }
.tag { justify-self: start; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 5px 10px; border: 1.5px dashed currentColor; border-radius: 999px; opacity: 0.85; }

/* Yield check */
.calc { display: grid; gap: 16px; padding: 20px; background: var(--paper); border: 1.5px solid var(--line); border-radius: 4px; }
.calc-in { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.calc-out { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.gauge { display: grid; gap: 4px; padding-top: 10px; border-top: 2px solid var(--brass); }
.gauge span { font-size: var(--s-1); font-weight: 600; color: var(--ink-soft); }
.gauge output { font-family: var(--display); font-size: var(--s3); line-height: 1.1; font-variant-numeric: tabular-nums; }
.calc .draft-note { margin: 0; }

.classes { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { font-size: var(--s-1); font-weight: 500; padding: 7px 12px; border-radius: 999px; border: 1.5px solid var(--line); background: var(--paper); }

/* Case studies */
.cases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 3vw, 28px); }
.case { display: grid; gap: 12px; padding: 22px; border: 1.5px dashed var(--ink-soft); border-radius: 4px; min-width: 0; }
.case h3 { font-size: var(--s1); }
.case p { color: var(--ink-soft); font-size: 1rem; }
.case .result { color: var(--ink); font-weight: 600; }
@media (max-width: 1000px) { .cases { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.case dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.case dt { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); }
.case dd { font-family: var(--display); }

/* About / mission */
.mission { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: clamp(24px, 5vw, 64px); align-items: start; }
.mission h2 { font-size: var(--s3); margin-top: 12px; }
.mission .statement { font-family: var(--display); font-size: var(--s1); line-height: 1.5; max-width: 60ch; }
.values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 28px; margin-top: 28px; }
.values li { display: grid; gap: 4px; padding-top: 14px; border-top: 2px solid var(--brass); min-width: 0; }
.values h3 { font-family: var(--body); font-weight: 700; font-size: 1.0625rem; }
.values p { color: var(--ink-soft); font-size: 1rem; }
.mission-body { display: grid; gap: 16px; max-width: 62ch; }
.mission-body p { color: var(--ink-soft); }
.mission-body .statement { color: var(--ink); }
.mission .tagline { font-weight: 700; color: var(--ink); padding-top: 14px; border-top: 2px solid var(--brass); }
.mission .tagline em { font-style: normal; color: var(--brass-text); }
@media (max-width: 760px) { .mission { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .values { grid-template-columns: minmax(0, 1fr); } }

/* Steps */
.steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); counter-reset: step; }
.steps li { display: grid; gap: 8px; align-content: start; counter-increment: step; }
.steps li::before { content: counter(step); font-family: var(--display); font-size: 2.25rem; line-height: 1; color: var(--brass-text); }
.steps h3 { font-family: var(--body); font-weight: 700; font-size: var(--s1); }
.steps p { color: var(--ink-soft); }

/* Enquiry */
.enquire { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.field { display: grid; gap: 6px; min-width: 0; }
.field.wide { grid-column: 1 / -1; }
label { font-size: var(--s-1); font-weight: 600; }
label small { font-weight: 400; color: var(--ink-soft); font-size: inherit; }
input, select, textarea {
  font: inherit; font-size: 1rem; color: var(--ink); background: var(--paper);
  border: 1.5px solid var(--line); border-radius: 3px; padding: 12px 12px; width: 100%; min-width: 0;
}
.calc input { background: var(--stone); font-variant-numeric: tabular-nums; }
textarea { min-height: 120px; resize: vertical; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--brass); outline-offset: 1px; border-color: var(--ink); }
.form-foot { grid-column: 1 / -1; display: grid; gap: 14px; justify-items: start; }
.status { font-size: 1rem; padding: 12px 14px; border-radius: 3px; border: 1.5px solid var(--brass); background: var(--paper); max-width: 60ch; }
.status[data-state="error"] { border-color: var(--alert); color: var(--alert); }

.contact { display: grid; gap: 16px; padding: 22px; border: 1.5px dashed var(--ink-soft); border-radius: 4px; }
.contact h3 { font-family: var(--body); font-weight: 700; font-size: var(--s1); }
.contact dl { display: grid; gap: 12px; }
.contact dt { font-size: var(--s-1); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-soft); }
.contact dd { font-weight: 500; }
.draft-note { font-size: var(--s-1); color: var(--ink-soft); }

/* Footer */
.site-foot {
  display: grid; gap: 14px;
  padding-block: 26px 36px; border-top: 1px solid var(--line); font-size: var(--s-1); color: var(--ink-soft);
}
.foot-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 28px; }
.site-foot nav { display: flex; flex-wrap: wrap; gap: 6px 20px; }

@media (max-width: 860px) {
  .creds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calc-in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pack { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .service, .enquire { grid-template-columns: minmax(0, 1fr); }
  .finds, .steps, .cases { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  form { grid-template-columns: minmax(0, 1fr); }
  .btn { width: 100%; text-align: center; }
  .actions { width: 100%; }
  .figs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .creds { grid-template-columns: minmax(0, 1fr); }
}
/* added for the live site: data tables, FAQ, notices */
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 4px; background: var(--paper); }
.data-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; font-size: 1rem; }
.data-table th, .data-table td { padding: 10px 14px; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; }
.data-table th { font-size: var(--s-1); font-weight: 600; color: var(--ink-soft); }
.data-table td.num, .data-table th.num { text-align: right; }
.data-table tr:last-child td { border-bottom: 0; }
.faq { display: grid; gap: 0; border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); padding-block: 18px; }
.faq summary { cursor: pointer; font-family: var(--display); font-size: var(--s1); line-height: 1.3; list-style-position: inside; }
.faq details p { margin-top: 10px; color: var(--ink-soft); max-width: 66ch; }
.page-intro { display: grid; gap: 16px; max-width: 46rem; }
.page-intro h1 { font-size: var(--s4); letter-spacing: -0.01em; }
.page-intro .lead { font-size: var(--s1); line-height: 1.5; color: var(--ink-soft); }
.prose { display: grid; gap: 14px; max-width: 66ch; }
.prose h2 { font-size: var(--s2); margin-top: 18px; }
.prose p, .prose li { color: var(--ink-soft); }
.prose ul { list-style: disc; padding-left: 1.2em; display: grid; gap: 6px; }
.towns { display: flex; flex-wrap: wrap; gap: 8px; }
.check-row { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; }
.check-row input { width: 20px; height: 20px; flex: none; margin-top: 2px; accent-color: var(--brass); }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
