:root {
  --night: #0b2133;
  --ink: #10283c;
  --blue: #23445b;
  --paper: #f7f0e3;
  --paper-light: #fffaf1;
  --paper-deep: #e8dcc8;
  --sage: #6f7e68;
  --sage-dark: #455748;
  --apricot: #dc805c;
  --apricot-deep: #b95e41;
  --gold: #b99a5b;
  --line: rgba(16, 40, 60, .2);
  --serif: "Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --shell: min(1180px, calc(100% - 80px));
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  line-height: 1.85;
  overflow-x: clip;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, summary, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p, figure, ul, ol, dl, dd { margin-top: 0; }
em { color: inherit; font-style: normal; }

.skip-link {
  position: fixed;
  z-index: 200;
  top: 10px;
  left: 10px;
  transform: translateY(-160%);
  padding: 10px 16px;
  color: white;
  background: var(--night);
  border-radius: 3px;
}
.skip-link:focus { transform: translateY(0); }
a:focus-visible, summary:focus-visible {
  outline: 3px solid #f0a17e;
  outline-offset: 4px;
}

.section-shell { width: var(--shell); margin-inline: auto; position: relative; z-index: 2; }
.paper-section {
  position: relative;
  background:
    radial-gradient(circle at 18% 22%, rgba(255,255,255,.78) 0 1px, transparent 2px),
    radial-gradient(circle at 72% 64%, rgba(128,97,58,.08) 0 1px, transparent 1.5px),
    linear-gradient(105deg, rgba(255,255,255,.36), transparent 42%),
    var(--paper);
  background-size: 24px 24px, 31px 31px, auto, auto;
}
.chapter-mark {
  position: absolute;
  z-index: 5;
  top: 54px;
  left: max(40px, calc((100vw - 1180px) / 2));
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--sage-dark);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .2em;
}
.chapter-mark::after { content: ""; width: 48px; height: 1px; background: currentColor; opacity: .5; }
.chapter-mark span {
  display: grid;
  width: 34px;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-family: var(--serif);
  letter-spacing: 0;
}
.chapter-mark--light { color: rgba(255, 250, 241, .72); }

.hand-note {
  margin-bottom: 16px;
  color: var(--apricot-deep);
  font-family: var(--serif);
  font-size: 16px;
  letter-spacing: .1em;
  transform: rotate(-1.2deg);
  transform-origin: left;
}
.hand-note::before { content: "—"; margin-right: 8px; color: var(--gold); }
.hand-note--light { color: #f2c4a9; }
.body-copy { color: #425666; font-size: 15px; }

.site-header {
  position: absolute;
  z-index: 50;
  top: 0;
  left: 0;
  right: 0;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  height: 92px;
  padding: 15px clamp(24px, 4vw, 66px);
  color: var(--paper-light);
  border-bottom: 1px solid rgba(255,255,255,.16);
}
.brand {
  width: 286px;
  padding: 10px 14px;
  background: rgba(255,250,241,.92);
  border-radius: 2px 18px 2px 18px;
  box-shadow: 0 8px 28px rgba(5,20,32,.14);
}
.brand img { width: 100%; height: auto; }
.header-access { margin: 0; font-size: 12px; letter-spacing: .08em; text-shadow: 0 1px 12px rgba(0,0,0,.35); }
.header-phone {
  min-height: 56px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  padding-left: 24px;
  border-left: 1px solid rgba(255,255,255,.28);
}
.header-phone span { font-size: 10px; letter-spacing: .12em; }
.header-phone strong { font-family: var(--serif); font-size: 20px; letter-spacing: .05em; }

.hero {
  position: relative;
  min-height: 940px;
  isolation: isolate;
  overflow: hidden;
  color: var(--ink);
  background: var(--night);
}
.hero::after {
  content: "";
  position: absolute;
  z-index: 4;
  left: -5%;
  right: -5%;
  bottom: -92px;
  height: 180px;
  background: var(--paper);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
}
.hero-picture { position: absolute; inset: 0; display: block; }
.hero-picture .hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(247,240,227,.97) 0%, rgba(247,240,227,.86) 26%, rgba(247,240,227,.18) 48%, transparent 66%),
    linear-gradient(180deg, rgba(9,28,43,.2), transparent 24%, transparent 72%, rgba(9,28,43,.18));
}
.hero-stars { position: absolute; z-index: 2; inset: 110px auto auto 46%; width: 180px; height: 110px; }
.hero-stars i { position: absolute; width: 3px; aspect-ratio: 1; border-radius: 50%; background: #fff8d6; box-shadow: 0 0 12px #fff3b6; }
.hero-stars i:nth-child(1) { left: 10%; top: 18%; }
.hero-stars i:nth-child(2) { left: 53%; top: 8%; width: 2px; }
.hero-stars i:nth-child(3) { left: 81%; top: 44%; }
.hero-stars i:nth-child(4) { left: 31%; top: 72%; width: 2px; }
.hero-stars i:nth-child(5) { left: 66%; top: 86%; width: 1px; }
.hero-copy {
  position: relative;
  z-index: 5;
  width: min(620px, 48vw);
  padding-top: 158px;
  margin-left: clamp(42px, 6vw, 108px);
}
.overline {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 25px;
  color: var(--sage-dark);
  font-family: Georgia, serif;
  font-size: 12px;
  letter-spacing: .24em;
}
.overline::before { content: ""; width: 44px; height: 1px; background: var(--gold); }
.overline span { color: var(--apricot-deep); font-size: 16px; }
.hero h1 {
  margin-bottom: 22px;
  font-family: var(--serif);
  font-size: clamp(45px, 4.9vw, 65px);
  font-weight: 600;
  line-height: 1.42;
  letter-spacing: .04em;
}
.hero h1 em { position: relative; color: var(--night); }
.hero-title-line { display: inline-block; }
.hero h1 em::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: -3%;
  right: -1%;
  bottom: .05em;
  height: .22em;
  background: rgba(220,128,92,.28);
  transform: rotate(-1deg);
}
.hero-lead { margin-bottom: 26px; font-family: var(--serif); font-size: 17px; line-height: 2; }
.hero-trust {
  display: flex;
  gap: 10px;
  margin: 0 0 27px;
  padding: 0;
  list-style: none;
}
.hero-trust li {
  display: flex;
  width: 122px;
  aspect-ratio: 1;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: rgba(255,250,241,.76);
  border: 1px solid rgba(16,40,60,.22);
  border-radius: 50%;
  box-shadow: inset 0 0 0 6px rgba(255,255,255,.22), 0 12px 30px rgba(11,33,51,.07);
}
.hero-trust b { margin-bottom: 4px; color: var(--apricot-deep); font-family: Georgia, serif; font-size: 11px; letter-spacing: .12em; }
.hero-trust span { font-size: 11px; font-weight: 600; line-height: 1.65; }
.call-button {
  position: relative;
  display: grid;
  min-height: 90px;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: 17px 27px;
  color: white;
  background: linear-gradient(135deg, #e58d66, #c96b4d);
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 42px 8px 42px 8px;
  box-shadow: 0 20px 45px rgba(119,59,39,.24);
  transition: transform .25s ease, box-shadow .25s ease;
}
.call-button:hover { transform: translateY(-3px); box-shadow: 0 24px 52px rgba(119,59,39,.3); }
.call-button span { grid-column: 1; font-size: 10px; letter-spacing: .06em; }
.call-button strong { grid-column: 1; font-family: Georgia, var(--serif); font-size: 28px; line-height: 1.35; letter-spacing: .04em; }
.call-button strong i { font-family: var(--sans); font-size: .75em; font-style: normal; }
.call-button small { grid-column: 2; grid-row: 1 / 3; font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.call-button small::after { content: " →"; }
.call-button--hero { width: 500px; max-width: 100%; }
.hero-fee { margin: 10px 0 0 20px; color: #425362; font-size: 10px; }
.hero-question {
  position: absolute;
  z-index: 5;
  right: 5vw;
  bottom: 110px;
  margin: 0;
  padding: 20px 32px;
  color: var(--ink);
  background: rgba(255,250,241,.82);
  border: 1px solid rgba(16,40,60,.18);
  border-radius: 60% 40% 58% 42%;
  font-family: var(--serif);
  font-size: 14px;
  line-height: 1.8;
  transform: rotate(2deg);
}
.image-note { position: absolute; z-index: 8; right: 32px; bottom: 77px; margin: 0; color: rgba(16,40,60,.72); font-size: 10px; }
.scroll-cue { position: absolute; z-index: 8; left: 26px; bottom: 92px; display: flex; align-items: center; gap: 10px; color: var(--ink); font-size: 9px; letter-spacing: .22em; transform: rotate(-90deg); transform-origin: left; }
.scroll-cue i { width: 50px; height: 1px; background: currentColor; }

.feeling { padding: 180px 0 115px; }
.feeling-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 75px; align-items: center; }
.feeling-copy h2, .safety-intro h2, .cases-heading h2, .team-copy h2, .faq h2 {
  margin-bottom: 28px;
  font-family: var(--serif);
  font-size: clamp(38px, 4.1vw, 62px);
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: .035em;
}
.section-heading-line { display: inline-block; }
.mobile-break { display: none; }
.feeling-copy h2 { font-size: clamp(38px, 3.4vw, 50px); }
.cases-heading h2 { font-size: clamp(38px, 3.6vw, 54px); }
.team-copy h2 { font-size: clamp(36px, 3.25vw, 48px); letter-spacing: .02em; }
.feeling-copy h2 em, .safety-intro h2 em, .cases-heading h2 em, .team-copy h2 em { color: var(--apricot-deep); }
.memory-collage { position: relative; min-height: 650px; }
.memory-photo {
  position: absolute;
  top: 40px;
  right: 4%;
  width: 78%;
  margin: 0;
  padding: 13px 13px 42px;
  background: #fffdf7;
  border: 1px solid rgba(16,40,60,.12);
  box-shadow: 0 35px 80px rgba(20,39,51,.17);
  transform: rotate(3deg);
}
.memory-photo::before { content: ""; position: absolute; z-index: 2; top: -10px; left: 39%; width: 110px; height: 24px; background: rgba(217,201,168,.65); transform: rotate(-4deg); }
.memory-photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.memory-photo figcaption { position: absolute; right: 14px; bottom: 11px; color: #65716f; font-size: 10px; }
.memory-card {
  position: absolute;
  z-index: 3;
  margin: 0;
  padding: 25px 28px;
  background: rgba(255,250,241,.96);
  border: 1px solid rgba(16,40,60,.16);
  box-shadow: 0 18px 42px rgba(16,40,60,.12);
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.8;
}
.memory-card--one { left: 0; top: 0; transform: rotate(-6deg); }
.memory-card--two { right: 0; bottom: 35px; background: #e8d7c9; transform: rotate(4deg); }
.memory-card strong { color: var(--apricot-deep); font-size: 19px; }
.turning-point { width: min(800px, calc(100% - 44px)); margin: 70px auto 30px; text-align: center; }
.turning-point p { margin-bottom: 8px; color: var(--sage); font-size: 12px; letter-spacing: .16em; }
.turning-point h3 { font-family: var(--serif); font-size: clamp(22px, 2.5vw, 35px); font-weight: 600; letter-spacing: .04em; }

.dual-garden {
  position: relative;
  padding: 160px 0 120px;
  color: var(--paper-light);
  background: var(--night);
  overflow: hidden;
  isolation: isolate;
}
.dual-garden::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at 19% 42%, rgba(255,220,143,.34), transparent 18%),
    radial-gradient(circle at 77% 38%, rgba(118,159,178,.18), transparent 25%),
    linear-gradient(106deg, #8aa4a1 0%, #d8b77c 42%, #26425b 53%, #071a2a 100%);
}
.dual-garden::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .32;
  background-image: radial-gradient(circle, #fff 0 1px, transparent 1.5px);
  background-size: 79px 79px;
  mask-image: linear-gradient(90deg, transparent 44%, #000 58%);
}
.garden-heading { text-align: center; }
.garden-heading .hand-note { transform-origin: center; }
.garden-heading h2 {
  margin-bottom: 18px;
  font-family: var(--serif);
  font-size: clamp(45px, 5.2vw, 76px);
  font-weight: 600;
  line-height: 1.42;
  letter-spacing: .08em;
}
.garden-heading > p:last-child { font-size: 14px; letter-spacing: .05em; }
.garden-panels {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  min-height: 650px;
  margin-top: 75px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(255,250,241,.06), transparent 43%, rgba(7,26,42,.08)),
    url("assets/dual-garden-panorama-v2.webp") center / cover no-repeat;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 48% 48% 26px 26px / 13% 13% 26px 26px;
  box-shadow: 0 40px 100px rgba(0,0,0,.28);
  isolation: isolate;
}
.garden-panels::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,250,241,.7) 0%, rgba(255,250,241,.12) 42%, transparent 64%);
  pointer-events: none;
}
.garden-panel {
  position: relative;
  z-index: 2;
  min-height: 650px;
  padding: 76px 56px 45px;
  border: 0;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}
.garden-panel--day { color: var(--ink); background: transparent; text-align: left; }
.garden-panel--night { background: transparent; text-align: right; }
.garden-label { margin-bottom: 5px; font-family: Georgia, serif; font-size: 10px; letter-spacing: .24em; opacity: .75; }
.garden-panel h3 { margin: 0 0 8px; font-family: Georgia, var(--serif); font-size: 44px; font-weight: 400; letter-spacing: .08em; }
.garden-panel > p:nth-of-type(2) { max-width: 360px; font-family: var(--serif); font-size: 14px; }
.garden-panel--night > p:nth-of-type(2) { margin-left: auto; }
.garden-panel figure { position: absolute; left: 6%; right: auto; bottom: 28px; width: 59%; height: auto; aspect-ratio: 3 / 2; margin: 0; overflow: hidden; background: rgba(255,250,241,.42); border: 8px solid rgba(255,250,241,.88); border-radius: 105px 105px 14px 14px; box-shadow: 0 24px 52px rgba(16,40,60,.25); transform: rotate(-1.4deg); }
.garden-panel--day figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 54%, rgba(7,28,42,.72)); }
.garden-panel figure img { width: 100%; height: 100%; object-fit: cover; }
.garden-panel figcaption { position: absolute; z-index: 2; left: 0; right: 0; bottom: 18px; color: white; font-size: 12px; letter-spacing: .08em; }
.garden-answer { position: relative; z-index: 5; margin: 55px 20px 0; text-align: center; font-family: var(--serif); font-size: 18px; }
.garden-answer strong { color: #f3c3a9; font-size: 24px; }

.safety-roots { padding: 165px 0 130px; }
.safety-intro { max-width: 850px; text-align: center; }
.safety-intro .hand-note { transform-origin: center; }
.safety-intro > p:last-child { color: #52646f; font-size: 14px; }
.roots-stage {
  position: relative;
  min-height: 760px;
  display: grid;
  place-items: center;
  margin-top: 72px;
  padding: 76px 0 104px;
  isolation: isolate;
}
.safety-story-art {
  position: absolute;
  z-index: 1;
  inset: 0;
  margin: 0;
  overflow: hidden;
  background: var(--paper-light);
  border: 1px solid rgba(122,98,68,.18);
  border-radius: 48% 48% 26px 26px / 10% 10% 26px 26px;
  box-shadow: 0 30px 72px rgba(54,46,36,.1);
}
.safety-story-art img { width: 100%; height: 100%; object-fit: cover; }
.safety-story-art figcaption { position: absolute; right: 18px; bottom: 12px; padding: 4px 9px; color: #5e686d; background: rgba(255,250,241,.82); border-radius: 99px; font-size: 9px; }
.safety-list {
  position: relative;
  z-index: 4;
  width: min(500px, 46%);
  margin: 0;
  padding: 28px 34px;
  list-style: none;
  background: rgba(255,250,241,.9);
  border: 1px solid rgba(16,40,60,.12);
  border-radius: 80px 80px 18px 18px / 38px 38px 18px 18px;
  box-shadow: 0 26px 68px rgba(16,40,60,.13);
  backdrop-filter: blur(4px);
}
.safety-list li { display: grid; grid-template-columns: 54px 1fr; gap: 17px; align-items: center; padding: 19px 0; border-bottom: 1px solid rgba(16,40,60,.15); }
.safety-list li:first-child { border-top: 1px solid rgba(16,40,60,.15); }
.safety-list li > span { display: grid; width: 45px; aspect-ratio: 1; place-items: center; color: var(--apricot-deep); border: 1px solid rgba(185,94,65,.48); border-radius: 50%; font-family: Georgia, serif; font-size: 11px; }
.safety-list h3 { margin: 0 0 2px; font-family: var(--serif); font-size: 18px; }
.safety-list p { margin: 0; color: #52646f; font-size: 12px; line-height: 1.75; }
.maintenance-note { display: flex; align-items: center; gap: 35px; padding: 28px 38px; background: #e6d9c2; border: 1px solid rgba(80,73,53,.18); border-radius: 55% 45% 16px 16px / 25% 25% 16px 16px; }
.maintenance-note > span { color: var(--sage-dark); font-family: Georgia, serif; font-size: 11px; letter-spacing: .18em; white-space: nowrap; }
.maintenance-note p { margin: 0; font-size: 12px; }
.maintenance-note strong { font-family: var(--serif); font-size: 18px; }

.cases { padding: 165px 0 125px; background-color: var(--paper-light); }
.cases::before { content: ""; position: absolute; inset: 0; opacity: .45; background-image: linear-gradient(90deg, transparent 49.8%, rgba(131,107,73,.08) 50%, transparent 50.2%); }
.cases-heading { max-width: 930px; text-align: center; }
.cases-heading .hand-note { transform-origin: center; }
.cases-heading h2 { margin-bottom: 18px; }
.cases-heading > p:last-child { color: #5f6c73; font-size: 12px; }
.case-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 65px; }
.case-card { position: relative; padding: 34px 30px 30px; background: rgba(255,253,247,.82); border: 1px solid rgba(122,98,68,.28); border-radius: 46% 46% 12px 12px / 9% 9% 12px 12px; box-shadow: 0 22px 55px rgba(54,46,36,.08); }
.case-card header { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 22px; padding: 0 8px; }
.case-card header p { margin: 0; font-family: Georgia, serif; font-size: 11px; letter-spacing: .18em; }
.case-card header p strong { font-size: 25px; font-weight: 400; }
.case-card header span { font-size: 12px; }
.case-photos { display: grid; grid-template-columns: 1fr 34px 1fr; align-items: center; }
.case-photos figure { position: relative; margin: 0; display: flex; flex-direction: column; background: transparent; overflow: visible; }
.case-photos img { width: 100%; height: auto; object-fit: contain; background: #d8d3c9; }
.case-photos figcaption { order: -1; position: static; padding: 0 0 7px; color: var(--ink); background: transparent; font-family: Georgia, serif; font-size: 9px; letter-spacing: .14em; text-align: center; }
.case-photos > i { color: var(--gold); text-align: center; font-family: var(--serif); font-size: 24px; font-style: normal; }
.tone-result { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 24px 0 18px; }
.tone-result b { color: var(--apricot-deep); font-family: Georgia, serif; font-size: 54px; font-weight: 400; line-height: 1; }
.tone-result span { font-family: var(--serif); font-size: 16px; }
.case-data { margin: 0; border-top: 1px solid var(--line); }
.case-data div { display: grid; grid-template-columns: 94px 1fr; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgba(16,40,60,.1); font-size: 11px; }
.case-data dt { color: var(--sage-dark); font-weight: 700; }
.case-data dd { margin: 0; }
.case-risk { margin: 15px 0 0; color: #5e686d; font-size: 11px; line-height: 1.75; }
.case-consent { position: relative; z-index: 2; max-width: 1000px; margin: 28px auto 0; padding: 0 20px; color: #687177; text-align: center; font-size: 10px; }

.journey {
  position: relative;
  padding: 160px 0 140px;
  color: var(--paper-light);
  background:
    radial-gradient(circle at 12% 30%, rgba(133,166,185,.16), transparent 22%),
    radial-gradient(circle at 75% 70%, rgba(214,181,112,.12), transparent 25%),
    var(--night);
  overflow: hidden;
}
.journey::before { content: ""; position: absolute; inset: 0; opacity: .4; background-image: radial-gradient(circle, #fff 0 1px, transparent 1.4px); background-size: 97px 83px; }
.journey-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: end; }
.journey-heading .hand-note { grid-column: 1 / 3; }
.journey-heading h2 { margin: 0; font-family: var(--serif); font-size: clamp(45px, 5vw, 72px); font-weight: 600; line-height: 1.45; }
.journey-heading h2 em { color: #f2c1a4; }
.journey-heading > p:last-child { justify-self: end; max-width: 370px; margin-bottom: 14px; color: rgba(255,250,241,.7); font-size: 13px; }
.journey-path { margin-top: 75px; }
.journey-path ol { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; list-style: none; }
.journey-path ol::before { content: ""; position: absolute; left: 9%; right: 9%; top: 58px; height: 1px; background: linear-gradient(90deg, rgba(185,154,91,.1), #d8bf86, rgba(185,154,91,.1)); }
.journey-path li { position: relative; z-index: 2; padding: 0 16px; text-align: center; }
.moon-phase { position: relative; display: block; width: 116px; aspect-ratio: 1; margin: 0 auto 21px; border-radius: 50%; background: radial-gradient(circle at 34% 32%, #fff6d9, #caa969 60%, #78603a 100%); box-shadow: 0 0 27px rgba(244,225,177,.25), inset -12px -10px 18px rgba(86,63,37,.25); overflow: hidden; }
.moon-phase::before { content: ""; position: absolute; inset: 10px 21px 31px 42px; opacity: .2; border-radius: 50%; background: #8b7247; box-shadow: -25px 34px #8b7247, 31px 21px #8b7247; }
.moon-phase::after { content: ""; position: absolute; top: -5px; width: 126px; aspect-ratio: 1; border-radius: 50%; background: var(--night); }
.phase-one::after { left: 13px; }
.phase-two::after { left: 32px; }
.phase-three::after { left: 57px; }
.phase-four::after { left: 88px; }
.phase-five::after { display: none; }
.journey-path li > b { display: block; color: #f0c3a9; font-family: Georgia, serif; font-size: 12px; letter-spacing: .14em; }
.journey-path h3 { margin: 7px 0 6px; font-family: var(--serif); font-size: 16px; font-weight: 600; }
.journey-path li p { color: rgba(255,250,241,.62); font-size: 11px; line-height: 1.7; }
.home-period { width: 45%; margin: 42px auto 0; padding: 13px 24px; text-align: center; background: rgba(255,250,241,.08); border: 1px solid rgba(255,250,241,.24); border-radius: 50px; }
.home-period span { margin-right: 15px; color: #f1c2a7; font-family: Georgia, serif; font-size: 10px; letter-spacing: .18em; }
.home-period strong { font-family: var(--serif); font-size: 13px; font-weight: 500; }

.price { padding: 165px 0 125px; }
.plan-heading { max-width: 890px; text-align: center; }
.plan-heading .hand-note { transform-origin: center; }
.plan-heading h2 { margin: 0 0 22px; font-family: var(--serif); font-size: clamp(43px, 5vw, 68px); font-weight: 600; line-height: 1.45; letter-spacing: .05em; }
.plan-heading h2 em { color: var(--apricot-deep); }
.plan-heading > p:last-child { margin: 0 auto; max-width: 650px; color: #53636d; font-size: 14px; line-height: 2; }
.plan-grid { display: grid; grid-template-columns: 1fr 1.14fr 1fr; gap: 22px; align-items: center; margin-top: 78px; }
.plan-card {
  position: relative;
  min-width: 0;
  min-height: 470px;
  padding: 44px 28px 32px;
  overflow: hidden;
  color: var(--ink);
  background: linear-gradient(155deg, rgba(255,253,247,.97), rgba(229,217,193,.9));
  border: 1px solid rgba(122,98,68,.28);
  border-radius: 48% 48% 18px 18px / 12% 12% 18px 18px;
  box-shadow: 0 28px 65px rgba(54,46,36,.11);
  isolation: isolate;
}
.plan-card::before { content: ""; position: absolute; z-index: -1; right: -58px; top: -72px; width: 190px; aspect-ratio: 1; border: 1px solid rgba(185,154,91,.25); border-radius: 50%; box-shadow: 0 0 0 20px rgba(185,154,91,.07), 0 0 0 42px rgba(185,154,91,.04); }
.plan-card header { text-align: center; }
.plan-kicker { color: var(--sage-dark); font-family: Georgia, serif; font-size: 8px; font-weight: 700; letter-spacing: .2em; }
.plan-card h3 { margin: 8px 0 4px; font-family: Georgia, var(--serif); font-size: 40px; font-weight: 400; letter-spacing: .08em; }
.plan-card header p { margin: 0; font-family: var(--serif); font-size: 15px; }
.plan-price { margin: 32px 0 8px; display: flex; align-items: flex-end; justify-content: center; line-height: 1; white-space: nowrap; }
.plan-price small { align-self: flex-start; margin: 6px 6px 0 0; font-size: 9px; font-weight: 700; }
.plan-price strong { font-family: Georgia, var(--serif); font-size: clamp(39px, 3.4vw, 52px); font-weight: 400; letter-spacing: -.025em; }
.plan-price span { margin: 0 0 4px 4px; font-family: var(--serif); font-size: 16px; }
.plan-time { margin: 0; padding: 8px 11px; color: var(--apricot-deep); background: rgba(255,250,241,.7); border: 1px solid rgba(185,94,65,.22); border-radius: 99px; text-align: center; font-size: 10px; font-weight: 700; }
.plan-card ul { margin: 24px 0 0; padding: 0; list-style: none; }
.plan-card li { position: relative; padding: 10px 0 10px 22px; border-bottom: 1px solid rgba(16,40,60,.12); font-size: 11px; line-height: 1.7; }
.plan-card li::before { content: "◇"; position: absolute; left: 1px; color: var(--apricot-deep); }
.plan-card--home { color: var(--paper-light); background: linear-gradient(155deg, #173b52, #071c2d 76%); border-color: rgba(255,250,241,.22); box-shadow: 0 32px 72px rgba(7,28,45,.26); }
.plan-card--home::before { border-color: rgba(255,244,208,.28); box-shadow: 0 0 0 20px rgba(255,244,208,.05), 0 0 0 42px rgba(255,244,208,.025); }
.plan-card--home .plan-kicker { color: #d7c896; }
.plan-card--home .plan-time { color: #f3d0b9; background: rgba(255,250,241,.08); border-color: rgba(255,250,241,.22); }
.plan-card--home li { border-color: rgba(255,250,241,.16); }
.plan-card--home li::before { color: #e5be9e; }
.plan-card--dual { min-height: 535px; padding-top: 61px; background: radial-gradient(circle at 50% 29%, rgba(255,255,255,.98), rgba(246,237,217,.96) 42%, rgba(218,198,164,.94)); border-color: rgba(185,94,65,.5); box-shadow: 0 38px 90px rgba(79,55,35,.18), inset 0 0 0 11px rgba(255,255,255,.22); }
.plan-card--dual::after { content: ""; position: absolute; z-index: -1; left: 50%; top: 116px; width: 240px; aspect-ratio: 1; border: 1px solid rgba(185,154,91,.18); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 0 13px rgba(255,255,255,.18); }
.plan-card--dual h3 { font-size: 48px; }
.plan-card--dual .plan-price strong { font-size: clamp(48px, 4.1vw, 64px); }
.plan-recommend { position: absolute; z-index: 2; left: 50%; top: 20px; margin: 0; padding: 6px 17px; color: white; background: var(--apricot-deep); border-radius: 99px; font-size: 8px; font-weight: 800; letter-spacing: .16em; transform: translateX(-50%); }
.plan-help { margin-top: 45px; padding: 20px 28px; color: #52626c; background: rgba(255,255,255,.46); border: 1px solid var(--line); border-radius: 50px; text-align: center; font-family: var(--serif); font-size: 13px; line-height: 1.8; }
.fee-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 70px; }
.fee-notes p { margin: 0; padding: 25px 28px; background: #e9ddc9; border-left: 3px solid var(--sage); font-size: 11px; }
.fee-notes strong { font-family: var(--serif); font-size: 16px; }
.treatment-notice { margin-top: 30px; padding: 26px 30px; background: rgba(255,255,255,.5); border: 1px solid var(--line); }
.treatment-notice h3 { margin: 0 0 17px; font-size: 13px; }
.treatment-notice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.treatment-notice-grid p { margin: 0; padding: 18px; color: #536069; background: rgba(255,253,247,.92); font-size: 11px; line-height: 1.9; }
.treatment-notice-grid strong { color: var(--ink); font-family: var(--serif); font-size: 13px; }
.treatment-notice-airflow, .treatment-notice-common { margin: 16px 0 0; color: #536069; font-size: 11px; line-height: 1.9; }
.treatment-notice-airflow { padding: 15px 17px; background: rgba(255,253,247,.72); border-left: 3px solid var(--gold); }
.treatment-notice-airflow strong { color: var(--ink); font-family: var(--serif); font-size: 13px; }

.team { padding: 165px 0 135px; background-color: #f1e7d7; }
.team-layout { display: grid; grid-template-columns: 1.08fr .92fr; gap: 85px; align-items: center; }
.team-photos { position: relative; min-height: 540px; }
.team-photo { position: absolute; margin: 0; padding: 10px; background: var(--paper-light); box-shadow: 0 28px 65px rgba(22,42,53,.16); }
.team-photo img { width: 100%; height: 100%; object-fit: cover; }
.team-photo--main { top: 0; right: 0; width: 82%; height: auto; aspect-ratio: 4 / 3; transform: rotate(2deg); }
.team-photo--sub { left: 0; bottom: 0; width: 66%; height: auto; aspect-ratio: 4 / 3; transform: rotate(-5deg); }
.team-badge { position: absolute; z-index: 3; right: 0; bottom: 25px; display: flex; width: 175px; aspect-ratio: 1; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: var(--paper-light); border: 1px solid var(--apricot-deep); border-radius: 50%; box-shadow: 0 18px 45px rgba(16,40,60,.12); transform: rotate(7deg); }
.team-badge span { color: var(--apricot-deep); font-family: Georgia, serif; font-size: 9px; letter-spacing: .14em; }
.team-badge strong { margin-top: 5px; font-family: var(--serif); font-size: 17px; line-height: 1.55; }
.team-copy > p:last-child { color: #52616a; font-size: 14px; text-wrap: pretty; }

.faq { padding: 150px 0 125px; }
.faq-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 80px; }
.faq h2 { font-size: clamp(36px, 3.5vw, 44px); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; min-height: 72px; align-items: center; justify-content: space-between; cursor: pointer; list-style: none; font-family: var(--serif); font-size: 16px; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "＋"; color: var(--apricot-deep); font-family: var(--sans); font-size: 20px; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { margin: -3px 38px 25px 0; color: #52616a; font-size: 13px; }

.final-cta {
  position: relative;
  min-height: 830px;
  display: grid;
  align-items: center;
  color: var(--ink);
  background:
    radial-gradient(circle at 50% 86%, rgba(255,246,201,.9), transparent 18%),
    linear-gradient(180deg, #7893a4 0%, #e7a47c 70%, #f4c39a 100%);
  overflow: hidden;
  isolation: isolate;
}
.final-cta::before { content: ""; position: absolute; z-index: -1; left: -10%; right: -10%; bottom: -210px; height: 520px; background: var(--paper); border-radius: 50% 50% 0 0 / 70% 70% 0 0; }
.final-cta::after { content: ""; position: absolute; z-index: -1; left: 50%; bottom: 205px; width: 80px; aspect-ratio: 1; background: #fff0c1; border-radius: 50%; box-shadow: 0 0 90px 35px rgba(255,238,166,.65); transform: translateX(-50%); }
.final-night { position: absolute; z-index: -2; inset: 0; background: radial-gradient(circle at 20% 15%, rgba(255,255,255,.6) 0 1px, transparent 2px); background-size: 90px 90px; opacity: .5; }
.final-content { padding-top: 40px; text-align: center; }
.final-content > p:first-child { margin-bottom: 20px; font-family: Georgia, serif; font-size: 10px; letter-spacing: .24em; }
.final-content h2 { margin-bottom: 22px; font-family: var(--serif); font-size: clamp(44px, 5.7vw, 82px); font-weight: 600; line-height: 1.42; letter-spacing: .05em; }
.final-content h2 em { color: #913f31; }
.final-content > span { font-family: var(--serif); font-size: 16px; line-height: 1.9; }
.call-button--final { width: 540px; max-width: 100%; margin: 32px auto 0; }
.call-hours { margin: 13px 0 0; font-size: 11px; }
.final-bloom { position: absolute; z-index: 1; left: 50%; bottom: 48px; width: 170px; height: 150px; transform: translateX(-50%); pointer-events: none; }
.final-bloom i { position: absolute; left: 58px; top: 20px; width: 55px; height: 83px; background: rgba(255,250,241,.9); border: 1px solid #94734e; border-radius: 65% 35% 55% 45%; transform-origin: 50% 80%; }
.final-bloom i:nth-child(1) { transform: rotate(-72deg); }
.final-bloom i:nth-child(2) { transform: rotate(-36deg); }
.final-bloom i:nth-child(3) { transform: rotate(0); }
.final-bloom i:nth-child(4) { transform: rotate(36deg); }
.final-bloom i:nth-child(5) { transform: rotate(72deg); }
.final-bloom b { position: absolute; z-index: 2; left: 65px; top: 66px; width: 42px; aspect-ratio: 1; background: #d4a75f; border: 1px solid #80633e; border-radius: 50%; }

footer { display: grid; grid-template-columns: 300px 1fr auto; gap: 45px; align-items: center; padding: 55px max(40px, 6vw); color: rgba(255,255,255,.72); background: var(--night); }
footer img { width: 285px; padding: 10px; background: rgba(255,255,255,.9); }
footer p { margin: 0; font-size: 11px; }
footer small { font-size: 9px; letter-spacing: .12em; }
.mobile-call { display: none; }

@media (max-width: 1000px) {
  :root { --shell: min(100% - 44px, 760px); }
  .chapter-mark { left: 22px; }
  .site-header { height: 76px; padding: 10px 20px; }
  .brand { width: 225px; }
  .header-access { display: none; }
  .hero { min-height: 900px; }
  .hero-image { object-position: 57% center; }
  .hero-shade { background: linear-gradient(180deg, rgba(247,240,227,.98) 0%, rgba(247,240,227,.92) 42%, rgba(247,240,227,.18) 70%, rgba(11,33,51,.08)); }
  .hero-copy { width: min(570px, calc(100% - 44px)); padding-top: 120px; margin-left: 22px; }
  .hero-question { display: none; }
  .image-note { right: 22px; }
  .feeling-grid { grid-template-columns: 1fr; gap: 10px; }
  .feeling-copy { max-width: 640px; }
  .memory-collage { width: min(680px, 100%); margin-inline: auto; }
  .garden-panels { grid-template-columns: 1fr; max-width: 690px; background: none; border-radius: 180px 180px 24px 24px / 70px 70px 24px 24px; }
  .garden-panels::before { display: none; }
  .garden-panel { min-height: 560px; background-image: url("assets/dual-garden-panorama-v2.webp"); background-repeat: no-repeat; background-size: 200% auto; }
  .garden-panel--day { background-position: left center; }
  .garden-panel--night { background-position: right center; }
  .roots-stage { display: block; min-height: 0; margin-top: 60px; padding: 0; }
  .safety-story-art { position: relative; inset: auto; width: 100%; border-radius: 90px 90px 18px 18px / 34px 34px 18px 18px; }
  .safety-story-art img { height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
  .safety-list { width: min(600px, calc(100% - 40px)); margin: -30px auto 0; padding: 28px 32px; }
  .case-grid { grid-template-columns: 1fr; max-width: 760px; }
  .journey-path ol { grid-template-columns: 1fr; gap: 22px; }
  .journey-path ol::before { left: 58px; right: auto; top: 58px; bottom: 58px; width: 1px; height: auto; }
  .journey-path li { display: grid; grid-template-columns: 116px 48px 1fr; align-items: center; gap: 14px; text-align: left; }
  .moon-phase { grid-row: 1 / 3; margin: 0; }
  .journey-path li > b { grid-column: 2; grid-row: 1 / 3; }
  .journey-path h3 { grid-column: 3; margin: 0; }
  .journey-path li p { grid-column: 3; margin: 0; }
  .home-period { width: 75%; }
  .plan-grid { grid-template-columns: 1fr; max-width: 680px; gap: 24px; }
  .plan-card { min-height: 0; border-radius: 110px 110px 18px 18px / 58px 58px 18px 18px; }
  .plan-card--dual { order: -1; min-height: 0; }
  .treatment-notice-grid { grid-template-columns: 1fr; }
  .team-layout { grid-template-columns: 1fr; }
  .team-copy { max-width: 680px; }
  .faq-layout { grid-template-columns: 1fr; gap: 30px; }
  footer { grid-template-columns: 1fr 1fr; }
  footer small { grid-column: 1 / 3; }
}

@media (max-width: 620px) {
  :root { --shell: calc(100% - 36px); }
  br.mobile-break { display: initial; }
  body { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  .chapter-mark { top: 31px; left: 18px; font-size: 9px; }
  .chapter-mark::after { width: 28px; }
  .chapter-mark span { width: 29px; }
  .site-header { height: 64px; padding: 8px 13px; gap: 8px; }
  .brand { width: 178px; padding: 8px 10px; border-radius: 2px 12px 2px 12px; }
  .header-phone { min-height: 40px; padding-left: 10px; }
  .header-phone span { display: none; }
  .header-phone strong { font-size: 12px; }
  .hero { min-height: 820px; }
  .hero::after { bottom: -63px; height: 120px; }
  .hero-image { height: 100%; object-position: 61% center; }
  .hero-shade { background: linear-gradient(180deg, rgba(247,240,227,.99) 0%, rgba(247,240,227,.94) 46%, rgba(247,240,227,.08) 73%, rgba(11,33,51,.12)); }
  .hero-copy { width: calc(100% - 36px); padding-top: 92px; margin-left: 18px; }
  .overline { margin-bottom: 11px; font-size: 9px; letter-spacing: .16em; }
  .overline::before { width: 27px; }
  .hero h1 { margin-bottom: 10px; font-size: clamp(31px, 9.4vw, 42px); line-height: 1.47; letter-spacing: .02em; }
  .hero-lead { margin-bottom: 12px; font-size: 12px; line-height: 1.8; }
  .hero-trust { gap: 5px; margin-bottom: 13px; }
  .hero-trust li { width: calc((100vw - 46px) / 3); max-width: 108px; }
  .hero-trust b { font-size: 9px; }
  .hero-trust span { font-size: 9px; line-height: 1.55; }
  .call-button { min-height: 76px; padding: 13px 19px; border-radius: 34px 7px 34px 7px; }
  .call-button span { font-size: 9px; }
  .call-button strong { font-size: 22px; }
  .call-button small { font-size: 9px; }
  .hero-fee { margin: 7px 0 0 9px; font-size: 9px; }
  .image-note { right: 13px; bottom: 54px; font-size: 9px; }
  .scroll-cue { display: none; }
  .feeling, .safety-roots, .cases, .price, .team, .faq { padding: 110px 0 85px; }
  .feeling-copy h2, .safety-intro h2, .cases-heading h2, .team-copy h2, .faq h2 { font-size: 32px; line-height: 1.55; }
  .body-copy { font-size: 13px; }
  .memory-collage { min-height: 440px; }
  .memory-photo { top: 42px; right: 0; width: 92%; padding: 8px 8px 31px; }
  .memory-photo figcaption { bottom: 7px; font-size: 9px; }
  .memory-card { padding: 16px 18px; font-size: 13px; }
  .memory-card--two { bottom: 12px; }
  .memory-card strong { font-size: 14px; }
  .turning-point { margin-top: 42px; }
  .turning-point h3 { font-size: 19px; }
  .dual-garden { padding: 115px 0 80px; }
  .garden-heading h2 { font-size: 36px; }
  .garden-heading > p:last-child { font-size: 12px; }
  .garden-panels { margin-top: 45px; }
  .garden-panel { min-height: 495px; padding: 66px 24px 30px; background-size: auto 100%; }
  .garden-panel h3 { font-size: 36px; }
  .garden-panel figure { left: 6%; right: auto; width: 64%; height: auto; aspect-ratio: 3 / 2; }
  .garden-answer { font-size: 14px; }
  .garden-answer strong { display: block; font-size: 19px; }
  .roots-stage { display: block; min-height: 0; margin-top: 50px; padding: 0; }
  .safety-story-art { position: relative; inset: auto; width: 100%; border-radius: 70px 70px 16px 16px / 28px 28px 16px 16px; }
  .safety-story-art img { height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
  .safety-story-art figcaption { right: 10px; bottom: 8px; }
  .safety-list { width: calc(100% - 20px); margin: -24px auto 0; padding: 25px 20px; border-radius: 42px 42px 14px 14px / 24px 24px 14px 14px; }
  .safety-list li { grid-template-columns: 45px 1fr; gap: 12px; }
  .safety-list h3 { font-size: 16px; }
  .safety-list p { font-size: 11px; }
  .maintenance-note { display: block; padding: 23px; border-radius: 30px 12px 30px 12px; }
  .maintenance-note > span { display: block; margin-bottom: 8px; }
  .maintenance-note strong { font-size: 16px; }
  .cases-heading > p:last-child { font-size: 11px; }
  .case-grid { margin-top: 38px; }
  .case-card { padding: 27px 13px 23px; border-radius: 42% 42% 10px 10px / 5% 5% 10px 10px; }
  .case-photos { grid-template-columns: 1fr 22px 1fr; }
  .case-photos > i { font-size: 18px; }
  .tone-result { margin: 18px 0 13px; }
  .tone-result b { font-size: 43px; }
  .tone-result span { font-size: 13px; }
  .case-data div { grid-template-columns: 78px 1fr; gap: 8px; font-size: 10px; }
  .case-risk { font-size: 10px; }
  .journey { padding: 115px 0 90px; }
  .journey-heading { display: block; }
  .journey-heading h2 { font-size: 42px; }
  .journey-heading > p:last-child { margin-top: 16px; font-size: 12px; }
  .journey-path { margin-top: 42px; }
  .journey-path ol::before { left: 42px; }
  .journey-path li { grid-template-columns: 84px 32px 1fr; gap: 8px; padding: 0; }
  .moon-phase { width: 84px; }
  .moon-phase::after { width: 94px; }
  .phase-one::after { left: 9px; }
  .phase-two::after { left: 24px; }
  .phase-three::after { left: 42px; }
  .phase-four::after { left: 65px; }
  .journey-path h3 { font-size: 14px; }
  .journey-path li p { margin-top: 0; font-size: 10px; }
  .home-period { width: 100%; margin-top: 30px; padding: 13px 17px; border-radius: 16px; }
  .home-period span { display: block; margin: 0 0 2px; }
  .home-period strong { font-size: 11px; }
  .plan-heading h2 { font-size: 32px; }
  .plan-heading > p:last-child { font-size: 12px; }
  .plan-grid { margin-top: 42px; gap: 18px; }
  .plan-card { padding: 34px 22px 27px; border-radius: 72px 72px 14px 14px / 40px 40px 14px 14px; }
  .plan-card--dual { padding-top: 58px; }
  .plan-card h3 { font-size: 36px; }
  .plan-card--dual h3 { font-size: 42px; }
  .plan-price { margin-top: 27px; }
  .plan-price strong { font-size: 42px; }
  .plan-card--dual .plan-price strong { font-size: 50px; }
  .plan-help { margin-top: 28px; padding: 17px 20px; border-radius: 25px; font-size: 12px; }
  .fee-notes { grid-template-columns: 1fr; margin-top: 48px; }
  .treatment-notice { padding: 20px; }
  .treatment-notice-grid p { padding: 15px; }
  .team-photos { min-height: 400px; }
  .team-photo--main { width: 88%; height: auto; aspect-ratio: 4 / 3; }
  .team-photo--sub { width: 70%; height: auto; aspect-ratio: 4 / 3; }
  .team-badge { width: 127px; bottom: 5px; }
  .team-badge strong { font-size: 13px; }
  .team-copy > p:last-child { font-size: 13px; }
  .faq-list summary { min-height: 66px; font-size: 14px; }
  .faq-list details p { margin-right: 12px; font-size: 12px; }
  .final-cta { min-height: 720px; }
  .final-content { padding-top: 0; }
  .final-content h2 { font-size: 32px; }
  .final-content > span { font-size: 13px; }
  .call-button--final { margin-top: 27px; }
  .call-hours { font-size: 9px; }
  .final-bloom { bottom: 26px; transform: translateX(-50%) scale(.75); }
  footer { grid-template-columns: 1fr; gap: 18px; padding: 40px 22px; text-align: center; }
  footer img { width: 250px; margin-inline: auto; }
  footer small { grid-column: 1; }
  .mobile-call {
    position: fixed;
    z-index: 100;
    left: 10px;
    right: 10px;
    bottom: calc(8px + env(safe-area-inset-bottom));
    display: flex;
    min-height: 62px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 17px;
    color: white;
    background: linear-gradient(135deg, #d97d5b, #b95d42);
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 28px 7px 28px 7px;
    box-shadow: 0 15px 38px rgba(59,29,20,.3);
  }
  .mobile-call span { font-size: 9px; }
  .mobile-call strong { text-align: right; font-size: 11px; }
  .mobile-call b { display: block; font-family: Georgia, var(--serif); font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* --------------------------------------------------------------------------
   Moon Garden v2 — shared clinic chrome and hand-drawn story layers
   -------------------------------------------------------------------------- */

html { scroll-padding-top: 112px; }
.site-header {
  position: fixed;
  z-index: 100;
  inset: 0 0 auto;
  display: block;
  height: auto;
  padding: 0;
  color: var(--ink);
  background: rgba(247,245,238,.92);
  border-bottom: 1px solid rgba(16,40,60,.12);
  box-shadow: 0 12px 38px rgba(16,40,60,.045);
  backdrop-filter: blur(18px) saturate(1.08);
  transition: background .35s, border-color .35s, box-shadow .35s;
}
.site-header.is-scrolled {
  background: rgba(250,249,244,.97);
  border-color: rgba(16,40,60,.19);
  box-shadow: 0 10px 34px rgba(16,40,60,.09);
}
.header-main {
  min-height: 74px;
  padding-inline: max(22px, calc((100vw - 1380px) / 2));
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.2vw, 38px);
  transition: min-height .35s;
}
.site-header.is-scrolled .header-main { min-height: 64px; }
.header-brand {
  width: auto;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: 15px;
  flex: none;
  background: none;
  border-radius: 0;
  box-shadow: none;
  white-space: nowrap;
}
.header-brand img {
  width: 205px;
  height: auto;
  aspect-ratio: 1100 / 251;
  object-fit: contain;
  background: transparent;
  mix-blend-mode: multiply;
}
.brand-note {
  padding-left: 14px;
  display: grid;
  gap: 4px;
  border-left: 1px solid rgba(16,40,60,.18);
  color: var(--ink);
}
.brand-note small { font-size: 7px; font-weight: 900; letter-spacing: .19em; }
.brand-note b { font-size: 8px; letter-spacing: .11em; }
.header-nav { margin-left: auto; display: flex; align-items: stretch; gap: clamp(12px, 1.45vw, 24px); }
.header-nav a {
  position: relative;
  min-height: 39px;
  display: grid;
  align-content: center;
  gap: 2px;
}
.header-nav a small { color: rgba(16,40,60,.5); font-size: 7px; font-weight: 900; letter-spacing: .14em; }
.header-nav a span { font-size: 10px; font-weight: 800; }
.header-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1px; background: var(--apricot-deep); transition: right .3s; }
.header-nav a:hover::after, .header-nav a:focus-visible::after { right: 0; }
.header-actions { display: flex; align-items: center; gap: 9px; }
.header-official {
  min-height: 43px;
  padding: 8px 14px;
  display: grid;
  align-content: center;
  gap: 2px;
  border-radius: 99px;
  background: #e9f0ed;
  transition: background .25s, transform .25s;
}
.header-official small { font-size: 7px; font-weight: 900; letter-spacing: .14em; }
.header-official span { font-size: 9px; font-weight: 800; }
.header-official:hover, .header-official:focus-visible { background: #dce9e4; transform: translateY(-2px); }
.header-cta {
  min-height: 45px;
  padding: 5px 6px 5px 18px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: white;
  background: #9d4837;
  border-radius: 99px;
  box-shadow: 0 9px 22px rgba(129,58,43,.2);
  font-size: 10px;
  font-weight: 800;
  transition: background .25s, transform .25s;
}
.header-cta i { width: 33px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.14); font-style: normal; }
.header-cta:hover, .header-cta:focus-visible { background: #773326; transform: translateY(-2px); }
.header-trail {
  max-height: 28px;
  min-height: 28px;
  padding-inline: max(22px, calc((100vw - 1380px) / 2));
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  overflow: hidden;
  color: rgba(16,40,60,.72);
  background: rgba(233,240,237,.56);
  border-top: 1px solid rgba(16,40,60,.07);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .11em;
  transition: max-height .35s, min-height .35s, opacity .25s, border-color .25s;
}
.header-trail span:first-child { margin-right: auto; letter-spacing: .18em; }
.site-header.is-scrolled .header-trail { max-height: 0; min-height: 0; opacity: 0; border-color: transparent; }
.mobile-menu-toggle, .mobile-menu-panel { display: none; }

.call-button {
  background: linear-gradient(135deg, #a84b36, #7e3025);
  box-shadow: 0 20px 45px rgba(85,35,25,.3);
}
.call-button:hover { box-shadow: 0 24px 52px rgba(85,35,25,.36); }

/* The collage stays in its own visual layer, followed by a calm, readable turn. */
.feeling-grid {
  z-index: 3;
  margin-bottom: clamp(64px, 7vw, 104px);
}
.memory-collage { isolation: isolate; }
.turning-point {
  position: relative;
  z-index: 7;
  margin: 0 auto 30px;
  padding: 24px clamp(20px, 4vw, 48px);
  background: rgba(255,250,241,.9);
  border: 1px solid rgba(16,40,60,.1);
  border-radius: 48% 52% 16px 16px / 22% 22% 16px 16px;
  box-shadow: 0 18px 48px rgba(16,40,60,.08);
}

.garden-panel .home-kit {
  position: absolute;
  left: auto;
  right: 4%;
  bottom: 8px;
  width: 68%;
  height: 300px;
  margin: 0;
  padding: 0;
  overflow: visible;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.garden-panel .home-kit::after { display: none; }
.garden-panel .home-kit img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 22px 22px rgba(0,0,0,.3)); }
.garden-panel .home-kit figcaption { left: auto; right: 9%; bottom: 6px; padding: 5px 9px; color: rgba(255,250,241,.78); background: rgba(11,33,51,.55); border-radius: 99px; font-size: 10px; }

.roots-stage { isolation: isolate; }
.safety-list { position: relative; z-index: 4; }

.shade-guide {
  display: flex;
  min-height: 37px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: -4px 0 20px;
}
.shade-guide i {
  width: 19px;
  height: 29px;
  display: block;
  border: 1px solid rgba(118,91,48,.25);
  border-radius: 50% 50% 44% 44%;
  background: #c7a464;
  box-shadow: inset 3px 2px 6px rgba(255,255,255,.22);
}
.shade-guide i:nth-of-type(2) { background: #d3b77d; }
.shade-guide i:nth-of-type(3) { background: #dfc995; }
.shade-guide i:nth-of-type(4) { background: #eadbb3; }
.shade-guide i:nth-of-type(5) { background: #efe4c8; }
.shade-guide i:nth-of-type(6) { background: #f7efd9; }
.shade-guide i:nth-of-type(7) { background: #fffaf0; border-color: rgba(16,40,60,.22); }
.shade-guide b { margin-inline: 5px; color: var(--apricot-deep); font-family: var(--serif); font-size: 20px; font-weight: 500; }
.case-consent { color: #5a6266; }

.final-bloom {
  position: absolute;
  z-index: 1;
  left: 50%;
  bottom: -44px;
  width: min(620px, 52vw);
  height: auto;
  max-width: none;
  opacity: .88;
  filter: drop-shadow(0 14px 25px rgba(87,52,34,.12));
  transform: translateX(-50%);
  pointer-events: none;
}
.final-cta .final-content { padding-bottom: 120px; }

/* Shared arrival footer, adapted to the Moon Garden story. */
.site-footer { display: block; padding: 0; color: var(--paper-light); background: var(--night); }
.footer-arrival {
  position: relative;
  overflow: hidden;
  padding: 112px 0 108px;
  color: var(--ink);
  background:
    linear-gradient(145deg, rgba(238,232,219,.94), rgba(247,243,233,.93) 48%, rgba(230,230,218,.94)),
    url("assets/safety-root-map-v1.jpg") center 115% / 118% auto no-repeat;
  background-blend-mode: normal, multiply;
}
.footer-arrival::before { content: ""; position: absolute; inset: 0; opacity: .22; background: repeating-radial-gradient(ellipse at 15% 20%, transparent 0 85px, rgba(16,40,60,.11) 87px 88px); transform: rotate(-4deg); }
.footer-arrival::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: -4%;
  right: -4%;
  bottom: -1px;
  height: 86px;
  background: var(--night);
  clip-path: polygon(0 78%,7% 61%,16% 74%,27% 54%,39% 72%,50% 48%,63% 70%,75% 56%,88% 74%,100% 53%,100% 100%,0 100%);
}
.footer-arrival-grid { display: grid; grid-template-columns: .92fr 1.28fr .8fr; gap: clamp(28px, 4vw, 68px); align-items: center; }
.footer-arrival-copy, .footer-hours { position: relative; z-index: 2; padding: 30px 0; }
.footer-brand { display: inline-flex; width: 230px; margin-bottom: 36px; padding: 0; background: transparent; border-radius: 0; }
.footer-brand img {
  width: 100%;
  height: auto;
  aspect-ratio: 1100 / 251;
  object-fit: contain;
  padding: 0;
  margin: 0;
  background: transparent;
  filter: none;
  opacity: 1;
  mix-blend-mode: multiply;
}
.footer-eyebrow { margin-bottom: 16px; color: var(--sage-dark); font-size: 9px; font-weight: 900; letter-spacing: .2em; }
.footer-arrival h2 { margin-bottom: 0; font-family: var(--serif); font-size: clamp(38px, 3.2vw, 50px); font-weight: 600; line-height: 1.35; letter-spacing: .04em; }
.footer-address { margin: 24px 0 0; color: var(--ink); font-size: 12px; line-height: 1.9; }
.footer-phone { width: max-content; margin-top: 23px; display: grid; gap: 4px; }
.footer-phone small { color: var(--sage-dark); font-size: 8px; font-weight: 900; letter-spacing: .2em; }
.footer-phone b { font-family: Georgia, var(--serif); font-size: 26px; letter-spacing: .04em; }
.footer-arrival-links { margin-top: 27px; display: flex; flex-wrap: wrap; gap: 8px; }
.footer-arrival-links a { padding: 10px 13px; border: 1px solid rgba(16,40,60,.2); border-radius: 99px; background: rgba(255,255,255,.38); font-size: 9px; font-weight: 800; }
.footer-route-map {
  position: relative;
  z-index: 2;
  min-height: 430px;
  padding: 0;
  overflow: hidden;
  background: #e9e5da;
  border: 1px solid rgba(16,40,60,.18);
  border-radius: 30px;
  box-shadow: inset 0 0 70px rgba(16,40,60,.06), 0 35px 75px rgba(16,40,60,.12);
  transform: none;
}
.footer-route-map::after { content: ""; position: absolute; z-index: 4; inset: 7px; border: 1px solid rgba(255,255,255,.5); border-radius: 23px; pointer-events: none; }
.footer-route-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.78) sepia(.13) saturate(.62) contrast(.92) brightness(1.06); transition: filter .45s ease; }
.footer-route-map:hover iframe, .footer-route-map:focus-within iframe { filter: grayscale(.5) sepia(.08) saturate(.76) contrast(.94) brightness(1.04); }
.footer-route-map .map-kicker { position: absolute; z-index: 6; left: 18px; top: 18px; margin: 0; padding: 10px 13px; color: var(--sage-dark); background: rgba(250,249,244,.94); border: 1px solid rgba(16,40,60,.12); border-radius: 99px; box-shadow: 0 8px 22px rgba(16,40,60,.13); font-size: 8px; font-weight: 900; letter-spacing: .08em; }
.footer-route-map > a { position: absolute; z-index: 6; left: 18px; bottom: 18px; padding: 10px 13px; color: var(--ink); background: rgba(250,249,244,.94); border: 1px solid rgba(16,40,60,.12); border-radius: 99px; box-shadow: 0 8px 22px rgba(16,40,60,.13); font-size: 9px; font-weight: 800; }
.footer-hours { border-top: 1px solid rgba(16,40,60,.18); border-bottom: 1px solid rgba(16,40,60,.18); }
.footer-hours h3 { margin: 0 0 24px; font-family: var(--serif); font-size: 19px; line-height: 1.55; }
.hours-card { border-top: 1px solid rgba(16,40,60,.12); }
.hours-card p { display: grid; grid-template-columns: 68px 1fr; align-items: center; gap: 13px; margin: 0; padding: 15px 0; color: var(--ink); border-bottom: 1px solid rgba(16,40,60,.12); }
.hours-card span { font-size: 10px; font-weight: 700; }
.hours-card strong { justify-self: end; font-family: Georgia, var(--serif); font-size: 14px; font-weight: 500; }
.hours-card .hours-closed strong { font-family: var(--sans); font-size: 11px; }
.hours-note { margin: 18px 0 0; color: rgba(16,40,60,.7); font-size: 10px; line-height: 1.85; }

.footer-night { position: relative; overflow: hidden; padding: 76px 0 28px; color: var(--paper-light); background: var(--night); }
.footer-night::before { content: ""; position: absolute; inset: -30% 0; opacity: .11; background: repeating-radial-gradient(ellipse at 76% 42%, transparent 0 68px, rgba(245,242,234,.38) 70px 71px); transform: rotate(-8deg); }
.footer-night-grid { display: grid; grid-template-columns: 1fr .8fr 1fr; gap: clamp(46px, 7vw, 110px); }
.footer-philosophy-kicker { margin: 0 0 24px; color: rgba(255,250,241,.56); font-size: 8px; font-weight: 900; letter-spacing: .19em; }
.footer-clinic-mark > p:last-of-type { margin: 0; color: var(--paper-light); font-family: var(--serif); font-size: 17px; line-height: 2; }
.footer-consult { margin-top: 28px; padding-bottom: 9px; display: inline-flex; gap: 28px; border-bottom: 1px solid rgba(255,250,241,.42); font-size: 11px; font-weight: 800; }
.footer-night h3 { margin: 0 0 24px; color: rgba(255,250,241,.68); font-size: 10px; letter-spacing: .14em; }
.footer-priority { display: grid; align-content: start; }
.footer-priority a { padding: 14px 0; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,250,241,.16); font-size: 11px; }
.footer-priority a:last-child { border-bottom: 1px solid rgba(255,250,241,.16); }
.footer-sitemap > div { display: grid; grid-template-columns: 1fr 1fr; gap: 0 25px; }
.footer-sitemap a { padding: 10px 0; color: rgba(255,250,241,.76); font-size: 10px; }
.footer-night a { transition: color .25s, opacity .25s; }
.footer-night a:hover, .footer-night a:focus-visible { color: white; opacity: 1; }
.footer-bottom { margin-top: 66px; padding-top: 22px; display: flex; justify-content: space-between; gap: 30px; border-top: 1px solid rgba(255,250,241,.14); }
.footer-bottom p, .footer-bottom a { margin: 0; color: rgba(255,250,241,.58); font-size: 9px; }
.footer-bottom > div { display: flex; gap: 28px; }

@media (min-width: 901px) and (max-width: 1180px) {
  .header-main { padding-inline: 18px; gap: 18px; }
  .brand-note, .header-official { display: none; }
  .header-brand img { width: 188px; }
  .header-nav { gap: 15px; }
  .header-nav a span { font-size: 9px; }
  .header-trail { padding-inline: 18px; }
  .footer-arrival-grid { grid-template-columns: 1fr 1.15fr; }
  .footer-hours { grid-column: 1 / -1; display: grid; grid-template-columns: 220px 1fr; gap: 25px; align-items: start; }
  .footer-hours .footer-eyebrow { grid-column: 1 / -1; }
  .footer-hours h3 { margin: 0; }
  .hours-note { margin-top: 0; }
}

@media (max-width: 900px) {
  html { scroll-padding-top: 72px; }
  .header-main { min-height: 68px; padding-inline: 17px; }
  .site-header.is-scrolled .header-main { min-height: 62px; }
  .header-brand img { width: 176px; }
  .brand-note, .header-nav, .header-actions, .header-trail { display: none; }
  .mobile-menu-toggle {
    width: 88px;
    min-height: 44px;
    margin-left: auto;
    padding: 0 11px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--ink);
    background: transparent;
    border: 0;
    border-left: 1px solid rgba(16,40,60,.14);
    font: 800 9px var(--sans);
  }
  .mobile-menu-toggle i, .mobile-menu-toggle i::before, .mobile-menu-toggle i::after { position: relative; width: 18px; height: 1px; display: block; background: currentColor; transition: transform .3s, opacity .3s; }
  .mobile-menu-toggle i::before, .mobile-menu-toggle i::after { content: ""; position: absolute; left: 0; }
  .mobile-menu-toggle i::before { top: -5px; }
  .mobile-menu-toggle i::after { top: 5px; }
  .site-header.menu-open .mobile-menu-toggle i { background: transparent; }
  .site-header.menu-open .mobile-menu-toggle i::before { top: 0; transform: rotate(45deg); }
  .site-header.menu-open .mobile-menu-toggle i::after { top: 0; transform: rotate(-45deg); }
  .mobile-menu-panel {
    position: fixed;
    z-index: -1;
    left: 8px;
    right: 8px;
    top: 68px;
    max-height: calc(100vh - 78px);
    padding: 24px;
    display: block;
    overflow: auto;
    color: var(--paper-light);
    background: var(--night);
    border-radius: 0 0 26px 26px;
    box-shadow: 0 30px 70px rgba(4,24,31,.3);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-16px) scale(.985);
    transform-origin: top;
    transition: opacity .28s, visibility .28s, transform .34s cubic-bezier(.2,.7,.2,1);
  }
  .site-header.is-scrolled .mobile-menu-panel { top: 62px; }
  .site-header.menu-open .mobile-menu-panel { z-index: 2; opacity: 1; visibility: visible; transform: none; }
  .mobile-menu-panel nav { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0; background: rgba(255,250,241,.14); }
  .mobile-menu-panel nav a { min-height: 78px; padding: 14px 16px; display: grid; grid-template-columns: 1fr auto; align-content: center; gap: 5px 12px; background: var(--night); }
  .mobile-menu-panel nav small { grid-column: 1 / -1; color: rgba(255,250,241,.48); font-size: 8px; font-weight: 900; letter-spacing: .16em; }
  .mobile-menu-panel nav span { font-family: var(--serif); font-size: 15px; }
  .mobile-menu-panel nav i { font-style: normal; }
  .mobile-menu-utilities { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .mobile-menu-utilities a { padding: 13px; color: rgba(255,250,241,.68); background: rgba(255,250,241,.08); border-radius: 7px; font-size: 9px; line-height: 1.7; }
  .mobile-menu-utilities b { color: var(--paper-light); font-size: 11px; }
  body.menu-open { overflow: hidden; }
  .footer-night-grid { grid-template-columns: 1fr 1fr; }
  .footer-clinic-mark { grid-column: 1 / -1; }
}

@media (max-width: 1000px) {
  .hero-picture .hero-image { object-position: 70% center; }
  .hero-shade {
    background:
      linear-gradient(90deg, rgba(247,240,227,.84) 0%, rgba(247,240,227,.66) 44%, rgba(247,240,227,.12) 70%, transparent 88%),
      linear-gradient(180deg, rgba(247,240,227,.32) 0%, rgba(247,240,227,.14) 42%, transparent 66%);
  }
  .overline, .hero h1, .hero-lead { max-width: 60%; text-shadow: 0 1px 0 rgba(255,250,241,.5); }
  .overline { max-width: 68%; }
  .hero h1 { font-size: clamp(24px, 4.4vw, 44px); line-height: 1.58; }
  .hero-lead { font-size: 11px; line-height: 1.9; }
  .hero-trust { margin-top: clamp(230px, 31vw, 320px); }
}

@media (min-width: 761px) and (max-width: 1000px) {
  .hero { min-height: 960px; }
  .overline, .hero h1, .hero-lead { max-width: 76%; }
  .hero-trust { margin-top: clamp(120px, 16vw, 160px); }
}

@media (min-width: 761px) {
  .hero-title-line { white-space: nowrap; }
  .section-heading-line { white-space: nowrap; }
}

@media (max-width: 760px) {
  body { padding-bottom: calc(82px + env(safe-area-inset-bottom)); }
  .hero-copy { padding-top: 112px; }
  .garden-panel .home-kit { left: auto; right: 1%; bottom: 5px; width: 72%; height: 245px; transform: none; }
  .garden-panel .home-kit figcaption { right: 5%; bottom: 7px; }
  .shade-guide { gap: 5px; }
  .shade-guide i { width: 16px; height: 25px; }
  .final-bloom { bottom: -14px; width: 560px; max-width: 135vw; opacity: .75; }
  .final-cta .final-content { padding-bottom: 150px; }
  .footer-arrival { padding: 82px 0 76px; background-size: auto 54%; }
  .footer-arrival::after { height: 48px; }
  .footer-arrival-grid { display: flex; flex-direction: column; gap: 34px; }
  .footer-arrival-copy, .footer-hours { width: 100%; padding: 0; }
  .footer-brand { margin-bottom: 30px; }
  .footer-arrival h2 { font-size: 38px; }
  .footer-route-map { order: 2; width: 112%; min-height: 390px; margin-inline: -6%; padding: 0; border-radius: 22px; }
  .footer-route-map::after { border-radius: 16px; }
  .footer-route-map .map-kicker { left: 13px; top: 13px; }
  .footer-route-map > a { left: 13px; bottom: 13px; }
  .footer-hours { order: 3; display: block; padding: 26px 0; }
  .footer-night { padding-top: 62px; }
  .footer-night-grid { display: block; }
  .footer-priority, .footer-sitemap { margin-top: 50px; }
  .footer-sitemap > div { gap: 0 18px; }
  .footer-bottom { margin-top: 50px; display: grid; }
  .footer-bottom > div { justify-content: space-between; gap: 18px; }
  .mobile-call {
    display: flex;
    min-height: 66px;
    padding: 9px 17px;
    color: white;
    background: linear-gradient(135deg, #983f2f, #6f281f);
  }
  .mobile-call span { max-width: 44%; font-size: 9px; line-height: 1.5; }
  .mobile-call strong { font-size: 11px; }
  .mobile-call b { font-size: 17px; }
  .mobile-call.is-hidden { opacity: 0; pointer-events: none; transform: translateY(90px); }
}

@media (max-width: 620px) {
  .hero-picture .hero-image { object-position: 70% center; }
  .hero-shade {
    background:
      linear-gradient(90deg, rgba(247,240,227,.82) 0%, rgba(247,240,227,.64) 44%, rgba(247,240,227,.12) 70%, transparent 88%),
      linear-gradient(180deg, rgba(247,240,227,.34) 0%, rgba(247,240,227,.16) 42%, transparent 66%);
  }
  .overline, .hero h1, .hero-lead {
    max-width: 60%;
    text-shadow: 0 1px 0 rgba(255,250,241,.5);
  }
  .overline { max-width: 68%; }
  .hero h1 { font-size: clamp(20px, 5.9vw, 24px); line-height: 1.62; }
  .hero-lead { font-size: 10px; line-height: 1.9; }
  .hero-trust { margin-top: clamp(210px, 40vw, 250px); }
  .feeling-grid { margin-bottom: 54px; }
  .memory-collage { min-height: 480px; }
  .turning-point {
    padding: 20px 18px;
    border-radius: 38px 38px 14px 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header, .header-main, .header-trail, .mobile-menu-panel, .mobile-call { transition: none !important; }
}

@media print {
  .site-header, .mobile-call, .mobile-menu-panel { display: none !important; }
  body { padding-bottom: 0; }
}
