/* Balanced reading hierarchy: body 15–16px, labels 14–15px, secondary notes 13px. */
:root { --muted: #505f57; }
body { font-size: 16px; line-height: 1.65; }
.hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; }
.hero-copy, .simulator, .settings-content, .section-head > *, .caps-section > *,
.faq-section > *, .journey article, .projects article { min-width: 0; }
.eyebrow, .hero .eyebrow, .sim-top .eyebrow, .example .eyebrow, .contact .eyebrow {
  font-size: 12px; line-height: 1.6; letter-spacing: 1.3px;
}
.sim-top .eyebrow { font-size: 14px; font-weight: 600; letter-spacing: 1px; }
.header nav, .header .button, .button, .text-link { font-size: 14px; }
.lead { font-size: 19px; }
.intro, .hero-risk p, .micro, .help, .simulator .help, .simulator .micro,
.tax-input span, .scale, .fit, .settings summary, .result-row, .result-row small,
.gain > div > span, .gain small, .result-detail, .result-warning, .error, .disclaimer,
.principle-strip > span, .principle-strip p, .section-head > p, .journey p, .step-label,
.example p, .example > small, .equation span, .project-art > span, .projects p,
.caps-intro > p:not(.eyebrow), .caps-explain > p, .caps-explain .help,
.cap-number > span, .cap-number p, .checklist article > span, .checklist p,
.risks-box p, .operator-source p, .operator-source summary, .faq p, .faq summary,
details p, details li, summary, .contact p, .contact-action > p, .sources summary,
.source-content p, .source-content li, footer p, footer button, .preview-note,
dialog p, .dialog-notice p, .dialog-notice strong {
  font-size: 15px; line-height: 1.65;
}
.intro, .lead, .hero-risk { max-width: none; }
.simulator label { font-size: 15px; line-height: 1.6; margin-bottom: 8px; }
.simulator .check { font-size: 14px; }
.settings-content input[type=number], .settings-content select {
  font-size: 15px; min-width: 0; max-width: 100%; min-height: 44px;
}
.settings-content .help { margin: 12px 0 24px; }
.simulator .tax-input input { font-size: 43px; }
.simulator .result-row { align-items: center; padding-block: 16px; gap: 20px; }
.simulator .result-row strong { font-size: 24px; padding-top: 1px; }
.simulator .result-row > span { max-width: 67%; }
.simulator .result-row small { margin-top: 5px; }
.simulator .gain { gap: 18px; padding: 18px; margin-block: 18px 14px; }
.simulator .gain strong { font-size: 34px; }
.simulator .gain > div > span { font-size: 15px; font-weight: 500; }
.simulator .fit { padding: 10px; align-items: baseline; }
.simulator .scale { flex-wrap: wrap; gap: 10px; }
.simulator .disclaimer { margin-top: 20px; }
.hero-risk { margin-top: 28px; }
.hero-risk strong { font-weight: 600; }
.principle-strip { grid-template-columns: 1fr 1.3fr 1.3fr 30px; }
.principle-strip > span, .step-label, .project-art > span, .checklist article > span,
.cap-number > span { letter-spacing: .5px; }
.section-head { align-items: start; }
.section-head > p { max-width: 430px; }
.journey h3, .checklist h3, .projects h3 { font-size: 24px; }
.example { grid-template-columns: 1fr 1.5fr; padding: 30px; gap: 30px; }
.example h3 { font-size: 23px; }
.example p { max-width: 720px; }
.equation { justify-content: space-between; gap: 16px; }
.equation strong { font-size: 28px; line-height: 1.3; }
.equation span { display: block; margin-top: 8px; }
.equation b { font-size: 22px; }
.project-art { height: 225px; }
.project-art > span { padding: 12px 16px; }
.risks-box h3 { font-size: 21px; }
.source-content { max-width: 950px; }
.source-content li { margin-bottom: 15px; }
.source-content a { overflow-wrap: anywhere; }
.contact h2 { max-width: 680px; }
.contact { gap: 30px; flex-wrap: wrap; }
footer { flex-wrap: wrap; }
.preview-note { max-width: 1050px; margin: auto; padding: 16px 20px 26px; color: var(--muted); }

.timing-highlight { border-left: 3px solid var(--gold); padding: 0 0 0 20px; margin: 27px 0 30px; }
.timing-highlight strong { font-size: 17px; font-weight: 500; line-height: 1.45; display: block; }
.timing-highlight p { font-size: 14px; color: var(--muted); margin: 9px 0; }
.timing-highlight a { font-size: 14px; text-decoration: underline; text-underline-offset: 5px; }
.timing-section { background: #eeeee4; }
.fiscal-timeline { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 35px; padding: 0; margin: 40px 0; list-style: none; }
.fiscal-timeline li { border-top: 2px solid #a5b296; padding-top: 22px; }
.time-label { font-size: 12px; line-height: 1.6; font-weight: 500; color: #566846; display: block; }
.fiscal-timeline h3 { font-size: 23px; margin: 20px 0; line-height: 1.3; }
.fiscal-timeline p, .timing-note p, .comparison-heading p, .fiscal-comparison dd,
.timing-sources { font-size: 15px; line-height: 1.7; color: var(--muted); }
.fiscal-timeline p:last-child { margin-bottom: 0; }
.timing-note { border: 1px solid #bec8b5; border-radius: 12px; padding: 25px 30px; }
.timing-note strong { font-size: 18px; font-weight: 500; }
.timing-note p { margin: 12px 0 0; }
.comparison-heading { margin-top: 55px; }
.comparison-heading h3 { font-size: 27px; margin-bottom: 15px; }
.comparison-heading p { max-width: 850px; margin-bottom: 30px; }
.fiscal-comparison { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px; }
.fiscal-comparison article { padding: 28px; border-radius: 12px; background: var(--white); }
.fiscal-comparison h3 { font-size: 23px; padding-bottom: 20px; margin: 0; border-bottom: 1px solid var(--line); }
.fiscal-comparison dl { margin: 0; }
.fiscal-comparison dt { font-size: 15px; font-weight: 500; margin-top: 24px; }
.fiscal-comparison dd { margin: 7px 0 0; }
.timing-sources { margin: 28px 0 0; }
.timing-sources a { text-decoration: underline; text-underline-offset: 3px; }
@media(max-width:1000px) {
  .hero { gap: 32px; }
  .header nav { gap: 20px; }
  .projects { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
  .fiscal-timeline, .fiscal-comparison { grid-template-columns: 1fr; gap: 28px; }
  .fiscal-timeline h3 br { display: none; }
  .fiscal-comparison article { padding: 28px; }
  .simulator .result-row { flex-direction: column; gap: 12px; }
  .simulator .result-row > span { max-width: none; }
  .simulator .gain { flex-wrap: wrap; }
  .caps-section { gap: 40px; }
}
@media(max-width:850px) {
  .hero { grid-template-columns: minmax(0,1fr); gap: 40px; }
  .simulator { max-width: 620px; width: 100%; margin-inline: auto; padding: 32px; }
  .hero-copy { max-width: 650px; }
  .principle-strip { grid-template-columns: 1fr 1fr; }
  .section-head, .faq-section { display: block; }
  .section-head > p { max-width: none; margin-top: 24px; }
  .journey, .checklist, .caps-section { grid-template-columns: 1fr; gap: 32px; }
  .journey article { display: block; }
  .journey h3 br, .checklist h3 br { display: none; }
  .step-number { margin-bottom: 18px; }
  .example { padding: 28px; }
  .equation strong { font-size: 31px; }
  footer { display: grid; grid-template-columns: 1fr; text-align: center; gap: 20px; }
  footer .brand { justify-self: center; }
  footer > div { margin: 0; justify-content: center; flex-wrap: wrap; }
}
@media(max-width:620px) {
  .header { flex-wrap: nowrap; gap: 15px; }
  .header nav { width: auto; }
  .header .button { font-size: 12px; padding: 11px 14px; width: auto; gap: 10px; }
  .header .brand { font-size: 28px; }
  .header .brand i { font-size: 25px; }
  .simulator { padding: 25px 22px; }
  .sim-top { align-items: start; gap: 14px; }
  .sim-top .eyebrow { font-size: 14px; }
  .simulator label { font-size: 15px; }
  .simulator .button { font-size: 14px; padding-inline: 20px; }
  .simulator .gain { margin-inline: 0; }
  .simulator .result-row strong { font-size: 25px; }
  .simulator .gain strong { font-size: 34px; }
  .principle-strip { grid-template-columns: 1fr; }
  .example { padding: 25px; }
  .equation { display: grid; grid-template-columns: 1fr; gap: 12px; }
  .equation > div { padding: 8px 0; }
  .equation strong { font-size: 32px; }
  .equation span { font-size: 14px; margin-top: 5px; }
  .equation b { font-size: 24px; line-height: 1; }
  .equation-gain { border-top: 1px solid #c6d0bd; padding-top: 16px !important; }
  .projects { grid-template-columns: 1fr; }
  .project-art { height: 240px; }
  .project-art svg { height: 175px; }
  .project-art > span { font-size: 12px; padding: 12px 20px; }
  .projects h3 { font-size: 24px; }
  .timing-note, .fiscal-comparison article { padding: 24px; }
  .contact { padding: 30px 24px; }
  .contact p { font-size: 15px; }.contact-action > p { font-size: 13px; }
  .contact .button { font-size: 14px; gap: 15px; padding-inline: 18px; }
}

/* Secondary reading level, distinct from body copy and key values. */
.hero-risk p, .micro, .simulator .micro, .simulator .help, .help,
.tax-input span, .scale, .fit, .settings summary, .result-row small, .gain small,
.result-detail, .result-warning, .error, .disclaimer, .example p, .example > small,
.cap-number p, .caps-explain .help, .risks-box p, .operator-source p,
.operator-source summary, .source-content p, .source-content li, .sources summary,
.contact-action > p, footer p, footer button, .preview-note, .timing-sources {
  font-size: 13px; line-height: 1.65;
}
#tax-help { font-size: 14px; }
.principle-strip > span, .step-label, .checklist article > span, .cap-number > span,
.project-art > span { font-size: 12px; line-height: 1.6; letter-spacing: .8px; }
.equation span { font-size: 14px; }
.equation strong { letter-spacing: -.7px; }
.faq summary, .simulator .result-row { font-size: 15px; }
.example .eyebrow { font-size: 12px; }
@media(max-width:1100px) { .example { grid-template-columns: 1fr; } }
@media(min-width:621px) and (max-width:850px) {
  .simulator .result-row { flex-direction: row; align-items: center; }
  .simulator .result-row > span { max-width: 67%; }
}
@media(min-width:361px) and (max-width:620px) {
  .simulator .result-row { flex-direction: row; align-items: center; }
  .simulator .result-row > span { max-width: 61%; }
}
@media(max-width:360px) {
  .header { flex-wrap: wrap; }
  .header nav { width: 100%; }
  .header .button { width: 100%; font-size: 13px; }
}
.fiscal-timeline { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 50px; }
.timing-section .section-head { flex-direction: column; gap: 20px; }
.timing-section .section-head > p { max-width: 850px; margin: 0; }
.timing-followup { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 45px; margin-top: 35px; }
.timing-followup h3, .timing-contrast h3 { font-size: 23px; line-height: 1.35; margin-bottom: 15px; }
.timing-followup p, .timing-contrast p { font-size: 15px; line-height: 1.7; color: var(--muted); }
.timing-followup p:last-child, .timing-contrast p:last-child { margin-bottom: 0; }
.timing-contrast { margin-top: 35px; border-top: 1px solid #c8d0be; padding-top: 28px; max-width: 950px; }
@media(max-width:750px) {
  .fiscal-timeline, .timing-followup { grid-template-columns: 1fr; gap: 28px; }
}
.scroll-cue { display: flex; justify-content: center; align-items: center; padding-block: 8px 18px; }
.scroll-cue a { display: grid; place-items: center; width: 48px; height: 48px; font-size: 27px; line-height: 1; border: 1px solid var(--line); border-radius: 50%; }
.scroll-cue a:hover { background: var(--sage); }
.scope-label { font-size: 15px; font-weight: 500; margin-bottom: 8px; }
.section-actions { margin-top: 32px; }
.caps-intro .section-estimate, .faq-section .section-estimate { margin-top: 18px; }
.section-estimate { max-width: 100%; }
.tax-input input:focus { outline: 2px solid var(--gold); outline-offset: 4px; border-radius: 4px; }
footer.wrap { border-top: 0; }
@media(max-width:620px) {
  .section-actions { margin-top: 26px; }
  .section-estimate { width: 100%; }
  .faq-section .section-estimate { margin-bottom: 26px; }
}
.example .example-comparison {
  grid-column: 1 / -1;
  max-width: none;
  margin: 0;
  line-height: 1.65;
}
.hero-projection {
  margin-top: 30px;
  padding: 26px;
  border-radius: 18px;
  background: var(--ink);
  color: #f5f3e9;
}
.projection-heading { margin: 0 0 22px; font-size: 15px; font-weight: 500; color: #d9dfc9; }
.projection-flow { display: grid; grid-template-columns: minmax(0,1fr) 28px minmax(0,1fr); align-items: center; gap: 12px; }
.projection-year { display: inline-block; font-size: 12px; letter-spacing: 1.2px; color: #d9dfc9; border-bottom: 1px solid #758579; padding-bottom: 5px; margin-bottom: 12px; }
.projection-label { display: block; font-size: 13px; margin-bottom: 7px; }
.projection-flow strong { display: block; font-size: clamp(28px,2.7vw,39px); font-weight: 500; line-height: 1.2; letter-spacing: -1.3px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.projection-arrow { color: #d9dfc9; font-size: 27px; padding-top: 43px; text-align: center; }
.projection-gain { margin-top: 25px; border-top: 1px solid #677a6d; padding-top: 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.projection-gain > div > span { display: block; font-size: 13px; color: #d9dfc9; }
.projection-gain strong { font-size: 37px; line-height: 1.4; font-weight: 500; letter-spacing: -1px; font-variant-numeric: tabular-nums; }
.projection-rate { background: #dce5c8; color: var(--ink); border-radius: 12px; padding: 10px 16px; font-size: 26px; font-weight: 500; text-align: center; white-space: nowrap; }
.projection-rate small { display: block; font-size: 11px; font-weight: 400; margin-top: 1px; }
.projection-note { margin: 18px 0 0; color: #d4ddcc; font-size: 12px; line-height: 1.6; }
@media(min-width:851px) and (max-width:1100px) {
  .hero-projection { padding: 20px; }
  .projection-flow { grid-template-columns: minmax(0,1fr) 18px minmax(0,1fr); gap: 6px; }
  .projection-flow strong { font-size: 27px; letter-spacing: -1px; }
}
@media(max-width:400px) {
  .hero-projection { padding: 20px; }
  .projection-flow { grid-template-columns: 1fr; gap: 13px; }
  .projection-flow strong { font-size: 37px; }
  .projection-year { margin-bottom: 7px; }
  .projection-arrow { padding: 0; text-align: left; font-size: 0; }
  .projection-arrow::after { content: "↓"; font-size: 26px; }
  .projection-gain strong { font-size: 32px; }
  .projection-rate { font-size: 22px; padding-inline: 12px; }
}
.visual-timeline { gap: 72px; margin-block: 36px 24px; }
.visual-timeline li { position: relative; }
.visual-timeline li:first-child::after {
  content: "→"; position: absolute; right: -55px; top: 60px;
  color: var(--ink); font-size: 36px; line-height: 1;
}
.timeline-amount { display: block; font-size: 42px; font-weight: 500; letter-spacing: -1px; margin-top: 16px; }
.visual-timeline h3 { margin-block: 8px 12px; }
.timing-detail { margin-block: 20px; }
.timing-detail p { color: var(--muted); }
.timing-five-years { margin-top: 32px; }
.timing-guarantees { grid-template-columns: 1fr; max-width: 950px; }
.sources { padding-bottom: 0; }
footer.wrap {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 32px;
  min-height: 160px;
  padding-block: 30px;
}
footer .brand { justify-self: start; }
footer p { text-align: center; }
footer > div {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  margin: 0;
  padding-top: 0;
}
footer button { padding-block: 6px; }
@media(max-width:700px) {
  footer.wrap { grid-template-columns: 1fr; gap: 24px; padding-block: 32px; }
  footer .brand { justify-self: center; }
  footer > div { align-items: center; }
}
@media(max-width:750px) {
  .visual-timeline { gap: 54px; }
  .visual-timeline li:first-child::after { content: "↓"; top: auto; bottom: -44px; right: auto; left: 0; font-size: 30px; }
  .timeline-amount { font-size: 36px; }
}

/* Header appointment button matches the simulator gain panel. */
.header .button[data-booking] { background: var(--sage); color: var(--ink); }

.footer-legal { grid-column: 1 / -1; color: var(--muted); font-size: 13px; line-height: 1.7; }
footer .footer-legal p { margin: 0 0 10px; text-align: center; }
.footer-legal a { text-decoration: underline; text-underline-offset: 3px; }

/* Align the footer identity, links and company details on one left edge. */
footer.wrap { grid-template-columns: 1fr auto; align-items: start; }
footer .footer-legal p { text-align: left; }
@media (max-width: 700px) {
  footer.wrap { grid-template-columns: 1fr; text-align: left; }
  footer .brand { justify-self: start; }
  footer > div { align-items: flex-start; }
}

/* Center company details in the footer while keeping the brand on the left. */
footer.wrap { grid-template-columns: minmax(150px, 1fr) minmax(0, 3fr) minmax(150px, 1fr); align-items: center; }
footer .brand { grid-column: 1; justify-self: start; }
footer .footer-legal { grid-column: 2; }
footer .footer-legal p { text-align: center; }
@media (max-width: 700px) {
  footer.wrap { grid-template-columns: 1fr; }
  footer .brand { grid-column: 1; justify-self: start; }
  footer .footer-legal { grid-column: 1; }
}

/* Booking stays inside the site; Calendly loads only after a click. */
#booking-dialog { width: min(1000px, calc(100vw - 24px)); max-width: 1000px; max-height: calc(100dvh - 24px); padding: 20px; overflow: auto; }
#booking-dialog h2 { font-size: 25px; margin: 0 40px 16px 0; }
#booking-frame { display: block; width: 100%; height: min(700px, calc(100dvh - 160px)); min-height: 320px; border: 0; background: white; }
body:has(#booking-dialog[open]) { overflow: hidden; }
@media (max-width: 600px) { #booking-dialog { padding: 12px; } #booking-dialog h2 { font-size: 21px; } }

/* Booking and optional advertising measurement. */
#booking-frame iframe { width:100%; height:100%; border:0; }
#measurement-consent { position:fixed; bottom:20px; left:20px; right:20px; max-width:650px; z-index:20; padding:20px; background:var(--paper, #f8f6ef); border:1px solid var(--line); box-shadow:0 6px 30px #0002; }
#measurement-consent[hidden] { display:none; }
#measurement-consent p { font-size:14px; margin:0 0 14px; }
#measurement-consent button { padding:10px 20px; margin-right:12px; border:1px solid var(--ink); background:transparent; color:var(--ink); cursor:pointer; }
#measurement-settings { display:block; margin:0 auto 24px; border:0; background:none; text-decoration:underline; cursor:pointer; font-size:12px; }
