/* ============================================================
   Swati K & Co. — components.css

   Page-specific component styles, extracted from inline <style>
   blocks during the design system uniformity pass.

   Loaded after site.css on every page (via SHELL:CSS marker).
   Selectors here are scoped to component classes that don't
   collide with the chrome defined in site.css.
   ============================================================ */

/* === components: Statutory_due_dates.html === */
/* === Tracker-specific styles ===================================== */
.tracker-banner .lead{max-width:62ch;color:var(--color-ink-muted);font-size:1.05rem;line-height:1.65;margin:.75rem 0 0}
.tracker-banner .meta-line{font-family:var(--mono);font-size:.78rem;color:#98948B;margin-top:.5rem;letter-spacing:.02em}

.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:2rem 0 1.5rem}
.stats-row .stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-base);padding:1rem 1.25rem}
.stats-row .stat .num{font-family:var(--display);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:600;color:var(--color-primary);line-height:1}
.stats-row .stat .lbl{font-family:var(--body);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink-muted);margin-top:.45rem;font-weight:500}
@media(max-width:760px){.stats-row{grid-template-columns:repeat(2,1fr)}}

.hchips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0 1.25rem}
.hchip{font-family:var(--body);font-size:.78rem;line-height:1.35;background:var(--color-accent-soft);color:#7A3F0F;border:1px solid #F2C99F;padding:.45rem .8rem;border-radius:var(--r-pill)}

.disclaimer-bar{background:#FEF8E9;border:1px solid #F4D78A;border-radius:var(--r-base);padding:.85rem 1.1rem;color:#73510C;font-size:.85rem;line-height:1.5;margin-bottom:1.5rem}

/* Filter section */
.tracker-filters{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 3px rgba(20,22,18,.06)}
.filter-label{font-family:var(--body);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--color-ink-muted);font-weight:600;margin:0 0 .6rem}
.cat-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}
.cat-btn,.freq-btn{font-family:var(--body);font-weight:500;font-size:.85rem;background:transparent;border:1.5px solid var(--color-border);color:var(--color-ink);padding:.5rem 1rem;border-radius:var(--r-pill);cursor:pointer;transition:all 160ms ease;display:inline-flex;align-items:center;gap:.4rem}
.cat-btn:hover,.freq-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}
.cat-btn[aria-pressed=true],.freq-btn[aria-pressed=true]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
.cat-btn .ct,.freq-btn .ct{font-family:var(--mono);font-size:.72em;opacity:.7}
.cat-btn[aria-pressed=true] .ct,.freq-btn[aria-pressed=true] .ct{opacity:.9}

.freq-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem}

.search-wrap{position:relative}
.search-input{width:100%;padding:.85rem 1rem .85rem 2.6rem;border:1.5px solid var(--color-border);border-radius:var(--r-base);font-family:var(--body);font-size:.95rem;color:var(--color-ink);background:var(--color-bg);transition:all 160ms ease;box-sizing:border-box}
.search-input:focus{outline:none;border-color:var(--color-primary);background:var(--color-surface);box-shadow:0 0 0 3px rgba(13,92,62,.12)}
.search-icon{position:absolute;left:.95rem;top:50%;transform:translateY(-50%);color:#98948B;font-size:1.05rem;pointer-events:none}

.meta-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0 1.25rem;font-family:var(--mono);font-size:.78rem;color:var(--color-ink-muted);flex-wrap:wrap}
.meta-bar strong{color:var(--color-primary);font-family:var(--body);font-weight:600}

/* Category groups + cards */
.cat-group{margin-bottom:2.5rem}
.cat-group-head{display:flex;align-items:center;gap:.85rem;padding:.95rem 1.2rem;background:var(--color-primary);color:#fff;border-radius:var(--r-base) var(--r-base) 0 0}
.cat-group-head .cat-icon{font-size:1.25rem}
.cat-group-head .cat-name{font-family:var(--display);font-weight:600;font-size:1.2rem;letter-spacing:-.01em}
.cat-group-head .cat-count{font-family:var(--mono);font-size:.78rem;background:rgba(255,255,255,.18);padding:.22rem .6rem;border-radius:var(--r-pill)}
.cat-group-head .cat-src{margin-left:auto;font-family:var(--mono);font-size:.72rem;opacity:.85}

.cat-table{background:var(--color-surface);border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--r-base) var(--r-base);overflow:hidden}
.tbl-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.1fr) 110px 110px 36px;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid var(--color-border);align-items:center;cursor:pointer;transition:background 120ms ease}
.tbl-row:last-child{border-bottom:none}
.tbl-row:hover{background:#F5EFE2}
.tbl-row .form-name{font-family:var(--body);font-weight:600;font-size:.95rem;color:var(--color-ink);line-height:1.4}
.tbl-row .badge-tk{display:inline-block;font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;padding:.15rem .4rem;border-radius:4px;margin-left:.4rem;vertical-align:middle;font-weight:600}
.badge-budget{background:#DDDBFA;color:#3A30A8}
.badge-updated{background:var(--color-accent-soft);color:#7A3F0F}
.badge-new{background:#CFEBE6;color:#0F766E}
.tbl-row .due-date{font-family:var(--body);font-size:.85rem;color:var(--color-ink-muted);line-height:1.4}
.tbl-row .freq-tag{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-ink-muted);background:var(--color-bg);border:1px solid var(--color-border);padding:.25rem .55rem;border-radius:4px;justify-self:start;white-space:nowrap}
.pri-tag{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding:.25rem .55rem;border-radius:4px;justify-self:start;display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}
.pri-tag .dot{width:6px;height:6px;border-radius:50%}
.pri-tag.critical{background:#FCD7D7;color:#B91C1C}
.pri-tag.critical .dot{background:#B91C1C}
.pri-tag.high{background:var(--color-accent-soft);color:#9C4F0E}
.pri-tag.high .dot{background:var(--color-accent)}
.pri-tag.medium{background:var(--color-primary-soft);color:var(--color-primary)}
.pri-tag.medium .dot{background:var(--color-primary)}
.tbl-row .toggle{justify-self:end;color:#98948B;font-size:1rem;transition:transform 160ms ease}
.tbl-row.expanded{background:#F5EFE2}
.tbl-row.expanded .toggle{transform:rotate(90deg);color:var(--color-primary)}

.tbl-row-detail{background:#F5EFE2;padding:1rem 1.1rem 1.25rem;border-bottom:1px solid var(--color-border);font-size:.88rem;line-height:1.6;color:var(--color-ink)}
.tbl-row-detail .label{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted);font-weight:600;margin-right:.5rem}
.tbl-row-detail .row{margin-bottom:.55rem}
.tbl-row-detail .row:last-child{margin-bottom:0}

@media(max-width:860px){
  .tbl-row{grid-template-columns:1fr auto auto 28px;gap:.6rem;padding:.85rem .9rem}
  .tbl-row .form-name{grid-column:1/-1}
  .tbl-row .due-date{grid-column:1/-1;order:5;margin-top:-.15rem;font-size:.8rem}
  .tbl-row .freq-tag{order:3;font-size:.65rem;padding:.2rem .45rem}
  .tbl-row .pri-tag{order:2;font-size:.65rem;padding:.2rem .45rem}
  .tbl-row .toggle{order:4;justify-self:end;align-self:center}
  .cat-group-head{flex-wrap:wrap}
  .cat-group-head .cat-src{flex-basis:100%;margin-left:0;margin-top:.25rem}
}

.empty-state{padding:3rem 1rem;text-align:center;background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--r-base);color:var(--color-ink-muted)}
.empty-state .ico{font-size:2rem;display:block;margin-bottom:.5rem}

/* === components: about_us.html === */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--color-bg);
  color: var(--color-ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

h1, h2, h3, h4 {
  font-family: var(--display);
  font-weight: 600;
  letter-spacing: -0.018em;
  line-height: 1.05;
  margin: 0;
  color: var(--color-ink);
}
h1 { font-size: clamp(2.4rem, 4.6vw, 3.75rem); }
h2 { font-size: clamp(1.875rem, 3vw, 2.5rem); }
h3 { font-size: 1.375rem; }
h4 { font-size: 1.125rem; line-height: 1.2; }
p { margin: 0; }
a { color: inherit; text-decoration: none; }

.eyebrow {
  font-family: var(--body);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-ink-muted);
}
.mono { font-family: var(--mono); font-feature-settings: "tnum" 1; }
.wrap {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  border-radius: 4px;
}
.btn-primary { background: var(--color-primary); color: #fff; }
.btn-primary:hover { background: var(--color-primary-deep); }
.btn-ghost {
  background: transparent;
  color: var(--color-ink);
  border-color: var(--color-ink);
}
.btn-ghost:hover { background: var(--color-ink); color: var(--color-bg); }
.btn-cream {
  background: transparent;
  color: var(--color-bg);
  border-color: var(--color-bg);
}
.btn-cream:hover { background: var(--color-bg); color: var(--color-primary-deep); }

/* ===== SECTION ===== */
.section { padding: 5rem 0; }
.section-soft { background: var(--color-primary-soft); }
.section-head {
  margin-bottom: 3rem;
  max-width: 50rem;
}
.section-head .eyebrow { display: block; margin-bottom: 1rem; }
.section-head p {
  margin-top: 1rem;
  color: var(--color-ink-muted);
  font-size: 1.0625rem;
  max-width: 56ch;
}
@media (max-width: 760px) {
  .section { padding: 3.5rem 0; }
}

/* ===== PARTNERS ===== */
.partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
@media (max-width: 980px) { .partners-grid { grid-template-columns: 1fr; } }
.partner {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--r-card);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 200ms ease, box-shadow 200ms ease;
}
.partner:hover {
  transform: translateY(-3px);
  box-shadow: 0 24px 50px -22px rgba(13,30,20,0.22);
}
.partner .photo {
  aspect-ratio: 4/5;
  background: var(--color-primary-soft);
  position: relative;
  overflow: hidden;
}
.partner .photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.partner .photo .verified {
  position: absolute;
  top: 0.875rem;
  left: 0.875rem;
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(6px);
  padding: 0.3125rem 0.625rem;
  border-radius: var(--r-pill);
  font-family: var(--mono);
  font-size: 0.6875rem;
  font-weight: 500;
  color: var(--color-primary-deep);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.partner .photo .verified svg { width: 11px; height: 11px; }
.partner .body {
  padding: 1.5rem 1.5rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  flex: 1;
}
.partner .body .role {
  font-family: var(--mono);
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-accent);
  font-weight: 600;
}
.partner .body h3 {
  font-size: 1.5rem;
  letter-spacing: -0.018em;
}
.partner .quals {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}
.partner .quals .chip {
  font-family: var(--mono);
  font-size: 0.6875rem;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  color: var(--color-ink);
  padding: 0.25rem 0.625rem;
  border-radius: var(--r-pill);
  letter-spacing: 0.04em;
}
.partner .bio {
  color: var(--color-ink-muted);
  font-size: 0.9375rem;
  line-height: 1.55;
}
.partner .contact {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.partner .contact a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--color-ink);
  font-weight: 500;
}
.partner .contact a:hover { color: var(--color-primary); }
.partner .contact svg {
  width: 14px;
  height: 14px;
  color: var(--color-primary);
}

/* ===== VALUES ===== */
.values-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
@media (max-width: 980px) { .values-grid { grid-template-columns: repeat(2, 1fr); gap: 2.25rem; } }
@media (max-width: 540px) { .values-grid { grid-template-columns: 1fr; } }
.value {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}
.value .num {
  font-family: var(--mono);
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  color: var(--color-accent);
  font-weight: 500;
}
.value h3 {
  font-family: var(--display);
  font-weight: 600;
  font-size: 1.5rem;
  color: var(--color-primary-deep);
}
.value p {
  color: var(--color-ink-muted);
  font-size: 0.9375rem;
  line-height: 1.6;
}

/* ===== OFFICE BAND ===== */
.office-band {
  position: relative;
  height: clamp(440px, 56vw, 580px);
  overflow: hidden;
  background: var(--color-primary-deep);
}
.office-band .photo {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(13,30,20,0.55) 0%, rgba(13,30,20,0.15) 50%, rgba(13,30,20,0.55) 100%),
    radial-gradient(ellipse at 30% 20%, #2C7C5C 0%, #094530 60%);
  display: grid;
  place-items: center;
  color: rgba(255,255,255,0.18);
  font-family: var(--mono);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.office-band .photo svg {
  width: 80%;
  max-width: 720px;
  opacity: 0.18;
}
.office-band .wrap {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.office-card {
  background: var(--color-surface);
  border-radius: var(--r-card);
  padding: 2rem 2.25rem;
  width: min(440px, 100%);
  box-shadow: 0 30px 60px -20px rgba(13,30,20,0.45);
  border: 1px solid var(--color-border);
}
.office-card .eyebrow { display: block; margin-bottom: 0.875rem; color: var(--color-primary); }
.office-card h3 {
  font-family: var(--display);
  font-size: 1.625rem;
  letter-spacing: -0.018em;
  margin-bottom: 1rem;
}
.office-card address {
  font-style: normal;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-ink-muted);
  margin-bottom: 1.5rem;
}
.office-card .meta {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--color-border);
}
.office-card .meta a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--color-ink);
  font-weight: 500;
}
.office-card .meta svg {
  width: 14px;
  height: 14px;
  color: var(--color-primary);
}
.office-card .meta a:hover { color: var(--color-primary); }
@media (max-width: 760px) {
  .office-band { height: auto; }
  .office-band .photo { position: relative; height: 280px; }
  .office-band .wrap { padding: 0; height: auto; }
  .office-card {
    margin: -3rem 1rem 2rem;
    width: auto;
    z-index: 3;
  }
}

/* ===== CLOSING CTA ===== */
.closing-cta {
  position: relative;
  background: var(--color-primary);
  color: var(--color-bg);
  padding: 5.5rem 0;
  overflow: hidden;
}
.closing-cta::before {
  content: "";
  position: absolute;
  top: -30%;
  right: -10%;
  width: 60%;
  height: 160%;
  background: radial-gradient(closest-side, rgba(224,122,31,0.55), rgba(224,122,31,0) 70%);
  pointer-events: none;
}
.closing-cta .wrap {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  flex-wrap: wrap;
}
.closing-cta .lhs { max-width: 40rem; }
.closing-cta .eyebrow { color: var(--color-accent-soft); margin-bottom: 1rem; display: block; }
.closing-cta h2 { color: var(--color-bg); margin-bottom: 0.875rem; }
.closing-cta .sub {
  color: rgba(250, 246, 238, 0.78);
  font-size: 1.0625rem;
  max-width: 36rem;
}
.closing-cta .ctas { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 2fr 1.2fr;
  gap: 4rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(250, 246, 238, 0.12);
}
@media (max-width: 980px) {
  .footer-grid { grid-template-columns: 1fr; gap: 3rem; }
}

.footer-bottom {
  padding-top: 1.75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.8125rem;
  color: rgba(250, 246, 238, 0.55);
}

/* === components: audit_services.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2.4rem,4.6vw,3.75rem)}h2{font-size:clamp(1.875rem,3vw,2.5rem)}h3{font-size:1.375rem}h4{font-size:1.0625rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.btn-ghost{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}.btn-ghost:hover{background:var(--color-ink);color:var(--color-bg)}
.btn-cream{background:transparent;color:var(--color-bg);border-color:var(--color-bg)}.btn-cream:hover{background:var(--color-bg);color:var(--color-primary-deep)}

.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}

.section{padding:5rem 0}
.section-soft{background:var(--color-primary-soft)}
.section-deep{background:var(--color-primary);color:var(--color-bg)}
.section-head{margin-bottom:3rem;max-width:50rem}
.section-head .eyebrow{display:block;margin-bottom:1rem}
.section-head h2 em{font-style:italic;font-weight:500;color:var(--color-primary)}
.section-head p{margin-top:1rem;color:var(--color-ink-muted);font-size:1.0625rem;max-width:56ch}
.section-deep .section-head h2{color:var(--color-bg)}
.section-deep .section-head .eyebrow{color:var(--color-accent-soft)}
.section-deep .section-head p{color:rgba(250,246,238,.78)}
@media(max-width:760px){.section{padding:3.5rem 0}}

/* SUB-SERVICE GRID */
.sub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
@media(max-width:980px){.sub-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.sub-grid{grid-template-columns:1fr}}
.sub-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:.875rem;text-decoration:none;color:inherit;transition:all 200ms ease;min-height:240px}
.sub-card::before{content:"";position:absolute;top:0;left:1.5rem;right:1.5rem;height:3px;background:var(--color-accent);border-radius:0 0 3px 3px;transform:scaleX(0);transform-origin:left center;transition:transform 240ms ease}
.sub-card:hover{transform:translateY(-4px);box-shadow:0 22px 40px -22px rgba(13,30,20,.18);border-color:var(--color-primary-soft)}
.sub-card:hover::before{transform:scaleX(1)}
.sub-card .icon-wrap{width:44px;height:44px;border-radius:11px;background:var(--color-primary-soft);color:var(--color-primary-deep);display:inline-flex;align-items:center;justify-content:center}
.sub-card .icon-wrap svg{width:22px;height:22px}
.sub-card h3{font-size:1.1875rem;line-height:1.15}
.sub-card .scope{color:var(--color-ink-muted);font-size:.9375rem;line-height:1.55;flex:1}
.sub-card .read{font-weight:600;font-size:.875rem;color:var(--color-primary);display:inline-flex;align-items:center;gap:.3rem;margin-top:.25rem}
.sub-card .read svg{width:14px;height:14px;transition:transform 200ms ease}
.sub-card:hover .read svg{transform:translateX(3px)}

/* WHY US 3-col */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
@media(max-width:980px){.why-grid{grid-template-columns:1fr;gap:2.25rem}}
.why{display:flex;flex-direction:column;gap:.875rem}
.why .num{font-family:var(--mono);font-size:.75rem;letter-spacing:.18em;color:var(--color-accent);font-weight:500}
.why h3{font-family:var(--display);font-weight:600;font-size:1.5rem;color:var(--color-bg)}
.why p{color:rgba(250,246,238,.82);font-size:.9375rem;line-height:1.6}

/* FAQ */
.faq-list{display:flex;flex-direction:column;gap:.75rem}
.faq-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);overflow:hidden;transition:border-color 160ms ease}
.faq-item[open]{border-color:var(--color-primary)}
.faq-item summary{list-style:none;padding:1.125rem 1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--display);font-weight:600;font-size:1.125rem;color:var(--color-ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item .icon{width:28px;height:28px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 200ms ease;font-family:var(--mono)}
.faq-item[open] .icon{background:var(--color-primary);color:#fff;transform:rotate(45deg)}
.faq-item .answer{padding:0 1.5rem 1.25rem;color:var(--color-ink-muted);font-size:.9375rem;line-height:1.6}

.closing-cta{position:relative;background:var(--color-primary);color:var(--color-bg);padding:4.5rem 0;overflow:hidden}
.closing-cta::before{content:"";position:absolute;top:-30%;right:-10%;width:60%;height:160%;background:radial-gradient(closest-side,rgba(224,122,31,.55),rgba(224,122,31,0) 70%);pointer-events:none}
.closing-cta .wrap{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:3rem;flex-wrap:wrap}
.closing-cta .lhs{max-width:40rem}
.closing-cta .eyebrow{color:var(--color-accent-soft);margin-bottom:.75rem;display:block}
.closing-cta h2{color:var(--color-bg);margin-bottom:.5rem}
.closing-cta .sub{color:rgba(250,246,238,.78);font-size:1.0625rem;max-width:40rem}
.closing-cta .ctas{display:flex;gap:.75rem;flex-wrap:wrap}

.placeholder{padding:.125rem .375rem;background:var(--color-accent-soft);color:var(--color-amber,#B5832A);font-family:var(--mono);font-size:.75em;border-radius:4px;letter-spacing:.04em}
.footer-grid{display:grid;grid-template-columns:1.4fr 2fr 1.2fr;gap:4rem;padding-bottom:3rem;border-bottom:1px solid rgba(250,246,238,.12)}
@media(max-width:980px){.footer-grid{grid-template-columns:1fr;gap:3rem}}
.footer-bottom{padding-top:1.75rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.8125rem;color:rgba(250,246,238,.55)}
.footer-mid{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;color:rgba(250,246,238,.75)}
.footer-mid a{display:flex;align-items:center;gap:.5rem}
.footer-mid svg{width:14px;height:14px}

/* === components: careers.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2.4rem,4.6vw,3.75rem)}h2{font-size:clamp(1.875rem,3vw,2.5rem)}h3{font-size:1.25rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.btn-ghost{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}.btn-ghost:hover{background:var(--color-ink);color:var(--color-bg)}

.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}

.section{padding:4rem 0}
.section-head{margin-bottom:2.5rem;max-width:50rem}
.section-head .eyebrow{display:block;margin-bottom:.75rem}
.section-head h2{margin-bottom:.875rem}
.section-head h2 em{font-style:italic;font-weight:500;color:var(--color-primary)}
.section-head p{font-size:1rem;color:var(--color-ink-muted)}

/* WHO WE HIRE */
.hire-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem}
@media(max-width:780px){.hire-grid{grid-template-columns:1fr}}
.hire-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:2.25rem;display:flex;flex-direction:column;gap:1.125rem;overflow:hidden;transition:all 220ms ease}
.hire-card:hover{transform:translateY(-3px);box-shadow:0 22px 44px -22px rgba(13,30,20,.18)}
.hire-card .num{position:absolute;top:1.5rem;right:1.75rem;font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);letter-spacing:.14em}
.hire-card .icon{width:56px;height:56px;border-radius:14px;background:var(--color-primary-soft);color:var(--color-primary-deep);display:inline-flex;align-items:center;justify-content:center}
.hire-card .icon svg{width:28px;height:28px}
.hire-card.is-accent .icon{background:var(--color-accent-soft);color:var(--color-accent)}
.hire-card h3{font-size:1.5rem}
.hire-card .meta{font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em;text-transform:uppercase;display:flex;gap:.875rem;flex-wrap:wrap}
.hire-card .meta span{display:inline-flex;align-items:center;gap:.4rem}
.hire-card .meta svg{width:12px;height:12px}
.hire-card p{color:var(--color-ink-muted);font-size:.9375rem;line-height:1.65}
.hire-card ul{list-style:none;padding:0;margin:.5rem 0 0;display:flex;flex-direction:column;gap:.5rem}
.hire-card ul li{position:relative;padding-left:1.4rem;font-size:.9375rem;color:var(--color-ink)}
.hire-card ul li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--color-primary)}
.hire-card.is-accent ul li::before{background:var(--color-accent)}

/* OPEN ROLES */
.roles-list{display:flex;flex-direction:column;gap:1rem}
.role-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 2rem;display:grid;grid-template-columns:auto 1fr auto;gap:1.75rem;align-items:center;transition:all 200ms ease}
.role-card:hover{border-color:var(--color-primary-soft);box-shadow:0 12px 30px -18px rgba(13,30,20,.18)}
.role-card .role-num{font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.12em;align-self:flex-start;padding-top:.25rem}
.role-card .role-body h3{font-size:1.25rem;margin-bottom:.4rem}
.role-card .role-meta{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:.625rem}
.role-card .tag{font-family:var(--mono);font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .625rem;border-radius:var(--r-pill);background:var(--color-primary-soft);color:var(--color-primary-deep);font-weight:500}
.role-card .tag.is-accent{background:var(--color-accent-soft);color:#7a4a18}
.role-card .tag.is-neutral{background:var(--color-bg);color:var(--color-ink-muted);border:1px solid var(--color-border)}
.role-card .role-desc{font-size:.9375rem;color:var(--color-ink-muted);line-height:1.6;max-width:60ch}
.role-card .apply{display:inline-flex;align-items:center;gap:.4rem;background:var(--color-primary);color:#fff;padding:.75rem 1.125rem;border-radius:var(--r-base);font-weight:600;font-size:.875rem;border:1.5px solid var(--color-primary);transition:all 180ms ease}
.role-card .apply:hover{background:var(--color-primary-deep);transform:translateX(2px)}
.role-card .apply svg{width:14px;height:14px}
@media(max-width:780px){.role-card{grid-template-columns:1fr;gap:1rem;padding:1.5rem}.role-card .role-num{padding-top:0}.role-card .apply{justify-self:flex-start}}

/* TESTIMONIALS */
.testimonials-section{background:var(--color-primary-deep);color:var(--color-bg);position:relative;overflow:hidden}
.testimonials-section::before{content:"";position:absolute;top:-20%;right:-5%;width:520px;height:520px;background:radial-gradient(closest-side,rgba(224,122,31,.18),rgba(224,122,31,0) 70%);pointer-events:none}
.testimonials-section .section-head h2{color:var(--color-bg)}
.testimonials-section .section-head h2 em{color:var(--color-accent-soft)}
.testimonials-section .section-head .eyebrow{color:var(--color-accent-soft)}
.testimonials-section .section-head p{color:rgba(250,246,238,.75)}
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;position:relative;z-index:1}
@media(max-width:980px){.testimonials-grid{grid-template-columns:1fr}}
.t-card{background:rgba(250,246,238,.06);border:1px solid rgba(250,246,238,.12);border-radius:var(--r-card);padding:2rem 1.75rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem;position:relative;transition:all 220ms ease}
.t-card:hover{background:rgba(250,246,238,.09);border-color:rgba(250,246,238,.22)}
.t-card .qmark{font-family:var(--display);font-weight:600;font-size:3.5rem;line-height:.5;color:var(--color-accent);height:1rem}
.t-card .quote{font-family:var(--display);font-weight:500;font-size:1.0625rem;line-height:1.5;color:var(--color-bg);font-style:italic}
.t-card .meta{margin-top:auto;padding-top:1rem;border-top:1px solid rgba(250,246,238,.12);display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}
.t-card .meta-l{display:flex;flex-direction:column;gap:.25rem}
.t-card .name{font-family:var(--body);font-weight:600;font-size:.9375rem;color:var(--color-bg)}
.t-card .now{font-family:var(--mono);font-size:.75rem;color:rgba(250,246,238,.65);letter-spacing:.04em}
.t-card .year{font-family:var(--mono);font-size:.75rem;background:var(--color-accent);color:#fff;padding:.3rem .6rem;border-radius:var(--r-pill);font-weight:500;letter-spacing:.06em;flex-shrink:0}

/* APPLICATION FORM */
.apply-section{padding:5rem 0 6rem}
.apply-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:3.5rem;align-items:start}
@media(max-width:980px){.apply-grid{grid-template-columns:1fr;gap:2rem}}
.apply-side .eyebrow{display:block;margin-bottom:1rem}
.apply-side h2{margin-bottom:1rem}
.apply-side h2 em{font-style:italic;font-weight:500;color:var(--color-primary)}
.apply-side p{color:var(--color-ink-muted);font-size:1rem;line-height:1.65;margin-bottom:1.5rem}
.apply-side .checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}
.apply-side .checklist li{display:flex;align-items:flex-start;gap:.625rem;font-size:.9375rem;color:var(--color-ink)}
.apply-side .checklist svg{width:18px;height:18px;color:var(--color-primary);flex-shrink:0;margin-top:.15rem}
.apply-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:2.25rem;display:flex;flex-direction:column;gap:1.25rem}
.field{display:flex;flex-direction:column;gap:.4rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:560px){.field-row{grid-template-columns:1fr}}
.field label{font-weight:500;font-size:.8125rem;color:var(--color-ink);letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.field label .req{color:var(--color-accent);margin-left:.25rem}
.field input,.field select,.field textarea{width:100%;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-bg);padding:.7rem .875rem;font-family:var(--body);font-size:.9375rem;color:var(--color-ink);transition:border-color 160ms ease,background-color 160ms ease}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--color-primary);background:#fff}
.field input{height:46px}
.field select{height:46px}
.field textarea{min-height:120px;resize:vertical;line-height:1.55;font-family:var(--body)}
/* file input */
.file-field{position:relative}
.file-field input[type=file]{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer}
.file-field .file-display{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;border:1.5px dashed var(--color-border);border-radius:var(--r-base);background:var(--color-bg);transition:all 160ms ease}
.file-field:hover .file-display,.file-field.is-focused .file-display{border-color:var(--color-primary);background:#fff}
.file-field .file-icon{width:36px;height:36px;border-radius:9px;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.file-field .file-icon svg{width:18px;height:18px}
.file-field .file-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.file-field .file-text .primary{font-weight:600;font-size:.875rem;color:var(--color-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-field .file-text .secondary{font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);letter-spacing:.04em}
.field .helper{font-size:.75rem;color:var(--color-ink-muted);margin-top:.15rem}
.form-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.5rem}
.form-footer .legal{font-size:.75rem;color:var(--color-ink-muted);max-width:38ch;line-height:1.5}
.form-footer .submit{background:var(--color-accent);color:#fff;border-color:var(--color-accent);padding:0 1.75rem;height:50px;font-size:1rem}
.form-footer .submit:hover{background:#c46715;border-color:#c46715}
.footer-grid{display:grid;grid-template-columns:1.4fr 2fr 1.2fr;gap:4rem;padding-bottom:3rem;border-bottom:1px solid rgba(250,246,238,.12)}
@media(max-width:980px){.footer-grid{grid-template-columns:1fr;gap:3rem}}
.footer-mid{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;color:rgba(250,246,238,.75)}
.footer-mid a{display:flex;align-items:center;gap:.5rem}.footer-mid svg{width:14px;height:14px}
.footer-bottom{padding-top:1.75rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.8125rem;color:rgba(250,246,238,.55)}

/* === components: contact.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2.4rem,4.6vw,3.75rem)}h2{font-size:clamp(1.625rem,2.6vw,2.125rem)}h3{font-size:1.125rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.btn-ghost{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}.btn-ghost:hover{background:var(--color-ink);color:var(--color-bg)}

.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}

.contact-section{padding:1rem 0 4rem}
.contact-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:2.5rem;align-items:start}
@media(max-width:980px){.contact-grid{grid-template-columns:1fr}}

/* FORM */
.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:2.25rem 2.25rem 2rem}
.form-card h2{font-size:1.5rem;margin-bottom:.4rem}
.form-card .form-sub{color:var(--color-ink-muted);font-size:.9375rem;margin-bottom:1.75rem}
/* contact.html "Send us a message" — plain block card; the inner form.cf
   handles its own vertical layout. Kept separate from .form-card so the
   legacy 2-column grid rule (services.html inline form) cannot leak in. */
.message-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:2.25rem 2.25rem 2rem}
.message-card h2{font-size:1.5rem;margin-bottom:.4rem}
.message-card .form-sub{color:var(--color-ink-muted);font-size:.9375rem;margin-bottom:1.75rem}
form.cf{display:flex;flex-direction:column;gap:1.125rem}
.field{display:flex;flex-direction:column;gap:.4rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:560px){.field-row{grid-template-columns:1fr}}
.field label{font-weight:500;font-size:.8125rem;letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.field label .req{color:var(--color-accent);margin-left:.25rem}
.field input,.field select,.field textarea{width:100%;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-bg);padding:.7rem .875rem;font-family:var(--body);font-size:.9375rem;color:var(--color-ink);transition:border-color 160ms ease,background-color 160ms ease}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--color-primary);background:#fff}
.field input{height:46px}.field select{height:46px}
.field textarea{min-height:140px;resize:vertical;line-height:1.55;font-family:var(--body)}
.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.5rem}
.form-foot .legal{font-size:.75rem;color:var(--color-ink-muted);max-width:36ch;line-height:1.5}
.form-foot .submit{background:var(--color-accent);color:#fff;border-color:var(--color-accent);height:50px;padding:0 1.75rem;font-size:1rem}
.form-foot .submit:hover{background:#c46715;border-color:#c46715}
.form-foot .submit[disabled]{opacity:.6;cursor:not-allowed;transform:none}
.form-status{margin-top:1.25rem;padding:1rem 1.125rem;border-radius:var(--r-base);font-size:.875rem;line-height:1.55;display:none;align-items:flex-start;gap:.625rem}
.form-status.is-shown{display:flex}
.form-status.is-success{background:var(--color-primary-soft);color:var(--color-primary-deep);border:1px solid rgba(13,92,62,.25)}
.form-status.is-error{background:#fde8e1;color:#7a2410;border:1px solid rgba(224,80,40,.3)}
.form-status .icon{flex-shrink:0;width:18px;height:18px;margin-top:.1rem}
.form-status .icon svg{width:18px;height:18px}

/* RIGHT COLUMN: PARTNER CARDS + ADDRESS (contact.html specific — scoped to .contact-aside so they don't collide with the footer's .partner-card) */
.contact-aside{display:flex;flex-direction:column;gap:1rem}
.contact-aside .partner-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.25rem 1.375rem;display:flex;align-items:center;gap:1rem;transition:all 200ms ease}
.contact-aside .partner-card:hover{transform:translateX(2px);border-color:var(--color-primary-soft);box-shadow:0 12px 30px -22px rgba(13,30,20,.18)}
.contact-aside .partner-card .pavatar{width:54px;height:54px;border-radius:50%;background:var(--color-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:600;font-size:1.25rem;flex-shrink:0;letter-spacing:.02em}
.contact-aside .partner-card .pavatar.is-accent{background:var(--color-accent)}
.contact-aside .partner-card .pavatar.is-deep{background:var(--color-primary-deep)}
.contact-aside .partner-card .pinfo{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}
.contact-aside .partner-card .pname{font-family:var(--display);font-weight:600;font-size:1rem;color:var(--color-ink);letter-spacing:-.005em}
.contact-aside .partner-card .prole{font-size:.75rem;color:var(--color-ink-muted);font-weight:500}
.contact-aside .partner-card .pcontact{display:flex;gap:.875rem;margin-top:.4rem;font-family:var(--mono);font-size:.75rem;flex-wrap:wrap}
.contact-aside .partner-card .pcontact a{color:var(--color-primary-deep);display:inline-flex;align-items:center;gap:.3rem;font-weight:500;white-space:nowrap}
.contact-aside .partner-card .pcontact a:hover{color:var(--color-accent)}
.contact-aside .partner-card .pcontact svg{width:12px;height:12px}

.address-card{background:var(--color-primary-deep);color:var(--color-bg);border-radius:var(--r-card);padding:1.5rem 1.5rem 1.375rem;display:flex;flex-direction:column;gap:.875rem;position:relative;overflow:hidden}
.address-card::before{content:"";position:absolute;top:-30%;right:-15%;width:280px;height:280px;background:radial-gradient(closest-side,rgba(224,122,31,.3),rgba(224,122,31,0) 70%);pointer-events:none}
.address-card .inner{position:relative;z-index:1}
.address-card h3{font-family:var(--display);font-weight:600;font-size:1.125rem;color:var(--color-bg);margin-bottom:.5rem}
.address-card .pin{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent-soft);background:rgba(224,122,31,.18);padding:.3rem .625rem;border-radius:var(--r-pill);margin-bottom:.75rem}
.address-card .pin svg{width:11px;height:11px}
.address-card address{font-style:normal;font-size:.9375rem;line-height:1.6;color:rgba(250,246,238,.88);margin-bottom:.875rem}
.address-card .links{display:flex;flex-direction:column;gap:.5rem;font-family:var(--mono);font-size:.8125rem}
.address-card .links a{display:inline-flex;align-items:center;gap:.5rem;color:rgba(250,246,238,.85);font-weight:500}
.address-card .links a:hover{color:var(--color-accent-soft)}
.address-card .links svg{width:14px;height:14px}

/* MAP SECTION */
.map-section{padding:1rem 0 4rem}
.map-frame{border-radius:var(--r-card);overflow:hidden;border:1px solid var(--color-border);background:var(--color-surface);height:440px;position:relative}
.map-frame iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.92) hue-rotate(-2deg)}

/* HOURS BAND */
.hours-band{padding:0 0 5rem}
.hours-band .wrap{background:var(--color-primary-soft);border:1px solid rgba(13,92,62,.16);border-radius:var(--r-card);padding:2rem 2.25rem;display:grid;grid-template-columns:auto 1fr auto;gap:1.75rem;align-items:center}
@media(max-width:780px){.hours-band .wrap{grid-template-columns:1fr;gap:1.25rem;text-align:left}}
.hours-icon{width:56px;height:56px;border-radius:14px;background:var(--color-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center}
.hours-icon svg{width:28px;height:28px}
.hours-content h3{font-family:var(--display);font-weight:600;font-size:1.5rem;margin-bottom:.4rem}
.hours-content h3 em{font-style:italic;font-weight:500;color:var(--color-primary)}
.hours-content p{color:var(--color-ink-muted);font-size:.9375rem;line-height:1.55;max-width:46ch}
.hours-table{display:flex;flex-direction:column;gap:.4rem;font-family:var(--mono);font-size:.875rem;border-left:1px solid rgba(13,92,62,.2);padding-left:1.75rem}
@media(max-width:780px){.hours-table{border-left:0;padding-left:0;border-top:1px solid rgba(13,92,62,.2);padding-top:1.25rem}}
.hours-row{display:grid;grid-template-columns:auto auto;gap:1.25rem;align-items:center}
.hours-row .day{color:var(--color-ink);font-weight:500;letter-spacing:.04em;text-transform:uppercase;font-size:.75rem}
.hours-row .time{color:var(--color-primary-deep);font-weight:600}
.hours-row.is-closed .time{color:var(--color-ink-muted);font-weight:500}
.footer-grid{display:grid;grid-template-columns:1.4fr 2fr 1.2fr;gap:4rem;padding-bottom:3rem;border-bottom:1px solid rgba(250,246,238,.12)}
@media(max-width:980px){.footer-grid{grid-template-columns:1fr;gap:3rem}}
.footer-mid{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;color:rgba(250,246,238,.75)}
.footer-mid a{display:flex;align-items:center;gap:.5rem}.footer-mid svg{width:14px;height:14px}
.footer-bottom{padding-top:1.75rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.8125rem;color:rgba(250,246,238,.55)}

/* === components: index.html === */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { overflow-x: hidden; }
body {
  background: var(--color-bg);
  color: var(--color-ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Headings */
h1, h2, h3, h4 {
  font-family: var(--display);
  font-weight: 600;
  letter-spacing: -0.018em;
  line-height: 1.05;
  margin: 0;
  color: var(--color-ink);
}
h1 { font-size: clamp(2.4rem, 4.6vw, 3.75rem); font-weight: 600; }
h2 { font-size: clamp(2rem, 3.4vw, 2.75rem); }
h3 { font-size: 1.375rem; }
h4 { font-size: 1.125rem; line-height: 1.2; }

p { margin: 0; }
a { color: inherit; text-decoration: none; }

/* Eyebrow */
.eyebrow {
  font-family: var(--body);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-ink-muted);
}

/* Mono */
.mono { font-family: var(--mono); font-feature-settings: "tnum" 1; }

/* Container */
.wrap {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

/* Focus */
:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
  border-radius: 4px;
}
.btn-primary { background: var(--color-primary); color: #fff; }
.btn-primary:hover { background: var(--color-primary-deep); }
.btn-accent { background: var(--color-accent); color: #fff; }
.btn-accent:hover { background: #c4691a; }
.btn-ghost {
  background: transparent;
  color: var(--color-ink);
  border-color: var(--color-ink);
}
.btn-ghost:hover { background: var(--color-ink); color: var(--color-bg); }
.btn-cream {
  background: transparent;
  color: var(--color-bg);
  border-color: var(--color-bg);
}
.btn-cream:hover { background: var(--color-bg); color: var(--color-primary-deep); }
.btn-sm { min-height: 36px; padding: 0 0.875rem; font-size: 0.8125rem; }

/* Pills */
.pill {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.625rem;
  border-radius: var(--r-pill);
  font-family: var(--body);
  font-weight: 600;
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.pill-tax { background: var(--pill-tax-bg); color: var(--pill-tax-fg); }
.pill-gst { background: var(--pill-gst-bg); color: var(--pill-gst-fg); }
.pill-cl  { background: var(--pill-cl-bg);  color: var(--pill-cl-fg); }
.pill-urg { background: var(--pill-urg-bg); color: var(--pill-urg-fg); }
.pill-bud { background: var(--pill-bud-bg); color: var(--pill-bud-fg); }
.pill-nri { background: var(--pill-nri-bg); color: var(--pill-nri-fg); }

.strip-flyout {
  display: none;
  position: absolute;
  top: calc(100% + 0px);
  left: 0;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--r-base);
  box-shadow: 0 18px 50px -14px rgba(13,30,20,0.22);
  padding: 0.5rem;
  min-width: 240px;
  z-index: 40;
}
.strip-flyout a {
  display: block;
  padding: 0.625rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-ink);
  border-radius: 6px;
}
.strip-flyout a:hover { background: var(--color-primary-soft); color: var(--color-primary); }

/* ===== HERO ===== */
.hero {
  padding: 5rem 0 6rem;
  position: relative;
  overflow: hidden;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.hero-left .eyebrow { margin-bottom: 1.25rem; display: block; }
.hero h1 { margin-bottom: 1.25rem; max-width: 18ch; }
.hero h1 .calm-wrap {
  position: relative;
  display: inline-block;
  white-space: nowrap;
}
.hero h1 .calm-wrap em {
  font-style: normal;
}
.hero h1 .calm-underline {
  position: absolute;
  left: -4px;
  right: -4px;
  bottom: -10px;
  width: calc(100% + 8px);
  height: 14px;
  pointer-events: none;
}
.hero-sub {
  font-size: 1.125rem;
  color: var(--color-ink-muted);
  max-width: 38ch;
  margin-bottom: 2rem;
  line-height: 1.55;
}
.hero-ctas {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 2.5rem;
}
.hero-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.875rem;
  font-family: var(--mono);
  font-size: 0.8125rem;
  color: var(--color-ink-muted);
  letter-spacing: 0.01em;
}
.hero-stats .dot { color: var(--color-accent); font-weight: 700; }

/* Hero card cluster */
.hero-cards {
  position: relative;
  min-height: 480px;
  overflow: visible;
}
.hero { overflow: hidden; }
.hero-cards .blob {
  position: absolute;
  inset: -10% -20% -10% -10%;
  background: radial-gradient(closest-side, rgba(224,122,31,0.28), rgba(224,122,31,0) 70%);
  z-index: 0;
  pointer-events: none;
}
.hero-card {
  position: absolute;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--r-card);
  padding: 1.375rem;
  box-shadow: 0 18px 40px -18px rgba(13,30,20,0.2);
  z-index: 2;
}
.hero-card-1 {
  top: 0;
  right: 2%;
  width: 82%;
  transform: rotate(-1.6deg);
  transform-origin: center center;
}
.hero-card-2 {
  bottom: 0;
  left: 0;
  width: 78%;
  transform: rotate(1.4deg);
}
.hero-card .card-eyebrow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.hero-card h4 { margin: 0.5rem 0 0.5rem; }
.hero-card .read-more {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  margin-top: 0.75rem;
  color: var(--color-primary);
  font-weight: 600;
  font-size: 0.875rem;
}
.hero-card .read-more:hover { gap: 0.625rem; }

.due-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.75rem; }
.due-list li {
  display: grid;
  grid-template-columns: auto 6.5rem 1fr;
  gap: 0.75rem;
  align-items: baseline;
  padding-bottom: 0.75rem;
  border-bottom: 1px dashed var(--color-border);
  font-size: 0.875rem;
}
.due-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.due-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--pill-urg-fg);
  margin-top: 0.5rem;
  align-self: start;
  box-shadow: 0 0 0 4px rgba(185,28,28,0.12);
}
.due-list .date { color: var(--color-ink); font-weight: 500; }
.due-list .desc { color: var(--color-ink-muted); }

@media (max-width: 980px) {
  .hero { padding: 3rem 0 4rem; }
  .hero-grid { grid-template-columns: 1fr; gap: 3rem; }
  .hero-cards { min-height: 440px; }
}

/* ===== SECTION HEADER ===== */
.section { padding: 6rem 0; }
.section-soft { background: var(--color-primary-soft); }
.section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 3rem;
  flex-wrap: wrap;
}
.section-head .lhs { max-width: 36rem; }
.section-head .lhs h2 { margin-top: 0.5rem; }
.section-head .rhs a {
  color: var(--color-primary);
  font-weight: 600;
  font-size: 0.9375rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.section-head .rhs a:hover { gap: 0.625rem; }
@media (max-width: 760px) {
  .section { padding: 3rem 0; }
}

/* ===== SERVICE GRID ===== */
.service-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
@media (max-width: 980px) { .service-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .service-grid { grid-template-columns: 1fr; } }
.svc-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--r-card);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
.svc-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px -22px rgba(13,30,20,0.22);
  border-color: var(--color-primary);
}
.svc-icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--color-primary-soft);
  color: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.25rem;
}
.svc-icon svg { width: 28px; height: 28px; }
.svc-card h3 { font-size: 1.25rem; }
.svc-card p {
  color: var(--color-ink-muted);
  font-size: 0.9375rem;
  flex: 1;
}
.svc-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0.5rem;
  padding-top: 0.875rem;
  border-top: 1px solid var(--color-border);
}
.svc-chip {
  font-family: var(--mono);
  font-size: 0.6875rem;
  color: var(--color-ink-muted);
  background: var(--color-bg);
  padding: 0.25rem 0.5rem;
  border-radius: var(--r-pill);
}
.svc-link {
  color: var(--color-primary);
  font-weight: 600;
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.svc-link:hover { gap: 0.625rem; }

/* ===== UPDATES ===== */
.updates-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
@media (max-width: 880px) { .updates-grid { grid-template-columns: 1fr; } }
.article-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--r-card);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  transition: transform 180ms ease, box-shadow 180ms ease;
}
.article-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -22px rgba(13,30,20,0.2); }
.article-card .meta-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.75rem;
  color: var(--color-ink-muted);
}
.article-card h4 { font-size: 1.25rem; }
.article-card p {
  color: var(--color-ink-muted);
  font-size: 0.9375rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.article-card .arrow {
  margin-top: auto;
  color: var(--color-primary);
  font-weight: 600;
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}

/* ===== DUE DATES STRIP ===== */
.due-scroll {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(220px, 1fr);
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 0.5rem;
  scrollbar-width: thin;
}
.due-scroll::-webkit-scrollbar { height: 6px; }
.due-scroll::-webkit-scrollbar-thumb { background: var(--color-border); border-radius: 3px; }
.due-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-accent);
  border-radius: var(--r-card);
  padding: 1.25rem 1.25rem 1.25rem 1.25rem;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}
.due-card .day {
  font-family: var(--display);
  font-weight: 600;
  font-size: 3rem;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--color-primary);
}
.due-card .month {
  font-family: var(--mono);
  font-size: 0.75rem;
  color: var(--color-ink-muted);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-top: -0.25rem;
}
.due-card .name {
  font-family: var(--display);
  font-weight: 600;
  font-size: 1.0625rem;
  line-height: 1.2;
  margin-top: 0.5rem;
}
.due-card .applies {
  display: inline-flex;
  align-self: flex-start;
  background: var(--color-primary-soft);
  color: var(--color-primary-deep);
  font-family: var(--mono);
  font-size: 0.6875rem;
  padding: 0.25rem 0.5rem;
  border-radius: var(--r-pill);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 0.375rem;
}

/* ===== WHY US ===== */
.why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
}
@media (max-width: 880px) { .why-grid { grid-template-columns: 1fr; gap: 2rem; } }
.why-col .why-icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  margin-bottom: 1.25rem;
}
.why-col .why-icon svg { width: 26px; height: 26px; }
.why-col h3 { margin-bottom: 0.75rem; }
.why-col p { color: var(--color-ink-muted); font-size: 0.9375rem; }

/* ===== TESTIMONIALS ===== */
.testi-grid {
  columns: 2;
  column-gap: 1.25rem;
}
@media (max-width: 760px) { .testi-grid { columns: 1; } }
.testi-card {
  break-inside: avoid;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--r-card);
  padding: 1.5rem;
  margin-bottom: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.stars {
  display: inline-flex;
  gap: 2px;
  color: var(--color-accent);
}
.testi-card blockquote {
  margin: 0;
  font-family: var(--display);
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1.25;
  color: var(--color-ink);
  letter-spacing: -0.014em;
}
.reviewer {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: auto;
}
.avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--color-primary-soft);
  color: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--display);
  font-weight: 600;
  font-size: 1rem;
}
.reviewer .name { font-weight: 600; font-size: 0.9375rem; }
.verified {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-family: var(--mono);
  font-size: 0.6875rem;
  color: var(--color-ink-muted);
  margin-top: 2px;
}
.verified svg { width: 11px; height: 11px; color: var(--pill-tax-fg); }

/* ===== CLOSING CTA ===== */
.closing-cta {
  position: relative;
  background: var(--color-primary);
  color: var(--color-bg);
  padding: 6rem 0;
  overflow: hidden;
}
.closing-cta::before {
  content: "";
  position: absolute;
  top: -30%;
  right: -10%;
  width: 60%;
  height: 160%;
  background: radial-gradient(closest-side, rgba(224,122,31,0.55), rgba(224,122,31,0) 70%);
  pointer-events: none;
}
.closing-cta .wrap { position: relative; z-index: 1; max-width: 50rem; }
.closing-cta .eyebrow { color: var(--color-accent-soft); margin-bottom: 1.25rem; display: block; }
.closing-cta h2 { color: var(--color-bg); margin-bottom: 1rem; }
.closing-cta .sub {
  color: rgba(250, 246, 238, 0.78);
  font-size: 1.125rem;
  max-width: 36rem;
  margin-bottom: 2rem;
}
.closing-cta .ctas { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 2fr 1.2fr;
  gap: 4rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(250, 246, 238, 0.12);
}
@media (max-width: 980px) {
  .footer-grid { grid-template-columns: 1fr; gap: 3rem; }
}
.partners-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
@media (max-width: 760px) { .partners-grid { grid-template-columns: 1fr; } }

.footer-bottom {
  padding-top: 1.75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  font-size: 0.8125rem;
  color: rgba(250, 246, 238, 0.55);
}

/* ===== TALK TO US WIDGET ===== */
.tt-fab {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  height: 56px;
  padding: 0 1.25rem 0 1rem;
  border-radius: var(--r-pill);
  background: var(--color-accent);
  color: #fff;
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  font-weight: 600;
  font-size: 0.9375rem;
  border: 0;
  cursor: pointer;
  box-shadow: 0 14px 30px -10px rgba(224,122,31,0.55), 0 4px 12px -2px rgba(0,0,0,0.18);
  z-index: 60;
  transition: transform 200ms cubic-bezier(.2,.8,.2,1), background-color 160ms ease;
}
.tt-fab:hover { background: #c4691a; transform: translateY(-2px); }
.tt-fab svg { width: 22px; height: 22px; }
.tt-fab[data-open="true"] { transform: scale(0.92); opacity: 0; pointer-events: none; }

.tt-card {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  width: min(360px, calc(100vw - 2rem));
  height: min(520px, calc(100vh - 3rem));
  background: var(--color-surface);
  border-radius: var(--r-card);
  box-shadow: 0 30px 60px -20px rgba(13,30,20,0.35), 0 10px 25px -10px rgba(13,30,20,0.2);
  display: none;
  flex-direction: column;
  overflow: hidden;
  z-index: 60;
  border: 1px solid var(--color-border);
  transform-origin: bottom right;
  animation: tt-in 240ms cubic-bezier(.2,.8,.2,1);
}
.tt-card[data-open="true"] { display: flex; }
@keyframes tt-in {
  from { transform: translateY(8px) scale(0.96); opacity: 0; }
  to   { transform: translateY(0) scale(1); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .tt-fab, .tt-card { transition: none; animation: none; }
}
.tt-head {
  padding: 1.25rem;
  background: var(--color-primary);
  color: #fff;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.tt-head .ttl {
  font-family: var(--display);
  font-weight: 600;
  font-size: 1.25rem;
  letter-spacing: -0.018em;
  display: block;
  margin-bottom: 0.25rem;
}
.tt-head .sub {
  font-size: 0.8125rem;
  color: rgba(255,255,255,0.78);
}
.tt-close {
  width: 32px; height: 32px;
  background: rgba(255,255,255,0.12);
  border: 0;
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.tt-close:hover { background: rgba(255,255,255,0.2); }
.tt-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 1px solid var(--color-border);
  background: var(--color-bg);
}
.tt-tab {
  padding: 0.875rem 0.5rem;
  font-family: var(--body);
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: var(--color-ink-muted);
  border-bottom: 2px solid transparent;
  transition: color 140ms ease, border-color 140ms ease;
}
.tt-tab[aria-selected="true"] {
  color: var(--color-primary);
  border-bottom-color: var(--color-accent);
  background: var(--color-surface);
}
.tt-body {
  flex: 1;
  overflow-y: auto;
  padding: 1.25rem;
}
.tt-panel { display: none; flex-direction: column; gap: 1rem; }
.tt-panel[data-active="true"] { display: flex; }
.tt-panel label {
  font-family: var(--body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-ink-muted);
  display: block;
  margin-bottom: 0.375rem;
}
.tt-panel input, .tt-panel textarea, .tt-panel select {
  width: 100%;
  padding: 0.625rem 0.75rem;
  border: 1px solid var(--color-border);
  border-radius: var(--r-base);
  background: var(--color-surface);
  font-family: var(--body);
  font-size: 0.9375rem;
  color: var(--color-ink);
}
.tt-panel input:focus, .tt-panel textarea:focus, .tt-panel select:focus {
  border-color: var(--color-primary);
  outline: 2px solid var(--color-accent);
  outline-offset: 1px;
}
.tt-panel textarea { resize: vertical; min-height: 90px; }
.tt-panel .field { margin-bottom: 0.25rem; }
.tt-direct-list { display: flex; flex-direction: column; gap: 0.625rem; }
.tt-direct-list a {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 0.875rem 1rem;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--r-base);
  color: var(--color-ink);
  font-weight: 500;
  font-size: 0.9375rem;
  transition: background-color 140ms ease, border-color 140ms ease;
}
.tt-direct-list a:hover { background: var(--color-primary-soft); border-color: var(--color-primary); }
.tt-direct-list svg { width: 18px; height: 18px; color: var(--color-primary); flex-shrink: 0; }
.tt-direct-list .lbl { font-size: 0.75rem; color: var(--color-ink-muted); display: block; margin-top: 1px; }
.tt-slots {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
}
.tt-slot {
  padding: 0.625rem 0.5rem;
  border: 1px solid var(--color-border);
  border-radius: var(--r-base);
  background: var(--color-surface);
  font-family: var(--body);
  font-size: 0.8125rem;
  color: var(--color-ink);
  cursor: pointer;
  text-align: center;
  font-weight: 500;
}
.tt-slot:hover { border-color: var(--color-primary); }
.tt-slot[aria-pressed="true"] {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}
.tt-submit {
  width: 100%;
  margin-top: 0.5rem;
}

/* === components: news_and_articles.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2.4rem,4.6vw,3.75rem)}h2{font-size:clamp(1.875rem,3vw,2.5rem)}h3{font-size:1.25rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.btn-ghost{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}.btn-ghost:hover{background:var(--color-ink);color:var(--color-bg)}
.btn-cream{background:transparent;color:var(--color-bg);border-color:var(--color-bg)}.btn-cream:hover{background:var(--color-bg);color:var(--color-primary-deep)}

/* FILTER CHIPS */
.filter-row{display:flex;flex-wrap:wrap;gap:.5rem;padding:2rem 0 0;border-top:1px solid var(--color-border);margin-top:2.5rem}
.filter-chip{font-family:var(--body);font-weight:500;font-size:.875rem;background:transparent;border:1.5px solid var(--color-border);color:var(--color-ink);padding:.5rem 1rem;border-radius:var(--r-pill);cursor:pointer;transition:all 160ms ease}
.filter-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}
.filter-chip[aria-pressed=true]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
.filter-chip .count{font-family:var(--mono);font-size:.75em;opacity:.65;margin-left:.25rem}

/* GRID */
.section{padding:3.5rem 0 5rem}
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media(max-width:980px){.cards-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.cards-grid{grid-template-columns:1fr}}
.article-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:.875rem;text-decoration:none;color:inherit;transition:all 220ms ease;min-height:280px}
.article-card::before{content:"";position:absolute;top:0;left:1.5rem;right:1.5rem;height:3px;border-radius:0 0 3px 3px;transform:scaleX(0);transform-origin:left center;transition:transform 240ms ease;background:var(--color-accent)}
.article-card:hover{transform:translateY(-4px);box-shadow:0 22px 44px -22px rgba(13,30,20,.18);border-color:var(--color-primary-soft)}
.article-card:hover::before{transform:scaleX(1)}
.article-card .cat-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.article-card .pill{display:inline-flex;align-items:center;font-family:var(--body);font-weight:600;font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .625rem;border-radius:var(--r-pill);color:#fff;background:var(--color-primary)}
.article-card .pill[data-cat=tax]{background:var(--cat-tax)}
.article-card .pill[data-cat=gst]{background:var(--cat-gst)}
.article-card .pill[data-cat=co]{background:var(--cat-co)}
.article-card .pill[data-cat=nri]{background:var(--cat-nri)}
.article-card .pill[data-cat=budget]{background:var(--cat-budget)}
.article-card .date{font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.04em}
.article-card h3{font-size:1.25rem;line-height:1.2}
.article-card .excerpt{color:var(--color-ink-muted);font-size:.9375rem;line-height:1.55;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.article-card .read{font-weight:600;font-size:.875rem;color:var(--color-primary);display:inline-flex;align-items:center;gap:.3rem;margin-top:.25rem}
.article-card .read svg{width:14px;height:14px;transition:transform 200ms ease}
.article-card:hover .read svg{transform:translateX(3px)}
.article-card.is-hidden{display:none}

.empty-state{display:none;text-align:center;padding:3rem 0;color:var(--color-ink-muted)}
.empty-state.is-active{display:block}

.closing-cta{position:relative;background:var(--color-primary);color:var(--color-bg);padding:4.5rem 0;overflow:hidden}
.closing-cta::before{content:"";position:absolute;top:-30%;right:-10%;width:60%;height:160%;background:radial-gradient(closest-side,rgba(224,122,31,.55),rgba(224,122,31,0) 70%);pointer-events:none}
.closing-cta .wrap{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:3rem;flex-wrap:wrap}
.closing-cta .lhs{max-width:40rem}
.closing-cta .eyebrow{color:var(--color-accent-soft);margin-bottom:.75rem;display:block}
.closing-cta h2{color:var(--color-bg);margin-bottom:.5rem}
.closing-cta .sub{color:rgba(250,246,238,.78);font-size:1.0625rem;max-width:40rem}
.closing-cta .ctas{display:flex;gap:.75rem;flex-wrap:wrap}
.footer-grid{display:grid;grid-template-columns:1.4fr 2fr 1.2fr;gap:4rem;padding-bottom:3rem;border-bottom:1px solid rgba(250,246,238,.12)}
@media(max-width:980px){.footer-grid{grid-template-columns:1fr;gap:3rem}}
.footer-mid{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;color:rgba(250,246,238,.75)}
.footer-mid a{display:flex;align-items:center;gap:.5rem}.footer-mid svg{width:14px;height:14px}
.footer-bottom{padding-top:1.75rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.8125rem;color:rgba(250,246,238,.55)}

/* === components: services.html === */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--color-bg);
  color: var(--color-ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
h1, h2, h3, h4 {
  font-family: var(--display);
  font-weight: 600;
  letter-spacing: -0.018em;
  line-height: 1.05;
  margin: 0;
  color: var(--color-ink);
}
h1 { font-size: clamp(2.4rem, 4.6vw, 3.75rem); }
h2 { font-size: clamp(1.875rem, 3vw, 2.5rem); }
h3 { font-size: 1.375rem; }
h4 { font-size: 1.0625rem; line-height: 1.2; }
p { margin: 0; }
a { color: inherit; text-decoration: none; }
.eyebrow {
  font-family: var(--body);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-ink-muted);
}
.mono { font-family: var(--mono); font-feature-settings: "tnum" 1; }
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; border-radius: 4px; }
.btn-primary { background: var(--color-primary); color: #fff; }
.btn-primary:hover { background: var(--color-primary-deep); }
.btn-ghost { background: transparent; color: var(--color-ink); border-color: var(--color-ink); }
.btn-ghost:hover { background: var(--color-ink); color: var(--color-bg); }
.btn-cream { background: transparent; color: var(--color-bg); border-color: var(--color-bg); }
.btn-cream:hover { background: var(--color-bg); color: var(--color-primary-deep); }

/* Section base */
.section { padding: 5rem 0; }
.section-soft { background: var(--color-primary-soft); }
.section-deep { background: var(--color-primary); color: var(--color-bg); }
.section-head { margin-bottom: 3rem; max-width: 50rem; }
.section-head .eyebrow { display: block; margin-bottom: 1rem; }
.section-head h2 em { font-style: italic; font-weight: 500; color: var(--color-primary); }
.section-deep .section-head h2 { color: var(--color-bg); }
.section-deep .section-head h2 em { color: var(--color-accent-soft); }
.section-head p { margin-top: 1rem; color: var(--color-ink-muted); font-size: 1.0625rem; max-width: 56ch; }
@media (max-width: 760px) { .section { padding: 3.5rem 0; } }

/* ===== SERVICE GRID 4x2 ===== */
.svc-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
@media (max-width: 1100px) { .svc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .svc-grid { grid-template-columns: 1fr; } }

.svc-card {
  position: relative;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--r-card);
  padding: 1.75rem 1.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  text-decoration: none;
  color: inherit;
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
  min-height: 280px;
}
.svc-card::before {
  content: "";
  position: absolute;
  top: 0; left: 1.5rem; right: 1.5rem;
  height: 3px;
  background: var(--color-accent);
  border-radius: 0 0 3px 3px;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 240ms ease;
}
.svc-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 40px -22px rgba(13,30,20,0.18);
  border-color: var(--color-primary-soft);
}
.svc-card:hover::before { transform: scaleX(1); }
.svc-card .icon-wrap {
  width: 48px; height: 48px;
  border-radius: 12px;
  background: var(--color-primary-soft);
  color: var(--color-primary-deep);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.svc-card .icon-wrap svg { width: 24px; height: 24px; }
.svc-card h3 { font-size: 1.25rem; line-height: 1.15; }
.svc-card .desc { color: var(--color-ink-muted); font-size: 0.9375rem; line-height: 1.55; flex: 1; }
.svc-card .meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.5rem;
}
.svc-card .chip {
  font-family: var(--mono);
  font-size: 0.6875rem;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  padding: 0.25rem 0.625rem;
  border-radius: var(--r-pill);
  letter-spacing: 0.04em;
  color: var(--color-ink-muted);
}
.svc-card .read {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
.svc-card .read svg { width: 14px; height: 14px; transition: transform 200ms ease; }
.svc-card:hover .read svg { transform: translateX(3px); }

/* ===== FEATURED ROW ===== */
.feat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
@media (max-width: 1100px) { .feat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .feat-grid { grid-template-columns: 1fr; } }
.feat-card {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(250, 246, 238, 0.18);
  border-radius: var(--r-card);
  padding: 1.5rem 1.25rem;
  color: var(--color-bg);
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  transition: background-color 180ms ease, transform 200ms ease, border-color 200ms ease;
}
.feat-card:hover {
  background: rgba(255,255,255,0.12);
  border-color: var(--color-accent);
  transform: translateY(-3px);
}
.feat-card .num {
  font-family: var(--mono);
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  color: var(--color-accent-soft);
  text-transform: uppercase;
}
.feat-card h4 {
  font-size: 1.1875rem;
  color: var(--color-bg);
}
.feat-card p {
  font-size: 0.875rem;
  line-height: 1.5;
  color: rgba(250, 246, 238, 0.78);
  flex: 1;
}
.feat-card .read {
  margin-top: 0.5rem;
  font-weight: 600;
  font-size: 0.8125rem;
  color: var(--color-accent-soft);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.feat-card .read svg { width: 13px; height: 13px; }

/* ===== ARTICLES TEASER ===== */
.articles-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
@media (max-width: 980px) { .articles-row { grid-template-columns: 1fr; } }
.article-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--r-card);
  padding: 1.75rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  transition: transform 200ms ease, box-shadow 200ms ease;
  min-height: 220px;
}
.article-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 36px -22px rgba(13,30,20,0.18);
}
.article-card .num {
  font-family: var(--mono);
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  color: var(--color-accent);
  text-transform: uppercase;
}
.article-card h3 {
  font-size: 1.25rem;
  letter-spacing: -0.012em;
}
.article-card p { color: var(--color-ink-muted); font-size: 0.9375rem; line-height: 1.55; flex: 1; }
.article-card .read {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--color-primary);
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
.articles-foot {
  margin-top: 2.5rem;
  display: flex;
  justify-content: center;
}

/* ===== INLINE CONTACT FORM ===== */
.inline-contact {
  background: var(--color-bg);
  padding: 5rem 0;
  border-top: 1px solid var(--color-border);
}
.contact-shell {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 4rem;
  align-items: start;
}
@media (max-width: 980px) { .contact-shell { grid-template-columns: 1fr; gap: 2.5rem; } }
.contact-shell .lhs h2 { margin-bottom: 1rem; }
.contact-shell .lhs h2 em { font-style: italic; font-weight: 500; color: var(--color-primary); }
.contact-shell .lhs p { color: var(--color-ink-muted); font-size: 1.0625rem; }
.contact-shell .lhs .meta {
  margin-top: 1.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.contact-shell .lhs .meta a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9375rem;
  color: var(--color-ink);
  font-weight: 500;
}
.contact-shell .lhs .meta svg { width: 14px; height: 14px; color: var(--color-primary); }

.form-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--r-card);
  padding: 2rem 2rem 2.25rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1rem;
}
.form-card .full { grid-column: 1 / -1; }
.form-card label {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-ink);
  letter-spacing: 0.02em;
}
.form-card input, .form-card textarea {
  font-family: var(--body);
  font-size: 0.9375rem;
  padding: 0.75rem 0.875rem;
  border: 1px solid var(--color-border);
  border-radius: var(--r-base);
  background: var(--color-bg);
  color: var(--color-ink);
  transition: border-color 140ms ease, background-color 140ms ease;
  min-height: 44px;
  width: 100%;
}
.form-card textarea { resize: vertical; min-height: 120px; }
.form-card input:focus, .form-card textarea:focus {
  outline: none;
  border-color: var(--color-primary);
  background: #fff;
}
.form-card .submit-row {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 0.5rem;
  flex-wrap: wrap;
}
.form-card .legal {
  font-size: 0.75rem;
  color: var(--color-ink-muted);
  max-width: 30ch;
  line-height: 1.45;
}
@media (max-width: 560px) {
  .form-card { grid-template-columns: 1fr; padding: 1.5rem; }
}

/* ===== BOTTOM CTA ===== */
.closing-cta { position: relative; background: var(--color-primary); color: var(--color-bg); padding: 4.5rem 0; overflow: hidden; }
.closing-cta::before { content: ""; position: absolute; top: -30%; right: -10%; width: 60%; height: 160%; background: radial-gradient(closest-side, rgba(224,122,31,0.45), rgba(224,122,31,0) 70%); pointer-events: none; }
.closing-cta .wrap { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 3rem; flex-wrap: wrap; }
.closing-cta .lhs { max-width: 40rem; }
.closing-cta .eyebrow { color: var(--color-accent-soft); margin-bottom: 0.75rem; display: block; }
.closing-cta h2 { color: var(--color-bg); margin-bottom: 0.5rem; }
.closing-cta .sub { color: rgba(250, 246, 238, 0.78); font-size: 1.0625rem; max-width: 40rem; }
.closing-cta .ctas { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 2fr 1.2fr; gap: 4rem; padding-bottom: 3rem; border-bottom: 1px solid rgba(250, 246, 238, 0.12); }
@media (max-width: 980px) { .footer-grid { grid-template-columns: 1fr; gap: 3rem; } }

.footer-bottom { padding-top: 1.75rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; font-size: 0.8125rem; color: rgba(250, 246, 238, 0.55); }

/* === components: testimonials.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2.4rem,4.6vw,3.75rem)}h2{font-size:clamp(1.875rem,3vw,2.5rem)}h3{font-size:1.25rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.btn-ghost{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}.btn-ghost:hover{background:var(--color-ink);color:var(--color-bg)}

.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}
.verified-badge{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--body);font-weight:600;font-size:.75rem;background:#fff;border:1px solid var(--color-border);padding:.35rem .75rem;border-radius:var(--r-pill);color:var(--color-ink);letter-spacing:.02em}
.verified-badge .gicon{width:14px;height:14px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.verified-badge .gicon svg{width:14px;height:14px}

/* SUMMARY CARD */
.summary-section{padding:1rem 0 3rem}
.summary-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:2rem 2.5rem;display:grid;grid-template-columns:auto 1px 1fr auto;gap:2.25rem;align-items:center}
@media(max-width:780px){.summary-card{grid-template-columns:1fr;gap:1.5rem;padding:1.75rem}}
.summary-rating{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}
.summary-rating .num{font-family:var(--display);font-weight:600;font-size:4.25rem;line-height:.95;letter-spacing:-.03em;color:var(--color-ink);font-feature-settings:"tnum" 1}
.summary-rating .num em{font-style:normal;color:var(--color-ink-muted);font-weight:500;font-size:2.25rem}
.summary-rating .stars{display:flex;gap:2px}
.summary-rating .stars svg{width:18px;height:18px;fill:var(--color-star)}
.summary-divider{width:1px;background:var(--color-border);align-self:stretch;justify-self:center}
@media(max-width:780px){.summary-divider{display:none}}
.summary-meta{display:flex;flex-direction:column;gap:.4rem}
.summary-meta .count{font-family:var(--display);font-weight:500;font-size:1.25rem;color:var(--color-ink)}
.summary-meta .count strong{font-weight:600}
.summary-meta .since{font-family:var(--mono);font-size:.8125rem;color:var(--color-ink-muted);letter-spacing:.04em}
.summary-meta .breakdown{display:flex;flex-direction:column;gap:.3rem;margin-top:.75rem;max-width:280px}
.summary-meta .br-row{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;gap:.6rem;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted)}
.summary-meta .bar{height:6px;background:var(--color-border);border-radius:3px;overflow:hidden}
.summary-meta .bar span{display:block;height:100%;background:var(--color-star);border-radius:3px}
.summary-cta{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}
@media(max-width:780px){.summary-cta{align-items:flex-start}}
.google-link{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9375rem;color:var(--color-ink);padding:.625rem 1rem;border:1.5px solid var(--color-border);border-radius:var(--r-base);transition:all 160ms ease}
.google-link:hover{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-deep)}
.google-link svg{width:18px;height:18px}

/* REVIEW MASONRY */
.reviews-section{padding:1rem 0 5rem}
.reviews-masonry{column-count:3;column-gap:1.5rem}
@media(max-width:980px){.reviews-masonry{column-count:2}}
@media(max-width:640px){.reviews-masonry{column-count:1}}
.review-card{break-inside:avoid;margin-bottom:1.5rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.5rem 1.5rem 1.25rem;display:flex;flex-direction:column;gap:.875rem;transition:all 220ms ease}
.review-card:hover{transform:translateY(-2px);box-shadow:0 18px 36px -22px rgba(13,30,20,.16);border-color:var(--color-primary-soft)}
.review-head{display:flex;align-items:center;gap:.75rem}
.avatar{width:42px;height:42px;border-radius:50%;background:var(--color-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:600;font-size:1rem;flex-shrink:0;letter-spacing:.02em}
.avatar.is-accent{background:var(--color-accent)}
.avatar.is-deep{background:var(--color-primary-deep)}
.avatar.is-ink{background:var(--color-ink)}
.review-head .head-meta{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.review-head .name{font-weight:600;font-size:.9375rem;color:var(--color-ink)}
.review-head .when{font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);letter-spacing:.06em}
.stars-row{display:flex;gap:1px}
.stars-row svg{width:16px;height:16px;fill:var(--color-star)}
.review-body{font-size:.9375rem;line-height:1.6;color:var(--color-ink);font-feature-settings:"liga" 1}
.review-foot{display:flex;align-items:center;gap:.4rem;padding-top:.625rem;margin-top:.25rem;border-top:1px solid var(--color-border);font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);letter-spacing:.04em}
.review-foot .gdot{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px}
.review-foot .gdot svg{width:14px;height:14px}

/* CTA */
.cta-band{background:var(--color-primary);color:var(--color-bg);border-radius:var(--r-card);padding:2.5rem 3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;top:-40%;right:-10%;width:520px;height:520px;background:radial-gradient(closest-side,rgba(224,122,31,.32),rgba(224,122,31,0) 70%);pointer-events:none}
.cta-band .lhs{position:relative;z-index:1;max-width:42ch}
.cta-band h2{color:var(--color-bg);font-size:2rem;margin-bottom:.625rem}
.cta-band h2 em{color:var(--color-accent-soft);font-style:italic;font-weight:500}
.cta-band p{color:rgba(250,246,238,.85);font-size:1rem;line-height:1.55}
.cta-band .ctas{display:flex;gap:.75rem;flex-wrap:wrap;position:relative;z-index:1}
.cta-band .btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}
.cta-band .btn-primary:hover{background:#c46715;border-color:#c46715}
.cta-band .btn-cream{background:transparent;color:var(--color-bg);border-color:var(--color-bg)}.cta-band .btn-cream:hover{background:var(--color-bg);color:var(--color-primary-deep)}
.footer-grid{display:grid;grid-template-columns:1.4fr 2fr 1.2fr;gap:4rem;padding-bottom:3rem;border-bottom:1px solid rgba(250,246,238,.12)}
@media(max-width:980px){.footer-grid{grid-template-columns:1fr;gap:3rem}}
.footer-mid{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;color:rgba(250,246,238,.75)}
.footer-mid a{display:flex;align-items:center;gap:.5rem}.footer-mid svg{width:14px;height:14px}
.footer-bottom{padding-top:1.75rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.8125rem;color:rgba(250,246,238,.55)}

/* === components: tools/advance-tax-calculator.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:1.5rem}h3{font-size:1.125rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}
.calc-section{padding:1rem 0 5rem}
.calc-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:start}
@media(max-width:980px){.calc-grid{grid-template-columns:1fr}}
.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 2rem 2rem}
.form-card h2{margin-bottom:1.5rem;font-size:1.5rem}
.field-group{display:flex;flex-direction:column;gap:1.125rem}
.field{display:flex;flex-direction:column;gap:.375rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field label{font-weight:500;font-size:.8125rem;color:var(--color-ink);letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.field label .hint{font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);font-weight:400;letter-spacing:.04em}
.field input,.field select{height:44px;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-bg);padding:0 .875rem;font-family:var(--mono);font-size:.9375rem;color:var(--color-ink);transition:border-color 160ms ease,background-color 160ms ease}
.field input:focus,.field select:focus{outline:0;border-color:var(--color-primary);background:#fff}
.toggle-row{display:flex;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--r-base);padding:.25rem;gap:.25rem}
.toggle-row button{flex:1;background:transparent;border:0;padding:.5rem;font-family:var(--body);font-weight:500;font-size:.8125rem;color:var(--color-ink-muted);border-radius:6px;cursor:pointer;transition:all 160ms ease}
.toggle-row button[aria-pressed=true]{background:var(--color-primary);color:#fff;font-weight:600}
.checkbox-row{display:flex;gap:.625rem;align-items:flex-start;padding:.75rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--r-base)}
.checkbox-row input[type=checkbox]{margin-top:.25rem;width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}
.checkbox-row label{font-weight:500;font-size:.875rem;color:var(--color-ink);cursor:pointer;line-height:1.4}
.checkbox-row label small{display:block;font-weight:400;color:var(--color-ink-muted);font-size:.8125rem;margin-top:.25rem}
.exemption-banner{margin-top:1.25rem;padding:1.25rem;background:var(--color-accent-soft);border:1px solid rgba(224,122,31,.3);border-radius:var(--r-base);color:#7a4a18;font-weight:500;font-size:.9375rem;line-height:1.55}
.exemption-banner strong{display:block;margin-bottom:.25rem;font-family:var(--display);font-weight:600;color:var(--color-accent);font-size:1.0625rem}
.result-wrap{position:sticky;top:104px}
.result-card{background:var(--color-primary-deep);color:var(--color-bg);border-radius:var(--r-card);padding:2rem 1.75rem 1.75rem;position:relative;overflow:hidden}
.result-card::before{content:"";position:absolute;top:-30%;right:-20%;width:380px;height:380px;background:radial-gradient(closest-side,rgba(224,122,31,.4),rgba(224,122,31,0) 70%);pointer-events:none}
.result-card .inner{position:relative;z-index:1}
.result-card .label{font-family:var(--body);font-weight:500;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent-soft);display:block;margin-bottom:.625rem}
.result-card .big{font-family:var(--display);font-weight:600;font-size:clamp(2.4rem,5.5vw,3.6rem);line-height:1;letter-spacing:-.03em;color:var(--color-bg);font-feature-settings:"tnum" 1}
.result-card .sub-line{font-family:var(--mono);font-size:.8125rem;color:rgba(250,246,238,.7);margin-top:.5rem;letter-spacing:.04em}
.installments{margin-top:1.75rem;display:flex;flex-direction:column;gap:.75rem}
.inst{padding:.875rem 1rem;background:rgba(0,0,0,.18);border-radius:.5rem;display:grid;grid-template-columns:auto 1fr auto;gap:.875rem;align-items:center}
.inst .badge{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:600;font-size:.875rem}
.inst .meta{display:flex;flex-direction:column}
.inst .due{color:var(--color-bg);font-weight:600;font-size:.9375rem}
.inst .pct{font-family:var(--mono);font-size:.6875rem;color:rgba(250,246,238,.65);letter-spacing:.06em;text-transform:uppercase}
.inst .amt{font-family:var(--mono);font-size:1rem;font-weight:600;color:var(--color-accent-soft)}
.exempt-card{margin-top:1.75rem;padding:1.5rem;background:rgba(255,255,255,.08);border:1px dashed rgba(250,246,238,.3);border-radius:.5rem;text-align:center;color:rgba(250,246,238,.85)}
.exempt-card strong{display:block;margin-bottom:.5rem;color:var(--color-bg);font-family:var(--display);font-size:1.125rem}
.how-section{margin-top:2.5rem}
.how{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);overflow:hidden}
.how summary{list-style:none;padding:1.25rem 1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--display);font-weight:600;font-size:1.125rem;color:var(--color-ink)}
.how summary::-webkit-details-marker{display:none}
.how summary .icon{width:28px;height:28px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 200ms ease;font-family:var(--mono)}
.how[open] summary .icon{background:var(--color-primary);color:#fff;transform:rotate(45deg)}
.how .body{padding:0 1.75rem 1.75rem;color:var(--color-ink-muted);font-size:.9375rem;line-height:1.65;display:flex;flex-direction:column;gap:.875rem}
.how .body .formula{font-family:var(--mono);font-size:.8125rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem 1rem;color:var(--color-ink);line-height:1.5}
.how .body strong{color:var(--color-ink)}
.disclaimer{margin-top:2rem;display:flex;gap:1rem;background:var(--color-accent-soft);border:1px solid rgba(224,122,31,.3);border-radius:var(--r-card);padding:1.125rem 1.25rem;align-items:flex-start}
.disclaimer .badge{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--display);font-weight:600;font-size:1rem}
.disclaimer p{font-size:.875rem;color:#7a4a18;line-height:1.55}
.disclaimer p strong{color:var(--color-ink);font-weight:600}
.disclaimer p a{color:var(--color-primary-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* === components: tools/capital-gains-calculator.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:1.5rem}h3{font-size:1.125rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}
.calc-section{padding:1rem 0 5rem}
.calc-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:start}
@media(max-width:980px){.calc-grid{grid-template-columns:1fr}}
.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 2rem 2rem}
.form-card h2{margin-bottom:1.5rem;font-size:1.5rem}
.field-group{display:flex;flex-direction:column;gap:1.125rem}
.field{display:flex;flex-direction:column;gap:.375rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field label{font-weight:500;font-size:.8125rem;color:var(--color-ink);letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.field label .hint{font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);font-weight:400;letter-spacing:.04em}
.field input,.field select{height:44px;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-bg);padding:0 .875rem;font-family:var(--mono);font-size:.9375rem;color:var(--color-ink);transition:border-color 160ms ease,background-color 160ms ease}
.field input:focus,.field select:focus{outline:0;border-color:var(--color-primary);background:#fff}
.field-section-title{font-family:var(--mono);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent);font-weight:600;padding-top:.5rem;margin-top:.25rem;border-top:1px solid var(--color-border)}
.field-section-title:first-child{border-top:0;padding-top:0;margin-top:0}
.classification{margin-top:1rem;padding:.875rem 1rem;background:var(--color-primary-soft);border:1px solid rgba(13,92,62,.2);border-radius:var(--r-base);font-size:.875rem;color:var(--color-primary-deep);line-height:1.55}
.classification strong{display:block;font-family:var(--display);font-weight:600;margin-bottom:.25rem;color:var(--color-primary)}
.result-wrap{position:sticky;top:104px}
.result-card{background:var(--color-primary-deep);color:var(--color-bg);border-radius:var(--r-card);padding:2rem 1.75rem 1.75rem;position:relative;overflow:hidden}
.result-card::before{content:"";position:absolute;top:-30%;right:-20%;width:380px;height:380px;background:radial-gradient(closest-side,rgba(224,122,31,.4),rgba(224,122,31,0) 70%);pointer-events:none}
.result-card .inner{position:relative;z-index:1}
.result-card .label{font-family:var(--body);font-weight:500;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent-soft);display:block;margin-bottom:.625rem}
.result-card .big{font-family:var(--display);font-weight:600;font-size:clamp(2.4rem,5.5vw,3.6rem);line-height:1;letter-spacing:-.03em;color:var(--color-bg);font-feature-settings:"tnum" 1}
.result-card .sub-line{font-family:var(--mono);font-size:.8125rem;color:rgba(250,246,238,.7);margin-top:.5rem;letter-spacing:.04em}
.result-table{margin-top:1.75rem;display:flex;flex-direction:column;gap:.5rem}
.result-row{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;padding:.625rem 0;border-bottom:1px solid rgba(250,246,238,.12)}
.result-row:last-child{border-bottom:0}
.result-row .key{color:rgba(250,246,238,.78);font-weight:500}
.result-row .val{font-family:var(--mono);font-weight:500;color:var(--color-bg)}
.result-row.is-emphatic .key{color:var(--color-accent-soft);font-weight:600}
.result-row.is-emphatic .val{color:var(--color-accent-soft);font-weight:600;font-size:.9375rem}
.result-row.is-tax{padding-top:.875rem;margin-top:.5rem;border-top:1px solid rgba(250,246,238,.25);border-bottom:0}
.result-row.is-tax .key{color:var(--color-bg);font-weight:600;font-size:.9375rem}
.result-row.is-tax .val{color:#fff;font-weight:600;font-size:1.0625rem}
.how-section{margin-top:2.5rem}
.how{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);overflow:hidden}
.how summary{list-style:none;padding:1.25rem 1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--display);font-weight:600;font-size:1.125rem;color:var(--color-ink)}
.how summary::-webkit-details-marker{display:none}
.how summary .icon{width:28px;height:28px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 200ms ease;font-family:var(--mono)}
.how[open] summary .icon{background:var(--color-primary);color:#fff;transform:rotate(45deg)}
.how .body{padding:0 1.75rem 1.75rem;color:var(--color-ink-muted);font-size:.9375rem;line-height:1.65;display:flex;flex-direction:column;gap:.875rem}
.how .body .formula{font-family:var(--mono);font-size:.8125rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem 1rem;color:var(--color-ink);line-height:1.5}
.how .body strong{color:var(--color-ink)}
.disclaimer{margin-top:2rem;display:flex;gap:1rem;background:var(--color-accent-soft);border:1px solid rgba(224,122,31,.3);border-radius:var(--r-card);padding:1.125rem 1.25rem;align-items:flex-start}
.disclaimer .badge{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--display);font-weight:600;font-size:1rem}
.disclaimer p{font-size:.875rem;color:#7a4a18;line-height:1.55}
.disclaimer p strong{color:var(--color-ink);font-weight:600}
.disclaimer p a{color:var(--color-primary-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* === components: tools/emi-calculator.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:1.5rem}h3{font-size:1.125rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}
.calc-section{padding:1rem 0 5rem}
.calc-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:start}
@media(max-width:980px){.calc-grid{grid-template-columns:1fr}}
.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 2rem 2rem}
.form-card h2{margin-bottom:1.5rem;font-size:1.5rem}
.field-group{display:flex;flex-direction:column;gap:1.125rem}
.field{display:flex;flex-direction:column;gap:.375rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field label{font-weight:500;font-size:.8125rem;color:var(--color-ink);letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.field label .hint{font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);font-weight:400;letter-spacing:.04em}
.field input,.field select{height:44px;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-bg);padding:0 .875rem;font-family:var(--mono);font-size:.9375rem;color:var(--color-ink);transition:border-color 160ms ease,background-color 160ms ease}
.field input:focus,.field select:focus{outline:0;border-color:var(--color-primary);background:#fff}
.field input[type=range]{padding:0;height:6px;background:var(--color-primary-soft);accent-color:var(--color-primary)}
.range-row{display:flex;align-items:center;gap:.75rem}
.range-row input[type=number]{width:120px;text-align:right}
.range-row input[type=range]{flex:1}
.tenure-toggle{display:flex;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--r-base);padding:.25rem;gap:.25rem;margin-top:.5rem}
.tenure-toggle button{flex:1;background:transparent;border:0;padding:.5rem;font-family:var(--body);font-weight:500;font-size:.8125rem;color:var(--color-ink-muted);border-radius:6px;cursor:pointer;transition:all 160ms ease}
.tenure-toggle button[aria-pressed=true]{background:var(--color-primary);color:#fff;font-weight:600}
.result-wrap{position:sticky;top:104px}
.result-card{background:var(--color-primary-deep);color:var(--color-bg);border-radius:var(--r-card);padding:2rem 1.75rem 1.75rem;position:relative;overflow:hidden}
.result-card::before{content:"";position:absolute;top:-30%;right:-20%;width:380px;height:380px;background:radial-gradient(closest-side,rgba(224,122,31,.4),rgba(224,122,31,0) 70%);pointer-events:none}
.result-card .inner{position:relative;z-index:1}
.result-card .label{font-family:var(--body);font-weight:500;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent-soft);display:block;margin-bottom:.625rem}
.result-card .big{font-family:var(--display);font-weight:600;font-size:clamp(2.4rem,5.5vw,3.6rem);line-height:1;letter-spacing:-.03em;color:var(--color-bg);font-feature-settings:"tnum" 1}
.result-card .sub-line{font-family:var(--mono);font-size:.8125rem;color:rgba(250,246,238,.7);margin-top:.5rem;letter-spacing:.04em}
.result-table{margin-top:1.75rem;display:flex;flex-direction:column;gap:.5rem}
.result-row{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;padding:.625rem 0;border-bottom:1px solid rgba(250,246,238,.12)}
.result-row:last-child{border-bottom:0}
.result-row .key{color:rgba(250,246,238,.78);font-weight:500}
.result-row .val{font-family:var(--mono);font-weight:500;color:var(--color-bg)}
.result-row.is-emphatic .key{color:var(--color-accent-soft);font-weight:600}
.result-row.is-emphatic .val{color:var(--color-accent-soft);font-weight:600;font-size:.9375rem}
.split-bar{margin-top:1.25rem;height:8px;border-radius:4px;background:rgba(250,246,238,.12);overflow:hidden;display:flex}
.split-bar .principal{background:var(--color-accent-soft);height:100%}
.split-bar .interest{background:var(--color-accent);height:100%}
.split-legend{margin-top:.5rem;display:flex;justify-content:space-between;font-family:var(--mono);font-size:.6875rem;color:rgba(250,246,238,.7);letter-spacing:.04em}
.split-legend .swatch{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:.4rem;vertical-align:middle}

.amort-section{margin-top:2.5rem}
.amort{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);overflow:hidden}
.amort summary{list-style:none;padding:1.25rem 1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--display);font-weight:600;font-size:1.125rem;color:var(--color-ink)}
.amort summary::-webkit-details-marker{display:none}
.amort summary .icon{width:28px;height:28px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 200ms ease;font-family:var(--mono)}
.amort[open] summary .icon{background:var(--color-primary);color:#fff;transform:rotate(45deg)}
.amort .body{padding:0 1.75rem 1.75rem}
.amort table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:.8125rem}
.amort thead th{text-align:left;padding:.625rem .75rem;background:var(--color-bg);color:var(--color-ink-muted);font-weight:600;font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--color-border)}
.amort tbody td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border);color:var(--color-ink)}
.amort tbody tr:hover{background:var(--color-bg)}
.amort .num{text-align:right}
.amort-yearly tbody td{font-weight:500}
.how-section{margin-top:2.5rem}
.how{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);overflow:hidden}
.how summary{list-style:none;padding:1.25rem 1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--display);font-weight:600;font-size:1.125rem;color:var(--color-ink)}
.how summary::-webkit-details-marker{display:none}
.how summary .icon{width:28px;height:28px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 200ms ease;font-family:var(--mono)}
.how[open] summary .icon{background:var(--color-primary);color:#fff;transform:rotate(45deg)}
.how .body{padding:0 1.75rem 1.75rem;color:var(--color-ink-muted);font-size:.9375rem;line-height:1.65;display:flex;flex-direction:column;gap:.875rem}
.how .body .formula{font-family:var(--mono);font-size:.8125rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem 1rem;color:var(--color-ink);line-height:1.5}
.how .body strong{color:var(--color-ink)}
.disclaimer{margin-top:2rem;display:flex;gap:1rem;background:var(--color-accent-soft);border:1px solid rgba(224,122,31,.3);border-radius:var(--r-card);padding:1.125rem 1.25rem;align-items:flex-start}
.disclaimer .badge{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--display);font-weight:600;font-size:1rem}
.disclaimer p{font-size:.875rem;color:#7a4a18;line-height:1.55}
.disclaimer p strong{color:var(--color-ink);font-weight:600}
.disclaimer p a{color:var(--color-primary-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* === components: tools/epf-calculator.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:1.5rem}h3{font-size:1.125rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}
.ay-pill{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.75rem;background:var(--color-primary-soft);color:var(--color-primary-deep);padding:.35rem .75rem;border-radius:var(--r-pill);letter-spacing:.06em;margin-top:.75rem}
.calc-section{padding:1rem 0 5rem}
.calc-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:start}
@media(max-width:980px){.calc-grid{grid-template-columns:1fr}}
.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 2rem 2rem}
.form-card h2{margin-bottom:1.5rem;font-size:1.5rem}
.field-group{display:flex;flex-direction:column;gap:1.125rem}
.field{display:flex;flex-direction:column;gap:.375rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field label{font-weight:500;font-size:.8125rem;color:var(--color-ink);letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.field label .hint{font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);font-weight:400;letter-spacing:.04em}
.field input,.field select{height:44px;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-bg);padding:0 .875rem;font-family:var(--mono);font-size:.9375rem;color:var(--color-ink);transition:border-color 160ms ease,background-color 160ms ease}
.field input:focus,.field select:focus{outline:0;border-color:var(--color-primary);background:#fff}
.result-wrap{position:sticky;top:104px}
.result-card{background:var(--color-primary-deep);color:var(--color-bg);border-radius:var(--r-card);padding:2rem 1.75rem 1.75rem;position:relative;overflow:hidden}
.result-card::before{content:"";position:absolute;top:-30%;right:-20%;width:380px;height:380px;background:radial-gradient(closest-side,rgba(224,122,31,.4),rgba(224,122,31,0) 70%);pointer-events:none}
.result-card .inner{position:relative;z-index:1}
.result-card .label{font-family:var(--body);font-weight:500;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent-soft);display:block;margin-bottom:.625rem}
.result-card .big{font-family:var(--display);font-weight:600;font-size:clamp(2.4rem,5.5vw,3.6rem);line-height:1;letter-spacing:-.03em;color:var(--color-bg);font-feature-settings:"tnum" 1}
.result-card .sub-line{font-family:var(--mono);font-size:.8125rem;color:rgba(250,246,238,.7);margin-top:.5rem;letter-spacing:.04em}
.result-table{margin-top:1.75rem;display:flex;flex-direction:column;gap:.5rem}
.result-row{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;padding:.625rem 0;border-bottom:1px solid rgba(250,246,238,.12)}
.result-row:last-child{border-bottom:0}
.result-row .key{color:rgba(250,246,238,.78);font-weight:500}
.result-row .val{font-family:var(--mono);font-weight:500;color:var(--color-bg)}
.result-row.is-emphatic .key{color:var(--color-accent-soft);font-weight:600}
.result-row.is-emphatic .val{color:var(--color-accent-soft);font-weight:600;font-size:.9375rem}
.split-bar{margin-top:1.25rem;height:8px;border-radius:4px;background:rgba(250,246,238,.12);overflow:hidden;display:flex}
.split-bar .a{background:var(--color-accent-soft);height:100%}
.split-bar .b{background:var(--color-accent);height:100%}
.split-legend{margin-top:.5rem;display:flex;justify-content:space-between;font-family:var(--mono);font-size:.6875rem;color:rgba(250,246,238,.7);letter-spacing:.04em}
.split-legend .swatch{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:.4rem;vertical-align:middle}
.how-section{margin-top:2.5rem}
.how{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);overflow:hidden}
.how summary{list-style:none;padding:1.25rem 1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--display);font-weight:600;font-size:1.125rem;color:var(--color-ink)}
.how summary::-webkit-details-marker{display:none}
.how summary .icon{width:28px;height:28px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 200ms ease;font-family:var(--mono)}
.how[open] summary .icon{background:var(--color-primary);color:#fff;transform:rotate(45deg)}
.how .body{padding:0 1.75rem 1.75rem;color:var(--color-ink-muted);font-size:.9375rem;line-height:1.65;display:flex;flex-direction:column;gap:.875rem}
.how .body .formula{font-family:var(--mono);font-size:.8125rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem 1rem;color:var(--color-ink);line-height:1.5}
.how .body strong{color:var(--color-ink)}
.disclaimer{margin-top:2rem;display:flex;gap:1rem;background:var(--color-accent-soft);border:1px solid rgba(224,122,31,.3);border-radius:var(--r-card);padding:1.125rem 1.25rem;align-items:flex-start}
.disclaimer .badge{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--display);font-weight:600;font-size:1rem}
.disclaimer p{font-size:.875rem;color:#7a4a18;line-height:1.55}
.disclaimer p strong{color:var(--color-ink);font-weight:600}
.disclaimer p a{color:var(--color-primary-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* === components: tools/gratuity-calculator.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:1.5rem}h3{font-size:1.125rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}
.calc-section{padding:1rem 0 5rem}
.calc-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:start}
@media(max-width:980px){.calc-grid{grid-template-columns:1fr}}
.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 2rem 2rem}
.form-card h2{margin-bottom:1.5rem;font-size:1.5rem}
.field-group{display:flex;flex-direction:column;gap:1.125rem}
.field{display:flex;flex-direction:column;gap:.375rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field label{font-weight:500;font-size:.8125rem;color:var(--color-ink);letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.field label .hint{font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);font-weight:400;letter-spacing:.04em}
.field input,.field select{height:44px;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-bg);padding:0 .875rem;font-family:var(--mono);font-size:.9375rem;color:var(--color-ink);transition:border-color 160ms ease,background-color 160ms ease}
.field input:focus,.field select:focus{outline:0;border-color:var(--color-primary);background:#fff}
.toggle-row{display:flex;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--r-base);padding:.25rem;gap:.25rem}
.toggle-row button{flex:1;background:transparent;border:0;padding:.625rem .5rem;font-family:var(--body);font-weight:600;font-size:.875rem;color:var(--color-ink-muted);border-radius:6px;cursor:pointer;transition:all 160ms ease}
.toggle-row button[aria-pressed=true]{background:var(--color-primary);color:#fff}
.result-wrap{position:sticky;top:104px}
.result-card{background:var(--color-primary-deep);color:var(--color-bg);border-radius:var(--r-card);padding:2rem 1.75rem 1.75rem;position:relative;overflow:hidden}
.result-card::before{content:"";position:absolute;top:-30%;right:-20%;width:380px;height:380px;background:radial-gradient(closest-side,rgba(224,122,31,.4),rgba(224,122,31,0) 70%);pointer-events:none}
.result-card .inner{position:relative;z-index:1}
.result-card .label{font-family:var(--body);font-weight:500;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent-soft);display:block;margin-bottom:.625rem}
.result-card .big{font-family:var(--display);font-weight:600;font-size:clamp(2.4rem,5.5vw,3.6rem);line-height:1;letter-spacing:-.03em;color:var(--color-bg);font-feature-settings:"tnum" 1}
.result-card .sub-line{font-family:var(--mono);font-size:.8125rem;color:rgba(250,246,238,.7);margin-top:.5rem;letter-spacing:.04em}
.result-table{margin-top:1.75rem;display:flex;flex-direction:column;gap:.5rem}
.result-row{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;padding:.625rem 0;border-bottom:1px solid rgba(250,246,238,.12)}
.result-row:last-child{border-bottom:0}
.result-row .key{color:rgba(250,246,238,.78);font-weight:500}
.result-row .val{font-family:var(--mono);font-weight:500;color:var(--color-bg)}
.result-row.is-emphatic .key{color:var(--color-accent-soft);font-weight:600}
.result-row.is-emphatic .val{color:var(--color-accent-soft);font-weight:600;font-size:.9375rem}
.result-row.is-tax{padding-top:.875rem;margin-top:.5rem;border-top:1px solid rgba(250,246,238,.25);border-bottom:0}
.result-row.is-tax .key{color:var(--color-bg);font-weight:600;font-size:.9375rem}
.result-row.is-tax .val{color:#fff;font-weight:600;font-size:1.0625rem}
.eligibility-pill{margin-top:1.25rem;display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:var(--r-pill);font-family:var(--mono);font-size:.6875rem;letter-spacing:.06em}
.eligibility-pill.ok{background:rgba(255,255,255,.15);color:var(--color-accent-soft)}
.eligibility-pill.no{background:rgba(255,255,255,.15);color:#ffd1c1}
.how-section{margin-top:2.5rem}
.how{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);overflow:hidden}
.how summary{list-style:none;padding:1.25rem 1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--display);font-weight:600;font-size:1.125rem;color:var(--color-ink)}
.how summary::-webkit-details-marker{display:none}
.how summary .icon{width:28px;height:28px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 200ms ease;font-family:var(--mono)}
.how[open] summary .icon{background:var(--color-primary);color:#fff;transform:rotate(45deg)}
.how .body{padding:0 1.75rem 1.75rem;color:var(--color-ink-muted);font-size:.9375rem;line-height:1.65;display:flex;flex-direction:column;gap:.875rem}
.how .body .formula{font-family:var(--mono);font-size:.8125rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem 1rem;color:var(--color-ink);line-height:1.5}
.how .body strong{color:var(--color-ink)}
.disclaimer{margin-top:2rem;display:flex;gap:1rem;background:var(--color-accent-soft);border:1px solid rgba(224,122,31,.3);border-radius:var(--r-card);padding:1.125rem 1.25rem;align-items:flex-start}
.disclaimer .badge{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--display);font-weight:600;font-size:1rem}
.disclaimer p{font-size:.875rem;color:#7a4a18;line-height:1.55}
.disclaimer p strong{color:var(--color-ink);font-weight:600}
.disclaimer p a{color:var(--color-primary-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* === components: tools/gst-calculator.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:1.5rem}h3{font-size:1.125rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.btn-ghost{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}.btn-ghost:hover{background:var(--color-ink);color:var(--color-bg)}
.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}
.ay-pill{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.75rem;background:var(--color-primary-soft);color:var(--color-primary-deep);padding:.35rem .75rem;border-radius:var(--r-pill);letter-spacing:.06em;margin-top:.75rem}
.calc-section{padding:1rem 0 5rem}
.calc-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:start}
@media(max-width:980px){.calc-grid{grid-template-columns:1fr}}
.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 2rem 2rem}
.form-card h2{margin-bottom:1.5rem;font-size:1.5rem}
.toggle-row{display:flex;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--r-base);padding:.25rem;gap:.25rem;margin-bottom:1.25rem}
.toggle-row button{flex:1;background:transparent;border:0;padding:.625rem .5rem;font-family:var(--body);font-weight:600;font-size:.875rem;color:var(--color-ink-muted);border-radius:6px;cursor:pointer;transition:all 160ms ease}
.toggle-row button[aria-pressed=true]{background:var(--color-primary);color:#fff}
.field-group{display:flex;flex-direction:column;gap:1.125rem}
.field{display:flex;flex-direction:column;gap:.375rem}
.field label{font-weight:500;font-size:.8125rem;color:var(--color-ink);letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.field label .hint{font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);font-weight:400;letter-spacing:.04em}
.field input,.field select{height:44px;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-bg);padding:0 .875rem;font-family:var(--mono);font-size:.9375rem;color:var(--color-ink);transition:border-color 160ms ease,background-color 160ms ease}
.field input:focus,.field select:focus{outline:0;border-color:var(--color-primary);background:#fff}
.field-section-title{font-family:var(--mono);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent);font-weight:600;padding-top:.5rem;margin-top:.25rem;border-top:1px solid var(--color-border)}
.field-section-title:first-child{border-top:0;padding-top:0;margin-top:0}
.result-wrap{position:sticky;top:104px}
.result-card{background:var(--color-primary-deep);color:var(--color-bg);border-radius:var(--r-card);padding:2rem 1.75rem 1.75rem;position:relative;overflow:hidden}
.result-card::before{content:"";position:absolute;top:-30%;right:-20%;width:380px;height:380px;background:radial-gradient(closest-side,rgba(224,122,31,.4),rgba(224,122,31,0) 70%);pointer-events:none}
.result-card .inner{position:relative;z-index:1}
.result-card .label{font-family:var(--body);font-weight:500;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent-soft);display:block;margin-bottom:.625rem}
.result-card .big{font-family:var(--display);font-weight:600;font-size:clamp(2.4rem,5.5vw,3.6rem);line-height:1;letter-spacing:-.03em;color:var(--color-bg);font-feature-settings:"tnum" 1}
.result-card .sub-line{font-family:var(--mono);font-size:.8125rem;color:rgba(250,246,238,.7);margin-top:.5rem;letter-spacing:.04em}
.result-table{margin-top:1.75rem;display:flex;flex-direction:column;gap:.5rem}
.result-row{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;padding:.625rem 0;border-bottom:1px solid rgba(250,246,238,.12)}
.result-row:last-child{border-bottom:0}
.result-row .key{color:rgba(250,246,238,.78);font-weight:500}
.result-row .val{font-family:var(--mono);font-weight:500;color:var(--color-bg)}
.result-row.is-emphatic .key{color:var(--color-accent-soft);font-weight:600}
.result-row.is-emphatic .val{color:var(--color-accent-soft);font-weight:600;font-size:.9375rem}
.how-section{margin-top:2.5rem}
.how{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);overflow:hidden}
.how summary{list-style:none;padding:1.25rem 1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--display);font-weight:600;font-size:1.125rem;color:var(--color-ink)}
.how summary::-webkit-details-marker{display:none}
.how summary .icon{width:28px;height:28px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 200ms ease;font-family:var(--mono)}
.how[open] summary .icon{background:var(--color-primary);color:#fff;transform:rotate(45deg)}
.how .body{padding:0 1.75rem 1.75rem;color:var(--color-ink-muted);font-size:.9375rem;line-height:1.65;display:flex;flex-direction:column;gap:.875rem}
.how .body .formula{font-family:var(--mono);font-size:.8125rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem 1rem;color:var(--color-ink);line-height:1.5}
.how .body strong{color:var(--color-ink)}
.disclaimer{margin-top:2rem;display:flex;gap:1rem;background:var(--color-accent-soft);border:1px solid rgba(224,122,31,.3);border-radius:var(--r-card);padding:1.125rem 1.25rem;align-items:flex-start}
.disclaimer .badge{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--display);font-weight:600;font-size:1rem}
.disclaimer p{font-size:.875rem;color:#7a4a18;line-height:1.55}
.disclaimer p strong{color:var(--color-ink);font-weight:600}
.disclaimer p a{color:var(--color-primary-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* === components: tools/hra-calculator.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:1.5rem}h3{font-size:1.125rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}
.calc-section{padding:1rem 0 5rem}
.calc-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:start}
@media(max-width:980px){.calc-grid{grid-template-columns:1fr}}
.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 2rem 2rem}
.form-card h2{margin-bottom:1.5rem;font-size:1.5rem}
.field-group{display:flex;flex-direction:column;gap:1.125rem}
.field{display:flex;flex-direction:column;gap:.375rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field label{font-weight:500;font-size:.8125rem;color:var(--color-ink);letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.field label .hint{font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);font-weight:400;letter-spacing:.04em}
.field input,.field select{height:44px;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-bg);padding:0 .875rem;font-family:var(--mono);font-size:.9375rem;color:var(--color-ink);transition:border-color 160ms ease,background-color 160ms ease}
.field input:focus,.field select:focus{outline:0;border-color:var(--color-primary);background:#fff}
.toggle-row{display:flex;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--r-base);padding:.25rem;gap:.25rem}
.toggle-row button{flex:1;background:transparent;border:0;padding:.625rem .5rem;font-family:var(--body);font-weight:600;font-size:.875rem;color:var(--color-ink-muted);border-radius:6px;cursor:pointer;transition:all 160ms ease}
.toggle-row button[aria-pressed=true]{background:var(--color-primary);color:#fff}
.result-wrap{position:sticky;top:104px}
.result-card{background:var(--color-primary-deep);color:var(--color-bg);border-radius:var(--r-card);padding:2rem 1.75rem 1.75rem;position:relative;overflow:hidden}
.result-card::before{content:"";position:absolute;top:-30%;right:-20%;width:380px;height:380px;background:radial-gradient(closest-side,rgba(224,122,31,.4),rgba(224,122,31,0) 70%);pointer-events:none}
.result-card .inner{position:relative;z-index:1}
.result-card .label{font-family:var(--body);font-weight:500;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent-soft);display:block;margin-bottom:.625rem}
.result-card .big{font-family:var(--display);font-weight:600;font-size:clamp(2.4rem,5.5vw,3.6rem);line-height:1;letter-spacing:-.03em;color:var(--color-bg);font-feature-settings:"tnum" 1}
.result-card .sub-line{font-family:var(--mono);font-size:.8125rem;color:rgba(250,246,238,.7);margin-top:.5rem;letter-spacing:.04em}
.result-table{margin-top:1.75rem;display:flex;flex-direction:column;gap:.5rem}
.result-row{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;padding:.625rem 0;border-bottom:1px solid rgba(250,246,238,.12)}
.result-row:last-child{border-bottom:0}
.result-row .key{color:rgba(250,246,238,.78);font-weight:500}
.result-row .val{font-family:var(--mono);font-weight:500;color:var(--color-bg)}
.result-row.is-emphatic{background:rgba(224,122,31,.15);margin:0 -.5rem;padding:.625rem .5rem;border-radius:6px;border-bottom:0}
.result-row.is-emphatic .key{color:var(--color-accent-soft);font-weight:600}
.result-row.is-emphatic .val{color:var(--color-accent-soft);font-weight:600;font-size:.9375rem}
.result-row.is-tax{padding-top:.875rem;margin-top:.5rem;border-top:1px solid rgba(250,246,238,.25);border-bottom:0}
.result-row.is-tax .key{color:var(--color-bg);font-weight:600;font-size:.9375rem}
.result-row.is-tax .val{color:#fff;font-weight:600;font-size:1.0625rem}
.how-section{margin-top:2.5rem}
.how{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);overflow:hidden}
.how summary{list-style:none;padding:1.25rem 1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--display);font-weight:600;font-size:1.125rem;color:var(--color-ink)}
.how summary::-webkit-details-marker{display:none}
.how summary .icon{width:28px;height:28px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 200ms ease;font-family:var(--mono)}
.how[open] summary .icon{background:var(--color-primary);color:#fff;transform:rotate(45deg)}
.how .body{padding:0 1.75rem 1.75rem;color:var(--color-ink-muted);font-size:.9375rem;line-height:1.65;display:flex;flex-direction:column;gap:.875rem}
.how .body .formula{font-family:var(--mono);font-size:.8125rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem 1rem;color:var(--color-ink);line-height:1.5}
.how .body strong{color:var(--color-ink)}
.disclaimer{margin-top:2rem;display:flex;gap:1rem;background:var(--color-accent-soft);border:1px solid rgba(224,122,31,.3);border-radius:var(--r-card);padding:1.125rem 1.25rem;align-items:flex-start}
.disclaimer .badge{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--display);font-weight:600;font-size:1rem}
.disclaimer p{font-size:.875rem;color:#7a4a18;line-height:1.55}
.disclaimer p strong{color:var(--color-ink);font-weight:600}
.disclaimer p a{color:var(--color-primary-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* === components: tools/income-tax.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:1.5rem}h3{font-size:1.125rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.btn-ghost{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}.btn-ghost:hover{background:var(--color-ink);color:var(--color-bg)}

.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}
.ay-pill{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.75rem;background:var(--color-primary-soft);color:var(--color-primary-deep);padding:.35rem .75rem;border-radius:var(--r-pill);letter-spacing:.06em;margin-top:.75rem}

/* Calculator layout */
.calc-section{padding:1rem 0 5rem}
.calc-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:start}
@media(max-width:980px){.calc-grid{grid-template-columns:1fr}}

/* INPUT FORM */
.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 2rem 2rem}
.form-card h2{margin-bottom:1.5rem;font-size:1.5rem}
.regime-toggle{display:flex;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--r-base);padding:.25rem;gap:.25rem;margin-bottom:1.75rem}
.regime-toggle button{flex:1;background:transparent;border:0;padding:.625rem .5rem;font-family:var(--body);font-weight:600;font-size:.875rem;color:var(--color-ink-muted);border-radius:6px;cursor:pointer;transition:all 160ms ease}
.regime-toggle button[aria-pressed=true]{background:var(--color-primary);color:#fff}
.field-group{display:flex;flex-direction:column;gap:1.125rem}
.field{display:flex;flex-direction:column;gap:.375rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field label{font-weight:500;font-size:.8125rem;color:var(--color-ink);letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.field label .hint{font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);font-weight:400;letter-spacing:.04em}
.field input,.field select{height:44px;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-bg);padding:0 .875rem;font-family:var(--mono);font-size:.9375rem;color:var(--color-ink);transition:border-color 160ms ease,background-color 160ms ease}
.field input:focus,.field select:focus{outline:0;border-color:var(--color-primary);background:#fff}
.field input[type=number]{font-feature-settings:"tnum" 1}
.field-section-title{font-family:var(--mono);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent);font-weight:600;padding-top:.5rem;margin-top:.25rem;border-top:1px solid var(--color-border)}
.field-section-title:first-child{border-top:0;padding-top:0;margin-top:0}
.deductions-grid{display:grid;grid-template-columns:1fr 1fr;gap:.875rem}
@media(max-width:560px){.deductions-grid,.field-row{grid-template-columns:1fr}}
.deduction-disabled{opacity:.4;pointer-events:none}

/* RESULT CARD */
.result-wrap{position:sticky;top:104px}
.result-card{background:var(--color-primary-deep);color:var(--color-bg);border-radius:var(--r-card);padding:2rem 1.75rem 1.75rem;position:relative;overflow:hidden}
.result-card::before{content:"";position:absolute;top:-30%;right:-20%;width:380px;height:380px;background:radial-gradient(closest-side,rgba(224,122,31,.4),rgba(224,122,31,0) 70%);pointer-events:none}
.result-card .inner{position:relative;z-index:1}
.result-card .label{font-family:var(--body);font-weight:500;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent-soft);display:block;margin-bottom:.625rem}
.result-card .big{font-family:var(--display);font-weight:600;font-size:clamp(2.4rem,5.5vw,3.6rem);line-height:1;letter-spacing:-.03em;color:var(--color-bg);font-feature-settings:"tnum" 1}
.result-card .sub-line{font-family:var(--mono);font-size:.8125rem;color:rgba(250,246,238,.7);margin-top:.5rem;letter-spacing:.04em}
.result-table{margin-top:1.75rem;display:flex;flex-direction:column;gap:.5rem}
.result-row{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;padding:.625rem 0;border-bottom:1px solid rgba(250,246,238,.12)}
.result-row:last-child{border-bottom:0}
.result-row .key{color:rgba(250,246,238,.78);font-weight:500}
.result-row .val{font-family:var(--mono);font-weight:500;color:var(--color-bg)}
.result-row.is-emphatic .key{color:var(--color-accent-soft);font-weight:600}
.result-row.is-emphatic .val{color:var(--color-accent-soft);font-weight:600;font-size:.9375rem}
.result-row.is-total{padding-top:.875rem;margin-top:.5rem;border-top:1px solid rgba(250,246,238,.25);border-bottom:0}
.result-row.is-total .key{color:var(--color-bg);font-weight:600;font-size:.9375rem}
.result-row.is-total .val{color:#fff;font-weight:600;font-size:1.0625rem}

.regime-badge{display:inline-flex;align-items:center;gap:.4rem;background:rgba(250,246,238,.12);color:var(--color-accent-soft);padding:.25rem .625rem;border-radius:var(--r-pill);font-family:var(--mono);font-size:.6875rem;letter-spacing:.08em;margin-top:1rem}

/* Slabs breakdown */
.slabs{margin-top:1.5rem;background:rgba(0,0,0,.18);border-radius:.75rem;padding:1rem 1.125rem}
.slabs h4{font-family:var(--body);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent-soft);font-weight:600;margin-bottom:.625rem}
.slab-row{display:grid;grid-template-columns:1fr auto auto;gap:.75rem;font-family:var(--mono);font-size:.75rem;color:rgba(250,246,238,.72);padding:.3rem 0}
.slab-row .rate{color:var(--color-accent-soft)}
.slab-row .tax{color:var(--color-bg);font-weight:500}

/* HOW IT'S CALCULATED */
.how-section{margin-top:2.5rem}
.how{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);overflow:hidden}
.how summary{list-style:none;padding:1.25rem 1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--display);font-weight:600;font-size:1.125rem;color:var(--color-ink)}
.how summary::-webkit-details-marker{display:none}
.how summary .icon{width:28px;height:28px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 200ms ease;font-family:var(--mono)}
.how[open] summary .icon{background:var(--color-primary);color:#fff;transform:rotate(45deg)}
.how .body{padding:0 1.75rem 1.75rem;color:var(--color-ink-muted);font-size:.9375rem;line-height:1.65;display:flex;flex-direction:column;gap:.875rem}
.how .body .formula{font-family:var(--mono);font-size:.8125rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem 1rem;color:var(--color-ink);line-height:1.5}
.how .body strong{color:var(--color-ink)}

/* DISCLAIMER */
.disclaimer{margin-top:2rem;display:flex;gap:1rem;background:var(--color-accent-soft);border:1px solid rgba(224,122,31,.3);border-radius:var(--r-card);padding:1.125rem 1.25rem;align-items:flex-start}
.disclaimer .badge{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--display);font-weight:600;font-size:1rem}
.disclaimer p{font-size:.875rem;color:#7a4a18;line-height:1.55}
.disclaimer p strong{color:var(--color-ink);font-weight:600}
.disclaimer p a{color:var(--color-primary-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* === components: tools/savings-schemes.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:1.5rem}h3{font-size:1.125rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}
.scheme-tabs{display:flex;gap:.5rem;margin:1rem 0 0;flex-wrap:wrap}
.scheme-tab{padding:.625rem 1rem;border:1.5px solid var(--color-border);border-radius:var(--r-pill);background:var(--color-surface);font-family:var(--body);font-weight:600;font-size:.875rem;color:var(--color-ink-muted);cursor:pointer;transition:all 160ms ease}
.scheme-tab[aria-pressed=true]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
.scheme-tab:hover:not([aria-pressed=true]){border-color:var(--color-primary);color:var(--color-primary)}
.scheme-tab .rate{display:inline-block;margin-left:.4rem;font-family:var(--mono);font-size:.75rem;opacity:.8}
.calc-section{padding:1rem 0 5rem}
.calc-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:2rem;align-items:start}
@media(max-width:980px){.calc-grid{grid-template-columns:1fr}}
.form-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 2rem 2rem}
.form-card h2{margin-bottom:.5rem;font-size:1.5rem}
.scheme-meta{font-size:.875rem;color:var(--color-ink-muted);margin-bottom:1.5rem;line-height:1.55}
.field-group{display:flex;flex-direction:column;gap:1.125rem}
.field{display:flex;flex-direction:column;gap:.375rem}
.field label{font-weight:500;font-size:.8125rem;color:var(--color-ink);letter-spacing:.02em;display:flex;justify-content:space-between;align-items:baseline}
.field label .hint{font-family:var(--mono);font-size:.6875rem;color:var(--color-ink-muted);font-weight:400;letter-spacing:.04em}
.field input,.field select{height:44px;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-bg);padding:0 .875rem;font-family:var(--mono);font-size:.9375rem;color:var(--color-ink);transition:border-color 160ms ease,background-color 160ms ease}
.field input:focus,.field select:focus{outline:0;border-color:var(--color-primary);background:#fff}
.field-info{background:var(--color-primary-soft);border:1px solid rgba(13,92,62,.2);border-radius:var(--r-base);padding:.875rem 1rem;font-size:.8125rem;color:var(--color-primary-deep);line-height:1.5}
.result-wrap{position:sticky;top:104px}
.result-card{background:var(--color-primary-deep);color:var(--color-bg);border-radius:var(--r-card);padding:2rem 1.75rem 1.75rem;position:relative;overflow:hidden}
.result-card::before{content:"";position:absolute;top:-30%;right:-20%;width:380px;height:380px;background:radial-gradient(closest-side,rgba(224,122,31,.4),rgba(224,122,31,0) 70%);pointer-events:none}
.result-card .inner{position:relative;z-index:1}
.result-card .label{font-family:var(--body);font-weight:500;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent-soft);display:block;margin-bottom:.625rem}
.result-card .big{font-family:var(--display);font-weight:600;font-size:clamp(2.4rem,5.5vw,3.6rem);line-height:1;letter-spacing:-.03em;color:var(--color-bg);font-feature-settings:"tnum" 1}
.result-card .sub-line{font-family:var(--mono);font-size:.8125rem;color:rgba(250,246,238,.7);margin-top:.5rem;letter-spacing:.04em}
.result-table{margin-top:1.75rem;display:flex;flex-direction:column;gap:.5rem}
.result-row{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;padding:.625rem 0;border-bottom:1px solid rgba(250,246,238,.12)}
.result-row:last-child{border-bottom:0}
.result-row .key{color:rgba(250,246,238,.78);font-weight:500}
.result-row .val{font-family:var(--mono);font-weight:500;color:var(--color-bg)}
.result-row.is-emphatic .key{color:var(--color-accent-soft);font-weight:600}
.result-row.is-emphatic .val{color:var(--color-accent-soft);font-weight:600;font-size:.9375rem}
.how-section{margin-top:2.5rem}
.how{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);overflow:hidden}
.how summary{list-style:none;padding:1.25rem 1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-family:var(--display);font-weight:600;font-size:1.125rem;color:var(--color-ink)}
.how summary::-webkit-details-marker{display:none}
.how summary .icon{width:28px;height:28px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 200ms ease;font-family:var(--mono)}
.how[open] summary .icon{background:var(--color-primary);color:#fff;transform:rotate(45deg)}
.how .body{padding:0 1.75rem 1.75rem;color:var(--color-ink-muted);font-size:.9375rem;line-height:1.65;display:flex;flex-direction:column;gap:.875rem}
.how .body .formula{font-family:var(--mono);font-size:.8125rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:.5rem;padding:.75rem 1rem;color:var(--color-ink);line-height:1.5}
.how .body strong{color:var(--color-ink)}
.disclaimer{margin-top:2rem;display:flex;gap:1rem;background:var(--color-accent-soft);border:1px solid rgba(224,122,31,.3);border-radius:var(--r-card);padding:1.125rem 1.25rem;align-items:flex-start}
.disclaimer .badge{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--display);font-weight:600;font-size:1rem}
.disclaimer p{font-size:.875rem;color:#7a4a18;line-height:1.55}
.disclaimer p strong{color:var(--color-ink);font-weight:600}
.disclaimer p a{color:var(--color-primary-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* === components: tools/tds-rates.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:1.5rem}h3{font-size:1.125rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}
.ay-pill{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:.75rem;background:var(--color-primary-soft);color:var(--color-primary-deep);padding:.35rem .75rem;border-radius:var(--r-pill);letter-spacing:.06em;margin-top:.75rem}

.lookup-section{padding:1rem 0 5rem}
.controls{display:grid;grid-template-columns:1fr auto auto;gap:1rem;margin-bottom:1.5rem}
@media(max-width:780px){.controls{grid-template-columns:1fr}}
.search-input{height:48px;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-surface);padding:0 1rem;font-family:var(--body);font-size:1rem;color:var(--color-ink);transition:border-color 160ms ease}
.search-input:focus{outline:0;border-color:var(--color-primary)}
.cat-select{height:48px;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-surface);padding:0 .875rem;font-family:var(--body);font-size:.9375rem;color:var(--color-ink);min-width:200px}
.payee-select{height:48px;border:1.5px solid var(--color-border);border-radius:var(--r-base);background:var(--color-surface);padding:0 .875rem;font-family:var(--body);font-size:.9375rem;color:var(--color-ink);min-width:200px}
.count-pill{display:inline-flex;align-items:center;gap:.4rem;background:var(--color-primary-soft);color:var(--color-primary-deep);padding:.35rem .75rem;border-radius:var(--r-pill);font-family:var(--mono);font-size:.75rem;margin-bottom:1rem;letter-spacing:.06em}

.tds-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);overflow:hidden}
.tds-table{width:100%;border-collapse:collapse}
.tds-table thead th{text-align:left;padding:.875rem 1rem;background:var(--color-bg);color:var(--color-ink-muted);font-weight:600;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--color-border)}
.tds-table tbody td{padding:1rem;border-bottom:1px solid var(--color-border);vertical-align:top;font-size:.9375rem}
.tds-table tbody tr:last-child td{border-bottom:0}
.tds-table tbody tr:hover{background:var(--color-bg)}
.tds-table .secn{font-family:var(--mono);font-weight:600;color:var(--color-primary);white-space:nowrap}
.tds-table .secn small{display:block;font-size:.6875rem;color:var(--color-ink-muted);font-weight:400;letter-spacing:.04em;margin-top:.25rem}
.tds-table .nature{font-weight:500;color:var(--color-ink)}
.tds-table .nature small{display:block;color:var(--color-ink-muted);font-weight:400;font-size:.8125rem;margin-top:.25rem;line-height:1.45}
.tds-table .threshold{font-family:var(--mono);font-size:.875rem;color:var(--color-ink)}
.tds-table .rate{font-family:var(--mono);font-weight:600;font-size:1rem;color:var(--color-primary-deep)}
.tds-table .rate small{display:block;font-weight:400;font-size:.6875rem;color:var(--color-ink-muted);margin-top:.25rem}
.empty-state{padding:3rem 1rem;text-align:center;color:var(--color-ink-muted)}
.empty-state h3{font-family:var(--display);font-size:1.25rem;color:var(--color-ink);margin-bottom:.5rem}

.note-card{margin-top:2rem;background:var(--color-primary-soft);border:1px solid rgba(13,92,62,.2);border-radius:var(--r-card);padding:1.25rem 1.5rem;font-size:.875rem;color:var(--color-primary-deep);line-height:1.6}
.note-card strong{color:var(--color-primary-deep)}
.disclaimer{margin-top:2rem;display:flex;gap:1rem;background:var(--color-accent-soft);border:1px solid rgba(224,122,31,.3);border-radius:var(--r-card);padding:1.125rem 1.25rem;align-items:flex-start}
.disclaimer .badge{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--display);font-weight:600;font-size:1rem}
.disclaimer p{font-size:.875rem;color:#7a4a18;line-height:1.55}
.disclaimer p strong{color:var(--color-ink);font-weight:600}
.disclaimer p a{color:var(--color-primary-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* === components: tools.html === */
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{background:var(--color-bg);color:var(--color-ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;letter-spacing:-.018em;line-height:1.05;margin:0;color:var(--color-ink)}
h1{font-size:clamp(2.4rem,4.6vw,3.75rem)}h2{font-size:clamp(1.875rem,3vw,2.5rem)}h3{font-size:1.25rem}
p{margin:0}a{color:inherit;text-decoration:none}
.eyebrow{font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-muted)}
.mono{font-family:var(--mono)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}
.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-deep)}
.btn-ghost{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}.btn-ghost:hover{background:var(--color-ink);color:var(--color-bg)}
.btn-cream{background:transparent;color:var(--color-bg);border-color:var(--color-bg)}.btn-cream:hover{background:var(--color-bg);color:var(--color-primary-deep)}

.breadcrumb{padding:1rem 0 0;font-family:var(--mono);font-size:.75rem;color:var(--color-ink-muted);letter-spacing:.06em}
.breadcrumb a{color:var(--color-ink-muted)}.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb .sep{margin:0 .5rem;opacity:.6}.breadcrumb .here{color:var(--color-ink)}

.section{padding:3rem 0 5rem}
.tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media(max-width:980px){.tools-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.tools-grid{grid-template-columns:1fr}}

.tool-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-card);padding:1.75rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:1rem;text-decoration:none;color:inherit;transition:all 220ms ease;min-height:240px}
.tool-card::before{content:"";position:absolute;top:0;left:1.5rem;right:1.5rem;height:3px;border-radius:0 0 3px 3px;transform:scaleX(0);transform-origin:left center;transition:transform 240ms ease;background:var(--color-accent)}
.tool-card:hover{transform:translateY(-4px);box-shadow:0 22px 44px -22px rgba(13,30,20,.18);border-color:var(--color-primary-soft)}
.tool-card:hover::before{transform:scaleX(1)}
.tool-card .num{position:absolute;top:1.25rem;right:1.5rem;font-family:var(--mono);font-size:.6875rem;letter-spacing:.14em;color:var(--color-ink-muted)}
.tool-card .icon-wrap{width:52px;height:52px;border-radius:13px;background:var(--color-primary-soft);color:var(--color-primary-deep);display:inline-flex;align-items:center;justify-content:center;transition:all 220ms ease}
.tool-card:hover .icon-wrap{background:var(--color-primary);color:#fff}
.tool-card .icon-wrap svg{width:26px;height:26px}
.tool-card h3{font-size:1.1875rem;line-height:1.2}
.tool-card .desc{color:var(--color-ink-muted);font-size:.9375rem;line-height:1.55;flex:1}
.tool-card .open{font-weight:600;font-size:.875rem;color:var(--color-primary);display:inline-flex;align-items:center;gap:.4rem;padding-top:.25rem;border-top:1px solid var(--color-border);margin-top:.25rem;padding-top:1rem}
.tool-card .open svg{width:14px;height:14px;transition:transform 200ms ease}
.tool-card:hover .open svg{transform:translateX(3px)}

/* HELP BAND */
.help-band{margin-top:5rem;background:var(--color-primary-soft);border-radius:var(--r-card);padding:2.25rem 2.5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;border:1px solid rgba(13,92,62,.14)}
.help-band .lhs{display:flex;align-items:center;gap:1.25rem;flex:1;min-width:280px}
.help-band .badge{width:56px;height:56px;border-radius:14px;background:var(--color-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.help-band .badge svg{width:28px;height:28px}
.help-band .copy h3{font-family:var(--display);font-weight:600;font-size:1.5rem;color:var(--color-ink);margin-bottom:.25rem}
.help-band .copy p{color:var(--color-ink-muted);font-size:.9375rem;line-height:1.55;max-width:50ch}
.help-band .ctas{display:flex;gap:.5rem;flex-wrap:wrap}
.footer-grid{display:grid;grid-template-columns:1.4fr 2fr 1.2fr;gap:4rem;padding-bottom:3rem;border-bottom:1px solid rgba(250,246,238,.12)}
@media(max-width:980px){.footer-grid{grid-template-columns:1fr;gap:3rem}}
.footer-mid{display:flex;flex-direction:column;gap:.5rem;font-size:.875rem;color:rgba(250,246,238,.75)}
.footer-mid a{display:flex;align-items:center;gap:.5rem}.footer-mid svg{width:14px;height:14px}
.footer-bottom{padding-top:1.75rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.8125rem;color:rgba(250,246,238,.55)}

/* === components: virtual_cfo.html === */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--color-bg);
  color: var(--color-ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
h1, h2, h3, h4 {
  font-family: var(--display);
  font-weight: 600;
  letter-spacing: -0.018em;
  line-height: 1.05;
  margin: 0;
  color: var(--color-ink);
}
h1 { font-size: clamp(2.4rem, 4.6vw, 3.75rem); }
h2 { font-size: clamp(1.875rem, 3vw, 2.5rem); }
h3 { font-size: 1.375rem; }
h4 { font-size: 1.0625rem; line-height: 1.2; }
p { margin: 0; }
a { color: inherit; text-decoration: none; }
.eyebrow { font-family: var(--body); font-weight: 500; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-ink-muted); }
.mono { font-family: var(--mono); font-feature-settings: "tnum" 1; }
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; border-radius: 4px; }
.btn-primary { background: var(--color-primary); color: #fff; }
.btn-primary:hover { background: var(--color-primary-deep); }
.btn-ghost { background: transparent; color: var(--color-ink); border-color: var(--color-ink); }
.btn-ghost:hover { background: var(--color-ink); color: var(--color-bg); }
.btn-cream { background: transparent; color: var(--color-bg); border-color: var(--color-bg); }
.btn-cream:hover { background: var(--color-bg); color: var(--color-primary-deep); }
.btn-accent { background: var(--color-accent); color: #fff; }
.btn-accent:hover { background: #c4691a; }

/* Breadcrumb */
.breadcrumb { padding: 1rem 0 0; font-family: var(--mono); font-size: 0.75rem; color: var(--color-ink-muted); letter-spacing: 0.06em; }
.breadcrumb a { color: var(--color-ink-muted); }
.breadcrumb a:hover { color: var(--color-primary); }
.breadcrumb .sep { margin: 0 0.5rem; opacity: 0.6; }
.breadcrumb .here { color: var(--color-ink); }

/* Section base */
.section { padding: 5rem 0; }
.section-soft { background: var(--color-primary-soft); }
.section-deep { background: var(--color-primary); color: var(--color-bg); }
.section-cream { background: #fff; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.section-head { margin-bottom: 3rem; max-width: 50rem; }
.section-head .eyebrow { display: block; margin-bottom: 1rem; }
.section-head h2 em { font-style: italic; font-weight: 500; color: var(--color-primary); }
.section-deep .section-head h2 { color: var(--color-bg); }
.section-deep .section-head h2 em { color: var(--color-accent-soft); }
.section-head p { margin-top: 1rem; color: var(--color-ink-muted); font-size: 1.0625rem; max-width: 56ch; }
.section-deep .section-head .eyebrow { color: var(--color-accent-soft); }
.section-deep .section-head p { color: rgba(250,246,238,0.78); }
@media (max-width: 760px) { .section { padding: 3.5rem 0; } }

/* WHO THIS IS FOR */
.audience-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
@media (max-width: 980px) { .audience-grid { grid-template-columns: 1fr; } }
.audience { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--r-card); padding: 1.75rem 1.5rem; display: flex; flex-direction: column; gap: 0.875rem; transition: transform 200ms ease, box-shadow 200ms ease; }
.audience:hover { transform: translateY(-3px); box-shadow: 0 22px 40px -22px rgba(13,30,20,0.16); }
.audience .icon-wrap { width: 48px; height: 48px; border-radius: 12px; background: var(--color-primary-soft); color: var(--color-primary-deep); display: inline-flex; align-items: center; justify-content: center; }
.audience .icon-wrap svg { width: 24px; height: 24px; }
.audience h3 { font-size: 1.25rem; }
.audience p { color: var(--color-ink-muted); font-size: 0.9375rem; line-height: 1.55; }

/* CAPABILITIES (8-grid) */
.cap-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem 1.25rem; }
@media (max-width: 760px) { .cap-grid { grid-template-columns: 1fr; } }
.cap { display: flex; gap: 1rem; padding: 1.25rem; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--r-card); align-items: flex-start; }
.cap .num { font-family: var(--mono); font-size: 0.6875rem; letter-spacing: 0.18em; color: var(--color-accent); text-transform: uppercase; min-width: 2.25rem; padding-top: 0.25rem; }
.cap .body h4 { font-family: var(--display); font-weight: 600; font-size: 1.0625rem; color: var(--color-ink); margin-bottom: 0.25rem; }
.cap .body p { color: var(--color-ink-muted); font-size: 0.9375rem; line-height: 1.5; }

/* ENGAGEMENT MODELS — comparison table */
.models-table {
  display: grid;
  grid-template-columns: 200px repeat(3, 1fr);
  border: 1px solid var(--color-border);
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--color-surface);
}
.models-table .cell { padding: 1.25rem 1.25rem; border-bottom: 1px solid var(--color-border); border-right: 1px solid var(--color-border); font-size: 0.9375rem; color: var(--color-ink-muted); line-height: 1.5; }
.models-table .cell:nth-child(4n) { border-right: 0; }
.models-table .row-label { font-family: var(--mono); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-ink); background: var(--color-bg); font-weight: 500; }
.models-table .col-head { background: var(--color-primary-deep); color: var(--color-bg); border-bottom: 0; padding: 1.5rem 1.25rem 1.25rem; position: relative; }
.models-table .col-head .name { font-family: var(--display); font-size: 1.375rem; font-weight: 600; color: var(--color-bg); }
.models-table .col-head .sub { font-size: 0.8125rem; color: rgba(250,246,238,0.7); margin-top: 0.25rem; }
.models-table .col-head.popular {
  background: var(--color-primary);
  outline: 2px solid var(--color-accent);
  outline-offset: -2px;
}
.models-table .col-head .pop-badge {
  position: absolute; top: 0.875rem; right: 0.875rem;
  background: var(--color-accent); color: #fff;
  font-family: var(--mono); font-size: 0.625rem; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 0.2rem 0.5rem; border-radius: var(--r-pill);
}
.models-table .col-head:first-child { background: var(--color-bg); color: var(--color-ink); }
.models-table .col-head:first-child .name { color: var(--color-ink); font-family: var(--body); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.models-table .row:last-child .cell { border-bottom: 0; }
@media (max-width: 980px) {
  .models-table { grid-template-columns: 1fr; border-radius: var(--r-card); }
  .models-table .cell, .models-table .col-head { border-right: 0 !important; }
  .models-table .col-head:first-child { display: none; }
  .models-table .row-label { background: var(--color-primary); color: var(--color-bg); }
  /* row-label text is already visible; no ::before pseudo-element needed */
}

/* WHY FRACTIONAL — comparison rows */
.compare-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 0; border: 1px solid var(--color-border); border-radius: var(--r-card); overflow: hidden; background: var(--color-surface); }
.compare-grid > div { padding: 1.125rem 1.25rem; border-bottom: 1px solid var(--color-border); border-right: 1px solid var(--color-border); font-size: 0.9375rem; color: var(--color-ink); line-height: 1.5; }
.compare-grid > div:nth-child(3n) { border-right: 0; }
.compare-grid .head { background: var(--color-primary-deep); color: var(--color-bg); font-family: var(--display); font-weight: 600; font-size: 1.125rem; }
.compare-grid .head .col-tag { font-family: var(--mono); font-size: 0.6875rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-accent-soft); display: block; font-weight: 500; margin-bottom: 0.25rem; }
.compare-grid .head:first-child { background: var(--color-bg); color: var(--color-ink); font-family: var(--mono); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500; }
.compare-grid .row-key { font-family: var(--mono); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-ink); background: var(--color-bg); font-weight: 500; }
.compare-grid .good { background: rgba(13,92,62,0.06); color: var(--color-primary-deep); }
.compare-grid .meh { background: rgba(181,131,42,0.08); color: var(--color-amber); }
.compare-grid > div:last-child, .compare-grid .last-row { border-bottom: 0; }
@media (max-width: 760px) { .compare-grid { grid-template-columns: 1fr; } .compare-grid > div { border-right: 0 !important; } }

/* PROCESS — 4 step horizontal */
.process { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; position: relative; }
@media (max-width: 980px) { .process { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .process { grid-template-columns: 1fr; } }
.process-step { background: rgba(255,255,255,0.06); border: 1px solid rgba(250,246,238,0.18); border-radius: var(--r-card); padding: 1.5rem 1.25rem; position: relative; }
.process-step .step-num { font-family: var(--mono); font-size: 0.6875rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-accent-soft); display: block; margin-bottom: 0.75rem; }
.process-step h4 { color: var(--color-bg); font-size: 1.125rem; margin-bottom: 0.5rem; }
.process-step p { color: rgba(250,246,238,0.78); font-size: 0.875rem; line-height: 1.5; }
.process-step::after {
  content: "→";
  position: absolute; top: 50%; right: -0.875rem;
  transform: translateY(-50%);
  color: var(--color-accent); font-size: 1.5rem; line-height: 1;
  font-family: var(--mono);
}
.process-step:last-child::after { display: none; }
@media (max-width: 980px) { .process-step::after { display: none; } }

/* SAMPLE DELIVERABLES */
.deliverables { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
@media (max-width: 980px) { .deliverables { grid-template-columns: 1fr; } }
.deliv-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--r-card); overflow: hidden; transition: transform 220ms ease, box-shadow 220ms ease; }
.deliv-card:hover { transform: translateY(-3px); box-shadow: 0 22px 44px -22px rgba(13,30,20,0.18); }
.deliv-card .preview { aspect-ratio: 4/3; background: var(--color-primary-soft); display: grid; place-items: center; position: relative; overflow: hidden; }
.deliv-card .preview svg { width: 78%; height: auto; opacity: 0.6; }
.deliv-card .body { padding: 1.25rem 1.25rem 1.5rem; }
.deliv-card .label { font-family: var(--mono); font-size: 0.6875rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-accent); }
.deliv-card h4 { font-family: var(--display); font-weight: 600; font-size: 1.1875rem; margin-top: 0.375rem; color: var(--color-ink); }
.deliv-card p { color: var(--color-ink-muted); font-size: 0.875rem; margin-top: 0.5rem; line-height: 1.5; }
.deliv-foot { margin-top: 1.5rem; font-family: var(--mono); font-size: 0.75rem; color: var(--color-ink-muted); text-align: center; letter-spacing: 0.04em; }

/* LEAD PARTNER */
.lead-partner { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--r-card); display: grid; grid-template-columns: 320px 1fr; gap: 0; overflow: hidden; }
@media (max-width: 760px) { .lead-partner { grid-template-columns: 1fr; } }
.lead-partner .photo { aspect-ratio: 4/5; background: var(--color-primary-soft); }
.lead-partner .photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lead-partner .body { padding: 2rem 2.25rem; display: flex; flex-direction: column; gap: 0.875rem; }
.lead-partner .role { font-family: var(--mono); font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-accent); font-weight: 600; }
.lead-partner h3 { font-size: 1.75rem; }
.lead-partner .quals { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.lead-partner .quals .chip { font-family: var(--mono); font-size: 0.6875rem; background: var(--color-bg); border: 1px solid var(--color-border); padding: 0.25rem 0.625rem; border-radius: var(--r-pill); letter-spacing: 0.04em; color: var(--color-ink); }
.lead-partner .bio { color: var(--color-ink-muted); font-size: 0.9375rem; line-height: 1.6; }
.lead-partner .contact { margin-top: 0.5rem; padding-top: 1rem; border-top: 1px solid var(--color-border); display: flex; flex-direction: column; gap: 0.5rem; }
.lead-partner .contact a { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: var(--color-ink); font-weight: 500; }
.lead-partner .contact a:hover { color: var(--color-primary); }
.lead-partner .contact svg { width: 14px; height: 14px; color: var(--color-primary); }

/* FAQ accordion */
.faq-list { display: flex; flex-direction: column; gap: 0.75rem; }
.faq-item { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--r-card); overflow: hidden; transition: border-color 160ms ease; }
.faq-item[open] { border-color: var(--color-primary); }
.faq-item summary { list-style: none; padding: 1.125rem 1.5rem; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-family: var(--display); font-weight: 600; font-size: 1.125rem; color: var(--color-ink); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item .icon { width: 28px; height: 28px; border-radius: 50%; background: var(--color-primary-soft); color: var(--color-primary); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background-color 160ms ease, transform 200ms ease; font-family: var(--mono); font-size: 1rem; }
.faq-item[open] .icon { background: var(--color-primary); color: #fff; transform: rotate(45deg); }
.faq-item .answer { padding: 0 1.5rem 1.25rem; color: var(--color-ink-muted); font-size: 0.9375rem; line-height: 1.6; }

/* CLOSING CTA */
.closing-cta {
  position: relative;
  background: var(--color-primary);
  color: var(--color-bg);
  padding: 4.5rem 0;
  overflow: hidden;
}
.closing-cta::before { content: ""; position: absolute; top: -30%; right: -10%; width: 60%; height: 160%; background: radial-gradient(closest-side, rgba(224,122,31,0.55), rgba(224,122,31,0) 70%); pointer-events: none; }
.closing-cta .wrap { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 3rem; flex-wrap: wrap; }
.closing-cta .lhs { max-width: 40rem; }
.closing-cta .eyebrow { color: var(--color-accent-soft); margin-bottom: 0.75rem; display: block; }
.closing-cta h2 { color: var(--color-bg); margin-bottom: 0.5rem; }
.closing-cta .sub { color: rgba(250, 246, 238, 0.78); font-size: 1.0625rem; max-width: 40rem; }
.closing-cta .ctas { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 2fr 1.2fr; gap: 4rem; padding-bottom: 3rem; border-bottom: 1px solid rgba(250, 246, 238, 0.12); }
@media (max-width: 980px) { .footer-grid { grid-template-columns: 1fr; gap: 3rem; } }

.footer-bottom { padding-top: 1.75rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; font-size: 0.8125rem; color: rgba(250, 246, 238, 0.55); }

/* ============================================================
   Article body typography inside section bands
   Adds breathing room to h3 / h4 / p / ul stacks that live
   inside .section, .section-soft, .section-cream and the
   default body. Avoids the congested look on text-heavy pages.
   ============================================================ */
.section > .wrap > h3,
.section > .wrap > h4 {
  margin-top: 2.5rem;
  margin-bottom: 0.875rem;
  font-family: var(--display);
  font-weight: 600;
  line-height: 1.3;
}
.section > .wrap > h3 { font-size: clamp(1.25rem, 1.6vw, 1.5rem); }
.section > .wrap > h4 { font-size: clamp(1.0625rem, 1.4vw, 1.1875rem); }
.section > .wrap > .section-head + h3,
.section > .wrap > .section-head + h4 { margin-top: 0; }

.section > .wrap > p {
  margin-top: 0;
  margin-bottom: 1rem;
  line-height: 1.7;
  max-width: var(--measure);
}
.section > .wrap > ul,
.section > .wrap > ol {
  margin-top: 0.5rem;
  margin-bottom: 1.5rem;
  padding-left: 1.25rem;
}
.section > .wrap > ul > li,
.section > .wrap > ol > li {
  margin-bottom: 0.625rem;
  line-height: 1.65;
  max-width: var(--measure);
}

/* Bullet list used inline within prose; gives visible dots and
   roomy line spacing so multi-line items remain readable. */
.prose-list { list-style: disc; padding-left: 1.5rem; margin: 0.75rem 0 1.5rem; }
.prose-list > li { margin-bottom: 0.75rem; line-height: 1.65; max-width: var(--measure); }

/* Hero CTAs row — push it below the lead paragraph so the
   buttons aren't kissing the headline copy. */
.page-banner .ctas {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 2.25rem;
}
@media (max-width: 600px) {
  .page-banner .ctas { margin-top: 1.5rem; }
  .page-banner .ctas .btn { width: 100%; justify-content: center; }
}

/* Section-head sub-paragraph — small breathing space below the
   h2 so the description doesn't crash into the headline. */
.section-head > p { margin-top: 0.75rem; }

/* Force eyebrow + h2 to stack vertically across every section,
   overriding the flex-row layout from an earlier CSS rule so all
   .section-head blocks render consistently regardless of eyebrow
   length. */
.section-head {
  display: block;
}
.section-head > .eyebrow {
  display: block;
  margin-bottom: 1rem;
}
.section-head > h2 {
  margin: 0 0 0.75rem;
}

/* Breathing room between the breadcrumb and the eyebrow below it,
   so the page-banner has a clear visual gap between the navigation
   trail and the start of the page content. */
.page-banner .breadcrumb { margin-bottom: 2rem; }

/* ============================================================
   Cap-card body typography
   The `.cap .body` content (h4 + paragraphs + bulleted lists +
   blockquotes) needs the same breathing room as bands. Without
   these rules, paragraphs in a cap-card sit flush against
   following labels and lists, making the card feel cramped.
   ============================================================ */
.cap .body { display: block; }
.cap .body h4 {
  margin: 0 0 0.875rem;
  font-family: var(--display);
  font-weight: 600;
  font-size: clamp(1.0625rem, 1.4vw, 1.1875rem);
  line-height: 1.3;
}
.cap .body p {
  margin: 0 0 0.875rem;
  line-height: 1.65;
}
.cap .body p:last-child { margin-bottom: 0; }

/* Space ABOVE a paragraph that follows a list or blockquote
   so the next labelled subsection has visible separation. */
.cap .body ul + p,
.cap .body ol + p,
.cap .body blockquote + p,
.cap .body p + p {
  margin-top: 1.25rem;
}

.cap .body ul,
.cap .body ol {
  margin: 0 0 1rem;
  padding-left: 1.25rem;
}
.cap .body ul > li,
.cap .body ol > li {
  margin-bottom: 0.5rem;
  line-height: 1.6;
}
.cap .body .prose-list { list-style: disc; padding-left: 1.5rem; }

.cap .body blockquote {
  margin: 1.25rem 0 0;
  padding: 0.875rem 1rem;
  border-left: 3px solid var(--color-accent);
  background: rgba(224, 122, 31, 0.06);
  border-radius: 0 var(--r-base) var(--r-base) 0;
}
.cap .body blockquote p { margin: 0; font-size: 0.9375rem; }

/* Slightly more outer breathing room inside each cap card. */
.cap { padding: 1.5rem 1.5rem 1.5rem; }

/* ============================================================
   Service-page tables (inside .section bands)
   Adds clean borders, readable padding, and responsive overflow
   so registration-fee / threshold / classification tables read
   as proper tables rather than naked text rows.
   ============================================================ */
.section .table-wrap {
  margin: 0.5rem 0 1rem;
  border-radius: var(--r-card);
  border: 1px solid var(--color-border);
  /* Clip the inner table to the rounded corners so the header row sits
     flush against the top edge — no cream "strip" above the th cells.
     The horizontal-scroll media query below preserves mobile overflow. */
  overflow: hidden;
}
@media (max-width: 700px) {
  .section .table-wrap { overflow-x: auto; }
}
.section table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
  /* Table itself carries the surface fill so body rows always have a
     solid backdrop, instead of inheriting the .table-wrap's old fill. */
  background: var(--color-surface);
  margin: 0;
}
.section table th,
.section table td {
  padding: 0.875rem 1.125rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--color-border);
  line-height: 1.55;
}
.section table th {
  font-family: var(--mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-ink-muted);
  background: var(--color-primary-soft);
  font-weight: 600;
  border-bottom: 1.5px solid var(--color-border);
}
.section table tr:last-child td { border-bottom: 0; }
.section table tr:hover td { background: rgba(13, 92, 62, 0.03); }

/* Tables that appear inline inside a section but without an outer
   .table-wrap (legacy markup) — still get the border treatment.
   The :not(.table-wrap) excludes the wrapped case so it doesn't
   double-style or leak margins into .table-wrap tables. */
.section > .wrap > table,
.section > .wrap > div:not(.table-wrap) > table {
  border: 1px solid var(--color-border);
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--color-surface);
  margin: 0.5rem 0 1rem;
}

/* ===== IDEAL PRINCIPLE CARDS =====
   Richer card treatment for the About page philosophy section.
   Applied via the .principle-grid + .principle-card pattern.
   Each card is a self-contained tile with a large letter mark,
   title, body copy, and a subtle border. */
.principle-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.25rem;
  margin-top: 2rem;
}
@media (max-width: 1100px) { .principle-grid { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }
@media (max-width: 720px)  { .principle-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .principle-grid { grid-template-columns: 1fr; } }

.principle-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--r-card);
  padding: 1.75rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
  position: relative;
  overflow: hidden;
}
.principle-card:hover {
  border-color: var(--color-accent);
  transform: translateY(-2px);
  box-shadow: 0 12px 32px -16px rgba(13, 92, 62, 0.18);
}
.principle-card .letter {
  font-family: var(--display);
  font-weight: 700;
  font-size: clamp(2.75rem, 5vw, 3.5rem);
  line-height: 1;
  color: var(--color-accent);
  letter-spacing: -0.02em;
  margin-bottom: 0.25rem;
}
.principle-card h3 {
  font-family: var(--display);
  font-weight: 600;
  font-size: 1.25rem;
  color: var(--color-primary-deep);
  margin: 0;
}
.principle-card p {
  color: var(--color-ink-muted);
  font-size: 0.9375rem;
  line-height: 1.6;
  margin: 0;
}

/* ===== HOW-WE-WORK PRACTICE CARDS =====
   Simpler card treatment for the operational standards section.
   Drops the numeric framing in favour of a clean title+description tile. */
.practice-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 2rem;
}
@media (max-width: 980px) { .practice-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .practice-grid { grid-template-columns: 1fr; } }

.practice-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-accent);
  border-radius: var(--r-card);
  padding: 1.5rem 1.5rem 1.5rem 1.625rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.practice-card h3 {
  font-family: var(--display);
  font-weight: 600;
  font-size: 1.1875rem;
  color: var(--color-primary-deep);
  margin: 0;
}
.practice-card p {
  color: var(--color-ink-muted);
  font-size: 0.9375rem;
  line-height: 1.6;
  margin: 0;
}

/* ===== FOOTER LEGAL LINK STRIP =====
   Inline legal links in the footer-bottom (Privacy / Terms / Disclaimer / Contact). */
.footer-bottom .foot-legal {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.footer-bottom .foot-legal a {
  color: rgba(250, 246, 238, 0.72);
  text-decoration: none;
  transition: color 140ms ease;
}
.footer-bottom .foot-legal a:hover {
  color: var(--color-accent-soft, #FDDDB8);
}
.footer-bottom .foot-legal .sep {
  color: rgba(250, 246, 238, 0.32);
}

/* ===== HERO PRACTICE-AREA CHIP STRIP =====
   Used on the homepage hero to expose the full breadth of practice areas
   without bloating the h1 line. Small uppercase pills, one per category. */
.practice-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 2rem;
  margin-bottom: 0.25rem;
}
.practice-strip a {
  font-family: var(--mono);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-primary-deep);
  background: rgba(13, 92, 62, 0.07);
  border: 1px solid rgba(13, 92, 62, 0.18);
  padding: 0.5rem 0.875rem;
  border-radius: var(--r-pill);
  text-decoration: none;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease;
  white-space: nowrap;
  font-weight: 600;
}
.practice-strip a:hover {
  background: var(--color-primary);
  color: var(--color-bg);
  border-color: var(--color-primary);
  transform: translateY(-1px);
}
@media (max-width: 540px) {
  .practice-strip { gap: 0.4rem; margin-top: 1.5rem; }
  .practice-strip a { padding: 0.4rem 0.65rem; font-size: 0.625rem; }
}

/* ===== HERO BULLET LIST =====
   Punchy 4-item credentials list used on the homepage hero in place of a
   wall-of-text sub-paragraph. Each bullet uses a rotated accent square
   marker for visual rhythm; the lead word is bold for scannability. */
.hero-bullets {
  list-style: none;
  padding: 0;
  margin: 1.5rem 0 0;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.hero-bullets li {
  position: relative;
  padding-left: 1.5rem;
  font-size: 0.9375rem;
  color: var(--color-ink);
  line-height: 1.55;
}
.hero-bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5rem;
  width: 8px;
  height: 8px;
  background: var(--color-accent);
  border-radius: 2px;
  transform: rotate(45deg);
}
.hero-bullets strong {
  font-weight: 600;
  color: var(--color-primary-deep);
}
@media (max-width: 540px) {
  .hero-bullets { margin-top: 1.25rem; gap: 0.5rem; }
  .hero-bullets li { font-size: 0.875rem; padding-left: 1.25rem; }
}

/* Breathing room between the homepage hero bullet list and the
   following CTA row + practice-strip. Override only when the bullets
   are followed by these elements. */
.hero-bullets + .hero-ctas { margin-top: 2rem; }

/* ===== ARTICLE BODY HYPERLINKS =====
   Make inline links inside article prose visually distinct from regular
   text. Uses the firm's primary green with a 2 px underline offset and
   a clear hover transition. External links (target="_blank") get a
   small "↗" indicator so readers can see they're leaving the site. */
.article a[href^="http"],
.article a[href^="mailto"] {
  color: var(--color-primary);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(13, 92, 62, 0.35);
  transition: text-decoration-color 160ms ease, color 160ms ease;
  font-weight: 500;
}
.article a[href^="http"]:hover,
.article a[href^="mailto"]:hover {
  color: var(--color-primary-deep);
  text-decoration-color: var(--color-primary);
}
.article a[href^="http"][target="_blank"]::after {
  content: " \2197";
  font-size: 0.875em;
  color: var(--color-ink-muted);
  margin-left: 0.125em;
  text-decoration: none;
  display: inline-block;
}
.article a[href^="http"][target="_blank"]:hover::after {
  color: var(--color-primary);
}
/* Internal article-to-article cross-links (relative hrefs) — same colour,
   no external indicator. */
.article a[href$=".html"]:not([href^="http"]) {
  color: var(--color-primary);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(13, 92, 62, 0.35);
  font-weight: 500;
}
.article a[href$=".html"]:not([href^="http"]):hover {
  color: var(--color-primary-deep);
  text-decoration-color: var(--color-primary);
}

/* ===== ARTICLE PUBLISHED DATE =====
   Subtle mono-font line inserted between the lead paragraph and the
   hero CTAs on every article page. Tells readers when the article
   was written without competing with the h1. */
.page-banner .pub-date {
  font-family: var(--mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-ink-muted);
  margin: 1rem 0 0;
}

/* ===== LEGAL PAGE CLOSING NOTE =====
   Gentler closing band for privacy / terms / disclaimer — uses the
   firm's soft cream background and ink-coloured copy instead of the
   green / accent contrast of the standard service-page closing CTA.
   Two-column layout on desktop, single-column on mobile. */
.legal-closing {
  background: var(--color-primary-soft);
  padding: 3.5rem 0 4rem;
  border-top: 1px solid var(--color-border);
}
.legal-closing .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.5rem;
  flex-wrap: wrap;
}
.legal-closing .lhs { max-width: 36rem; }
.legal-closing .eyebrow {
  display: block;
  margin-bottom: 0.75rem;
  color: var(--color-primary-deep);
}
.legal-closing h2 {
  font-family: var(--display);
  font-weight: 600;
  font-size: clamp(1.5rem, 2.5vw, 1.875rem);
  margin: 0 0 0.625rem;
  color: var(--color-primary-deep);
}
.legal-closing p {
  color: var(--color-ink-muted);
  font-size: 1rem;
  line-height: 1.6;
  margin: 0;
}
.legal-closing .ctas {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}
@media (max-width: 640px) {
  .legal-closing .wrap { flex-direction: column; align-items: flex-start; }
}
