

:root {
  --pine:#657c4e;
  --forest:#4d673b;
  --sage:#d9e0c7;
  --cream:#f4f1e2;
  --hero:#fbf9f1;
  --sand:#e9dfc9;
  --ink:#3f5036;
  --white:#fffdf6;
  --warm:#a78c6d;
  --line:rgba(77,103,59,.25);
  --sans:'Century Gothic','Avenir Next','Segoe UI',Arial,sans-serif;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
}
body {
  margin:0;
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
}
body > main {
  flex:1 0 auto;
}
img {
  display:block;
  max-width:100%;
  width:100%;
  object-fit:cover;
}
a {
  color:inherit;
}
.skip-link {
  position:absolute;
  top:-50px;
  left:12px;
  z-index:9;
  background:var(--forest);
  color:white;
  padding:8px 14px;
}
.skip-link:focus {
  top:12px;
}

.site-header {
  background:var(--cream);
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:5;
}
.nav-wrap {
  max-width:1300px;
  min-height:90px;
  padding:0 48px;
  margin:auto;
  display:flex;
  align-items:center;
  gap:38px;
}
.brand {
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  line-height:1.15;
  min-width:288px;
}
.brand-mark {
  width:54px;
  height:54px;
  border-radius:50%;
  flex:0 0 54px;
  object-fit:cover;
}
.brand strong {
  display:block;
  color:var(--forest);
  font-size:15px;
  font-weight:500;
  letter-spacing:-.025em;
}
.brand small {
  display:block;
  margin-top:5px;
  color:var(--warm);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.main-nav {
  display:flex;
  gap:25px;
  margin-left:auto;
}
.main-nav a{
  text-decoration:none;
  font-size:13px;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.main-nav a:hover, .main-nav a.active {
  color:var(--warm);
}

.menu-toggle {
  display:none;
}

.hero {
  display:grid;
  grid-template-columns:1fr 1fr;
  max-width:1440px;
  margin:0 auto;
  min-height:650px;
  background:var(--hero);
  border-bottom:1px solid var(--line);
}
.hero-copy {
  padding:108px clamp(36px,8vw,150px);
  align-self:center;
}
.eyebrow {
  margin:0 0 16px;
  color:var(--warm);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:bold;
}
h1,h2,h3 {
  margin:0;
  font-family:var(--sans);
  font-weight:500;
  line-height:1.1;
}
h1 {
  color:var(--forest);
  font-size:clamp(44px,5vw,74px);
  letter-spacing:-.065em;
}
h1 em {
  color:var(--pine);
  font-style:normal;
  font-weight:350;
}
.hero-practitioner {
  margin:17px 0 0;
  color:var(--warm);
  font-size:clamp(20px,2vw,29px);
  font-weight:400;
  letter-spacing:-.04em;
}
.intro {
  max-width:470px;
  font-size:18px;
  margin:29px 0 30px;
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:30px;
  flex-wrap:wrap;
}
.button {
  display:inline-block;
  background:var(--forest);
  color:white;
  padding:15px 25px;
  text-decoration:none;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.13em;
  font-weight:bold;
  transition:.2s ease;
}
.button:hover {
  background:var(--pine);
  transform:translateY(-2px);
}
.text-link {
  color:var(--forest);
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:bold;
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding-bottom:4px;
}
.text-link span {
  margin-left:6px;
  font-size:17px;
}
.hero-photo {
  position:relative;
  min-height:650px;
  border-left:1px solid var(--line);
}
.hero-photo img {
  height:100%;
}
.hero-photo p {
  position:absolute;
  right:0;
  bottom:0;
  margin:0;
  padding:21px 28px;
  background:var(--sage);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
  font-size:15px;
  font-weight:600;
  line-height:1.5;
}

.section {
  max-width:1220px;
  margin:0 auto;
  padding:130px 48px;
}
.welcome {
  display:grid;
  grid-template-columns:180px 1fr;
  gap:40px;
}
.section-label {
  color:var(--warm);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:11px;
  font-weight:bold;
  padding-top:9px;
}
.welcome-content {
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:78px;
}
h2 {
  font-size:clamp(35px,3.8vw,56px);
  color:var(--forest);
  letter-spacing:-.06em;
}
.welcome p {
  margin:0 0 17px;
}
.services {
  max-width:none;
  background:var(--sage);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding-left:max(48px, calc((100% - 1124px)/2));
  padding-right:max(48px, calc((100% - 1124px)/2));
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:48px;
  margin-bottom:62px;
}
.section-heading > p {
  margin:0;
  max-width:260px;
  font-size:15px;
}
.service-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.service-grid article {
  padding:26px 27px 15px 0;
  min-height:255px;
  border-right:1px solid var(--line);
}
.service-grid article+article {
  padding-left:27px;
}
.service-grid article:last-child {
  border:0;
}
.service-grid span {
  color:var(--pine);
  font-size:12px;
  letter-spacing:.1em;
  font-weight:bold;
}
h3 {
  color:var(--forest);
  font-size:27px;
  margin:36px 0 13px;
  letter-spacing:-.04em;
}
.service-grid p {
  font-size:14px;
  margin:0;
  max-width:220px;
}

.trust {
  max-width:none;
  padding:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  background:var(--forest);
  color:#f8f3e6;
  border-bottom:1px solid var(--line);
}
.trust-image {
  border-right:1px solid rgba(255,255,255,.24);
}
.trust-image img {
  height:100%;
  min-height:610px;
  object-position:center top;
}
.trust-copy {
  align-self:center;
  max-width:570px;
  padding:90px clamp(45px,8vw,142px);
}
.trust-copy h2 {
  color:white;
}
.trust-copy .eyebrow {
  color:#d7dcbf;
}
.trust-copy p:not(.eyebrow) {
  margin:30px 0;
  max-width:410px;
}

.gallery {
  border-bottom:1px solid var(--line);
}
.gallery-grid {
  display:grid;
  grid-template-columns:1.05fr .95fr .95fr;
  gap:18px;
  height:400px;
}
.gallery-grid img {
  height:100%;
}
.gallery-grid img:nth-child(2) {
  object-position:center top;
}

footer {
  max-width:1220px;
  margin:auto;
  padding:25px 48px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:#627067;
  font-size:11px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
footer a {
  margin-left:22px;
  text-decoration:none;
}
footer a:hover {
  text-decoration:underline;
}

.contact-cta {
  background:var(--sand);
  border-bottom:1px solid var(--line);
  padding:105px max(48px, calc((100% - 1124px)/2));
}
.contact-cta > div {
  max-width:none;
}
.contact-cta h2 {
  margin-bottom:20px;
}
.contact-cta p:not(.eyebrow) {
  max-width:none;
  margin:0 0 30px;
}
.contact-page {
  max-width:1120px;
  margin:auto;
  padding:110px 48px 130px;
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:clamp(48px, 9vw, 150px);
}
.contact-form-intro h2 {
  margin-bottom:25px;
}
.contact-form-intro > p:not(.eyebrow) {
  margin:0 0 35px;
}
.contact-details {
  padding-top:26px;
  border-top:1px solid var(--line);
  line-height:1.8;
}
.form-panel {
  --form-panel-padding-y:clamp(28px, 5vw, 55px);
  --form-panel-padding-x:clamp(28px, 5vw, 55px);
  position:relative;
  background:var(--white);
  padding:var(--form-panel-padding-y) var(--form-panel-padding-x);
  border:1px solid var(--line);
}
.contact-form-content {
  transition:opacity .32s ease, transform .32s ease;
}
.contact-form-content.is-leaving {
  opacity:0;
  transform:translateY(-8px);
  pointer-events:none;
}
.contact-form-content.is-finished {
  visibility:hidden;
  opacity:0;
}
.contact-success {
  position:absolute;
  top:var(--form-panel-padding-y);
  right:var(--form-panel-padding-x);
  left:var(--form-panel-padding-x);
  color:var(--ink);
  font-size:16px;
  line-height:1.65;
  opacity:0;
  transform:translateY(10px);
  transition:opacity .48s ease, transform .48s ease;
}
.contact-success.is-visible {
  opacity:1;
  transform:translateY(0);
}
.contact-success:focus {
  outline:none;
}
@media (prefers-reduced-motion:reduce) {
  .contact-form-content, .contact-success {
    transition:none;
  }
}
.contact-form {
  display:grid;
  gap:22px;
}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.contact-form label {
  display:block;
  margin-bottom:7px;
  color:var(--forest);
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:bold;
}
.contact-form input:not([type="checkbox"]), .contact-form textarea {
  width:100%;
  border:1px solid #c7c6b9;
  background:#fffef8;
  color:var(--ink);
  padding:13px 14px;
  border-radius:0;
  font:16px var(--sans);
  line-height:1.45;
}
.contact-form textarea {
  resize:vertical;
  min-height:155px;
}
.contact-form input:focus, .contact-form textarea:focus {
  outline:2px solid #a5b494;
  outline-offset:2px;
  border-color:var(--pine);
}
.form-honeypot {
  position:absolute !important;
  clip:rect(0, 0, 0, 0);
  clip-path:inset(50%);
  width:1px;
  height:1px;
  overflow:hidden;
  white-space:nowrap;
}
.privacy-check {
  display:flex !important;
  gap:11px;
  align-items:flex-start;
  margin:4px 0 3px;
  color:var(--ink) !important;
  font-size:12px !important;
  line-height:1.55;
  letter-spacing:0 !important;
  text-transform:none !important;
  font-weight:normal !important;
}
.privacy-check input {
  width:17px;
  height:17px;
  flex:0 0 17px;
  accent-color:var(--forest);
  margin-top:1px;
}
.privacy-check a {
  color:var(--forest);
}
.privacy-check b {
  color:#9b3838;
}

.form-message {
  margin:0 0 25px;
  padding:14px 16px;
  font-size:14px;
  border-left:4px solid;
}
.form-message.is-success {
  color:#2e673b;
  background:#e4f0e0;
  border-color:#4d8a56;
}
.form-message.is-error {
  color:#793934;
  background:#f7e8e5;
  border-color:#b65750;
}

.page-hero {
  background:var(--hero);
  border-bottom:1px solid var(--line);
}
.page-hero-inner {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  max-width:1440px;
  min-height:470px;
  margin:auto;
}
.page-hero-copy {
  align-self:center;
  padding:82px clamp(36px,9vw,160px);
}
.page-hero-copy h1 {
  max-width:580px;
}
.page-hero-copy .intro {
  max-width:510px;
}
.page-hero-image {
  border-left:1px solid var(--line);
  min-height:470px;
}
.page-hero-image img {
  height:100%;
  object-position:center;
}
.page-content {
  max-width:1130px;
  margin:auto;
  padding:105px 48px 130px;
}
.content-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(45px,9vw,140px);
  align-items:start;
}
.content-grid h2 {
  margin-bottom:26px;
}
.content-grid p {
  margin:0 0 22px;
}
.note-card {
  border:1px solid var(--line);
  padding:30px;
  background:var(--white);
}
.note-card h3 {
  margin:0 0 14px;
  color:var(--forest);
  font-size:24px;
}
.note-card p {
  margin:0;
  font-size:14px;
}

.child-gallery {
  background:var(--sage);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.child-gallery-inner {
  max-width:1130px;
  margin:auto;
  padding:100px 48px;
}
.child-gallery-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:48px;
}
.child-gallery-grid img {
  height:180px;
}
.child-gallery-grid img:nth-child(2n) {
  object-position:center 38%;
}
.child-gallery-grid img:nth-child(3n) {
  object-position:center 60%;
}
@media (max-width:900px) {
  .nav-wrap {
    padding:0 24px;
    gap:17px;
    min-height:72px;
  }
  .brand {
    min-width:auto;
  }

  .menu-toggle {
    display:block;
    margin-left:auto;
    background:none;
    border:0;
    color:var(--forest);
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .menu-toggle span,.menu-toggle span:before,.menu-toggle span:after {
    display:block;
    content:'';
    width:20px;
    height:1px;
    background:currentColor;
    margin-left:8px;
    position:relative;
  }
  .menu-toggle span:before {
    position:absolute;
    top:-6px;
    margin:0;
  }
  .menu-toggle span:after {
    position:absolute;
    top:6px;
    margin:0;
  }
  .menu-toggle span {
    transition:background-color .18s ease;
  }
  .menu-toggle span:before, .menu-toggle span:after {
    transition:transform .28s ease;
  }
  .menu-toggle[aria-expanded="true"] span {
    background:transparent;
  }
  .menu-toggle[aria-expanded="true"] span:before {
    transform:translateY(6px) rotate(45deg);
  }
  .menu-toggle[aria-expanded="true"] span:after {
    transform:translateY(-6px) rotate(-45deg);
  }
  .main-nav {
    display:flex;
    flex-direction:column;
    gap:17px;
    position:absolute;
    top:calc(100% - 1px);
    left:auto;
    right:0;
    width:min(250px, calc(100vw - 24px));
    padding:22px 20px;
    background:var(--cream);
    border-top:1px solid var(--line);
    border-left:1px solid var(--line);
    border-bottom:1px solid var(--line);
    max-height:calc(100dvh - 72px);
    overflow-y:auto;
    visibility:hidden;
    pointer-events:none;
    opacity:0;
    clip-path:inset(0 0 100% 0);
    transform:translateY(-12px);
    transition:clip-path .3s cubic-bezier(.22,.61,.36,1), transform .3s ease, opacity .2s ease, visibility 0s .3s;
  }
  .main-nav.is-open {
    visibility:visible;
    pointer-events:auto;
    opacity:1;
    clip-path:inset(0);
    transform:translateY(0);
    transition-delay:0s;
  }
  .hero {
    grid-template-columns:1fr;
  }
  .hero-copy {
    padding:85px 35px 65px;
  }
  .hero-photo {
    min-height:470px;
    border-left:0;
    border-top:1px solid var(--line);
  }
  .section {
    padding:90px 35px;
  }
  .welcome,.welcome-content {
    grid-template-columns:1fr;
    gap:26px;
  }
  .section-heading {
    display:block;
  }
  .section-heading > p {
    margin-top:18px;
  }
  .service-grid {
    grid-template-columns:1fr 1fr;
  }
  .service-grid article:nth-child(2) {
    border-right:0;
  }
  .service-grid article:nth-child(n+3) {
    border-top:1px solid var(--line);
  }

  .trust {
    grid-template-columns:1fr;
  }
  .trust-image {
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.24);
  }
  .trust-image img {
    min-height:410px;
    max-height:540px;
  }
  .trust-copy {
    max-width:none;
    padding:80px 35px;
  }
  .gallery-grid {
    height:280px;
    gap:10px;
  }

  footer {
    padding:22px 35px;
    flex-direction:column;
  }
  footer a {
    margin-left:0;
    margin-right:20px;
  }
}
@media (max-width:900px) {
  .contact-cta {
    padding:80px 35px;
  }
  .contact-page {
    grid-template-columns:1fr;
    padding:80px 35px;
    gap:50px;
  }
}
@media (max-width:900px) {
  .page-hero-inner,.content-grid {
    grid-template-columns:1fr;
  }
  .page-hero-copy {
    padding:78px 35px 62px;
  }
  .page-hero-image {
    border-left:0;
    border-top:1px solid var(--line);
    min-height:400px;
  }
  .page-content {
    padding:80px 35px;
  }

  .child-gallery-inner {
    padding:80px 35px;
  }
  .child-gallery-grid {
    grid-template-columns:repeat(2,1fr);
  }
  .child-gallery-grid img {
    height:170px;
  }
}
@media (max-width:520px) {
  .brand small {
    font-size:9px;
  }
  .brand strong {
    font-size:15px;
  }
  .hero-copy {
    padding:54px 24px 42px;
  }
  .hero-photo {
    min-height:380px;
  }
  .hero-photo p {
    font-size:15px;
    padding:15px 18px;
  }
  .section,.trust-copy {
    padding:52px 24px;
  }
  .services {
    padding-left:24px;
    padding-right:24px;
  }
  .service-grid {
    grid-template-columns:1fr;
  }
  .service-grid article,.service-grid article+article {
    border-right:0;
    padding:22px 0;
    border-top:1px solid var(--line);
    min-height:0;
  }
  .service-grid article:first-child {
    border-top:0;
  }
  .service-grid article h3 {
    margin:16px 0 8px;
  }
  .gallery-grid {
    grid-template-columns:1fr 1fr;
    height:auto;
  }
  .gallery-grid img {
    height:210px;
  }

  footer {
    padding:22px 24px;
  }
  .nav-wrap {
    padding:0 18px;
  }
}
@media (max-width:520px) {
  .contact-cta {
    padding:52px 24px;
  }
  .contact-page {
    padding:52px 24px;
  }
  .form-panel {
    --form-panel-padding-y:25px;
    --form-panel-padding-x:19px;
  }
  .form-row {
    grid-template-columns:1fr;
    gap:22px;
  }
}
@media (max-width:520px) {
  .page-hero-copy,.page-content {
    padding-left:24px;
    padding-right:24px;
  }
  .page-content {
    padding-block:52px;
  }
  .page-hero-image {
    min-height:320px;
  }

  .child-gallery-inner {
    padding:52px 24px;
  }
  .child-gallery-grid {
    grid-template-columns:1fr 1fr;
    gap:9px;
    margin-top:32px;
  }
  .child-gallery-grid img {
    height:145px;
  }
}

:root {
  --space-sm: 16px;
  --space-md: 24px;
  --space-lg: 48px;
}
:where(a,button,summary):focus-visible {
  outline:3px solid var(--forest);
  outline-offset:5px;
}
:where(section,[id]) {
  scroll-margin-top:115px;
}
button {
  font-family:var(--sans);
  cursor:pointer;
}
button:disabled {
  cursor:wait;
  opacity:.65;
}
.reveal {
  transition:opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1);
}
.reveal-pending {
  opacity:0;
  transform:translateY(30px);
}

.service-grid article {
  display:flex;
  flex-direction:column;
}
.service-link {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-top:1px solid var(--line);
  margin-top:auto;
  padding-top:18px;
  color:var(--forest);
  text-decoration:none;
  font-size:12px;
}
.service-grid article > p {
  margin-bottom:26px;
}
.service-link:hover {
  text-decoration:underline;
  text-underline-offset:4px;
}

summary {
  cursor:pointer;
  color:var(--forest);
  font-size:19px;
}

details[open] > summary {
  margin-bottom:12px;
}
.note-card summary {
  font-size:25px;
  line-height:1.3;
}

.gallery-trigger {
  position:relative;
  padding:0;
  border:0;
  background:var(--sage);
  overflow:hidden;
  min-width:0;
  height:100%;
  cursor:zoom-in;
}
.gallery-trigger img {
  height:100%;
  transition:transform .5s ease;
}
.gallery-trigger:hover img {
  transform:scale(1.035);
}
.child-page .page-hero-image {
  position:relative;
}
.child-page .page-hero-image .gallery-trigger {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
}
.gallery-caption {
  position:absolute;
  z-index:1;
  left:8px;
  bottom:8px;
  max-width:calc(100% - 16px);
  padding:6px 9px;
  background:rgba(233,223,201,.86);
  color:var(--forest);
  font-size:13px;
  font-weight:600;
  line-height:1.3;
  text-align:left;
  pointer-events:none;
  opacity:0;
  transform:translateY(4px);
  transition:opacity .15s ease-out, transform .15s ease-out;
}
.gallery-caption.is-visible {
  opacity:1;
  transform:none;
  transition-duration:.65s;
  transition-timing-function:ease-in-out, cubic-bezier(.22,.61,.36,1);
}
.gallery-caption[hidden] {
  display:none;
}
.image-dialog {
  width:min(1440px,94vw);
  height:92dvh;
  max-height:94dvh;
  padding:20px;
  border:1px solid var(--line);
  background:var(--cream);
  color:var(--ink);
}
.image-dialog[open] {
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
}
.image-dialog::backdrop {
  background:rgba(30,40,25,.8);
}
.dialog-image {
  position:relative;
  min-height:0;
  overflow:hidden;
  background:var(--sage);
}
.dialog-image > img {
  width:100%;
  height:100%;
  min-height:0;
  max-height:none;
  object-fit:contain;
}
.dialog-toolbar {
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:16px;
}
.dialog-toolbar p {
  margin:0 auto 0 0;
}
.dialog-toolbar button {
  padding:10px 14px;
  background:var(--cream);
  border:1px solid var(--line);
  color:var(--forest);
}

.dialog-open {
  overflow:hidden;
}
.topic-picker {
  margin-bottom:28px;
}
.topic-picker p {
  margin-top:0;
}
.topic-picker button {
  border:1px solid var(--line);
  color:var(--forest);
  background:var(--cream);
  padding:10px 14px;
  margin:0 6px 8px 0;
}
.topic-picker button:hover {
  background:var(--sage);
}
.field-error {
  font-size:13px;
  color:#793934;
  margin:8px 0 0;
}
[aria-invalid="true"] {
  border-color:#b65750 !important;
}
.form-help,.message-count {
  font-size:12px;
}
.message-count {
  display:block;
  text-align:right;
}
.contact-form .button {
  border:0;
}
.page-hero-copy,.hero-copy,.trust-copy {
  min-width:0;
}

@media(max-width:520px) {

  .image-dialog {
    padding:12px;
  }
  .dialog-toolbar {
    gap:6px;
  }
  .dialog-toolbar button {
    padding:9px;
  }
  .gallery-grid .gallery-trigger {
    min-height:240px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none !important;
    transition:none !important;
  }
  .reveal-pending {
    opacity:1;
    transform:none;
  }
}
@media(max-width:900px) {
  .menu-toggle {
    display:flex;
    align-items:center;
    gap:5px;
    min-height:44px;
  }
}
@media(max-width:520px) {
  .gallery-grid {
    grid-template-columns:1fr;
  }
  .gallery-grid .gallery-trigger img {
    height:260px;
  }
  footer {
    flex-wrap:wrap;
  }
}

.hero {
  max-width:none;
  padding-inline:max(0px, calc((100% - 1440px)/2));
}
.trust.section {
  padding:0;
  grid-template-columns:minmax(0, .8fr) minmax(0, 1.2fr);
}
.trust-image {
  position:relative;
  min-height:380px;
}
.trust-image img {
  position:absolute;
  inset:0;
  height:100%;
  min-height:0;
  max-height:none;
  object-position:center 72%;
}
.trust-copy {
  width:100%;
  max-width:760px;
  padding:48px clamp(35px, 5vw, 80px);
}
.trust-copy h2 {
  font-size:clamp(32px, 3vw, 44px);
}
.trust-copy p:not(.eyebrow) {
  max-width:540px;
  margin:24px 0 0;
}
.practice-gallery {
  grid-template-columns:repeat(2, minmax(0, 1fr));
  height:auto;
  gap:var(--space-md);
}
.practice-gallery > img, .practice-gallery .gallery-trigger {
  height:320px;
  min-height:0;
}
.practice-gallery .gallery-trigger img {
  height:100%;
}
@media(max-width:900px) {
  .trust.section {
    grid-template-columns:minmax(0, .8fr) minmax(0, 1.2fr);
  }
  .trust-copy {
    padding:35px;
  }
  .practice-gallery > img, .practice-gallery .gallery-trigger {
    height:240px;
  }
}
@media(max-width:520px) {
  .trust.section {
    grid-template-columns:1fr;
  }
  .trust-image {
    min-height:260px;
  }
  .trust-copy {
    padding:35px 24px;
  }
  .practice-gallery {
    grid-template-columns:1fr;
    gap:var(--space-sm);
  }
}

.practice-slider {
  padding-block:64px;
}
.practice-slider .section-heading {
  margin-bottom:28px;
}
.practice-gallery.is-slider {
  --slider-gap:24px;
  display:block;
  height:320px;
  overflow:hidden;
}
.slider-track {
  display:flex;
  gap:var(--slider-gap);
  height:100%;
}
.practice-gallery.is-slider .slider-track > * {
  flex:0 0 calc((100% - var(--slider-gap))/2);
  min-width:0;
  width:calc((100% - var(--slider-gap))/2);
  height:100%;
}
.practice-gallery.is-slider .gallery-trigger:focus-visible {
  outline-offset:-4px;
}
.practice-gallery.is-slider img {
  object-fit:contain;
  background:var(--sage);
}
.practice-gallery.is-slider > [hidden] {
  display:none;
}
.slider-controls:not([hidden]) {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin-top:16px;
}
.slider-controls button {
  min-width:44px;
  min-height:44px;
  padding:8px 16px;
  border:1px solid var(--line);
  background:var(--cream);
  color:var(--forest);
  font-size:14px;
}
.slider-controls button:hover {
  background:var(--sage);
}

@media(max-width:520px) {
  .practice-slider {
    padding-block:40px;
  }
  .practice-gallery.is-slider {
    --slider-gap:10px;
    height:220px;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .practice-gallery.is-slider::-webkit-scrollbar {
    display:none;
  }
  .practice-gallery.is-slider .slider-track > * {
    flex:0 0 82%;
    width:82%;
    scroll-snap-align:start;
    min-height:0;
  }
  .practice-slider .slider-controls {
    display:none;
  }
}

@media(max-width:520px), (orientation:landscape) and (max-width:1100px) and (hover:none) and (pointer:coarse) {
  .image-dialog .dialog-toolbar [data-prev], .image-dialog .dialog-toolbar [data-next] {
    display:none;
  }
  .image-dialog .dialog-image > img {
    touch-action:pan-y;
  }
}

.team-hero .page-hero-inner, .contact-hero .page-hero-inner {
  max-width:1220px;
  min-height:0;
  grid-template-columns:1.1fr .9fr;
}
.team-hero .page-hero-copy, .contact-hero .page-hero-copy {
  padding:16px 48px;
}
.team-hero .page-hero-copy .intro, .contact-hero .page-hero-copy .intro {
  margin-block:16px;
}
.team-hero .page-hero-copy > p:last-child, .contact-hero .page-hero-copy > p:last-child {
  margin-bottom:0;
}
.team-hero .gallery-trigger {
  display:block;
  width:100%;
  height:auto;
}
.team-hero .page-hero-image, .contact-hero .page-hero-image {
  min-height:0;
  align-self:center;
}
.team-hero .page-hero-image img, .contact-hero .page-hero-image img {
  height:auto;
  object-fit:contain;
}
.team-profiles {
  padding-block:72px;
}
.contact-page {
  padding-top:72px;
}
.team-profile + .team-profile {
  margin-top:56px;
}
.team-profile h2 {
  font-size:clamp(32px, 3.5vw, 46px);
}
.team-summary {
  max-width:780px;
  margin:22px 0 28px;
}
.team-career {
  border-block:1px solid var(--line);
  overflow:hidden;
}
.team-career summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:22px 4px;
  list-style:none;
  font-size:18px;
}
.team-career summary::-webkit-details-marker {
  display:none;
}
.team-career[open] > summary {
  margin-bottom:0;
}
.team-career summary:focus-visible {
  outline-offset:-3px;
}
.career-content::after {
  content:'';
  display:block;
  clear:both;
}
.career-photo {
  float:right;
  width:clamp(220px, 28%, 300px);
  height:auto;
  margin:20px 4px 24px 32px;
  border:1px solid var(--line);
}
.career-timeline {
  margin:0;
  padding-bottom:24px;
}
.career-timeline > div {
  display:grid;
  grid-template-columns:180px minmax(0, 1fr);
  gap:28px;
  padding:20px 4px;
  border-top:1px solid var(--line);
}
.career-timeline dt {
  color:var(--forest);
  font-weight:600;
}
.career-timeline dd {
  margin:0;
}
@media(min-width:901px) and (max-width:1250px) {
  .nav-wrap {
    flex-wrap:wrap;
    justify-content:center;
    gap:16px;
    padding-block:16px;
  }
  .main-nav {
    width:100%;
    justify-content:center;
    margin-left:0;
  }
}
@media(max-width:900px) {
  .team-hero .page-hero-inner, .contact-hero .page-hero-inner {
    grid-template-columns:1fr;
  }
  .team-hero .page-hero-copy, .contact-hero .page-hero-copy {
    padding:64px 35px 40px;
  }
  .team-hero .page-hero-image, .contact-hero .page-hero-image {
    width:min(100%, 540px);
    justify-self:center;
    border:0;
  }
  .career-photo {
    float:none;
    display:block;
    width:min(100%, 420px);
    margin:20px auto 24px;
  }
}
@media(max-width:520px) {
  .team-hero .page-hero-copy, .contact-hero .page-hero-copy {
    padding:40px 24px 28px;
  }
  .team-profiles {
    padding-block:40px;
  }
  .contact-page {
    padding-top:40px;
  }
  .career-timeline > div {
    grid-template-columns:1fr;
    gap:8px;
  }
}

.service-tabs > article {
  padding:28px 0;
  border-top:1px solid var(--line);
}
.service-tabs h3 {
  margin:0 0 16px;
  font-size:clamp(30px, 3vw, 40px);
}
.service-tabs article > span {
  display:block;
  color:var(--pine);
  font-size:12px;
  margin-bottom:12px;
}
.service-tabs article > p {
  font-size:16px;
  max-width:500px;
  margin:0 0 20px;
}
.service-tabs .service-details {
  font-size:16px;
  max-width:500px;
  margin:0 0 20px;
  padding-left:22px;
}
.service-tabs .service-details li + li {
  margin-top:6px;
}
.service-tabs .service-link {
  max-width:500px;
  font-size:14px;
  padding-top:12px;
}
.service-tabs .service-info-button {
  align-self:flex-start;
  margin-bottom:20px;
  transform:none;
  transition:background .2s ease, opacity 90ms ease-out;
}
.service-tabs .service-info-button:hover {
  transform:none;
}
.service-tabcontent > article.is-leaving .service-info-button {
  opacity:0;
  pointer-events:none;
  visibility:hidden;
  transition:none;
}
.service-tabs.is-tabbed {
  display:grid;
  grid-template-columns:minmax(0, .95fr) minmax(0, 1.35fr);
}
.service-tablist {
  display:flex;
  flex-direction:column;
}
.service-tablist button {
  position:relative;
  display:flex;
  align-items:center;
  gap:16px;
  flex:1;
  padding:16px 22px;
  border:1px solid var(--line);
  border-right:0;
  background:transparent;
  color:var(--forest);
  text-align:left;
  font-size:clamp(25px, 2.5vw, 34px);
  line-height:1.2;
  letter-spacing:-.04em;
  transition:background .12s ease;
}
.service-tablist button + button {
  border-top:0;
}
.service-tablist button > span {
  font-size:11px;
  letter-spacing:.1em;
  color:var(--pine);
}
.service-tablist button:hover {
  background:var(--hero);
}
.service-tablist button[aria-selected="true"] {
  background:var(--hero);
  box-shadow:inset 4px 0 var(--forest);
}
.service-tablist button[aria-selected="true"]::after {
  content:'';
  position:absolute;
  right:-1px;
  top:0;
  bottom:0;
  width:2px;
  background:var(--hero);
  z-index:1;
}
.service-tablist button:focus-visible {
  outline-offset:-6px;
  z-index:2;
}
.service-tabcontent {
  min-width:0;
  background:var(--hero);
  border:1px solid var(--line);
  padding:clamp(22px, 2.5vw, 32px);
  display:grid;
  align-items:stretch;
}

.service-tabcontent > article {
  grid-area:1 / 1;
  min-width:0;
  display:flex;
  flex-direction:column;
}
.service-tabcontent > article[hidden] {
  display:flex;
  visibility:hidden;
  pointer-events:none;
}
.service-tabcontent article:focus-visible {
  outline:2px solid var(--forest);
  outline-offset:8px;
}
@media(max-width:650px) {
  .service-tabs.is-tabbed {
    grid-template-columns:1fr;
  }
  .service-tablist button {
    padding:13px 18px;
    border-right:1px solid var(--line);
    font-size:27px;
  }
  .service-tablist button[aria-selected="true"]::after {
    display:none;
  }
  .service-tabcontent {
    border-top:0;
    padding:20px;
  }
}

.osteopathy-page .page-hero-inner {
  min-height:350px;
}
.osteopathy-page .page-hero-copy {
  padding:48px clamp(35px, 6vw, 90px);
}
.osteopathy-page .page-hero-image {
  position:relative;
  min-height:350px;
}
.osteopathy-page .page-hero-image img {
  position:absolute;
  inset:0;
  height:100%;
  object-position:center 35%;
}
.treatment-page .page-hero-image .gallery-trigger {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
}
.osteopathy-page .page-content, .osteopathy-page .section {
  padding-top:60px;
  padding-bottom:60px;
}
.osteopathy-page .contact-cta {
  padding-top:60px;
  padding-bottom:60px;
}

.osteopathy-images {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
  max-width:1130px;
  margin:0 auto 60px;
  padding:0 48px;
}
.osteopathy-images img {
  height:300px;
  object-position:center;
}
.treatment-page .osteopathy-images .gallery-trigger {
  display:block;
  width:100%;
  height:300px;
}
.osteopathy-page .section-heading {
  margin-bottom:32px;
}
.osteopathy-page .service-grid h3 {
  font-size:clamp(29px, 2.6vw, 35px);
  margin-top:24px;
}
.osteopathy-page .service-grid p {
  font-size:17px;
  max-width:none;
}
.osteopathy-page .service-grid article {
  padding-top:24px;
  padding-bottom:8px;
}
.osteopathy-page .note-card p {
  font-size:16px;
}
@media(max-width:900px) {
  .osteopathy-images {
    padding-inline:35px;
    gap:12px;
  }
  .osteopathy-images img, .treatment-page .osteopathy-images .gallery-trigger {
    height:240px;
  }
}
@media(max-width:520px) {
  .osteopathy-page .page-hero-copy {
    padding:32px 24px;
  }
  .osteopathy-page .page-hero-image {
    min-height:280px;
  }
  .osteopathy-page .page-content, .osteopathy-page .section, .osteopathy-page .contact-cta {
    padding-top:32px;
    padding-bottom:32px;
  }
  .osteopathy-images {
    grid-template-columns:1fr;
    padding-inline:24px;
    margin-bottom:32px;
  }
  .osteopathy-images img, .treatment-page .osteopathy-images .gallery-trigger {
    height:260px;
  }
}

.practice-slider {

  overflow-anchor:none;
}
.home-page {
  --home-section-space:60px;
  --home-gutter:48px;
  --home-content-width:var(--site-content-width);
}
.home-page .welcome, .home-page .services, .home-page .practice-slider, .home-page .contact-cta {
  max-width:none;
  padding-block:var(--home-section-space);
  padding-inline:max(var(--home-gutter), calc((100% - var(--home-content-width))/2));
}
.home-page .contact-cta {
  background:var(--sage);
}
.home-page .section-heading {
  margin-bottom:32px;
}
.home-page .welcome {
  grid-template-columns:minmax(0, 1fr);
  gap:26px;
}
.home-page .trust-copy {
  padding-block:var(--home-section-space);
  padding-inline:var(--home-gutter);
}
.home-page .trust.section {
  padding-inline:max(var(--home-gutter), calc((100% - var(--home-content-width))/2));
}
.home-page .trust-copy {
  max-width:none;
  padding-right:0;
}

@media(min-width:1441px) {
  .home-page .hero-copy {
    padding-left:0;
  }
  .home-page .welcome, .home-page .services, .home-page .practice-slider, .home-page .contact-cta, .home-page .trust.section {
    padding-inline:calc((100% - var(--home-content-width))/2);
  }
}
@media(max-width:900px) {
  .home-page {
    --home-section-space:48px;
    --home-gutter:35px;
  }
}
@media(max-width:520px) {
  .home-page {
    --home-section-space:32px;
    --home-gutter:24px;
  }
  .home-page .trust-copy {
    padding-left:0;
  }
}

.nav-dropdown {
  position:relative;
}
.submenu-toggle {
  cursor:default;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0;
  border:0;
  background:none;
  color:var(--ink);
  font:inherit;
  font-size:13px;
  line-height:1.65;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.submenu-toggle.active, .submenu-toggle:hover {
  color:var(--warm);
}

.main-nav > a, .main-nav > .nav-dropdown > .submenu-toggle {
  position:relative;
  isolation:isolate;
  transition:color .25s ease;
}
.main-nav > a::before, .main-nav > .nav-dropdown > .submenu-toggle::before {
  content:'';
  position:absolute;
  inset:-9px -10px;
  z-index:-1;
  border-radius:4px;
  background:var(--sage);
  opacity:0;
  transition:opacity .25s ease;
  pointer-events:none;
}
@media(min-width:901px) {
  .main-nav > a::before, .main-nav > .nav-dropdown > .submenu-toggle::before {
    border-radius:0;
    border:1px solid var(--line);
  }
}
.main-nav > a:hover::before, .main-nav > a:focus-visible::before, .nav-dropdown:hover > .submenu-toggle::before, .submenu-toggle:focus-visible::before, .nav-dropdown.is-open > .submenu-toggle::before {
  opacity:1;
}
.main-nav .nav-submenu a {
  transition:background-color .25s ease, color .25s ease;
}
@media(prefers-reduced-motion:reduce) {
  .main-nav > a, .main-nav > .nav-dropdown > .submenu-toggle, .main-nav > a::before, .main-nav > .nav-dropdown > .submenu-toggle::before, .main-nav .nav-submenu a {
    transition:none;
  }
}
.nav-submenu {
  position:absolute;
  top:100%;
  left:-20px;
  z-index:8;
  min-width:260px;
  padding:14px 0;
  border:1px solid var(--line);
  background:var(--cream);
  box-shadow:0 12px 24px rgba(63,80,54,.1);
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s;
}
.main-nav .nav-submenu a {
  display:block;
  padding:12px 20px;
  white-space:nowrap;
}
.nav-submenu a:hover {
  background:var(--sage);
}
.nav-dropdown.is-open .nav-submenu {
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
html:not(.has-js) .nav-dropdown:hover .nav-submenu, html:not(.has-js) .nav-dropdown:focus-within .nav-submenu {
  opacity:1;
  visibility:visible;
  transform:none;
}
@media(max-width:900px) {
  .main-nav {
    text-align:right;
  }
  .nav-dropdown {
    display:grid;
    grid-template-rows:auto 0fr;
    transition:grid-template-rows .25s ease;
  }
  .submenu-toggle {
    min-height:44px;
    justify-self:end;
  }
  .nav-submenu {
    position:static;
    min-width:0;
    min-height:0;
    overflow:hidden;
    padding:0;
    border:0;
    background:var(--sage);
    box-shadow:none;
  }
  .nav-dropdown.is-open {
    grid-template-rows:auto 1fr;
    background:var(--sage);
    border-radius:0;
  }
  .nav-dropdown.is-open > .submenu-toggle {
    justify-self:stretch;
    justify-content:flex-end;
    padding-right:14px;
  }
  .nav-dropdown.is-open > .submenu-toggle::before {
    opacity:0;
  }
  .nav-dropdown.is-open > .submenu-toggle::after {
    content:'';
    position:absolute;
    right:14px;
    bottom:0;
    width:64px;
    border-bottom:1px solid var(--line);
  }
  .main-nav .nav-submenu a {
    padding:12px 14px 12px 0;
    text-align:right;
    white-space:normal;
  }
  html:not(.has-js) .nav-dropdown {
    grid-template-rows:auto 1fr;
  }
  html:not(.has-js) .nav-submenu {
    visibility:visible;
    opacity:1;
    transform:none;
  }
}

.child-page {
  --child-space:60px;
  --child-gutter:48px;
}
.child-page .page-content, .child-page .child-gallery-inner, .child-page .contact-cta, .child-page .page-hero-copy, .child-page .trust-copy {
  padding:var(--child-space) var(--child-gutter);
}
.child-page .page-content, .child-page .child-gallery-inner {
  max-width:1130px;
  margin-inline:auto;
}
.child-page .page-hero-inner {
  max-width:1130px;
}
.child-page .contact-cta, .child-page .trust {
  padding-inline:max(var(--child-gutter), calc((100% - 1034px)/2));
}
.child-page .trust-copy {
  padding-right:0;
}
@media(max-width:900px) {
  .child-page {
    --child-gutter:35px;
  }
  .child-page .trust-copy {
    padding-inline:0;
  }
}
@media(max-width:520px) {
  .child-page {
    --child-space:32px;
    --child-gutter:24px;
  }
}

.knowledge-hero h1 {
  margin-bottom:40px;
}
.knowledge-hero .content-grid h2 {
  font-size:28px;
  margin:0 0 20px;
}
.knowledge-hero .content-grid p:last-child {
  margin-bottom:0;
}
.knowledge-detail {
  border-block:1px solid var(--line);
  overflow:hidden;
}
html.accordion-scrolling {
  scroll-behavior:auto;
  overflow-anchor:none;
}
.knowledge-detail + .knowledge-detail {
  border-top:0;
}
.knowledge-detail summary {
  display:flex;
  align-items:center;
  gap:24px;
  padding:26px 12px;
  list-style:none;
  font-size:clamp(23px, 2.5vw, 30px);
  line-height:1.3;
  transition:color .25s ease, background .25s ease;
}
.knowledge-detail summary::-webkit-details-marker {
  display:none;
}
.knowledge-detail summary:hover {
  background:var(--sage);
}
.knowledge-detail summary:focus-visible {
  outline-offset:-4px;
}
.knowledge-detail[open] > summary {
  margin-bottom:0;
}
.knowledge-number {
  font-size:12px;
  letter-spacing:.1em;
  color:var(--warm);
}
.knowledge-icon {
  margin-left:auto;
  font-size:30px;
  font-weight:300;
  transition:transform .42s ease;
}
.knowledge-detail[open] .knowledge-icon, .team-career[open] .knowledge-icon {
  transform:rotate(45deg);
}
.knowledge-content {
  display:flow-root;
  width:100%;
  max-width:none;
  padding:16px 12px 28px;
}
.knowledge-image {
  float:right;
  width:50%;
  height:auto;
  margin:0 0 20px 24px;
  border-radius:5px;
}
.knowledge-content p {
  margin:0 0 22px;
  line-height:1.8;
}
.knowledge-content p:last-child {
  margin-bottom:0;
}
@media(max-width:520px) {
  .knowledge-detail summary {
    gap:14px;
    padding:22px 4px;
  }
  .knowledge-content {
    padding:16px 4px 24px;
  }
  .knowledge-image {
    margin-left:16px;
    margin-bottom:16px;
  }
}
html:not(.has-js) .topic-picker {
  display:none;
}
@media(max-width:900px) {
  html:not(.has-js) .menu-toggle {
    display:none;
  }
  html:not(.has-js) .nav-wrap {
    flex-wrap:wrap;
    padding-top:14px;
    padding-bottom:14px;
  }
  html:not(.has-js) .main-nav {
    display:flex;
    position:static;
    flex-wrap:wrap;
    width:100%;
    padding:0;
    border-left:0;
    border:0;
    margin-left:0;
    gap:15px;
    visibility:visible;
    pointer-events:auto;
    opacity:1;
    clip-path:none;
    transform:none;
    max-height:none;
  }
}
@media(prefers-reduced-motion:reduce) {
  .main-nav, .menu-toggle span, .menu-toggle span:before, .menu-toggle span:after {
    transition:none;
  }
}

:root {
  --site-content-width:1440px;
  --site-gutter:48px;
  --site-inset:var(--site-gutter);
}
@media(min-width:1441px) {
  :root {
    --site-inset:calc((100% - var(--site-content-width))/2);
  }
}

body.layout-page .page-content, body.layout-page .section, body.layout-page .child-gallery-inner, body.layout-page .osteopathy-images, body.layout-page .contact-page, body.layout-page .contact-cta, body.layout-page .trust {
  max-width:none;
  padding-inline:var(--site-inset);
}
body.layout-page .page-hero-inner {
  max-width:none;
  padding-inline:var(--site-inset);
}
body.layout-page .page-hero-copy {
  padding-left:0;
  padding-right:var(--site-gutter);
}
@media(max-width:900px) {
  :root {
    --site-gutter:35px;
  }
  body.layout-page .page-hero-copy {
    padding-right:0;
  }
  body.layout-page .team-hero .page-hero-image, body.layout-page .contact-hero .page-hero-image {
    width:100%;
  }
}
@media(max-width:520px) {
  :root {
    --site-gutter:24px;
  }
}

.site-header .nav-wrap {
  max-width:none;
  padding-inline:var(--site-inset);
}
.main-nav a, .main-nav .submenu-toggle {
  font-size:14px;
  font-weight:600;
}
@media(min-width:1251px) {
  .site-header .main-nav {
    margin-right:clamp(32px, 6vw, 160px);
  }
}
@media(min-width:901px) and (max-width:1250px) {
  .site-header .nav-wrap {
    justify-content:flex-start;
  }
  .site-header .main-nav {
    justify-content:flex-start;
  }
}

.legal-page .page-content {
  padding-block:60px;
}
.legal-page .page-hero h1 {
  margin:0;
}
.legal-content h2 {
  margin:0 0 30px;
  font-size:clamp(30px, 3vw, 42px);
}
.legal-content h3 {
  margin:32px 0 14px;
  font-size:clamp(21px, 2vw, 27px);
  overflow-wrap:anywhere;
}
.legal-content p {
  margin:0 0 20px;
  line-height:1.8;
}
.legal-image-credits {
  margin:0 0 20px;
  padding-left:24px;
  line-height:1.8;
}
.legal-content a {
  text-underline-offset:4px;
}
.legal-disclaimer {
  background:var(--sage);
  border-block:1px solid var(--line);
}
.legal-source {
  padding-top:24px;
  border-top:1px solid var(--line);
}
.privacy-chapter + .privacy-chapter {
  border-top:1px solid var(--line);
}
.privacy-chapter:nth-of-type(odd) {
  background:var(--hero);
}
.privacy-chapter h4 {
  margin:24px 0 12px;
  font-size:18px;
  color:var(--forest);
}
.privacy-chapter ul {
  margin:0 0 24px;
  padding-left:24px;
  line-height:1.8;
}
.privacy-chapter li + li {
  margin-top:10px;
}
.privacy-chapter p, .privacy-chapter li, .privacy-page h1 {
  overflow-wrap:anywhere;
}
@media(max-width:520px) {
  .legal-page .page-content {
    padding-block:32px;
  }
}

@view-transition {
  navigation:auto;
}
.site-header {
  view-transition-name:site-header;
}
::view-transition-group(root), ::view-transition-group(site-header) {
  animation:none;
}
::view-transition-old(root) {
  animation:page-fade-out 120ms ease-in both;
  mix-blend-mode:normal;
}
::view-transition-new(root) {
  animation:page-fade-in 180ms 120ms ease-out both;
  mix-blend-mode:normal;
}
::view-transition-old(site-header) {
  display:none;
}
::view-transition-new(site-header) {
  animation:none;
  mix-blend-mode:normal;
}
@keyframes page-fade-out {
  from {
    opacity:1;
  }
  to {
    opacity:0;
  }
}
@keyframes page-fade-in {
  from {
    opacity:0;
  }
  to {
    opacity:1;
  }
}
@media(prefers-reduced-motion:reduce) {
  @view-transition {
    navigation:none;
  }
  ::view-transition-old(root), ::view-transition-new(root) {
    animation:none;
  }
}

footer.site-footer {
  width:100%;
  max-width:none;
  margin:0;
  margin-top:auto;
  display:block;
  padding:24px var(--site-inset) 16px;
  background:var(--sand);
  border-top:1px solid var(--line);
  color:var(--ink);
}
.footer-contact {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  font-size:14px;
  line-height:1.7;
  letter-spacing:0;
  text-transform:none;
}
.footer-contact-item {
  min-width:0;
  margin:0;
  padding:3px 20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.footer-contact-item.footer-brand {
  flex-direction:row;
  gap:12px;
  justify-content:flex-start;
  text-align:left;
}
.footer-logo-link {
  display:inline-flex;
  flex:0 0 48px;
  border-radius:50%;
}
.footer-logo-link:focus-visible {
  outline:2px solid var(--forest);
  outline-offset:3px;
}
.footer-logo {
  width:48px;
  height:48px;
  flex:0 0 48px;
  border-radius:50%;
  object-fit:cover;
}
.footer-brand > div {
  min-width:0;
}
.footer-search {
  display:flex;
  align-items:stretch;
  width:min(100%, 260px);
  min-height:42px;
  border:1px solid var(--forest);
  background:var(--white);
}
.footer-search input {
  min-width:0;
  flex:1;
  padding:8px 11px;
  border:0;
  background:transparent;
  color:var(--ink);
  font:inherit;
  font-size:14px;
}
.footer-search input:focus {
  outline:0;
}
.footer-search:focus-within {
  outline:2px solid var(--forest);
  outline-offset:2px;
}
.footer-search button {
  display:grid;
  place-items:center;
  flex:0 0 42px;
  padding:0;
  border:0;
  background:var(--forest);
  color:var(--white);
  cursor:pointer;
  transition:background .2s ease;
}
.footer-search button:hover {
  background:var(--pine);
}
.search-icon {
  position:relative;
  display:block;
  width:14px;
  height:14px;
  border:2px solid currentColor;
  border-radius:50%;
  transform:translate(-2px, -2px);
}
.search-icon::after {
  content:'';
  position:absolute;
  right:-7px;
  bottom:-4px;
  width:8px;
  height:2px;
  border-radius:1px;
  background:currentColor;
  transform:rotate(45deg);
  transform-origin:left center;
}
.site-footer .footer-contact-item a {
  margin:0;
  text-decoration:underline;
  text-underline-offset:3px;
  overflow-wrap:anywhere;
}
.site-footer .footer-brand .footer-logo-link {
  text-decoration:none;
}
.footer-contact-item + .footer-contact-item {
  border-left:1px solid var(--line);
}
.footer-contact address {
  font-style:normal;
}
.footer-contact strong {
  font-weight:600;
}
.footer-contact-item p {
  margin:0;
}
.footer-contact-item span {
  overflow-wrap:anywhere;
}
.search-page {
  min-height:320px;
  padding-block:60px 90px;
}
.search-page h1 {
  margin:0 0 24px;
  color:var(--forest);
}
.search-page-form {
  display:flex;
  gap:12px;
  max-width:620px;
  margin:0 0 32px;
}
.search-page-form input {
  min-width:0;
  flex:1;
  padding:12px 16px;
  border:1px solid var(--line);
  background:var(--white);
  color:var(--ink);
  font:inherit;
}
.search-result {
  padding:24px 0;
  border-top:1px solid var(--line);
}
.search-result h2 {
  margin:0 0 8px;
  font-size:clamp(24px, 2.4vw, 32px);
}
.search-result h2 a {
  color:var(--forest);
}
.search-result p {
  max-width:780px;
  margin:0;
}
.search-result p strong {
  font-weight:700;
}
@media(max-width:520px) {
  .search-page {
    padding-block:48px 72px;
  }
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px 28px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.footer-links {
  display:flex;
  flex-wrap:wrap;
  gap:12px 22px;
}
.site-footer .footer-links a {
  margin:0;
}
@media(max-width:1000px) {
  .footer-contact {
    grid-template-columns:repeat(2, minmax(0, 1fr));
    row-gap:14px;
  }
  .footer-contact-item:nth-child(odd) {
    border-left:0;
  }
}
@media(max-width:520px) {
  footer.site-footer {
    padding-block:20px 16px;
  }
  .footer-contact {
    grid-template-columns:1fr;
    gap:0;
    width:min(100%, 300px);
    margin-inline:auto;
    font-size:13px;
  }
  .footer-contact-item, .footer-contact-item + .footer-contact-item {
    padding:0;
    border-left:0;
  }
  .footer-contact-item + .footer-contact-item {
    position:relative;
    margin-top:10px;
    padding-top:11px;
  }
  .footer-contact-item + .footer-contact-item::before {
    content:'';
    position:absolute;
    top:0;
    left:50%;
    width:42px;
    border-top:1px solid var(--line);
    transform:translateX(-50%);
  }
  .footer-contact-item.footer-brand {
    justify-content:center;
    text-align:center;
  }
  .footer-brand > div {
    text-align:center;
  }
  .footer-search {
    width:min(100%, 220px);
  }
  .search-page-form {
    flex-direction:column;
  }
  .footer-bottom {
    flex-direction:column;
    align-items:center;
    width:min(100%, 300px);
    margin-inline:auto;
    text-align:center;
  }
  .footer-links {
    justify-content:center;
  }
}

.cookie-notice, .cookie-quickinfo {
  color:var(--ink);
  background:var(--sand);
  border:1px solid var(--line);
  border-radius:8px;
  box-shadow:0 10px 36px rgba(30,40,25,.18);
  padding:26px;
}
.cookie-notice {
  position:fixed;
  bottom:24px;
  left:24px;
  right:24px;
  width:calc(100% - 48px);
  max-width:900px;
  margin-inline:auto;
  z-index:8;
  display:flex;
  align-items:center;
  gap:28px;
  max-height:60dvh;
  overflow:auto;
  animation:cookie-rise .45s ease-out both;
}
.cookie-notice > div:first-child {
  flex:1;
}
.cookie-notice h2, .cookie-quickinfo h2 {
  margin:0 0 10px;
  font-size:23px;
}
.cookie-notice p, .cookie-quickinfo p {
  margin:0;
  font-size:14px;
  line-height:1.7;
}
.cookie-quickinfo p + p {
  margin-top:16px;
}
.cookie-notice-actions {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  flex-shrink:0;
}
.cookie-notice .button {
  border:0;
  cursor:pointer;
}
.cookie-notice .text-link {
  white-space:nowrap;
}
.cookie-quickinfo {
  position:fixed;
  inset:auto auto 24px 24px;
  margin:0;
  width:min(460px, calc(100% - 48px));
  max-height:calc(100dvh - 48px);
  overflow:auto;
}
.cookie-quickinfo[open] {
  animation:cookie-slide-in .4s ease-out both;
}
.cookie-quickinfo::backdrop {
  background:rgba(30,40,25,.12);
}
.cookie-quickinfo h2 {
  padding-right:30px;
}
.cookie-info-close {
  position:absolute;
  top:12px;
  right:12px;
  width:36px;
  height:36px;
  border:0;
  background:transparent;
  color:var(--forest);
  font-size:28px;
  cursor:pointer;
}
@keyframes cookie-rise {
  from {
    opacity:0;
    transform:translateY(calc(100% + 24px));
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}
@keyframes cookie-slide-in {
  from {
    opacity:0;
    transform:translateX(calc(-100% - 24px));
  }
  to {
    opacity:1;
    transform:translateX(0);
  }
}
@media(max-width:650px) {
  .cookie-notice {
    left:16px;
    right:16px;
    bottom:16px;
    width:calc(100% - 32px);
    padding:20px;
    flex-direction:column;
    align-items:stretch;
    gap:18px;
  }
  .cookie-notice-actions {
    flex-direction:row;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px;
  }
  .cookie-quickinfo {
    left:16px;
    bottom:16px;
    width:calc(100% - 32px);
    max-height:calc(100dvh - 32px);
    padding:20px;
  }
}
@media(prefers-reduced-motion:reduce) {
  .cookie-notice, .cookie-quickinfo[open] {
    animation:none;
  }
}
