:root {
  --paper: #faf6f5;
  --cream: #f2e8ec;
  --pink: #f0e2e8;
  --ink: #382a36;
  --muted: #695962;
  --accent: #6a4a60;
  --border: #e4d6de;
  --rose: #805d73;
  --rose-light: #b68da3;
  --plum: #3e2c3b;
}

body {
  background: radial-gradient(ellipse 74% 37rem at 79% 5rem, #f2e7ed 0%, transparent 100%), var(--paper);
}

::selection { background: #e6cbd8; color: var(--ink); }
h1 em, h2 em, blockquote em { color: var(--rose); }
.button:hover { background: #52394b; }
.text-link, .hero-text-link { border-color: #b995a8; }
.text-link:hover, .hero-text-link:hover { color: #5c3850; }
.site-header { background: rgba(250, 246, 245, .93); }
.desktop-nav a { color: var(--muted); }
.nav-wrap .brand { gap: 10px; min-width: 0; }
.brand { color: var(--accent); }
.brand > svg { width: 45px; height: 45px; }
.brand-name {
  font-size: clamp(33px, 3.3vw, 47px);
  font-weight: 500;
  letter-spacing: -.055em;
  overflow-wrap: anywhere;
}
.brand-name em { color: var(--rose); font-weight: 400; }
.brand-subtitle { color: var(--muted); font-size: 7px; letter-spacing: .24em; }

.hero { position: relative; gap: 42px; }
.hero-copy h1 {
  font-size: clamp(57px, 6.7vw, 101px);
  letter-spacing: -.045em;
  line-height: .92;
  margin: 25px 0;
}
.hero-copy h1 em { color: var(--rose); }
.hero-copy > p { max-width: 350px; font-size: 14px; }
.hero-bottom { color: #6d5865; }
.small-divider { background: #c7aabd; }
.hero-visual::before {
  position: absolute;
  inset: -12px -11px 11px 10px;
  border: 1px solid #c4a5b6;
  border-radius: 178px 3px 3px 3px;
  content: "";
  pointer-events: none;
}
.hero-image { background: #ddcbd4; }
.hero-image::after { background: linear-gradient(transparent, #33222e92); }
.hero-stamp { background: #f1e3ea; border-color: var(--paper); color: var(--accent); }
.hero-mini { background: #fcf6f8; }
.hero-mini span, .hero-side-note { color: var(--rose); }
.hero-side-note { right: -32px; }

.care-ribbon { background: #eee1e9; border-color: var(--border); }
.care-ribbon .lunar-ribbon {
  width: 88%;
  min-height: 64px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 22px;
  transform: none;
  color: var(--rose);
}
.care-ribbon .lunar-ribbon .moon-phases {
  display: block;
  width: 148px;
  height: 22px;
  color: var(--rose);
}
.care-ribbon .lunar-ribbon span { color: var(--rose); }
.care-ribbon .lunar-ribbon .ribbon-caption {
  font: 600 9px var(--sans);
  letter-spacing: .23em;
  text-transform: uppercase;
  text-align: right;
}
.round-arrow { color: var(--accent); }
.section-footnote { color: var(--rose); }
.story-section { background: #f2e7ec; }
.story-quote { background: #fcf5f8; color: var(--rose); border-color: var(--border); }
.story-mark {
  position: absolute;
  left: -18px;
  bottom: 6px;
  width: 70px;
  height: 70px;
  color: var(--rose);
  transform: rotate(-9deg);
}
.story-copy p em, .about-story p em { color: var(--accent); }
.values svg, .section-heading > svg, .page-heading > svg,
.gentle-note svg, .article-byline, .article-signature svg,
.article-signature em, .contact-location > svg, .contact-extra svg,
.quote-section > svg, .faqs summary svg, .not-found > svg {
  color: var(--rose);
}
.journal-section { background: #f5edf1; border-color: var(--border); }
.post-category { background: #faf2f6ed; color: var(--accent); }
.post-meta, .post-card h3 svg, .results-note { color: var(--rose); }
.filter { color: var(--accent); }
.filter.active { background: #eadbe4; border-color: #d6bdcb; color: var(--accent); }
.search-field, .detail-copy .detail-lead, .care-steps svg { color: var(--rose); }
.article-body > p:first-child { color: var(--accent); }
.contact-options select { background: #f7eff3; }
.contact-location { background: #fbf2f6f5; }
.contact-unavailable { background: #f0e3eb; border-color: var(--border); color: var(--accent); }
.contact-banner, .quote-section { background: #eadbe4; }
.contact-banner .container > svg { color: #c8aabd; }
.contact-banner h2 em, .banner-location { color: var(--rose); }
.site-footer { background: var(--plum); color: #f0e5ed; }
.footer-brand, .footer-brand .brand-name em, .footer-brand .brand-subtitle { color: #f3e7ee; }
.footer-brand .brand-name { font-size: clamp(32px, 3.3vw, 45px); }
.footer-top p, .footer-label, .footer-bottom, .footer-bottom a { color: #d8c1d0; }
.footer-top > div:not(:first-child) > a, .footer-location { color: #f0e2eb; }
.footer-note svg { color: #c8a4ba; }

@media (max-width: 1100px) {
  .hero { gap: 25px; }
  .hero-visual::before { border-top-left-radius: 153px; }
}

@media (max-width: 800px) {
  .hero { gap: 19px; }
  .hero-copy h1 { font-size: clamp(49px, 7.15vw, 67px); }
  .hero-copy > p { font-size: 12px; }
  .hero-visual::before { border-top-left-radius: 125px; }
  .hero-side-note { right: -24px; }
  .care-ribbon .lunar-ribbon { grid-template-columns: auto auto; justify-content: center; }
  .care-ribbon .lunar-ribbon .ribbon-caption { display: none; }
  .story-mark { left: -13px; width: 54px; height: 54px; }
}

@media (max-width: 560px) {
  .nav-wrap .brand { gap: 7px; }
  .brand > svg { width: 34px; height: 34px; }
  .brand-name { font-size: clamp(28px, 7vw, 34px); }
  .brand-subtitle { font-size: 6px; }
  .hero { gap: 31px; }
  .hero-copy h1 { font-size: clamp(45px, 14.8vw, 70px); margin: 23px 0; }
  .hero-copy > p { max-width: 305px; font-size: 13px; }
  .hero-visual::before { inset: -7px -6px 7px 6px; border-top-left-radius: 127px; }
  .hero-side-note { right: -19px; }
  .hero-mini span { font-size: 11px; }
  .care-ribbon .lunar-ribbon { gap: 15px; min-height: 57px; }
  .care-ribbon .lunar-ribbon .moon-phases { width: 109px; }
  .care-ribbon .lunar-ribbon span { font-size: 19px; }
}
