/* TaxHelpers — shared design system. Change these variables to restyle every page. */
:root {
  --ink:#163c39;
  --teal:#103f3b;
  --teal-dark:#0b302d;
  --gold:#e7bd63;
  --gold-dark:#8b6019;
  --paper:#f6f7f3;
  --white:#fff;
  --muted:#61716e;
  --line:#dce4df;
  --radius:12px;
  --max:1200px;
  --shadow:0 18px 50px #133b3812;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:110px;
}

body {
  margin:0;
  color:var(--ink);
  background:var(--white);
  font-family:Arial,Helvetica,sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,p {
  margin:0;
}

h1,h2 {
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  line-height:1.12;
  letter-spacing:-.045em;
}

h1 {
  font-size:clamp(3rem,5.6vw,5.5rem);
}

h2 {
  font-size:clamp(2.2rem,3.7vw,3.7rem);
}

h3 {
  font-size:1.25rem;
  line-height:1.35;
  letter-spacing:-.02em;
}

a {
  color:inherit;
  text-decoration:none;
}

button,input,select,textarea {
  font:inherit;
}

button,a,input,select,textarea,summary {
  -webkit-tap-highlight-color:transparent;
}

button {
  cursor:pointer;
}

img {
  display:block;
  max-width:100%;
}

svg {
  display:block;
}

button {
  color:inherit;
}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:3px solid #b57c22;
  outline-offset:5px;
}

::selection {
  background:var(--gold);
  color:var(--teal);
}

[hidden] {
  display:none!important;
}

.container {
  width:min(var(--max),calc(100% - 80px));
  margin:auto;
}

.section {
  padding:96px 0;
}

.section-small {
  padding:64px 0;
}

.surface {
  background:var(--paper);
}

.eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  text-transform:uppercase;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.16em;
  margin-bottom:21px;
}

.eyebrow:before {
  content:'';
  width:24px;
  height:2px;
  background:var(--gold);
  flex:none;
}

.lead {
  font-size:1.125rem;
  line-height:1.8;
  color:var(--muted);
}

.muted {
  color:var(--muted);
}

.text-gold {
  color:var(--gold);
}

.italic {
  font-style:italic;
}

.btn {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:28px;
  min-height:52px;
  padding:14px 23px;
  border:1px solid transparent;
  border-radius:5px;
  background:var(--teal);
  color:#fff;
  font-weight:600;
  font-size:.875rem;
  line-height:1.5;
  transition:background .2s,transform .2s;
}

.btn:hover {
  background:var(--teal-dark);
  transform:translateY(-2px);
}

.btn-gold {
  background:var(--gold);
  color:var(--teal-dark);
}

.btn-gold:hover {
  background:#f0ce83;
}

.btn-outline {
  border-color:var(--line);
  background:transparent;
  color:var(--teal);
}

.btn-outline:hover {
  background:#e9efeb;
}

.arrow {
  font-size:1.25rem;
  line-height:1;
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:15px;
  font-weight:600;
  font-size:.875rem;
  border-bottom:1px solid currentColor;
  padding-bottom:5px;
}

.text-link:hover {
  color:var(--gold-dark);
}

.icon {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.skip-link {
  position:absolute;
  left:16px;
  top:-80px;
  padding:12px;
  background:#fff;
  z-index:100;
}

.skip-link:focus {
  top:10px;
}

.topbar {
  background:var(--teal);
  color:#e2eae5;
  font-size:.75rem;
}

.topbar-inner {
  min-height:35px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.topbar-links {
  display:flex;
  gap:26px;
}

.topbar a:hover {
  text-decoration:underline;
}

.site-header {
  position:sticky;
  top:0;
  z-index:50;
  background:#fffffff5;
  border-bottom:1px solid #e7ece8;
  backdrop-filter:blur(14px);
}

.nav-row {
  height:91px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:36px;
}

.brand {
  display:flex;
  align-items:center;
  gap:10px;
  flex:none;
}

.brand-mark {
  width:46px;
  height:46px;
  object-fit:contain;
}

.brand-name {
  display:block;
  font-size:1.68rem;
  font-weight:700;
  letter-spacing:-1.2px;
  line-height:1.1;
}

.brand-name span {
  font-weight:400;
}

.brand-tagline {
  font-size:.6rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  display:block;
  margin-top:6px;
}

.nav-links {
  display:flex;
  align-items:center;
  gap:35px;
  margin-left:auto;
}

.nav-links>a:not(.btn) {
  position:relative;
  font-size:.875rem;
  padding:10px 0;
}

.nav-links>a[aria-current=page]:not(.btn):after {
  content:'';
  position:absolute;
  bottom:2px;
  left:0;
  width:22px;
  height:2px;
  background:var(--gold);
}

.nav-links>a:not(.btn):hover {
  color:var(--gold-dark);
}

.nav-toggle {
  display:none;
  background:transparent;
  border:1px solid var(--line);
  border-radius:4px;
  padding:10px;
}

.nav-toggle span {
  display:block;
  width:22px;
  height:2px;
  background:var(--teal);
  margin:4px 0;
}

.hero {
  position:relative;
  overflow:hidden;
  background:var(--paper);
}

.hero-grid {
  display:grid;
  grid-template-columns:1.02fr 1fr;
  align-items:center;
  gap:50px;
  min-height:666px;
  padding-top:60px;
  padding-bottom:64px;
}

.hero-copy {
  padding-bottom:8px;
}

.hero h1 {
  font-size:clamp(3.2rem,5.3vw,5rem);
  margin-bottom:25px;
}

.hero h1 em {
  color:#7e5f2b;
}

.hero .lead {
  max-width:480px;
}

.hero-actions {
  display:flex;
  align-items:center;
  gap:26px;
  margin-top:32px;
  flex-wrap:wrap;
}

.hero-note {
  display:flex;
  gap:9px;
  align-items:center;
  font-size:.75rem;
  color:var(--muted);
  margin-top:24px;
}

.hero-note .icon {
  width:16px;
  height:16px;
}

.hero-art {
  position:relative;
  padding:0 0 27px 20px;
}

.hero-photo {
  width:100%;
  height:485px;
  object-fit:cover;
  object-position:52% 50%;
  border-radius:100px 10px 10px 10px;
}

.hero-art:before {
  content:'';
  position:absolute;
  border:1px solid #c5d1c8;
  inset:20px -20px 8px 43px;
  border-radius:100px 10px 10px 10px;
  z-index:0;
}

.hero-photo {
  position:relative;
}

.photo-label {
  position:absolute;
  right:-12px;
  top:24px;
  writing-mode:vertical-rl;
  background:var(--gold);
  padding:17px 10px;
  letter-spacing:.13em;
  text-transform:uppercase;
  font-size:.65rem;
  font-weight:700;
  border-radius:0 4px 4px 0;
}

.hero-card {
  position:absolute;
  left:-12px;
  bottom:0;
  background:#fff;
  border-radius:7px;
  box-shadow:var(--shadow);
  padding:21px 27px;
  display:flex;
  align-items:center;
  gap:17px;
  max-width:360px;
}

.hero-card .card-symbol {
  display:grid;
  place-items:center;
  width:47px;
  height:47px;
  flex:none;
  background:#edf3e9;
  border-radius:50%;
  color:var(--teal);
}

.hero-card strong {
  display:block;
  font-size:1rem;
}

.hero-card small {
  display:block;
  color:var(--muted);
  font-size:.75rem;
  margin-top:3px;
}

.benefit-bar {
  border-bottom:1px solid var(--line);
  background:#fff;
}

.benefit-row {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding:27px 0;
}

.benefit {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  font-size:.8125rem;
  font-weight:600;
  border-right:1px solid var(--line);
}

.benefit:first-child {
  justify-content:flex-start;
}

.benefit:last-child {
  border:0;
}

.benefit .icon {
  width:21px;
  height:21px;
  color:#6a8069;
}

.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:42px;
}

.section-heading h2 {
  max-width:670px;
}

.section-heading .lead {
  max-width:360px;
}

.section-heading.center {
  display:block;
  text-align:center;
}

.section-heading.center h2,.section-heading.center p {
  margin-left:auto;
  margin-right:auto;
}

.section-heading.center .eyebrow {
  justify-content:center;
}

.section-heading.center .lead {
  max-width:590px;
  margin-top:20px;
}

.cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}

.service-card {
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:31px;
  position:relative;
  background:#fff;
  transition:border-color .2s,transform .2s;
  display:flex;
  flex-direction:column;
}

.service-card:hover {
  border-color:#91a79b;
  transform:translateY(-4px);
}

.icon-tile {
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  border-radius:11px;
  background:#eef3ec;
  color:var(--teal);
  margin-bottom:28px;
}

.icon-tile .icon {
  width:27px;
  height:27px;
}

.service-card h3 {
  margin-bottom:12px;
}

.service-card p {
  font-size:.9375rem;
  color:var(--muted);
  margin-bottom:22px;
}

.service-card .text-link {
  align-self:flex-start;
  margin-top:auto;
  border:0;
  padding-top:8px;
}

.card-number {
  position:absolute;
  top:37px;
  right:29px;
  font-family:Georgia,serif;
  font-size:1.125rem;
  color:#9caca0;
}

.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:85px;
  align-items:center;
}

.split h2 {
  margin-bottom:24px;
}

.split .lead {
  margin-bottom:27px;
}

.about-photo-wrap {
  position:relative;
  padding:0 25px 35px 0;
}

.about-photo {
  width:100%;
  height:490px;
  object-fit:cover;
  border-radius:10px 10px 85px 10px;
  object-position:44% center;
}

.about-caption {
  position:absolute;
  right:0;
  bottom:0;
  background:var(--teal);
  color:#fff;
  border-radius:7px;
  width:235px;
  padding:26px;
}

.about-caption strong {
  font-family:Georgia,serif;
  font-size:1.8rem;
  font-weight:400;
  line-height:1.2;
  display:block;
}

.about-caption p {
  font-size:.75rem;
  color:#d4dfda;
  margin-top:9px;
}

.check-list {
  list-style:none;
  padding:0;
  margin:24px 0 30px;
  display:grid;
  gap:13px;
}

.check-list li {
  display:flex;
  gap:12px;
  font-size:.9375rem;
}

.check-list li:before {
  content:'✓';
  color:var(--gold-dark);
  font-weight:700;
}

.why-section {
  background:var(--teal);
  color:#fff;
  overflow:hidden;
}

.why-section .lead {
  color:#c5d8d0;
}

.why-section .eyebrow {
  color:var(--gold);
}

.why-grid {
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  gap:80px;
}

.why-grid h2 {
  margin-bottom:24px;
}

.why-points {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:36px 30px;
}

.why-point {
  border-top:1px solid #ffffff30;
  padding-top:25px;
}

.why-point .icon {
  color:var(--gold);
  margin-bottom:20px;
}

.why-point h3 {
  font-size:1.1rem;
  margin-bottom:10px;
}

.why-point p {
  font-size:.875rem;
  line-height:1.75;
  color:#c5d8d0;
}

.why-section .text-link {
  color:var(--gold);
  margin-top:32px;
}

.process-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px;
}

.process-step {
  position:relative;
  padding-top:24px;
  border-top:1px solid var(--line);
}

.step-number {
  display:block;
  font-family:Georgia,serif;
  font-size:3.2rem;
  color:#94a796;
  line-height:1;
  margin-bottom:26px;
}

.process-step h3 {
  margin-bottom:12px;
}

.process-step p {
  color:var(--muted);
  font-size:.9375rem;
}

.faq-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:95px;
}

.faq-layout h2 {
  margin-bottom:24px;
}

.faq-layout .lead {
  font-size:1rem;
}

.faq-layout .text-link {
  margin-top:24px;
}

.accordion {
  border-bottom:1px solid var(--line);
}

.accordion:first-child {
  border-top:1px solid var(--line);
}

.accordion summary {
  list-style:none;
  cursor:pointer;
  padding:23px 34px 23px 0;
  font-weight:600;
  font-size:1rem;
  position:relative;
}

.accordion summary::-webkit-details-marker {
  display:none;
}

.accordion summary:after {
  content:'+';
  font-weight:400;
  font-size:1.5rem;
  position:absolute;
  right:0;
  top:17px;
  color:var(--teal);
}

.accordion[open] summary:after {
  content:'−';
}

.accordion .answer {
  padding:0 28px 24px 0;
  color:var(--muted);
  font-size:.9375rem;
}

.accordion .answer p+p {
  margin-top:12px;
}

.cta-wrap {
  padding:25px 0 85px;
}

.cta {
  background:#eaf0e6;
  border-radius:12px;
  padding:54px 58px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:40px;
  position:relative;
  overflow:hidden;
}

.cta h2 {
  font-size:clamp(2rem,3vw,3rem);
  max-width:610px;
}

.cta p {
  color:var(--muted);
  margin-top:16px;
}

.cta .btn {
  flex:none;
}

.site-footer {
  background:var(--teal-dark);
  color:#fff;
  padding:62px 0 0;
}

.footer-grid {
  display:grid;
  grid-template-columns:1.65fr .8fr 1.1fr 1.3fr;
  gap:50px;
  padding-bottom:45px;
}

.site-footer .brand-name {
  color:#fff;
}

.site-footer .brand-tagline {
  color:#d1ddd3;
}

.footer-intro {
  color:#b9cbc3;
  font-size:.875rem;
  margin-top:24px;
  max-width:300px;
}

.footer-col h3 {
  font-size:.8125rem;
  font-weight:600;
  color:var(--gold);
  margin-bottom:23px;
}

.footer-col ul {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}

.footer-col a,.footer-col p {
  color:#cedbd4;
  font-size:.8125rem;
}

.footer-col a:hover {
  color:var(--gold);
}

.footer-col p+p {
  margin-top:14px;
}

.footer-bottom {
  border-top:1px solid #ffffff20;
  padding:22px 0;
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:#aac0b5;
  font-size:.75rem;
}

.footer-bottom a {
  border-bottom:1px solid #ffffff40;
}

.page-hero {
  background:var(--paper);
  padding:56px 0 62px;
}

.breadcrumbs {
  font-size:.75rem;
  display:flex;
  gap:10px;
  color:var(--muted);
  margin-bottom:30px;
}

.breadcrumbs a:hover {
  text-decoration:underline;
}

.page-hero h1 {
  max-width:820px;
  font-size:clamp(3rem,5vw,4.6rem);
}

.page-hero .lead {
  max-width:630px;
  margin-top:22px;
}

.page-hero .eyebrow {
  margin-bottom:18px;
}

.page-hero-row {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:45px;
}

.page-hero-row .hero-side-note {
  border-left:1px solid #cbd8ce;
  padding-left:28px;
  max-width:225px;
  font-size:.875rem;
  color:var(--muted);
}

.page-hero-row .hero-side-note strong {
  display:block;
  color:var(--teal);
  margin-bottom:6px;
}

.values-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px;
}

.value-item {
  border-top:2px solid var(--gold);
  padding-top:26px;
}

.value-item h3 {
  margin-bottom:13px;
}

.value-item p {
  color:var(--muted);
  font-size:.9375rem;
}

.statement {
  padding:50px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  text-align:center;
}

.statement p {
  font-family:Georgia,serif;
  font-size:clamp(1.8rem,3vw,2.8rem);
  line-height:1.4;
  max-width:870px;
  margin:auto;
}

.statement small {
  display:block;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:.75rem;
  color:var(--muted);
  margin-top:21px;
}

.audience-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}

.audience-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:28px;
}

.audience-card .icon {
  margin-bottom:23px;
}

.audience-card h3 {
  font-size:1rem;
  margin-bottom:12px;
}

.audience-card p {
  color:var(--muted);
  font-size:.875rem;
}

.tabs {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:35px;
  border-bottom:1px solid var(--line);
  padding-bottom:16px;
}

.tab {
  background:transparent;
  border:1px solid transparent;
  border-radius:5px;
  padding:12px 22px;
  font-size:.875rem;
  font-weight:600;
}

.tab:hover {
  background:#eef3ed;
}

.tab[aria-selected=true] {
  background:var(--teal);
  color:#fff;
}

.tab-panel:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:8px;
}

.tab-intro {
  display:flex;
  justify-content:space-between;
  gap:25px;
  align-items:center;
  margin-bottom:27px;
}

.tab-intro p {
  color:var(--muted);
  max-width:690px;
}

.tab-count {
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--muted);
  white-space:nowrap;
}

.service-detail-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}

.service-detail {
  border:1px solid var(--line);
  padding:34px;
  border-radius:9px;
  background:#fff;
  display:flex;
  flex-direction:column;
  scroll-margin-top:115px;
}

.service-detail-head {
  display:flex;
  align-items:center;
  gap:20px;
  margin-bottom:18px;
}

.service-detail-head .icon-tile {
  margin:0;
  flex:none;
}

.service-detail .service-tag {
  font-size:.625rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--muted);
  display:block;
  margin-bottom:5px;
}

.service-detail p {
  color:var(--muted);
  font-size:.9375rem;
}

.service-detail .check-list {
  border-top:1px solid var(--line);
  padding-top:20px;
  margin:23px 0;
}

.service-detail .check-list li {
  font-size:.875rem;
}

.service-detail .text-link {
  align-self:flex-start;
  margin-top:auto;
}

.help-banner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  background:var(--paper);
  border-radius:8px;
  padding:30px 35px;
  margin-top:35px;
}

.help-banner h3 {
  margin-bottom:6px;
}

.help-banner p {
  font-size:.875rem;
  color:var(--muted);
}

.contact-grid {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:80px;
  align-items:start;
}

.contact-intro h2 {
  font-size:2.3rem;
  margin-bottom:19px;
}

.contact-intro>p {
  color:var(--muted);
}

.contact-method {
  display:flex;
  gap:20px;
  padding:27px 0;
  border-bottom:1px solid var(--line);
}

.contact-method .icon-tile {
  width:45px;
  height:45px;
  margin:0;
  flex:none;
}

.contact-method h3 {
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--muted);
  margin-bottom:7px;
}

.contact-method a {
  font-size:1.1rem;
}

.contact-method a:hover {
  text-decoration:underline;
}

.contact-method p {
  font-size:.875rem;
}

.contact-note {
  background:var(--paper);
  padding:22px;
  margin-top:30px;
  border-left:3px solid var(--gold);
  font-size:.8125rem;
  color:var(--muted);
}

.contact-form {
  padding:38px;
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:var(--shadow);
  background:#fff;
}

.contact-form h2 {
  font-size:2rem;
  margin-bottom:10px;
}

.contact-form>p {
  font-size:.875rem;
  color:var(--muted);
  margin-bottom:28px;
}

.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:21px;
}

.field {
  display:flex;
  flex-direction:column;
  gap:7px;
}

.field.full {
  grid-column:1/-1;
}

.field label {
  font-size:.8125rem;
  font-weight:600;
}

.field label span {
  color:var(--muted);
  font-weight:400;
}

.field input,.field select,.field textarea {
  width:100%;
  min-height:49px;
  border:1px solid #cdd8d0;
  border-radius:5px;
  background:#fbfcfa;
  padding:11px 13px;
  color:var(--ink);
  font-size:.9375rem;
}

.field textarea {
  min-height:120px;
  resize:vertical;
}

.field input::placeholder,.field textarea::placeholder {
  color:#7b8781;
}

.consent {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:.75rem;
  color:var(--muted);
  margin:23px 0;
}

.consent input {
  accent-color:var(--teal);
  margin-top:4px;
  width:16px;
  height:16px;
  flex:none;
}

.form-note {
  font-size:.75rem;
  color:var(--muted);
  margin-top:16px;
}

.form-status {
  margin-top:20px;
  font-size:.875rem;
  padding:16px;
  border:1px solid #cbd8ce;
  border-radius:5px;
  background:#eef4e9;
}

.form-status a {
  font-weight:600;
  text-decoration:underline;
}

.privacy-box {
  font-size:.8125rem;
  color:var(--muted);
  padding:20px 0;
}

.privacy-box h3 {
  font-size:1rem;
  color:var(--ink);
  margin-bottom:10px;
}

.privacy-box p+p {
  margin-top:10px;
}

.inquiry-preview {
  white-space:pre-wrap;
  font:inherit;
  font-size:.8125rem;
  background:#fff;
  padding:14px;
  max-height:260px;
  overflow:auto;
  margin:12px 0;
  border:1px solid var(--line);
}

.noscript-note {
  padding:12px;
  background:#fff3d5;
  color:var(--teal);
  text-align:center;
  font-size:.875rem;
}

.site-footer .brand-mark {
  background:#fff;
  border-radius:6px;
  padding:2px;
}

.contact-form button:disabled {
  opacity:.55;
  cursor:not-allowed;
}

.tab-panel+.tab-panel {
  margin-top:30px;
}

.tabs~.tab-panel[hidden]+.tab-panel {
  margin-top:0;
}

@media(min-width:1500px) {
  :root {
    --max:1280px;
  }
  .hero-grid {
    min-height:710px;
  }
  .hero-photo {
    height:520px;
  }
}

@media(max-width:1100px) {
  .container {
    width:calc(100% - 56px);
  }
  .nav-links {
    gap:24px;
  }
  .nav-row {
    gap:20px;
  }
  .hero-grid {
    gap:28px;
  }
  .hero-art {
    padding-left:10px;
  }
  .hero-photo {
    height:460px;
  }
  .hero-card {
    left:0;
    padding:18px;
  }
  .hero h1 {
    font-size:4rem;
  }
  .split {
    gap:50px;
  }
  .why-grid {
    gap:50px;
  }
  .footer-grid {
    gap:28px;
  }
  .faq-layout {
    gap:50px;
  }
  .contact-grid {
    gap:45px;
  }
}

@media(max-width:860px) {
  .topbar .topbar-location {
    display:none;
  }
  .topbar-inner {
    justify-content:center;
  }
  .nav-row {
    height:80px;
  }
  .nav-toggle {
    display:block;
  }
  .nav-links {
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:80px;
    background:#fff;
    border-bottom:1px solid var(--line);
    box-shadow:0 12px 20px #103f3b10;
    padding:24px 28px;
    align-items:stretch;
    gap:12px;
    flex-direction:column;
  }
  .nav-links.is-open {
    display:flex;
  }
  .nav-links>a:not(.btn) {
    padding:10px 5px;
  }
  .nav-links>a[aria-current=page]:not(.btn):after {
    bottom:2px;
    left:5px;
  }
  .hero-grid {
    grid-template-columns:1fr 1fr;
    gap:20px;
    min-height:570px;
    padding:45px 0 55px;
  }
  .hero h1 {
    font-size:3.25rem;
  }
  .hero .lead {
    font-size:1rem;
  }
  .hero-actions {
    gap:18px;
  }
  .hero-photo {
    height:410px;
    border-top-left-radius:70px;
  }
  .hero-art:before {
    border-top-left-radius:70px;
    right:-10px;
  }
  .photo-label {
    right:-8px;
  }
  .hero-card {
    padding:15px;
    gap:10px;
  }
  .hero-card strong {
    font-size:.8125rem;
  }
  .hero-card small {
    font-size:.6875rem;
  }
  .hero-card .card-symbol {
    width:35px;
    height:35px;
  }
  .eyebrow {
    font-size:.6875rem;
  }
  .benefit-row {
    grid-template-columns:1fr 1fr;
    gap:18px;
    padding:25px 0;
  }
  .benefit,.benefit:first-child {
    justify-content:flex-start;
  }
  .benefit:nth-child(2) {
    border:0;
  }
  .section {
    padding:70px 0;
  }
  .cards {
    grid-template-columns:1fr 1fr;
  }
  .section-heading {
    gap:30px;
  }
  .section-heading .lead {
    max-width:300px;
    font-size:1rem;
  }
  .split {
    gap:35px;
  }
  .about-photo {
    height:440px;
  }
  .why-grid {
    grid-template-columns:1fr;
  }
  .why-grid>div:first-child {
    max-width:550px;
  }
  .process-grid {
    gap:25px;
  }
  .faq-layout {
    gap:35px;
    grid-template-columns:.8fr 1.2fr;
  }
  .cta {
    padding:38px;
  }
  .cta-wrap {
    padding-bottom:65px;
  }
  .footer-grid {
    grid-template-columns:1.5fr 1fr;
    gap:40px;
  }
  .page-hero-row .hero-side-note {
    display:none;
  }
  .audience-grid {
    grid-template-columns:1fr 1fr;
  }
  .contact-grid {
    gap:35px;
    grid-template-columns:.75fr 1.25fr;
  }
  .contact-form {
    padding:27px;
  }
  .form-grid {
    grid-template-columns:1fr;
  }
  .service-detail {
    padding:27px;
  }
  .tab {
    padding:11px 16px;
  }
}

@media(max-width:640px) {
  .container {
    width:calc(100% - 40px);
  }
  .topbar {
    font-size:.6875rem;
  }
  .topbar-links {
    gap:20px;
  }
  .topbar-inner {
    min-height:34px;
  }
  .brand-name {
    font-size:1.5rem;
  }
  .brand-mark {
    width:39px;
    height:39px;
  }
  .brand-tagline {
    font-size:.5rem;
  }
  .hero-grid {
    grid-template-columns:1fr;
    gap:40px;
    padding-top:42px;
    padding-bottom:50px;
  }
  .hero-copy {
    padding:0;
  }
  .hero h1 {
    font-size:clamp(3.15rem,12.4vw,4.2rem);
    max-width:530px;
    margin-bottom:23px;
  }
  .hero .lead {
    max-width:450px;
  }
  .hero-actions {
    margin-top:25px;
    gap:23px;
  }
  .hero-note {
    margin-top:18px;
  }
  .hero-art {
    padding:0 9px 25px 8px;
  }
  .hero-photo {
    height:365px;
    border-top-left-radius:75px;
    object-position:center 38%;
  }
  .hero-art:before {
    inset:16px 0 8px 26px;
    border-top-left-radius:75px;
  }
  .hero-card {
    left:0;
    padding:19px 23px;
  }
  .hero-card strong {
    font-size:.9375rem;
  }
  .hero-card small {
    font-size:.75rem;
  }
  .hero-card .card-symbol {
    width:43px;
    height:43px;
  }
  .photo-label {
    right:0;
    top:25px;
  }
  .benefit-row {
    gap:19px 10px;
  }
  .benefit {
    font-size:.6875rem;
    gap:8px;
    border:0;
  }
  .benefit .icon {
    width:18px;
    height:18px;
  }
  .section {
    padding:62px 0;
  }
  .section-small {
    padding:44px 0;
  }
  .section-heading {
    display:block;
    margin-bottom:31px;
  }
  .section-heading .lead {
    margin-top:20px;
    max-width:none;
  }
  .section-heading>.text-link {
    margin-top:22px;
  }
  .section-heading h2 {
    font-size:2.55rem;
  }
  .cards {
    grid-template-columns:1fr;
    gap:16px;
  }
  .service-card {
    padding:27px;
  }
  .icon-tile {
    margin-bottom:24px;
  }
  .split {
    grid-template-columns:1fr;
    gap:43px;
  }
  .about-photo {
    height:380px;
  }
  .about-caption {
    width:220px;
  }
  .split h2 {
    font-size:2.55rem;
  }
  .split .lead {
    font-size:1rem;
  }
  .why-grid {
    gap:38px;
  }
  .why-points {
    gap:28px 23px;
  }
  .why-point p {
    font-size:.8125rem;
  }
  .why-point h3 {
    font-size:1rem;
  }
  .process-grid {
    grid-template-columns:1fr;
    gap:30px;
  }
  .process-step {
    padding:23px 0 0 60px;
    min-height:140px;
  }
  .step-number {
    position:absolute;
    left:0;
    top:25px;
    font-size:2.2rem;
  }
  .faq-layout {
    grid-template-columns:1fr;
    gap:35px;
  }
  .faq-layout h2 {
    font-size:2.55rem;
  }
  .accordion summary {
    font-size:.9375rem;
  }
  .cta-wrap {
    padding:5px 0 60px;
  }
  .cta {
    padding:32px 26px;
    display:block;
  }
  .cta h2 {
    font-size:2.3rem;
  }
  .cta p {
    font-size:.9375rem;
  }
  .cta .btn {
    margin-top:25px;
  }
  .site-footer {
    padding-top:47px;
  }
  .footer-grid {
    gap:31px 25px;
    grid-template-columns:1fr 1fr;
  }
  .footer-brand {
    grid-column:1/-1;
  }
  .footer-intro {
    max-width:360px;
    margin-top:18px;
  }
  .footer-col:last-child {
    grid-column:1/-1;
  }
  .footer-col h3 {
    margin-bottom:15px;
  }
  .footer-bottom {
    flex-direction:column;
    gap:6px;
  }
  .page-hero {
    padding:32px 0 45px;
  }
  .breadcrumbs {
    margin-bottom:25px;
  }
  .page-hero h1 {
    font-size:3.1rem;
  }
  .page-hero .lead {
    font-size:1rem;
  }
  .values-grid {
    grid-template-columns:1fr;
    gap:28px;
  }
  .statement {
    padding:35px 0;
  }
  .audience-grid {
    gap:14px;
  }
  .audience-card {
    padding:23px;
  }
  .audience-card h3 {
    font-size:.9375rem;
  }
  .audience-card p {
    font-size:.8125rem;
  }
  .tabs {
    gap:6px;
  }
  .tab {
    font-size:.8125rem;
    padding:10px 12px;
  }
  .tab-intro {
    display:block;
  }
  .tab-count {
    display:block;
    margin-top:14px;
  }
  .service-detail-grid {
    grid-template-columns:1fr;
    gap:18px;
  }
  .service-detail {
    padding:25px;
  }
  .service-detail-head {
    gap:15px;
  }
  .service-detail-head h3 {
    font-size:1.2rem;
  }
  .help-banner {
    display:block;
    padding:27px;
  }
  .help-banner .text-link {
    margin-top:20px;
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:40px;
  }
  .contact-form {
    padding:27px 22px;
  }
  .contact-method {
    padding:23px 0;
  }
  .contact-form h2 {
    font-size:1.8rem;
  }
  .form-grid {
    gap:19px;
  }
}

/* Floating WhatsApp contact widget — shared by all four pages. */
.whatsapp-widget {
  position:fixed;
  right:max(24px,env(safe-area-inset-right));
  bottom:max(24px,env(safe-area-inset-bottom));
  z-index:70;
  display:grid;
  justify-items:end;
  gap:14px;
  max-width:calc(100vw - 32px);
}

.whatsapp-launcher {
  width:60px;
  height:60px;
  display:grid;
  place-items:center;
  position:relative;
  background:#128c4a;
  border:2px solid #fff;
  border-radius:50%;
  box-shadow:0 5px 22px #103f3b38;
  transition:background .2s,transform .2s;
}

.whatsapp-launcher:hover {
  background:#0e753d;
  transform:translateY(-2px);
}

.whatsapp-launcher img {
  width:33px;
  height:33px;
}

.whatsapp-label {
  position:absolute;
  right:calc(100% + 12px);
  white-space:nowrap;
  padding:7px 13px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:6px;
  box-shadow:0 3px 12px #103f3b12;
  font-size:.8125rem;
  font-weight:600;
  pointer-events:none;
}

.whatsapp-widget.is-open .whatsapp-label {
  display:none;
}

.whatsapp-panel {
  width:340px;
  max-width:100%;
  max-height:calc(100vh - 116px);
  max-height:calc(100dvh - 116px);
  overflow:auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 14px 50px #103f3b30;
  animation:chat-appear .18s ease-out;
}

.whatsapp-heading {
  display:flex;
  gap:12px;
  align-items:center;
  padding:20px;
  color:#fff;
  background:var(--teal);
}

.whatsapp-heading>img {
  width:43px;
  height:43px;
  flex:none;
  padding:5px;
  background:#fff;
  border-radius:10px;
}

.whatsapp-heading h2 {
  font-family:Arial,Helvetica,sans-serif;
  font-size:1rem;
  font-weight:700;
  letter-spacing:0;
  line-height:1.4;
}

.whatsapp-heading p {
  color:#d2e1d9;
  font-size:.75rem;
  margin-top:2px;
}

.whatsapp-close {
  display:grid;
  place-items:center;
  flex:none;
  width:44px;
  height:44px;
  margin-left:auto;
  margin-right:-8px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:#fff;
  font-size:1.6rem;
  line-height:1;
}

.whatsapp-close:hover {
  background:#ffffff18;
}

.whatsapp-body {
  padding:23px 20px;
  background:var(--paper);
}

.whatsapp-message {
  padding:18px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:0 10px 10px 10px;
  font-size:.9375rem;
  line-height:1.65;
}

.whatsapp-message strong {
  display:block;
  margin-bottom:7px;
  font-size:1rem;
}

.whatsapp-message p {
  color:var(--muted);
}

.whatsapp-action {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-top:20px;
  padding:13px;
  border-radius:6px;
  background:#107c41;
  color:#fff;
  font-size:.875rem;
  font-weight:600;
}

.whatsapp-action:hover {
  background:#0b6735;
}

.whatsapp-action img {
  width:23px;
  height:23px;
}

.whatsapp-note {
  margin-top:12px;
  color:var(--muted);
  font-size:.75rem;
  text-align:center;
}

@keyframes chat-appear {
  from { opacity:0; transform:translateY(8px); }
  to { opacity:1; transform:translateY(0); }
}

@media(max-width:640px) {
  .whatsapp-widget {
    right:max(16px,env(safe-area-inset-right));
    bottom:max(16px,env(safe-area-inset-bottom));
  }
  .whatsapp-launcher {
    width:56px;
    height:56px;
  }
  .whatsapp-label {
    display:none;
  }
}

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