
@font-face{font-family:"Caslon Display";src:url("../fonts/caslon-display.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Caslon Text";src:url("../fonts/caslon-text-variable.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Caslon Text";src:url("../fonts/caslon-text-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Franklin";src:url("../fonts/franklin-variable.woff2") format("woff2");font-weight:400 650;font-style:normal;font-display:swap}

:root{
  --green:#003C32; --jade:#2C6E62; --ink:#16302B; --muted:#56635F;
  --green-50:#E3ECE9; --charcoal:#333333;
  --offwhite:#F6F8F7; --stone:#E8F1EE; --white:#FFFFFF;
  --rule:#D6D1C6; --rule-strong:#B9B3A6;
  --radius:4px; --radius-btn:5px;
  --on-dark:#FFFFFF; --on-dark-muted:#D7E3E0; --on-dark-rule:rgba(255,255,255,.24);

  --display:"Caslon Display","Libre Caslon Display",Georgia,"Times New Roman",serif;
  --serif:"Caslon Text","Libre Caslon Text",Georgia,"Times New Roman",serif;
  --sans:"Franklin","Libre Franklin","Helvetica Neue",Arial,sans-serif;

  --fs-small:.9375rem; --fs-body:1.0625rem; --fs-lead:clamp(1.125rem,1.05rem + .35vw,1.3125rem);
  --fs-h3:1.1875rem; --fs-h3-serif:clamp(1.25rem,1.12rem + .55vw,1.5rem);
  --fs-h2-light:clamp(1.625rem,1.4rem + .9vw,2.125rem);
  --fs-h2:clamp(2rem,1.45rem + 2.2vw,3.25rem);
  --fs-h1:clamp(2.75rem,1.7rem + 4.4vw,5.125rem);

  --pad-primary:clamp(4.5rem,2.8rem + 6.5vw,8rem);
  --pad-medium:clamp(3.5rem,2.4rem + 4.2vw,6rem);
  --pad-light:clamp(2.75rem,2.1rem + 2.4vw,4rem);
  --gutter:clamp(1.25rem,.8rem + 2.2vw,2.5rem);
  --wrap:75rem; --measure:62ch;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:6rem}
body{margin:0;overflow-x:clip;background:var(--white);color:var(--ink);font:400 var(--fs-body)/1.6 var(--sans);font-kerning:normal;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,p,ul,ol,dl,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
a{color:var(--jade);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--jade);outline-offset:3px}
.on-dark :focus-visible{outline-color:var(--white)}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:1rem;top:-4rem;z-index:100;background:var(--green);color:#fff;padding:.75rem 1rem;border-radius:var(--radius)}
.skip-link:focus{top:1rem}

.wrap{max-width:calc(var(--wrap) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.prose > * + *{margin-top:1em}
.prose p{max-width:var(--measure)}

/* Section weights and backgrounds */
.band{position:relative}
.band--primary{padding-block:var(--pad-primary)}
.band--medium{padding-block:var(--pad-medium)}
.band--light{padding-block:var(--pad-light)}
.bg-white{background:var(--white)} .bg-offwhite{background:var(--offwhite)} .bg-stone{background:var(--stone)} .bg-green-50{background:var(--green-50)}
.bg-green{background:var(--green);color:var(--on-dark-muted)}
.specialist{padding-block:clamp(5.5rem,3.4rem + 7vw,9.5rem)}
.specialist .situations{margin-top:4.5rem;column-gap:4rem}
.specialist .situation{padding:2.25rem 0}
.specialist .situation p{margin-top:.8rem;line-height:1.75}
.specialist .specialist-close{margin-top:4rem}
.casework__grid{display:grid;gap:2rem;margin-top:2.5rem}
@media (min-width:70rem){.casework__grid{grid-template-columns:repeat(3,1fr);gap:3rem}}
.casework__item{padding-top:1.25rem;border-top:2px solid var(--green)}
.casework__item h3{font:600 1.0625rem/1.35 var(--sans);color:var(--green)}
.casework__item .sub{margin-top:.25rem;font-size:var(--fs-small);color:var(--muted)}
.casework__item dl{margin-top:1rem;font-size:var(--fs-small)}
.casework__item dt{font-weight:600;color:var(--ink)}
.casework__item dd{margin:0 0 .75rem}


.casework__type{margin-bottom:.45rem;font:600 .75rem/1.35 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--jade)}
.casework__summary{margin-top:.9rem;font-size:var(--fs-small);color:var(--ink)}
.casework__outcome{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--rule);font-size:var(--fs-small)}
.casework__detail{margin-top:1rem;border-top:1px solid var(--rule)}
.casework__detail summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 0;font-size:var(--fs-small);font-weight:600;color:var(--green);cursor:pointer}
.casework__detail summary::-webkit-details-marker{display:none}
.casework__detail summary::after{content:"+";font-size:1.1rem;font-weight:400;color:var(--jade)}
.casework__detail[open] summary::after{content:"–"}
.casework__detail p{padding:0 0 .5rem;font-size:var(--fs-small);color:var(--muted)}
.casework__note{margin-top:2rem;max-width:70ch;font-size:.8125rem;line-height:1.5;color:var(--muted)}

/* Headings */
h1,.h1{font:400 var(--fs-h1)/1.04 var(--display);color:var(--green);letter-spacing:-.012em;max-width:16ch;text-wrap:balance}
.h2{font:600 var(--fs-h2)/1.1 var(--sans);color:var(--green);letter-spacing:-.022em;max-width:22ch;text-wrap:balance}
.h2--light{font:600 var(--fs-h2-light)/1.18 var(--sans);letter-spacing:-.016em;max-width:30ch}
.h3{font:600 var(--fs-h3)/1.3 var(--sans);color:var(--green)}
.h3--serif{font:400 var(--fs-h3-serif)/1.25 var(--serif);color:var(--green)}
.head{display:block}
.head .eyebrow{margin-bottom:.85rem}
.eyebrow{display:block;margin-bottom:1rem;font:600 .75rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--jade)}
.on-dark .eyebrow{color:var(--on-dark-muted)}
.lead{font-size:var(--fs-lead);line-height:1.55;max-width:56ch}
.small{font-size:var(--fs-small);line-height:1.55}
.muted{color:var(--muted)}
.section-link{display:inline-block;margin-top:2rem;font-weight:600}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.8rem 1.35rem;border:1.5px solid transparent;border-radius:var(--radius-btn);font:600 1rem/1.2 var(--sans);text-decoration:none;cursor:pointer}
.btn--primary{background:var(--green);color:var(--white)}
.btn--primary:hover{background:#00524A}
.btn--secondary{background:transparent;color:var(--green);border-color:var(--green)}
.btn--secondary:hover{background:rgba(0,60,50,.06)}
.btn--on-dark{background:var(--white);color:var(--green)}
.btn--on-dark:hover{background:var(--offwhite)}
.on-dark .btn--on-dark{color:var(--green);text-decoration:none}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.25rem}

/* Placeholders */
.ph{font-style:italic;color:var(--muted)}
.on-dark .ph{color:var(--on-dark-muted)}
.photo-ph{display:grid;place-items:center;aspect-ratio:4/5;background:repeating-linear-gradient(135deg,#E4E0D6 0 1px,transparent 1px 14px),#EFECE5;color:var(--muted);font-size:var(--fs-small);text-align:center;padding:1.5rem}
.logo-ph{display:grid;place-items:center;min-width:8.5rem;height:4rem;padding:.5rem 1rem;border:1px dashed var(--rule-strong);color:var(--muted);font-size:.8125rem;line-height:1.3;text-align:center}
.on-dark .logo-ph{border-color:var(--on-dark-rule);color:var(--on-dark-muted)}
.build-only{display:none}

/* ============ Header ============ */
.site-header{position:sticky;top:0;z-index:50;background:var(--white);border-bottom:1px solid var(--rule)}
.site-header .wrap{display:flex;align-items:center;gap:1.5rem;min-height:5.5rem;transition:min-height .2s ease}
.site-header.is-condensed .wrap{min-height:4.25rem}
.brand{flex:none;display:block;line-height:0}
.brand img{height:2.1rem;width:auto;transition:height .2s ease}
@media (min-width:70rem){.brand img{height:3.5rem}}
@media (min-width:70rem){.site-header.is-condensed .brand img{height:2.6rem}}
.header-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}
.icon-btn{display:inline-grid;place-items:center;width:3rem;height:3rem;border:1.5px solid var(--rule-strong);border-radius:var(--radius-btn);background:var(--white);color:var(--green);text-decoration:none;cursor:pointer}
.menu-toggle{width:auto;padding-inline:1rem;gap:.5rem;display:inline-flex;align-items:center;font:600 1rem var(--sans)}
.site-nav{display:none}
.site-nav.is-open{display:block;position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:1px solid var(--rule);max-height:calc(100vh - 5rem);overflow:auto}
.nav-list{padding:1rem var(--gutter) 1.5rem}
.nav-item{border-bottom:1px solid var(--rule)}
.nav-link,.nav-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:1rem 0;background:none;border:0;color:var(--green);font:600 1.0625rem var(--sans);text-decoration:none;cursor:pointer;text-align:left}
.nav-toggle svg{transition:transform .2s ease}
.nav-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.submenu{padding:0 0 1rem}
.submenu a{display:block;padding:.45rem 0;color:var(--ink);text-decoration:none}
.submenu a:hover{color:var(--jade);text-decoration:underline}
.submenu .submenu__hub{font-weight:600;color:var(--green)}
.nav-cta{margin-top:1.25rem}
.header-cta{display:none}

@media (min-width:70rem){
  .menu-toggle,.header-call{display:none}
  .site-nav,.site-nav.is-open{display:block;position:static;border:0;max-height:none;overflow:visible;background:none;margin-left:auto}
  .nav-list{display:flex;align-items:center;gap:.25rem;padding:0}
  .nav-item{position:relative;border:0}
  .nav-link,.nav-toggle{width:auto;padding:.6rem .7rem;font-size:.9375rem;gap:.35rem}
  .nav-link:hover,.nav-toggle:hover{color:var(--jade)}
  .submenu{position:absolute;left:0;top:calc(100% + .6rem);min-width:18rem;padding:1rem 1.25rem;background:var(--white);border:1px solid var(--rule)}
  .nav-cta{display:none}
  .header-cta{display:inline-flex;margin-left:.75rem}
  .header-actions{margin-left:0}
}

/* ============ 1 Hero ============ */
.hero__grid{display:grid;gap:2.5rem;align-items:center}
.hero__copy{max-width:42rem}
.hero .lead{margin-top:1.75rem}
.hero{padding-block:clamp(3rem,2rem + 3.5vw,5.5rem)}
.hero__img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center 42%;background:#E4E0D6}
@media (min-width:56rem){
  .hero__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(3rem,4vw,4.5rem);align-items:center}
  .hero__img{aspect-ratio:3/2;border-radius:var(--radius)}
}

/* ============ 2 Credentials ============ */
.proof-band{background:var(--green-50);padding-block:clamp(1.15rem,.95rem + .6vw,1.6rem)}
.proof{display:grid;gap:.7rem}
.proof li{font:600 var(--fs-small)/1.4 var(--sans);color:var(--green)}
@media (min-width:45rem){
  .proof{grid-template-columns:repeat(4,minmax(0,1fr));gap:2.5rem;align-items:center}
  .proof li + li{padding-left:2.5rem;border-left:1px solid rgba(0,60,50,.18)}
}

.cred-section{padding-block:clamp(3.25rem,2.65rem + 2vw,5rem)}
.cred{
  display:grid;
  gap:2rem;
  align-items:center;
}
.cred__card{
  display:grid;
  gap:1.15rem;
  align-content:center;
  justify-items:center;
  padding:2rem 1.75rem;
  background:var(--offwhite);
  border:1px solid var(--rule);
  border-radius:10px;
}
.cred__logos{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1.35rem;
  width:100%;
}
.cred__logo--acca{height:5.25rem;width:auto;max-width:10.5rem}
.cred__logo--cta{height:4.15rem;width:auto;max-width:14.5rem}
.cred__body{max-width:43rem}
.cred__body .head{max-width:42rem}
.cred__body .h2{
  max-width:24ch;
  font-size:clamp(1.9rem,1.65rem + 1vw,2.7rem);
  line-height:1.1;
}
.cred .prose{
  margin-top:1rem;
  max-width:42rem;
  font-size:var(--fs-small);
}
.cred .prose p + p{margin-top:.9rem}
@media (min-width:56rem){
  .cred{
    grid-template-columns:minmax(15rem,18rem) minmax(0,1fr);
    gap:clamp(3rem,5vw,5.25rem);
  }
  .cred__card{min-height:18rem}
}

/* Split header used by several sections */
.split{display:grid;gap:1.5rem}
@media (min-width:56rem){.split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:4rem;align-items:start}}

/* ============ 3 Who we help (tiles) ============ */
.who-section{
  padding-top:clamp(3.25rem,2.8rem + 1.4vw,4.5rem);
  border-top:1px solid var(--rule);
  overflow:hidden;
}
.who-intro{
  display:grid;
  gap:1rem;
  max-width:none;
}
.who-intro .h2{
  margin:0;
}
.who-intro .prose{
  max-width:46rem;
}
.who-intro .lead{
  font-size:clamp(1.125rem,1.06rem + .25vw,1.25rem);
  line-height:1.55;
}
.who-intro .prose p + p{
  margin-top:.75rem;
}
@media (min-width:64rem){
  .who-intro{
    grid-template-columns:minmax(15rem,4fr) minmax(0,7fr);
    gap:clamp(2.5rem,5vw,5rem);
    align-items:start;
  }
  .who-intro .prose{padding-top:.35rem}
}

.tiles{
  display:grid;
  gap:1.25rem;
  margin-top:clamp(2.25rem,1.8rem + 1.4vw,3.25rem);
  counter-reset:audience;
}
.tile{
  counter-increment:audience;
  position:relative;
  display:flex;
  flex-direction:column;
  gap:.9rem;
  min-height:100%;
  padding:clamp(1.6rem,1.2rem + 1.5vw,2.35rem);
  background:var(--white);
  border:1px solid rgba(0,60,50,.12);
  border-top:2px solid var(--jade);
  border-radius:var(--radius);
  box-shadow:0 10px 28px rgba(0,60,50,.035);
  transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease;
}
.tile::before{
  content:"0" counter(audience);
  display:block;
  margin-bottom:.25rem;
  font:600 .72rem/1 var(--sans);
  letter-spacing:.12em;
  color:var(--jade);
}
.tile__name{
  font:600 clamp(1.45rem,1.3rem + .55vw,1.85rem)/1.15 var(--sans);
  letter-spacing:-.018em;
  color:var(--green);
  text-wrap:balance;
}
.tile p{max-width:50ch}
.tile__link{
  margin-top:auto;
  padding-top:.65rem;
  font-weight:600;
}
.tile__link::after{content:"";position:absolute;inset:0}
.tile:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(0,60,50,.07);
  background:var(--white);
}
.tile:hover .tile__link{text-decoration-thickness:2px}
.tile:focus-within{outline:3px solid var(--jade);outline-offset:3px}
.tile__link:focus-visible{outline:none}

/* Business Owners is intentionally the lead audience card. */
.tile--lead{
  background:var(--green);
  border-color:var(--green);
  border-top-color:var(--green);
  color:var(--on-dark);
  box-shadow:0 14px 34px rgba(0,60,50,.12);
}
.tile--lead::before{color:#A8C9C1}
.tile--lead .tile__name{color:var(--white)}
.tile--lead p{color:var(--on-dark-muted)}
.tile--lead .tile__link{
  color:var(--white);
  text-decoration-color:rgba(255,255,255,.55);
}
.tile--lead:hover{
  background:#00493D;
  box-shadow:0 18px 40px rgba(0,60,50,.16);
}

@media (min-width:45rem){
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
  .tile--lead{grid-column:1 / -1}
}
@media (min-width:70rem){
  .who-section{padding-bottom:clamp(4rem,3.4rem + 1.8vw,5.5rem)}
  .tiles{
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:start;
  }
  .tile.tile--lead{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:minmax(0,4fr) minmax(0,7fr);
    grid-template-areas:
      "num copy"
      "title copy"
      "title link";
    gap:.45rem clamp(2.5rem,5vw,5rem);
    align-items:start;
    padding-block:clamp(2rem,1.6rem + 1vw,2.75rem);
  }
  .tile.tile--lead::before{grid-area:num}
  .tile.tile--lead .tile__name{grid-area:title;align-self:start}
  .tile.tile--lead p{grid-area:copy;max-width:46rem}
  .tile.tile--lead .tile__link{grid-area:link;margin-top:.35rem;padding-top:0;justify-self:start}
  .tiles > .tile:not(.tile--lead){margin-top:-.75rem}
}
/* ============ 4 Approach ============ */
.opening{padding-left:1.25rem;border-left:2px solid var(--green);font:400 clamp(1.375rem,1.2rem + .75vw,1.75rem)/1.35 var(--serif);color:var(--green);max-width:34ch}
.questions{font:italic 400 1.125rem/1.6 var(--serif);color:var(--jade)}

/* ============ Audience sections ============ */
.section-head{display:grid;gap:1.75rem;max-width:52rem}
.service-grid{display:grid;gap:0;margin-top:3rem;border-top:1px solid var(--rule-strong)}
.service{padding:1.75rem 0;border-bottom:1px solid var(--rule)}
.service .h3 + p{margin-top:.5rem}
.service p + p{margin-top:.75rem}
.service p{max-width:var(--measure)}
@media (min-width:45rem){
  .service-grid--2{grid-template-columns:1fr 1fr;column-gap:3rem}
}
.fee{display:grid;gap:.4rem;margin-top:2.5rem;padding:1.5rem 1.75rem;border-left:2px solid var(--green);border-radius:var(--radius);background:var(--green-50)}
.fee__price{font:400 clamp(1.375rem,1.2rem + .7vw,1.75rem)/1.2 var(--display);color:var(--green)}
.fee p:not(.fee__price){max-width:var(--measure)}

/* Mobile expanders (sections 5, 7, 8) */
.expand-btn{display:none}
html.js .expand-btn{display:inline-flex;margin-top:1.25rem}
html.js .collapsible:not(.is-expanded) .is-extra{display:none}
@media (min-width:45rem){
  html.js .expand-btn{display:none}
  html.js .collapsible:not(.is-expanded) .is-extra,html.js .collapsible .is-extra{display:block}
}

/* ============ 6 Lifecycle (signature component) ============ */
.lifecycle{position:relative;margin-top:3.5rem;padding-left:2.75rem;counter-reset:stage}
.lifecycle::before{content:"";position:absolute;left:.9375rem;top:2.5rem;bottom:1.5rem;width:2px;background:var(--green)}
.stage{position:relative;counter-increment:stage;padding-bottom:2rem}
.stage__node::before{content:counter(stage)}
.stage:last-child{padding-bottom:0}
.stage__node{position:absolute;left:-2.75rem;top:.35rem;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--green);color:var(--white);font:600 .875rem var(--sans);box-shadow:0 0 0 4px var(--offwhite)}
.stage--review .stage__node{background:var(--offwhite);border:2px solid var(--green);color:var(--green)}
.stage__name{font:400 clamp(1.625rem,1.4rem + .9vw,2rem)/1.1 var(--display);color:var(--green)}
.stage p{margin-top:.5rem;font-size:var(--fs-small);max-width:40ch}
@media (min-width:80rem){
  .lifecycle{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.5rem;padding-left:0}
  .lifecycle::before{left:1rem;right:1rem;top:1rem;bottom:auto;width:auto;height:2px;transform:translateY(-1px)}
  .stage{display:grid;align-content:start;padding-bottom:0}
  .stage__node{order:-1;position:relative;left:auto;top:auto;margin:0 0 1.1rem}
  .stage__name{margin-bottom:.35rem}
  .stage p{max-width:none}
}
.after-lifecycle{margin-top:3rem;padding-top:1.75rem;border-top:1px solid var(--rule-strong);max-width:var(--measure)}

/* ============ 8 Estate ============ */
.statement{font:400 clamp(1.25rem,1.12rem + .55vw,1.5rem)/1.45 var(--serif);color:var(--green);max-width:46ch}

/* ============ 9 Specialist (dark) ============ */
.on-dark a{color:var(--on-dark)}
.on-dark .h2{color:var(--on-dark)}
.situations{display:grid;margin-top:3.5rem;border-top:1px solid var(--on-dark-rule)}
.situation{padding:1.75rem 0;border-bottom:1px solid var(--on-dark-rule)}
.situation .h3--serif{color:var(--on-dark)}
.situation .h3--serif a{text-decoration-color:rgba(255,255,255,.45)}
.situation .h3--serif a:hover{text-decoration-color:var(--white)}
.situation p{margin-top:.6rem;font-size:var(--fs-small);max-width:52ch}
@media (min-width:45rem){.situations{grid-template-columns:1fr 1fr;column-gap:3rem}}
@media (min-width:70rem){.situations{grid-template-columns:repeat(3,1fr)}}
.specialist-close{display:grid;gap:1.5rem;margin-top:3rem;align-items:center}
.specialist-close p{max-width:60ch}
@media (min-width:56rem){.specialist-close{grid-template-columns:minmax(0,1fr) auto;gap:3rem}}

/* ============ 10 Why ============ */
.why-grid{display:grid;gap:2rem 3rem;margin-top:2.25rem}
.why-grid > div{padding-top:1.25rem;border-top:2px solid var(--green)}
.why-grid .h3{font-size:1.0625rem}
.why-grid p{margin-top:.4rem;font-size:var(--fs-small)}
@media (min-width:45rem){.why-grid{grid-template-columns:1fr 1fr}}
@media (min-width:70rem){.why-grid{grid-template-columns:repeat(3,1fr)}}

/* ============ 11 Reviews ============ */
.review-grid{display:grid;gap:1.25rem;margin-top:2.5rem}
@media (min-width:45rem){.review-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}}
@media (min-width:70rem){.review-grid{gap:2rem}}
.review{display:flex;flex-direction:column;padding:clamp(1.5rem,1.2rem + 1vw,2rem);background:var(--white);border-radius:var(--radius)}
.stars{display:flex;gap:.2rem;color:var(--jade);font-size:1rem;letter-spacing:.05em}
.review blockquote{margin-top:1rem;font:italic 400 1.0625rem/1.6 var(--serif);color:var(--green)}
.review figcaption{margin-top:auto;padding-top:1.25rem;font-size:var(--fs-small)}
.review figcaption strong{display:block;color:var(--ink);font-weight:600}
.reviews-foot{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:2rem;font-size:var(--fs-small)}

/* ============ 12 Team ============ */
.team-grid{display:grid;gap:3rem;margin-top:3.5rem}
@media (min-width:70rem){.team-grid{grid-template-columns:1fr 1fr;gap:4rem}}
.profile{display:grid;gap:1.5rem}
@media (min-width:30rem){.profile{grid-template-columns:10rem minmax(0,1fr);gap:1.75rem;align-items:start}}
.profile__photo{width:10rem;height:12.5rem;aspect-ratio:4/5;object-fit:cover;object-position:center 20%;align-self:start;background:#D1CEC9;border-radius:var(--radius)}
.profile__name{font:400 clamp(1.375rem,1.25rem + .5vw,1.625rem)/1.2 var(--serif);color:var(--green)}
.profile__role{margin-top:.25rem;font-weight:600;color:var(--jade)}
.profile .prose{margin-top:1rem;font-size:var(--fs-small)}

/* ============ 13 How we work ============ */
.steps-head{display:grid;gap:1.5rem}
@media (min-width:56rem){.steps-head{grid-template-columns:minmax(0,1fr) auto;gap:3rem;align-items:center}}
.steps{display:grid;gap:2rem;margin-top:3rem;counter-reset:step}
@media (min-width:45rem){.steps{grid-template-columns:1fr 1fr;gap:2.5rem 3rem}}
@media (min-width:70rem){.steps{grid-template-columns:repeat(4,1fr);gap:2.5rem}}
.step{counter-increment:step;display:grid;align-content:start}
.step__num{display:block;padding-bottom:.85rem;border-bottom:1px solid var(--rule-strong);font:400 1.75rem/1 var(--display);color:var(--jade);font-variant-numeric:lining-nums}
.step .h3{margin-top:1.1rem;font-size:1.0625rem}
.step p{margin-top:.4rem;font-size:var(--fs-small)}

/* ============ 14 Insights ============ */
.article-grid{display:grid;gap:0;margin-top:2.25rem;border-top:1px solid var(--rule-strong)}
@media (min-width:56rem){.article-grid{grid-template-columns:repeat(3,1fr);column-gap:3rem;border-top:0}}
.article{padding:1.5rem 0;border-bottom:1px solid var(--rule)}
@media (min-width:56rem){.article{border-bottom:0;border-top:1px solid var(--rule-strong)}}
.article__category{margin-bottom:.55rem;font:600 .75rem/1.3 var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--jade)}
.article h3{font:600 1.0625rem/1.35 var(--sans)}
.article h3 a{color:var(--green);text-decoration-color:rgba(0,60,50,.35)}
.magnet{display:grid;gap:1.5rem;margin-top:3rem;padding:clamp(1.5rem,1rem + 2vw,2.5rem);background:var(--green-50);border-left:2px solid var(--green);border-radius:var(--radius)}
@media (min-width:56rem){.magnet{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem;align-items:center}}
.magnet .h3--serif{font-size:clamp(1.25rem,1.1rem + .6vw,1.5rem)}
.magnet p{margin-top:.6rem;font-size:var(--fs-small);max-width:52ch}
.magnet__form{display:grid;gap:.75rem}
.magnet__row{display:flex;flex-wrap:wrap;gap:.75rem}
.magnet__row .field{flex:1 1 14rem}
.magnet__note{font-size:.8125rem;color:var(--muted)}
.magnet__consent{
  display:flex;
  align-items:flex-start;
  gap:.6rem;
  font-size:.8125rem;
  line-height:1.45;
  color:var(--ink);
  cursor:pointer;
}
.magnet__consent input{
  flex:none;
  width:1rem;
  height:1rem;
  margin-top:.16rem;
  accent-color:var(--green);
}
.article .h3--serif a{color:var(--green)}
.article p{margin-top:.5rem;font-size:var(--fs-small)}

/* ============ 15 FAQ ============ */
.faq{
  display:grid;
  gap:0;
  margin-top:2rem;
}
.faq__col{border-top:1px solid var(--rule-strong)}
.faq details{border-bottom:1px solid var(--rule-strong)}
.faq summary{
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:1.25rem;
  padding:1.2rem 0;
  font-weight:600;
  line-height:1.4;
  color:var(--green);
  cursor:pointer;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";
  flex:none;
  width:.875rem;
  height:.875rem;
  margin-top:.3rem;
  background:
    linear-gradient(var(--green),var(--green)) center/100% 2px no-repeat,
    linear-gradient(var(--green),var(--green)) center/2px 100% no-repeat;
}
.faq details[open] summary::after{
  background:linear-gradient(var(--green),var(--green)) center/100% 2px no-repeat;
}
.faq details p{
  padding:0 0 1.4rem;
  max-width:var(--measure);
  font-size:var(--fs-small);
}
@media (min-width:60rem){
  .faq{
    grid-template-columns:1fr 1fr;
    gap:clamp(2.5rem,5vw,5rem);
  }
}
.faq-cta{
  display:grid;
  gap:1.25rem;
  max-width:none;
  margin-top:2.5rem;
  padding-top:1.75rem;
  border-top:1px solid var(--rule-strong);
}
.faq-cta p{max-width:var(--measure)}
.faq-cta .btn{justify-self:start}
@media (min-width:45rem){
  .faq-cta{
    grid-template-columns:minmax(0,1fr) auto;
    gap:2.5rem;
    align-items:center;
  }
  .faq-cta .btn{justify-self:end}
}

/* ============ 16 Get in touch ============ */
.routes{display:grid;gap:1.5rem;margin-top:3rem}
@media (min-width:56rem){.routes{grid-template-columns:1fr 1fr;gap:2rem}}
.route{display:flex;flex-direction:column;gap:1rem;padding:clamp(1.5rem,1rem + 2vw,2.5rem);background:var(--white);border-radius:var(--radius)}
.route .h3--serif{font-size:clamp(1.375rem,1.2rem + .6vw,1.625rem)}
.route .btn{align-self:flex-start;margin-top:auto}
.facts{display:flex;flex-wrap:wrap;gap:.25rem 0;font-size:var(--fs-small);font-weight:600;color:var(--green)}
.facts li{padding-right:.85rem;margin-right:.85rem;border-right:1px solid var(--rule-strong)}
.facts li:last-child{border-right:0;margin-right:0;padding-right:0}
.direct{display:grid;gap:1.75rem;margin-top:1.5rem;padding:clamp(1.5rem,1rem + 2vw,2.5rem);background:var(--white);border-radius:var(--radius)}
@media (min-width:56rem){.direct{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:3rem;align-items:center}}
.direct .h3--serif{font-size:clamp(1.375rem,1.2rem + .6vw,1.625rem)}
.direct__hours{margin-top:.5rem;color:var(--muted)}
.contact-list{display:grid;gap:1rem}
@media (min-width:45rem){.contact-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem 2rem}}
.contact-list li{display:flex;align-items:center;gap:.9rem;min-width:0}
.contact-icon{flex:none;display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--green-50);color:var(--green)}
.contact-text{display:flex;flex-direction:column;min-width:0}
.contact-label{font-size:.875rem;color:var(--muted)}
.contact-list a{color:var(--green);font-weight:600;text-decoration:none;overflow-wrap:anywhere}
.contact-list a:hover,.contact-list a:focus-visible{text-decoration:underline;text-underline-offset:.2em}

/* Enquiry form */
.enquiry{margin-top:1.5rem;padding:clamp(1.5rem,1rem + 2vw,2.5rem);background:var(--white);border-radius:var(--radius)}
.enquiry__head{display:grid;gap:.5rem;max-width:var(--measure)}
.enquiry__grid{display:grid;gap:1.25rem;margin-top:1.75rem}
@media (min-width:45rem){.enquiry__grid{grid-template-columns:1fr 1fr;gap:1.25rem 1.5rem}.enquiry__grid .full{grid-column:1 / -1}}
.enquiry__option{padding:clamp(1.15rem,2vw,1.5rem);background:var(--offwhite);border:1px solid rgba(0,60,50,.14);border-radius:calc(var(--radius) - 2px)}
.enquiry__option h4{margin:.35rem 0 .65rem;font-family:var(--serif);font-size:clamp(1.35rem,2.2vw,1.65rem);line-height:1.15;color:var(--green)}
.enquiry__option p{margin:0 0 1rem;color:var(--muted)}
.enquiry__option .btn-row{margin-top:1rem}
.field{display:grid;gap:.35rem}
.field label{font:600 .9375rem var(--sans);color:var(--green)}
.field .hint{font-size:.8125rem;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;min-height:3rem;padding:.7rem .85rem;border:1.5px solid var(--rule-strong);border-radius:var(--radius);background:var(--white);color:var(--ink);font:400 1rem var(--sans)}
.field textarea{min-height:8rem;resize:vertical}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--green);outline:3px solid var(--jade);outline-offset:1px}
.enquiry__foot{display:grid;gap:1.25rem;margin-top:1.75rem}
@media (min-width:56rem){.enquiry__foot{grid-template-columns:minmax(0,1fr) auto;gap:2.5rem;align-items:center}}
.enquiry__note{font-size:.8125rem;color:var(--muted);max-width:60ch}

/* ============ Footer ============ */
.site-footer{position:relative;padding-block:clamp(3.5rem,2.5rem + 4vw,5.5rem) 2rem;font-size:var(--fs-small)}
.footer-grid{display:grid;gap:2.5rem}
@media (min-width:45rem){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand{grid-column:1 / -1}}
@media (min-width:70rem){.footer-grid{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr)) minmax(0,1.35fr);gap:2.75rem}.footer-brand{grid-column:auto}}
.footer-brand .brand img{height:3.25rem}
.footer-brand p{margin-top:1.25rem;max-width:34ch;color:var(--on-dark-muted)}
.footer-brand .btn{margin-top:1.5rem}
.social{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:1.5rem}
.footer-col h2{font:600 1rem/1.3 var(--sans);color:var(--on-dark);margin-bottom:1rem}
.footer-col ul{display:grid;gap:.58rem}
.footer-col li + li{margin-top:0}
.footer-col p{line-height:1.55}
.footer-col p + p{margin-top:.5rem}
.site-footer a{color:var(--on-dark-muted);text-decoration-color:rgba(255,255,255,.35)}
.site-footer a:hover{color:var(--white)}
.bottom-bar{margin-top:3.5rem;padding-top:1.75rem;border-top:1px solid var(--on-dark-rule);font-size:.875rem;color:var(--on-dark-muted);text-align:center}
@media (min-width:70rem){.bottom-bar__left{white-space:nowrap}}
.accreditation{display:inline-flex;align-items:center;gap:1.25rem;margin-top:1.75rem;padding:.9rem 1.1rem;background:var(--white);border-radius:var(--radius)}
.accreditation .acca{height:2.5rem;width:auto}
.accreditation .cta{height:1.75rem;width:auto}
.legal-note{margin-top:.85rem;font-size:.8125rem;line-height:1.5;color:var(--on-dark-muted);text-align:center}

/* Libre Caslon italic carries historical st/ct ligatures in liga; keep them off (the self-hosted italic file is also built without liga) */
.questions,.review blockquote{font-variant-ligatures:no-common-ligatures}

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