/* A watercolor opening, followed by a quiet editorial reading space. */
.home-page { --paper: #f5f2e9; --ink: #30392f; --deep: #293628; --muted: #6a7065; background: var(--paper); }
.home-page .site-header { position: absolute; inset: 0 0 auto; background: transparent; color: #f5f0e3; border: 0; z-index: 20; }
.home-page .header-inner { width: calc(100% - 88px); min-height: 100px; }
.home-page .site-header .brand-text small { color: #e1ddcf; }
.home-page .site-header .brand-text strong { color: #f5f0e3; }
.home-page .site-header .brand-mark { filter: brightness(0) invert(.94); }
.home-page .site-header .nav-links a:hover { color: #d6c4a7; }
.home-page .site-header.scrolled { box-shadow: none; }
.home-page :focus-visible { outline-color: #b29460; }
.immersive-hero { position: relative; height: 100svh; min-height: 650px; overflow: hidden; background: #1d2217; color: #f6efdf; }
.hero-picture, .hero-picture img, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-picture img { object-fit: cover; object-position: center; }
.hero-shade { background: linear-gradient(90deg,rgba(13,20,12,.31),transparent 72%),linear-gradient(180deg,rgba(13,20,12,.18),transparent 30%,transparent 76%,rgba(13,20,12,.3)); }
.immersive-copy { position: absolute; top: 32%; left: max(7.3vw, calc((100vw - 1360px)/2)); right: 30px; }
.immersive-copy h1 { margin: 0; font-size: clamp(40px,4.2vw,68px); font-weight: 400; line-height: 1.55; letter-spacing: -.055em; text-shadow: 0 2px 22px #13190d22; }
.immersive-copy h1 span { display: block; }
.immersive-copy p { margin-top: 28px; font-size: 14px; letter-spacing: .1em; color: #e6dfce; }
.immersive-copy p span { margin-inline: 9px; }
.hero-invitation { display: inline-flex; align-items: center; justify-content: space-between; gap: 60px; min-height: 48px; margin-top: 38px; padding: 0 0 12px; border-bottom: 1px solid #f0e7d389; font-size: 14px; }
.hero-invitation span { font-size: 23px; transition: transform .25s; }
.hero-invitation:hover span { transform: translate(3px,-3px); }
.hero-scroll { position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%); display: grid; justify-items: center; gap: 15px; padding: 12px; }
.hero-scroll span,.hero-signature { font-size: 9px; letter-spacing: .19em; color: #ded8c8; }
.hero-scroll i { display: block; height: 34px; width: 1px; background: #f0e7d37a; }
.hero-signature { position: absolute; right: 44px; bottom: 50px; }
.arrival { display: none; position: fixed; inset: 0; pointer-events: none; z-index: 100; overflow: hidden; }
.arrival-half { position: absolute; left: -10%; width: 120%; height: 80%; background: #293628; will-change: transform; }
.arrival-top { top: -15%; border-radius: 0 0 50% 50% / 0 0 17% 17%; }
.arrival-bottom { bottom: -15%; border-radius: 50% 50% 0 0 / 17% 17% 0 0; }
.arrival-light { position:absolute; inset:-40%; background:radial-gradient(ellipse at center, #d2c7a33d 0%, #a8ac8b12 33%, transparent 63%); opacity:0; }
.arrival-identity { position:absolute; top:43%; left:50%; transform:translate(-50%,-50%); text-align:center; color:#f4edde; white-space:nowrap; }
.arrival-constitution { display:flex; justify-content:center; align-items:center; gap:15px; height:74px; }
.arrival-symbol { width:64px; height:64px; object-fit:contain; filter:brightness(0) invert(.93); }
.arrival-word { font-family:var(--serif); font-size:44px; letter-spacing:.08em; line-height:1; }
.arrival-clinic { margin-top:24px; font-family:var(--serif); font-size:30px; letter-spacing:.17em; padding-left:.17em; }
.arrival-caption { display:block; margin-top:16px; font-size:11px; letter-spacing:.15em; color:#ded9c7; }
.intro-playing .arrival { display:block; animation:arrival-hide 2.7s forwards; }
.intro-playing .arrival-top { animation:curve-up .9s 1.8s cubic-bezier(.65,0,.2,1) both; }
.intro-playing .arrival-bottom { animation:curve-down .9s 1.8s cubic-bezier(.65,0,.2,1) both; }
.intro-playing .arrival-symbol { animation:symbol-arrive .5s both; }
.intro-playing .arrival-constitution { animation:constitution-align .55s .55s both; }
.intro-playing .arrival-word { animation:word-arrive .6s .55s both; }
.intro-playing .arrival-clinic { animation:word-arrive .6s 1.05s both; }
.intro-playing .arrival-caption { animation:word-arrive .5s 1.25s both; }
.intro-playing .arrival-identity { animation:identity-away .55s 1.8s both; }
.intro-playing .arrival-light { animation:arrival-light 1.5s 1.15s both; }
.intro-playing .immersive-copy { animation:title-in .7s 2s both; }
@keyframes curve-up { 0%,15% {transform:translateY(0)} 100% {transform:translateY(-110%)} }
@keyframes curve-down { 0%,15% {transform:translateY(0)} 100% {transform:translateY(110%)} }
@keyframes symbol-arrive { from {opacity:0;transform:translateY(6px)} to {opacity:1;transform:translateY(0)} }
@keyframes constitution-align { from {transform:translateX(53px)} to {transform:translateX(0)} }
@keyframes word-arrive { from {opacity:0;filter:blur(3px);transform:translateY(6px)} to {opacity:1;filter:blur(0);transform:translateY(0)} }
@keyframes identity-away { to {opacity:0;filter:blur(2px);transform:translate(-50%,-52%)} }
@keyframes arrival-light { 0% {opacity:0;transform:scale(.6)} 52% {opacity:1} 100% {opacity:0;transform:scale(1.4)} }
@keyframes title-in { from {opacity:0;transform:translateY(14px)} to {opacity:1;transform:translateY(0)} }
@keyframes arrival-hide { to {visibility:hidden} }
.visit-paths { padding: 120px 0 130px; scroll-margin-top: 0; }
.paths-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 72px; align-items: end; }
.paths-heading .eyebrow { grid-column: 1/-1; }
.paths-heading h2,.story-heading h2,.closing-intro h2 { font-size: clamp(32px,3.1vw,48px); font-weight: 400; line-height: 1.5; }
.paths-heading > p:last-child { color: var(--muted); font-size: 15px; line-height: 1.95; padding-bottom: 5px; }
.path-grid { display:grid; grid-template-columns:1fr 1fr; margin-top:65px; border-top:1px solid #c9cbbd; border-bottom:1px solid #c9cbbd; }
.visit-path { display:flex; flex-direction:column; padding:38px 40px 30px 0; transition: background .25s; }
.visit-path + .visit-path { padding-left:60px; border-left:1px solid #c9cbbd; }
.path-number { display:flex; align-items:center; gap:18px; font-family:var(--serif); font-size:17px; color:#77816c; }
.path-number span { font-family:var(--sans); font-size:11px; letter-spacing:.05em; }
.visit-path h3 { margin-top:43px; font-family:var(--serif); font-size:clamp(28px,2.7vw,40px); font-weight:400; line-height:1.5; }
.visit-path > p { margin-top:24px; color:var(--muted); font-size:14px; line-height:1.9; }
.path-bottom { display:flex; justify-content:space-between; align-items:center; margin-top:45px; font-size:13px; }
.path-arrow { display:grid; place-items:center; width:47px; height:47px; border:1px solid #b8bdab; border-radius:50%; font-size:24px; transition:background .25s,color .25s,transform .25s; }
.visit-path:hover .path-arrow { background:var(--deep);color:var(--paper);transform:translate(3px,-3px); }
.care-story { padding:100px 0 120px; background:#e8ebdf; }
.story-heading { margin-bottom:72px; }
.story-heading .eyebrow { margin-bottom:23px; }
.story-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:10%; align-items:start; }
.story-visual { position:sticky; top:12svh; height:76svh; max-height:800px; }
.story-visual > img { width:100%; height:calc(100% - 54px); object-fit:cover; object-position:69% 55%; }
.story-visual figcaption { font-size:12px; margin-top:16px; color:#656e5d; }
.story-progress { display:flex; gap:7px; position:absolute; bottom:72px; left:24px; right:24px; }
.story-progress span { flex:1; height:2px; background:#efe9dd55; transition:background .3s; }
.story-progress .is-active { background:#efe9dd; }
.story-chapter { min-height:78svh; display:flex; flex-direction:column; justify-content:center; padding:65px 0; }
.chapter-number { font-size:11px; letter-spacing:.12em; color:#65715c; }
.story-chapter h3 { margin-top:32px; font-family:var(--serif); font-size:clamp(30px,3.1vw,46px); line-height:1.5; font-weight:400; }
.story-chapter p { margin-top:28px; color:#626c5c; font-size:15px; line-height:2; }
.story-chapter .text-link { margin-top:35px; align-self:flex-start; font-size:13px; }
.home-questions { padding:110px 0; background:var(--paper); }
.home-questions .container { display:grid; grid-template-columns:.9fr 1.3fr; gap:9%; }
.home-questions h2 { font-weight:400; font-size:clamp(30px,3vw,44px); line-height:1.5; margin-top:22px; }
.home-questions .questions-lead { color:var(--muted); margin-top:24px; font-size:14px; }
.question-links { border-top:1px solid #c9cbbd; }
.question-links a { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:28px 0; border-bottom:1px solid #c9cbbd; font-family:var(--serif); font-size:21px; line-height:1.6; transition:color .2s; }
.question-links a:hover { color:#7d6b42; }
.question-links span { font-family:var(--sans); font-size:25px; }
.home-questions .text-link { margin-top:28px; font-size:13px; }
.quiet-closing { padding:120px 0 100px; background:#f6f3eb; }
.closing-intro { text-align:center; }
.closing-intro h2 { margin:23px 0; }
.closing-intro > p:last-child { color:var(--muted); font-size:14px; }
.closing-watercolor { max-width:1440px; margin:48px auto 0; }
.closing-watercolor img { height:clamp(320px,45vw,620px); object-fit:cover; object-position:center 58%; }
.closing-watercolor figcaption { text-align:right; padding-right:24px; color:#8b8d81; font-size:11px; }
.closing-info { display:grid; grid-template-columns:1fr 1fr; gap:10%; padding-top:70px; }
.closing-info h3 { font-family:var(--serif); font-size:25px; font-weight:400; margin:18px 0 30px; }
.closing-info .hours th,.closing-info .hours td { font-size:14px; padding:13px 0; }
.closing-info .hours-note { font-size:12px; margin-top:19px; }
.closing-location > p { color:var(--muted); font-size:14px; }
.closing-links { display:flex; gap:28px; margin-top:25px; font-size:13px; }
.closing-links a { padding-bottom:6px; border-bottom:1px solid #b9bead; }
.closing-links span { margin-left:12px; }
.closing-phone { display:flex; align-items:center; gap:18px; margin-top:36px; padding-top:25px; border-top:1px solid #c9cbbd; }
.closing-phone > span:first-child { font-size:12px; }
.closing-phone strong { font-family:var(--serif); font-weight:400; font-size:clamp(23px,2.3vw,33px); letter-spacing:-.03em; }
.closing-phone > span:last-child { margin-left:auto; font-size:24px; }
.closing-location .closing-note { font-size:12px; margin-top:15px; line-height:1.8; }
.home-page .site-footer { background:#263426; color:#ececde; border-top:0; }
.home-page .site-footer .brand-text small,.home-page .footer-bottom,.home-page .footer-top p { color:#c2c8b7; }
.home-page .site-footer .brand-mark { filter:brightness(0) invert(.9); }
.home-page .site-footer .brand-text strong { color:#ececde; }
@media (min-width:761px) and (max-width:1000px) { .home-page .header-inner {width:calc(100% - 48px)} .home-page .nav-links {gap:16px} .home-page .nav-links a {font-size:12px} .immersive-copy {left:7%;top:31%} .story-layout {gap:7%} .story-chapter p {font-size:14px} }
@media (max-width:760px) {
  .home-page .container {width:calc(100% - 44px)}
  .home-page .header-inner {width:calc(100% - 40px);min-height:78px;gap:12px}
  .home-page .site-header .brand-mark {width:36px;height:36px}
  .home-page .site-header .brand-text strong {font-size:19px}
  .home-page .site-header .brand-text small {font-size:10px}
  .home-page .site-header .menu-toggle {color:#f6efdf;border-color:#f6efdf55;background:transparent}
  .home-page .site-header #main-nav {background:#f5f2e9;color:#30392f;top:78px}
  .home-page .site-header .nav-links a:hover {color:#4a695c}
  .immersive-hero {height:100svh;min-height:650px;max-height:1100px}
  .hero-picture img {object-fit:cover;object-position:center center}
  .hero-shade {background:linear-gradient(180deg,#111a1140 0%,#111a1110 42%,transparent 60%,#111a112b 100%)}
  .immersive-copy {top:19%;left:26px;right:20px}
  .immersive-copy h1 {font-size:clamp(27px,7.7vw,49px);line-height:1.6;letter-spacing:-.065em}
  .immersive-copy p {font-size:11px;letter-spacing:.06em;margin-top:20px}
  .immersive-copy p span {margin-inline:5px}
  .hero-invitation {margin-top:20px;min-height:44px;gap:40px;font-size:12px;padding-bottom:7px}
  .hero-scroll {bottom:70px;gap:9px}
  .hero-scroll span {font-size:8px}
  .hero-scroll i {height:24px}
  .hero-signature {display:none}
  .visit-paths {padding:76px 0 80px}
  .paths-heading {display:block}
  .paths-heading h2 {font-size:32px;margin-top:22px}
  .paths-heading > p:last-child {margin-top:22px;font-size:14px}
  .path-grid {grid-template-columns:1fr;margin-top:40px}
  .visit-path,.visit-path + .visit-path {padding:30px 4px 28px;border-left:0}
  .visit-path + .visit-path {border-top:1px solid #c9cbbd}
  .visit-path h3 {font-size:31px;margin-top:26px}
  .visit-path > p {margin-top:17px;font-size:13px}
  .path-bottom {margin-top:24px}
  .desktop-break {display:none}
  .care-story {padding:72px 0 48px}
  .story-heading {margin-bottom:34px}
  .story-heading h2 {font-size:30px}
  .story-layout {display:block}
  .story-visual {position:relative;top:auto;height:auto;max-height:none}
  .story-visual > img {height:340px;object-position:68% 60%}
  .story-visual figcaption {font-size:11px}
  .story-progress {display:none}
  .story-chapter {min-height:0;padding:46px 4px;border-bottom:1px solid #ccd2c2}
  .story-chapter:last-child {border:0}
  .story-chapter h3 {font-size:31px;margin-top:21px}
  .story-chapter p {font-size:14px;line-height:1.95;margin-top:20px}
  .story-chapter .text-link {margin-top:23px}
  .home-questions {padding:68px 0}
  .home-questions .container {display:block}
  .home-questions h2 {font-size:30px}
  .question-links {margin-top:32px}
  .question-links a {font-size:18px;padding:23px 0;gap:16px}
  .arrival-word {font-size:39px}
  .arrival-clinic {font-size:27px}
  .arrival-caption {font-size:10px}
  .quiet-closing {padding:74px 0 70px}
  .closing-intro h2 {font-size:30px}
  .closing-watercolor {margin-top:35px}
  .closing-watercolor img {height:300px;object-position:center}
  .closing-info {grid-template-columns:1fr;gap:48px;padding-top:40px}
  .closing-info h3 {font-size:24px}
  .closing-phone strong {font-size:29px}
  .home-page .mobile-contact {background:#263426;color:#f6efdf;border:0;padding-bottom:env(safe-area-inset-bottom)}
  .home-page .mobile-contact a {background:transparent;color:#f6efdf}
}
@media (max-width:360px) { .immersive-copy {left:20px} .immersive-copy h1 {font-size:26px} .closing-phone {gap:12px} .closing-phone strong {font-size:26px} .home-page .mobile-contact a:first-child span {display:none} .home-page .mobile-contact a {white-space:nowrap} }
@media (max-height:560px) and (min-width:761px) { .immersive-hero {min-height:560px} .immersive-copy {top:26%} .immersive-copy h1 {font-size:40px} .immersive-copy p {margin-top:15px} .hero-invitation {margin-top:18px} }
@media (prefers-reduced-motion:reduce) { html {scroll-behavior:auto} .arrival {display:none!important} .immersive-copy,.arrival-half,.arrival-symbol {animation:none!important} .hero-invitation span,.path-arrow,.story-progress span {transition:none} .story-visual {position:relative;top:0} .story-chapter {min-height:0;padding:40px 0} }
