@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#f7f6f0;--ink:#20291f;--green:#d9e6a9;--muted:#58604e;--line:#d7dacd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:3px solid #627a25;outline-offset:5px}.skip{position:absolute;left:20px;top:-100px;background:white;padding:10px;z-index:10}.skip:focus{top:8px}header{max-width:1400px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:28px 5%;border-bottom:1px solid var(--line)}.brand{font-family:Manrope,sans-serif;font-size:29px;font-weight:800;letter-spacing:-1.6px;white-space:nowrap}.brand span{color:#67783f;font-size:32px;margin-left:5px}nav{display:flex;align-items:center;gap:32px;font-size:14px}nav a:hover{text-decoration:underline;text-underline-offset:5px}.nav-book{border:1px solid var(--ink);border-radius:30px;padding:10px 20px}.nav-book span{margin-left:14px}.hero{max-width:1400px;margin:auto;display:grid;grid-template-columns:1.05fr 1fr;gap:5%;padding:85px 5% 70px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-weight:600;font-size:11px;margin:0 0 24px}h1,h2,h3{font-family:Manrope,sans-serif;line-height:1.1;letter-spacing:-2px;font-weight:500;margin:0}h1{font-size:clamp(42px,4.5vw,67px)}em{font-family:Georgia,serif;font-weight:400}h1 em,h2 em{color:#687c3f}.intro{font-size:18px;max-width:440px;line-height:1.7;margin:26px 0 30px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--ink);color:var(--paper);border-radius:50px;padding:15px 24px;font-size:14px;font-weight:500;transition:background .2s,transform .2s}.button:hover{background:#3f5130;transform:translateY(-2px)}.button span{font-size:20px}.hero-note{color:var(--muted);font-size:12px;margin:20px 0 0}.art{height:455px;position:relative;background:#e8eadf;border-radius:48% 48% 8px 8px;display:flex;align-items:center;justify-content:center;isolation:isolate}.art:before{content:'';position:absolute;width:300px;height:300px;border:1px solid #ced3bd;border-radius:50%;z-index:-1}.art-label,.art-bottom{position:absolute;font-size:9px;letter-spacing:2px}.art-label{top:38px}.art-bottom{bottom:25px}.card{position:absolute;width:160px;height:266px;border:1px solid #6f7858;border-radius:10px;background:#f8f5e9;display:flex;flex-direction:column;align-items:center;padding:12px;box-shadow:0 12px 20px #28321b12;color:#52613d}.card:after{content:'';position:absolute;inset:6px;border:1px solid #a4ac8f;border-radius:5px;pointer-events:none}.card svg{height:188px;width:140px}.card-number{font-family:Georgia,serif;font-size:12px}.card-name{font-size:9px;letter-spacing:1.8px;margin-top:7px}.sun-card{transform:translateX(-101px) rotate(-15deg);background:#ebe7d8}.choice-card{transform:translateY(-14px) rotate(0deg);z-index:2;background:#e0e9bc}.growth-card{transform:translateX(101px) rotate(15deg)}.principles{border-block:1px solid var(--line);display:flex;justify-content:space-evenly;align-items:center;gap:20px;padding:23px 5%;font-size:12px}.principles span:nth-child(even){font-size:25px;color:#6c7c48}.section{max-width:1240px;margin:auto;padding:100px 5%}h2{font-size:clamp(35px,3.7vw,49px)}.about{display:grid;grid-template-columns:1fr 1.1fr;gap:12%}.about-mark{font-family:Manrope,sans-serif;font-size:110px;letter-spacing:-12px;line-height:1.4;margin-top:38px}.about-mark span{color:#7d8c55;font-size:94px;margin:0 10px}.small-caption{font-size:9px;letter-spacing:1.5px;max-width:250px}.about-text p{margin:0 0 21px;color:#4c5546}.about-text .lead{font-size:20px;color:var(--ink);line-height:1.6}blockquote{margin:28px 0 0;border-left:2px solid #819455;padding-left:24px;font-family:Georgia,serif;font-size:24px;line-height:1.45}.reading-section{background:#e9eddf}.reading-grid{display:grid;grid-template-columns:1fr .88fr;gap:13%;align-items:center}.reading-grid>div>p:not(.eyebrow){max-width:430px;color:#4c5546}.booking{background:var(--paper);border:1px solid #ccd2bf;border-radius:14px;padding:36px}.booking-top{display:flex;justify-content:space-between}.booking h3{font-size:30px;letter-spacing:-1px}.price{font-family:Manrope,sans-serif;font-size:54px;line-height:1.4;letter-spacing:-2px;margin:20px 0}.price span{font-family:'DM Sans',sans-serif;font-size:13px;letter-spacing:0;color:var(--muted)}.booking ul{padding:22px 0;list-style:none;border-top:1px solid var(--line);margin:0}.booking li{font-size:14px;padding:6px 0}.booking li:before{content:'✳';margin-right:10px;color:#637c3d}.booking .button{width:100%}.booking-note{font-size:11px;text-align:center;margin-bottom:0;color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6%;margin-top:50px}.steps>div{border-top:1px solid #b9c0a9;padding-top:22px}.steps span{font-size:10px;letter-spacing:1.4px;color:#5b6949}.steps h3{font-size:24px;letter-spacing:-.8px;margin-top:20px}.steps p{font-size:14px;color:#515a48}.journal{border-top:1px solid var(--line);padding-top:80px}.journal-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.journal-heading>p{max-width:275px;color:#515a48;font-size:15px}.posts{margin-top:40px}.journal-empty{border-block:1px solid var(--line);padding:32px 0;display:flex;gap:30px;align-items:center}.journal-empty>span:first-child{font-size:50px;color:#71834a}.journal-empty h3{font-size:23px;letter-spacing:-.6px}.journal-empty p{font-size:14px;color:var(--muted);max-width:510px;margin-bottom:0}.coming{font-size:9px;letter-spacing:1.5px;margin-left:auto;white-space:nowrap}.post{display:block;border-bottom:1px solid var(--line);padding:25px 0}.post h3{font-size:26px;letter-spacing:-.6px}.post p{color:var(--muted)}.post time{font-size:12px}.closing{text-align:center;background:var(--green);padding:65px 5%}.closing h2{font-size:clamp(38px,4vw,57px);margin-bottom:25px}.closing .eyebrow{margin-bottom:18px}footer{max-width:1400px;margin:auto;padding:30px 5%;display:flex;gap:24px;align-items:center;justify-content:space-between}footer p,footer>span{font-size:11px;color:var(--muted)}@media(min-width:1500px){.hero{padding-block:100px}.art{height:510px}}@media(max-width:900px){nav{gap:19px}.hero{gap:3%;padding-top:55px}.art{height:390px}.card{width:135px;height:230px}.card svg{height:155px;width:115px}.sun-card{transform:translateX(-70px) rotate(-15deg)}.growth-card{transform:translateX(70px) rotate(15deg)}.about,.reading-grid{gap:7%}.booking{padding:25px}.section{padding-block:75px}footer p{display:none}}@media(max-width:650px){header{padding:20px 6%;flex-wrap:wrap;gap:18px}.brand{font-size:26px}nav{gap:19px;width:100%;justify-content:space-between;font-size:12px}.nav-book{padding:7px 12px}.nav-book span{margin-left:2px}.hero{grid-template-columns:1fr;padding:45px 6% 35px;gap:35px}h1{font-size:45px}.intro{font-size:16px}.art{height:380px;width:100%;max-width:450px;justify-self:center}.card{width:145px;height:244px}.card svg{height:173px;width:125px}.sun-card{transform:translateX(-81px) rotate(-15deg)}.growth-card{transform:translateX(81px) rotate(15deg)}.principles{gap:12px;flex-wrap:wrap;padding:18px 6%;font-size:10px}.principles span:nth-child(even){font-size:18px}.principles span:last-child{width:100%;text-align:center}.section{padding:58px 6%}.about,.reading-grid{grid-template-columns:1fr;gap:35px}.about-mark{display:none}.small-caption{margin-top:25px}.about-text .lead{font-size:18px}.steps{grid-template-columns:1fr;gap:25px;margin-top:32px}.steps h3{margin-top:12px}.steps p{margin-bottom:0}.journal-heading{display:block}.journal-heading>p{max-width:none;margin-top:24px}.journal-empty{gap:17px;align-items:flex-start;flex-wrap:wrap}.journal-empty>div{flex:1}.journal-empty h3{font-size:22px}.coming{margin-left:54px}.closing{padding:50px 6%}footer{flex-wrap:wrap;padding:25px 6%}footer>span{margin-left:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.price{font-size:clamp(28px,3vw,38px);letter-spacing:-1px}.price span{display:block;margin-top:6px}

/* The illustrated tarot spread. */
.tarot-art{margin:0;background:transparent;border-radius:0;isolation:auto;display:flex;flex-direction:column;justify-content:center;gap:8px;height:auto;min-width:0}
.tarot-art:before{display:none}
.tarot-cards{display:block;width:100%;height:auto;max-width:560px;object-fit:contain}
.tarot-art .art-bottom{position:static;display:block;text-align:center;font-size:9px;letter-spacing:2px;margin-top:-30px;padding-bottom:8px}
@media(max-width:650px){.tarot-art{height:auto;width:100%;max-width:450px}.tarot-art .art-bottom{font-size:9px;margin-top:-22px}}

.tarot-art .art-label{top:12px;left:0;right:0;text-align:center;font-family:inherit;font-size:9px;letter-spacing:2px}

.hero-connect {
  display: inline-grid;
  grid-template-columns: 1.25rem auto 1.25rem;
  column-gap: 0.75rem;
  font-size: 1rem;
  text-align: center;
}
.hero-connect .hero-connect-label {
  grid-column: 2;
  font-size: inherit;
}
.hero-connect [aria-hidden] {
  grid-column: 3;
  justify-self: end;
}

.hero-action {
  display: grid;
  width: fit-content;
  max-width: 100%;
  justify-items: center;
  text-align: center;
}

.about-portrait {
  display: block;
  width: min(100%, 23rem);
  height: auto;
  margin-top: 1.75rem;
  border: 1px solid var(--line);
  border-radius: 1rem;
}

.hero {
  background: #ead8d3;
  box-shadow: 0 0 0 100vmax #ead8d3;
  clip-path: inset(0 -100vmax);
}

.hero .hero-note,
.tarot-art .art-label,
.tarot-art .art-bottom {
  color: var(--ink);
  font-weight: 600;
}

.hero .hero-note {
  font-size: 14px;
}

.tarot-art .art-label,
.tarot-art .art-bottom {
  font-size: 12px;
  letter-spacing: 1.5px;
  line-height: 1.6;
}

/* Readable text sizes across the site. */
body {
  font-size: 17px;
  line-height: 1.75;
}

nav {
  font-size: 15px;
  font-weight: 500;
}

.button {
  font-size: 16px;
}

.eyebrow,
.small-caption,
.steps span,
.coming {
  font-size: 12px;
  line-height: 1.7;
  font-weight: 600;
  letter-spacing: 1.2px;
}

.small-caption {
  max-width: 320px;
}

.principles {
  font-size: 15px;
  font-weight: 500;
}

.price span {
  font-size: 15px;
}

.booking li,
.steps p,
.journal-heading > p,
.journal-empty p {
  font-size: 16px;
  line-height: 1.75;
}

.booking-note,
footer p,
footer > span,
.post time {
  font-size: 13px;
  line-height: 1.7;
}

.coming {
  white-space: normal;
}

h1 em,
h2 em {
  color: #53652f;
}

@media (max-width: 650px) {
  nav {
    flex-wrap: wrap;
    gap: 12px 16px;
    font-size: 14px;
  }

  .principles {
    font-size: 14px;
  }

  .intro {
    font-size: 17px;
  }
}

.about {
  row-gap: 3rem;
}
.about-intro {
  margin: 1rem 0 0;
  color: var(--muted);
}
.about-connect {
  margin-top: 1.75rem;
}
.care-note,
.reading-boundaries {
  grid-column: 1 / -1;
  border-top: 1px solid var(--line);
  padding-top: 2rem;
}
.care-note h3,
.reading-boundaries h3 {
  font-size: 24px;
  letter-spacing: -0.5px;
  line-height: 1.3;
}
.care-note p,
.reading-boundaries p {
  max-width: 75ch;
  color: #4c5546;
  line-height: 1.75;
  margin: 1rem 0 0;
}
.reading-grid {
  row-gap: 2.5rem;
}
.reading-takeaway {
  margin-top: 1.5rem;
  padding-left: 1.1rem;
  border-left: 3px solid var(--rose-line);
  font-size: 16px;
  line-height: 1.75;
}

.about {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  grid-template-areas:
    "heading welcome"
    "profile story"
    "training story"
    "care care";
  column-gap: clamp(2rem, 6vw, 5rem);
  row-gap: 2rem;
  align-items: start;
}
.about-heading { grid-area: heading; }
.about-welcome {
  grid-area: welcome;
  margin: 0;
  font-size: 20px;
  line-height: 1.65;
}
.about-profile {
  grid-area: profile;
  margin: 0;
  width: 100%;
  max-width: 23rem;
}
.about-profile .about-portrait { margin-top: 0; }
.about-signature {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1.25rem;
}
.about-profile .about-mark {
  display: block;
  flex-shrink: 0;
  font-size: 48px;
  line-height: 1.2;
  letter-spacing: -5px;
  margin: 0;
}
.about-profile .about-mark span {
  font-size: 44px;
  margin: 0 5px;
}
.about-signature .small-caption {
  margin: 0;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.8px;
  line-height: 1.85;
  text-transform: uppercase;
  color: #53652f;
  border-left: 1px solid var(--line);
  padding-left: 1rem;
}
.about-signature .small-caption > span {
  display: block;
}
.about-training {
  grid-area: training;
  max-width: 23rem;
  border-top: 1px solid var(--line);
  padding-top: 1.5rem;
}
.about-training h3 {
  font-size: 22px;
  letter-spacing: -0.5px;
  line-height: 1.3;
  margin-bottom: 1rem;
}
.about-training p {
  font-size: 16px;
  line-height: 1.75;
  color: #4c5546;
  margin: 0 0 1rem;
}
.about-training p:last-child { margin-bottom: 0; }
.about-text {
  grid-area: story;
  min-width: 0;
}
.about-text h3 {
  font-family: Georgia, serif;
  font-size: clamp(32px, 3.2vw, 40px);
  font-style: italic;
  font-weight: 400;
  color: #53652f;
  letter-spacing: -0.8px;
  line-height: 1.2;
  margin-bottom: 1.5rem;
}
.about-text h3::after {
  content: "";
  display: block;
  width: 4.5rem;
  height: 8px;
  margin-top: 0.5rem;
  border-bottom: 3px solid var(--rose-line);
  border-radius: 50%;
  transform: rotate(-3deg);
}
.about-text blockquote { line-height: 1.5; }
.about .care-note {
  grid-area: care;
  margin-top: 0.5rem;
}

/* The homepage introduces the same warm, conversational visual language. */
.hero-copy > .eyebrow {
  font-size: 17px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0;
  text-transform: none;
  color: #53652f;
}
.principles {
  background: #e9eddf;
  border-color: #cfd7c4;
  padding-block: 25px;
}
@media (max-width: 650px) {
  header {
    position: relative;
    row-gap: 20px;
  }
  header > .brand {
    font-size: 24px;
    letter-spacing: -1.3px;
  }
  header > .brand span {
    font-size: 27px;
  }
  nav {
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 16px;
  }
  nav .nav-book {
    position: absolute;
    top: 22px;
    right: 6%;
    font-size: 12px;
    padding: 7px 10px;
    white-space: nowrap;
  }
  .hero {
    padding-top: 38px;
    gap: 28px;
  }
  .hero h1 {
    font-size: clamp(34px, 9.3vw, 42px);
    line-height: 1.12;
    letter-spacing: -1.5px;
  }
  .hero .intro {
    margin: 22px 0 26px;
  }
  .principles {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 8px;
    padding: 24px 6%;
    font-size: clamp(13px, 3.5vw, 15px);
    line-height: 1.5;
    text-align: center;
  }
  .principles span:nth-child(even) {
    font-size: 17px;
    line-height: 1;
  }
  .principles span:last-child {
    width: auto;
  }
}

/* The booking section pairs an open introduction with a clear offer card. */
.reading-grid {
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  column-gap: clamp(2rem, 6vw, 5rem);
  row-gap: 3rem;
}
.reading-grid > div > .eyebrow {
  max-width: 29rem;
  margin-bottom: 1.5rem;
  color: #53652f;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0;
  text-transform: none;
}
.reading-grid h2 {
  font-size: clamp(40px, 4.2vw, 54px);
  line-height: 1.12;
  letter-spacing: -1.8px;
}
.reading-grid > div > p:not(.eyebrow) {
  max-width: 46ch;
}
.reading-grid .reading-takeaway {
  background: var(--rose-soft);
  border-radius: 0 12px 12px 0;
  margin-top: 1.75rem;
  margin-bottom: 0;
  padding: 18px 20px;
}
.booking {
  border-color: #cbd3c2;
  border-radius: 22px;
  padding: clamp(26px, 3.4vw, 42px);
  box-shadow: 0 12px 32px #20291f08;
}
.booking-top {
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.75rem;
}
.booking-top .eyebrow {
  margin: 0;
  padding: 6px 12px;
  border-radius: 30px;
  background: var(--rose-soft);
  font-size: 11px;
  letter-spacing: 1px;
}
.booking-top > span[aria-hidden] {
  color: #53652f;
}
.booking h3 {
  font-size: clamp(28px, 2.8vw, 34px);
  line-height: 1.2;
}
.booking .price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 12px;
  font-size: 48px;
  letter-spacing: -1.5px;
  margin: 18px 0 22px;
  line-height: 1.2;
}
.booking .price span {
  display: inline;
  margin: 0;
}
.booking ul {
  padding: 18px 0 24px;
}
.booking li {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr);
  gap: 10px;
  padding: 8px 0;
  line-height: 1.55;
}
.booking li::before {
  content: "✳";
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: #71834a;
}
.booking .button {
  padding-block: 16px;
}
.booking-note {
  margin-top: 14px;
}
.reading-boundaries {
  display: grid;
  grid-template-columns: minmax(140px, 0.45fr) minmax(0, 1.55fr);
  column-gap: 2rem;
  row-gap: 0.75rem;
  padding-top: 2rem;
}
.reading-boundaries h3 {
  grid-row: 1 / 3;
  font-family: Georgia, serif;
  font-size: 28px;
  font-style: italic;
  font-weight: 400;
  color: #53652f;
  letter-spacing: -0.5px;
  line-height: 1.2;
}
.reading-boundaries p {
  margin: 0;
  font-size: 15px;
}
@media (max-width: 650px) {
  .reading-grid {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 2rem;
  }
  .reading-grid h2 {
    font-size: clamp(36px, 9.5vw, 46px);
    letter-spacing: -1.3px;
  }
  .reading-grid .reading-takeaway {
    padding: 16px 18px;
  }
  .booking {
    padding: 24px;
    border-radius: 18px;
  }
  .booking .price {
    font-size: 44px;
  }
  .reading-boundaries {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 1rem;
  }
  .reading-boundaries h3 {
    grid-row: auto;
  }
}

/* A named journal with its introduction grouped beneath the title. */
.journal-heading {
  display: block;
  max-width: 48rem;
}
.journal-heading h2 {
  font-family: Georgia, serif;
  font-style: italic;
  font-weight: 400;
  color: #53652f;
  font-size: clamp(35px, 4.2vw, 54px);
  line-height: 1.15;
  letter-spacing: -1.5px;
}
.journal-flourish {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
  color: var(--rose-line);
  font-size: 26px;
  line-height: 1;
}
.journal-flourish::before {
  content: "";
  width: 56px;
  height: 6px;
  border-bottom: 2px solid currentColor;
  border-radius: 50%;
  transform: rotate(-3deg);
}
.journal-heading > .journal-subtitle {
  max-width: none;
  margin: 18px 0 0;
  font-size: 20px;
  line-height: 1.5;
  color: var(--ink);
}
.journal-heading > .journal-description {
  max-width: 55ch;
  margin: 8px 0 0;
  font-size: 16px;
  line-height: 1.75;
  color: var(--muted);
}

/* Soft sage and rose accents connect the sections. */
:root {
  --green: #dce3d3;
  --rose: #ead8d3;
  --rose-soft: #f1e6e1;
  --rose-line: #b48b80;
}
.hero {
  background: var(--rose);
  box-shadow: 0 0 0 100vmax var(--rose);
}
.about-text blockquote {
  background: var(--rose-soft);
  border-left-color: var(--rose-line);
  border-radius: 0 12px 12px 0;
  padding: 20px 24px;
}
.journal-empty {
  background: var(--rose-soft);
  border-color: #d9c4bd;
  border-radius: 12px;
  padding-inline: clamp(18px, 3vw, 32px);
}
@media (max-width: 650px) {
  .about {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "heading"
      "welcome"
      "profile"
      "training"
      "story"
      "care";
    row-gap: 1.75rem;
  }
  .about-welcome { font-size: 18px; }
  .about-training { max-width: none; }
}

/* A personal invitation and a signature to close the page. */
.closing { background: #28372c; color: var(--paper); text-align: left; padding: 76px 5%; border-top: 4px solid var(--rose-line); }
.closing-inner { max-width: 1116px; margin: auto; display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 80px; align-items: center; }
.closing .eyebrow { color: #e1c3b8; margin-bottom: 20px; }
.closing h2 { font-size: clamp(44px, 5.5vw, 72px); letter-spacing: -2px; margin-bottom: 22px; }
.closing h2 em { color: #e8cfc5; }
.closing-note { max-width: 48ch; font-size: 18px; line-height: 1.8; color: #e1e6db; margin: 0 0 30px; }
.closing .button { background: #ead8d3; color: #28372c; padding: 16px 26px; }
.closing .button:hover { background: #f3e6df; }
.closing a:focus-visible { outline-color: #ead8d3; }
.closing-seal { width: 226px; height: 226px; border: 1px solid #91a18a; border-radius: 50% 50% 8px 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; transform: rotate(5deg); }
.seal-star { color: #dfb9aa; font-size: 56px; line-height: 1; }
.seal-note { text-align: center; font-family: Georgia, serif; font-size: 21px; font-style: italic; line-height: 1.45; color: #e6e8da; }
.site-footer { display: block; padding: 42px 5% 22px; max-width: 1240px; }
.footer-main { display: grid; grid-template-columns: 1fr 1.3fr auto; gap: 40px; align-items: center; padding-bottom: 34px; }
.footer-identity { display: flex; align-items: center; gap: 19px; }
.footer-mark { font-family: Manrope, sans-serif; font-size: 48px; font-weight: 400; letter-spacing: -3px; line-height: 1; white-space: nowrap; }
.footer-mark span { font-family: 'Segoe UI Symbol', sans-serif; color: #7d8c55; font-size: 44px; margin: 0 4px; letter-spacing: 0; }
.site-footer .footer-caption { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; line-height: 1.75; color: #53652f; margin: 0; }
.footer-contact p { display: block; font-family: Georgia, serif; font-style: italic; font-size: 19px; line-height: 1.5; color: var(--ink); margin: 0 0 8px; }
.footer-contact a { font-size: 14px; color: #53652f; text-decoration: underline; text-underline-offset: 4px; }
.footer-nav { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; width: auto; font-size: 14px; }
.footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; border-top: 1px solid #d9c4bd; padding-top: 19px; }
.footer-bottom p, .footer-bottom > span, .footer-bottom > a { display: block; margin: 0; font-size: 12px; color: #58604e; }
.footer-bottom a:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 900px) {
  .closing-inner { gap: 40px; grid-template-columns: minmax(0, 1fr) 190px; }
  .closing-seal { width: 180px; height: 205px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 30px; }
  .footer-nav { flex-direction: row; grid-column: 1 / -1; gap: 26px; }
}
@media (max-width: 650px) {
  .closing { padding: 50px 6%; }
  .closing-inner { grid-template-columns: minmax(0, 1fr); gap: 35px; }
  .closing h2 { font-size: 48px; }
  .closing-note { font-size: 17px; }
  .closing-seal { border: 0; border-top: 1px solid #73816d; border-radius: 0; transform: none; width: 100%; height: auto; padding-top: 25px; flex-direction: row; gap: 22px; justify-content: flex-start; }
  .seal-star { font-size: 38px; }
  .seal-note { text-align: left; font-size: 18px; }
  .seal-note br { display: none; }
  .site-footer { padding: 32px 6% 24px; }
  .footer-main { grid-template-columns: minmax(0, 1fr); gap: 25px; padding-bottom: 27px; }
  .footer-nav { grid-column: auto; gap: 25px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* Give the phone layout a clearer reading order and room to tap. */
@media (max-width: 650px) {
  .about {
    grid-template-areas: "heading" "welcome" "profile" "story" "training" "care";
  }
  header nav a:not(.nav-book), .footer-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding-inline: 8px;
  }
  header .nav-book { min-height: 44px; display: inline-flex; align-items: center; }
  .footer-contact a, .footer-bottom > a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  .footer-nav { gap: 12px; justify-content: space-between; }
  .reading-grid { display: flex; flex-direction: column; align-items: stretch; gap: 28px; }
  .reading-grid > div:first-child { display: contents; }
  .reading-grid > div:first-child > .eyebrow { margin: 0 0 -8px; }
  .reading-grid > div:first-child > p:not(.eyebrow) { margin: 0; max-width: none; }
  .reading-grid .booking { order: 1; }
  .reading-grid .reading-takeaway { order: 2; }
  .reading-grid .reading-boundaries { order: 3; }
  .journal-empty { flex-direction: column; align-items: flex-start; gap: 16px; }
  .journal-empty > span:first-child { font-size: 36px; line-height: 1; }
  .journal-empty > div { flex: none; width: 100%; }
  .journal-empty .coming { margin: 0; }
  .seal-note br { display: initial; }
}

/* Fixed-size line artwork keeps the small star consistent across phones. */
.signature-image { display: block; width: 70px; height: auto; }
.about-profile .about-mark, .footer-mark { line-height: 0; }
@media (max-width: 650px) { .signature-image { width: 64px; } }
.about-profile .about-mark span,
.footer-mark span {
  display: inline-block;
  width: 12px;
  height: 12px;
  font-size: 0 !important;
  letter-spacing: 0;
  color: #3d502d;
  margin-inline: 4px;
  vertical-align: 8px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1v14M1 8h14M3 3l10 10M3 13L13 3' fill='none' stroke='%233d502d' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (max-width: 650px) {
  .about-profile .about-mark span, .footer-mark span {
    width: 9px;
    height: 9px;
    margin-inline: 3px;
    vertical-align: 9px;
  }
}

/* A centered label and balanced arrow space for every pill-shaped action. */
.button, header .nav-book {
  display: inline-grid;
  grid-template-columns: 20px minmax(0, 1fr) 20px;
  column-gap: 12px;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 16px 24px;
  font-size: 16px;
  line-height: 1.4;
  text-align: center;
}
.button > .button-label, header .nav-book > .button-label {
  grid-column: 2;
  margin: 0;
  font-size: inherit;
  line-height: inherit;
}
.button > [aria-hidden], header .nav-book > [aria-hidden] {
  grid-column: 3;
  justify-self: end;
  margin: 0;
  font-size: 20px;
  line-height: 1;
}
.booking .button, .closing .button { padding: 16px 24px; }
header .nav-book {
  min-height: 44px;
  grid-template-columns: 16px minmax(0, 1fr) 16px;
  column-gap: 8px;
  padding: 10px 18px;
  font-size: 14px;
}
header .nav-book > [aria-hidden] { font-size: 16px; }
.journal-read > span[aria-hidden], .journal-visit > span[aria-hidden] {
  margin: 0;
  font-size: 18px;
  line-height: 1;
}
@media(max-width:650px) {
  header .nav-book { padding: 10px; font-size: 12px; column-gap: 6px; }
}
@media(max-width:360px) {
  header > .brand { font-size: 22px; }
  header > .brand span { font-size: 24px; }
  header .nav-book {
    grid-template-columns: 12px minmax(0, 1fr) 12px;
    column-gap: 4px;
    padding-inline: 8px;
    font-size: 11px;
  }
  header .nav-book > [aria-hidden] { font-size: 14px; }
}

/* A small, steady accent beside the business name on every page. */
header > .brand {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
header > .brand > span {
  display: block;
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  margin: 0;
  font-size: 0;
  line-height: 0;
  letter-spacing: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1v14M1 8h14M3 3l10 10M3 13L13 3' fill='none' stroke='%233d502d' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media(max-width:650px) {
  header > .brand { gap: 7px; }
  header > .brand > span { flex-basis: 12px; width: 12px; height: 12px; }
}
/* Match the visible ink centers, rather than the transparent image/line boxes. */
header > .brand > span { transform: translateY(3.5px); }
.about-signature .small-caption, .site-footer .footer-caption { transform: translateY(5px); }
@media(max-width:650px) {
  header > .brand > span { transform: translateY(3px); }
  .about-signature .small-caption, .site-footer .footer-caption { transform: translateY(4px); }
}

/* Shared line artwork: never let a phone substitute an emoji or font glyph. */
:root { --asterisk-art: url('/asterisk.svg'); }
header > .brand > span {
  font-size: 0 !important;
  background-image: var(--asterisk-art);
}
.principles span:nth-child(even), .seal-star, .booking li::before,
.journal-flourish::after {
  display: inline-block;
  flex-shrink: 0;
  font-size: 0 !important;
  line-height: 0;
  background: currentColor;
  -webkit-mask: var(--asterisk-art) center / contain no-repeat;
  mask: var(--asterisk-art) center / contain no-repeat;
}
.principles span:nth-child(even) {
  width: 16px; height: 16px; flex-basis: 16px; color: #3d502d;
}
.booking li::before {
  content: ''; width: 12px; height: 12px; color: #3d502d;
  /* Center the artwork on the first text line, including wrapped items. */
  font-size: inherit !important;
  height: 1.55em;
  -webkit-mask-size: 12px 12px;
  mask-size: 12px 12px;
}
.journal-flourish { font-size: 0 !important; }
.journal-flourish::after { content: ''; width: 20px; height: 20px; }
.seal-star { width: 44px; height: 44px; }
@media(max-width:650px) {
  .principles span:nth-child(even) { width: 12px; height: 12px; flex-basis: 12px; }
  .seal-star { width: 28px; height: 28px; }
}
