@font-face{font-family:"DM Sans";src:url("/assets/dm-sans.ttf") format("truetype");font-style:normal;font-weight:100 1000;font-display:swap}
body,body.guide{font-family:"DM Sans",system-ui,sans-serif;background:white;color:#173c36}
body :is(h1,h2,h3,blockquote,.sheet strong,.index,.stamp,.kicker,.eyebrow,.intro,.point-index,.identity,.jump,.primary,.offer-link,button,input,textarea),body.guide :is(h1,h2,h3,.intro,.eyebrow,button,.offer-link,.identity,.selling-points p,.editorial p,.questions p){font-family:"DM Sans",system-ui,sans-serif}
.hero,.guide-hero,.guide header,.editorial-hero{background:#f0f5f0;color:#173c36}
.hero h1,body.guide h1,h1{font-size:clamp(37px,4.3vw,58px);font-weight:620;line-height:1.08;letter-spacing:-.044em}
.section h2,.about h2,h2{font-weight:600;letter-spacing:-.035em}
.hero .lead,.guide .guide-lead .intro{color:#435b52;font-size:clamp(17px,1.5vw,19px);line-height:1.55}
.kicker,.index,.guide .guide-lead .eyebrow{color:#38694f;letter-spacing:.025em;text-transform:none;font-size:13px;font-weight:600}
.primary,.guide .offer-link,.guide button,.offer-link,button{border-radius:7px;background:#165744;color:white;font-weight:650}.primary:hover,.offer-link:hover,button:hover{background:#104734}
.catalogue section,.guide .response,.response{border:1px solid #d5dfd7;border-radius:12px;box-shadow:none}.about,.guide-enquiry{background:#f6f8f4}
.folio{background:#c6e7c8;border-radius:40% 6% 38% 6%}.sheet{border-radius:4px;box-shadow:0 10px 24px #254b4421}
.guide .response input,.guide .response textarea{border-color:#b6c8be}.foot,.footer{flex-wrap:wrap}.credit{display:block;color:#50675d;font-size:12px}
.service-reading{max-width:65ch}.service-reading h2{margin-top:8px}.service-reading p{font-size:18px;color:#435b52}.service-reading blockquote{margin-top:12px;font-size:22px}
.scene{display:block;width:100%;height:auto;max-width:420px;justify-self:end;border-radius:40% 6% 38% 6%}.service-intro:has(.scene){display:grid;grid-template-columns:1.25fr .75fr;align-items:center;gap:32px}
@media(max-width:740px){.service-intro:has(.scene){grid-template-columns:1fr}.scene{max-width:245px;justify-self:center}}
.home-paragraph{margin-top:1em}.home-areas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin-top:28px}.home-areas a{display:flex;flex-direction:column;padding-top:15px;border-top:2px solid #adc6b6;text-decoration:none}.home-areas a:hover h3{text-decoration:underline;text-underline-offset:4px}.home-areas h3{font-size:22px;margin:12px 0}.home-areas p{font-size:16px}.area-action{font-size:14px;color:#165744;font-weight:650;margin-top:auto;padding-top:15px}@media(max-width:850px){.home-areas{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.home-areas{grid-template-columns:1fr}}

/* Give the public site a wide canvas while keeping paragraphs easy to scan. */
.public-site {
  --site-gutter: clamp(20px, 4vw, 72px);
  --section-space: clamp(48px, 6vw, 100px);
}
.public-site .wrap {
  width: min(1520px, calc(100% - 2 * var(--site-gutter)));
}
.public-site .spread, .public-site .inner .wrap, .public-site .section {
  padding-block: var(--section-space);
}
.public-site .spread { gap: clamp(28px, 6vw, 110px); }
.public-site .spread h1 { max-width: 20ch; }
.public-site .spread .lead { max-width: 55ch; }
.public-site .scene { max-width: 530px; }
.public-site .about-grid { gap: clamp(32px, 7vw, 128px); }
.public-site .about-grid p { max-width: 65ch; }
.public-site .home-areas { gap: clamp(14px, 1.8vw, 30px); }
.public-site .home-areas a {
  padding: clamp(22px, 2.2vw, 38px);
  border: 1px solid #dce6df;
  border-radius: 16px;
  background: #fff;
}
.public-site .area-action { padding-top: 24px; }
.public-site .home-areas a:hover { background: #edf5ed; border-color: #9bbca7; }
.public-site .home-areas a:hover h3 { text-decoration: none; }
.public-site :is(.nav a,.footer a,.text-link,.catalogue a,.kicker a) { text-decoration: none; }
.public-site .nav { align-items: center; gap: 6px; }
.public-site :is(.nav > a,.service-menu summary,.footer nav a,.text-link) {
  padding: 9px 14px;
  border-radius: 8px;
}
.public-site .nav > a:last-child, .public-site .text-link { background: #e6efe8; color: #154c39; }
.public-site :is(.nav a,.footer nav a,.service-menu summary,.text-link,.catalogue li a):hover,
.public-site .nav [aria-current] { background: #dcece0; color: #153e30; text-decoration: none; }
.public-site .catalogue li a { padding: 10px; border-top: 0; border-radius: 6px; }
.public-site .catalogue li a::after { content: "›"; color: #416d52; }
.public-site .menu-panel .catalogue li a { display: flex; padding: 6px 8px; }
.public-site .catalogue h3 a:hover, .public-site .kicker a:hover { color: #297447; }
.public-site .footer { row-gap: 18px; padding-block: 32px; }
@media (max-width: 740px) {
  .public-site .scene { max-width: 330px; }
  .public-site .about-grid { gap: 25px; }
  .public-site .nav { gap: 1px; }
  .public-site :is(.nav > a,.service-menu summary) { padding: 8px 6px; }
  .public-site .footer nav { gap: 0; }
}
@media (max-width: 360px) {
  .public-site .mast { flex-wrap: wrap; padding-block: 12px; }
}

.home-hero {
  background: radial-gradient(ellipse at 78% 76%, #c5dfcd, transparent 45%), #eef4ed;
}
.public-site .home-hero .spread { padding-block: clamp(34px, 4.3vw, 70px); }
.public-site .home-hero .scene {
  max-width: 570px;
  max-height: 355px;
  object-fit: cover;
  border-radius: 72px 16px 60px 16px;
}
.home-hero + .about { background: #fafaf6; border-top: 0; }
.home-hero + .about .section { padding-block: clamp(38px, 4vw, 66px); }
.public-site .home-areas a {
  --inset: clamp(20px, 1.9vw, 32px);
  padding: 0 var(--inset) var(--inset);
  overflow: hidden;
}
.area-illustration {
  align-self: stretch;
  width: calc(100% + 2 * var(--inset));
  height: clamp(110px, 9vw, 145px);
  margin: 0 calc(-1 * var(--inset)) 20px;
  background: #d9e9dd;
}
.area-illustration .art-horizon { fill: #91b39c; opacity: .32; }
.home-areas a:nth-child(2) .area-illustration { background: #f4e8d5; }
.home-areas a:nth-child(3) .area-illustration { background: #deeaec; }
.home-areas a:nth-child(4) .area-illustration { background: #e5edcf; }
.public-site .starting-point { padding-block: clamp(38px, 4.4vw, 72px); align-items: center; }
.public-site .callback-steps {
  box-sizing: border-box;
  padding: clamp(24px, 3.8vw, 60px);
  margin-bottom: clamp(26px, 4vw, 60px);
  border-radius: 20px;
  background: #eaf2eb;
}
.callback-steps .steps { background: #fff; border-radius: 14px; padding: 24px; }
.callback-steps .steps li:last-child { margin-bottom: 0; padding-bottom: 0; border: 0; }
@media(max-width: 740px) {
  .public-site .home-hero .scene { width: 100%; max-width: 430px; height: 180px; }
  .callback-steps .steps { padding: 18px; }
}
