@font-face {
  font-family: Roboto;
  src: url('/assets/roboto-regular.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: Roboto;
  src: url('/assets/roboto-bold.woff2') format('woff2');
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: Roboto;
  src: url('/assets/roboto-black.woff2') format('woff2');
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --page: #101114;
  --panel: #181a1e;
  --header: #0c0d10;
  --line: #363b42;
  --ink: #f4f3ef;
  --muted: #bec2c8;
  --paper: #f2f1ee;
  --paper-ink: #181a1e;
  --paper-muted: #474d56;
  --paper-line: #c7cbd0;
  --accent: #b5dadf;
  --accent-text: #101518;
  --accent-hover: #c9e6e9;
  --focus: #b5dadf;
  --radius: 6px;
  --gutter: clamp(22px, 5.6vw, 92px);
  --content-width: 1220px;
  --header-height: 86px;
  font-family: Roboto, Arial, sans-serif;
  font-size: 16px;
  background: var(--page);
  color: var(--ink);
  -webkit-text-size-adjust: 100%;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { min-width: 280px; margin: 0; line-height: 1.55; }
img { display: block; max-width: 100%; }
figure, p, h1, h2, h3, ol, ul { margin: 0; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }
button, summary { cursor: pointer; }
address { font-style: normal; }
main:focus { outline: none; }
[id] { scroll-margin-top: calc(var(--header-height) + 22px); }
::selection { background: var(--accent); color: var(--accent-text); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.on-light :focus-visible { outline-color: #285364; }

h1, h2, h3 { line-height: 1.03; font-weight: 900; }
h1 { font-size: clamp(3.2rem, 7.25vw, 6.9rem); letter-spacing: -.061em; }
h2 { font-size: clamp(2.2rem, 4.85vw, 4.4rem); letter-spacing: -.052em; }
h3 { font-size: clamp(1.38rem, 2.45vw, 2.05rem); letter-spacing: -.034em; }
.wrap { width: min(var(--content-width), calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.section { padding-block: clamp(58px, 7.4vw, 112px); }
.on-light { color-scheme: light; background: var(--paper); color: var(--paper-ink); }

.eyebrow {
  color: var(--accent);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .17em;
  line-height: 1.35;
  text-transform: uppercase;
}

.on-light .eyebrow { color: #315663; }
.muted { color: var(--muted); }
.pending { color: var(--muted); font-size: .9rem; }
.on-light .pending { color: var(--paper-muted); }

.icon { flex: none; width: 1.15em; height: 1.15em; vertical-align: middle; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 13px;
  padding: 11px 18px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  font-size: .94rem;
  font-weight: 700;
  line-height: 1.24;
  text-align: center;
  transition: background-color 160ms, border-color 160ms, color 160ms;
}
.button .icon { width: 17px; height: 17px; }
.button-primary { background: var(--accent); color: var(--accent-text); }
.button-primary:hover { background: var(--accent-hover); }
.button-outline { color: var(--ink); border-color: #8a949e; background: #10121659; }
.button-outline:hover { border-color: var(--accent); background: #242e38; }
.button-dark { background: #191e24; color: #f7f6f2; }
.button-dark:hover { background: #2b3843; }
.button-light-outline { color: var(--paper-ink); border-color: #7a8692; }
.button-light-outline:hover { background: #e5edf0; border-color: #506679; }

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  color: var(--accent);
  font-size: .96rem;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: .26em;
  transition: text-decoration-color 160ms, color 160ms;
}
.text-link:hover { text-decoration-color: currentColor; }
.on-light .text-link { color: #285364; }

.skip-link {
  position: fixed;
  z-index: 12;
  top: 10px;
  left: 12px;
  padding: 10px 14px;
  transform: translateY(-180%);
  border-radius: var(--radius);
  background: var(--accent);
  color: var(--accent-text);
  font-weight: 700;
}
.skip-link:focus { transform: none; }

.site-header {
  position: sticky;
  z-index: 10;
  top: 0;
  border-bottom: 1px solid #292d34;
  background: var(--header);
}
.header-inner {
  min-height: var(--header-height);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 22px;
}
.brand {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  align-items: center;
  font-weight: 900;
}
.brand small { display: block; font-weight: 400; }
.brand img { width: 108px; height: auto; mix-blend-mode: screen; }
.site-nav { display: flex; align-self: stretch; align-items: stretch; gap: clamp(18px, 2.75vw, 43px); }
.site-nav a {
  display: inline-flex;
  position: relative;
  align-items: center;
  color: var(--muted);
  font-size: .92rem;
  font-weight: 700;
  white-space: nowrap;
  transition: color 160ms;
}
.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--ink); }
.site-nav a[aria-current="page"]::after {
  position: absolute;
  inset: auto 0 0;
  height: 2px;
  content: '';
  background: var(--accent);
}
.header-book { justify-self: end; white-space: nowrap; }
.menu-toggle { display: none; }
.menu-toggle {
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  padding: 0;
  background: transparent;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.menu-toggle:hover { border-color: var(--accent); }
.menu-toggle .icon { width: 22px; height: 22px; }

.hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--page);
  border-bottom: 1px solid var(--line);
}
.hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(16px, 4vw, 65px);
  min-height: clamp(535px, 45vw, 685px);
  padding-block: clamp(43px, 5.7vw, 80px);
}
.hero-mark, .about-mark {
  position: relative;
  isolation: isolate;
  justify-self: center;
}
.hero-mark { width: min(100%, 510px); }
.hero-mark::before, .about-mark::before {
  position: absolute;
  z-index: -1;
  inset: -9% 0;
  pointer-events: none;
  content: '';
  background: radial-gradient(ellipse, #b5dadf24, #b5dadf10 41%, transparent 71%);
}
.hero-mark img, .about-mark img { width: 100%; height: auto; }
.hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 16px; margin-bottom: 24px; }
.hero-location { display: flex; align-items: center; gap: 7px; letter-spacing: .13em; }
.hero-location:hover, .footer-address:hover { text-decoration: underline; text-underline-offset: .24em; }
.hero-location .icon { width: 16px; height: 16px; }
.opening-note { color: var(--muted); font-size: .86rem; font-weight: 700; }
.hero h1 { font-size: clamp(2.5rem, 5.9vw, 5.9rem); }
.hero h1 span { color: var(--accent); }
.hero-description {
  max-width: 425px;
  margin-top: 24px;
  color: var(--muted);
  font-size: clamp(1.05rem, 1.55vw, 1.24rem);
  line-height: 1.58;
}
.hero-actions { margin-top: 29px; }
.hero-actions .button { min-height: 54px; }

.section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr);
  align-items: end;
  gap: 26px 54px;
  margin-bottom: clamp(29px, 4vw, 52px);
}
.section-heading .eyebrow, .visit-grid .eyebrow { margin-bottom: 13px; }
.section-heading > p, .intro-copy {
  max-width: 360px;
  color: var(--muted);
  font-size: 1.08rem;
}
.section-heading > p { justify-self: end; padding-bottom: 2px; }
.on-light .section-heading > p { color: var(--paper-muted); }

.service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.service-card {
  overflow: hidden;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 10px;
}
.service-icon {
  display: grid;
  width: 49px;
  height: 49px;
  flex: none;
  place-items: center;
  color: var(--accent);
  border: 1px solid #536570;
  border-radius: var(--radius);
  background: #202a33;
}
.service-icon .icon { width: 24px; height: 24px; }
.service-card-body .service-icon { margin-bottom: 21px; }
.service-card-body { padding: clamp(23px, 3vw, 35px); }
.service-card-body p { max-width: 40ch; margin-block: 12px 11px; color: var(--muted); }

.first-visits { padding-bottom: clamp(33px, 5vw, 66px); }
.ongoing-plans {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 30px 8%;
  margin-top: clamp(25px, 4vw, 52px);
  padding: clamp(23px, 4.3vw, 54px);
  border: 1px solid #a6b8bf;
  border-radius: 10px;
  background: #e7eff1;
}
.plans-intro h2 { max-width: 14ch; font-size: clamp(2.1rem, 4.15vw, 3.8rem); }
.plans-intro p, .plan-options p { max-width: 46ch; margin-top: 10px; color: var(--paper-muted); }
.plans-intro .plan-savings { color: #285364; font-weight: 700; }
.plans-intro .button { margin-top: 21px; }
.plan-options article { padding-block: 15px; border-top: 1px solid #a8bcc3; }
.plan-options article:last-child { border-bottom: 1px solid #a8bcc3; }
.plan-options h3 { font-size: clamp(1.3rem, 2vw, 1.7rem); }

.first-visit {
  padding: clamp(25px, 4.35vw, 58px);
  border: 1px solid #aac3ca;
  border-radius: 10px;
  background: #e0edf0;
}
.visit-grid { display: grid; grid-template-columns: 1.12fr 1fr; align-items: center; gap: 32px 8%; }
.visit-grid h2 { max-width: 12ch; }
.visit-grid .intro-copy { margin-block: 16px 23px; color: var(--paper-muted); }
.visit-steps { list-style: none; padding: 0; }
.visit-steps li {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 12px;
  padding-block: 16px;
  border-top: 1px solid #aac3ca;
}
.visit-steps li:last-child { border-bottom: 1px solid #aac3ca; }
.step-index { padding-top: 2px; color: #315663; font-size: .89rem; font-weight: 700; letter-spacing: .045em; font-variant-numeric: tabular-nums; }
.visit-steps h3 { font-size: 1.36rem; }
.visit-steps p { max-width: 46ch; margin-top: 5px; color: var(--paper-muted); }

.location-strip { padding-block: 33px; background: #202a33; border-block: 1px solid #40515f; }
.location-inner, .location-heading { display: flex; align-items: center; gap: 20px; }
.location-inner { justify-content: space-between; }
.location-heading h2 { font-size: clamp(1.58rem, 3.05vw, 2.28rem); letter-spacing: -.035em; }
.location-heading p { margin-top: 5px; color: #d5dde4; }
.location-icon {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 51px;
  height: 51px;
  border-radius: var(--radius);
  border: 1px solid #566c7b;
  color: var(--accent);
}
.location-icon .icon { width: 25px; height: 25px; }

.page-hero {
  padding-block: clamp(60px, 8vw, 110px);
  border-bottom: 1px solid var(--line);
  background: radial-gradient(ellipse at 91% 8%, #222c36, transparent 64%), #15181d;
}
.page-hero h1 { max-width: 1030px; font-size: clamp(3rem, 7.2vw, 6.25rem); }
.page-hero .eyebrow { margin-bottom: 15px; }
.page-lead { max-width: 57ch; margin-top: 22px; color: #d7dde4; font-size: clamp(1.06rem, 1.9vw, 1.28rem); }
.page-hero .actions { margin-top: 25px; }

.about-hero { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); align-items: center; gap: 30px 7%; }
.about-story {
  display: grid;
  gap: 16px;
  max-width: 60ch;
  margin-top: 22px;
  color: #d7dde4;
  font-size: clamp(1rem, 1.6vw, 1.18rem);
  line-height: 1.65;
}
.about-mark { width: min(100%, 420px); }

.service-details { padding-block: clamp(44px, 6vw, 86px); }
.service-details .wrap { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.service-detail {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 20px;
  padding: clamp(22px, 3.2vw, 39px);
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 10px;
}
.service-detail h2 { font-size: clamp(1.62rem, 3.2vw, 2.9rem); }
.service-detail-copy > p { max-width: 49ch; margin-top: 17px; color: var(--muted); }
.service-detail-copy .service-fit { margin-top: 15px; color: var(--ink); }
.service-detail-copy .text-link { margin-top: 14px; }

.approach-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.approach-grid article { padding: 22px 15px 0 0; border-top: 1px solid #a2adb6; }
.approach-grid h3 { font-size: clamp(1.34rem, 2.4vw, 1.75rem); }
.approach-grid p { max-width: 36ch; margin-top: 10px; color: var(--paper-muted); }
.team-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 10px 24px; margin-bottom: clamp(26px, 4vw, 46px); }
.team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 23px; }
.team-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); }
.team-card img, .team-photo { width: 100%; height: auto; aspect-ratio: 1.9; object-fit: cover; }
.team-photo {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: linear-gradient(145deg, #222b34, #191e25);
  color: #c6cdd5;
  font-size: .91rem;
}
.team-photo .icon { width: 40px; height: 40px; color: #9eb8c6; }
.team-copy { display: flex; flex: 1; flex-direction: column; padding: clamp(21px, 3vw, 33px); }
.team-copy h2, .team-copy h3 { font-size: clamp(1.4rem, 2.6vw, 2rem); }
.team-copy p { margin-block: 10px 17px; color: var(--muted); }
.team-copy .button { align-self: flex-start; margin-top: auto; }

.faq-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .45fr); align-items: start; gap: 34px 8%; }
.faq-item { border-top: 1px solid var(--line); }
.faq-item:last-child { border-bottom: 1px solid var(--line); }
.faq-item summary {
  display: flex;
  min-height: 63px;
  align-items: center;
  justify-content: space-between;
  gap: 17px;
  padding: 16px 4px 16px 0;
  list-style: none;
  font-size: clamp(1.03rem, 1.75vw, 1.23rem);
  font-weight: 700;
  line-height: 1.32;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover, .faq-item summary .icon { color: var(--accent); }
.faq-item summary .icon { width: 22px; height: 22px; transition: transform 160ms; }
.faq-item[open] summary .icon { transform: rotate(45deg); }
.faq-item > div { padding: 0 24px 21px 0; color: var(--muted); }
.faq-aside { padding: 27px; border: 1px solid #465865; border-radius: 9px; background: #202a33; }
.faq-aside h2 { font-size: clamp(1.5rem, 2.9vw, 2.1rem); }
.faq-aside p { margin-block: 13px 20px; color: #d4dce4; }
.faq-aside .text-link { display: flex; width: fit-content; margin-top: 7px; }

.inquiry-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: 30px 9%;
}
.inquiry-intro h2 { max-width: 14ch; }
.inquiry-intro > p { max-width: 40ch; margin-top: 17px; color: var(--paper-muted); }
.inquiry-intro .button { margin-top: 23px; }
.inquiry-intro .inquiry-direct { margin-top: 20px; font-size: .94rem; }
.inquiry-form {
  display: grid;
  min-width: 0;
  gap: 17px;
  padding: clamp(22px, 3.5vw, 42px);
  border: 1px solid #a7b7be;
  border-radius: 10px;
  background: #e7eff1;
}
.inquiry-form h3 { margin-bottom: 2px; }
.inquiry-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.inquiry-form label { display: block; margin-bottom: 6px; font-size: .92rem; font-weight: 700; }
.inquiry-form input, .inquiry-form textarea {
  display: block;
  width: 100%;
  min-height: 46px;
  padding: 9px 12px;
  border: 1px solid #8295a2;
  border-radius: var(--radius);
  background: #faf9f6;
  color: var(--paper-ink);
  font: inherit;
}
.inquiry-form textarea { resize: vertical; }
.inquiry-note { margin-top: -9px; color: var(--paper-muted); font-size: .88rem; }
.inquiry-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 11px 17px; }
.inquiry-submit .button:disabled { cursor: wait; opacity: .72; }
.inquiry-status { flex: 1 1 180px; font-size: .92rem; font-weight: 700; color: #285364; }
.inquiry-status:empty { position: absolute; }

.contact-grid { display: grid; grid-template-columns: minmax(0, .83fr) minmax(0, 1fr); gap: 32px 9%; align-items: start; }
.address-panel { min-height: 290px; padding: clamp(25px, 4vw, 48px); border: 1px solid #465865; border-radius: 9px; background: #202a33; }
.address-panel h2 { margin-top: 18px; font-size: clamp(1.95rem, 3.8vw, 3rem); }
.address-panel address { margin-block: 13px 18px; color: #dce1e7; }
.address-panel address .pending { font-size: inherit; }
.contact-row { padding-block: 20px; border-top: 1px solid var(--line); }
.contact-row:last-child { border-bottom: 1px solid var(--line); }
.contact-row h2 { font-size: clamp(1.25rem, 2.3vw, 1.55rem); letter-spacing: -.026em; }
.contact-row p { margin-top: 7px; color: var(--muted); }
.contact-links { list-style: none; padding: 4px 0 0; overflow-wrap: anywhere; }
.contact-links .text-link { min-height: 38px; }

.ready-to-book { padding-block: clamp(40px, 6vw, 74px); }
.booking-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .62fr);
  align-items: start;
  gap: 18px 8%;
}
.first-visits + .ready-to-book, .approach + .ready-to-book { padding-top: 0; }
.first-visits + .ready-to-book .booking-inner, .approach + .ready-to-book .booking-inner {
  padding-top: clamp(26px, 4vw, 46px);
  border-top: 1px solid var(--paper-line);
}
.booking-copy h2 { font-size: clamp(2rem, 3.8vw, 3.3rem); }
.booking-copy p { max-width: 48ch; margin-top: 9px; color: var(--paper-muted); }
.booking-actions { display: grid; justify-items: start; }
.booking-actions > .button { margin-bottom: 6px; }
.single-sessions { width: min(100%, 410px); }
.single-sessions summary { width: fit-content; list-style: none; }
.single-sessions summary::-webkit-details-marker { display: none; }
.single-sessions[open] summary .icon { transform: rotate(45deg); }
.single-session-list { list-style: none; padding: 0; }
.single-session-list li { padding-bottom: 12px; border-top: 1px solid var(--paper-line); }
.single-session-list p { margin-top: -2px; color: var(--paper-muted); font-size: .94rem; }

.site-footer { background: var(--header); }
.footer-main {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 24px;
  align-items: start;
  padding-block: 35px 28px;
}
.footer-brand p { margin-top: 8px; color: var(--muted); font-size: .91rem; }
.footer-nav { display: flex; flex-wrap: wrap; gap: 0 23px; }
.footer-nav a { display: flex; min-height: 44px; align-items: center; color: #dce0e6; font-size: .91rem; }
.footer-nav a:hover { color: var(--accent); }
.footer-location { display: flex; align-items: center; justify-self: end; gap: 10px; font-size: .92rem; }
.footer-location > .icon { align-self: start; margin-top: 4px; color: var(--accent); }
.instagram-link .icon { width: 18px; height: 18px; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 18px; padding-block: 16px 22px; border-top: 1px solid #30363e; color: #aeb6c0; font-size: .79rem; }
.preview-flag { color: var(--accent); }

@media (max-width: 1050px) {
  .header-inner { gap: 16px; }
  .site-nav { gap: 22px; }
  .footer-main { grid-template-columns: 1fr 1fr; }
  .footer-nav { grid-column: 1 / -1; grid-row: 2; }
}

@media (max-width: 850px) {
  :root { --header-height: 71px; }
  .header-inner { grid-template-columns: 1fr auto auto; gap: 10px; }
  .brand img { width: 94px; }
  .menu-toggle { grid-column: 2; grid-row: 1; }
  .has-js .menu-toggle { display: inline-flex; }
  .menu-toggle .icon-close, .menu-toggle[aria-expanded="true"] .icon-menu { display: none; }
  .menu-toggle[aria-expanded="true"] .icon-close { display: block; }
  .header-book { grid-column: 3; grid-row: 1; min-height: 45px; }
  .site-nav { grid-column: 1 / -1; gap: 6px 22px; flex-wrap: wrap; padding-bottom: 8px; }
  .site-nav a { min-height: 44px; }
  .has-js .site-nav {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    padding: 6px var(--gutter) 16px;
    border-bottom: 1px solid var(--line);
    background: var(--header);
  }
  .has-js .site-nav.is-open { display: flex; flex-direction: column; gap: 0; }
  .has-js .site-nav a { min-height: 48px; padding-inline: 3px; border-bottom: 1px solid #2c333c; }
  .has-js .site-nav a[aria-current="page"]::after { inset: 13px 0 13px auto; width: 2px; height: auto; }
  .section-heading { grid-template-columns: 1fr .72fr; column-gap: 32px; }
  .visit-grid { column-gap: 6%; }
  .service-detail { grid-template-columns: 1fr; gap: 17px; }
  .faq-grid { gap: 28px 5%; }
}

@media (max-width: 650px) {
  :root { --header-height: 67px; }
  .header-book { gap: 7px; padding-inline: 11px; }
  .header-book .icon { width: 15px; height: 15px; }
  .hero-inner { grid-template-columns: minmax(0, 1fr); gap: 5px; min-height: 0; padding-block: 38px 20px; }
  .hero-meta { margin-bottom: 17px; }
  .hero h1 { font-size: clamp(2.55rem, 10.2vw, 4.1rem); }
  .hero-description { margin-top: 16px; }
  .hero-actions { margin-top: 22px; gap: 9px; }
  .hero-actions .button { min-height: 47px; padding-inline: 12px; gap: 7px; font-size: .88rem; }
  .hero-actions .icon { width: 15px; height: 15px; }
  .hero-mark, .about-mark { width: min(100%, 350px); }
  .section-heading, .visit-grid, .faq-grid, .contact-grid, .inquiry-grid { grid-template-columns: 1fr; gap: 18px; }
  .section-heading > p { justify-self: start; padding: 0; }
  .service-grid, .team-grid, .service-details .wrap { grid-template-columns: 1fr; gap: 18px; }
  .team-row {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: min(82%, 310px);
    gap: 12px;
    overflow-x: auto;
    padding: 4px 4px 13px;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 4px;
    scrollbar-color: #8094a0 var(--panel);
  }
  .team-row .team-card { scroll-snap-align: start; }
  .inquiry-grid { gap: 26px; }
  .ongoing-plans, .about-hero { grid-template-columns: 1fr; gap: 22px; }
  .booking-inner { grid-template-columns: 1fr; }
  .visit-grid { gap: 27px; }
  .visit-grid h2 { max-width: 14ch; }
  .location-inner { align-items: flex-start; flex-direction: column; }
  .location-heading { gap: 13px; }
  .location-icon { width: 43px; height: 43px; }
  .location-icon .icon { width: 23px; height: 23px; }
  .approach-grid { grid-template-columns: 1fr; gap: 19px; }
  .approach-grid article { padding-top: 15px; }
  .address-panel { min-height: 0; }
  .footer-main { grid-template-columns: 1fr; gap: 10px; }
  .footer-location { justify-self: start; }
  .footer-nav { gap: 0 18px; margin-block: 1px 3px; }
}

@media (max-width: 345px) {
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .inquiry-fields { grid-template-columns: 1fr; }
}

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