:root {
    --moss: #5E6B56;
    --moss-deep: #4A5545;
    --moss-soft: #7D8C6E;
    --sage: #7D8C6E;
    --euc: #97A48D;
    --bone: #F4EFE4;
    --bone-warm: #EBE3D2;
    --linen: #F6F1E8;
    --terra: #C97A4A;
    --terra-deep: #A85F35;
    --amber: #D7B46A;
    --golden: #D7B46A;
    --oak: #C6A77B;
    --drift: #CFC4B4;
    --leaf: #6B7B4D;
    --ink: #3D3B35;
    --paper: #FBF8F2;
    --paper-2: #FDFBF7;
  }

  * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  html {
    scroll-behavior: smooth;
  }

  body {
    font-family: 'Outfit', system-ui, sans-serif;
    font-weight: 300;
    background: var(--paper);
    color: var(--ink);
    line-height: 1.6;
    overflow-x: hidden;
  }

  .display {
    font-family: 'Marcellus', Georgia, serif;
    font-weight: 400;
    letter-spacing: 0.01em;
  }

  /* Paper grain texture */
  body::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    opacity: 0.4;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.1 0 0 0 0 0.1 0 0 0 0.06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* ============ NAV ============ */
  .nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    padding: 24px 48px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: rgba(250, 246, 236, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: padding 0.3s ease;
  }

  .nav.scrolled {
    padding: 16px 48px;
    box-shadow: 0 1px 0 rgba(45, 58, 46, 0.08);
  }

  .logo-mark {
    display: flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
    color: var(--moss);
  }

  .logo-mark svg {
    width: 32px;
    height: 32px;
  }

  .logo-mark .wordmark {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: 15px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    line-height: 1;
  }

  .logo-mark .wordmark span {
    display: block;
    font-size: 9px;
    letter-spacing: 0.32em;
    margin-top: 4px;
    color: var(--moss-soft);
  }

  .nav-links {
    display: flex;
    align-items: center;
    gap: 36px;
  }

  .nav-links a:not(.btn) {
    text-decoration: none;
    color: var(--moss);
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: lowercase;
    position: relative;
    padding: 4px 0;
  }

  .nav-links a:not(.btn)::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background: var(--terra);
    transition: width 0.4s ease;
  }

  .nav-links a:not(.btn):hover::after {
    width: 100%;
  }

  /* nav-book: same as .btn .btn-primary but scaled down for the nav bar */
  .nav-book {
    padding: 13px 28px !important;
    font-size: 12px !important;
    letter-spacing: 0.06em;
  }

  /* ============ HERO ============ */
  .hero {
    min-height: 100vh;
    position: relative;
    padding: 180px 48px 100px;
    background-color: var(--paper);
    background-image:
      /* soft cream wash so the moss-green headline stays legible against the leaves */
      linear-gradient(180deg,
        rgba(250, 246, 236, 0.55) 0%,
        rgba(250, 246, 236, 0.30) 35%,
        rgba(250, 246, 236, 0.55) 70%,
        rgba(240, 233, 216, 0.88) 100%),
      url("images/hero-leaves.png");
    background-size: cover, cover;
    background-position: center, center;
    background-repeat: no-repeat, no-repeat;
    overflow: hidden;
  }

  .hero-inner {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
  }

  .hero-tag {
    display: inline-flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 50px;
  }

  .hero-tag .sprig {
    width: 38px;
    height: 48px;
    flex-shrink: 0;
  }

  .hero-tag .sprig path {
    stroke: var(--moss);
    stroke-width: 1;
    fill: none;
    stroke-linecap: round;
  }

  .hero-tag .tag-text {
    display: flex;
    flex-direction: column;
    gap: 5px;
  }

  .hero-tag .place {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: 17px;
    color: var(--moss);
    letter-spacing: 0.02em;
  }

  .hero-tag .founded {
    font-weight: 300;
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--moss-soft);
  }

  .hero-title {
    font-size: clamp(56px, 9vw, 132px);
    line-height: 0.92;
    color: var(--moss);
    letter-spacing: -0.015em;
    margin-bottom: 0;
    position: relative;
  }

  .hero-title .word {
    display: inline-block;
  }

  .hero-title .accent {
    color: var(--terra);
    font-style: italic;
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    position: relative;
  }

  .hero-title .accent::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -8px;
    height: 6px;
    background: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0,3 Q50,0 100,3 T200,3' stroke='%23b8602f' stroke-width='1.5' fill='none' opacity='0.5'/%3E%3C/svg%3E") no-repeat center;
    background-size: 100% 100%;
  }

  .hero-bottom {
    margin-top: 60px;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 80px;
    align-items: end;
  }

  .hero-lede {
    font-size: 19px;
    line-height: 1.55;
    color: var(--moss);
    max-width: 540px;
  }

  .hero-lede strong {
    font-weight: 500;
    color: var(--terra-deep);
  }

  .hero-cta-group {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
  }

  .btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 18px 38px;
    font-size: 14px;
    letter-spacing: 0.05em;
    text-decoration: none;
    cursor: pointer;
    border: none;
    background: none;
    font-family: inherit;
    transition: color 0.4s ease;
  }

  /* organic hand-drawn frame sits behind the label */
  .btn::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    transition: opacity 0.4s ease, transform 0.4s ease;
  }
  .btn::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;
    opacity: 0;
    transition: opacity 0.4s ease;
  }

  /* PRIMARY: filled moss, fills terracotta on hover */
  .btn-primary { color: var(--bone); }
  .btn-primary::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 60' preserveAspectRatio='none'%3E%3Cpath d='M10,8 C60,4 130,3 210,7 C214,20 215,40 211,53 C150,57 70,58 9,52 C5,38 6,20 10,8 Z' fill='%232d3a2e' stroke='%232d3a2e' stroke-width='1.6'/%3E%3C/svg%3E");
  }
  .btn-primary::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 60' preserveAspectRatio='none'%3E%3Cpath d='M10,8 C60,4 130,3 210,7 C214,20 215,40 211,53 C150,57 70,58 9,52 C5,38 6,20 10,8 Z' fill='%23b8602f' stroke='%23b8602f' stroke-width='1.6'/%3E%3C/svg%3E");
  }
  .btn-primary:hover::after { opacity: 1; }

  /* SECONDARY: outline moss, stroke goes terracotta on hover */
  .btn-secondary { color: var(--moss); }
  .btn-secondary::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 60' preserveAspectRatio='none'%3E%3Cpath d='M9,9 C70,5 140,4 212,8 C216,22 214,42 210,52 C145,56 65,57 10,51 C6,36 5,21 9,9 Z' fill='none' stroke='%232d3a2e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }
  .btn-secondary::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 60' preserveAspectRatio='none'%3E%3Cpath d='M9,9 C70,5 140,4 212,8 C216,22 214,42 210,52 C145,56 65,57 10,51 C6,36 5,21 9,9 Z' fill='none' stroke='%23b8602f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }
  .btn-secondary:hover { color: var(--terra-deep); }
  .btn-secondary:hover::after { opacity: 1; }

  /* AMBER (dark sections): filled amber, fills terracotta on hover */
  .btn-amber { color: var(--moss-deep); }
  .btn-amber::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 60' preserveAspectRatio='none'%3E%3Cpath d='M10,8 C60,4 130,3 210,7 C214,20 215,40 211,53 C150,57 70,58 9,52 C5,38 6,20 10,8 Z' fill='%23d99850' stroke='%23d99850' stroke-width='1.6'/%3E%3C/svg%3E");
  }
  .btn-amber::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 60' preserveAspectRatio='none'%3E%3Cpath d='M10,8 C60,4 130,3 210,7 C214,20 215,40 211,53 C150,57 70,58 9,52 C5,38 6,20 10,8 Z' fill='%23b8602f' stroke='%23b8602f' stroke-width='1.6'/%3E%3C/svg%3E");
  }
  .btn-amber:hover { color: var(--bone); }
  .btn-amber:hover::after { opacity: 1; }

  /* OUTLINE (dark sections): bone outline, fills bone on hover */
  .btn-outline { color: var(--bone); }
  .btn-outline::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 60' preserveAspectRatio='none'%3E%3Cpath d='M9,9 C70,5 140,4 212,8 C216,22 214,42 210,52 C145,56 65,57 10,51 C6,36 5,21 9,9 Z' fill='none' stroke='%23f4efe4' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' opacity='0.5'/%3E%3C/svg%3E");
  }
  .btn-outline::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 60' preserveAspectRatio='none'%3E%3Cpath d='M9,9 C70,5 140,4 212,8 C216,22 214,42 210,52 C145,56 65,57 10,51 C6,36 5,21 9,9 Z' fill='%23f4efe4' stroke='%23f4efe4' stroke-width='1.6'/%3E%3C/svg%3E");
  }
  .btn-outline:hover { color: var(--moss-deep); }
  .btn-outline:hover::after { opacity: 1; }

  .btn:hover::before { transform: scale(1.015); }

  .btn .arrow {
    width: 16px;
    height: 16px;
    transition: transform 0.3s ease;
  }

  .btn:hover .arrow {
    transform: translateX(4px);
  }

  /* ============ INTRO STATEMENT ============ */
  .intro {
    padding: 120px 48px 60px;
    background: var(--paper);
    position: relative;
    z-index: 2;
  }

  .intro-inner {
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
    position: relative;
  }

  .intro-label {
    font-size: 12px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--terra);
    margin-bottom: 32px;
    display: inline-flex;
    align-items: center;
    gap: 14px;
  }

  .intro-label::before,
  .intro-label::after {
    content: '';
    width: 30px;
    height: 1px;
    background: var(--terra);
    opacity: 0.5;
  }

  .intro-statement {
    font-size: clamp(28px, 4.2vw, 52px);
    line-height: 1.2;
    color: var(--moss-deep);
    letter-spacing: -0.01em;
  }

  .intro-statement em {
    font-style: italic;
    color: var(--terra-deep);
  }

  .intro-tag {
    margin-top: 56px;
    font-size: 14px;
    color: var(--moss-soft);
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  /* ============ SERVICES STACK (vertical tactile rows) ============ */
  .services {
    padding: 56px 0 72px;
    background: var(--paper);
    position: relative;
    z-index: 2;
  }

  .services-head {
    max-width: 760px;
    margin: 0 auto 48px;
    padding: 0 48px;
    text-align: center;
  }
  .services-head .specimen { justify-content: center; }

  .services-head-left .marker {
    font-size: 12px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--moss-soft);
    margin-bottom: 24px;
  }

  .services-head-left h2 {
    font-size: clamp(40px, 5.5vw, 72px);
    line-height: 1;
    color: var(--moss-deep);
    letter-spacing: -0.02em;
  }

  .services-head-right {
    font-size: 17px;
    line-height: 1.7;
    color: var(--moss);
    max-width: 560px;
    margin: 20px auto 0;
  }

  .service-row {
    border-top: 1px solid rgba(45, 58, 46, 0.15);
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    padding: 38px 48px;
    max-width: 1280px;
    margin: 0 auto;
    text-decoration: none;
    color: inherit;
    position: relative;
    cursor: pointer;
  }

  .service-row:last-child {
    border-bottom: 1px solid rgba(45, 58, 46, 0.15);
  }

  .service-row::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--moss-deep);
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform 0.5s cubic-bezier(.4,0,.2,1);
    z-index: 0;
  }

  .service-row:hover::before {
    transform: scaleY(1);
  }

  .service-row > * {
    position: relative;
    z-index: 1;
  }

  .service-left {
    display: flex;
    align-items: baseline;
    gap: 28px;
  }

  .service-title {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: clamp(26px, 3.4vw, 42px);
    color: var(--moss-deep);
    line-height: 1.05;
    transition: color 0.5s ease;
  }

  .service-row:hover .service-title {
    color: var(--bone);
  }

  .service-desc {
    font-size: 14px;
    line-height: 1.5;
    color: rgba(244, 239, 228, 0.75);
    max-width: 360px;
    opacity: 0;
    transform: translateX(-12px);
    transition: opacity 0.45s ease 0.05s, transform 0.45s ease 0.05s;
    flex-shrink: 0;
  }

  .service-row:hover .service-desc {
    opacity: 1;
    transform: translateX(0);
  }

  .service-arrow {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 40px;
    opacity: 0;
    transform: translateX(-10px);
    transition: opacity 0.45s ease, transform 0.45s ease;
  }

  .service-row:hover .service-arrow {
    opacity: 1;
    transform: translateX(0);
  }

  .service-arrow svg {
    width: 28px;
    height: 16px;
  }

  .service-arrow svg path {
    stroke: var(--amber);
    stroke-width: 1.4;
  }

  /* ============ FOUNDER LETTER ============ */
  .founder {
    padding: 110px 48px;
    background-color: var(--moss-deep);
    background-image:
      /* moss-deep overlay so the bone-colored text and portrait stay legible against the photo */
      linear-gradient(180deg,
        rgba(45, 58, 46, 0.78) 0%,
        rgba(45, 58, 46, 0.85) 50%,
        rgba(45, 58, 46, 0.92) 100%),
      url("images/founder-leaves-dark.png");
    background-size: cover, cover;
    background-position: center, center;
    background-repeat: no-repeat, no-repeat;
    color: var(--bone);
    position: relative;
    overflow: hidden;
    z-index: 2;
  }

  .founder-inner {
    max-width: 980px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
  }

  .founder-frame {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 60px;
    align-items: start;
  }

  .founder-portrait {
    width: 240px;
    height: 300px;
    background: linear-gradient(135deg, var(--terra) 0%, var(--amber) 100%);
    border-radius: 280px 280px 12px 12px;
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
  }

  .founder-portrait::after {
    content: 'KB';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: 80px;
    color: var(--bone);
    opacity: 0.4;
  }

  .founder-letter h3 {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: 14px;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--amber);
    margin-bottom: 28px;
  }

  .founder-letter .opener {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1.3;
    color: var(--bone);
    margin-bottom: 32px;
    letter-spacing: -0.005em;
  }

  .founder-letter .opener em {
    color: var(--amber);
    font-style: italic;
  }

  .founder-letter p {
    font-size: 16px;
    line-height: 1.8;
    color: rgba(244, 239, 228, 0.85);
    margin-bottom: 20px;
  }

  .founder-signature {
    margin-top: 40px;
    display: flex;
    align-items: center;
    gap: 24px;
  }

  .founder-sig-mark {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: 38px;
    color: var(--amber);
    font-style: italic;
    letter-spacing: -0.02em;
    transform: rotate(-3deg);
  }

  .founder-sig-info {
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(244, 239, 228, 0.6);
    line-height: 1.6;
  }

  /* ============ CLASSES / EXPERIENCES (overlapping mood) ============ */
  .classes {
    padding: 96px 48px 80px;
    background: var(--paper);
    position: relative;
    z-index: 2;
    overflow: hidden;
  }

  .classes-inner {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
  }

  .classes-head {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    margin-bottom: 80px;
    align-items: end;
  }

  .classes-head .marker {
    font-size: 12px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--terra);
    margin-bottom: 24px;
  }

  .classes-head h2 {
    font-size: clamp(40px, 5.5vw, 72px);
    line-height: 1;
    color: var(--moss-deep);
    letter-spacing: -0.02em;
  }

  .classes-head h2 em {
    font-style: italic;
    color: var(--terra);
  }

  .classes-head p {
    font-size: 17px;
    line-height: 1.7;
    color: var(--moss);
  }

  .classes-collage {
    position: relative;
    height: 720px;
  }

  .class-panel {
    position: absolute;
    background: var(--moss-soft);
    color: var(--bone);
    padding: 32px;
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: transform 0.6s cubic-bezier(.2,.7,.3,1), box-shadow 0.6s;
    box-shadow: 0 20px 50px -25px rgba(28, 38, 32, 0.35);
  }

  .class-panel:hover {
    transform: translateY(-8px) rotate(0deg) !important;
    z-index: 10;
    box-shadow: 0 40px 80px -30px rgba(28, 38, 32, 0.55);
  }

  .class-panel .tag {
    font-size: 11px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    opacity: 0.7;
    margin-bottom: 16px;
  }

  .class-panel h4 {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: 28px;
    line-height: 1.1;
    margin-bottom: 14px;
  }

  .class-panel p {
    font-size: 14px;
    line-height: 1.5;
    opacity: 0.85;
  }

  .panel-1 {
    top: 0;
    left: 0;
    width: 340px;
    height: 380px;
    background: var(--moss);
    transform: rotate(-2deg);
    z-index: 3;
  }

  .panel-2 {
    top: 60px;
    left: 320px;
    width: 380px;
    height: 320px;
    background: var(--terra);
    transform: rotate(1.5deg);
    z-index: 4;
  }

  .panel-3 {
    top: 280px;
    left: 80px;
    width: 320px;
    height: 280px;
    background: var(--amber);
    color: var(--moss-deep);
    transform: rotate(2deg);
    z-index: 2;
  }

  .panel-4 {
    top: 220px;
    left: 720px;
    width: 360px;
    height: 360px;
    background: var(--bone-warm);
    color: var(--moss-deep);
    transform: rotate(-1deg);
    z-index: 3;
  }

  .panel-5 {
    top: 440px;
    left: 360px;
    width: 320px;
    height: 240px;
    background: var(--leaf);
    transform: rotate(1deg);
    z-index: 5;
  }

  .panel-6 {
    top: 480px;
    left: 700px;
    width: 280px;
    height: 220px;
    background: var(--moss-deep);
    transform: rotate(-2.5deg);
    z-index: 4;
  }

  .classes-foot {
    margin-top: 60px;
    text-align: center;
  }

  /* ============ DIFFERENTIATOR / WHY US ============ */
  .why {
    padding: 92px 48px;
    background: linear-gradient(180deg, var(--paper) 0%, #f0e9d8 100%);
    position: relative;
    z-index: 2;
    overflow: hidden;
  }

  .why-inner {
    max-width: 1180px;
    margin: 0 auto;
    position: relative;
  }

  .why-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 700px;
    height: 700px;
    opacity: 0.08;
    pointer-events: none;
  }

  .why-content {
    position: relative;
    z-index: 1;
    text-align: center;
  }

  .why-marker {
    font-size: 12px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--terra);
    margin-bottom: 40px;
  }

  .why-heading {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: clamp(28px, 3.4vw, 44px);
    line-height: 1.15;
    color: var(--moss-deep);
    letter-spacing: -0.015em;
    max-width: 820px;
    margin: 0 auto 36px;
  }

  .why-heading em {
    color: var(--terra);
    font-style: italic;
  }

  .why-body {
    font-size: 18px;
    line-height: 1.7;
    color: var(--moss);
    max-width: 720px;
    margin: 0 auto 60px;
  }

  .why-marks {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 60px;
    flex-wrap: wrap;
    padding-top: 50px;
    border-top: 1px solid rgba(45, 58, 46, 0.15);
    max-width: 800px;
    margin: 0 auto;
  }

  .why-mark {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    color: var(--moss);
  }

  .why-mark svg {
    width: 32px;
    height: 32px;
  }

  .why-mark svg path, .why-mark svg circle {
    stroke: var(--moss);
    stroke-width: 1.2;
    fill: none;
  }

  .why-mark span {
    font-size: 13px;
    letter-spacing: 0.05em;
  }

  /* ============ TESTIMONIALS (free floating, no quote marks) ============ */
  .voices {
    padding: 72px 48px 80px;
    background: var(--paper);
    position: relative;
    z-index: 2;
    overflow: hidden;
  }

  .voices-inner {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
  }

  .voices-head {
    text-align: center;
    margin-bottom: 80px;
  }

  .voices-head .marker {
    font-size: 12px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--terra);
    margin-bottom: 24px;
  }

  .voices-head h2 {
    font-size: clamp(40px, 5.5vw, 72px);
    line-height: 1;
    color: var(--moss-deep);
    letter-spacing: -0.02em;
  }

  .voices-head h2 em {
    font-style: italic;
    color: var(--terra);
  }


  .voice p {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: 19px;
    line-height: 1.5;
    color: var(--moss-deep);
    letter-spacing: -0.005em;
    margin-bottom: 20px;
  }








  /* ============ VISIT (location/hours) ============ */
  .visit {
    padding: 140px 48px 120px;
    background: var(--moss-deep);
    color: var(--bone);
    position: relative;
    z-index: 2;
    overflow: hidden;
  }

  .visit-inner {
    max-width: 1280px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start;
  }

  .visit-left .marker {
    font-size: 12px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--amber);
    margin-bottom: 28px;
  }

  .visit-left h2 {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: clamp(40px, 5vw, 64px);
    line-height: 1.05;
    margin-bottom: 32px;
    letter-spacing: -0.015em;
  }

  .visit-left h2 em {
    color: var(--amber);
    font-style: italic;
  }

  .visit-left p {
    font-size: 17px;
    line-height: 1.7;
    color: rgba(244, 239, 228, 0.8);
    margin-bottom: 36px;
    max-width: 460px;
  }

  .visit-address {
    margin-bottom: 36px;
  }

  .visit-address .label {
    font-size: 11px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--amber);
    margin-bottom: 12px;
  }

  .visit-address .addr {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: 22px;
    line-height: 1.45;
    color: var(--bone);
  }

  .visit-address .phone {
    margin-top: 12px;
    font-size: 16px;
    color: var(--amber);
    text-decoration: none;
    letter-spacing: 0.05em;
  }

  .visit-cta-row {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
  }

  .visit-right {
    background: rgba(244, 239, 228, 0.04);
    border-radius: 4px;
    padding: 40px;
    border: 1px solid rgba(244, 239, 228, 0.1);
  }

  .hours-title {
    font-size: 11px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--amber);
    margin-bottom: 24px;
  }

  .hours-grid {
    display: grid;
    gap: 16px;
  }

  .hours-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding-bottom: 14px;
    border-bottom: 1px dashed rgba(244, 239, 228, 0.15);
  }

  .hours-row:last-of-type {
    border-bottom: none;
  }

  .hours-row .day {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: 16px;
    color: var(--bone);
  }

  .hours-row .time {
    font-size: 15px;
    color: rgba(244, 239, 228, 0.7);
    letter-spacing: 0.02em;
  }

  .hours-note {
    margin-top: 28px;
    font-size: 13px;
    line-height: 1.6;
    color: rgba(244, 239, 228, 0.55);
    font-style: italic;
  }

  /* ============ FOOTER ============ */
  .footer {
    padding: 100px 48px 30px;
    background: var(--moss-deep);
    color: var(--bone);
    border-top: 1px solid rgba(244, 239, 228, 0.08);
    position: relative;
    z-index: 2;
  }

  .footer-inner {
    max-width: 1280px;
    margin: 0 auto;
  }

  .footer-top {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 60px;
    padding-bottom: 80px;
    border-bottom: 1px solid rgba(244, 239, 228, 0.08);
  }

  .footer-brand {
    max-width: 320px;
  }

  .footer-brand .footer-logo {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
  }

  .footer-brand .footer-logo svg {
    width: 36px;
    height: 36px;
  }

  .footer-brand .footer-logo .wm {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: 15px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    line-height: 1.3;
  }

  .footer-brand .footer-logo .wm span {
    display: block;
    font-size: 9px;
    letter-spacing: 0.32em;
    color: var(--amber);
    margin-top: 4px;
  }

  .footer-brand p {
    font-size: 14px;
    line-height: 1.7;
    color: rgba(244, 239, 228, 0.6);
  }

  .footer-social {
    margin-top: 24px;
    display: flex;
    gap: 12px;
  }

  .footer-social a {
    width: 38px;
    height: 38px;
    border-radius: 999px;
    border: 1px solid rgba(244, 239, 228, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bone);
    transition: all 0.3s;
  }

  .footer-social a:hover {
    background: var(--amber);
    border-color: var(--amber);
    color: var(--moss-deep);
  }

  .footer-social svg {
    width: 16px;
    height: 16px;
  }

  .footer-col h5 {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: 12px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--amber);
    margin-bottom: 24px;
  }

  .footer-col ul {
    list-style: none;
  }

  .footer-col li {
    margin-bottom: 12px;
  }

  .footer-col a {
    color: rgba(244, 239, 228, 0.75);
    text-decoration: none;
    font-size: 14px;
    transition: color 0.3s;
  }

  .footer-col a:hover {
    color: var(--amber);
  }

  .footer-bottom {
    padding-top: 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
  }

  .footer-bottom .copyright {
    font-size: 12px;
    color: rgba(244, 239, 228, 0.45);
    letter-spacing: 0.05em;
  }

  .footer-credit {
    font-size: 12px;
    color: rgba(244, 239, 228, 0.55);
    text-decoration: none;
    letter-spacing: 0.05em;
  }

  .footer-credit u {
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .footer-credit:hover {
    color: var(--amber);
  }

  /* ============ BOTANICAL SPECIMEN LABELS ============ */
  .specimen {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 28px;
  }

  .specimen .sprig {
    width: 46px;
    height: 56px;
    flex-shrink: 0;
  }

  .specimen .sprig path,
  .specimen .sprig line,
  .specimen .sprig circle {
    stroke: var(--terra);
    stroke-width: 1;
    fill: none;
    stroke-linecap: round;
  }

  .specimen .sprig .berry {
    fill: var(--terra);
    stroke: none;
    opacity: 0.7;
  }

  .specimen .caption {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
  }

  .specimen .caption .latin {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-style: italic;
    font-size: 15px;
    color: var(--terra-deep);
    letter-spacing: 0.01em;
  }

  .specimen .caption .note {
    font-size: 12px;
    color: var(--moss-soft);
    letter-spacing: 0.04em;
    text-transform: lowercase;
  }

  /* On dark sections, recolor the specimen for contrast */
  .specimen.on-dark .sprig path,
  .specimen.on-dark .sprig line,
  .specimen.on-dark .sprig circle {
    stroke: var(--amber);
  }
  .specimen.on-dark .sprig .berry { fill: var(--amber); }
  .specimen.on-dark .caption .latin { color: var(--amber); }
  .specimen.on-dark .caption .note { color: rgba(244, 239, 228, 0.6); }

  /* Centered variant for sections whose heading is centered */
  .specimen.centered {
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
  }

  /* ============ FAQ ARCH FLIP CARDS ============ */
  .faq {
    padding: 72px 48px 110px;
    background: var(--paper);
    position: relative;
    z-index: 2;
    overflow: hidden;
  }

  .faq-inner {
    max-width: 1280px;
    margin: 0 auto;
    position: relative;
  }

  .faq-head {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: end;
    margin-bottom: 90px;
  }

  .faq-head h2 {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: clamp(40px, 5.5vw, 72px);
    line-height: 1;
    color: var(--moss-deep);
    letter-spacing: -0.02em;
  }

  .faq-head h2 em {
    font-style: italic;
    color: var(--terra);
  }

  .faq-head p {
    font-size: 17px;
    line-height: 1.7;
    color: var(--moss);
  }

  /* tarot spread: 3 across */
  .faq-arches {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
  }

  /* the arch container = flip stage, perspective + clipping */
  .faq-arch {
    position: relative;
    aspect-ratio: 1 / 1.05;
    perspective: 1400px;
    cursor: pointer;
  }

  .faq-arch-inner {
    position: relative;
    width: 100%;
    height: 100%;
    transition: transform 0.85s cubic-bezier(.4,.1,.2,1);
    transform-style: preserve-3d;
  }

  .faq-arch:hover .faq-arch-inner,
  .faq-arch.flipped .faq-arch-inner {
    transform: rotateY(180deg);
  }

  .arch-face {
    position: absolute;
    inset: 0;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    /* the arch shape: rounded top, flat bottom */
    border-radius: 50% 50% 6px 6px / 45% 45% 6px 6px;
    overflow: hidden;
    box-shadow:
      0 30px 60px -30px rgba(45, 58, 46, 0.4),
      0 8px 20px -10px rgba(45, 58, 46, 0.18);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 44px 24px 26px;
    text-align: center;
  }

  /* FRONT FACE: warm paper with pressed specimen */
  .arch-front {
    background: #f8f1de;
    color: var(--moss-deep);
    border: 1px solid rgba(45, 58, 46, 0.08);
  }

  .arch-front::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.4 0 0 0 0 0.25 0 0 0 0.18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
    mix-blend-mode: multiply;
    opacity: 0.45;
  }

  .arch-front > * {
    position: relative;
    z-index: 2;
  }

  .arch-specimen {
    width: 52px;
    height: 86px;
    margin-bottom: 14px;
  }

  .arch-specimen path,
  .arch-specimen circle,
  .arch-specimen line {
    stroke: var(--moss-deep);
    stroke-width: 0.9;
    fill: none;
    stroke-linecap: round;
    opacity: 0.78;
  }

  .arch-specimen .berry {
    fill: var(--terra);
    stroke: none;
    opacity: 0.55;
  }

  .arch-meta {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 10px;
    margin-bottom: 14px;
  }

  .arch-meta .roman {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-style: italic;
    font-size: 13px;
    color: var(--terra);
    letter-spacing: 0.14em;
  }

  .arch-meta .plant-name {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-style: italic;
    font-size: 12px;
    color: var(--moss-soft);
    letter-spacing: 0.04em;
  }

  .arch-front h4 {
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-size: 19px;
    line-height: 1.25;
    color: var(--moss-deep);
    letter-spacing: -0.005em;
    max-width: 220px;
  }

  .arch-front .flip-hint {
    margin-top: auto;
    font-size: 10px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--moss-soft);
    opacity: 0.55;
    padding-top: 14px;
  }

  /* BACK FACE: dark moss with bone + amber */
  .arch-back {
    background: var(--moss-deep);
    color: var(--bone);
    transform: rotateY(180deg);
    border: 1px solid rgba(244, 239, 228, 0.08);
    justify-content: center;
    padding: 50px 26px 36px;
  }

  .arch-back::before {
    content: '';
    position: absolute;
    top: 26px;
    left: 50%;
    transform: translateX(-50%);
    width: 28px;
    height: 1px;
    background: var(--amber);
    opacity: 0.7;
  }

  .arch-back .roman-back {
    position: absolute;
    top: 36px;
    left: 50%;
    transform: translateX(-50%);
    font-weight: 400;
    font-family: 'Marcellus', Georgia, serif;
    font-style: italic;
    font-size: 12px;
    color: var(--amber);
    letter-spacing: 0.14em;
  }

  .arch-back p {
    font-size: 14px;
    line-height: 1.65;
    color: rgba(244, 239, 228, 0.92);
    max-width: 220px;
    margin: 0 auto;
  }

  .arch-back .corner-leaf {
    position: absolute;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 20px;
    opacity: 0.6;
  }

  .arch-back .corner-leaf path {
    stroke: var(--amber);
    stroke-width: 1;
    fill: none;
    stroke-linecap: round;
  }

  /* ============ RESPONSIVE ============ */
  @media (max-width: 1024px) {
    .nav { padding: 20px 24px; }
    .nav.scrolled { padding: 14px 24px; }
    .nav-links { gap: 20px; }
    .nav-links a:not(.btn):not(.nav-mobile-show) { display: none; }

    .specimen .sprig { width: 38px; height: 46px; }
    .specimen.centered { flex-wrap: nowrap; }

    .hero { padding: 140px 24px 80px; }
    .hero-bottom { grid-template-columns: 1fr; gap: 40px; }

    .intro { padding: 100px 24px; }
    .services-head { grid-template-columns: 1fr; gap: 30px; padding: 0 24px; }
    .service-row { grid-template-columns: 1fr auto; padding: 28px 24px; gap: 16px; }
    .service-left { flex-direction: column; align-items: flex-start; gap: 12px; }
    .service-desc { opacity: 1; transform: none; color: var(--moss-soft); max-width: 100%; }
    .service-arrow { opacity: 1; transform: none; align-self: center; }
    .service-arrow svg path { stroke: var(--terra); }

    .founder { padding: 100px 24px; }
    .founder-frame { grid-template-columns: 1fr; gap: 40px; }
    .founder-portrait { width: 180px; height: 230px; }

    .classes { padding: 100px 24px; }
    .classes-head { grid-template-columns: 1fr; gap: 30px; }
    .classes-collage { height: auto; display: flex; flex-direction: column; gap: 20px; }
    .class-panel {
      position: relative !important;
      top: auto !important; left: auto !important;
      width: 100% !important; height: auto !important;
      transform: none !important;
      min-height: 200px;
    }

    .why { padding: 100px 24px; }
    .voices { padding: 100px 24px; }

    .faq { padding: 100px 24px; }
    .faq-head { grid-template-columns: 1fr; gap: 28px; margin-bottom: 50px; }
    .faq-arches { grid-template-columns: repeat(2, 1fr); gap: 28px; }
    .arch-face { padding: 30px 18px 22px; }
    .arch-front h4 { font-size: 19px; }
    .arch-back p { font-size: 14px; }

    .visit { padding: 100px 24px; }
    .visit-inner { grid-template-columns: 1fr; gap: 50px; }

    .footer { padding: 80px 24px 30px; }
    .footer-top { grid-template-columns: 1fr 1fr; gap: 40px; padding-bottom: 50px; }
    .footer-brand { grid-column: span 2; }
  }

  @media (max-width: 600px) {
    .hero-title { font-size: clamp(44px, 13vw, 80px); }
    .hero-tag { flex-wrap: nowrap; }
    .faq-arches { grid-template-columns: 1fr; gap: 32px; }
    .faq-arch { max-width: 248px; margin: 0 auto; }
    .footer-top { grid-template-columns: 1fr; }
    .footer-brand { grid-column: span 1; }
    .nav-book { display: none; }
  }

  /* ============ BOTANICAL ANIMATIONS ============ */
  /* every specimen sprig and arch-specimen starts pre-set to its animated entry pose,
     and the .animate class triggers the settle. */

  /* small section specimens (in .specimen wrapper) */
  .specimen .sprig {
    transform-origin: 50% 100%;
    transform: rotate(-8deg) translateY(6px);
    opacity: 0;
    transition: transform 0.9s cubic-bezier(.2,.6,.25,1), opacity 0.7s ease;
  }
  .specimen.animate .sprig {
    transform: rotate(0deg) translateY(0);
    opacity: 1;
  }

  .specimen .caption {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.7s ease 0.35s, transform 0.7s ease 0.35s;
  }
  .specimen.animate .caption {
    opacity: 1;
    transform: translateY(0);
  }

  /* hero herbarium tag */
  .hero-tag .sprig {
    transform-origin: 50% 100%;
    transform: rotate(-8deg) translateY(6px);
    opacity: 0;
    transition: transform 0.9s cubic-bezier(.2,.6,.25,1), opacity 0.7s ease;
  }
  .hero-tag.animate .sprig {
    transform: rotate(0deg) translateY(0);
    opacity: 1;
  }

  .hero-tag .tag-text {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.7s ease 0.35s, transform 0.7s ease 0.35s;
  }
  .hero-tag.animate .tag-text {
    opacity: 1;
    transform: translateY(0);
  }

  /* faq arch specimens (settle on arch front) */
  .arch-specimen {
    transform-origin: 50% 100%;
    transform: rotate(-6deg) translateY(8px);
    opacity: 0;
    transition: transform 1s cubic-bezier(.2,.6,.25,1), opacity 0.8s ease;
  }
  .faq-arch.animate .arch-specimen {
    transform: rotate(0deg) translateY(0);
    opacity: 1;
  }

  /* respect reduced-motion */
  @media (prefers-reduced-motion: reduce) {
    .specimen .sprig, .specimen .caption,
    .hero-tag .sprig, .hero-tag .tag-text,
    .arch-specimen {
      transition: none !important;
      transform: none !important;
      opacity: 1 !important;
    }
  }

  /* Fade animation on load */
  .fade-in {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeUp 1s ease forwards;
  }

  @keyframes fadeUp {
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .delay-1 { animation-delay: 0.1s; }
  .delay-2 { animation-delay: 0.25s; }
  .delay-3 { animation-delay: 0.4s; }
  .delay-4 { animation-delay: 0.55s; }


  .ss-comp{container-type:inline-size;width:100%;}
  .ss-stage{position:relative;width:100%;max-width:560px;margin:0 auto;aspect-ratio:1;}
  .ss-accent{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
  .ss-accent line{transition:all .25s ease;}
  .ss-sun{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:50%;height:50%;}
  .ss-corona{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
  .ss-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:19%;box-sizing:border-box;}
  .ss-hn{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:clamp(.92rem,3.2cqi,1.28rem);color:var(--moss-deep);line-height:1.18;}
  .ss-node{position:absolute;transform:translate(-50%,-50%);cursor:pointer;font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:clamp(.8rem,2.7cqi,1.12rem);color:var(--moss-soft);text-align:center;max-width:135px;line-height:1.2;transition:color .2s,transform .2s;}
  .ss-node:hover{color:var(--ink);}
  .ss-node.on{color:var(--terra);transform:translate(-50%,-50%) scale(1.06);}
  .ss-caption{max-width:520px;margin:22px auto 0;text-align:center;min-height:82px;}
  .ss-cdesc{font-family:'Outfit',system-ui,sans-serif;color:var(--moss);font-size:16px;line-height:1.6;max-width:48ch;margin:0 auto 12px;}
  .ss-clink{font-family:'Outfit',system-ui,sans-serif;font-weight:500;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--terra);text-decoration:none;}
  .ss-clink:hover{color:var(--terra-deep);}
  .ss-clink.hide{display:none;}
  .ss-mlist{display:none;margin:0;padding:0;}
  @container (max-width:520px){
    .ss-stage{aspect-ratio:auto;display:block;max-width:none;height:auto;}
    .ss-accent{display:none;}
    .ss-node{display:none;}
    .ss-sun{position:relative;left:auto;top:auto;transform:none;width:200px;height:200px;margin:4px auto 8px;}
    .ss-mlist{display:flex;flex-direction:column;align-items:center;list-style:none;width:100%;margin-top:8px;}
    .ss-mlist li{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:1.1rem;color:var(--moss-soft);padding:13px 0;cursor:pointer;text-align:center;}
    .ss-mlist li.on{color:var(--terra);}
    .ss-caption{margin-top:14px;min-height:0;}
  }

/* ===================================================================
   FoxSignal additions , sub-pages, in the site's own design tokens
   =================================================================== */
.subhero{max-width:880px;margin:0 auto;padding:150px 24px 18px;text-align:center;position:relative;z-index:2;}
.subhero .specimen{justify-content:center;margin-bottom:20px;}
.subhero h1{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:clamp(40px,6vw,66px);line-height:1.03;color:var(--moss-deep);letter-spacing:-0.02em;}
.subhero .lede{font-family:'Outfit',system-ui,sans-serif;font-size:18px;line-height:1.7;color:var(--moss);max-width:640px;margin:22px auto 0;}
.wrap{max-width:1180px;margin:0 auto;padding:0 48px;}
.narrow{max-width:820px;}
.section-pad{padding:64px 0 90px;}
.crumb{font-family:'Outfit',system-ui,sans-serif;font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--terra);margin-bottom:18px;}
@media(max-width:640px){.wrap{padding:0 24px;}.subhero{padding:118px 24px 8px;}}

/* practitioners */
.prac-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(264px,1fr));gap:52px 36px;margin:60px auto 0;}
.prac-card{display:flex;flex-direction:column;}
.prac-photo{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px;background:var(--bone-warm);display:block;}
.prac-name{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:21px;line-height:1.2;color:var(--moss-deep);margin-top:20px;}
.prac-role{font-family:'Outfit',system-ui,sans-serif;font-size:11px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--terra);margin:9px 0 12px;line-height:1.5;}
.prac-bio{font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.62;color:var(--moss-soft);}
.prac-card.featured .prac-photo{box-shadow:0 0 0 2px var(--terra),0 24px 50px -28px rgba(28,38,32,.5);}
.prac-card .new-flag{display:inline-block;font-family:'Outfit',system-ui,sans-serif;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--bone);background:var(--terra);border-radius:20px;padding:4px 12px;margin-bottom:10px;width:max-content;}

/* service detail */
.svc-prose{max-width:760px;margin:0 auto;}
.svc-prose p{font-family:'Outfit',system-ui,sans-serif;font-size:17px;line-height:1.8;color:var(--moss);margin-bottom:20px;}
.svc-points{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:30px;margin:54px auto;max-width:900px;}
.svc-point h4{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:19px;color:var(--moss-deep);margin-bottom:8px;}
.svc-point p{font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.62;color:var(--moss-soft);}
.svc-provider{background:var(--bone);border-radius:8px;padding:44px 36px;text-align:center;max-width:760px;margin:10px auto 0;}
.svc-provider h3{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:26px;color:var(--moss-deep);margin-bottom:12px;}
.svc-provider p{font-family:'Outfit',system-ui,sans-serif;font-size:15px;line-height:1.7;color:var(--moss-soft);max-width:560px;margin:0 auto 26px;}
.cta-row{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}

/* retreats menu */
.retreat-block{border-top:1px solid var(--bone-warm);padding:30px 0;display:grid;grid-template-columns:260px 1fr;gap:36px;}
.retreat-block:first-child{border-top:none;}
.retreat-head h3{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:21px;color:var(--moss-deep);line-height:1.2;}
.retreat-head .rb-time{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);margin-top:8px;}
.retreat-items{list-style:none;margin:0;padding:0;}
.retreat-items li{font-family:'Outfit',system-ui,sans-serif;font-size:15px;line-height:1.55;color:var(--moss);padding:11px 0;border-bottom:1px dashed var(--bone-warm);}
.retreat-items li:last-child{border-bottom:none;}
.retreat-items li b{font-family:'Marcellus',Georgia,serif;font-weight:400;color:var(--moss-deep);display:block;margin-bottom:2px;font-size:16px;}
.combo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin-top:40px;}
.combo{background:var(--bone);border-radius:8px;padding:30px;}
.combo h4{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:20px;color:var(--moss-deep);margin-bottom:8px;}
.combo p{font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.6;color:var(--moss-soft);}
@media(max-width:640px){.retreat-block{grid-template-columns:1fr;gap:14px;}}

/* ---- GIFT CARDS PAGE (Option 2: editorial list) ---- */
.gc-c{max-width:920px;margin:0 auto;padding:24px 32px 90px;}
.gc-list{display:flex;flex-direction:column;}
.gc-row{display:grid;grid-template-columns:64px 1fr auto;gap:28px;align-items:center;padding:30px 0;border-bottom:1px solid var(--bone-warm);}
.gc-row:first-child{border-top:1px solid var(--bone-warm);}
.gc-icon{width:48px;height:48px;color:var(--terra);}
.gc-icon svg{width:100%;height:100%;}
.gc-text h3{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:22px;color:var(--moss-deep);margin:0 0 4px;line-height:1.2;letter-spacing:-.005em;}
.gc-text p{font-family:'Outfit',system-ui,sans-serif;font-size:13.5px;color:var(--moss-soft);line-height:1.55;margin:0;}
.gc-actions{display:flex;gap:6px;align-items:center;}
.gc-actions a{padding:9px 14px;background:transparent;border:1px solid var(--bone-warm);border-radius:5px;text-decoration:none;color:var(--moss-deep);font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:14px;transition:background .2s,color .2s,border-color .2s;}
.gc-actions a:hover{background:var(--terra);color:var(--bone);border-color:var(--terra);}
.gc-actions a.gc-custom{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:9px 12px;color:var(--moss-soft);border-color:transparent;margin-left:4px;}
.gc-actions a.gc-custom:hover{color:var(--terra);background:transparent;border-color:transparent;text-decoration:underline;}
.gc-meta{max-width:680px;margin:50px auto 0;padding:28px 32px;background:var(--bone);border-radius:10px;}
.gc-meta p{font-family:'Outfit',system-ui,sans-serif;font-size:14.5px;line-height:1.7;color:var(--moss-soft);margin:0 0 12px;}
.gc-meta p:last-child{margin-bottom:0;}
.gc-meta strong{font-family:'Marcellus',Georgia,serif;font-weight:400;color:var(--moss-deep);font-size:16px;display:inline-block;margin-right:4px;}
.gc-meta a{color:var(--terra);text-decoration:none;border-bottom:1px solid var(--terra);padding-bottom:1px;}
.gc-meta a:hover{color:var(--moss-deep);border-color:var(--moss-deep);}
@media(max-width:720px){
  .gc-c{padding:16px 24px 70px;}
  .gc-row{grid-template-columns:48px 1fr;grid-template-rows:auto auto;gap:18px 18px;padding:24px 0;}
  .gc-icon{width:40px;height:40px;}
  .gc-actions{grid-column:1 / -1;flex-wrap:wrap;gap:6px;}
  .gc-actions a{flex:1;text-align:center;min-width:0;}
  .gc-actions a.gc-custom{flex-basis:100%;margin-left:0;margin-top:4px;border-top:1px solid var(--bone-warm);padding-top:12px;border-radius:0;}
  .gc-meta{padding:22px 22px;}
}

/* classes booking */
.cls-tools{text-align:center;margin:8px auto 0;}
.cls-notice{display:none;max-width:680px;margin:24px auto 0;background:var(--bone);border-left:3px solid var(--terra);border-radius:4px;padding:16px 20px;font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.6;color:var(--moss);}
.classes-list{max-width:880px;margin:46px auto 0;}
.loading,.empty{font-family:'Outfit',system-ui,sans-serif;text-align:center;color:var(--moss-soft);padding:50px 0;}
.month-group{margin-bottom:50px;}
.month-label{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:24px;color:var(--moss-deep);border-bottom:1px solid var(--bone-warm);padding-bottom:14px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:baseline;}
.month-label span{font-family:'Outfit',system-ui,sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);}
.event{display:grid;grid-template-columns:88px 1fr;gap:26px;padding:26px 0;border-bottom:1px solid var(--bone-warm);opacity:0;transform:translateY(10px);transition:opacity .5s,transform .5s;}
.event.in{opacity:1;transform:none;}
.event.soldout{opacity:.55;}
.date-badge{text-align:center;border:1px solid var(--bone-warm);border-radius:6px;padding:12px 4px;height:max-content;}
.date-badge .day{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:30px;color:var(--moss-deep);line-height:1;}
.date-badge .mon{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.16em;color:var(--terra);margin-top:5px;}
.date-badge .dow{font-family:'Outfit',system-ui,sans-serif;font-size:11px;color:var(--moss-soft);margin-top:3px;}
.event .body h3{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:23px;color:var(--moss-deep);}
.event .meta{font-family:'Outfit',system-ui,sans-serif;font-size:13px;color:var(--moss-soft);margin:6px 0 10px;}
.event .meta b{color:var(--moss);font-weight:500;}
.event .desc{font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.6;color:var(--moss-soft);max-width:60ch;}
.event .foot{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:18px;flex-wrap:wrap;}
.seatline{display:flex;align-items:center;gap:18px;}
.event .price{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:20px;color:var(--moss-deep);}
.seats{font-family:'Outfit',system-ui,sans-serif;font-size:13px;color:var(--leaf);display:flex;align-items:center;gap:7px;}
.seats .dot{width:7px;height:7px;border-radius:50%;background:var(--leaf);display:inline-block;}
.seats.low{color:var(--terra);}.seats.low .dot{background:var(--terra);}
.seats.none{color:var(--moss-soft);}.seats.none .dot{background:var(--moss-soft);}
.btn.full{background:var(--bone-warm);color:var(--moss-soft);cursor:default;pointer-events:none;}
.btn.full::before{display:none;}
@media(max-width:640px){.event{grid-template-columns:64px 1fr;gap:16px;}.date-badge .day{font-size:24px;}}

/* ---- ACUITY EMBED on classes.html (active booking system) ---- */
.cls-c{max-width:1080px;margin:0 auto;padding:24px 32px 90px;}
.cls-intro{max-width:680px;margin:0 auto 40px;text-align:center;}
.cls-intro p{font-family:'Outfit',system-ui,sans-serif;font-size:15.5px;line-height:1.7;color:var(--moss-soft);margin:0;}
.cls-embed{background:var(--bone);border:1px solid var(--bone-warm);border-radius:14px;padding:20px;box-shadow:0 24px 50px -34px rgba(45,58,46,.25);overflow:hidden;}
.cls-embed iframe{display:block;width:100%;min-height:800px;border:0;border-radius:8px;background:#ffffff;}
.cls-foot-note{font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.75;color:var(--moss-soft);text-align:center;margin:40px auto 0;max-width:680px;}
.cls-foot-note a{color:var(--terra);text-decoration:none;border-bottom:1px solid var(--terra);padding-bottom:1px;}
.cls-foot-note a:hover{color:var(--moss-deep);border-color:var(--moss-deep);}
@media(max-width:720px){
  .cls-c{padding:16px 20px 70px;}
  .cls-embed{padding:12px;border-radius:10px;}
  .cls-embed iframe{min-height:900px;border-radius:6px;}
}

/* ===================================================================
   FoxSignal , dropdown nav, mobile menu, About/Services pages
   =================================================================== */
.nav-item.has-sub{position:relative;}
.nav-sub-label{font-family:'Outfit',system-ui,sans-serif;background:none;border:none;cursor:pointer;color:var(--moss);font-size:13px;letter-spacing:.06em;text-transform:lowercase;padding:4px 0;display:inline-flex;align-items:center;gap:5px;}
.nav-sub-label::after{content:'\2304';font-size:12px;color:var(--moss-soft);position:relative;top:-3px;}
/* Desktop dropdown panel. Deliberately NOT scoped to .has-sub: the homepage nav
   markup uses a bare .nav-item, so this one rule has to govern both navs or the
   homepage falls back to the old square panel further down this sheet. */
.nav-item > .submenu{position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%) translateY(6px);min-width:236px;background:var(--paper);border:1px solid var(--bone-warm);border-radius:10px;box-shadow:0 26px 54px -30px rgba(28,38,32,.6);padding:8px;opacity:0;visibility:hidden;transition:.18s ease;z-index:120;}
.nav-item:hover > .submenu,.nav-item.open > .submenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.submenu a{display:block;padding:10px 14px;font-size:13px;color:var(--moss);text-decoration:none;border-radius:6px;text-transform:none;letter-spacing:.02em;white-space:nowrap;}
/* Both navs style their top-level links with a selector that outranks plain
   `.submenu a`, so the nav's lowercasing and letter-spacing leak into the
   dropdown. Scoping through .nav-item outranks both and pins the panel to the
   values the interior pages already shipped: 12.5px, Title Case, .06em. */
.nav-item > .submenu a:not(.btn){font-size:12.5px;text-transform:none;letter-spacing:.06em;}
.nav-item > .submenu a:not(.btn):hover{background:var(--linen);color:var(--terra);}
.submenu a::after{display:none !important;}
.submenu a:hover{background:var(--bone);color:var(--terra);}
.nav-phone{color:var(--moss-soft) !important;font-variant-numeric:tabular-nums;}
.nav-toggle{display:none;background:none;border:1px solid var(--bone-warm);border-radius:8px;padding:9px 10px;cursor:pointer;}
.nav-toggle span{display:block;width:20px;height:1.5px;background:var(--moss);margin:4px 0;transition:.25s;}
.nav-toggle.open span:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);}

@media (max-width:1024px){
  .nav-toggle{display:block;}
  .nav-links{position:fixed;top:62px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--bone-warm);box-shadow:0 24px 40px -24px rgba(0,0,0,.3);max-height:0;overflow:hidden;padding:0 24px;transition:max-height .3s ease;}
  .nav-links.open{max-height:88vh;overflow-y:auto;padding:8px 24px 22px;}
  .nav-links a:not(.btn):not(.nav-mobile-show){display:block;}
  /* `.nav-links a:not(.btn)` (desktop) outranks a bare `.nav-links > a`, which left
     these rows at 4px padding / 13px type. Matching its specificity so the drawer
     rows are real 48px tap targets. */
  .nav-links > a:not(.btn),.nav-sub-label{padding:15px 0;border-bottom:1px solid var(--bone-warm);width:100%;font-size:15px;}
  .nav-sub-label{justify-content:space-between;}
  .nav-item.has-sub{width:100%;}
  .nav-item.has-sub > .submenu{position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;border:none;background:transparent;padding:0 0 6px 14px;min-width:0;max-height:0;overflow:hidden;transition:max-height .25s ease;}
  .nav-item.has-sub.open > .submenu{max-height:420px;}
  .submenu a{padding:12px 0;}
  .nav-phone{padding:15px 0;}
  .nav-book{margin-top:16px;text-align:center;}
}

/* tighten practitioner copy (shorter, cleaner) */
.prac-bio{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;}

/* testimonials */
.tcols{columns:3 290px;column-gap:28px;max-width:1080px;margin:54px auto 0;}
.tcard{break-inside:avoid;background:var(--paper);border:1px solid var(--bone-warm);border-radius:12px;padding:30px;margin-bottom:28px;}
.tcard p{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:18px;line-height:1.5;color:var(--moss-deep);}
.tcard .who{font-family:'Outfit',system-ui,sans-serif;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin-top:18px;}

/* office tour gallery */
.tour-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;max-width:1100px;margin:52px auto 0;grid-auto-rows:200px;grid-auto-flow:dense;}
.tour-cell{background:var(--bone-warm);border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;}
.tour-cell img{width:100%;height:100%;object-fit:cover;}
.tour-cell .ph{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--moss-soft);}
.tour-cell.tall{grid-row:span 2;}
.tour-cell.wide{grid-column:span 2;}

/* review us */
.review-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;max-width:880px;margin:50px auto 0;}
.review-card{background:var(--paper);border:1px solid var(--bone-warm);border-radius:12px;padding:36px 28px;text-align:center;}
.review-card h4{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:22px;color:var(--moss-deep);margin-bottom:12px;}
.review-card p{font-family:'Outfit',system-ui,sans-serif;font-size:14px;color:var(--moss-soft);line-height:1.6;margin-bottom:22px;}
.stars{color:var(--amber);font-size:20px;letter-spacing:4px;margin-bottom:14px;}

/* ===================================================================
   FoxSignal , page redos: practitioners, testimonials, review, retreats
   =================================================================== */
/* Practitioners , editorial list with working read-more */
.team{max-width:940px;margin:54px auto 0;}
.member{display:grid;grid-template-columns:184px 1fr;gap:38px;align-items:start;padding:42px 0;border-top:1px solid var(--bone-warm);}
.member:first-child{border-top:none;padding-top:8px;}
.member .m-photo{width:184px;aspect-ratio:4/5;object-fit:cover;border-radius:6px;background:var(--bone-warm);display:block;}
.member.featured .m-photo{box-shadow:0 0 0 2px var(--terra),0 22px 46px -26px rgba(28,38,32,.5);}
.m-flag{display:inline-block;font-family:'Outfit',system-ui,sans-serif;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--bone);background:var(--terra);border-radius:20px;padding:4px 12px;margin-bottom:10px;}
.m-name{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:26px;color:var(--moss-deep);line-height:1.12;}
.m-role{font-family:'Outfit',system-ui,sans-serif;font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);margin:9px 0 16px;line-height:1.6;}
.m-bio p{font-family:'Outfit',system-ui,sans-serif;font-size:15px;line-height:1.72;color:var(--moss-soft);margin-bottom:13px;}
.m-bio .more{display:none;}
.m-bio.open .more{display:block;}
.m-toggle{background:none;border:none;cursor:pointer;font-family:'Outfit',system-ui,sans-serif;font-weight:500;font-size:13px;color:var(--terra);padding:0;margin-top:2px;border-bottom:1px solid var(--terra);}
@media(max-width:640px){.member{grid-template-columns:1fr;gap:18px;}.member .m-photo{width:160px;}}

/* Testimonials , editorial, offset quotes (overrides earlier boxy version) */
.t-wrap{max-width:780px;margin:52px auto 0;}
.t-quote{padding:42px 0;border-bottom:1px solid var(--bone-warm);position:relative;}
.t-quote:last-child{border-bottom:none;}
.t-quote p{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:clamp(21px,2.8vw,29px);line-height:1.42;color:var(--moss-deep);}
.t-quote .who{font-family:'Outfit',system-ui,sans-serif;font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);margin-top:18px;}
/* Right-aligning these broke the -webkit-line-clamp ellipsis: Chromium lays the
   ellipsis outside the box, so overflow:hidden clipped the last characters of
   every line on the even cards. The indent alone carries the zig-zag, and it
   also keeps the attribution and Read more under the quote they belong to. */
.t-quote:nth-child(even){padding-left:72px;}
.t-quote:nth-child(odd){padding-right:72px;}
.t-quote .mark{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:72px;color:var(--bone-warm);line-height:1;position:absolute;top:30px;}
.t-quote:nth-child(odd) .mark{left:-8px;}
.t-quote:nth-child(even) .mark{right:-8px;}
/* The alternating left/right zig-zag needs the width to read as a device rather
   than a mistake. Below 860px (tablet portrait and down) the column is too
   narrow for it, so every quote reverts to a plain left-aligned block. */
@media(max-width:860px){.t-quote,.t-quote:nth-child(even),.t-quote:nth-child(odd){text-align:left;padding:34px 0;}.t-quote .mark{display:none;}}

/* Review Us , thumbs gate + forms */
.rv-wrap{max-width:640px;margin:44px auto 0;}
.rv-gate{text-align:center;}
.rv-q{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:27px;color:var(--moss-deep);margin-bottom:28px;}
.rv-thumbs{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
.rv-thumb{display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--bone-warm);border-radius:14px;padding:28px 40px;cursor:pointer;transition:.2s;font-family:'Outfit',system-ui,sans-serif;font-size:14px;color:var(--moss);min-width:150px;}
.rv-thumb:hover{border-color:var(--terra);transform:translateY(-2px);box-shadow:0 18px 40px -26px rgba(28,38,32,.4);}
.rv-thumb svg{width:36px;height:36px;}
.rv-thumb.up svg{color:var(--leaf);}
.rv-thumb.down svg{color:var(--moss-soft);}
.rv-form{display:none;background:var(--paper);border:1px solid var(--bone-warm);border-radius:14px;padding:36px;}
.rv-form.show{display:block;}
.rv-form h3{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:25px;color:var(--moss-deep);margin-bottom:10px;}
.rv-form .intro{font-family:'Outfit',system-ui,sans-serif;font-size:14px;color:var(--moss-soft);margin-bottom:24px;line-height:1.6;}
.rv-field{margin-bottom:16px;}
.rv-field label{display:block;font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--moss-soft);margin-bottom:7px;}
.rv-field input,.rv-field textarea{width:100%;font-family:'Outfit',system-ui,sans-serif;font-size:15px;color:var(--moss-deep);background:var(--bone);border:1px solid var(--bone-warm);border-radius:6px;padding:12px 14px;}
.rv-field input:focus,.rv-field textarea:focus{outline:none;border-color:var(--terra);}
.rv-field textarea{min-height:120px;resize:vertical;}
.rv-check{display:flex;gap:11px;align-items:flex-start;font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.5;color:var(--moss);margin:4px 0 22px;}
.rv-check input{margin-top:3px;flex-shrink:0;}
.rv-hp{position:absolute;left:-9999px;}
.rv-back{margin-top:16px;font-family:'Outfit',system-ui,sans-serif;font-size:13px;color:var(--moss-soft);cursor:pointer;background:none;border:none;}

/* Retreats , image bands */
.r-hero-img{max-width:1180px;margin:34px auto 0;height:340px;border-radius:16px;background:linear-gradient(135deg,var(--leaf) 0%,var(--moss) 70%);display:flex;align-items:center;justify-content:center;color:var(--bone);font-family:'Outfit',system-ui,sans-serif;letter-spacing:.22em;text-transform:uppercase;font-size:12px;position:relative;overflow:hidden;}
.r-hero-img::after{content:'Hero photo';opacity:.7;}
.combo .c-img{height:150px;border-radius:8px;background:var(--bone-warm);margin-bottom:18px;display:flex;align-items:center;justify-content:center;font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--moss-soft);}
.r-band{display:grid;grid-template-columns:1fr 1fr;gap:0;max-width:1180px;margin:60px auto;border-radius:16px;overflow:hidden;border:1px solid var(--bone-warm);}
.r-band .r-img{min-height:300px;background:linear-gradient(135deg,var(--bone-warm),#e3d9c2);display:flex;align-items:center;justify-content:center;font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--moss-soft);}
.r-band .r-txt{padding:46px;background:var(--paper);align-self:center;}
.r-band .r-txt h3{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:28px;color:var(--moss-deep);margin-bottom:12px;}
.r-band .r-txt p{font-family:'Outfit',system-ui,sans-serif;font-size:15px;line-height:1.7;color:var(--moss-soft);}
@media(max-width:640px){.r-band{grid-template-columns:1fr;}.r-band .r-img{min-height:200px;}.r-band .r-txt{padding:32px;}}

/* ===================================================================
   FoxSignal , Service pages, Option C (editorial sidebar)
   =================================================================== */
.svc-c{max-width:1120px;margin:0 auto;padding:132px 48px 96px;}
.svc-c-wrap{display:grid;grid-template-columns:300px 1fr;gap:58px;align-items:start;}
.svc-side{position:sticky;top:108px;background:var(--bone);border:1px solid var(--bone-warm);border-radius:14px;padding:30px 26px;text-align:center;}
.svc-side .svc-photo{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:9px;background:var(--bone-warm);margin-bottom:20px;display:block;}
.svc-side .svc-icon{width:100%;aspect-ratio:1/1;margin-bottom:20px;display:flex;align-items:center;justify-content:center;background:var(--paper);border-radius:9px;color:var(--terra);padding:24px;}
.svc-side .svc-icon svg{width:100%;height:100%;}
.svc-side h3{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:22px;color:var(--moss-deep);line-height:1.15;}
.svc-side .role{font-family:'Outfit',system-ui,sans-serif;font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin:9px 0 20px;line-height:1.55;}
.svc-side .btn{width:100%;text-align:center;}
.svc-side .svc-sublink{display:inline-block;margin-top:14px;font-family:'Outfit',system-ui,sans-serif;font-size:13px;color:var(--moss-soft);text-decoration:none;border-bottom:1px solid var(--bone-warm);}
.svc-side .svc-sublink:hover{color:var(--terra);border-color:var(--terra);}
.svc-side .svc-note{font-family:'Outfit',system-ui,sans-serif;font-size:12.5px;color:var(--moss-soft);line-height:1.6;margin-top:16px;}
.svc-main .crumb{margin-bottom:12px;}
.svc-main h1{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:clamp(34px,5vw,52px);line-height:1.05;color:var(--moss-deep);letter-spacing:-0.01em;margin-bottom:18px;}
.svc-main .lead{font-family:'Outfit',system-ui,sans-serif;font-size:18px;line-height:1.7;color:var(--moss);margin-bottom:14px;}
.svc-main p{font-family:'Outfit',system-ui,sans-serif;font-size:16px;line-height:1.75;color:var(--moss-soft);margin-bottom:15px;}
.svc-main p em{font-style:italic;color:var(--moss);}
.svc-img{height:300px;border-radius:10px;background:linear-gradient(135deg,var(--bone-warm),#e3d9c2);display:flex;align-items:center;justify-content:center;font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--moss-soft);margin:30px 0;}
.svc-feature{margin:34px 0 10px;}
.svc-feature h4{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:21px;color:var(--moss-deep);margin-bottom:6px;}
.svc-list{list-style:none;margin:14px 0 0;padding:0;}
.svc-list li{font-family:'Outfit',system-ui,sans-serif;font-size:15px;line-height:1.6;color:var(--moss-soft);padding:14px 0;border-bottom:1px solid var(--bone-warm);}
.svc-list li:last-child{border-bottom:none;}
.svc-list li b{font-family:'Marcellus',Georgia,serif;font-weight:400;color:var(--moss-deep);display:block;font-size:17px;margin-bottom:3px;}
.cal-acc{max-width:820px;margin:0 auto 34px}
.cal-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:var(--bone);border:1px solid var(--bone-warm);border-radius:8px;padding:15px 22px;cursor:pointer;font-family:'Outfit',system-ui,sans-serif;font-size:13px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--moss-deep);transition:border-color .2s,color .2s}
.cal-btn:hover{border-color:var(--terra);color:var(--terra)}
.cal-chev{width:17px;height:17px;flex:none;transition:transform .25s ease}
.cal-btn[aria-expanded="true"] .cal-chev{transform:rotate(180deg)}
.cal-panel{margin-top:14px;border:1px solid var(--bone-warm);border-radius:8px;overflow:hidden;background:var(--paper)}
.cal-panel[hidden]{display:none}
.cal-panel iframe{display:block;width:100%;height:640px;border:0}
@media(max-width:640px){.cal-panel iframe{height:520px}.cal-btn{font-size:11.5px;letter-spacing:.1em;padding:14px 16px}}
.svc-feature .svc-sub{font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:17px;line-height:1.4;color:var(--terra);margin:-4px 0 12px}
.svc-feature .svc-fine{font-size:13.5px;line-height:1.7;color:var(--muted);border-top:1px solid var(--bone-warm);padding-top:14px;margin-top:16px}
.svc-feature .svc-fine a{color:var(--terra)}
.tm-card .tm-mods{font-family:'Outfit',system-ui,sans-serif;font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--euc);margin:9px 0 2px}
.tm-card h3{color:var(--moss-deep)}
.footer-logo-img{display:block;width:212px;max-width:100%;height:auto;margin-bottom:20px}
.foot img.footer-logo-img{margin-bottom:16px}
@media(max-width:640px){.footer-logo-img{width:180px}}
.svc-img.has-photo{background:none;padding:0;overflow:hidden}
.svc-img.has-photo img{width:100%;height:100%;object-fit:cover;display:block;border-radius:10px}
.svc-shot{margin:30px 0 6px}
.svc-shot img{width:100%;height:auto;display:block;border-radius:10px}
.svc-shot figcaption{font-family:'Outfit',system-ui,sans-serif;font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--euc);margin-top:11px}
.r-hero-img.has-photo{background:none;overflow:hidden}
.r-hero-img.has-photo img{width:100%;height:100%;object-fit:cover;display:block}
.r-hero-img.has-photo::after{content:none}
.r-band .r-img.has-photo{background:none;padding:0;overflow:hidden}
.r-band .r-img.has-photo img{width:100%;height:100%;object-fit:cover;display:block}
.combo .c-img.has-photo{background:none;padding:0;overflow:hidden}
.combo .c-img.has-photo img{width:100%;height:100%;object-fit:cover;display:block}
.voices-foot{text-align:center;margin-top:44px}
.voices-foot a{font-family:'Outfit',system-ui,sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);text-decoration:none;border-bottom:1px solid var(--terra);padding-bottom:3px}
.voices-foot a:hover{color:var(--terra-deep);border-color:var(--terra-deep)}
.t-quote p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}
.t-quote.open p{-webkit-line-clamp:unset;overflow:visible}
.t-attr{margin-top:14px;font-family:'Outfit',system-ui,sans-serif;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.t-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:46px}
.retreat-note{font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.75;color:var(--muted);max-width:62ch;margin:18px 0 0;text-align:left}
.svc-menu-grid .mi-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.svc-menu-grid .mi{padding:22px 0;border-bottom:1px solid var(--bone-warm)}
.svc-menu-grid .mi:last-of-type,.svc-menu-grid .mi:nth-last-of-type(2){border-bottom:none}
.svc-menu-grid .mi-new{position:relative}
.mi-flag{display:inline-block;font-family:'Outfit',system-ui,sans-serif;font-size:9.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--paper-2);background:var(--terra);border-radius:999px;padding:5px 12px;margin-bottom:9px}
.svc-menu-grid .svc-menu-note{border-top:1px solid var(--bone-warm);padding-top:18px;margin-top:4px}
.svc-menu-grid .svc-menu-note b{font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:16px;color:var(--moss-deep)}
@media(max-width:860px){.footer-logo-img{display:block;width:212px;max-width:100%;height:auto;margin-bottom:20px}
.foot img.footer-logo-img{margin-bottom:16px}
@media(max-width:640px){.footer-logo-img{width:180px}}
.retreat-note{font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.75;color:var(--muted);max-width:62ch;margin:18px 0 0;text-align:left}
.svc-menu-grid .mi-grid{grid-template-columns:1fr}.svc-menu-grid .mi:nth-last-of-type(2){border-bottom:1px solid var(--bone-warm)}}
.svc-ib-links .item-go{display:block;font-family:'Outfit',system-ui,sans-serif;font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--golden);margin-top:8px}
.svc-ib-links a:hover .item-go{color:var(--bone)}
.svc-menu .svc-menu-note .btn{margin-top:4px}
.m-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.m-link{display:inline-flex;align-items:center;gap:8px;font-family:'Outfit',system-ui,sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.11em;text-transform:uppercase;color:var(--moss);text-decoration:none;border:1px solid var(--bone-warm);border-radius:999px;padding:8px 16px;transition:border-color .2s,color .2s}
.m-link:hover{border-color:var(--terra);color:var(--terra)}
.m-link svg{width:14px;height:14px;flex:none}
@media(max-width:560px){.m-link{font-size:10.5px;padding:7px 13px;letter-spacing:.08em}}
.svc-menu{margin:34px 0 10px;}
.svc-menu h4{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:21px;color:var(--moss-deep);margin-bottom:6px;}
.svc-menu .mi{padding:20px 0;border-bottom:1px solid var(--bone-warm);}
.svc-menu .mi:last-of-type{border-bottom:none;}
.svc-menu .mi-name{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:19px;line-height:1.2;color:var(--moss-deep);}
.svc-menu .mi-desc{font-family:'Outfit',system-ui,sans-serif;font-size:15px;line-height:1.6;color:var(--moss-soft);margin-top:6px;}
.svc-menu .mi-rates{display:flex;flex-wrap:wrap;gap:6px 30px;margin-top:13px;}
.svc-menu .mi-rates span{font-family:'Outfit',system-ui,sans-serif;font-size:12.5px;font-weight:400;letter-spacing:.13em;text-transform:uppercase;color:var(--moss-soft);}
.svc-menu .mi-rates b{font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:19px;letter-spacing:0;text-transform:none;color:var(--terra);margin-left:12px;vertical-align:-2px;}
.svc-menu .svc-menu-note{font-family:'Outfit',system-ui,sans-serif;font-size:13.5px;line-height:1.65;color:var(--moss-soft);margin-top:22px;}
@media(max-width:820px){
  .svc-c{padding:108px 24px 64px;}
  .svc-c-wrap{grid-template-columns:1fr;gap:30px;}
  .svc-side{position:static;}
  .svc-side .svc-photo{max-width:210px;margin-left:auto;margin-right:auto;}
}

/* Fix: solid, always-visible submit buttons inside forms (the hand-drawn blob
   sits on z-index:-1 and vanishes behind the form panel) */
.rv-form .btn-primary{background:var(--moss);color:var(--bone);border-radius:3px;}
.rv-form .btn-primary::before,.rv-form .btn-primary::after{display:none !important;}
.rv-form .btn-primary:hover{background:var(--terra);color:var(--bone);}

/* ===================================================================
   FoxSignal , homepage redesign (blend: intro band + service list + why)
   =================================================================== */
.hp-intro{padding:84px 48px;background:var(--paper);position:relative;z-index:2;}
.hp-intro .hp-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center;}
.hp-img{border-radius:14px;display:flex;align-items:center;justify-content:center;color:var(--bone);font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;}
.hp-intro .hp-img{min-height:430px;background:linear-gradient(135deg,var(--leaf),var(--moss));}
.hp-intro .specimen{margin-bottom:6px;}
.hp-intro h2{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:clamp(34px,4.6vw,52px);line-height:1.05;color:var(--moss-deep);margin:10px 0 18px;letter-spacing:-0.01em;}
.hp-intro .belief{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:20px;line-height:1.5;color:var(--moss);margin-bottom:12px;}
.hp-intro .belief em{font-style:italic;color:var(--terra);}
.hp-intro .tag{font-family:'Outfit',system-ui,sans-serif;font-size:14px;color:var(--moss-soft);margin-bottom:26px;}

.hp-services{padding:24px 48px 84px;background:var(--paper);position:relative;z-index:2;}
.hp-services .hp-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:58px;align-items:start;}
.hp-services .svc-anchor{position:sticky;top:108px;min-height:470px;border-radius:14px;background:linear-gradient(135deg,var(--bone-warm),#dfd4ba);display:flex;align-items:center;justify-content:center;color:var(--moss-soft);font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;}
.hp-shead{margin-bottom:8px;}
.hp-srow{display:flex;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid var(--bone-warm);text-decoration:none;color:inherit;transition:padding-left .25s ease;}
.hp-srow:first-of-type{border-top:1px solid var(--bone-warm);}
.hp-srow:hover{padding-left:8px;}
.hp-srow .thumb{width:78px;height:78px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,var(--bone-warm),#d8cdb3);}
.hp-srow .st-title{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:22px;color:var(--moss-deep);display:block;line-height:1.1;}
.hp-srow .st-desc{font-family:'Outfit',system-ui,sans-serif;font-size:13.5px;color:var(--moss-soft);line-height:1.5;display:block;margin-top:5px;}
.hp-srow .st-arrow{margin-left:auto;color:var(--terra);flex-shrink:0;}
.hp-srow .st-arrow svg{width:26px;height:14px;}

.hp-why{padding:84px 48px;background:linear-gradient(180deg,var(--paper) 0%,#f0e9d8 100%);position:relative;z-index:2;overflow:hidden;}
.hp-why .hp-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.hp-why .hp-img{min-height:410px;background:linear-gradient(135deg,var(--bone-warm),#d8ccb1);color:var(--moss-soft);}
.hp-why .specimen{margin-bottom:8px;}
.hp-why h2{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:clamp(28px,3.6vw,42px);line-height:1.12;color:var(--moss-deep);margin:8px 0 16px;letter-spacing:-0.01em;}
.hp-why h2 em{font-style:italic;color:var(--terra);}
.hp-why .why-body{font-family:'Outfit',system-ui,sans-serif;font-size:15px;line-height:1.7;color:var(--moss-soft);margin-bottom:24px;}

/* enlarge founder portrait per request */
.founder-portrait{width:320px;height:404px;}

@media(max-width:820px){
  .hp-intro{padding:60px 24px;}
  .hp-intro .hp-grid{grid-template-columns:1fr;gap:28px;}
  .hp-intro .hp-img{min-height:280px;order:-1;}
  .hp-services{padding:8px 24px 60px;}
  .hp-services .hp-grid{grid-template-columns:1fr;gap:24px;}
  .hp-services .svc-anchor{position:static;min-height:220px;}
  .hp-why{padding:60px 24px;}
  .hp-why .hp-grid{grid-template-columns:1fr;gap:28px;}
  .hp-why .hp-img{min-height:240px;order:-1;}
  .founder-portrait{width:240px;height:300px;}
}

/* services: single left column, icon tiles (no anchor photo) */
.hp-services .hp-grid{grid-template-columns:1fr !important;}
.hp-services .svc-anchor{display:none !important;}
.hp-slist{max-width:880px;}
.hp-srow .thumb{width:66px;height:66px;border-radius:14px;background:var(--bone);border:1px solid var(--bone-warm);display:flex;align-items:center;justify-content:center;color:var(--terra);}
.hp-srow .thumb svg{width:34px;height:34px;}
.hp-srow:hover .thumb{background:var(--bone-warm);border-color:var(--terra);}

/* section heads: stack to one centered column (heading, text underneath) */
.classes-head, .faq-head{display:block;text-align:center;max-width:760px;margin-left:auto;margin-right:auto;}
.classes-head .specimen, .faq-head .specimen{justify-content:center;}
.classes-head > div, .faq-head > div{margin:0 auto;}
.classes-head p, .faq-head p{max-width:620px;margin:20px auto 0;}

/* Review page , Option 3: thumbs + quote/reassurance panel */
.rv-gate.rv3{display:grid;grid-template-columns:1.1fr .9fr;gap:0;text-align:left;border:1px solid var(--bone-warm);border-radius:16px;overflow:hidden;}
.rv3-left{padding:48px 42px;background:var(--paper);}
.rv3-q{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:clamp(25px,3.2vw,32px);color:var(--moss-deep);line-height:1.12;margin-bottom:10px;}
.rv3-sub{font-family:'Outfit',system-ui,sans-serif;font-size:14.5px;color:var(--moss-soft);line-height:1.6;margin-bottom:28px;}
.rv3-thumbs{display:flex;gap:14px;flex-wrap:wrap;}
.rv3-tbtn{display:flex;align-items:center;gap:10px;border:1px solid var(--bone-warm);border-radius:12px;padding:14px 20px;background:var(--bone);cursor:pointer;font-family:'Outfit',system-ui,sans-serif;font-size:14.5px;color:var(--moss);text-decoration:none;transition:border-color .2s ease,transform .2s ease;}
.rv3-tbtn.up{text-decoration:none;}
.rv3-tbtn:hover,.rv3-tbtn:visited{color:var(--moss);text-decoration:none;}
.rv3-tbtn:hover{border-color:var(--terra);transform:translateY(-2px);}
.rv3-tbtn svg{width:24px;height:24px;}
.rv3-tbtn.up svg{color:var(--leaf);}
.rv3-tbtn.down svg{color:var(--moss-soft);}
.rv3-right{background:var(--moss-deep);color:var(--bone);padding:46px 40px;display:flex;flex-direction:column;justify-content:center;}
.rv3-quote{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:21px;line-height:1.4;color:var(--bone);}
.rv3-who{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin-top:16px;}
.rv3-count{font-family:'Outfit',system-ui,sans-serif;font-size:12.5px;color:#bcc6b9;margin-top:24px;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;line-height:1.55;}
@media(max-width:720px){.rv-gate.rv3{grid-template-columns:1fr;}.rv3-right{order:-1;}}

/* ===================================================================
   FoxSignal , MOBILE QA PASS (authoritative; appended last to win)
   =================================================================== */

/* Buttons sitting inside cards: the hand-drawn blob renders behind the
   card and disappears. Use a solid fill so the CTA is always visible. */
.svc-side .btn-primary{background:var(--moss);color:var(--bone);border-radius:3px;}
.svc-side .btn-primary::before,.svc-side .btn-primary::after{display:none !important;}
.svc-side .btn-primary:hover{background:var(--terra);color:var(--bone);}

/* ---- TEAM SECTION (Reiki page: shows multiple practitioners) ---- */
.svc-team{max-width:1120px;margin:0 auto;padding:30px 48px 96px;}
.svc-team-head{text-align:center;max-width:680px;margin:0 auto 50px;}
.svc-team-head .specimen{justify-content:center;margin-bottom:18px;}
.svc-team-head h2{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:clamp(32px,4vw,46px);line-height:1.05;color:var(--moss-deep);letter-spacing:-0.015em;margin-bottom:14px;}
.svc-team-head p{font-family:'Outfit',system-ui,sans-serif;font-size:16px;line-height:1.7;color:var(--moss-soft);}
.svc-team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.tm-card{background:var(--bone);border:1px solid var(--bone-warm);border-radius:14px;padding:28px 24px 26px;text-align:center;display:flex;flex-direction:column;align-items:center;transition:transform .35s ease, box-shadow .35s ease;}
.tm-card:hover{transform:translateY(-4px);box-shadow:0 24px 50px -28px rgba(45,58,46,.35);}
.tm-card .tm-photo{width:140px;height:140px;border-radius:50%;overflow:hidden;background:var(--bone-warm);margin-bottom:18px;}
.tm-card .tm-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.tm-card h3{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:22px;color:var(--moss-deep);line-height:1.15;margin-bottom:6px;}
.tm-card .tm-role{font-family:'Outfit',system-ui,sans-serif;font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin-bottom:16px;line-height:1.55;min-height:34px;}
.tm-card .tm-bio{font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.65;color:var(--moss-soft);margin-bottom:20px;flex:1;}
.tm-card .tm-cta{margin-top:auto;font-family:'Outfit',system-ui,sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--terra);text-decoration:none;border-bottom:1px solid var(--bone-warm);padding-bottom:3px;transition:color .25s, border-color .25s;}
.tm-card .tm-cta:hover{color:var(--moss-deep);border-color:var(--terra);}

/* ---- INSIGHTS BLOCK on service pages: dark botanical sidebar ---- */
.svc-ib{margin:48px 0 0;padding:44px 40px;background:var(--moss-deep);color:var(--bone);border-radius:10px;position:relative;overflow:hidden;}
.svc-ib::before{content:'';position:absolute;right:-60px;top:-40px;width:280px;height:280px;opacity:0.07;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cg stroke='%23f4efe4' stroke-width='1' fill='none'%3E%3Cpath d='M100 20 Q100 100, 100 180' /%3E%3Cpath d='M100 50 Q70 60, 50 50 M100 50 Q130 60, 150 50'/%3E%3Cpath d='M100 80 Q65 95, 40 80 M100 80 Q135 95, 160 80'/%3E%3Cpath d='M100 110 Q60 130, 35 115 M100 110 Q140 130, 165 115'/%3E%3Cpath d='M100 140 Q65 155, 45 145 M100 140 Q135 155, 155 145'/%3E%3C/g%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;}
.svc-ib-grid{display:grid;grid-template-columns:200px 1fr;gap:40px;position:relative;}
.svc-ib-left .ib-eyebrow{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--amber);margin-bottom:14px;}
.svc-ib-left h3{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:24px;color:var(--bone);line-height:1.1;margin:0 0 14px;}
.svc-ib-left p{font-family:'Outfit',system-ui,sans-serif;font-size:13.5px;color:rgba(244,239,228,.7);line-height:1.6;margin:0 0 16px;}
.svc-ib-left a.ib-hub{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--amber);text-decoration:none;border-bottom:1px solid var(--amber);padding-bottom:2px;transition:color .25s, border-color .25s;}
.svc-ib-left a.ib-hub:hover{color:var(--bone);border-color:var(--bone);}
.svc-ib-right h4{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--amber);margin:0 0 12px;}
.svc-ib-right h4:not(:first-child){margin-top:22px;}
.svc-ib-links{display:flex;flex-direction:column;}
.svc-ib-links a{padding:13px 0;border-bottom:1px solid rgba(244,239,228,.12);text-decoration:none;color:var(--bone);display:flex;align-items:baseline;gap:12px;transition:color .25s;}
.svc-ib-links a:hover{color:var(--amber);}
.svc-ib-links a:last-child{border-bottom:none;}
.svc-ib-links .roman{font-weight:400;font-family:'Marcellus',Georgia,serif;font-style:italic;font-size:11px;color:var(--amber);min-width:28px;opacity:.85;flex-shrink:0;}
.svc-ib-links .item-title{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:15px;line-height:1.3;flex:1;}
.svc-ib-links .item-src{font-family:'Outfit',system-ui,sans-serif;font-size:10.5px;color:rgba(244,239,228,.55);letter-spacing:.04em;display:block;margin-top:3px;}

/* ---- INSIGHTS HUB PAGE ---- */
.ins-c{max-width:1080px;margin:0 auto;padding:30px 48px 96px;}
.ins-section{margin-bottom:64px;}
.ins-section-head{display:flex;align-items:baseline;gap:18px;margin-bottom:24px;padding-bottom:14px;border-bottom:1px solid var(--bone-warm);}
.ins-section-head h2{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:26px;color:var(--moss-deep);line-height:1.1;}
.ins-section-head .ins-count{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--moss-soft);}
.ins-list{display:grid;gap:18px;}
.ins-item{display:block;padding:22px 26px;background:var(--bone);border:1px solid var(--bone-warm);border-radius:10px;text-decoration:none;color:inherit;transition:transform .25s ease, border-color .25s ease;}
.ins-item:hover{transform:translateX(4px);border-color:var(--terra);}
.ins-item .ins-source{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);margin-bottom:8px;display:block;}
.ins-item h3{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:19px;color:var(--moss-deep);line-height:1.3;margin-bottom:7px;}
.ins-item p{font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.6;color:var(--moss-soft);}
.ins-blog-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.ins-blog-card{display:block;background:var(--bone);border:1px solid var(--bone-warm);border-radius:10px;padding:28px;text-decoration:none;color:inherit;transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;}
.ins-blog-card:hover{transform:translateY(-3px);border-color:var(--terra);box-shadow:0 20px 40px -24px rgba(45,58,46,.3);}
.ins-blog-card .ins-blog-tag{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);margin-bottom:14px;display:block;}
.ins-blog-card h3{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:22px;color:var(--moss-deep);line-height:1.25;margin-bottom:12px;}
.ins-blog-card p{font-family:'Outfit',system-ui,sans-serif;font-size:14.5px;color:var(--moss-soft);line-height:1.6;margin-bottom:14px;}
.ins-blog-card .ins-blog-meta{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--moss-soft);}

/* ---- BLOG POST PAGE (Direction B: two-column with sidebar) ---- */
.bp-c{max-width:1100px;margin:0 auto;padding:150px 48px 96px;}
.bp-wrap{display:grid;grid-template-columns:1fr 280px;gap:60px;align-items:start;}
.bp-main .bp-crumb{font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);margin-bottom:18px;}
.bp-main .bp-crumb a{color:var(--terra);text-decoration:none;}
.bp-main h1{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:clamp(32px,4.2vw,42px);line-height:1.1;color:var(--moss-deep);letter-spacing:-.015em;margin-bottom:18px;}
.bp-main .bp-deck{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:19px;line-height:1.55;color:var(--moss-soft);margin-bottom:28px;}
.bp-main .bp-meta{display:flex;align-items:center;gap:14px;font-family:'Outfit',system-ui,sans-serif;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--moss-soft);padding-bottom:24px;border-bottom:1px solid var(--bone-warm);margin-bottom:32px;flex-wrap:wrap;}
.bp-main .bp-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--terra);flex-shrink:0;}
.bp-main p{font-family:'Outfit',system-ui,sans-serif;font-size:16.5px;line-height:1.8;color:var(--moss-deep);margin-bottom:20px;font-weight:300;}
.bp-main p.lead{font-family:'Marcellus',Georgia,serif;font-size:21px;line-height:1.55;color:var(--moss-deep);margin-bottom:30px;font-weight:400;}
.bp-main h2{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:24px;color:var(--moss-deep);margin:36px 0 14px;line-height:1.2;letter-spacing:-.005em;}
.bp-main h3{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:19px;color:var(--moss-deep);margin:28px 0 10px;line-height:1.25;}
.bp-main ul, .bp-main ol{margin:0 0 22px;padding-left:22px;}
.bp-main li{font-family:'Outfit',system-ui,sans-serif;font-size:16.5px;line-height:1.75;color:var(--moss-deep);margin-bottom:8px;font-weight:300;}
.bp-main em{font-style:italic;color:var(--moss);}
.bp-main strong{font-weight:500;color:var(--moss-deep);}
.bp-main .bp-pullquote{margin:38px 0;padding:0;}
.bp-main .bp-pullquote p{font-family:'Marcellus',Georgia,serif;font-size:24px;line-height:1.35;color:var(--terra);font-style:italic;font-weight:400;margin:0;}
.bp-main .bp-divider{display:flex;align-items:center;justify-content:center;margin:38px 0;}
.bp-main .bp-divider svg{width:32px;height:32px;}
.bp-main .bp-divider svg path, .bp-main .bp-divider svg circle{stroke:var(--terra);stroke-width:0.9;fill:none;stroke-linecap:round;opacity:.55;}
.bp-main .bp-divider svg .berry{fill:var(--terra);stroke:none;opacity:.5;}
.bp-main .bp-closing{margin-top:42px;padding:28px 32px;background:var(--bone);border-radius:10px;}
.bp-main .bp-closing p{margin-bottom:14px;font-size:15.5px;}
.bp-main .bp-closing p:last-child{margin-bottom:0;}
.bp-main .bp-closing a{color:var(--terra);text-decoration:none;border-bottom:1px solid var(--terra);padding-bottom:1px;}
.bp-main .bp-closing a:hover{color:var(--moss-deep);border-color:var(--moss-deep);}

/* Blog post sidebar (Direction B sticky right column) */
.bp-side{position:sticky;top:108px;}
.bp-card{background:var(--bone);border-radius:10px;padding:24px;margin-bottom:18px;}
.bp-card-label{font-family:'Outfit',system-ui,sans-serif;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--terra);margin-bottom:12px;}
.bp-side .bp-author{display:flex;gap:12px;align-items:center;}
.bp-side .bp-author .ph{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--terra),var(--amber));display:flex;align-items:center;justify-content:center;color:var(--bone);font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:18px;flex-shrink:0;}
.bp-side .bp-author .ph img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.bp-side .bp-author h4{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:16px;color:var(--moss-deep);margin:0;line-height:1.2;}
.bp-side .bp-author p{font-family:'Outfit',system-ui,sans-serif;font-size:11.5px;color:var(--moss-soft);letter-spacing:.04em;margin:3px 0 0;line-height:1.4;}
.bp-side .bp-related a{display:block;padding:10px 0;border-bottom:1px solid rgba(45,58,46,.1);text-decoration:none;}
.bp-side .bp-related a:last-child{border-bottom:none;}
.bp-side .bp-related .rt{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:14px;color:var(--moss-deep);line-height:1.3;display:block;}
.bp-side .bp-related .rs{font-family:'Outfit',system-ui,sans-serif;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin-top:4px;display:block;}
.bp-side .bp-related a:hover .rt{color:var(--terra);}
.bp-cta{background:var(--moss-deep);color:var(--bone);padding:22px 20px;border-radius:10px;text-align:center;}
.bp-cta h5{font-weight:400;font-family:'Marcellus',Georgia,serif;font-size:17px;color:var(--bone);margin-bottom:8px;line-height:1.25;}
.bp-cta p{font-family:'Outfit',system-ui,sans-serif;font-size:12.5px;color:rgba(244,239,228,.75);margin-bottom:14px;line-height:1.5;}
.bp-cta a{display:inline-block;font-family:'Outfit',system-ui,sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--amber);text-decoration:none;border-bottom:1px solid var(--amber);padding-bottom:2px;}
.bp-cta a:hover{color:var(--bone);border-color:var(--bone);}

@media(max-width:900px){
  .svc-team{padding:20px 24px 70px;}
  .svc-team-grid{grid-template-columns:1fr;gap:20px;}
  .tm-card{padding:24px 22px 22px;}
  .tm-card .tm-photo{width:120px;height:120px;}
  .svc-ib{padding:32px 24px;margin:36px 0 0;}
  .svc-ib-grid{grid-template-columns:1fr;gap:26px;}
  .ins-c{padding:20px 24px 70px;}
  .ins-blog-grid{grid-template-columns:1fr;}
  .bp-c{padding:118px 24px 70px;}
  .bp-wrap{grid-template-columns:1fr;gap:36px;}
  .bp-side{position:static;}
}

/* ---- MOBILE NAV: force the About/Services dropdowns into real accordions ---- */
@media (max-width:1024px){
  .nav-links a:not(.btn){display:block !important;}
  .nav-item.has-sub{position:relative !important;width:100%;}
  .nav-sub-label{display:flex !important;width:100%;justify-content:space-between;align-items:center;}
  .nav-item.has-sub > .submenu{
    position:static !important;left:auto !important;top:auto !important;
    transform:none !important;opacity:1 !important;visibility:visible !important;
    background:transparent !important;border:none !important;box-shadow:none !important;
    min-width:0 !important;width:100%;padding:0 0 6px 16px !important;z-index:auto !important;
    max-height:0;overflow:hidden;transition:max-height .28s ease;
  }
  .nav-item.has-sub.open > .submenu{max-height:640px;}
  .submenu a{display:block !important;white-space:normal !important;padding:12px 0 !important;font-size:14px;border-bottom:1px solid var(--bone-warm);}
  .submenu a:last-child{border-bottom:none;}
}

/* ---- MOBILE LAYOUT FIXES ---- */
@media (max-width:768px){
  body{overflow-x:hidden;}

  /* FAQ flip-cards: give the card real height so the absolute faces show */
  .faq-arches{grid-template-columns:1fr !important;gap:16px !important;max-width:360px;margin:34px auto 0 !important;}
  .faq-arch{aspect-ratio:auto !important;max-width:none !important;width:100%;height:auto !important;min-height:0 !important;perspective:none !important;cursor:pointer;}
  .faq-arch-inner{transform:none !important;transform-style:flat !important;height:auto !important;position:relative !important;transition:none !important;}
  .arch-face{position:relative !important;inset:auto !important;backface-visibility:visible !important;-webkit-backface-visibility:visible !important;transform:none !important;height:auto !important;min-height:184px;}
  .arch-back{display:none !important;}
  .faq-arch.flipped .arch-front{display:none !important;}
  .faq-arch.flipped .arch-back{display:flex !important;}
  .arch-front h4{font-size:18px;}
  .arch-back p{font-size:13.5px;}

  /* Why marks: all three on one row, smaller */
  .why-marks{gap:12px !important;flex-wrap:nowrap !important;justify-content:space-between !important;padding-top:32px !important;}
  .why-mark{flex:1;gap:8px;}
  .why-mark svg{width:24px;height:24px;}
  .why-mark span{font-size:11px;text-align:center;line-height:1.3;letter-spacing:.02em;}

  /* Founder: center Kathleen's portrait */
  .founder-portrait{margin-left:auto !important;margin-right:auto !important;}
  .founder-letter{text-align:left;}

  /* Trim the big vertical gaps between sections on mobile */
  .founder{padding:58px 24px !important;}
  .classes{padding:58px 24px 48px !important;}
  .voices{padding:48px 24px !important;}
  .cform{padding:28px 20px}
  .faq{padding:52px 24px !important;}
  .visit{padding:56px 24px !important;}

  /* Office tour: stack to a single column of even 4:3 cards */
  .tour-grid{grid-template-columns:1fr !important;grid-auto-rows:auto !important;margin-top:34px;gap:14px;}
  .tour-cell{aspect-ratio:4/3;min-height:0;height:auto;}
  .tour-cell.tall{grid-row:auto !important;}
  .tour-cell.wide{grid-column:auto !important;}

  /* Retreats: scale the hero down, keep bands inset so nothing bleeds */
  .r-hero-img{height:200px !important;margin:22px 16px 0 !important;width:auto !important;}
  .r-band{grid-template-columns:1fr !important;margin:34px 16px !important;width:auto !important;}
  .r-band .r-img{min-height:180px !important;}
  .r-band .r-txt{padding:30px !important;}
  .combo-grid{grid-template-columns:1fr !important;}

  /* Service sidebar: tighten the stack so there's no dead space */
  .svc-c{padding:104px 22px 56px !important;}
  .svc-side{padding:26px 22px !important;}
  .svc-side .svc-photo{max-width:200px;}
}

/* ===== new-palette retheme compat layer ===== */
.logo-mark .logo-img{width:30px;height:auto;display:block}
.nav{background:rgba(251,248,242,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.footer{background:var(--moss-deep)}
body::after{opacity:.28}

/* ===================== HOMEPAGE SYSTEM ===================== */

:root{
  --linen:#F6F1E8;--paper:#FBF8F2;--paper-2:#FDFBF7;
  --sage:#7D8C6E;--moss:#5E6B56;--moss-deep:#4A5545;--euc:#97A48D;--leaf:#6B7B4D;
  --oak:#C6A77B;--drift:#CFC4B4;--charcoal:#373631;
  --terra:#C97A4A;--terra-deep:#A85F35;--golden:#D7B46A;
  --ink:#3D3B35;--muted:#7A7568;--line:rgba(55,54,49,.12);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Outfit',system-ui,sans-serif;font-weight:300;background:var(--paper);color:var(--ink);line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.display{font-family:'Marcellus',Georgia,serif;font-weight:400}
img{max-width:100%;display:block}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:150;opacity:.30;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.4 0 0 0 0 0.36 0 0 0 0 0.28 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

.nav{position:fixed;top:0;left:0;right:0;z-index:200;padding:18px 44px;display:flex;justify-content:space-between;align-items:center;
  background:rgba(251,248,242,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:padding .3s,box-shadow .3s}
.nav.scrolled{padding:11px 44px;box-shadow:0 1px 0 rgba(55,54,49,.07)}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--moss)}
.logo img{width:26px;display:block}
.logo .wm{font-weight:400;font-family:'Marcellus',serif;font-size:19px;letter-spacing:.10em;line-height:1;color:var(--moss-deep)}
.logo .wm span{display:block;font-family:'Outfit',sans-serif;font-size:8px;font-weight:400;letter-spacing:.26em;text-transform:uppercase;margin-top:5px;color:var(--euc)}
.nlinks{display:flex;align-items:center;gap:30px}
.nlinks a:not(.btn),.nlinks button{background:none;border:0;font-family:'Outfit',sans-serif;font-weight:400;text-decoration:none;color:var(--moss);font-size:12.5px;letter-spacing:.09em;text-transform:lowercase;cursor:pointer;position:relative;padding:4px 0}
.nlinks a:not(.btn)::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--terra);transition:width .3s}
.nlinks a:not(.btn):hover::after{width:100%}
.nphone{color:var(--muted)!important;letter-spacing:.05em!important}
.nav-item{position:relative}
/* The homepage dropdown used to be restyled here (square corners, no side
   padding, smaller type). That duplicate is gone: the nav dropdown is defined
   once, above, and both navs now share it. */
.ntoggle{display:none;background:none;border:0;flex-direction:column;gap:4px;cursor:pointer}
.ntoggle span{display:block;width:22px;height:1px;background:var(--moss)}

.btn{display:inline-flex;align-items:center;gap:9px;font-family:'Outfit',sans-serif;font-weight:400;font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:14px 26px;border-radius:2px;transition:.25s;cursor:pointer;border:1px solid transparent}
.btn svg{width:15px;height:15px;transition:transform .25s}
.btn:hover svg{transform:translateX(4px)}
.btn-primary{background:var(--sage);color:#FBF8F2}
.btn-primary:hover{background:var(--moss)}
.btn-terra{background:var(--terra);color:#FBF8F2}
.btn-terra:hover{background:var(--terra-deep)}
.btn-ghost{background:transparent;color:var(--moss);border-color:var(--drift)}
.btn-ghost:hover{border-color:var(--sage);background:rgba(125,140,110,.06)}
.btn-lite{background:rgba(251,248,242,.9);color:var(--moss);border-color:rgba(251,248,242,.6)}

.spec{display:flex;align-items:center;gap:11px}
.spec.center{justify-content:center}
.spec svg{width:24px;height:30px;fill:none;stroke:var(--euc);stroke-width:1;stroke-linecap:round}
.spec svg .berry{fill:var(--terra);stroke:none;opacity:.65}
.spec .cap{display:flex;flex-direction:column;line-height:1.25}
.spec .latin{font-weight:400;font-family:'Marcellus',serif;font-style:italic;font-size:14px;color:var(--sage)}
.spec .note{font-family:'Outfit',sans-serif;font-size:9px;font-weight:400;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.spec.on-dark svg{stroke:rgba(246,241,232,.55)}
.spec.on-dark .latin{color:rgba(246,241,232,.85)}
.spec.on-dark .note{color:rgba(246,241,232,.5)}

.srow{display:flex;gap:22px;align-items:center;padding:24px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:.28s}
.srow:first-of-type{border-top:1px solid var(--line)}
.srow:hover{padding-left:14px;background:linear-gradient(90deg,rgba(125,140,110,.05),transparent 70%)}
.srow .thumb{flex:0 0 auto;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--paper-2);border:1px solid var(--line);color:var(--sage)}
.srow .thumb svg{width:30px;height:30px}
.st-title{display:block;font-weight:400;font-family:'Marcellus',serif;font-size:24px;color:var(--moss-deep);line-height:1.2}
.st-desc{display:block;font-size:13.5px;color:var(--muted);margin-top:3px;max-width:56ch}
.st-arrow{margin-left:auto;color:var(--terra);opacity:0;transform:translateX(-8px);transition:.28s}
.st-arrow svg{width:26px;height:14px;fill:none;stroke:currentColor;stroke-width:1.2}
.srow:hover .st-arrow{opacity:1;transform:translateX(0)}

.ss-comp{container-type:inline-size;width:100%}
.ss-stage{position:relative;width:100%;max-width:560px;margin:0 auto;aspect-ratio:1}
.ss-accent{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ss-accent line{transition:all .25s ease}
.ss-sun{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:50%;height:50%}
.ss-corona{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ss-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:19%;box-sizing:border-box}
.ss-hn{font-weight:400;font-family:'Marcellus',serif;font-size:clamp(1rem,3.6cqi,1.45rem);color:var(--moss-deep);line-height:1.18}
.ss-node{position:absolute;transform:translate(-50%,-50%);cursor:pointer;font-weight:400;font-family:'Marcellus',serif;font-size:clamp(.9rem,3cqi,1.25rem);color:var(--muted);text-align:center;max-width:140px;line-height:1.2;transition:.2s}
.ss-node:hover{color:var(--charcoal)}
.ss-node.on{color:var(--terra);transform:translate(-50%,-50%) scale(1.06)}
.ss-caption{max-width:520px;margin:22px auto 0;text-align:center;min-height:86px}
.ss-cdesc{color:var(--muted);font-size:15px;line-height:1.65;max-width:48ch;margin:0 auto 12px}
.ss-clink{font-weight:400;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--terra);text-decoration:none}
.ss-clink.hide{display:none}
.ss-mlist{display:none;margin:0;padding:0}
@container (max-width:640px){
  .ss-stage{aspect-ratio:auto;display:block;max-width:none;height:auto}
  .ss-accent,.ss-node{display:none}
  .ss-sun{position:relative;left:auto;top:auto;transform:none;width:190px;height:190px;margin:4px auto 8px}
  .ss-mlist{display:flex;flex-direction:column;align-items:center;list-style:none;width:100%;margin-top:8px}
  .ss-mlist li{font-weight:400;font-family:'Marcellus',serif;font-size:1.15rem;color:var(--muted);padding:12px 0;cursor:pointer}
  .ss-mlist li.on{color:var(--terra)}
  .ss-caption{margin-top:14px;min-height:0}
}

.arches{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1080px;margin:0 auto}
.arch{perspective:1400px;cursor:pointer;aspect-ratio:.78}
.arch-in{position:relative;width:100%;height:100%;transition:transform .8s cubic-bezier(.4,.2,.2,1);transform-style:preserve-3d}
.arch:hover .arch-in,.arch.flipped .arch-in{transform:rotateY(180deg)}
.face{position:absolute;inset:0;backface-visibility:hidden;border-radius:50% 50% 6px 6px/32% 32% 4px 4px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px 24px}
.f-front{background:var(--paper-2);border:1px solid var(--line);box-shadow:0 10px 34px rgba(55,54,49,.06)}
.f-back{transform:rotateY(180deg);background:var(--sage);border:1px solid var(--sage);color:var(--linen);box-shadow:0 10px 34px rgba(55,54,49,.10)}
.arch-spec{width:44px;height:82px;fill:none;stroke:var(--euc);stroke-width:1;stroke-linecap:round;opacity:.75;margin-bottom:14px}
.arch-spec .berry{fill:var(--terra);stroke:none}
.arch-meta{display:flex;flex-direction:column;gap:3px;margin-bottom:12px}
.roman{font-weight:400;font-family:'Marcellus',serif;font-size:15px;color:var(--terra);letter-spacing:.2em}
.plant{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.f-front h4{font-family:'Marcellus',serif;font-weight:400;font-size:21px;line-height:1.28;color:var(--moss-deep);max-width:20ch}
.hint{position:absolute;bottom:18px;font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--drift)}
.roman-back{font-weight:400;font-family:'Marcellus',serif;font-size:16px;letter-spacing:.2em;color:rgba(251,248,242,.6);margin-bottom:14px}
.f-back p{font-weight:400;font-family:'Marcellus',serif;font-size:19px;line-height:1.5;max-width:24ch}

.foot{background:var(--moss-deep);color:rgba(246,241,232,.72);padding:76px 44px 30px;position:relative;z-index:2}
.foot-in{max-width:1180px;margin:0 auto}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:44px;padding-bottom:44px;border-bottom:1px solid rgba(246,241,232,.14)}
.foot h5{font-family:'Outfit',sans-serif;font-weight:400;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:rgba(246,241,232,.45);margin-bottom:18px}
.foot a{color:rgba(246,241,232,.72);text-decoration:none;font-size:13.5px;display:block;padding:5px 0;transition:.2s}
.foot a:hover{color:var(--golden)}
.foot .fbrand{font-weight:400;font-family:'Marcellus',serif;font-size:24px;color:var(--linen);letter-spacing:.06em;margin-bottom:6px}
.foot .fbrand span{display:block;font-family:'Outfit',sans-serif;font-size:8.5px;letter-spacing:.26em;text-transform:uppercase;color:rgba(246,241,232,.42);margin-top:6px}
.foot .fblurb{font-size:13.5px;line-height:1.75;max-width:32ch;margin-top:16px}
.foot-bot{display:flex;justify-content:space-between;padding-top:24px;font-size:11.5px;color:rgba(246,241,232,.4)}

@media(max-width:960px){
  .arches{grid-template-columns:repeat(2,1fr)}
  .foot-top{grid-template-columns:1fr 1fr;gap:34px}
}
@media(max-width:860px){
  .arches{grid-template-columns:1fr;max-width:340px}
  .foot-top{grid-template-columns:1fr}
  .foot-bot{flex-direction:column;gap:8px}
}

/* ---- Homepage mobile nav -------------------------------------------------
   Mirrors the interior drawer exactly: same 1024px breakpoint, same full-width
   rows, same inline accordion. Selectors are scoped through .nlinks so they
   outrank the shared `.nav-item > .submenu` desktop panel rule, which was
   otherwise winning inside this media query and floating the submenu over the
   drawer. Rows are >=48px so they are real tap targets. */
@media(max-width:1024px){
  .nav{padding:14px 20px}
  .hero{padding-top:88px}
  .ntoggle{display:flex}
  .nlinks{position:fixed;top:62px;left:0;right:0;height:auto;width:auto;flex-direction:column;
    align-items:stretch;gap:0;background:var(--paper);border-bottom:1px solid var(--bone-warm);
    box-shadow:0 24px 40px -24px rgba(0,0,0,.3);max-height:0;overflow:hidden;padding:0 24px;
    transform:none;transition:max-height .3s ease}
  .nlinks.open{max-height:88vh;overflow-y:auto;padding:8px 24px 22px;transform:none}
  .nlinks a:not(.btn),.nlinks .nav-sub-label{display:block;width:100%;font-size:15px!important;
    padding:15px 0;border-bottom:1px solid var(--bone-warm);text-align:left}
  .nlinks a:not(.btn)::after{display:none}
  .nlinks .nav-item{position:relative;width:100%}
  .nlinks .nav-item > .submenu{position:static;transform:none;opacity:1;visibility:visible;
    display:block;box-shadow:none;border:none;border-radius:0;background:transparent;
    padding:0 0 6px 14px;min-width:0;max-height:0;overflow:hidden;transition:max-height .25s ease}
  .nlinks .nav-item.open > .submenu{max-height:640px}
  .nlinks .nav-item > .submenu a{display:block;width:100%;white-space:normal;padding:13px 0;
    font-size:14px!important;border-bottom:1px solid var(--bone-warm);text-align:left}
  .nlinks .nav-item > .submenu a:last-child{border-bottom:none}
  .nlinks .btn-primary{margin-top:16px;text-align:center;padding:16px 20px}
}
/* interior heading weight normalization to match homepage editorial weight */
.subhero h1,.crumb + h1,h1,h2.centered,.prac-name,.svc-feature h3,.member .m-name{font-weight:400}
.subhero h1{font-weight:300}

.rev{opacity:0;transform:translateY(22px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.rev.in{opacity:1;transform:none}
.rev.d1{transition-delay:.1s}.rev.d2{transition-delay:.2s}.rev.d3{transition-delay:.3s}

/* ============ HOMEPAGE (Variation G) ============ */
.wash{position:absolute;inset:0;background-size:cover;background-position:center;pointer-events:none}
.rugline{height:34px;background-image:url('images/tx-rug-border.jpg');background-size:auto 100%;background-repeat:repeat-x;opacity:.5;filter:saturate(.62)}
.sheet{position:relative;max-width:1160px;margin:0 auto;background:var(--paper-2);box-shadow:0 2px 0 rgba(55,54,49,.05),0 40px 90px rgba(55,54,49,.09)}
.leafghost{position:absolute;inset:0;background-image:url('images/bg-botanical-frame.jpg');background-size:cover;background-position:center;opacity:.13;mix-blend-mode:multiply;pointer-events:none}
.rugghost{position:absolute;inset:0;background-image:url('images/tx-rug.jpg');background-size:520px;background-repeat:repeat;opacity:.075;mix-blend-mode:multiply;pointer-events:none}

/* padding-top reserves the fixed nav's height. Without it the hero content,
   which is bottom-aligned inside a min-height:100vh box, slid up underneath
   the nav on any window shorter than about 790px and the first headline line
   was cut in half. min-height (not height) lets the hero grow past the
   viewport instead of clipping when the content needs the room. */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden;padding:112px 0 84px}
.hero-bg{position:absolute;inset:0;background-image:url('images/ph-slatwall.jpg');background-size:cover;background-position:70% 45%;transform:scale(1.04)}
.hero-scrim{position:absolute;inset:0;background:
  linear-gradient(98deg,rgba(251,248,242,.97) 0%,rgba(251,248,242,.90) 34%,rgba(248,243,233,.52) 56%,rgba(246,241,232,.12) 78%,rgba(215,180,106,.06) 100%),
  linear-gradient(180deg,rgba(251,248,242,.55) 0%,rgba(251,248,242,0) 26%,rgba(246,241,232,.35) 100%)}
.hero-leaf{position:absolute;inset:0;background-image:url('images/bg-botanical-frame.jpg');background-size:cover;opacity:.17;mix-blend-mode:multiply}
.hero-in{position:relative;z-index:3;max-width:1280px;width:100%;margin:0 auto;padding:0 44px}
.hero h1{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(50px,7vw,96px);line-height:.99;color:var(--moss-deep);letter-spacing:-.015em;margin:20px 0 24px}
.hero h1 em{font-style:italic;color:var(--terra);font-weight:400}
/* The 46ch cap squashed this into a narrow column under a much wider headline,
   leaving an empty column to its right. The headline's widest line measures
   6.27x its own font size, and that font is clamp(50px,7vw,96px), so the same
   measure expressed for this paragraph is clamp(313px,43.9vw,602px). The copy
   now ends on exactly the same right edge as the headline at every width, and
   min(100%) keeps it inside the column on phones. */
.hero-lede{font-size:16.5px;line-height:1.85;color:var(--muted);max-width:min(100%,clamp(313px,43.9vw,602px));margin-bottom:32px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.hero .btn-lite{background:var(--sage);color:#FDFBF7;border-color:var(--sage)}
.hero .btn-lite:hover{background:var(--moss)}
.hero .btn-outline{background:rgba(251,248,242,.7);color:var(--moss);border-color:var(--drift)}
.hero .btn-outline:hover{background:rgba(251,248,242,.95)}
.scrollcue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:3;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);text-align:center}
.scrollcue i{display:block;width:1px;height:34px;background:linear-gradient(180deg,var(--drift),transparent);margin:10px auto 0}

.svc{position:relative;padding:100px 44px;background:var(--linen);overflow:hidden}
.svc-in{position:relative;z-index:2;max-width:1000px;margin:0 auto}
.svc-head{margin-bottom:28px}
.svc-head h2{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(30px,3.9vw,46px);color:var(--moss-deep);margin-top:12px}
.svc-head h2 em{font-style:italic;color:var(--terra)}

.arch-photo{position:relative;border-radius:50% 50% 8px 8px/26% 26% 6px 6px;overflow:hidden;box-shadow:0 30px 80px rgba(55,54,49,.14)}
.arch-photo img{width:100%;height:100%;object-fit:cover}
.arch-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(190deg,rgba(246,241,232,.16),rgba(201,122,74,.06));pointer-events:none}
.intro{position:relative;padding:100px 44px;background:var(--paper);overflow:hidden}
.intro .leafghost{background-image:url('images/tx-leaf.jpg');opacity:.07}
.intro-in{position:relative;z-index:2;max-width:1180px;margin:0 auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:66px;align-items:center}
.intro-img{position:relative;height:520px}
.intro-img .arch-photo{height:100%}
.intro h2{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(34px,4.6vw,56px);line-height:1.06;color:var(--moss-deep);margin:14px 0 20px}
.intro h2 em{font-style:italic;color:var(--terra)}
.belief{font-weight:400;font-family:'Marcellus',serif;font-size:23px;line-height:1.55;color:var(--moss);margin-bottom:14px}
.belief em{font-style:italic;color:var(--terra)}
.subtle{font-size:14.5px;color:var(--muted);margin-bottom:30px}

.founder{position:relative;background:var(--paper)}
.founder-in{position:relative;max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;align-items:center}
.f-photo{position:relative;min-height:660px}
.f-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:26% center}
.f-card{position:relative;z-index:3;margin-left:-90px;background:var(--sage);color:var(--linen);padding:60px 56px;box-shadow:0 40px 90px rgba(55,54,49,.20);overflow:hidden}
.f-card .leafghost{opacity:.13;mix-blend-mode:soft-light}
.f-card > *{position:relative;z-index:2}
.f-card .opener{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(24px,2.6vw,32px);line-height:1.42;color:#FDFBF7;margin:16px 0 20px}
.f-card .opener em{font-style:italic;color:var(--golden)}
.f-card p{font-size:14.5px;line-height:1.88;color:rgba(253,251,247,.82);margin-bottom:12px}
.sig{margin-top:26px;padding-top:20px;border-top:1px solid rgba(253,251,247,.22)}
.sig .name{font-weight:400;font-family:'Marcellus',serif;font-style:italic;font-size:29px;color:var(--golden)}
.sig .role{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:rgba(253,251,247,.55);margin-top:7px}

.space{padding:96px 24px;background:var(--paper)}
.space .sheet{padding:56px 56px 60px}
.space .leafghost{background-image:url('images/tx-wood.jpg');opacity:.12;mix-blend-mode:multiply}
.space-in{position:relative;z-index:2}
.space-head{text-align:center;max-width:620px;margin:0 auto 40px}
.space-head h2{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(30px,4vw,46px);line-height:1.1;color:var(--moss-deep);margin:12px 0 14px}
.space-head h2 em{font-style:italic;color:var(--terra)}
.space-head p{font-size:14.6px;line-height:1.85;color:var(--muted)}
.plates{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.plate figure{margin:0;background:var(--paper-2);padding:12px 12px 0;border:1px solid var(--line);box-shadow:0 12px 34px rgba(55,54,49,.06)}
.plate img{width:100%;aspect-ratio:1/1.12;object-fit:cover}
.plate figcaption{padding:12px 2px 14px;text-align:center}
.plate .pl{font-weight:400;font-family:'Marcellus',serif;font-style:italic;font-size:16px;color:var(--sage)}
.plate .pn{display:block;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.plate:nth-child(2) figure{transform:translateY(-14px)}

.classes{position:relative;padding:100px 44px;background:var(--linen);overflow:hidden}
.classes-in{position:relative;z-index:2;max-width:1000px;margin:0 auto}
.classes-head{text-align:center;max-width:680px;margin:0 auto 36px}
.classes-head h2{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(34px,4.6vw,54px);line-height:1.04;color:var(--moss-deep);margin:12px 0 14px}
.classes-head h2 em{font-style:italic;color:var(--terra)}
.classes-head p{font-size:14.6px;line-height:1.85;color:var(--muted)}
.classes-foot{text-align:center;margin-top:36px}

.faq{position:relative;padding:110px 44px;overflow:hidden;background-image:url('images/bg-botanical-frame.jpg');background-size:cover;background-position:center}
.faq::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(251,248,242,.86),rgba(251,248,242,.80) 40%,rgba(246,241,232,.90))}
.faq-in{position:relative;z-index:2;max-width:1120px;margin:0 auto}
.faq-head{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end;margin-bottom:48px}
.faq-head h2{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(34px,4.4vw,52px);line-height:1.04;color:var(--moss-deep);margin-top:12px}
.faq-head h2 em{font-style:italic;color:var(--terra)}
.faq-head p{font-size:14.8px;line-height:1.85;color:var(--muted)}
.faq .f-front{background:rgba(253,251,247,.94);backdrop-filter:blur(3px)}

.voices{position:relative;padding:100px 44px;background:var(--paper);overflow:hidden}
.voices-in{max-width:1120px;margin:0 auto}
.voices-head{text-align:center;margin-bottom:52px}
.voices-head h2{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(30px,4vw,46px);line-height:1.12;color:var(--moss-deep);margin-top:14px}
.voices-head h2 em{font-style:italic;color:var(--terra)}
.vflow{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
.voice{display:flex;flex-direction:column;padding:30px 28px;background:var(--paper-2);border:1px solid var(--line);border-radius:3px;box-shadow:0 10px 30px rgba(55,54,49,.05)}
.voice p{font-weight:400;font-family:'Marcellus',serif;font-size:19px;line-height:1.52;color:var(--moss-deep);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;overflow:hidden}
.voice.open p{-webkit-line-clamp:unset;overflow:visible}
.v-more{align-self:flex-start;margin-top:12px;background:none;border:0;padding:0;cursor:pointer;font-family:'Outfit',system-ui,sans-serif;font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);border-bottom:1px solid currentColor}
.v-more:hover{color:var(--terra-deep)}
.v-more[hidden]{display:none}
.voice .attr{margin-top:auto;padding-top:16px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}


.visit{position:relative;min-height:640px;display:flex;align-items:center;overflow:hidden;padding:100px 44px}
.visit-bg{position:absolute;inset:0;background-image:url('images/ph-exterior.jpg');background-size:cover;background-position:center}
.visit-scrim{position:absolute;inset:0;background:linear-gradient(95deg,rgba(251,248,242,.97) 0%,rgba(251,248,242,.95) 40%,rgba(251,248,242,.88) 70%,rgba(251,248,242,.62) 100%)}
.visit-in{position:relative;z-index:2;max-width:1180px;margin:0 auto;width:100%}
.visit-card{max-width:540px}
.visit-card h2{font-family:'Marcellus',serif;font-weight:400;font-size:clamp(34px,4.4vw,52px);line-height:1.06;color:var(--moss-deep);margin:14px 0 14px}
.visit-card h2 em{font-style:italic;color:var(--terra)}
.visit-card p{font-size:14.8px;line-height:1.85;color:var(--muted)}
.addr{margin:28px 0;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.addr .lbl{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.addr .a{font-weight:400;font-family:'Marcellus',serif;font-size:21px;color:var(--moss-deep);line-height:1.5}
.addr .ph{display:inline-block;margin-top:8px;font-weight:400;font-family:'Marcellus',serif;font-size:26px;color:var(--terra);text-decoration:none}
.hours{display:grid;grid-template-columns:1fr auto;gap:5px 20px;max-width:330px}
.hours .d{font-weight:400;font-family:'Marcellus',serif;font-size:16px;color:var(--moss)}
.hours .t{font-size:13px;color:var(--muted);text-align:right}
.visit-left .hours-note .hn{font-family:'Outfit',system-ui,sans-serif;font-size:13.5px;line-height:1.7;color:var(--muted);margin-top:10px;max-width:46ch}
.visit-left .hours-note .hn a{color:var(--terra)}
.visit-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.visit-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:54px;align-items:start}
.visit-card{max-width:560px}
.cform{background:var(--paper-2);border:1px solid var(--line);border-radius:4px;padding:36px 34px;box-shadow:0 22px 60px -30px rgba(55,54,49,.34)}
.cform h3{font-family:'Marcellus',serif;font-weight:400;font-size:30px;line-height:1.12;color:var(--moss-deep)}
.cf-lede{font-size:14px;line-height:1.7;color:var(--muted);margin:10px 0 24px}
.cf-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.cf-f{display:flex;flex-direction:column;gap:7px;min-width:0}
.cf-f label{font-family:'Outfit',sans-serif;font-size:10.5px;font-weight:500;letter-spacing:.17em;text-transform:uppercase;color:var(--moss)}
.cf-f label i{font-style:normal;letter-spacing:.1em;color:var(--muted);opacity:.8}
.cf-f input,.cf-f select,.cf-f textarea{font-family:'Outfit',sans-serif;font-size:14.5px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:11px 12px;width:100%;transition:border-color .2s}
.cf-f textarea{resize:vertical;line-height:1.6}
.cf-f input:focus,.cf-f select:focus,.cf-f textarea:focus{outline:none;border-color:var(--terra)}
.cf-set{border:0;padding:0;margin:22px 0 4px}
.cf-set legend{font-family:'Outfit',sans-serif;font-size:10.5px;font-weight:500;letter-spacing:.17em;text-transform:uppercase;color:var(--moss);padding:0;margin-bottom:11px}
.cf-set legend i{font-style:normal;letter-spacing:.1em;color:var(--muted);opacity:.8}
.cf-checks{display:grid;grid-template-columns:1fr 1fr;gap:9px 16px}
.cf-check{display:flex;align-items:flex-start;gap:9px;font-family:'Outfit',sans-serif;font-size:13.5px;line-height:1.45;color:var(--muted);cursor:pointer}
.cf-check input{margin:2px 0 0;accent-color:var(--terra);width:15px;height:15px;flex:none}
.cf-check:hover span{color:var(--moss-deep)}
.cf-set + .cf-f{margin-top:18px}
.cf-send{margin-top:22px}
.cf-alt{font-size:13px;color:var(--muted);margin-top:16px}
.cf-alt a{color:var(--terra)}
.cf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf-thanks h3{font-family:'Marcellus',serif;font-weight:400;font-size:30px;color:var(--moss-deep)}
.cf-thanks p{font-size:14.5px;line-height:1.75;color:var(--muted);margin-top:12px}
.cf-thanks a{color:var(--terra)}


@media(max-width:980px){
  .intro-in,.founder-in,.plates,.faq-head{grid-template-columns:1fr;gap:30px}
  .intro-img{height:340px}
  .f-photo{min-height:400px} .f-card{margin-left:0;padding:44px 26px}
  .plate:nth-child(2) figure{transform:none}
  .space .sheet{padding:40px 26px}
  .vflow{grid-template-columns:repeat(2,1fr)}
  .hero-in,.intro,.svc,.classes,.voices,.faq,.visit{padding-left:24px;padding-right:24px}
}
@media(max-width:860px){ .scrollcue{display:none} }
@media(max-width:980px){
  .visit-scrim{background:linear-gradient(180deg,rgba(251,248,242,.94) 0%,rgba(251,248,242,.90) 46%,rgba(251,248,242,.80) 100%)}
  .visit{align-items:flex-start}
  .visit-in{grid-template-columns:1fr;gap:44px}
  .visit-card{max-width:none}
  .hours{max-width:none}
}
@media(max-width:640px){ .vflow{grid-template-columns:1fr} }

/* Contact form: single column on narrow screens. Kept at the end of the sheet
   so it wins over the base .cf-grid / .cf-checks rules above. */
@media (max-width:760px){
  .cform{padding:28px 20px}
  .cf-grid{grid-template-columns:1fr}
  .cf-checks{grid-template-columns:1fr}
}

/* ---- Homepage fixes ------------------------------------------------- */
/* `.foot a{display:block;padding:5px 0}` ties on specificity with
   `.footer-social a` and wins on order, which knocked the icons into the
   top-left of their circles. Scoped through .foot to restore the centring. */
.foot .footer-social a{display:flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:999px}
.foot .footer-social svg{width:16px;height:16px;display:block}

/* Come Upstairs tiles are links now; keep them reading as plates. */
.plate-link{display:block;text-decoration:none;color:inherit}
.plate-link figure{transition:transform .3s ease,box-shadow .3s ease}
.plate-link:hover figure{transform:translateY(-4px);box-shadow:0 20px 44px rgba(55,54,49,.12)}
.plate:nth-child(2) .plate-link:hover figure{transform:translateY(-18px)}

/* Sundial: each node's description now sits inside the sun face, so the label
   has to hold ~110 characters in a circle rather than two or three words. */
.ss-label{padding:21%!important}
.ss-hn{font-family:'Outfit',system-ui,sans-serif!important;font-size:clamp(.58rem,1.55cqi,.78rem)!important;line-height:1.4!important;color:var(--moss)!important}
@media(max-width:860px){
  .ss-sun{width:244px!important;height:244px!important}
  .ss-hn{font-size:.64rem!important;line-height:1.38!important}
  .ss-label{padding:20%!important}
}

/* ---- Two-column item grid (RootCare Approach, Areas of Focus) -------- */
.duo-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 38px;margin-top:16px}
.duo-item{padding:16px 0;border-bottom:1px solid var(--bone-warm)}
.duo-grid .duo-item:last-child,.duo-grid .duo-item:nth-last-child(2){border-bottom:none}
.duo-item h5{font-family:'Outfit',system-ui,sans-serif;font-size:10.5px;font-weight:500;letter-spacing:.17em;text-transform:uppercase;color:var(--terra);margin-bottom:7px}
.duo-item p{font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.62;color:var(--muted);margin:0}
.svc-sub-p{font-family:'Outfit',system-ui,sans-serif;font-size:15px;line-height:1.7;color:var(--muted);margin-top:10px;max-width:62ch}
.svc-callout{background:var(--bone);border:1px solid var(--bone-warm);border-radius:10px;padding:30px 32px;margin:38px 0 10px}
.svc-callout h4{font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:22px;color:var(--moss-deep);margin-bottom:10px}
.svc-callout p{font-family:'Outfit',system-ui,sans-serif;font-size:14.5px;line-height:1.72;color:var(--muted);margin-bottom:20px;max-width:60ch}
@media(max-width:860px){
  .duo-grid{grid-template-columns:1fr;gap:0}
  .duo-grid .duo-item:nth-last-child(2){border-bottom:1px solid var(--bone-warm)}
  .svc-callout{padding:24px 20px}
}

.svc-closing{font-family:'Outfit',system-ui,sans-serif;font-size:14.5px;line-height:1.72;color:var(--muted);margin-top:18px;font-style:italic}
.svc-insurance{font-family:'Outfit',system-ui,sans-serif;font-size:13.5px;line-height:1.7;color:var(--muted);border-top:1px solid var(--bone-warm);padding-top:16px;margin-top:4px}
.svc-callout p + p{margin-top:12px}

/* The reiki sidebar now carries a photograph instead of the line-art mark. */
.svc-side .svc-energy{aspect-ratio:5/6;border-radius:9px}

/* ---- Gift certificates --------------------------------------------- */
.gift-c{max-width:1080px;margin:0 auto;padding:46px 44px 10px}
.gift-band{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:48px;align-items:center;padding:52px 0;border-bottom:1px solid var(--bone-warm)}
.gift-band:last-child{border-bottom:none}
.gift-band:nth-child(even) .gift-art{order:2}
.gift-art img{width:100%;height:auto;display:block;border-radius:8px;box-shadow:0 18px 46px -26px rgba(55,54,49,.45)}
.gift-eyebrow{font-family:'Outfit',system-ui,sans-serif;font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);margin-bottom:12px}
.gift-copy h2{font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:clamp(26px,3.2vw,34px);line-height:1.14;color:var(--moss-deep);margin-bottom:14px}
.gift-copy p{font-family:'Outfit',system-ui,sans-serif;font-size:15px;line-height:1.75;color:var(--muted);margin-bottom:12px}
.gift-amount{display:flex;align-items:baseline;justify-content:space-between;gap:18px;flex-wrap:wrap;border-top:1px solid var(--bone-warm);border-bottom:1px solid var(--bone-warm);padding:15px 0;margin:20px 0 22px;font-family:'Outfit',system-ui,sans-serif;font-size:12.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--moss)}
.gift-amount b{font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:22px;letter-spacing:0;text-transform:none;color:var(--terra)}
.gift-note{font-size:13px!important;line-height:1.7!important;color:var(--muted);margin-top:18px!important;max-width:58ch}
.gift-aside{font-size:13.5px!important;margin-top:10px!important}
.gift-aside a{color:var(--terra);text-decoration:none;border-bottom:1px solid var(--terra);padding-bottom:1px}
.gift-how{background:var(--bone);padding:62px 44px 66px;margin-top:40px}
.gift-how h2{font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:clamp(26px,3.2vw,34px);color:var(--moss-deep);text-align:left;margin-bottom:34px}
.gift-steps{display:grid;grid-template-columns:1fr 1fr;gap:6px 44px}
.gift-step{padding:18px 0;border-bottom:1px solid var(--bone-warm)}
.gift-steps .gift-step:last-child,.gift-steps .gift-step:nth-last-child(2){border-bottom:none}
.gift-step h4{font-family:'Marcellus',Georgia,serif;font-weight:400;font-size:18px;color:var(--moss-deep);margin-bottom:7px}
.gift-step p{font-family:'Outfit',system-ui,sans-serif;font-size:14px;line-height:1.65;color:var(--muted);margin:0}
.gift-help{text-align:left;margin-top:34px;font-family:'Outfit',system-ui,sans-serif;font-size:14px;color:var(--muted)}
.gift-help a{color:var(--terra);text-decoration:none}
@media(max-width:860px){
  .gift-c{padding:30px 24px 0}
  .gift-band{grid-template-columns:1fr;gap:26px;padding:38px 0}
  .gift-band:nth-child(even) .gift-art{order:0}
  .gift-how{padding:46px 24px 50px}
  .gift-steps{grid-template-columns:1fr;gap:0}
  .gift-steps .gift-step:nth-last-child(2){border-bottom:1px solid var(--bone-warm)}
}

/* ---- Mobile legibility & tap targets -------------------------------- */
@media(max-width:860px){
  /* "Read more" on reviews was a 14px-tall hit area. Underline moves off the
     border so vertical padding can grow it to ~44px without a floating rule. */
  .v-more{font-size:11.5px;padding:14px 2px 12px;border-bottom:0;
    text-decoration:underline;text-underline-offset:3px;min-height:44px;
    display:inline-flex;align-items:center}
  /* "tap to flip" is an instruction, not decoration: 8.5px was too small. */
  .arch .hint{font-size:10px}
  /* Homepage logo subtitle was 8px while every other page used 9px. */
  .logo .wm span{font-size:9px}
}

/* ================= Mobile QA pass ==================================== */

/* The Hours block on the homepage reuses the .hours-note class from an older
   dark-panel layout further up this sheet, which sets font-style:italic and a
   near-white colour. Inside .visit-card that lands on a light scrim, so the
   whole block rendered slanted and the <a> fell back to the browser's default
   blue. Scoped through .visit-card so the legacy rule is untouched. */
.visit-card .hours-note{font-style:normal;color:inherit;font-size:inherit}
.visit-card .hours-note .lbl,.visit-card .hours-note .a,.visit-card .hn{font-style:normal}
.visit-card .hn{font-family:'Outfit',system-ui,sans-serif;font-size:14.2px;line-height:1.78;color:var(--muted);margin-top:8px}
.visit-card .hn a{color:var(--terra);text-decoration:none;border-bottom:1px solid rgba(201,122,74,.45);padding-bottom:1px}

/* "tap to flip" was --drift on near-white: about 1.7:1, effectively invisible.
   --moss-soft keeps it quiet without hiding it. */
.arch .hint{color:var(--moss-soft)}

/* Founder panel sits on solid moss; the copy and role line were set in
   translucent cream and fell under 3.5:1. Opaque values, same hue. */
.f-card p{color:rgba(253,251,247,.95)}
.f-card .sig .role{color:rgba(253,251,247,.78)}

@media(max-width:980px){
  /* The hero scrim fades left-to-right because the desktop headline sits in the
     left column. On a phone the copy runs the full width, so the right half of
     every line was sitting on bare photograph. Vertical fade instead. */
  .hero-scrim{background:
    linear-gradient(180deg,rgba(251,248,242,.95) 0%,rgba(251,248,242,.90) 38%,rgba(251,248,242,.86) 72%,rgba(246,241,232,.80) 100%)}
}

@media(max-width:860px){
  /* The service rows centre their icon against the whole row, so on a phone,
     where the copy wraps to four or five lines, the icon floated level with the
     middle of the paragraph instead of the heading it belongs to. */
  .srow{align-items:flex-start;gap:16px}
  .srow .thumb{width:46px;height:46px;margin-top:2px}
  .srow .thumb svg{width:24px;height:24px}

  /* Section head and study count were on one baseline row, so "4 studies"
     broke across two lines and sat out of line with the heading. */
  .ins-section-head{flex-direction:column;align-items:flex-start;gap:6px}
  .ins-section-head .ins-count{white-space:nowrap}

  /* "Read more" needs a little air under the clamped quote. */
  .v-more{margin-top:2px}
}

@media(max-width:640px){
  /* The headshot was pinned to 160px in a full-width column, leaving half the
     row empty beside every practitioner. Full width reads as deliberate. */
  .member .m-photo{width:100%}
}

@media(max-width:560px){
  /* "The door is already open." cannot fit one phone line, so without this the
     last word drops alone onto a third line. Keeping the emphasised clause
     intact breaks it as "The door is" / "already open." instead. */
  .space h2 em{white-space:nowrap}
}

/* ---- Nav logo (horizontal lockup) ----------------------------------
   Replaces the two text wordmarks the site shipped with. The art is 5.59:1,
   so height is what sets the footprint: 46px reads the "AT BECK WELLNESS
   CENTER" subline clearly at desktop and still leaves room for the menu. */
.logo{display:flex;align-items:center;gap:0;text-decoration:none}
.logo .logo-h{height:46px;width:auto;display:block}
@media(max-width:1024px){ .logo .logo-h{height:40px} }
@media(max-width:560px){ .logo .logo-h{height:34px} }
@media(max-width:380px){ .logo .logo-h{height:30px} }

/* The sound tools shelf is a landscape photo in a portrait cell, so the default
   centred crop sliced the Koshi chimes in half and kept the flyer instead.
   Anchoring the crop to the left edge frames the chimes. On phones the cell is
   4:3 like the source, so nothing is cropped there and this has no effect. */
.tour-cell.frame-left img{object-position:left center}

@media(max-width:640px){
  /* A 1fr track keeps min-width:auto, so the longest practitioner website
     button (www.innerfocushealingenergy.com) pushed the text column 23px wider
     than the card at 320px. minmax(0,1fr) lets the track shrink and the long
     URL wraps instead of setting the floor. */
  .member{grid-template-columns:minmax(0,1fr)}
  .member .m-text,.member .m-bio{min-width:0}
  .m-links{flex-wrap:wrap}
  .m-link{max-width:100%;overflow-wrap:anywhere}
}
