
    /* ---------- Design tokens (lifted from mockup) ---------- */
    :root {
      --bg:        #E0DAC5;
      --bg-card:   #efeadb;
      --bg-image:  #d4cab0;
      --bg-soft:   #d8d0b8;
      --bg-gold:   #c9bfa3;
      --bg-dark:   #1a1a1a;
      --ink:       #1a1a1a;
      --ink-soft:  #3a3a3a;
      --ink-mute:  #5a5a5a;
      --ink-light: #d8d0b8;
      --gold:      #c9bfa3;
      --gold-deep: #b5a888;
      --star:      #d4a017;
      --serif:     Georgia, 'Times New Roman', serif;
      --sans:      'Helvetica Neue', Arial, sans-serif;
    }

    /* ---------- Reset / base ---------- */
    *, *::before, *::after { box-sizing: border-box; }
    html, body { margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: var(--serif);
      color: var(--ink);
      background: var(--bg);
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      line-height: 1.6;
    }
    img { display: block; max-width: 100%; height: auto; }
    a { color: inherit; text-decoration: none; transition: opacity 0.2s ease; }
    a:hover { opacity: 0.7; }
    button { font: inherit; cursor: pointer; border: none; background: none; }
    em { font-style: italic; }

    /* ---------- Reusable bits ---------- */
    .eyebrow {
      font-family: var(--sans);
      font-size: 11px;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--ink-mute);
      margin-bottom: 20px;
    }
    .btn {
      display: inline-block;
      font-family: var(--sans);
      font-size: 11px;
      letter-spacing: 2px;
      text-transform: uppercase;
      padding: 14px 32px;
      border: 0.5px solid var(--ink);
      transition: background 0.2s ease, color 0.2s ease, opacity 0.2s ease;
      cursor: pointer;
    }
    .btn-primary { background: var(--ink); color: var(--bg); }
    .btn-primary:hover { background: transparent; color: var(--ink); opacity: 1; }
    .btn-outline { background: transparent; color: var(--ink); }
    .btn-outline:hover { background: var(--ink); color: var(--bg); opacity: 1; }

    /* ---------- Header ---------- */
    .site-header {
      background: rgba(224, 218, 197, 0.92);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-bottom: 0.5px solid rgba(0,0,0,0.08);
      padding: 22px 56px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-family: var(--sans);
      position: sticky;
      top: 0;
      z-index: 100;
      transition: padding 0.3s ease, box-shadow 0.3s ease;
    }
    .site-header.scrolled {
      padding: 14px 56px;
      box-shadow: 0 4px 24px rgba(0,0,0,0.06);
    }
    .site-header .logo img {
      height: 52px;
      width: auto;
      transition: height 0.3s ease;
      image-rendering: -webkit-optimize-contrast;
    }
    .site-header.scrolled .logo img { height: 40px; }
    .site-nav {
      display: flex;
      gap: 38px;
      font-size: 13px;
      letter-spacing: 1.8px;
      text-transform: uppercase;
      font-weight: 500;
    }
    .site-nav a {
      white-space: nowrap;
      position: relative;
      padding: 4px 0;
    }
    .site-nav a::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 0;
      height: 1px;
      background: var(--ink);
      transition: width 0.3s ease;
    }
    .site-nav a:hover { opacity: 1; }
    .site-nav a:hover::after { width: 100%; }
    .header-cta {
      border: 1px solid var(--ink);
      padding: 12px 28px;
      font-size: 12px;
      letter-spacing: 2px;
      text-transform: uppercase;
      font-weight: 500;
      transition: background 0.25s ease, color 0.25s ease;
    }
    .header-cta:hover {
      background: var(--ink);
      color: var(--bg);
      opacity: 1;
    }
    .menu-toggle { display: none; }

    /* ---------- Hero ---------- */
    .hero {
      padding: 110px 60px 90px;
      text-align: center;
      position: relative;
    }
    .hero .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 18px;
      margin-bottom: 28px;
    }
    .hero .eyebrow::before,
    .hero .eyebrow::after {
      content: '';
      width: 36px;
      height: 1px;
      background: var(--ink-mute);
      opacity: 0.5;
    }
    .hero h1 {
      font-family: var(--serif);
      font-size: 60px;
      line-height: 1.08;
      font-weight: 400;
      letter-spacing: -0.5px;
      margin: 0 0 24px;
      color: var(--ink);
      max-width: 900px;
      margin-left: auto;
      margin-right: auto;
    }
    .hero p.lead {
      font-size: 18px;
      line-height: 1.65;
      color: var(--ink-soft);
      max-width: 620px;
      margin: 0 auto 40px;
    }
    .hero-actions {
      display: flex;
      gap: 14px;
      justify-content: center;
      flex-wrap: wrap;
    }
    .hero-actions .btn {
      padding: 16px 36px;
      font-size: 12px;
      letter-spacing: 2.2px;
    }
    .hero-image {
      height: 560px;
      /* Gradient shows while the image decodes, and behind any transparency */
      background: linear-gradient(135deg, var(--gold) 0%, var(--gold-deep) 100%);
      background-size: cover;
      background-position: center;
      position: relative;
      overflow: hidden;
    }
    /* The hero is a real <img> so it can be responsive via srcset; object-fit
       reproduces what background-size: cover did. */
    .hero-image > img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }
    .hero-image::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(0,0,0,0) 60%, rgba(0,0,0,0.15) 100%);
      pointer-events: none;
    }

    /* ---------- Hero trust strip ---------- */
    .hero-trust {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: 0;
      max-width: 980px;
      margin: 60px auto 0;
      padding: 24px 32px;
      border-top: 1px solid rgba(0,0,0,0.12);
      border-bottom: 1px solid rgba(0,0,0,0.12);
    }
    .trust-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 28px;
      font-family: var(--sans);
      font-size: 12.5px;
      letter-spacing: 1.4px;
      text-transform: uppercase;
      color: var(--ink);
      position: relative;
      flex: 0 0 auto;
      font-weight: 500;
    }
    .trust-item + .trust-item::before {
      content: '';
      position: absolute;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
      width: 1px;
      height: 22px;
      background: rgba(0,0,0,0.18);
    }
    .trust-icon {
      width: 22px;
      height: 22px;
      flex-shrink: 0;
      color: var(--ink);
    }
    .trust-icon.gold { color: #b89745; }
    .trust-item strong {
      font-weight: 600;
    }

    /* ---------- Credentials band (below hero image) ---------- */
    .credentials {
      background: var(--bg-card);
      padding: 60px 60px;
      border-bottom: 1px solid rgba(0,0,0,0.06);
    }
    .credentials-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 40px;
      max-width: 1200px;
      margin: 0 auto;
      align-items: start;
    }
    .credential {
      text-align: center;
      padding: 0 12px;
    }
    .credential-icon {
      width: 36px;
      height: 36px;
      margin: 0 auto 14px;
      color: var(--ink);
    }
    .credential h4 {
      font-family: var(--serif);
      font-size: 17px;
      font-weight: 500;
      letter-spacing: -0.1px;
      margin: 0 0 6px;
      color: var(--ink);
    }
    .credential p {
      font-family: var(--sans);
      font-size: 12.5px;
      line-height: 1.6;
      color: var(--ink-mute);
      margin: 0;
      letter-spacing: 0.2px;
    }

    /* ---------- Mission ---------- */
    .mission {
      padding: 120px 80px 100px;
      text-align: center;
    }
    .mission h2 {
      font-family: var(--serif);
      font-size: 42px;
      line-height: 1.25;
      font-weight: 400;
      letter-spacing: -0.3px;
      margin: 0 auto 28px;
      max-width: 760px;
      color: var(--ink);
    }
    .mission p {
      font-size: 17px;
      line-height: 1.85;
      color: var(--ink-soft);
      max-width: 660px;
      margin: 0 auto;
    }

    /* ---------- Services grid ---------- */
    .services { padding: 80px 60px 110px; }
    .services h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      text-align: center;
      margin: 0 0 65px;
      color: var(--ink);
    }
    .services-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 24px;
      max-width: 1240px;
      margin: 0 auto;
    }
    .service-card {
      background: var(--bg-card);
      padding: 0;
      border-radius: 6px;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      transition: transform 0.35s ease, box-shadow 0.35s ease;
    }
    .service-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 20px 40px rgba(0,0,0,0.08);
    }
    .service-image {
      height: 220px;
      margin-bottom: 0;
      background: var(--bg-image);
      background-size: cover;
      background-position: center;
      transition: transform 0.6s ease;
    }
    .service-card:hover .service-image { transform: scale(1.05); }
    .service-card-body {
      padding: 28px 26px 30px;
      display: flex;
      flex-direction: column;
      flex: 1;
    }
    .service-card h3 {
      font-family: var(--serif);
      font-size: 20px;
      font-weight: 400;
      margin: 0 0 12px;
      color: var(--ink);
      letter-spacing: -0.2px;
    }
    .service-card p {
      font-size: 14px;
      line-height: 1.75;
      color: #4a4a4a;
      margin: 0 0 18px;
      flex-grow: 1;
    }
    .service-card .learn-more {
      font-family: var(--sans);
      font-size: 11px;
      letter-spacing: 2px;
      text-transform: uppercase;
      font-weight: 500;
      color: var(--ink);
      border-bottom: 1px solid var(--ink);
      padding-bottom: 3px;
      align-self: flex-start;
      transition: gap 0.2s ease, letter-spacing 0.2s ease;
    }
    .service-card .learn-more:hover {
      opacity: 1;
      letter-spacing: 2.5px;
    }

    /* ---------- Conditions ---------- */
    .conditions {
      padding: 110px 60px;
      background: var(--bg-soft);
    }
    .conditions h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      text-align: center;
      margin: 0 0 65px;
      color: var(--ink);
    }
    .conditions-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 60px;
      max-width: 1000px;
      margin: 0 auto;
    }
    .conditions h3 {
      font-family: var(--serif);
      font-size: 20px;
      font-weight: 500;
      margin: 0 0 22px;
      padding-bottom: 14px;
      border-bottom: 1px solid rgba(0,0,0,0.15);
      color: var(--ink);
    }
    .conditions ul {
      list-style: none;
      padding: 0;
      margin: 0;
      font-size: 15px;
      line-height: 2.1;
      color: var(--ink-soft);
    }

    /* ---------- Approach ---------- */
    .approach { padding: 130px 80px; }
    .approach-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center;
      max-width: 1200px;
      margin: 0 auto;
    }
    .approach-image {
      height: 520px;
      background-size: cover;
      background-position: center;
      border-radius: 4px;
    }
    .approach h2 {
      font-family: var(--serif);
      font-size: 40px;
      font-weight: 400;
      letter-spacing: -0.3px;
      line-height: 1.2;
      margin: 0 0 26px;
      color: var(--ink);
    }
    .approach p {
      font-size: 16px;
      line-height: 1.85;
      color: var(--ink-soft);
      margin: 0 0 18px;
    }

    /* ---------- Partners ---------- */
    .partners {
      padding: 110px 60px;
      background: var(--bg-soft);
      text-align: center;
    }
    .partners h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      text-align: center;
      margin: 0 0 55px;
      color: var(--ink);
    }
    .partners-row {
      display: flex;
      flex-wrap: wrap;
      gap: 28px;
      justify-content: center;
      align-items: center;
      max-width: 1100px;
      margin: 0 auto;
    }
    .partner-chip {
      background: transparent;
      padding: 0;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
      filter: grayscale(0%);
    }
    .partner-chip:hover {
      transform: translateY(-4px);
      box-shadow: 0 14px 28px rgba(0,0,0,0.08);
    }
    .partner-chip img {
      height: 120px;
      width: auto;
      max-width: 180px;
      object-fit: contain;
      display: block;
    }

    /* ---------- Practitioners ---------- */
    .practitioners { padding: 120px 60px; }
    .practitioners h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      text-align: center;
      margin: 0 0 65px;
      color: var(--ink);
    }
    /* Flex instead of grid so an incomplete last row (e.g. a 5th
       practitioner) centers under the row above it. */
    .practitioners-grid {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 28px;
      max-width: 1200px;
      margin: 0 auto;
    }
    .practitioner-card {
      width: calc((100% - 3 * 28px) / 4);
      background: var(--bg-card);
      padding: 0;
      border-radius: 6px;
      overflow: hidden;
      transition: transform 0.35s ease, box-shadow 0.35s ease;
    }
    .practitioner-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 20px 40px rgba(0,0,0,0.08);
    }
    .practitioner-photo {
      display: block;
      height: 320px;
      background: linear-gradient(135deg, var(--gold) 0%, var(--gold-deep) 100%);
      background-size: cover;
      background-position: center 22%;
    }
    /* Internal heading-links inherit heading style */
    .conditions h3 a,
    .practitioner-card h3 a {
      color: inherit;
      text-decoration: none;
    }
    .conditions h3 a:hover,
    .practitioner-card h3 a:hover {
      color: var(--gold-deep);
      text-decoration: underline;
    }
    .practitioner-card-body {
      padding: 26px 28px 28px;
    }
    .practitioner-card h3 {
      font-family: var(--serif);
      font-size: 20px;
      font-weight: 400;
      margin: 0 0 6px;
      color: var(--ink);
      letter-spacing: -0.2px;
    }
    .practitioner-card .role {
      font-family: var(--sans);
      font-size: 11px;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--ink-mute);
      font-weight: 500;
    }

    /* ---------- Testimonial ---------- */
    .testimonial {
      padding: 130px 60px;
      background: var(--bg-gold);
      text-align: center;
      position: relative;
    }
    .testimonial::before {
      content: '"';
      font-family: var(--serif);
      font-size: 180px;
      color: var(--ink);
      opacity: 0.08;
      position: absolute;
      top: 40px;
      left: 50%;
      transform: translateX(-50%);
      line-height: 1;
      pointer-events: none;
    }
    .testimonial .eyebrow {
      color: var(--ink-soft);
      margin-bottom: 32px;
      position: relative;
    }
    .testimonial blockquote {
      font-family: var(--serif);
      font-size: 28px;
      line-height: 1.5;
      font-style: italic;
      color: var(--ink);
      max-width: 780px;
      margin: 0 auto 30px;
      font-weight: 400;
      letter-spacing: -0.2px;
      position: relative;
    }
    .testimonial cite {
      font-family: var(--sans);
      font-size: 12px;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      color: var(--ink-soft);
      font-style: normal;
      font-weight: 500;
    }

    /* ---------- Find Us (Maps + GBP) ---------- */
    .find-us {
      padding: 120px 60px;
      background: var(--bg-soft);
    }
    .find-us-header {
      text-align: center;
      margin-bottom: 65px;
    }
    .find-us-header h2 {
      font-family: var(--serif);
      font-size: 40px;
      font-weight: 400;
      letter-spacing: -0.3px;
      margin: 0 0 16px;
      color: var(--ink);
    }
    .find-us-header p {
      font-size: 16px;
      line-height: 1.75;
      color: var(--ink-soft);
      max-width: 580px;
      margin: 0 auto;
    }
    .find-us-grid {
      display: grid;
      grid-template-columns: 1.4fr 1fr;
      gap: 36px;
      max-width: 1200px;
      margin: 0 auto;
    }
    .map-card {
      background: var(--bg-card);
      border-radius: 8px;
      overflow: hidden;
      box-shadow: 0 4px 24px rgba(0,0,0,0.06);
      min-height: 460px;
    }
    .map-card iframe {
      width: 100%;
      height: 460px;
      border: 0;
      display: block;
    }
    .gbp-card {
      background: var(--bg-card);
      padding: 42px 38px;
      border-radius: 8px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      box-shadow: 0 4px 24px rgba(0,0,0,0.06);
    }
    .gbp-header {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 18px;
    }
    .gbp-icon {
      width: 32px;
      height: 32px;
      background: var(--ink);
      color: var(--bg);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--sans);
      font-size: 14px;
      font-weight: 600;
    }
    .gbp-label {
      font-size: 11px;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--ink-mute);
      font-family: var(--sans);
    }
    .gbp-card h3 {
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 400;
      margin: 0 0 6px;
      color: var(--ink);
    }
    .gbp-rating {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 18px;
      font-family: var(--sans);
      font-size: 13px;
      color: var(--ink-soft);
    }
    .gbp-rating .stars { color: var(--star); letter-spacing: 1px; }
    .gbp-rating .meta { color: var(--ink-mute); }
    .gbp-detail {
      font-size: 14px;
      line-height: 1.7;
      color: var(--ink-soft);
      margin-bottom: 12px;
    }
    .gbp-detail-label {
      font-size: 10px;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      color: var(--ink-mute);
      margin-bottom: 4px;
      font-family: var(--sans);
    }
    .gbp-actions {
      display: flex;
      flex-direction: column;
      gap: 10px;
      font-family: var(--sans);
      margin-top: 20px;
    }
    .gbp-actions a {
      padding: 12px 20px;
      font-size: 11px;
      letter-spacing: 2px;
      text-transform: uppercase;
      text-align: center;
    }
    .gbp-actions a.primary { background: var(--ink); color: var(--bg); }
    .gbp-actions a.secondary { border: 0.5px solid var(--ink); color: var(--ink); }
    .gbp-actions a.primary:hover { opacity: 0.85; }
    .gbp-actions a.secondary:hover { background: var(--ink); color: var(--bg); opacity: 1; }

    /* ---------- Final CTA ---------- */
    .final-cta {
      padding: 140px 60px;
      background: var(--bg-dark);
      color: var(--bg);
      text-align: center;
      position: relative;
      overflow: hidden;
    }
    .final-cta::before {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse at center, rgba(201,191,163,0.08) 0%, transparent 60%);
      pointer-events: none;
    }
    .final-cta > * { position: relative; }
    .final-cta h2 {
      font-family: var(--serif);
      font-size: 48px;
      font-weight: 400;
      letter-spacing: -0.5px;
      margin: 0 0 24px;
    }
    .final-cta p {
      font-size: 17px;
      line-height: 1.75;
      max-width: 580px;
      margin: 0 auto 44px;
      color: var(--ink-light);
    }
    .btn-light {
      background: var(--bg);
      color: var(--ink);
      border: none;
      padding: 18px 48px;
      font-size: 12px;
      letter-spacing: 2.8px;
    }
    .btn-light:hover {
      opacity: 1;
      background: var(--gold);
    }

    /* ---------- Footer ---------- */
    footer {
      padding: 50px 60px 40px;
      background: var(--bg);
      border-top: 0.5px solid rgba(0,0,0,0.1);
      font-family: var(--serif);
      font-size: 13px;
      line-height: 1.8;
      color: var(--ink-soft);
    }
    .footer-grid {
      display: grid;
      grid-template-columns: 1.2fr 1fr 1fr 1fr;
      gap: 40px;
      max-width: 1100px;
      margin: 0 auto;
    }
    .footer-grid .footer-logo {
      font-family: var(--serif);
      font-size: 16px;
      letter-spacing: 4px;
      margin-bottom: 16px;
      color: var(--ink);
    }
    .footer-grid .col-heading {
      font-family: var(--sans);
      font-size: 11px;
      letter-spacing: 2px;
      text-transform: uppercase;
      margin-bottom: 12px;
      color: var(--ink);
    }
    .footer-grid p { margin: 0 0 8px; }
    .footer-grid .small { font-size: 12px; color: var(--ink-mute); }
    .footer-bottom {
      max-width: 1100px;
      margin: 32px auto 0;
      padding-top: 24px;
      border-top: 0.5px solid rgba(0,0,0,0.1);
      display: flex;
      justify-content: space-between;
      font-family: var(--sans);
      font-size: 11px;
      color: var(--ink-mute);
      flex-wrap: wrap;
      gap: 16px;
    }

    /* ---------- Footer social icons ---------- */
    .footer-social {
      margin-top: 16px;
    }
    .footer-social-handle {
      display: block;
      font-family: var(--sans);
      font-size: 12px;
      letter-spacing: 0.5px;
      color: var(--ink-soft);
      margin-bottom: 12px;
    }
    .footer-social-icons {
      display: flex;
      gap: 12px;
    }
    .footer-social-icons a {
      width: 38px;
      height: 38px;
      border: 1px solid var(--ink);
      border-radius: 50%;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: var(--ink);
      transition: background 0.25s ease, color 0.25s ease;
    }
    .footer-social-icons a:hover {
      background: var(--ink);
      color: var(--bg);
      opacity: 1;
    }
    .footer-social-icons svg {
      width: 18px;
      height: 18px;
    }

    /* ---------- Floating Google Reviews badge ---------- */
    .google-badge {
      position: fixed;
      bottom: 24px;
      left: 24px;
      z-index: 90;
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 14px 20px 14px 16px;
      background: #ffffff;
      border-radius: 10px;
      border-top: 3px solid #34a853;
      box-shadow: 0 10px 32px rgba(0,0,0,0.14), 0 2px 8px rgba(0,0,0,0.06);
      font-family: var(--sans);
      text-decoration: none;
      color: #202124;
      transform: translateY(20px);
      opacity: 0;
      transition: transform 0.5s ease, opacity 0.5s ease, box-shadow 0.25s ease;
      max-width: 260px;
    }
    .google-badge.visible {
      transform: translateY(0);
      opacity: 1;
    }
    .google-badge:hover {
      opacity: 1;
      box-shadow: 0 14px 40px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.08);
    }
    .google-badge .g-logo {
      width: 32px;
      height: 32px;
      flex-shrink: 0;
    }
    .google-badge-body {
      display: flex;
      flex-direction: column;
      gap: 2px;
      line-height: 1.2;
    }
    .google-badge-title {
      font-size: 12.5px;
      color: #5f6368;
      font-weight: 400;
      letter-spacing: 0.1px;
    }
    .google-badge-rating {
      display: flex;
      align-items: center;
      gap: 6px;
    }
    .google-badge-score {
      font-size: 16px;
      font-weight: 600;
      color: #202124;
    }
    .google-badge-stars {
      color: #fbbc04;
      font-size: 13px;
      letter-spacing: 0.5px;
      line-height: 1;
    }
    .google-badge-count {
      font-size: 11px;
      color: #5f6368;
      margin-top: 1px;
    }
    .google-badge-close {
      position: absolute;
      top: 4px;
      right: 6px;
      width: 18px;
      height: 18px;
      background: transparent;
      border: none;
      color: #9aa0a6;
      font-size: 16px;
      cursor: pointer;
      padding: 0;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 50%;
    }
    .google-badge-close:hover {
      background: rgba(0,0,0,0.06);
      color: #202124;
    }
    @media (max-width: 720px) {
      .google-badge {
        bottom: 16px;
        left: 16px;
        right: 16px;
        max-width: none;
      }
    }

    /* ---------- Scroll reveal animations ---------- */
    .reveal {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity 0.9s ease, transform 0.9s ease;
    }
    .reveal.visible {
      opacity: 1;
      transform: translateY(0);
    }
    @media (prefers-reduced-motion: reduce) {
      .reveal { opacity: 1; transform: none; transition: none; }
      * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
    }

    /* ---------- Responsive ---------- */
    @media (max-width: 1100px) {
      .services-grid { grid-template-columns: repeat(2, 1fr); }
      .practitioner-card { width: calc((100% - 28px) / 2); }
      .find-us-grid { grid-template-columns: 1fr; }
      .hero h1 { font-size: 48px; }
      .site-header { padding: 18px 40px; }
      .site-header.scrolled { padding: 12px 40px; }
    }
    @media (max-width: 900px) {
      .approach-grid { grid-template-columns: 1fr; gap: 40px; }
      .conditions-grid { grid-template-columns: 1fr; gap: 40px; }
      .footer-grid { grid-template-columns: 1fr 1fr; }
      .site-nav { gap: 24px; font-size: 12px; }
      .site-header .logo img { height: 44px; }
      .site-header.scrolled .logo img { height: 36px; }
      .credentials-grid { grid-template-columns: repeat(2, 1fr); gap: 36px 24px; }
      .trust-item { padding: 8px 18px; font-size: 11.5px; letter-spacing: 1.2px; }
      .partner-chip img { height: 96px; max-width: 150px; }
      .partners-row { gap: 18px; }
    }
    @media (max-width: 720px) {
      .site-header { padding: 16px 24px; }
      .site-header.scrolled { padding: 12px 24px; }
      .site-header .logo img { height: 38px; }
      .site-header.scrolled .logo img { height: 32px; }
      .site-nav, .header-cta { display: none; }
      .menu-toggle { display: block; font-size: 26px; background: none; border: none; color: var(--ink); cursor: pointer; }
      .hero { padding: 60px 24px 50px; }
      .hero h1 { font-size: 36px; }
      .hero .eyebrow::before, .hero .eyebrow::after { width: 20px; }
      .hero-image { height: 320px; }
      .hero-trust {
        margin-top: 48px;
        padding: 8px 0;
        flex-direction: column;
        gap: 0;
      }
      .trust-item {
        padding: 14px 0;
        width: 100%;
        justify-content: center;
        border-bottom: 1px solid rgba(0,0,0,0.08);
      }
      .trust-item:last-child { border-bottom: none; }
      .trust-item + .trust-item::before { display: none; }
      .credentials { padding: 50px 24px; }
      .credentials-grid { grid-template-columns: 1fr; gap: 32px; }
      .partner-chip img { height: 80px; max-width: 130px; }
      .partners-row { gap: 16px; }
      .mission, .services, .approach, .conditions, .partners,
      .practitioners, .testimonial, .find-us, .final-cta {
        padding-left: 24px;
        padding-right: 24px;
      }
      .mission { padding-top: 70px; padding-bottom: 70px; }
      .mission h2 { font-size: 30px; }
      .services { padding-top: 70px; padding-bottom: 80px; }
      .services h2,
      .conditions h2,
      .practitioners h2 { font-size: 28px; margin-bottom: 45px; }
      .approach, .practitioners, .find-us { padding-top: 80px; padding-bottom: 80px; }
      .approach h2 { font-size: 30px; }
      .approach-image { height: 320px; }
      .testimonial { padding-top: 90px; padding-bottom: 90px; }
      .testimonial blockquote { font-size: 21px; }
      .testimonial::before { font-size: 120px; top: 30px; }
      .find-us-header h2 { font-size: 30px; }
      .final-cta { padding-top: 90px; padding-bottom: 90px; }
      .final-cta h2 { font-size: 32px; }
      .services-grid { grid-template-columns: 1fr; }
      .practitioner-card { width: 100%; }
      .footer-grid { grid-template-columns: 1fr; gap: 28px; }
      footer { padding: 50px 24px 30px; }
    }
  
    /* ---------- Service page sections ---------- */
    .svc-intro {
      padding: 110px 60px;
      background: var(--bg-card);
    }
    .svc-intro-inner {
      max-width: 900px;
      margin: 0 auto;
      text-align: center;
    }
    .svc-intro h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      margin: 0 0 30px;
      color: var(--ink);
    }
    .svc-intro p {
      font-size: 17px;
      line-height: 1.85;
      color: var(--ink-soft);
      margin: 0 0 20px;
    }
    .svc-helps {
      padding: 110px 60px;
    }
    .svc-helps-grid {
      display: grid;
      grid-template-columns: 1fr 1.2fr;
      gap: 70px;
      align-items: start;
      max-width: 1200px;
      margin: 0 auto;
    }
    .svc-helps h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      margin: 0 0 24px;
      color: var(--ink);
    }
    .svc-helps p {
      font-size: 16px;
      line-height: 1.8;
      color: var(--ink-soft);
      margin: 0;
    }
    .svc-helps ul {
      list-style: none;
      padding: 0;
      margin: 0;
      columns: 1;
    }
    .svc-helps ul li {
      font-family: var(--serif);
      font-size: 16px;
      line-height: 1.6;
      color: var(--ink);
      padding: 14px 0 14px 30px;
      border-bottom: 1px solid rgba(0,0,0,0.08);
      position: relative;
    }
    .svc-helps ul li::before {
      content: '\2014';
      position: absolute;
      left: 0;
      color: var(--gold-deep);
    }
    .svc-helps ul li:last-child { border-bottom: none; }

    .svc-expect {
      padding: 110px 60px;
      background: var(--bg-soft);
    }
    .svc-expect-inner { max-width: 1000px; margin: 0 auto; }
    .svc-expect h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      text-align: center;
      margin: 0 0 18px;
      color: var(--ink);
    }
    .svc-expect-lead {
      text-align: center;
      font-size: 16px;
      line-height: 1.75;
      color: var(--ink-soft);
      max-width: 640px;
      margin: 0 auto 65px;
    }
    .svc-expect-list { display: flex; flex-direction: column; gap: 28px; }
    .svc-expect-item {
      display: grid;
      grid-template-columns: 80px 1fr;
      gap: 28px;
      align-items: start;
      padding-bottom: 28px;
      border-bottom: 1px solid rgba(0,0,0,0.1);
    }
    .svc-expect-item:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }
    .svc-expect-step {
      font-family: var(--serif);
      font-size: 28px;
      color: var(--ink-mute);
      font-style: italic;
    }
    .svc-expect-item h3 {
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 400;
      margin: 0 0 10px;
      color: var(--ink);
      letter-spacing: -0.2px;
    }
    .svc-expect-item p {
      font-size: 15px;
      line-height: 1.75;
      color: var(--ink-soft);
      margin: 0;
    }

    .svc-why {
      padding: 110px 60px;
    }
    .svc-why-inner { max-width: 1100px; margin: 0 auto; }
    .svc-why h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      text-align: center;
      margin: 0 0 55px;
      color: var(--ink);
    }
    .svc-why-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 28px;
    }
    .svc-why-card {
      background: var(--bg-card);
      padding: 32px 28px;
      border-radius: 6px;
    }
    .svc-why-card h3 {
      font-family: var(--serif);
      font-size: 19px;
      font-weight: 500;
      margin: 0 0 12px;
      color: var(--ink);
      letter-spacing: -0.1px;
    }
    .svc-why-card p {
      font-size: 14.5px;
      line-height: 1.75;
      color: var(--ink-soft);
      margin: 0;
    }

    .svc-related {
      padding: 110px 60px;
      background: var(--bg-soft);
    }
    .svc-related-inner { max-width: 1100px; margin: 0 auto; }
    .svc-related h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      text-align: center;
      margin: 0 0 55px;
      color: var(--ink);
    }
    .svc-related-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }
    .svc-related-card {
      background: var(--bg-card);
      padding: 0;
      border-radius: 6px;
      overflow: hidden;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
      display: block;
    }
    .svc-related-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 20px 40px rgba(0,0,0,0.08);
      opacity: 1;
    }
    .svc-related-image {
      height: 180px;
      background-size: cover;
      background-position: center;
    }
    .svc-related-body { padding: 24px 26px 26px; }
    .svc-related-card h3 {
      font-family: var(--serif);
      font-size: 19px;
      font-weight: 400;
      letter-spacing: -0.1px;
      margin: 0 0 8px;
      color: var(--ink);
    }
    .svc-related-card p {
      font-family: var(--sans);
      font-size: 13px;
      line-height: 1.65;
      color: var(--ink-soft);
      margin: 0 0 12px;
    }
    .svc-related-card span {
      font-family: var(--sans);
      font-size: 11px;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      color: var(--ink);
      border-bottom: 1px solid var(--ink);
      padding-bottom: 2px;
    }

    .svc-faq {
      padding: 110px 60px;
    }
    .svc-faq-inner { max-width: 880px; margin: 0 auto; }
    .svc-faq h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      text-align: center;
      margin: 0 0 55px;
      color: var(--ink);
    }
    .svc-faq-item {
      border-bottom: 1px solid rgba(0,0,0,0.12);
    }
    .svc-faq-q {
      width: 100%;
      text-align: left;
      padding: 24px 0;
      font-family: var(--serif);
      font-size: 19px;
      font-weight: 400;
      letter-spacing: -0.1px;
      color: var(--ink);
      background: transparent;
      border: none;
      cursor: pointer;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 24px;
      transition: color 0.2s ease;
    }
    .svc-faq-q:hover { color: var(--ink-mute); }
    .svc-faq-q::after {
      content: '+';
      font-family: var(--sans);
      font-size: 24px;
      font-weight: 300;
      color: var(--ink-mute);
      transition: transform 0.3s ease;
      flex-shrink: 0;
    }
    .svc-faq-item.open .svc-faq-q::after {
      transform: rotate(45deg);
    }
    .svc-faq-a {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.4s ease, padding 0.3s ease;
    }
    .svc-faq-item.open .svc-faq-a {
      max-height: 800px;
      padding: 0 0 28px;
    }
    .svc-faq-a p {
      font-size: 15.5px;
      line-height: 1.8;
      color: var(--ink-soft);
      margin: 0 0 12px;
    }
    .svc-faq-a p:last-child { margin-bottom: 0; }

    .svc-faq-foot {
      text-align: center;
      margin-top: 50px;
      font-family: var(--sans);
      font-size: 14px;
      color: var(--ink-soft);
    }
    .svc-faq-foot a {
      color: var(--ink);
      border-bottom: 1px solid var(--ink);
    }

    @media (max-width: 900px) {
      .svc-helps-grid { grid-template-columns: 1fr; gap: 30px; }
      .svc-why-grid { grid-template-columns: 1fr; }
      .svc-related-grid { grid-template-columns: 1fr; }
      .svc-intro, .svc-helps, .svc-expect, .svc-why, .svc-related, .svc-faq {
        padding: 70px 24px;
      }
      .svc-intro h2, .svc-helps h2, .svc-expect h2, .svc-why h2,
      .svc-related h2, .svc-faq h2 { font-size: 28px; }
      .svc-expect-item { grid-template-columns: 50px 1fr; gap: 16px; }
      .svc-expect-step { font-size: 22px; }
      .svc-expect-item h3 { font-size: 19px; }
    }

  
    /* ---------- Services dropdown ---------- */
    .nav-dropdown {
      position: relative;
    }
    .nav-dropdown-trigger {
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: 4px;
      position: relative;
      padding: 4px 0;
      font-size: 13px;
      letter-spacing: 1.8px;
      text-transform: uppercase;
      font-weight: 500;
      white-space: nowrap;
    }
    .nav-dropdown-trigger::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 0;
      height: 1px;
      background: var(--ink);
      transition: width 0.3s ease;
    }
    .nav-dropdown:hover .nav-dropdown-trigger::after,
    .nav-dropdown.open .nav-dropdown-trigger::after {
      width: 100%;
    }
    .nav-dropdown-trigger .dd-arrow {
      font-size: 10px;
      letter-spacing: 0;
      transition: transform 0.25s ease;
      display: inline-block;
    }
    .nav-dropdown:hover .nav-dropdown-trigger .dd-arrow,
    .nav-dropdown.open .nav-dropdown-trigger .dd-arrow {
      transform: rotate(180deg);
    }
    .nav-dropdown-menu {
      position: absolute;
      top: calc(100% + 18px);
      left: 50%;
      transform: translateX(-50%) translateY(-10px);
      min-width: 280px;
      background: var(--bg-card);
      border: 0.5px solid rgba(0,0,0,0.08);
      border-radius: 6px;
      padding: 14px 0;
      box-shadow: 0 12px 40px rgba(0,0,0,0.10), 0 2px 8px rgba(0,0,0,0.05);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
      z-index: 200;
    }
    .nav-dropdown:hover .nav-dropdown-menu,
    .nav-dropdown.open .nav-dropdown-menu {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translateX(-50%) translateY(0);
    }
    .nav-dropdown-menu::before {
      content: '';
      position: absolute;
      top: -20px;
      left: 0;
      right: 0;
      height: 20px;
    }
    .nav-dropdown-menu a {
      display: block;
      padding: 11px 24px;
      font-family: var(--sans);
      font-size: 12.5px;
      letter-spacing: 1.4px;
      text-transform: uppercase;
      color: var(--ink);
      white-space: nowrap;
      font-weight: 500;
      transition: background 0.15s ease, padding-left 0.2s ease;
    }
    .nav-dropdown-menu a:hover {
      background: var(--bg);
      padding-left: 30px;
      opacity: 1;
    }
    .nav-dropdown-menu a::after { display: none; }
    .nav-dropdown-divider {
      height: 1px;
      background: rgba(0,0,0,0.1);
      margin: 8px 24px;
    }

    @media (max-width: 720px) {
      .nav-dropdown-menu {
        display: none;
      }
    }

  

/* ---------- Contact methods ---------- */
    .contact-methods {
      padding: 90px 60px;
      background: var(--bg-card);
    }
    .contact-methods-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 24px;
      max-width: 760px;
      margin: 0 auto;
      justify-content: center;
    }
    .contact-card {
      background: var(--bg);
      padding: 38px 32px;
      border-radius: 6px;
      text-align: center;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
      display: block;
    }
    .contact-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 20px 40px rgba(0,0,0,0.08);
      opacity: 1;
    }
    .contact-card-icon {
      width: 52px;
      height: 52px;
      margin: 0 auto 18px;
      color: var(--ink);
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .contact-card-icon svg { width: 100%; height: 100%; }
    .contact-card h3 {
      font-family: var(--sans);
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      color: var(--ink-mute);
      margin: 0 0 12px;
    }
    .contact-card-value {
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 400;
      color: var(--ink);
      margin: 0 0 8px;
      line-height: 1.3;
    }
    .contact-card-meta {
      font-family: var(--sans);
      font-size: 12.5px;
      color: var(--ink-mute);
      margin: 0;
      line-height: 1.5;
    }

    /* ---------- Visit (hours + map) ---------- */
    .visit { padding: 110px 60px; }
    .visit-grid {
      display: grid;
      grid-template-columns: 1fr 1.2fr;
      gap: 60px;
      max-width: 1200px;
      margin: 0 auto;
      align-items: start;
    }
    .visit-info h2 {
      font-family: var(--serif);
      font-size: 36px;
      font-weight: 400;
      letter-spacing: -0.3px;
      line-height: 1.2;
      margin: 0 0 24px;
      color: var(--ink);
    }
    .visit-info > p {
      font-size: 16px;
      line-height: 1.8;
      color: var(--ink-soft);
      margin: 0 0 36px;
    }
    .visit-detail { margin-bottom: 28px; }
    .visit-detail-label {
      font-family: var(--sans);
      font-size: 11px;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--ink-mute);
      margin-bottom: 8px;
      font-weight: 500;
    }
    .visit-detail-value {
      font-family: var(--serif);
      font-size: 17px;
      line-height: 1.6;
      color: var(--ink);
      margin: 0;
    }
    .visit-hours {
      list-style: none;
      padding: 0;
      margin: 0;
      font-family: var(--serif);
      font-size: 16px;
      color: var(--ink);
    }
    .visit-hours li {
      display: flex;
      justify-content: space-between;
      padding: 8px 0;
      border-bottom: 1px solid rgba(0,0,0,0.08);
    }
    .visit-hours li:last-child { border-bottom: none; }
    .visit-hours span:last-child { color: var(--ink-soft); }
    .visit-map-stack {
      display: flex;
      flex-direction: column;
      gap: 20px;
    }

    /* ---------- Explore links ---------- */
    .explore {
      padding: 110px 60px;
      background: var(--bg-soft);
      text-align: center;
    }
    .explore h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      margin: 0 0 16px;
      color: var(--ink);
    }
    .explore-lead {
      font-size: 16px;
      line-height: 1.7;
      color: var(--ink-soft);
      max-width: 580px;
      margin: 0 auto 55px;
    }
    .explore-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
      max-width: 1100px;
      margin: 0 auto;
    }
    .explore-card {
      background: var(--bg-card);
      padding: 32px 28px;
      border-radius: 6px;
      text-align: left;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
      display: block;
    }
    .explore-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 16px 32px rgba(0,0,0,0.06);
      opacity: 1;
    }
    .explore-card h3 {
      font-family: var(--serif);
      font-size: 20px;
      font-weight: 400;
      letter-spacing: -0.2px;
      margin: 0 0 10px;
      color: var(--ink);
    }
    .explore-card p {
      font-family: var(--sans);
      font-size: 13.5px;
      line-height: 1.65;
      color: var(--ink-soft);
      margin: 0;
    }

    @media (max-width: 900px) {
      .contact-methods-grid { grid-template-columns: 1fr; }
      .visit-grid { grid-template-columns: 1fr; gap: 50px; }
      .explore-grid { grid-template-columns: 1fr; }
    }
    @media (max-width: 720px) {
      .contact-methods { padding: 60px 24px; }
      .visit { padding: 70px 24px; }
      .visit-info h2 { font-size: 28px; }
      .explore { padding: 70px 24px; }
      .explore h2 { font-size: 28px; }
      .contact-card-value { font-size: 18px; }
    }

  
    /* ---------- Services dropdown ---------- */
    .nav-dropdown {
      position: relative;
    }
    .nav-dropdown-trigger {
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: 4px;
      position: relative;
      padding: 4px 0;
      font-size: 13px;
      letter-spacing: 1.8px;
      text-transform: uppercase;
      font-weight: 500;
      white-space: nowrap;
    }
    .nav-dropdown-trigger::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 0;
      height: 1px;
      background: var(--ink);
      transition: width 0.3s ease;
    }
    .nav-dropdown:hover .nav-dropdown-trigger::after,
    .nav-dropdown.open .nav-dropdown-trigger::after {
      width: 100%;
    }
    .nav-dropdown-trigger .dd-arrow {
      font-size: 10px;
      letter-spacing: 0;
      transition: transform 0.25s ease;
      display: inline-block;
    }
    .nav-dropdown:hover .nav-dropdown-trigger .dd-arrow,
    .nav-dropdown.open .nav-dropdown-trigger .dd-arrow {
      transform: rotate(180deg);
    }
    .nav-dropdown-menu {
      position: absolute;
      top: calc(100% + 18px);
      left: 50%;
      transform: translateX(-50%) translateY(-10px);
      min-width: 280px;
      background: var(--bg-card);
      border: 0.5px solid rgba(0,0,0,0.08);
      border-radius: 6px;
      padding: 14px 0;
      box-shadow: 0 12px 40px rgba(0,0,0,0.10), 0 2px 8px rgba(0,0,0,0.05);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
      z-index: 200;
    }
    .nav-dropdown:hover .nav-dropdown-menu,
    .nav-dropdown.open .nav-dropdown-menu {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translateX(-50%) translateY(0);
    }
    .nav-dropdown-menu::before {
      content: '';
      position: absolute;
      top: -20px;
      left: 0;
      right: 0;
      height: 20px;
    }
    .nav-dropdown-menu a {
      display: block;
      padding: 11px 24px;
      font-family: var(--sans);
      font-size: 12.5px;
      letter-spacing: 1.4px;
      text-transform: uppercase;
      color: var(--ink);
      white-space: nowrap;
      font-weight: 500;
      transition: background 0.15s ease, padding-left 0.2s ease;
    }
    .nav-dropdown-menu a:hover {
      background: var(--bg);
      padding-left: 30px;
      opacity: 1;
    }
    .nav-dropdown-menu a::after { display: none; }
    .nav-dropdown-divider {
      height: 1px;
      background: rgba(0,0,0,0.1);
      margin: 8px 24px;
    }

    @media (max-width: 720px) {
      .nav-dropdown-menu {
        display: none;
      }
    }

  

/* ---------- Team grid (detailed cards) ---------- */
    .team-grid-section {
      padding: 110px 60px;
    }
    .team-grid {
      max-width: 1200px;
      margin: 0 auto;
      display: flex;
      flex-direction: column;
      gap: 90px;
    }
    .team-member {
      display: grid;
      grid-template-columns: 1fr 1.2fr;
      gap: 60px;
      align-items: center;
    }
    .team-member-flip {
      grid-template-columns: 1.2fr 1fr;
    }
    .team-member-flip .team-photo { order: 2; }
    .team-member-flip .team-info { order: 1; }
    .team-photo {
      width: 100%;
      aspect-ratio: 4 / 5;
      background-size: cover;
      background-position: center 22%;
      border-radius: 6px;
    }
    .team-info { padding: 0 8px; }
    .team-role {
      font-family: var(--sans);
      font-size: 11px;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      color: var(--ink-mute);
      margin-bottom: 14px;
      font-weight: 500;
    }
    .team-info h2 {
      font-family: var(--serif);
      font-size: 34px;
      font-weight: 400;
      letter-spacing: -0.3px;
      margin: 0 0 18px;
      color: var(--ink);
    }
    .team-creds {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 22px;
    }
    .team-cred {
      font-family: var(--sans);
      font-size: 11px;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      color: var(--ink);
      padding: 6px 12px;
      border: 0.5px solid var(--ink);
      border-radius: 100px;
      font-weight: 500;
    }
    .team-info p {
      font-size: 15.5px;
      line-height: 1.8;
      color: var(--ink-soft);
      margin: 0 0 18px;
    }
    .team-specialties {
      font-family: var(--sans);
      font-size: 13px;
      line-height: 1.7;
      color: var(--ink-soft);
      padding: 14px 0;
      border-top: 1px solid rgba(0,0,0,0.1);
      border-bottom: 1px solid rgba(0,0,0,0.1);
      margin-bottom: 22px;
    }
    .team-specialties strong {
      font-weight: 600;
      letter-spacing: 1.2px;
      text-transform: uppercase;
      font-size: 11px;
      color: var(--ink);
      display: inline-block;
      margin-right: 6px;
    }
    .team-link {
      font-family: var(--sans);
      font-size: 12px;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--ink);
      border-bottom: 1px solid var(--ink);
      padding-bottom: 3px;
      font-weight: 500;
      display: inline-block;
      transition: letter-spacing 0.2s ease;
    }
    .team-link:hover {
      opacity: 1;
      letter-spacing: 2.5px;
    }

    /* ---------- Section lead (reused) ---------- */
    .section-lead {
      font-size: 16px;
      line-height: 1.75;
      color: var(--ink-soft);
      max-width: 640px;
      margin: 0 auto 60px;
      text-align: center;
    }

    /* ---------- Credentials list ---------- */
    .credentials-detail {
      padding: 110px 60px;
      background: var(--bg-soft);
    }
    .credentials-detail-inner {
      max-width: 900px;
      margin: 0 auto;
    }
    .credentials-detail h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      text-align: center;
      margin: 0 0 18px;
      color: var(--ink);
    }
    .cred-list {
      display: flex;
      flex-direction: column;
      gap: 36px;
    }
    .cred-item {
      display: grid;
      grid-template-columns: 80px 1fr;
      gap: 28px;
      align-items: start;
      padding-bottom: 32px;
      border-bottom: 1px solid rgba(0,0,0,0.1);
    }
    .cred-item:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }
    .cred-marker {
      font-family: var(--serif);
      font-size: 28px;
      color: var(--ink-mute);
      font-style: italic;
    }
    .cred-item h3 {
      font-family: var(--serif);
      font-size: 22px;
      font-weight: 400;
      margin: 0 0 10px;
      color: var(--ink);
      letter-spacing: -0.2px;
    }
    .cred-item p {
      font-size: 15px;
      line-height: 1.8;
      color: var(--ink-soft);
      margin: 0;
    }

    /* ---------- Standards ---------- */
    .standards {
      padding: 110px 60px;
    }
    .standards-inner {
      max-width: 1100px;
      margin: 0 auto;
    }
    .standards h2 {
      font-family: var(--serif);
      font-size: 38px;
      font-weight: 400;
      letter-spacing: -0.3px;
      text-align: center;
      margin: 0 0 18px;
      color: var(--ink);
    }
    .standards-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
    }
    .standard {
      background: var(--bg-card);
      padding: 32px 28px;
      border-radius: 6px;
      transition: transform 0.3s ease, box-shadow 0.3s ease;
    }
    .standard:hover {
      transform: translateY(-4px);
      box-shadow: 0 16px 32px rgba(0,0,0,0.06);
    }
    .standard h3 {
      font-family: var(--serif);
      font-size: 19px;
      font-weight: 500;
      letter-spacing: -0.1px;
      margin: 0 0 12px;
      color: var(--ink);
    }
    .standard p {
      font-size: 14.5px;
      line-height: 1.75;
      color: var(--ink-soft);
      margin: 0;
    }

    /* ---------- Philosophy ---------- */
    .philosophy {
      padding: 130px 80px;
      background: var(--bg-soft);
    }
    .philosophy-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 70px;
      align-items: center;
      max-width: 1200px;
      margin: 0 auto;
    }
    .philosophy-image {
      width: 100%;
      aspect-ratio: 4 / 5;
      background-size: cover;
      background-position: center;
      border-radius: 6px;
    }
    .philosophy h2 {
      font-family: var(--serif);
      font-size: 40px;
      font-weight: 400;
      letter-spacing: -0.3px;
      line-height: 1.2;
      margin: 0 0 26px;
      color: var(--ink);
    }
    .philosophy p {
      font-size: 16px;
      line-height: 1.85;
      color: var(--ink-soft);
      margin: 0 0 18px;
    }

    @media (max-width: 900px) {
      .team-grid-section { padding: 70px 24px; }
      .team-grid { gap: 70px; }
      .team-member, .team-member-flip {
        grid-template-columns: 1fr;
        gap: 30px;
      }
      .team-member-flip .team-photo { order: unset; }
      .team-member-flip .team-info { order: unset; }
      .team-info h2 { font-size: 28px; }
      .credentials-detail { padding: 70px 24px; }
      .credentials-detail h2,
      .standards h2 { font-size: 30px; }
      .cred-item { grid-template-columns: 50px 1fr; gap: 16px; }
      .cred-marker { font-size: 22px; }
      .cred-item h3 { font-size: 19px; }
      .standards { padding: 70px 24px; }
      .standards-grid { grid-template-columns: 1fr; gap: 18px; }
      .philosophy { padding: 70px 24px; }
      .philosophy-grid { grid-template-columns: 1fr; gap: 40px; }
      .philosophy h2 { font-size: 30px; }
    }

  
    /* ---------- Services dropdown ---------- */
    .nav-dropdown {
      position: relative;
    }
    .nav-dropdown-trigger {
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: 4px;
      position: relative;
      padding: 4px 0;
      font-size: 13px;
      letter-spacing: 1.8px;
      text-transform: uppercase;
      font-weight: 500;
      white-space: nowrap;
    }
    .nav-dropdown-trigger::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 0;
      height: 1px;
      background: var(--ink);
      transition: width 0.3s ease;
    }
    .nav-dropdown:hover .nav-dropdown-trigger::after,
    .nav-dropdown.open .nav-dropdown-trigger::after {
      width: 100%;
    }
    .nav-dropdown-trigger .dd-arrow {
      font-size: 10px;
      letter-spacing: 0;
      transition: transform 0.25s ease;
      display: inline-block;
    }
    .nav-dropdown:hover .nav-dropdown-trigger .dd-arrow,
    .nav-dropdown.open .nav-dropdown-trigger .dd-arrow {
      transform: rotate(180deg);
    }
    .nav-dropdown-menu {
      position: absolute;
      top: calc(100% + 18px);
      left: 50%;
      transform: translateX(-50%) translateY(-10px);
      min-width: 280px;
      background: var(--bg-card);
      border: 0.5px solid rgba(0,0,0,0.08);
      border-radius: 6px;
      padding: 14px 0;
      box-shadow: 0 12px 40px rgba(0,0,0,0.10), 0 2px 8px rgba(0,0,0,0.05);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
      z-index: 200;
    }
    .nav-dropdown:hover .nav-dropdown-menu,
    .nav-dropdown.open .nav-dropdown-menu {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translateX(-50%) translateY(0);
    }
    .nav-dropdown-menu::before {
      content: '';
      position: absolute;
      top: -20px;
      left: 0;
      right: 0;
      height: 20px;
    }
    .nav-dropdown-menu a {
      display: block;
      padding: 11px 24px;
      font-family: var(--sans);
      font-size: 12.5px;
      letter-spacing: 1.4px;
      text-transform: uppercase;
      color: var(--ink);
      white-space: nowrap;
      font-weight: 500;
      transition: background 0.15s ease, padding-left 0.2s ease;
    }
    .nav-dropdown-menu a:hover {
      background: var(--bg);
      padding-left: 30px;
      opacity: 1;
    }
    .nav-dropdown-menu a::after { display: none; }
    .nav-dropdown-divider {
      height: 1px;
      background: rgba(0,0,0,0.1);
      margin: 8px 24px;
    }

    @media (max-width: 720px) {
      .nav-dropdown-menu {
        display: none;
      }
    }

  

/* ---------- FAQ category nav ---------- */
    .faq-cat-nav {
      padding: 90px 60px 60px;
      background: var(--bg-card);
    }
    .faq-cat-nav-inner { max-width: 1100px; margin: 0 auto; }
    .faq-cat-nav h2 {
      font-family: var(--serif);
      font-size: 30px;
      font-weight: 400;
      letter-spacing: -0.2px;
      text-align: center;
      margin: 0 0 40px;
      color: var(--ink);
    }
    .faq-cat-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 12px;
    }
    .faq-cat-grid a {
      padding: 18px 16px;
      background: var(--bg);
      border-radius: 4px;
      font-family: var(--sans);
      font-size: 12.5px;
      letter-spacing: 1px;
      text-align: center;
      color: var(--ink);
      border: 0.5px solid rgba(0,0,0,0.1);
      transition: background 0.25s ease, color 0.25s ease;
    }
    .faq-cat-grid a:hover {
      background: var(--ink);
      color: var(--bg);
      opacity: 1;
    }

    /* ---------- FAQ categories ---------- */
    .faq-categories {
      padding: 80px 60px 110px;
    }
    .faq-categories-inner {
      max-width: 880px;
      margin: 0 auto;
    }
    .faq-category {
      padding: 70px 0;
      border-bottom: 1px solid rgba(0,0,0,0.12);
    }
    .faq-category:first-child { padding-top: 30px; }
    .faq-category:last-child { border-bottom: none; }
    .faq-cat-label {
      font-family: var(--sans);
      font-size: 11px;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      color: var(--ink-mute);
      margin-bottom: 14px;
      font-weight: 500;
    }
    .faq-category > h2 {
      font-family: var(--serif);
      font-size: 32px;
      font-weight: 400;
      letter-spacing: -0.3px;
      margin: 0 0 36px;
      color: var(--ink);
    }
    .faq-q-item {
      border-bottom: 1px solid rgba(0,0,0,0.08);
    }
    .faq-q-btn {
      width: 100%;
      text-align: left;
      padding: 22px 0;
      font-family: var(--serif);
      font-size: 18px;
      font-weight: 400;
      color: var(--ink);
      background: transparent;
      border: none;
      cursor: pointer;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 24px;
    }
    .faq-q-btn::after {
      content: '+';
      font-family: var(--sans);
      font-size: 22px;
      font-weight: 300;
      color: var(--ink-mute);
      transition: transform 0.3s ease;
      flex-shrink: 0;
    }
    .faq-q-item.open .faq-q-btn::after {
      transform: rotate(45deg);
    }
    .faq-q-ans {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.4s ease, padding 0.3s ease;
    }
    .faq-q-item.open .faq-q-ans {
      max-height: 800px;
      padding: 0 0 24px;
    }
    .faq-q-ans p {
      font-size: 15.5px;
      line-height: 1.8;
      color: var(--ink-soft);
      margin: 0 0 12px;
    }
    .faq-q-ans p:last-child { margin-bottom: 0; }
    .faq-q-ans a {
      color: var(--ink);
      border-bottom: 1px solid var(--ink);
    }

    @media (max-width: 900px) {
      .faq-cat-grid { grid-template-columns: repeat(2, 1fr); }
      .faq-cat-nav, .faq-categories { padding-left: 24px; padding-right: 24px; }
      .faq-category > h2 { font-size: 26px; }
    }

  
    /* ---------- Services dropdown ---------- */
    .nav-dropdown {
      position: relative;
    }
    .nav-dropdown-trigger {
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: 4px;
      position: relative;
      padding: 4px 0;
      font-size: 13px;
      letter-spacing: 1.8px;
      text-transform: uppercase;
      font-weight: 500;
      white-space: nowrap;
    }
    .nav-dropdown-trigger::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 0;
      height: 1px;
      background: var(--ink);
      transition: width 0.3s ease;
    }
    .nav-dropdown:hover .nav-dropdown-trigger::after,
    .nav-dropdown.open .nav-dropdown-trigger::after {
      width: 100%;
    }
    .nav-dropdown-trigger .dd-arrow {
      font-size: 10px;
      letter-spacing: 0;
      transition: transform 0.25s ease;
      display: inline-block;
    }
    .nav-dropdown:hover .nav-dropdown-trigger .dd-arrow,
    .nav-dropdown.open .nav-dropdown-trigger .dd-arrow {
      transform: rotate(180deg);
    }
    .nav-dropdown-menu {
      position: absolute;
      top: calc(100% + 18px);
      left: 50%;
      transform: translateX(-50%) translateY(-10px);
      min-width: 280px;
      background: var(--bg-card);
      border: 0.5px solid rgba(0,0,0,0.08);
      border-radius: 6px;
      padding: 14px 0;
      box-shadow: 0 12px 40px rgba(0,0,0,0.10), 0 2px 8px rgba(0,0,0,0.05);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
      z-index: 200;
    }
    .nav-dropdown:hover .nav-dropdown-menu,
    .nav-dropdown.open .nav-dropdown-menu {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
      transform: translateX(-50%) translateY(0);
    }
    .nav-dropdown-menu::before {
      content: '';
      position: absolute;
      top: -20px;
      left: 0;
      right: 0;
      height: 20px;
    }
    .nav-dropdown-menu a {
      display: block;
      padding: 11px 24px;
      font-family: var(--sans);
      font-size: 12.5px;
      letter-spacing: 1.4px;
      text-transform: uppercase;
      color: var(--ink);
      white-space: nowrap;
      font-weight: 500;
      transition: background 0.15s ease, padding-left 0.2s ease;
    }
    .nav-dropdown-menu a:hover {
      background: var(--bg);
      padding-left: 30px;
      opacity: 1;
    }
    .nav-dropdown-menu a::after { display: none; }
    .nav-dropdown-divider {
      height: 1px;
      background: rgba(0,0,0,0.1);
      margin: 8px 24px;
    }

    @media (max-width: 720px) {
      .nav-dropdown-menu {
        display: none;
      }
    }
    
    
    /* ============================================================
   BLOG (index + post) — REPLACES the earlier "BLOG INDEX" block
   at the bottom of /assets/style.css. Delete everything from
   the old "BLOG INDEX" comment down, then paste this instead.
   Uses the site's design tokens. Black ink accents only.
   ============================================================ */

/* ---------- Blog index hero ---------- */
.blog-hero {
  text-align: center;
  padding: 90px 60px 50px;
}
.blog-hero h1 {
  font-family: var(--serif);
  font-size: 48px;
  font-weight: 400;
  letter-spacing: -0.3px;
  line-height: 1.12;
  color: var(--ink);
  margin: 0 0 18px;
}
.blog-hero-sub {
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink-soft);
  max-width: 620px;
  margin: 0 auto;
}

/* ---------- Blog grid ---------- */
.blog-grid-section {
  padding: 30px 60px 110px;
}
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1240px;
  margin: 0 auto;
}
.blog-card {
  background: var(--bg-card);
  border-radius: 6px;
  overflow: hidden;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.blog-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(0,0,0,0.08);
}
.blog-card-link { display: block; }
.blog-card-image { overflow: hidden; }
.blog-card-image img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.blog-card:hover .blog-card-image img { transform: scale(1.05); }
.blog-card-body { padding: 26px 26px 28px; }
.blog-card-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--ink-mute);
  margin: 0 0 12px;
  font-weight: 500;
}
.blog-card-category { color: var(--ink); }
.blog-card-title {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 400;
  letter-spacing: -0.2px;
  line-height: 1.35;
  color: var(--ink);
  margin: 0 0 10px;
}
.blog-card-excerpt {
  font-size: 14px;
  line-height: 1.75;
  color: var(--ink-soft);
  margin: 0 0 14px;
}
.blog-card-author {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--ink);
  margin: 0;
  font-weight: 500;
}

/* ---------- Pagination ---------- */
.blog-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 60px;
  font-family: var(--sans);
}
.page-link {
  display: inline-block;
  min-width: 40px;
  padding: 11px 15px;
  text-align: center;
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--ink);
  border: 0.5px solid var(--ink);
  border-radius: 2px;
  font-weight: 500;
  transition: background 0.2s ease, color 0.2s ease;
}
.page-link:hover {
  background: var(--ink);
  color: var(--bg);
  opacity: 1;
}
.page-current {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}
.page-prev, .page-next { border: none; }

/* ---------- Post hero ---------- */
.post-hero {
  text-align: center;
  padding: 90px 60px 44px;
}
.post-hero-inner { max-width: 880px; margin: 0 auto; }
.post-hero h1 {
  font-family: var(--serif);
  font-size: 48px;
  font-weight: 400;
  letter-spacing: -0.3px;
  line-height: 1.15;
  color: var(--ink);
  margin: 0 0 20px;
}
.post-meta {
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--ink-mute);
  font-weight: 500;
}
.post-meta a {
  color: var(--ink);
  border-bottom: 1px solid var(--ink);
  padding-bottom: 2px;
}
.meta-dot { margin: 0 10px; }

/* ---------- Featured image card ---------- */
.post-feature {
  max-width: 1020px;
  margin: 0 auto;
  padding: 0 60px;
}
.post-feature img {
  width: 100%;
  border-radius: 6px;
  box-shadow: 0 16px 44px rgba(0,0,0,0.12);
}

/* ---------- Post body card ---------- */
.post-shell { padding: 0 60px 50px; }
.post-card {
  background: var(--bg-card);
  border-radius: 6px;
  max-width: 840px;
  margin: -70px auto 0;
  position: relative;
  padding: 68px 76px 76px;
  box-shadow: 0 6px 30px rgba(0,0,0,0.06);
}
.post-card p {
  font-size: 16.5px;
  line-height: 1.85;
  color: var(--ink-soft);
  margin: 0 0 20px;
}
.post-lead {
  font-size: 19px !important;
  line-height: 1.75 !important;
  color: var(--ink) !important;
}
.post-card h2 {
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 400;
  letter-spacing: -0.2px;
  line-height: 1.3;
  color: var(--ink);
  margin: 50px 0 18px;
  padding-top: 28px;
  border-top: 1px solid rgba(0,0,0,0.1);
}
.post-card h2:first-of-type { border-top: none; padding-top: 0; }
.h2-step {
  font-family: var(--serif);
  font-size: 22px;
  font-style: italic;
  color: var(--ink-mute);
  display: block;
  margin-bottom: 4px;
}
.post-card h3 {
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 400;
  color: var(--ink);
  margin: 30px 0 12px;
}

/* ---------- Checklist ---------- */
.post-checklist {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
}
.post-checklist li {
  font-size: 15.5px;
  line-height: 1.75;
  color: var(--ink-soft);
  padding: 0 0 12px 30px;
  position: relative;
}
.post-checklist li::before {
  content: '\2014';
  position: absolute;
  left: 0;
  color: var(--gold-deep);
}

/* ---------- Callout ---------- */
.post-callout {
  background: var(--bg);
  border: 0.5px solid rgba(0,0,0,0.15);
  border-radius: 6px;
  padding: 30px 34px 18px;
  margin: 36px 0;
}
.post-callout .eyebrow { margin-bottom: 16px; }

/* ---------- Post FAQ heading (accordion reuses .svc-faq-item) ---------- */
.post-faq { margin-top: 56px; }
.post-faq .faq-heading {
  border-top: none;
  padding-top: 0;
  margin-top: 8px;
}

/* ---------- Post CTA ---------- */
.post-cta {
  background: var(--bg-dark);
  border-radius: 6px;
  text-align: center;
  padding: 52px 44px;
  margin-top: 56px;
  position: relative;
  overflow: hidden;
}
.post-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, rgba(201,191,163,0.08) 0%, transparent 60%);
  pointer-events: none;
}
.post-cta > * { position: relative; }
.post-cta .eyebrow { color: var(--ink-light); }
.post-cta h3 {
  font-family: var(--serif);
  font-size: 27px;
  font-weight: 400;
  color: var(--bg);
  margin: 10px 0 14px;
}
.post-cta p {
  color: var(--ink-light);
  max-width: 460px;
  margin: 0 auto 28px;
}
.post-cta .btn-light { display: inline-block; }

/* ---------- Related posts ---------- */
.post-related-section {
  padding: 60px 60px 110px;
  background: var(--bg-soft);
}
.post-related-inner {
  max-width: 1240px;
  margin: 0 auto;
  text-align: center;
}
.post-related-inner h2 {
  font-family: var(--serif);
  font-size: 38px;
  font-weight: 400;
  letter-spacing: -0.3px;
  color: var(--ink);
  margin: 8px 0 50px;
}
.related-grid { text-align: left; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .blog-grid { grid-template-columns: repeat(2, 1fr); }
  .blog-hero, .blog-grid-section, .post-hero,
  .post-feature, .post-shell, .post-related-section {
    padding-left: 24px;
    padding-right: 24px;
  }
}
@media (max-width: 720px) {
  .blog-grid { grid-template-columns: 1fr; }
  .blog-hero h1 { font-size: 34px; }
  .post-hero { padding-top: 60px; }
  .post-hero h1 { font-size: 32px; }
  .post-card {
    padding: 42px 26px 50px;
    margin-top: -34px;
  }
  .post-card h2 { font-size: 24px; }
  .post-related-inner h2 { font-size: 28px; }
}


/* ============================================================
   MEMBERSHIP PAGE — append to /assets/style.css
   Pricing cards, staggered reveals, tokenized, black ink only.
   ============================================================ */

/* ---------- Perks bar ---------- */
.mem-perks {
  background: var(--bg-dark);
  padding: 44px 60px;
}
.mem-perks-inner {
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px 40px;
}
.mem-perks .label {
  grid-column: 1 / -1;
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 4px;
}
.mem-perk {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  color: var(--ink-light);
  font-size: 14px;
  line-height: 1.6;
}
.mem-perk::before {
  content: '';
  width: 10px;
  height: 5px;
  border-left: 1.5px solid var(--gold);
  border-bottom: 1.5px solid var(--gold);
  transform: rotate(-45deg);
  flex-shrink: 0;
  margin-top: 7px;
}
/* Notes below the perks, readable on the dark band */
.mem-notes {
  max-width: 940px;
  margin: 34px auto 0;
  padding-top: 26px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  text-align: center;
}
.mem-notes p {
  font-family: var(--sans);
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--ink-light);
  opacity: 0.82;
  margin: 0 0 10px;
}
.mem-notes p:last-child { margin: 0; }

/* ---------- Plan sections ---------- */
.mem-section { padding: 100px 60px; }
.mem-section.alt { background: var(--bg-soft); }
.mem-section-inner { max-width: 1240px; margin: 0 auto; }
.mem-section h2 {
  font-family: var(--serif);
  font-size: 38px;
  font-weight: 400;
  letter-spacing: -0.3px;
  text-align: center;
  margin: 0 0 14px;
  color: var(--ink);
}
.mem-section .eyebrow { text-align: center; }
.mem-lead {
  font-size: 16px;
  line-height: 1.75;
  color: var(--ink-soft);
  max-width: 620px;
  margin: 0 auto 56px;
  text-align: center;
}

/* ---------- Pricing cards ---------- */
.plan-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.plan-grid.two { grid-template-columns: repeat(2, 1fr); max-width: 900px; margin: 0 auto; }
.plan-card {
  background: var(--bg-card);
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s ease;
}
.plan-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 48px rgba(0,0,0,0.10);
}
.plan-card.featured {
  border: 1px solid var(--ink);
  position: relative;
}
.plan-flag {
  position: absolute;
  top: 18px;
  right: 18px;
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  background: var(--ink);
  color: var(--bg);
  padding: 5px 12px;
  border-radius: 100px;
}

/* Card head */
.plan-head {
  padding: 32px 32px 24px;
  border-bottom: 0.5px solid rgba(0,0,0,0.1);
}
.plan-cat {
  font-family: var(--sans);
  font-size: 10.5px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ink-mute);
  font-weight: 500;
  margin-bottom: 10px;
}
.plan-head h3 {
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 400;
  letter-spacing: -0.2px;
  margin: 0 0 6px;
  color: var(--ink);
}
.plan-cadence {
  font-family: var(--sans);
  font-size: 12px;
  color: var(--ink-mute);
}

/* Price block */
.plan-price {
  padding: 26px 32px;
  border-bottom: 0.5px solid rgba(0,0,0,0.1);
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.plan-price .amount {
  font-family: var(--serif);
  font-size: 44px;
  font-weight: 400;
  line-height: 1;
  color: var(--ink);
}
.plan-price .per {
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--ink-mute);
}
.plan-save {
  width: 100%;
  font-family: var(--sans);
  font-size: 11.5px;
  letter-spacing: 0.5px;
  color: var(--ink-soft);
  margin-top: 6px;
}
.plan-save strong { color: var(--ink); font-weight: 600; }

/* Card body */
.plan-body {
  padding: 26px 32px 32px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.plan-for {
  font-family: var(--serif);
  font-style: italic;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin: 0 0 20px;
  padding-bottom: 20px;
  border-bottom: 0.5px solid rgba(0,0,0,0.08);
}
.plan-for b { font-style: normal; font-weight: 500; color: var(--ink); }
.plan-list {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  flex: 1;
}
.plan-list li {
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-soft);
  padding: 0 0 12px 26px;
  position: relative;
}
.plan-list li::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 8px;
  width: 11px;
  height: 5px;
  border-left: 1.5px solid var(--ink);
  border-bottom: 1.5px solid var(--ink);
  transform: rotate(-45deg);
}
.plan-cta {
  display: block;
  text-align: center;
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 500;
  padding: 15px 20px;
  border: 0.5px solid var(--ink);
  border-radius: 2px;
  color: var(--ink);
  transition: background 0.25s ease, color 0.25s ease;
}
.plan-cta:hover { background: var(--ink); color: var(--bg); opacity: 1; }
.plan-card.featured .plan-cta { background: var(--ink); color: var(--bg); }
.plan-card.featured .plan-cta:hover { background: transparent; color: var(--ink); }
/* Second CTA button (Book your first visit) */
.plan-cta + .plan-cta { margin-top: 10px; }
.plan-cta-secondary { background: transparent; color: var(--ink); }
.plan-cta-secondary:hover { background: var(--ink); color: var(--bg); }
.plan-card.featured .plan-cta-secondary { background: transparent; color: var(--ink); }
.plan-card.featured .plan-cta-secondary:hover { background: var(--ink); color: var(--bg); }
/* Per-plan add-on note */
.plan-addon {
  font-family: var(--sans);
  font-size: 12px;
  line-height: 1.6;
  color: var(--ink-mute);
  margin: 0 0 16px;
}
.plan-foot {
  font-family: var(--sans);
  font-size: 11px;
  color: var(--ink-mute);
  margin: 14px 0 0;
  text-align: center;
}

/* ---------- Staggered reveal animation ---------- */
.stagger > * {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.stagger.visible > *:nth-child(1) { transition-delay: 0s; }
.stagger.visible > *:nth-child(2) { transition-delay: 0.12s; }
.stagger.visible > *:nth-child(3) { transition-delay: 0.24s; }
.stagger.visible > *:nth-child(4) { transition-delay: 0.36s; }
.stagger.visible > * {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .stagger > * { opacity: 1; transform: none; transition: none; }
}

/* ---------- Fine print band ---------- */
.mem-fineprint {
  max-width: 760px;
  margin: 48px auto 0;
  text-align: center;
  font-family: var(--sans);
  font-size: 12.5px;
  line-height: 1.8;
  color: var(--ink-soft);
  padding-top: 28px;
  border-top: 0.5px solid rgba(0,0,0,0.12);
}

/* ---------- Individual session pricing ---------- */
.fee-groups {
  max-width: 820px;
  margin: 0 auto;
  display: grid;
  gap: 44px;
}
.fee-group h3 {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--gold-deep);
  margin: 0;
  padding-bottom: 10px;
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.18);
}
.fee-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 18px;
  padding: 14px 0;
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.07);
}
.fee-name { font-size: 16px; color: var(--ink); }
.fee-name small {
  display: block;
  font-family: var(--sans);
  font-size: 12.5px;
  letter-spacing: 0.3px;
  color: var(--ink-mute);
  margin-top: 3px;
}
.fee-price {
  font-family: var(--sans);
  font-size: 14px;
  letter-spacing: 0.5px;
  color: var(--ink);
  white-space: nowrap;
  text-align: right;
}
.fee-price small {
  display: block;
  font-size: 11.5px;
  color: var(--ink-mute);
  margin-top: 2px;
}

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  .plan-grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
  .plan-grid.two { grid-template-columns: 1fr; max-width: 480px; }
  .mem-perks-inner { grid-template-columns: 1fr; }
  .mem-section { padding: 70px 24px; }
  .mem-perks { padding: 36px 24px; }
  .mem-section h2 { font-size: 28px; }
}


/* ============================================================
   LEGAL PAGES (privacy, terms, accessibility) - append to style.css
   ============================================================ */
.legal-hero { text-align: center; padding: 90px 60px 30px; }
.legal-hero h1 {
  font-family: var(--serif); font-size: 42px; font-weight: 400;
  letter-spacing: -0.3px; color: var(--ink); margin: 0 0 12px;
}
.legal-hero .updated {
  font-family: var(--sans); font-size: 12px; letter-spacing: 1.5px;
  text-transform: uppercase; color: var(--ink-mute);
}
.legal-body { padding: 30px 24px 100px; }
.legal-card {
  background: var(--bg-card); border-radius: 6px;
  max-width: 820px; margin: 0 auto; padding: 56px 68px 64px;
}
.legal-card h2 {
  font-family: var(--serif); font-size: 23px; font-weight: 400;
  color: var(--ink); margin: 40px 0 14px; padding-top: 24px;
  border-top: 0.5px solid rgba(0,0,0,0.1);
}
.legal-card h2:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.legal-card p, .legal-card li {
  font-size: 15px; line-height: 1.85; color: var(--ink-soft); margin: 0 0 16px;
}
.legal-card ul { padding-left: 22px; margin: 0 0 16px; }
.legal-card li { margin-bottom: 8px; }
.legal-card a { border-bottom: 0.5px solid var(--ink); padding-bottom: 1px; }
@media (max-width: 700px) {
  .legal-card { padding: 36px 24px 44px; }
  .legal-hero h1 { font-size: 30px; }
}


/* ============================================================
   HEADER UPDATE + FOOTER REDESIGN - append to /assets/style.css
   ============================================================ */

/* ---------- Header: logo image + dual buttons ---------- */
.logo-link { display: flex; align-items: center; }
.logo-img {
  height: 66px;
  width: auto;
  display: block;
}
.header-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}
.header-cta {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 500;
  padding: 12px 22px;
  border-radius: 2px;
  transition: background 0.25s ease, color 0.25s ease;
  white-space: nowrap;
}
.header-cta-outline {
  border: 0.5px solid var(--ink);
  color: var(--ink);
}
.header-cta-outline:hover { background: var(--ink); color: var(--bg); opacity: 1; }
.header-cta-solid {
  background: var(--ink);
  color: var(--bg);
  border: 0.5px solid var(--ink);
}
.header-cta-solid:hover { background: transparent; color: var(--ink); opacity: 1; }
@media (max-width: 1100px) {
  .header-cta-outline { display: none; } /* keep Book Now only on tight screens */
  .logo-img { height: 54px; }
}

/* ============================================================
   MOBILE NAVIGATION (hamburger menu)
   ============================================================ */
.menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 10px;
  background: none;
  border: none;
  cursor: pointer;
  margin-left: 8px;
}
.menu-toggle .bar {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--ink);
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.2s ease;
}
.site-header.menu-open .menu-toggle .bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.site-header.menu-open .menu-toggle .bar:nth-child(2) { opacity: 0; }
.site-header.menu-open .menu-toggle .bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.mobile-nav {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--bg-card, #efe9dc);
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 16px 30px rgba(0, 0, 0, 0.10);
  max-height: 85vh;
  overflow-y: auto;
}
.mobile-nav a,
.mobile-nav .mobile-nav-heading {
  display: block;
  padding: 13px 28px;
  font-family: var(--sans);
  font-size: 14px;
  letter-spacing: 1px;
  color: var(--ink);
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
}
.mobile-nav a:hover { background: rgba(0, 0, 0, 0.03); }
.mobile-nav .mobile-nav-heading {
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 2px;
  color: var(--gold);
  padding-top: 18px;
  padding-bottom: 8px;
}
.mobile-nav-sub a {
  padding-left: 44px;
  font-size: 13.5px;
  color: var(--ink-soft);
}
.mobile-nav-cta { padding: 18px 28px 24px; }
.mobile-nav .mnav-btn {
  display: block;
  text-align: center;
  padding: 15px;
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  border-radius: 2px;
  border: 0.5px solid var(--ink);
  border-bottom: 0.5px solid var(--ink);
}
.mobile-nav .mnav-btn-solid { background: var(--ink); color: var(--bg); }
.mobile-nav .mnav-btn-solid:hover { background: transparent; color: var(--ink); }

@media (max-width: 720px) {
  .menu-toggle { display: flex; }
  .site-header.menu-open .mobile-nav { display: block; }
}

/* ---------- Breadcrumbs ---------- */
.breadcrumbs {
  max-width: 1240px;
  margin: 0 auto;
  padding: 16px 60px 0;
  font-family: var(--sans);
  font-size: 12px;
}
.breadcrumbs ol {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 0;
  margin: 0;
}
.breadcrumbs li {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--ink-mute);
  letter-spacing: 0.3px;
}
.breadcrumbs li:not(:last-child)::after {
  content: '/';
  opacity: 0.45;
}
.breadcrumbs a { color: var(--ink-soft); text-decoration: none; }
.breadcrumbs a:hover { color: var(--gold-deep); text-decoration: underline; }
.breadcrumbs [aria-current="page"] { color: var(--ink); }
@media (max-width: 720px) { .breadcrumbs { padding: 12px 24px 0; font-size: 11px; } }

/* ---------- Service "Keep reading" internal-link section ---------- */
.svc-reading { padding: 72px 60px; background: var(--bg-card); }
.svc-reading-inner { max-width: 880px; margin: 0 auto; text-align: center; }
.svc-reading-list {
  list-style: none;
  padding: 0;
  margin: 26px 0 0;
  display: grid;
  gap: 12px;
  text-align: left;
}
.svc-reading-list li a {
  display: block;
  padding: 16px 22px;
  background: var(--bg);
  border: 0.5px solid rgba(0, 0, 0, 0.08);
  border-radius: 4px;
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.4;
  color: var(--ink);
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.svc-reading-list li a:hover {
  background: var(--bg-dark);
  color: var(--bg);
  transform: translateX(4px);
}
.svc-reading-foot {
  margin: 26px 0 0;
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.7;
  color: var(--ink-soft);
}
.svc-reading-foot a { color: var(--gold-deep); }
@media (max-width: 720px) { .svc-reading { padding: 52px 24px; } }

/* ---------- Footer ---------- */
.site-footer {
  background: var(--bg-dark);
  color: var(--ink-light);
  padding: 80px 60px 0;
}
.footer-inner {
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
  gap: 48px;
  padding-bottom: 64px;
}
/* Brand column is centred as a unit: mark, tagline and social links together */
.footer-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.footer-logo {
  height: 54px;
  width: auto;
  margin-bottom: 20px;
}
/* Square brand mark reads small at the wordmark's height, so give it a little more */
.footer-logo.footer-mark {
  height: 68px;
}
.footer-tagline {
  font-family: var(--serif);
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--ink-light);
  max-width: 280px;
  margin: 0 0 24px;
}
.footer-social { display: flex; flex-wrap: wrap; gap: 8px 18px; }
/* Keep the social row centred (and tidy when it wraps) under the centred brand */
.footer-brand .footer-social { justify-content: center; }
.footer-social a {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--gold);
  border-bottom: 0.5px solid transparent;
  padding-bottom: 2px;
  transition: border-color 0.2s ease;
}
.footer-social a:hover { border-color: var(--gold); opacity: 1; }

.footer-heading {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 18px;
  font-weight: 500;
}
.footer-col { display: flex; flex-direction: column; }
.footer-col a {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-light);
  margin-bottom: 10px;
  width: fit-content;
  border-bottom: 0.5px solid transparent;
  transition: border-color 0.2s ease;
}
.footer-col a:hover { border-color: var(--ink-light); opacity: 1; }

.footer-address { font-style: normal; margin: 0 0 12px; }
.footer-address a, .footer-contactline a {
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--ink-light);
}
.footer-contactline { margin: 0 0 18px; }
.footer-hours {
  border-collapse: collapse;
  font-family: var(--sans);
  font-size: 12px;
}
.footer-hours td {
  padding: 3px 0;
  color: var(--ink-light);
}
.footer-hours td:first-child {
  padding-right: 22px;
  color: var(--gold);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 10.5px;
}

.footer-bottom {
  border-top: 0.5px solid rgba(224, 218, 197, 0.18);
  max-width: 1240px;
  margin: 0 auto;
  padding: 22px 0 26px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 24px;
}
.footer-bottom p {
  font-family: var(--sans);
  font-size: 11.5px;
  color: rgba(224, 218, 197, 0.55);
  margin: 0;
}
.footer-legal {
  display: flex;
  gap: 12px;
  align-items: center;
  font-family: var(--sans);
  font-size: 11.5px;
  color: rgba(224, 218, 197, 0.55);
}
.footer-legal a {
  color: rgba(224, 218, 197, 0.75);
  border-bottom: 0.5px solid transparent;
  transition: border-color 0.2s ease;
}
.footer-legal a:hover { border-color: rgba(224,218,197,0.75); opacity: 1; }
.footer-credit a {
  color: rgba(224, 218, 197, 0.75);
  border-bottom: 0.5px solid rgba(224, 218, 197, 0.3);
}

@media (max-width: 1000px) {
  .site-footer { padding: 60px 24px 0; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 40px 32px; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .footer-inner { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; text-align: center; }
}


/* Google reviews badge */
.google-badge {
  position: fixed;
  left: 20px;
  bottom: 20px;
  background: #fff;
  border-radius: 8px;
  border-left: 3px solid #1a7f3c;
  box-shadow: 0 8px 28px rgba(0,0,0,0.16);
  padding: 12px 34px 12px 14px;
  z-index: 900;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.45s ease, transform 0.45s ease;
  pointer-events: none;
}
.google-badge.visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.google-badge a { display: flex; align-items: center; gap: 11px; }
.google-badge a:hover { opacity: 1; }
.gb-logo { flex-shrink: 0; }
.gb-text { display: flex; flex-direction: column; line-height: 1.35; }
.gb-text strong {
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 12.5px; font-weight: 600; color: #202124;
}
.gb-stars { font-size: 13px; color: #202124; }
.gb-stars span { color: #FBBC04; letter-spacing: 1px; }
.gb-text small {
  font-family: 'Helvetica Neue', Arial, sans-serif;
  font-size: 11px; color: #5f6368;
}
#googleBadgeClose {
  position: absolute; top: 6px; right: 8px;
  font-size: 16px; color: #9aa0a6; line-height: 1; padding: 2px;
}
#googleBadgeClose:hover { color: #202124; }
@media (max-width: 600px) {
  .google-badge { left: 12px; bottom: 12px; }
}


