/* Spell Cottage — ritual practice, parchment, candlelight and warm shadows. */
:root {
  --cream: #f6f0e5;
  --paper: #fffaf1;
  --ink: #3d3036;
  --muted: #6d6158;
  --sage: #5b5942;
  --sage-deep: #3d402e;
  --sage-light: #ebe7da;
  --gold: #b69b6f;
  --rose: #e7ddd0;
  --line: #d7c9b5;
  --serif: "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 132px; }
body {
  min-width: 320px;
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.75;
  -webkit-text-size-adjust: 100%;
}
::selection { background: var(--sage); color: var(--cream); }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, summary { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button, input, select, textarea { border-radius: 0; }
button:disabled { cursor: not-allowed; }
img { display: block; max-width: 100%; height: auto; }
svg { max-width: 100%; }
.icon { display: block; width: 24px; height: 24px; flex-shrink: 0; }
.icon, .about-flower, .hero-sparkle, .contact-decoration {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
h1, h2, h3, p, figure, dl, dd { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }
h1, h2, h3, p, a, label { overflow-wrap: break-word; }
h1 {
  max-width: 11.8ch;
  font-size: clamp(3.4rem, 5.8vw, 5.35rem);
  line-height: 1.055;
  letter-spacing: -0.045em;
}
h1 em { color: var(--sage); font-weight: 400; }
h2 {
  font-size: clamp(2.15rem, 3.8vw, 3.4rem);
  line-height: 1.13;
  letter-spacing: -0.03em;
}
h3 { font-size: 1.65rem; line-height: 1.25; letter-spacing: -0.015em; }
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--sage-deep);
  outline-offset: 5px;
}
.wrap { width: min(1240px, calc(100% - 96px)); margin-inline: auto; }
.section { padding-block: clamp(70px, 7.4vw, 110px); }
.eyebrow {
  color: var(--sage);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1.6;
  text-transform: uppercase;
}
.section-heading { max-width: 770px; margin-bottom: 48px; }
.section-heading .eyebrow { margin-bottom: 16px; }
.section-description { max-width: 65ch; margin-top: 23px; color: var(--muted); }
.small-note { font-size: 0.85rem; line-height: 1.7; color: var(--muted); }

/* Navigation */
.skip-link {
  position: fixed;
  z-index: 100;
  inset: 12px auto auto 16px;
  padding: 12px 18px;
  background: var(--sage-deep);
  color: var(--paper);
  transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }
.site-header {
  position: sticky;
  z-index: 30;
  top: 0;
  background: rgba(251, 248, 240, 0.97);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.header-inner {
  display: flex;
  min-height: 111px;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  width: min(1340px, calc(100% - 80px));
  margin-inline: auto;
  padding-block: 10px;
}
.brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.brand img { width: 90px; height: 90px; object-fit: contain; }
.desktop-nav { display: flex; flex: 1; min-width: 0; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 28px; }
.desktop-nav a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding-block: 8px;
  color: var(--ink);
  font-size: 0.875rem;
  transition: color 160ms ease;
}
.desktop-nav a:hover { color: var(--sage); text-decoration: underline; text-underline-offset: 6px; }
.language-nav { display: flex; align-items: center; flex-shrink: 0; gap: 2px; }
.language-nav a {
  display: inline-flex;
  width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.045em;
}
.language-nav a:hover { border-color: var(--line); }
.language-nav a.active,
.language-nav a[aria-current="page"] {
  background: var(--sage);
  border-color: var(--sage);
  color: var(--paper);
}
.mobile-menu { display: none; position: relative; flex-shrink: 0; }
.mobile-menu > summary {
  display: flex;
  width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  list-style: none;
  cursor: pointer;
  border: 1px solid var(--line);
}
.mobile-menu > summary::-webkit-details-marker { display: none; }
.mobile-menu[open] > summary { background: var(--sage-light); border-color: var(--sage); }
.menu-lines { display: block; position: relative; width: 18px; height: 13px; border-top: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; }
.menu-lines::before { content: ""; position: absolute; left: 0; right: 0; top: 4.25px; border-top: 1.5px solid currentColor; }
.mobile-menu-links {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  width: min(310px, calc(100vw - 32px));
  padding: 16px 24px;
  background: var(--paper);
  border: 1px solid var(--line);
  box-shadow: 0 12px 30px rgba(75, 54, 35, 0.1);
}
.mobile-menu-links a { display: flex; min-height: 48px; align-items: center; padding-block: 10px; }
.mobile-menu-links a + a { border-top: 1px solid var(--line); }
.mobile-menu-links a:hover { color: var(--sage); }

/* A luminous cottage cover, with a small signature on cream paper. */
.hero {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 0.93fr) minmax(0, 1.07fr);
  align-items: center;
  gap: clamp(36px, 5.2vw, 78px);
  padding-block: clamp(48px, 5.2vw, 80px) clamp(58px, 6vw, 90px);
}
.hero::before {
  position: absolute;
  z-index: -1;
  inset: 3% 27% 7% 0;
  background: radial-gradient(ellipse at 25% 50%, rgba(244, 226, 219, 0.54), rgba(251, 248, 240, 0) 70%);
  content: "";
  pointer-events: none;
}
.hero-copy { min-width: 0; padding-block: 12px; }
.hero-copy > .eyebrow { margin-bottom: 25px; }
.hero-description { max-width: 43ch; margin-top: 28px; font-size: 1.065rem; line-height: 1.85; color: var(--muted); }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.button {
  display: inline-flex;
  min-height: 52px;
  max-width: 100%;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 13px 22px;
  border: 1px solid transparent;
  border-radius: 3px;
  font-family: var(--sans);
  font-size: 0.89rem;
  font-weight: 500;
  line-height: 1.45;
  text-align: center;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}
.button .icon { width: 18px; height: 18px; }
.button-primary { border-color: var(--sage); background: var(--sage); color: var(--paper); }
.button-primary:hover:not(:disabled) { border-color: var(--sage-deep); background: var(--sage-deep); }
.button-outline { border-color: #b8aa93; background: transparent; color: var(--ink); }
.button-outline:hover:not(:disabled) { border-color: var(--ink); background: #f0eade; }
.button:disabled,
.button[aria-disabled="true"] { border-color: #c2cbb7; background: #dce2d3; color: #45513b; }
.hero-small { display: flex; align-items: flex-start; gap: 10px; margin-top: 29px; color: var(--muted); font-size: 0.81rem; line-height: 1.75; }
.hero-small .icon { width: 19px; height: 19px; margin-top: 2px; color: var(--sage); }
.hero-art { position: relative; width: 100%; max-width: 570px; aspect-ratio: 9 / 10; margin-inline: auto; margin-bottom: 25px; }
.hero-ritual {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 9 / 10;
  object-fit: cover;
  object-position: 51% 50%;
  border: 7px solid var(--paper);
  border-radius: 48% 48% 12px 12px;
  box-shadow: 0 0 0 1px #e7d9cc, 0 17px 46px rgba(116, 79, 52, 0.11);
}
.hero-art figcaption {
  position: absolute;
  right: 7%;
  bottom: -25px;
  left: 7%;
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  padding: 15px 21px;
  border: 1px solid #e6d8c9;
  border-radius: 5px;
  background: rgba(255, 252, 247, 0.98);
  box-shadow: 0 8px 25px rgba(108, 74, 46, 0.06);
  font-family: var(--serif);
  font-size: clamp(0.92rem, 1.25vw, 1.14rem);
  font-style: italic;
  line-height: 1.6;
  text-align: left;
  color: var(--ink);
}
.hero-signature { display: block; width: 62px; height: 62px; object-fit: contain; }
.hero-signature img { width: 100%; height: auto; }
.hero-art figcaption > span { min-width: 0; }

/* The meaning of magic and ritual within Spell Cottage's spiritual practice. */
.concepts-section { border-bottom: 1px solid var(--line, #dfd5c4); }
.concepts-heading { max-width: 760px; margin-bottom: 38px; }
.concepts-heading .eyebrow { margin-bottom: 14px; }
.concepts-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 37px; }
.concept-item { min-width: 0; }
.concept-item h3 { margin: 17px 0 14px; font-size: clamp(1.35rem, 2vw, 1.65rem); line-height: 1.35; }
.concept-item p { color: var(--muted); font-size: .97rem; line-height: 1.85; }
.concept-icon { width: 35px; height: 35px; fill: none; stroke: var(--sage); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 760px) {
  .concepts-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .concepts-heading { margin-bottom: 30px; }
  .concept-item + .concept-item { padding-top: 27px; border-top: 1px solid var(--line, #dfd5c4); }
}
.hero-sparkle { position: absolute; top: 8%; right: 1%; width: 38px; height: 38px; color: #a98249; pointer-events: none; }
.hero-sparkle .icon { width: 38px; height: 38px; }
.intention-strip { padding-block: 21px; background: #edf0e6; border-block: 1px solid #d8ddcb; }
.intention-strip > .wrap { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px 48px; }
.strip-item { display: inline-flex; align-items: center; justify-content: center; gap: 11px; color: var(--sage-deep); font-size: 0.81rem; letter-spacing: 0.035em; text-align: center; }
.strip-item .icon { width: 19px; height: 19px; }

/* Open, ruled service rows rather than a wall of boxes. */
.ritual-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 62px; }
.ritual-card { min-width: 0; padding-block: 24px; border-top: 1px solid var(--line); }
.ritual-card > summary {
  display: flex;
  min-height: 77px;
  align-items: center;
  gap: 16px;
  list-style: none;
  cursor: pointer;
}
.ritual-card > summary::-webkit-details-marker { display: none; }
.ritual-icon { display: flex; width: 42px; min-width: 42px; height: 48px; align-items: center; justify-content: center; color: var(--sage); }
.ritual-icon .icon { width: 33px; height: 33px; }
.ritual-title { flex: 1; min-width: 0; }
.ritual-title h3 { font-size: clamp(1.35rem, 2.05vw, 1.72rem); }
.ritual-number { display: block; color: var(--muted); font-size: 0.71rem; letter-spacing: 0.13em; line-height: 1.8; }
.ritual-title .ritual-number { margin-bottom: 6px; }
.detail-toggle { display: flex; width: 30px; min-width: 30px; height: 30px; align-items: center; justify-content: center; color: var(--sage); font-size: 1.5rem; line-height: 1; transition: transform 160ms ease; }
.detail-toggle .icon { width: 18px; height: 18px; }
.ritual-card[open] .detail-toggle { transform: rotate(45deg); }
.ritual-card > summary:hover h3 { color: var(--sage); }
.ritual-body { padding: 20px 0 3px 58px; }
.ritual-body > p { color: var(--muted); font-size: 0.98rem; line-height: 1.8; }
.tag-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 20px; }
.tag-list span { padding: 4px 10px; background: #eeeee4; color: #526048; font-size: 0.72rem; line-height: 1.55; border-radius: 2px; }
.service-link { display: inline-flex; min-height: 44px; align-items: center; gap: 11px; margin-top: 17px; padding-block: 8px; color: var(--ink); font-size: 0.875rem; text-decoration: underline; text-underline-offset: 5px; }
.service-link:hover { color: var(--sage); }
.service-link .icon { width: 17px; height: 17px; }

/* A calm, full-width statement of the practice. */
.philosophy { padding-block: clamp(72px, 7vw, 106px); background: var(--sage); color: var(--cream); }
.philosophy-inner { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr); column-gap: 11%; }
.philosophy-mark { display: flex; grid-column: 1; grid-row: 1; align-items: center; gap: 18px; }
.philosophy-mark .icon { width: 41px; height: 41px; color: #e4c596; }
.philosophy .eyebrow { color: #eee2cd; }
.philosophy-inner > h2 { grid-column: 1; grid-row: 2; max-width: 15ch; margin-top: 25px; }
.philosophy-text { grid-column: 2; grid-row: 1 / span 2; align-self: center; padding-top: 6px; }
.philosophy-text p { color: #f8f4e9; font-size: 1.01rem; line-height: 1.9; }
.philosophy-text p + p { margin-top: 23px; }
.philosophy a:focus-visible { outline-color: var(--cream); }

/* A personal introduction, set as an open editorial spread. */
.about-layout { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); align-items: start; gap: 10%; border-bottom: 1px solid var(--line); }
.about-heading { min-width: 0; }
.about-heading > .eyebrow { margin-bottom: 19px; }
.about-heading h2 { max-width: 16ch; }
.about-flower { display: block; width: 114px; height: 114px; margin-top: 29px; color: #7c8767; stroke-width: 0.9; }
.about-flower svg { display: block; width: 100%; height: auto; }
.about-copy { min-width: 0; padding-top: 6px; }
.about-copy > p { color: var(--muted); font-size: 1.02rem; line-height: 1.95; }
.about-copy > p + p { margin-top: 22px; }
.about-copy > p.about-signature { margin-top: 27px; color: var(--ink); font-family: var(--serif); font-size: 1.43rem; font-style: italic; line-height: 1.65; }

/* The kit is a single feature spread, with a handmade jar illustration. */
.kits-layout { display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1fr); align-items: center; gap: 10%; }
.kit-art {
  position: relative;
  display: grid;
  width: 100%;
  max-width: 500px;
  aspect-ratio: 1;
  align-items: center;
  justify-items: center;
  padding: clamp(35px, 5vw, 68px);
  background: radial-gradient(ellipse at 50% 40%, #f9f1e7 0%, #eee4d8 100%);
  border: 1px solid #e0d5c5;
  border-radius: 48% 48% 3px 3px;
}
.kit-art > svg { display: block; width: 100%; max-width: 350px; height: auto; filter: drop-shadow(0 10px 14px rgba(101, 68, 39, 0.09)); }
.kit-copy { min-width: 0; }
.kit-copy > .eyebrow { margin-bottom: 18px; }
.kit-copy > p:not(.eyebrow):not(.small-note) { margin-top: 22px; color: var(--muted); }
.kit-details { margin-block: 27px 24px; }
.kit-details dl { margin: 0; }
.kit-details div { padding-block: 16px; border-top: 1px solid var(--line); }
.kit-details dt { font-family: var(--serif); font-size: 1.22rem; line-height: 1.4; }
.kit-details dd { margin-top: 7px; color: var(--muted); font-size: 0.92rem; line-height: 1.8; }
.kit-copy > .small-note { margin-top: 16px; max-width: 54ch; }

/* Three simple steps, with visible numbering. */
.process-section { padding-block: clamp(66px, 6.5vw, 94px); background: #f0ebe2; border-block: 1px solid #e1d9ca; }
.process-section .section-heading { margin-inline: auto; text-align: center; }
.process-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 50px; margin: 0; padding: 0; list-style: none; }
.process-grid li { min-width: 0; padding-top: 23px; border-top: 1px solid #cbbca5; }
.step-number { display: block; color: var(--sage); font-family: var(--serif); font-size: 2.75rem; font-style: italic; line-height: 1.2; }
.process-grid h3 { margin-top: 19px; font-size: 1.55rem; }
.process-grid p { margin-top: 14px; color: var(--muted); font-size: 0.97rem; line-height: 1.85; }

/* Questions remain compact and keyboard accessible. */
.faq-layout { display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr); gap: 10%; }
.faq-heading .eyebrow { margin-bottom: 17px; }
.faq-heading h2 { max-width: 14ch; }
.faq-list { min-width: 0; }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { position: relative; display: block; min-height: 77px; padding: 24px 36px 24px 0; font-size: 1rem; line-height: 1.7; list-style: none; cursor: pointer; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { position: absolute; top: 22px; right: 0; color: var(--sage); font-family: var(--serif); font-size: 1.45rem; content: "+"; }
.faq-list details[open] > summary::after { content: "−"; }
.faq-list summary:hover { color: var(--sage); }
.faq-list details > p { padding: 0 24px 26px 0; color: var(--muted); font-size: 0.97rem; line-height: 1.85; }

/* Contact: clear labels, comfortably sized controls and honest status states. */
.contact-section { padding-block: clamp(70px, 7vw, 104px); background: var(--sage-light); border-top: 1px solid #dbe0d0; }
.contact-layout { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: start; gap: 9%; }
.contact-copy { min-width: 0; padding-top: 16px; }
.contact-copy > .eyebrow { margin-bottom: 21px; }
.contact-copy h2 { max-width: 12ch; }
.contact-copy > p:not(.eyebrow):not(.contact-languages) { max-width: 43ch; margin-top: 25px; color: #62674f; line-height: 1.85; }
.contact-languages { margin-top: 28px; color: var(--sage-deep); font-size: 0.84rem; letter-spacing: 0.055em; }
.contact-decoration { max-width: 150px; margin-top: 40px; color: var(--sage); }
.contact-decoration svg { display: block; width: 100%; height: auto; }
.contact-form { min-width: 0; margin: 0; padding: 34px; background: var(--paper); border: 1px solid #d2d8c7; border-radius: 4px; box-shadow: 0 9px 30px rgba(73, 84, 57, 0.035); }
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.field { min-width: 0; margin-bottom: 21px; }
.field label { display: block; margin-bottom: 8px; font-size: 0.86rem; font-weight: 500; line-height: 1.6; }
.field input,
.field select,
.field textarea {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 11px 12px;
  border: 1px solid #bdb7a8;
  border-radius: 3px;
  background: var(--cream);
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.6;
  box-shadow: none;
}
.field select { padding-right: 25px; text-overflow: ellipsis; }
.field textarea { min-height: 149px; resize: vertical; }
.field input::placeholder,
.field textarea::placeholder { color: #827462; opacity: 1; }
.field input:focus,
.field select:focus,
.field textarea:focus { border-color: var(--sage); }
.field input[aria-invalid="true"],
.field select[aria-invalid="true"],
.field textarea[aria-invalid="true"] { border-color: #8b463e; }
.field input:disabled,
.field select:disabled,
.field textarea:disabled { background: #efede6; color: #756a58; opacity: 1; }
.form-privacy { margin-top: 3px; margin-bottom: 18px; font-size: 0.8rem; line-height: 1.75; color: #70624e; }
.form-privacy a { text-decoration: underline; text-underline-offset: 3px; }
.form-privacy a:hover { color: var(--sage-deep); }
.form-privacy p + p { margin-top: 7px; }
[data-contact-captcha] { width: 100%; max-width: 100%; margin-block: 16px; overflow-x: auto; }
[data-contact-captcha]:empty { margin: 0; }
.contact-form > .button { width: 100%; margin-top: 3px; }
.form-status { margin-top: 17px; padding: 12px 14px; border-left: 3px solid #a4ad91; background: #edf0e6; color: #45513b; font-size: 0.88rem; line-height: 1.75; overflow-wrap: anywhere; }
.form-status:empty { display: none; }
.form-status[data-state="error"] { border-left-color: #96564b; background: #f7ebe5; color: #743f35; }
.form-status[data-state="success"] { border-left-color: var(--sage); background: #e9eee1; color: #3f5435; }
.form-status[data-state="loading"],
.form-status[data-state="sending"] { border-left-color: #aa8d62; background: #f3edde; color: var(--ink); }
.contact-form[data-contact-state="unavailable"] .form-status { border-left-color: #9c8866; background: #f3eee3; color: #62513a; }
.field-help { margin-top: 8px; color: var(--muted); font-size: 0.81rem; line-height: 1.75; }
.booking-request-fields {
  min-width: 0;
  min-inline-size: 0;
  max-width: 100%;
  margin: 3px 0 23px;
  padding: 19px 16px 3px;
  border: 1px solid #c7cdb9;
  border-radius: 5px;
  background: #f3f4eb;
}
.booking-request-fields legend { max-width: 100%; padding-inline: 8px; color: var(--ink); font-family: var(--serif); font-size: 1.12rem; line-height: 1.5; white-space: normal; }
.booking-request-fields .form-row { gap: 15px; }
.booking-request-fields input[type="date"],
.booking-request-fields input[type="time"] { min-inline-size: 0; width: 100%; max-inline-size: 100%; }
.booking-request-fields input::-webkit-date-and-time-value { min-width: 0; text-align: left; }
.booking-request-note { margin: 0 0 17px; padding-left: 11px; border-left: 2px solid #aab496; color: #63704f; font-size: 0.82rem; line-height: 1.8; }

/* A welcoming invitation to request an introductory conversation. */
.booking-section { padding-block: clamp(70px, 7vw, 103px); background: #f6ece6; border-block: 1px solid #e9dcd2; }
.booking-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); align-items: center; gap: 10%; }
.booking-copy { min-width: 0; }
.booking-copy > .eyebrow { margin-bottom: 19px; }
.booking-copy h2 { max-width: 16ch; }
.booking-copy > p:not(.eyebrow) { max-width: 49ch; margin-top: 24px; color: #796253; line-height: 1.85; }
.booking-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 16px; margin-top: 27px; }
.booking-meta span { display: inline-flex; align-items: center; gap: 8px; padding-block: 5px; color: #625444; font-size: 0.81rem; line-height: 1.65; }
.booking-meta span + span { padding-left: 16px; border-left: 1px solid #cdbba9; }
.booking-meta .icon { width: 17px; height: 17px; color: var(--sage); }
.booking-card { min-width: 0; width: 100%; max-width: 480px; justify-self: end; padding: 35px; border: 1px solid #e2d0c0; border-radius: 14px; background: var(--paper); box-shadow: 0 9px 32px rgba(115, 73, 47, 0.035); }
.booking-badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: #f1e6dd; color: #685240; font-size: 0.7rem; font-weight: 600; line-height: 1.6; letter-spacing: 0.1em; text-transform: uppercase; }
.booking-duration { display: block; margin-top: 22px; color: var(--sage); font-family: var(--serif); font-size: clamp(2.4rem, 4.5vw, 3.65rem); font-style: italic; line-height: 1.15; letter-spacing: -0.035em; overflow-wrap: break-word; }
.booking-card h3 { margin-top: 15px; font-size: 1.65rem; }
.booking-card > p:not(.booking-duration):not(.booking-note) { margin-top: 16px; color: var(--muted); font-size: 0.96rem; line-height: 1.8; }
.booking-card ul { margin: 20px 0 0; padding-left: 20px; color: var(--muted); font-size: 0.91rem; line-height: 1.8; }
.booking-card li + li { margin-top: 8px; }
.booking-card li::marker { color: var(--sage); }
.booking-card .button { width: 100%; margin-top: 24px; }
.booking-note { margin-top: 18px; color: #74614f; font-size: 0.81rem; line-height: 1.8; }

/* A private reflection exercise, presented as a small journal. */
.free-resource-section { padding-block: clamp(70px, 7vw, 103px); background: #f8f6ee; }
.free-resource-layout { display: grid; grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr); align-items: start; gap: 9%; }
.free-resource-copy { min-width: 0; padding-top: 16px; }
.free-resource-copy > .eyebrow { margin-bottom: 19px; }
.free-resource-copy h2 { max-width: 16ch; }
.free-resource-copy > p:not(.eyebrow) { max-width: 48ch; margin-top: 24px; color: var(--muted); line-height: 1.85; }
.reflection-steps { margin: 28px 0 0; padding-left: 29px; list-style: decimal-leading-zero; }
.reflection-steps li { padding-left: 8px; }
.reflection-steps li + li { margin-top: 20px; }
.reflection-steps li::marker { color: var(--sage); font-family: var(--sans); font-size: 0.78rem; font-variant-numeric: tabular-nums; }
.reflection-steps h3 { font-size: 1.16rem; line-height: 1.5; letter-spacing: 0; }
.reflection-steps p { margin-top: 7px; color: var(--muted); font-size: 0.92rem; line-height: 1.85; }
.reflection-tool { min-width: 0; padding: 34px; border: 1px solid #e1d7c9; border-radius: 10px; background: var(--paper); }
.reflection-question { min-width: 0; margin-bottom: 23px; }
.reflection-question label { display: block; margin-bottom: 10px; font-family: var(--serif); font-size: 1.22rem; line-height: 1.5; }
.reflection-question textarea {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 108px;
  margin: 0;
  padding: 13px 14px;
  border: 1px solid #c5b8a6;
  border-radius: 4px;
  background: #fcf9f2;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.8;
  resize: vertical;
}
.reflection-question textarea::placeholder { color: #827462; opacity: 1; }
.reflection-question textarea:focus { border-color: var(--sage); }
.reflection-question textarea[aria-invalid="true"] { border-color: #8b463e; }
.reflection-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 11px; margin-top: 23px; }
.reflection-actions button { display: inline-flex; min-height: 48px; max-width: 100%; align-items: center; justify-content: center; gap: 10px; padding: 11px 17px; border: 1px solid #b8aa93; border-radius: 3px; background: var(--paper); color: var(--ink); font-size: 0.86rem; font-weight: 500; line-height: 1.5; transition: background-color 160ms ease, border-color 160ms ease; }
.reflection-actions button:first-child { border-color: var(--sage); background: var(--sage); color: var(--paper); }
.reflection-actions button:hover:not(:disabled) { border-color: var(--ink); background: #f0eade; }
.reflection-actions button:first-child:hover:not(:disabled) { border-color: var(--sage-deep); background: var(--sage-deep); }
.reflection-actions button:disabled { border-color: #c2cbb7; background: #dce2d3; color: #45513b; }
.reflection-actions .icon { width: 18px; height: 18px; }
.reflection-status { margin-top: 16px; color: var(--sage-deep); font-size: 0.87rem; line-height: 1.8; overflow-wrap: anywhere; }
.reflection-status:empty { display: none; }
.reflection-status[data-state="error"] { padding: 11px 13px; border-left: 3px solid #96564b; background: #f7ebe5; color: #743f35; }

/* Quiet footer and a small return control. */
.site-footer { padding-block: 33px 25px; border-top: 1px solid var(--line); background: var(--cream); }
.footer-inner { display: grid; grid-template-columns: 80px minmax(0, 1fr) auto; align-items: center; column-gap: 35px; row-gap: 8px; }
.footer-brand { display: inline-flex; grid-column: 1; grid-row: 1 / span 2; align-items: center; }
.footer-brand img { width: 80px; height: 80px; object-fit: contain; }
.footer-tagline { max-width: 43ch; font-family: var(--serif); font-size: 1.19rem; font-style: italic; line-height: 1.6; }
.footer-links { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 6px 22px; }
.footer-links a { display: inline-flex; min-height: 44px; align-items: center; font-size: 0.8rem; }
.footer-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.copyright { grid-column: 2 / -1; color: var(--muted); font-size: 0.73rem; line-height: 1.7; }
.back-top {
  position: fixed;
  z-index: 20;
  right: 22px;
  bottom: 22px;
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid #aeb79e;
  border-radius: 50%;
  background: var(--paper);
  color: var(--sage-deep);
  box-shadow: 0 3px 12px rgba(67, 76, 52, 0.08);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}
.back-top.visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.back-top:hover { background: var(--sage-light); }
.back-top .icon { width: 20px; height: 20px; }

/* Standalone legal and privacy pages use the same readable typography. */
.legal-page { max-width: 870px; padding-block: clamp(50px, 7vw, 90px); }
.legal-page h1 { max-width: none; font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1.12; }
.legal-intro { margin-top: 25px; padding-bottom: 29px; border-bottom: 1px solid var(--line); font-size: 1.04rem; color: var(--muted); }
.legal-section { padding-block: 27px; border-bottom: 1px solid var(--line); }
.legal-section h2 { margin-bottom: 17px; font-size: 1.7rem; line-height: 1.35; letter-spacing: -0.02em; }
.legal-section p { color: var(--muted); line-height: 1.9; }
.legal-section p + p { margin-top: 16px; }
.legal-section ul, .legal-section ol { padding-left: 22px; color: var(--muted); }
.legal-section li + li { margin-top: 9px; }
.legal-page a { text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.legal-page a:hover { color: var(--sage); }
.legal-back { display: inline-flex; min-height: 44px; align-items: center; gap: 10px; margin-top: 29px; font-size: 0.9rem; }

/* Keep the five desktop links comfortable alongside all three languages. */
@media (min-width: 1001px) and (max-width: 1240px) {
  .header-inner { gap: 20px; }
  .desktop-nav { gap: 6px 19px; }
}

/* Tablet: compact navigation and proportions without concealing languages. */
@media (max-width: 1000px) {
  .wrap { width: calc(100% - 64px); }
  .header-inner { width: calc(100% - 56px); min-height: 99px; gap: 17px; padding-block: 8px; }
  .brand img { width: 82px; height: 82px; }
  .desktop-nav { display: none; }
  .language-nav { margin-left: auto; }
  .mobile-menu { display: block; }
  .hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 32px; padding-block: 55px 65px; }
  h1 { font-size: clamp(3.05rem, 6vw, 4.45rem); }
  .hero-description { font-size: 1rem; }
  .hero-art { max-width: 430px; }
  .hero-art figcaption { grid-template-columns: 49px minmax(0, 1fr); gap: 12px; padding: 13px 15px; }
  .hero-signature { width: 49px; height: 49px; }
  .hero-actions { align-items: flex-start; }
  .hero-actions .button { padding-inline: 17px; }
  .intention-strip > .wrap { gap: 10px 27px; }
  .ritual-grid { column-gap: 35px; }
  .ritual-card > summary { gap: 12px; }
  .ritual-icon { width: 33px; min-width: 33px; }
  .ritual-icon .icon { width: 28px; height: 28px; }
  .ritual-body { padding-left: 45px; }
  .philosophy-inner { column-gap: 7%; }
  .about-layout { gap: 7%; }
  .kits-layout { gap: 6%; }
  .kit-art { padding: 36px; }
  .process-grid { gap: 32px; }
  .faq-layout { gap: 7%; }
  .contact-layout { gap: 6%; }
  .contact-form { padding: 26px; }
  .form-row { gap: 13px; }
  .booking-layout { gap: 6%; }
  .booking-card { padding: 28px; }
  .free-resource-layout { gap: 6%; }
  .reflection-tool { padding: 27px; }
  .footer-inner { column-gap: 25px; }
  .footer-tagline { font-size: 1.07rem; }
}

/* Mobile: natural document order, comfortable inputs and one-column features. */
@media (max-width: 760px) {
  html { scroll-padding-top: 108px; }
  .wrap { width: calc(100% - 40px); }
  .section { padding-block: 61px; }
  .header-inner { width: calc(100% - 36px); min-height: 87px; gap: 12px; padding-block: 7px; }
  .brand img { width: 72px; height: 72px; }
  .hero { grid-template-columns: minmax(0, 1fr); gap: 36px; padding-block: 46px 53px; }
  .hero-copy { padding: 0; }
  .hero-copy > .eyebrow { margin-bottom: 20px; }
  h1 { max-width: 12.6ch; font-size: clamp(3.05rem, 8.3vw, 4.55rem); letter-spacing: -0.043em; }
  h2 { font-size: clamp(2.15rem, 6.8vw, 3.05rem); }
  .hero-description { max-width: 47ch; margin-top: 23px; }
  .hero-actions { gap: 11px; margin-top: 27px; }
  .hero-small { max-width: 45ch; margin-top: 22px; }
  .hero-art { width: min(100%, 470px); margin-bottom: 23px; }
  .hero-art figcaption { right: 6%; bottom: -23px; left: 6%; grid-template-columns: 60px minmax(0, 1fr); padding: 14px 20px; font-size: 1.015rem; }
  .hero-signature { width: 60px; height: 60px; }
  .hero-sparkle { top: 6%; right: 0; width: 31px; height: 31px; }
  .hero-sparkle .icon { width: 31px; height: 31px; }
  .intention-strip { padding-block: 18px; }
  .intention-strip > .wrap { gap: 11px 22px; }
  .strip-item { font-size: 0.77rem; }
  .section-heading { margin-bottom: 32px; }
  .section-heading .eyebrow { margin-bottom: 14px; }
  .section-description { margin-top: 19px; }
  .ritual-grid { grid-template-columns: minmax(0, 1fr); }
  .ritual-card { padding-block: 17px; }
  .ritual-card > summary { min-height: 78px; gap: 14px; }
  .ritual-icon { width: 39px; min-width: 39px; }
  .ritual-icon .icon { width: 31px; height: 31px; }
  .ritual-title h3 { font-size: 1.48rem; }
  .ritual-body { padding: 13px 0 9px 53px; }
  .philosophy { padding-block: 59px; }
  .philosophy-inner { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .philosophy-mark { grid-column: 1; grid-row: auto; }
  .philosophy-mark .icon { width: 34px; height: 34px; }
  .philosophy-inner > h2 { grid-column: 1; grid-row: auto; max-width: 17ch; margin-top: 21px; }
  .philosophy-text { grid-column: 1; grid-row: auto; margin-top: 30px; padding-top: 0; }
  .philosophy-text p { font-size: 1rem; }
  .about-layout { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .about-heading h2 { max-width: 20ch; }
  .about-flower { width: 83px; height: 83px; margin-top: 21px; }
  .about-copy { padding-top: 0; }
  .about-copy > p { font-size: 1rem; }
  .kits-layout { grid-template-columns: minmax(0, 1fr); gap: 39px; }
  .kit-art { width: min(100%, 415px); padding: 40px; margin-inline: auto; }
  .kit-copy h2 { max-width: 17ch; }
  .kit-details { margin-top: 25px; }
  .process-section { padding-block: 59px; }
  .process-section .section-heading { margin-inline: 0; text-align: left; }
  .process-grid { grid-template-columns: minmax(0, 1fr); gap: 25px; }
  .process-grid li { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 17px; padding-top: 23px; }
  .step-number { grid-row: 1 / span 2; font-size: 2rem; }
  .process-grid h3 { grid-column: 2; margin-top: 0; font-size: 1.48rem; }
  .process-grid p { grid-column: 2; margin-top: 9px; }
  .faq-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .faq-heading h2 { max-width: 18ch; }
  .faq-list summary { min-height: 73px; padding-block: 22px; }
  .faq-list details > p { padding-right: 0; }
  .contact-section { padding-block: 58px; }
  .contact-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .contact-copy { padding-top: 0; }
  .contact-copy h2 { max-width: 16ch; }
  .contact-copy > p:not(.eyebrow):not(.contact-languages) { max-width: 52ch; margin-top: 21px; }
  .contact-languages { margin-top: 21px; }
  .contact-decoration { display: none; }
  .contact-form { padding: 26px; }
  .form-row { gap: 18px; }
  .booking-section, .free-resource-section { padding-block: 59px; }
  .booking-layout, .free-resource-layout { grid-template-columns: minmax(0, 1fr); gap: 31px; }
  .booking-copy h2, .free-resource-copy h2 { max-width: 18ch; }
  .booking-card { max-width: none; padding: 28px; }
  .booking-duration { font-size: 3.15rem; }
  .booking-copy > p:not(.eyebrow), .free-resource-copy > p:not(.eyebrow) { margin-top: 21px; }
  .free-resource-copy { padding-top: 0; }
  .reflection-tool { padding: 27px; }
  .reflection-steps { margin-top: 24px; }
  .site-footer { padding-block: 27px; }
  .footer-inner { grid-template-columns: 72px minmax(0, 1fr); gap: 15px 23px; }
  .footer-brand { grid-row: 1; }
  .footer-brand img { width: 72px; height: 72px; }
  .footer-tagline { font-size: 1.15rem; }
  .footer-links { grid-column: 1 / -1; justify-content: flex-start; gap: 25px; }
  .copyright { grid-column: 1 / -1; }
  .back-top { right: 15px; bottom: 15px; }
  .legal-page { padding-block: 44px 59px; }
  .legal-page h1 { font-size: clamp(2.35rem, 8vw, 3.6rem); }
}

/* Narrow phones retain all three languages and avoid overflowing controls. */
@media (max-width: 420px) {
  .wrap { width: calc(100% - 32px); }
  .header-inner { width: calc(100% - 32px); min-height: 81px; gap: 8px; }
  .brand img { width: 64px; height: 64px; }
  .language-nav { gap: 0; }
  .language-nav a { width: 44px; }
  .mobile-menu-links { padding: 13px 20px; }
  .hero { padding-top: 37px; gap: 29px; }
  h1 { font-size: clamp(2.8rem, 11.3vw, 3.38rem); }
  .eyebrow { font-size: 0.71rem; letter-spacing: 0.13em; }
  .hero-actions { flex-direction: column; align-items: stretch; gap: 10px; }
  .hero-actions .button { width: 100%; }
  .hero-art { max-width: 365px; }
  .hero-ritual { border-width: 5px; }
  .hero-art figcaption { right: 5%; left: 5%; grid-template-columns: 43px minmax(0, 1fr); gap: 11px; padding: 12px; font-size: 0.9rem; line-height: 1.55; }
  .hero-signature { width: 43px; height: 43px; }
  .intention-strip > .wrap { flex-direction: column; align-items: center; gap: 10px; }
  .ritual-card > summary { gap: 10px; }
  .ritual-icon { width: 30px; min-width: 30px; }
  .ritual-icon .icon { width: 27px; height: 27px; }
  .ritual-title h3 { font-size: 1.32rem; }
  .detail-toggle { width: 25px; min-width: 25px; }
  .ritual-body { padding-left: 0; padding-top: 16px; }
  .kit-art { padding: 30px; }
  .kit-copy .button { width: 100%; }
  .process-grid li { grid-template-columns: 33px minmax(0, 1fr); gap: 0 13px; }
  .step-number { font-size: 1.7rem; }
  .contact-form { padding: 22px 17px; }
  .form-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .field { margin-bottom: 20px; }
  .booking-request-fields { padding-inline: 12px; }
  .booking-request-fields .form-row { gap: 0; }
  .booking-request-fields legend { padding-inline: 5px; font-size: 1.04rem; }
  .booking-card { padding: 24px 21px; }
  .booking-duration { font-size: 2.75rem; }
  .booking-meta { column-gap: 11px; }
  .booking-meta span { font-size: 0.77rem; }
  .booking-meta span + span { padding-left: 11px; }
  .reflection-tool { padding: 24px 17px; }
  .reflection-question label { font-size: 1.15rem; }
  .reflection-actions { align-items: stretch; }
  .reflection-actions button { flex: 1 1 100%; }
  .footer-inner { column-gap: 18px; }
  .footer-tagline { font-size: 1.04rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

@media print {
  .site-header { position: static; background: #fff; }
  .mobile-menu, .back-top, .skip-link, .contact-form { display: none; }
  .wrap { width: 100%; }
  .section, .philosophy, .contact-section, .process-section { padding-block: 28px; }
  .hero { padding-block: 28px; }
  .hero-art { max-width: 240px; }
  .philosophy { background: #fff; color: var(--ink); }
  .philosophy .eyebrow, .philosophy-text p { color: var(--ink); }
  a { text-decoration: underline; }
  h1, h2, h3 { break-after: avoid; }
  .ritual-card, .process-grid li, .kit-details div { break-inside: avoid; }
}

/* Local website help. The external chat is loaded only when requested. */
.back-top { bottom: 96px; }
.chat-launcher {
  position: fixed;
  z-index: 40;
  right: 22px;
  bottom: 22px;
  display: inline-flex;
  min-width: 60px;
  max-width: min(270px, calc(100vw - 32px));
  min-height: 56px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 12px 22px;
  border: 1px solid var(--sage-deep);
  border-radius: 30px;
  background: var(--sage);
  color: var(--paper);
  box-shadow: 0 5px 23px rgba(67, 82, 58, 0.17);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.45;
  text-align: center;
  overflow-wrap: anywhere;
  transition: background 150ms ease, box-shadow 150ms ease;
}
.chat-launcher::before {
  content: "";
  display: block;
  width: 17px;
  height: 14px;
  flex: 0 0 17px;
  border: 1.5px solid currentColor;
  border-radius: 6px 6px 6px 1px;
}
.chat-launcher--icon::before { display: none; }
.chat-launcher .icon { width: 21px; height: 21px; }
.chat-launcher:hover { background: var(--sage-deep); box-shadow: 0 7px 26px rgba(67, 82, 58, 0.23); }
.chat-modal-open { overflow: hidden; }
.chat-provider-open .back-top { visibility: hidden; opacity: 0; pointer-events: none; }
.chat-panel {
  position: fixed;
  inset: auto 22px 91px auto;
  width: min(390px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100vh - 113px);
  max-height: calc(100dvh - 113px);
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #c9cebe;
  border-radius: 21px;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 15px 55px rgba(61, 54, 40, 0.2);
  font-family: var(--sans);
  font-size: 0.89rem;
  line-height: 1.65;
}
.chat-panel::backdrop { background: rgba(57, 49, 39, 0.13); }
.chat-shell {
  position: relative;
  display: flex;
  min-width: 0;
  max-height: inherit;
  flex-direction: column;
  gap: 12px;
  padding: 22px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #b9c0ab transparent;
}
.chat-panel h2 {
  min-height: 38px;
  margin: 0;
  padding-right: 44px;
  color: var(--sage-deep);
  font-size: 1.65rem;
  line-height: 1.2;
  letter-spacing: -0.025em;
}
#chat-close {
  position: absolute;
  top: 13px;
  right: 11px;
  display: inline-flex;
  width: 44px;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 8px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--sage-deep);
  font-size: 1.65rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
#chat-close:hover { background: var(--sage-light); }
.chat-subtitle { color: var(--ink); font-size: 0.82rem; line-height: 1.6; }
.chat-knowledge-note {
  margin-top: -5px;
  padding-left: 11px;
  border-left: 2px solid #b8c0a8;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.6;
}
.chat-log {
  display: flex;
  min-width: 0;
  min-height: 99px;
  max-height: 265px;
  flex: 1 0 130px;
  flex-direction: column;
  gap: 10px;
  padding: 3px 6px 5px 1px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #b9c0ab transparent;
}
.chat-message {
  max-width: 100%;
  padding: 13px 14px;
  border: 1px solid #e6dfd3;
  border-radius: 13px 13px 13px 3px;
  background: #f5f0e6;
  color: var(--ink);
  flex: 0 0 auto;
  overflow-wrap: anywhere;
}
.chat-message p { white-space: pre-line; overflow-wrap: anywhere; }
.chat-message--question {
  max-width: 94%;
  align-self: flex-end;
  border-color: #d5ddc9;
  border-radius: 13px 13px 3px 13px;
  background: var(--sage-light);
  color: var(--sage-deep);
}
.chat-message-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  margin-top: 3px;
  color: var(--sage-deep);
  font-size: 0.83rem;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.chat-message-link:hover { text-decoration-thickness: 2px; }
.chat-topics {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}
.chat-topic {
  min-width: 0;
  min-height: 44px;
  padding: 9px 10px;
  border: 1px solid #c6cdb9;
  border-radius: 10px;
  background: var(--paper);
  color: var(--sage-deep);
  font-size: 0.77rem;
  line-height: 1.4;
  text-align: left;
  overflow-wrap: anywhere;
}
.chat-topic:hover { border-color: var(--sage); background: var(--sage-light); }
#chat-question-form {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  margin: 0;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
#chat-question-form label { grid-column: 1 / -1; font-size: 0.8rem; line-height: 1.5; }
#chat-question {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 10px;
  border: 1px solid #b6bba8;
  border-radius: 9px;
  background: #fffdf9;
  color: var(--ink);
  font-size: 16px;
  line-height: 1.4;
}
#chat-question::placeholder { color: #796c5c; opacity: 1; }
#chat-send, #chat-live, #chat-reset {
  min-width: 0;
  min-height: 44px;
  padding: 10px 13px;
  border: 1px solid var(--sage);
  border-radius: 9px;
  background: var(--sage);
  color: var(--paper);
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
#chat-send:hover:enabled, #chat-live:hover { background: var(--sage-deep); }
#chat-live { width: 100%; display: inline-flex; align-items: center; justify-content: center; text-align: center; text-decoration: none; cursor: pointer; }
#chat-live[aria-disabled="true"] { pointer-events: none; cursor: not-allowed; background: #ebeee4; color: #626b56; }
#chat-reset {
  align-self: flex-start;
  border-color: transparent;
  background: transparent;
  color: var(--sage-deep);
  font-size: 0.76rem;
  text-decoration: underline;
  text-underline-offset: 3px;
}
#chat-reset:hover { background: var(--sage-light); }
.chat-secondary-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.chat-secondary-actions > #chat-live { flex: 1 1 180px; width: auto; }
.chat-secondary-actions > #chat-reset { flex: 1 1 auto; }
#chat-send:disabled, #chat-live:disabled {
  border-color: #c6ccbb;
  background: #ebeee4;
  color: #626b56;
  opacity: 1;
  cursor: not-allowed;
}
#chat-live-status {
  margin-top: -6px;
  color: var(--muted);
  font-size: 0.77rem;
  line-height: 1.6;
}
#chat-live-status:empty { display: none; }
#chat-live-status[data-state="error"] { color: #884d38; }
.chat-privacy {
  padding-top: 10px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.73rem;
  line-height: 1.65;
}
.chat-privacy a { display: inline-flex; min-height: 44px; align-items: center; color: var(--sage-deep); text-decoration: underline; text-underline-offset: 3px; }
.chat-panel :focus-visible { outline: 3px solid var(--sage-deep); outline-offset: 3px; }
.chat-log:focus-visible { outline-offset: 1px; }

@media (max-width: 760px) {
  .chat-launcher { right: 15px; bottom: max(15px, env(safe-area-inset-bottom)); padding-inline: 18px; }
  .chat-panel { right: 15px; }
}

@media (max-width: 420px), (max-height: 660px) {
  .chat-panel {
    inset: auto 8px max(8px, env(safe-area-inset-bottom)) auto;
    width: min(390px, calc(100vw - 16px));
    max-height: calc(100vh - 16px);
    max-height: calc(100dvh - 16px - env(safe-area-inset-bottom));
    border-radius: 17px;
  }
  .chat-shell { gap: 11px; padding: 18px 15px; }
  .chat-panel h2 { font-size: 1.55rem; }
  .chat-log { max-height: 220px; flex-basis: 115px; }
  #chat-close { top: 10px; right: 8px; }
  .chat-message { padding: 11px 12px; }
  .chat-topic { padding-inline: 9px; }
  #chat-send { padding-inline: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .chat-launcher { transition: none; }
  .chat-shell, .chat-log { scroll-behavior: auto; }
}

@media print {
  .chat-launcher, .chat-panel { display: none !important; }
}


/* Ritual practice: immersive cover and an enquiry-led reading order. */
.site-header { background: rgba(250, 246, 236, .98); border-bottom-color: #cbb791; }
.desktop-nav a { font-size: .84rem; letter-spacing: .015em; }
.desktop-nav a:last-child { padding-inline: 17px; border: 1px solid #b7a37e; }
.language-nav a.active, .language-nav a[aria-current="page"] { background: #44343c; border-color: #44343c; }
.button-primary { background: #44343c; border-color: #44343c; color: #fff7e6; }
.button-primary:hover:not(:disabled) { background: #2d2228; border-color: #2d2228; }
.button:disabled, .button[aria-disabled="true"] { border-color: #c9c4b3; background: #e4dfd1; color: #635d4d; }
h2 { letter-spacing: -.035em; }
.ritual-hero {
  position: relative; isolation: isolate; min-height: 670px; overflow: hidden;
  background: #281f23; color: #fff6e4;
}
.ritual-hero-scene { position: absolute; inset: 0; z-index: -2; }
.ritual-hero-scene > img { width: 100%; height: 100%; object-fit: cover; object-position: center 57%; }
.ritual-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, rgba(35,25,31,.95) 0%, rgba(35,25,31,.88) 26%, rgba(35,25,31,.62) 44%, rgba(35,25,31,.08) 72%), linear-gradient(0deg, rgba(28,21,22,.48), transparent 22%);
}
.ritual-hero-inner { display: flex; align-items: center; min-height: 670px; padding-block: 75px 86px; }
.ritual-hero-copy { width: 55%; max-width: 640px; min-width: 0; }
.ritual-hero .eyebrow { max-width: 46ch; color: #ddc398; font-size: .72rem; letter-spacing: .17em; line-height: 1.9; }
.ritual-hero-rule { display: flex; align-items: center; gap: 12px; color: #c6a971; margin: 23px 0 28px; }
.ritual-hero-rule > span { display: block; width: 43px; height: 1px; background: #ab8d5b; }
.ritual-hero-rule .icon { width: 27px; height: 27px; stroke-width: 1.2; }
.ritual-hero h1 { max-width: none; font-size: clamp(3.1rem, 5.2vw, 4.75rem); line-height: 1.055; letter-spacing: -.042em; text-wrap: balance; }
.ritual-hero h1 em { color: #e4c28c; font-style: italic; }
.ritual-hero .hero-description { max-width: 47ch; color: #e7d9c4; font-size: 1.025rem; line-height: 1.85; margin-top: 26px; }
.ritual-hero .hero-care { max-width: 55ch; color: #d8cbb8; font-size: .8rem; line-height: 1.75; margin-top: 13px; }
.ritual-hero .hero-actions { gap: 12px; margin-top: 30px; }
.ritual-hero .button-primary { background: #d7b981; border-color: #d7b981; color: #30232a; font-weight: 600; }
.ritual-hero .button-primary:hover { background: #ecd2a3; border-color: #ecd2a3; }
.ritual-hero .button-outline { color: #f2e5cd; border-color: #a49375; background: rgba(25,19,22,.18); }
.ritual-hero .button-outline:hover { color: #fff8e7; border-color: #e3c899; background: #3f3037; }
.ritual-hero .hero-small { max-width: 49ch; margin-top: 25px; color: #cfbda5; font-size: .79rem; line-height: 1.8; }
.ritual-hero a:focus-visible { outline-color: #f5daac; }
.intention-strip { padding-block: 21px; background: #393c2e; border-block: 1px solid #5f5b41; }
.intention-strip > .wrap { justify-content: space-between; gap: 15px 30px; }
.strip-item { color: #ecdfc7; font-size: .72rem; letter-spacing: .09em; text-transform: uppercase; }
.strip-item + .strip-item::before { content: "✧"; margin-right: 15px; color: #c3a56f; font-size: .9rem; }
.ritual-services > .section-heading { display: grid; grid-template-columns: 1.05fr 1fr; gap: 9%; align-items: end; max-width: none; margin-bottom: 45px; }
.ritual-services .section-description { margin-top: 0; }
.ritual-grid { gap: 10px 55px; }
.ritual-card { padding-block: 27px; border-top: 1px solid #b6a07a; }
.ritual-card > summary { gap: 19px; align-items: center; }
.ritual-icon { width: 52px; min-width: 52px; height: 52px; padding: 9px; border: 1px solid #b79d73; border-radius: 50%; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; color: #76603c; }
.ritual-number { font-family: var(--serif); color: #756041; font-size: .82rem; letter-spacing: .08em; }
.ritual-title h3 { font-size: clamp(1.4rem, 2.2vw, 1.8rem); }
.ritual-body { padding-left: 71px; }
.ritual-body > p { font-size: .94rem; }
.tag-list span { background: #e9e0d0; color: #64543f; }
.service-link { font-size: .82rem; font-weight: 600; }
.concepts-section { background: #ebe4d7; padding: 48px; border: 1px solid #d1c1a8; margin-bottom: 88px; }
.concepts-heading { max-width: 750px; }
.concepts-heading h2 { font-size: clamp(2rem, 3.3vw, 2.85rem); }
.concept-icon { color: #78603e; stroke: currentColor; }
.concept-item h3 { font-size: 1.45rem; }
.concept-item p { font-size: .92rem; line-height: 1.85; }
.philosophy { position: relative; isolation: isolate; overflow: hidden; background: #37332f; color: #fff6e3; padding-block: 88px; }
.philosophy::before { content: ""; position: absolute; z-index: -1; width: 500px; height: 500px; top: -135px; left: -155px; border: 1px solid rgba(213,178,116,.24); border-radius: 50%; outline: 1px solid rgba(213,178,116,.16); outline-offset: 29px; }
.philosophy-inner { column-gap: 10%; }
.philosophy-mark .icon { color: #cdb182; }
.philosophy .eyebrow { color: #d8bd8f; }
.philosophy-inner > h2 { max-width: 17ch; font-size: clamp(2.5rem, 4vw, 3.6rem); }
.philosophy-text p { color: #e6dcc8; font-size: 1rem; }
.about-layout { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 13%; border-bottom: none; }
.practice-emblem { display: grid; place-items: center; width: 214px; height: 214px; margin: 32px 0 10px 9px; border: 1px solid #bda77f; outline: 1px solid #ddccb0; outline-offset: 8px; border-radius: 50%; background: #fffaf1; }
.practice-emblem img { width: 170px; height: 170px; object-fit: contain; }
.about-copy > p:first-child { color: var(--ink); font-family: var(--serif); font-size: 1.3rem; line-height: 1.75; }
.about-copy > p { font-size: .97rem; }
.about-copy > p.about-signature { color: #78613e; }
.process-section { background: #ebe2d2; border-block-color: #d6c3a3; padding-block: 76px; }
.process-section .section-heading { margin-inline: 0; text-align: left; max-width: 800px; }
.process-grid { gap: 40px; }
.process-grid li { border-top-color: #b19b74; }
.step-number { color: #876b3e; font-family: var(--serif); font-size: 2.5rem; }
.process-grid h3 { font-size: 1.45rem; }
.process-grid p { font-size: .93rem; }
.orientation-note { padding: 25px 29px; margin-top: 40px; border-left: 2px solid #a28450; background: #f4eddf; }
.orientation-heading { display: flex; flex-wrap: wrap; gap: 9px 14px; align-items: center; }
.orientation-heading > .icon { width: 25px; height: 25px; color: #8f713f; }
.orientation-heading h3 { flex: 1 1 230px; font-size: 1.25rem; }
.orientation-heading > span { font-size: .73rem; color: #6d5a40; }
.orientation-note > p { margin-top: 13px; font-size: .88rem; line-height: 1.8; color: #635749; }
.orientation-note > p + p { margin-top: 8px; }
.contact-section { padding-block: 88px; background: #33272f; color: #fff6e5; border-top-color: #625047; }
.contact-layout { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 8%; }
.contact-copy > .eyebrow { color: #d4b786; }
.contact-copy h2 { max-width: 13ch; font-size: clamp(2.6rem, 4.2vw, 3.6rem); }
.contact-copy > p:not(.eyebrow):not(.contact-languages) { color: #e0d1bd; font-size: .98rem; }
.contact-languages { color: #d4b786; font-size: .76rem; }
.contact-decoration { width: 72px; height: 72px; color: #bea06b; stroke-width: .8; }
.contact-form { padding: 35px; background: #fff9ed; color: var(--ink); border: 1px solid #b59a6c; border-radius: 2px; box-shadow: 0 15px 50px rgba(0,0,0,.12); }
.field-situation { margin-top: 4px; }
.field-situation .field-help { margin: 0 0 11px; color: #74634f; }
.field-situation textarea { min-height: 170px; }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: var(--muted); opacity: 1; }
.contact-form .field[hidden] { display: none; }
.preparations-section { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(0,1fr); gap: 10%; align-items: center; border-bottom: 1px solid var(--line); }
.preparations-heading { min-width: 0; }
.preparations-icon { width: 45px; height: 45px; margin-bottom: 19px; fill: none; stroke: #8a7047; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.preparations-heading .eyebrow { margin-bottom: 18px; }
.preparations-heading h2 { font-size: clamp(2rem, 3.2vw, 2.8rem); }
.preparations-heading > p:not(.eyebrow) { margin-top: 22px; color: var(--muted); font-size: .95rem; }
.preparations-heading > .small-note { margin-top: 11px; font-size: .82rem !important; }
.preparations-section .kit-details { margin: 0; }
.preparations-section .kit-details div { padding-block: 20px; border-color: #c7b18b; }
.preparations-section .kit-details dt { font-size: 1.25rem; }
.preparations-section .kit-details dd { font-size: .91rem; }
.free-resource-section { background: #efe9dc; padding-block: 75px; }
.free-resource-copy h2 { font-size: clamp(2rem, 3.2vw, 2.8rem); }
.reflection-tool { border-color: #cbb795; border-radius: 2px; box-shadow: 6px 6px 0 #e2d7c4; }
.reflection-question textarea { background-color: #fffcf5; }
.site-footer { background: #e9e0d0; border-top-color: #cebb9c; }
.chat-launcher { background: #45343d; border-color: #b59a6b; color: #fff3dc; }
.chat-launcher:hover { background: #2f222a; }
.chat-panel { border-color: #b79b70; border-radius: 13px; }
.chat-panel h2 { font-family: var(--serif); }

@media (max-width: 1100px) {
  .ritual-hero-copy { width: 59%; }
  .ritual-hero h1 { font-size: clamp(2.9rem, 5.8vw, 4.2rem); }
  .ritual-hero-inner { padding-block: 66px 74px; }
  .ritual-hero-scene > img { object-position: 58% center; }
  .ritual-hero .button { padding-inline: 17px; font-size: .83rem; }
  .intention-strip > .wrap { justify-content: center; column-gap: 24px; }
  .ritual-grid { column-gap: 34px; }
  .concepts-section { padding: 38px; }
  .about-layout { gap: 9%; }
  .contact-layout { gap: 6%; }
}
@media (max-width: 760px) {
  .ritual-hero { display: flex; flex-direction: column; min-height: auto; }
  .ritual-hero::before { display: none; }
  .ritual-hero-inner { order: 1; min-height: auto; padding-block: 30px 38px; }
  .ritual-hero-copy { width: 100%; max-width: 610px; }
  .ritual-hero .eyebrow { font-size: .66rem; max-width: 52ch; }
  .ritual-hero-rule { margin: 18px 0 22px; }
  .ritual-hero h1 { max-width: 15ch; font-size: clamp(2.85rem, 8.8vw, 4.2rem); }
  .ritual-hero .hero-description { max-width: 53ch; font-size: .96rem; margin-top: 23px; }
  .ritual-hero .hero-small { max-width: 54ch; margin-top: 21px; }
  .ritual-hero .hero-actions { gap: 10px; margin-top: 25px; }
  .ritual-hero-scene { position: relative; z-index: 0; order: 0; flex: 0 0 auto; width: 100%; height: clamp(240px, 70vw, 340px); }
  .ritual-hero-scene > img { object-position: 80% 66%; }
  .ritual-hero-scene::after { position: absolute; content: ""; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(40,31,35,.3) 76%, #281f23 100%); pointer-events: none; }
  .intention-strip > .wrap { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px 20px; }
  .strip-item { font-size: .65rem; line-height: 1.8; letter-spacing: .05em; }
  .strip-item + .strip-item::before { display: none; }
  .ritual-services > .section-heading { grid-template-columns: minmax(0,1fr); gap: 20px; margin-bottom: 31px; }
  .ritual-grid { grid-template-columns: minmax(0,1fr); gap: 0; }
  .ritual-card { padding-block: 23px; }
  .ritual-card > summary { gap: 15px; min-height: 68px; }
  .ritual-icon { width: 45px; min-width: 45px; height: 45px; padding: 8px; }
  .ritual-body { padding: 17px 0 5px 60px; }
  .concepts-section { padding: 30px 25px; margin-bottom: 58px; }
  .concepts-grid { grid-template-columns: minmax(0,1fr); gap: 25px; }
  .concept-item + .concept-item { padding-top: 25px; }
  .philosophy { padding-block: 59px; }
  .philosophy-inner { grid-template-columns: minmax(0,1fr); }
  .philosophy-inner > h2 { max-width: 20ch; font-size: 2.6rem; }
  .philosophy-text { margin-top: 27px; }
  .about-layout { grid-template-columns: minmax(0,1fr); gap: 33px; }
  .practice-emblem { width: 151px; height: 151px; margin-top: 26px; }
  .practice-emblem img { width: 120px; height: 120px; }
  .about-copy > p:first-child { font-size: 1.23rem; }
  .process-section { padding-block: 59px; }
  .process-grid { grid-template-columns: minmax(0,1fr); gap: 26px; }
  .process-grid li { grid-template-columns: 40px minmax(0,1fr); gap: 0 18px; }
  .step-number { font-size: 2rem; }
  .process-grid h3 { margin-top: 0; }
  .orientation-note { margin-top: 30px; padding: 22px; }
  .orientation-heading h3 { flex-basis: calc(100% - 45px); font-size: 1.2rem; }
  .orientation-heading > span { padding-left: 39px; }
  .contact-section { padding-block: 59px; }
  .contact-layout { grid-template-columns: minmax(0,1fr); gap: 31px; }
  .contact-copy h2 { max-width: 19ch; }
  .contact-form { padding: 28px; }
  .preparations-section { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .free-resource-section { padding-block: 59px; }
}
@media (max-width: 420px) {
  .ritual-hero h1 { max-width: 13ch; font-size: clamp(2.6rem, 10.9vw, 3.4rem); }
  .ritual-hero .hero-actions { flex-direction: column; align-items: stretch; }
  .ritual-hero .button { width: 100%; }
  .ritual-body { padding-left: 0; }
  .ritual-card > summary { gap: 11px; }
  .ritual-title h3 { font-size: 1.35rem; }
  .contact-form { padding: 23px 18px; }
  .orientation-note { padding: 21px 18px; }
}
@media print {
  .ritual-hero { min-height: 0; background: white; color: #30272b; }
  .ritual-hero::before, .ritual-hero-scene { display: none; }
  .ritual-hero-inner { min-height: 0; padding-block: 30px; }
  .ritual-hero-copy { width: 100%; }
  .ritual-hero .eyebrow, .ritual-hero .hero-description, .ritual-hero .hero-care, .ritual-hero .hero-small { color: #504536; }
  .ritual-hero h1, .ritual-hero h1 em { color: #30272b; font-size: 36pt; }
  .contact-section { background: white; color: #30272b; }
}


/* Spell Cottage SEO landing pages: calm typographic extension of the existing brand. */
.seo-topics{margin-top:2rem;padding:1.5rem 1.8rem;border:1px solid #d7c8b6;border-radius:1.1rem;background:#f6f0e5;}
.seo-topics h3,.seo-topics p{margin:0 0 .65rem;}.seo-topics ul{list-style:none;display:flex;flex-wrap:wrap;gap:.65rem;padding:0;margin:1rem 0 0;}
.seo-topics a{display:inline-block;border:1px solid #c7b59b;border-radius:2rem;padding:.65rem 1rem;text-decoration:none;color:#483c35;background:#fcf9f4;}
.seo-topics a:hover,.seo-topics a:focus-visible{background:#ede2d2;text-decoration:underline;}
.topic-detail-link{display:inline-block;margin:.7rem 0 .2rem;text-decoration:underline;text-underline-offset:4px;color:#61442e;font-weight:600;}
.footer-topic-links{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem 1rem;padding-top:1rem;width:100%;font-size:.86rem;}
.footer-topic-links a{color:inherit;text-decoration:underline;text-underline-offset:3px;}
.seo-main{min-height:65vh;background:linear-gradient(180deg,#f7f0e6 0%,#fdf9f1 58%,#f6eee3 100%);color:#3e322f;}
.seo-breadcrumb{padding:1.6rem 0 .5rem;font-size:.89rem;color:#63564b;}
.seo-breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0;}
.seo-breadcrumb li:not(:last-child)::after{content:'›';margin-left:.5rem;color:#927b68;}
.seo-breadcrumb a{color:#59483d;text-decoration:underline;text-underline-offset:3px;}
.seo-detail-hero{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);align-items:center;gap:clamp(1.3rem,4vw,4.5rem);padding:clamp(2rem,5vw,5rem) 0 3rem;border-bottom:1px solid #dccfbd;}
.seo-detail-hero h1{max-width:20ch;font-family:Georgia,serif;font-size:clamp(2.3rem,4.8vw,4.8rem);line-height:1.11;letter-spacing:-.03em;margin:1rem 0;}
.seo-detail-hero .eyebrow{font-size:.78rem;letter-spacing:.17em;text-transform:uppercase;color:#846b51;}
.seo-detail-lede{font-size:clamp(1.05rem,1.65vw,1.22rem);max-width:64ch;line-height:1.76;margin:1.5rem 0 2rem;}
.seo-detail-hero .button{max-width:max-content;}
.seo-detail-illustration{margin:0;overflow:hidden;border-radius:220px 220px 18px 18px;min-height:280px;box-shadow:0 20px 40px #33251d1c;}
.seo-detail-illustration img{width:100%;height:100%;aspect-ratio:4/5;object-fit:cover;object-position:65% center;display:block;}
.seo-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:clamp(2rem,5vw,5rem);padding:3rem 0 5rem;align-items:start;}
.seo-detail-body{max-width:850px;min-width:0;}
.seo-detail-section{padding:1rem 0 1.55rem;border-bottom:1px solid #e5d9cb;}
.seo-detail-section h2,.seo-detail-faq h2{font-family:Georgia,serif;font-size:clamp(1.55rem,2.3vw,2.05rem);line-height:1.3;margin:.5rem 0 1rem;color:#48382c;}
.seo-detail-section p,.seo-detail-faq p,.seo-detail-closing{font-size:1.06rem;line-height:1.84;margin:.6rem 0 1.2rem;}
.seo-detail-section .button{margin-top:.6rem;}
.seo-detail-faq{padding:1.6rem 0 .2rem;}
.seo-faq-entry{padding:1rem 0;border-bottom:1px solid #e2d3c2;}
.seo-faq-entry summary{cursor:pointer;font-size:1.06rem;font-weight:650;list-style-position:outside;}
.seo-faq-entry p{padding-left:1.2rem;margin:1rem 0 .4rem;}
.seo-detail-closing{font-style:italic;margin-top:2rem;}
.seo-detail-notice{font-size:.9rem;line-height:1.6;border-left:3px solid #b69b76;padding:.45rem 1rem;color:#68594d;}
.seo-detail-sidebar{position:sticky;top:6rem;padding:1.5rem 1.25rem;background:#efe5d8;border:1px solid #d7c7b4;border-radius:1rem;}
.seo-detail-sidebar h2{font-size:1.15rem;font-family:Georgia,serif;line-height:1.35;margin:0 0 1rem;}
.seo-detail-sidebar ul{margin:0 0 1rem;padding:0;list-style:none;}
.seo-detail-sidebar li{padding:.55rem 0;border-bottom:1px solid #ddcdbc;}
.seo-detail-sidebar a{color:#483a31;text-decoration:underline;text-underline-offset:4px;}
@media(max-width:800px){.seo-detail-hero{grid-template-columns:1fr;padding-top:1.2rem;}.seo-detail-illustration{order:-1;max-height:360px;min-height:260px;border-radius:16px;}.seo-detail-illustration img{aspect-ratio:16/9;object-position:center;}.seo-detail-layout{grid-template-columns:1fr;}.seo-detail-sidebar{position:static;}.seo-topics{padding:1.1rem;}}
@media(max-width:450px){.seo-detail-hero h1{font-size:clamp(2.05rem,10vw,3.2rem);}.seo-detail-hero .button{max-width:100%;}.seo-detail-lede{font-size:1rem;}.seo-topics a{font-size:.87rem;}}

/* v11: operator details and optional CAPTCHA; existing design retained. */
.company-details { margin-top: 1.5rem; }
.company-details > div { display:grid; grid-template-columns:minmax(150px, .8fr) minmax(0, 1.5fr); gap: .6rem 1.5rem; padding:.85rem 0; border-bottom:1px solid var(--line); }
.company-details dt { font-weight:600; color:var(--ink); }
.company-details dd { margin:0; color:var(--muted); line-height:1.7; overflow-wrap:anywhere; }
.legal-updated { margin-top:1.8rem; font-size:.88rem; color:var(--muted); }
.privacy-providers { display:grid; gap:1.6rem; }
.privacy-providers article h3 { font-size:1.1rem; margin-bottom:.35rem; }
.privacy-providers article > a { font-size:.87rem; display:inline-block; margin-top:.4rem; }
.captcha-choice { border:1px solid var(--line); padding:1.2rem; background:var(--paper, #fbf7ef); border-radius:6px; }
.captcha-choice h3 { font-size:1.12rem; margin:0 0 .6rem; }
.captcha-choice p { font-size:.87rem; line-height:1.7; margin:0 0 .9rem; }
.captcha-choice a, .contact-fallback a { text-decoration:underline; text-underline-offset:3px; }
.captcha-choice [data-captcha-enable] { min-height:44px; border:1px solid var(--sage-deep); padding:.8rem 1.1rem; color:var(--cream); background:var(--sage-deep); cursor:pointer; border-radius:4px; font:inherit; font-size:.9rem; }
.captcha-choice [data-captcha-enable]:disabled { cursor:wait; opacity:.65; }
.captcha-choice .field-help { margin:.8rem 0 0; }
.contact-fallback { font-size:.82rem; line-height:1.6; }
.captcha-choice[hidden] { display:none; }
@media (max-width:560px) {
 .company-details > div { grid-template-columns:1fr; gap:.25rem; }
 .captcha-choice [data-captcha-enable] { width:100%; }
}
