/* Reading surfaces: approved words, clearer hierarchy, one DOM at every width. */

/* About: the name and founder story lead; the exact y is a signature. */
.about-opening {
  grid-template-columns: minmax(0, 1.6fr) minmax(0, .85fr);
  gap: 48px;
  padding-block: clamp(48px, 6vw, 88px) 48px;
  align-items: center;
}
.about-opening h1 { font-size: clamp(3.052rem, 6.6vw, 5.96rem); }
.about-signature {
  min-height: 0;
  background: none;
  align-items: center;
  gap: 16px;
  padding: 0;
}
.about-signature .brand-mark { width: clamp(104px, 13vw, 184px); height: auto; }
.about-signature>span { font-size: var(--text-body); font-weight: 600; color: var(--ink); text-align: center; }
.about-story {
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(32px, 6vw, 88px);
  padding-block: 48px var(--space-section);
}
.about-story h2 { font-size: clamp(1.953rem, 3vw, 2.441rem); max-width: 14ch; }
.about-story p { font-size: var(--text-body); line-height: 1.8; max-width: 62ch; margin-bottom: 20px; }
.about-story p.story-lead { font-size: 1.563rem; line-height: 1.6; }
.principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 40px; padding-bottom: var(--space-section); }
.principles .section-heading { grid-column: 1 / -1; margin-bottom: 40px; }
.principles article { display: block; padding-block: 28px 0; }
.principles h3 { font-size: 1.563rem; line-height: 1.3; margin-bottom: 20px; }
.principles article>p { font-size: var(--text-body); line-height: 1.8; }
.mission-field { padding-block: 64px; margin-bottom: 0; }
.mission-field h2 { font-size: clamp(1.953rem, 3.5vw, 3.052rem); line-height: 1.3; }
.mission-field p:last-child { font-size: var(--text-body); }

/* FAQ: tools and results form a compact reading desk. */
[data-page="faqs"] .page-hero { padding-block: 48px 32px; }
[data-page="faqs"] .page-hero>.wrap { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 32px 64px; }
[data-page="faqs"] .page-hero h1 { font-size: clamp(2.441rem, 4vw, 3.815rem); }
[data-page="faqs"] .page-hero .page-lead { max-width: 42ch; margin: 0; }
.faq-directory { grid-template-columns: 240px minmax(0, 1fr); gap: 64px; padding-block: 32px 48px; border-top: 1px solid var(--line); }
.faq-category-nav a { border-radius: 0; padding-inline: 12px; }
.faq-category-nav a:nth-child(2) { margin-bottom: 16px; border-bottom: 1px solid var(--line); }
.faq-search { padding-bottom: 0; margin-bottom: 28px; border: 0; }
.faq-search-field input { min-height: 44px; }
.faq-search #faq-result-count { font-size: var(--text-small); margin-top: 8px; }
.faq-group { margin-bottom: 32px; }
.faq-group h2 { font-size: 1.25rem; margin-bottom: 8px; color: var(--muted); }
.faq-group .faq-list summary { font-size: var(--text-body); padding-block: 16px; min-height: 56px; }
.faq-group .faq-list details>p { max-width: 68ch; line-height: 1.8; padding-bottom: 24px; }
[data-page="faqs"] .consultation-close { margin-block: 16px 48px; padding-block: 32px; }
[data-page="faqs"] .consultation-close h2 { font-size: 1.953rem; }

/* Contact: put the true availability before supporting preparation copy. */
.contact-page { gap: 24px 64px; padding-block: 48px 64px; align-items: start; }
.contact-intro { display: contents; }
.contact-intro-copy { grid-column: 1; grid-row: 1; padding: 0; background: none; border-radius: 0; }
.contact-intro h1 { font-size: clamp(2.441rem, 4.2vw, 3.815rem); }
.contact-intro .page-lead { font-size: var(--text-body); line-height: 1.8; max-width: 43ch; margin-top: 24px; }
.contact-intro .desktop-break { display: none; }
.contact-panel { grid-column: 2; grid-row: 1 / span 3; border-radius: var(--radius-panel); box-shadow: none; }
.contact-panel-heading { background: none; padding: 32px; }
.contact-heading-top { margin-bottom: 20px; }
.contact-panel-heading h2 { font-size: 1.953rem; line-height: 1.3; }
.contact-panel-heading>p { font-size: var(--text-body); max-width: 42ch; }
#contact-unavailable { background: var(--iris-light); padding: 32px; }
#contact-unavailable .unavailable-symbol { display: none; }
#contact-unavailable h2 { font-size: 1.953rem; line-height: 1.3; max-width: 20ch; }
#contact-unavailable>p { color: var(--ink); line-height: 1.8; }
#contact-unavailable .unavailable-note { color: var(--interaction-ink); border-color: var(--iris); }
#contact-unavailable:not([hidden]) ~ .contact-panel-heading { border-top: 1px solid var(--line); border-bottom: 0; padding: 24px 32px; }
#contact-unavailable:not([hidden]) ~ .contact-panel-heading h2 { font-size: 1.25rem; }
#contact-unavailable:not([hidden]) ~ .contact-panel-heading .contact-heading-top { display: none; }
.contact-expectations { grid-column: 1; grid-row: 2; padding-top: 0; margin: 8px 0 0; }
.contact-expectations li { margin-top: 24px; gap: 16px; }
.contact-expectations h2 { font-size: 1.25rem; }
.contact-expectations p { font-size: var(--text-body); }
.contact-brand-line { grid-column: 1; grid-row: 3; margin: 0; padding-top: 24px; align-items: center; }
.contact-panel form, #booking-area, #contact-success { padding: 32px; }
.contact-page .field input:not([type="radio"]), .contact-page .field select, .contact-page .field textarea { font-size: var(--text-body); }
.contact-page .field-error, #contact-status { font-size: var(--text-small); }
.contact-bottom { padding-block: 32px; }
.contact-bottom h2 { font-size: 1.563rem; }

/* Legal: stable contents, short heading-to-text gap, space between subjects. */
:is([data-page="terms"], [data-page="privacy"]) .page-hero { padding-block: 48px 40px; }
:is([data-page="terms"], [data-page="privacy"]) .page-hero .page-lead { max-width: 55ch; }
.legal-layout { grid-template-columns: 256px minmax(0, 1fr); gap: 80px; padding-block: 32px 80px; border-top: 1px solid var(--line); }
.legal-page-links { flex-wrap: wrap; gap: 0 24px; padding-bottom: 16px; }
.legal-page-links a { white-space: nowrap; }
.legal-page-links a[aria-current="page"] { text-decoration: underline; text-underline-offset: 8px; }
.legal-contents { padding-top: 16px; }
.legal-contents>summary { font-size: var(--text-small); letter-spacing: 0; text-transform: none; }
.legal-contents a { font-size: var(--text-small); padding-block: 10px; line-height: 1.5; }
.legal-contents a>span { font-size: var(--text-meta); }
.legal-document { max-width: 68ch; }
.legal-document>.legal-introduction { font-size: 1.25rem; line-height: 1.7; margin: 0 0 40px; color: var(--ink); }
.legal-section { padding-block: 32px 40px; }
.legal-section h2 { font-size: 1.563rem; line-height: 1.35; margin-bottom: 16px; gap: 16px; align-items: baseline; }
.legal-section h2>span { font-size: var(--text-meta); padding: 0; flex: none; }
.legal-section p, .legal-section li { font-size: var(--text-body); line-height: 1.8; color: var(--muted); }
.legal-section p+p { margin-top: 16px; }
.legal-contact { margin-top: 24px; padding-top: 32px; }

/* Recovery: one clear return, with a small directory for a different route. */
.recovery-page { display: grid; grid-template-columns: minmax(0, 1fr) 256px; gap: 64px; align-items: center; padding-block: 80px; }
.recovery-copy h1 { font-size: clamp(2.441rem, 5vw, 4.768rem); line-height: 1.15; max-width: 14ch; }
.recovery-copy>p { font-size: 1.25rem; line-height: 1.7; margin-top: 24px; }
.recovery-copy>.button { margin-top: 32px; background: var(--iris); }
.recovery-links { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.recovery-links .text-link { justify-content: space-between; gap: 20px; padding-block: 20px; border-bottom: 1px solid var(--line); }

@media (max-width: 1000px) {
  .contact-page { gap: 24px 32px; }
  .faq-directory, .legal-layout { grid-template-columns: 208px minmax(0, 1fr); gap: 32px; }
  .principles { column-gap: 24px; }
  .recovery-page { gap: 40px; }
}
@media (max-width: 760px) {
  .about-opening { gap: 24px; align-items: start; }
  .about-signature { padding: 0; }
  .about-signature .brand-mark { width: 88px; height: 88px; }
  .about-signature>span { max-width: 12ch; font-size: var(--text-meta); }
  .about-story { grid-template-columns: 1fr; gap: 24px; padding-block: 32px 64px; }
  .about-story h2 { max-width: none; }
  .about-story h2 br { display: none; }
  .about-story p.story-lead { font-size: 1.25rem; }
  .principles { grid-template-columns: 1fr; padding-bottom: 48px; }
  .principles .section-heading { margin-bottom: 24px; }
  .principles article { padding-block: 24px; }
  .principles h3 { margin-bottom: 12px; }
  .principles h3 br { display: none; }
  .mission-field { padding-block: 48px; }
  [data-page="faqs"] .page-hero { padding-block: 32px; }
  [data-page="faqs"] .page-hero>.wrap { grid-template-columns: 1fr; gap: 16px; }
  .faq-directory { grid-template-columns: 1fr; gap: 0; padding-block: 24px 32px; }
  .faq-search { margin-bottom: 20px; }
  .faq-topic-picker { margin-bottom: 32px; }
  .faq-topic-picker label { margin-bottom: 8px; }
  .faq-group { margin-bottom: 24px; }
  [data-page="faqs"] .consultation-close { margin-block: 0 32px; padding-block: 24px; }
  .contact-page { grid-template-columns: minmax(0, 1fr); padding-block: 32px 48px; gap: 32px; }
  .contact-intro-copy { grid-row: 1; }
  .contact-panel { grid-column: 1; grid-row: 2; }
  .contact-expectations { grid-row: 3; margin: 0; }
  .contact-brand-line { grid-row: 4; }
  .contact-panel-heading, .contact-panel form, #booking-area, #contact-success, #contact-unavailable { padding: 24px; }
  #contact-unavailable:not([hidden]) ~ .contact-panel-heading { padding: 24px; }
  .contact-bottom { align-items: start; }
  :is([data-page="terms"], [data-page="privacy"]) .page-hero { padding-block: 32px; }
  .legal-layout { display: block; padding-block: 24px 48px; }
  .legal-sidebar { margin-bottom: 32px; }
  .legal-contents ol { grid-template-columns: 1fr; }
  .legal-section { padding-block: 28px 32px; }
  .legal-document>.legal-introduction { font-size: 1.125rem; margin-bottom: 32px; }
  .legal-section h2 { font-size: 1.25rem; gap: 12px; }
  .recovery-page { grid-template-columns: 1fr; gap: 40px; padding-block: 48px; }
  .recovery-copy>p { font-size: var(--text-body); }
  .recovery-links { max-width: 400px; }
}
@media (max-width: 480px) {
  .about-opening { grid-template-columns: 1fr; gap: 24px; padding-block: 32px; }
  .about-opening h1 { font-size: clamp(2.441rem, 11.4vw, 3.052rem); }
  .about-signature { flex-direction: row; justify-content: start; align-items: center; gap: 16px; padding: 0; }
  .about-signature .brand-mark { width: 40px; height: 40px; }
  .about-signature>span { max-width: none; font-size: var(--text-small); }
  .about-story h2 { font-size: 1.953rem; }
  .contact-intro h1 { font-size: 2.441rem; }
  #contact-unavailable h2, .contact-panel-heading h2 { font-size: 1.563rem; }
}
@media print {
  .legal-layout { display: block; border: 0; padding: 0; }
  .legal-document { max-width: none; }
  .legal-section p, .legal-section li { color: var(--ink); }
}
