/* Readability refinements preserve the established typefaces and palette. */
:root {
  --muted: #6b5f5d;
  --rose: #92596b;
}

/* Both logos share the footer lockup; enlarge the symbol independently. */
.brand { gap: 10px; }
.brand .brand-symbol { width: 40px; height: 61px; }
.brand .brand-type,
.footer-brand .brand-type {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  font-size: 56px;
  line-height: 1;
  letter-spacing: -1.8px;
}
.brand .brand-type > .brand-method {
  margin: 0 0 -5px 2px;
  font-size: 9px;
  line-height: 1;
  letter-spacing: 2.2px;
  color: var(--rose-dark);
}
.brand .brand-type > .brand-name {
  margin: 0;
  font-family: var(--serif);
  font-size: inherit;
  font-weight: 400;
  letter-spacing: inherit;
  line-height: .8;
}
.brand .brand-type > span.brand-tagline {
  margin: 3px 0 0 3px;
  font-size: 8px;
  letter-spacing: 1.25px;
  line-height: 1.2;
  color: #6e535e;
}
.footer-brand .brand .brand-method { color: #dfb7c7; }
.footer-brand .brand .brand-type > .brand-tagline { color: #dfc5d0; }

/* Shared action geometry keeps icons centered next to the label. */
.icon { display: block; }
.button { font-size: 14px; gap: 16px; }
.button .icon { width: 22px; height: 22px; align-self: center; }
.button > .icon { translate: 0 -1px; }
.button-small { min-height: 46px; font-size: 13px; }
.text-link { min-height: 44px; font-size: 14px; gap: 10px; }
.text-link .icon { width: 21px; height: 21px; }
.desktop-nav { gap: 26px; margin-left: 0; }
.desktop-nav a { font-size: 14px; font-weight: 500; color: #625354; }
.header-cta { font-size: 13px; gap: 10px; }
.eyebrow,
.hero .eyebrow,
.topic-panel .eyebrow,
.faq-heading .eyebrow,
.contact-inner .eyebrow,
.dialog-content .eyebrow {
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 1.65px;
}

.hero-description { font-size: 17px; line-height: 1.8; }
.hero-actions .button { font-size: 14px; gap: 16px; }
.hero-actions .text-link { font-size: 14px; }
.hero-professional p { font-size: 14px; }
.hero-professional p > span { font-size: 12px; color: #6f605e; }
.photo-note p { font-size: 12px; }
.photo-note strong { font-size: 13px; }
.photo-caption { font-size: 11px; letter-spacing: 1.45px; color: #70615c; }

.format-inner { grid-template-columns: 1fr 1.13fr 1fr 1.22fr; gap: 26px; }
.format-item { gap: 10px; align-items: center; }
.format-item .icon { width: 34px; height: 34px; }
.format-item > div { min-width: 0; }
.format-item strong { font-size: 15px; line-height: 1.5; }
.format-item span { font-size: 12px; line-height: 1.6; margin-top: 3px; }
.intro-copy p { font-size: 16px; line-height: 1.85; }
.intro-copy .text-link { font-size: 14px; }
.section-heading > p:last-child { font-size: 15px; }
.topic-tab { font-size: 15px; }
.topic-tab .topic-number { font-size: 11px; color: #796564; }
.topic-panel > p:not(.eyebrow),
.topic-reflection p { font-size: 15px; line-height: 1.85; }
.topic-reflection > span {
  font-size: 11px;
  letter-spacing: 1.2px;
  line-height: 1.6;
  color: #8a5262;
}
.topic-panel .topic-contact { min-height: 50px; font-size: 14px; }
.topic-panel .topic-contact .icon { width: 22px; height: 22px; }

.process-heading > p { font-size: 15px; color: #decfd5; }
.process-step { display: flex; flex-direction: column; }
.process-step p { font-size: 15px; line-height: 1.85; color: #dfd1d7; }
.step-label {
  font-size: 11px;
  letter-spacing: 1.1px;
  line-height: 1.6;
  margin-top: auto;
  padding-top: 24px;
  color: #dfbecb;
}
.process-bottom > span { font-size: 14px; color: #e4d5dc; gap: 10px; }
.process-bottom .icon { width: 23px; height: 23px; color: #e0b9ca; }
.process-bottom .light-link { font-size: 14px; }
.about-credential { font-size: 12px; letter-spacing: 1px; }
.about-copy > p:not(.eyebrow):not(.about-credential):not(.approach-label) {
  font-size: 16px;
  line-height: 1.85;
}
.approach-label { font-size: 11px; letter-spacing: 1.3px; color: #74625e; }
.approach-tags span {
  padding: 8px 12px;
  font-size: 12px;
  line-height: 1.5;
  color: #675451;
  border-color: #cdbcb6;
}
.about-portrait figcaption span:last-child { font-size: 11px; letter-spacing: .55px; }
.about-section { grid-template-columns: .84fr 1.16fr; gap: 80px; align-items: center; }
.about-portrait { position: relative; width: min(100%, 420px); justify-self: center; }
.about-copy { padding-bottom: 0; }


.faq-heading > p:not(.eyebrow) { font-size: 16px; }
.faq-heading .faq-contact { min-height: 48px; font-size: 14px; }
.faq-list summary { font-size: 15px; }
.faq-list .faq-answer p { font-size: 15px; color: #6b5b58; line-height: 1.85; }
.faq-list .faq-answer .text-link { font-size: 14px; }
.contact-inner > p:not(.eyebrow) { font-size: 16px; color: #6e535d; }
.contact-heart { margin-inline: auto; }
.button-dark { font-size: 14px; }
.button-dark > .icon:last-child { margin-left: 0; }

.footer-main { padding-bottom: 32px; }
.footer-brand p { font-size: 14px; color: #e0cfd8; }
.footer-professional span { font-size: 12px; color: #d4bfcb; }
.footer-label { text-transform: uppercase; font-size: 11px; letter-spacing: 1.5px; color: #e3bccd; }
.footer-navigation { gap: 9px; }
.footer-navigation a { font-size: 14px; padding-block: 4px; }
.footer-contact-card small { font-size: 11px; color: #dbc3d0; }
.footer-contact-card strong { font-size: 14px; }
.footer-contact .footer-contact-icon .icon { width: 25px; height: 25px; }
.footer-copyright { padding: 8px 0 28px; font-size: 11px; line-height: 1.8; color: #d0b9c7; text-align: center; }
.dialog-content p:not(.eyebrow) { font-size: 15px; }
.included-list li { font-size: 14px; }
.dialog-content .button { font-size: 14px; }

@media (max-width: 1120px) {
  .desktop-nav { gap: 19px; }
  .desktop-nav a { font-size: 13px; }
  .header-inner { gap: 18px; }
  .hero-actions { flex-wrap: wrap; gap: 12px 20px; }
  .format-inner { grid-template-columns: repeat(3, 1fr); gap: 22px; }
  .format-inner > p { display: none; }
  .footer-main { gap: 30px; grid-template-columns: 1fr .75fr 1.25fr; }
}

@media (max-width: 1020px) {
  .desktop-nav { display: none; }
  .menu-toggle { display: block; }
  .header-cta { margin-left: auto; }
  .mobile-nav { position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100dvh - 85px); overflow-y: auto; overscroll-behavior: contain; border-bottom: 1px solid var(--line); box-shadow: 0 12px 28px #4b333e12; }
  .mobile-nav > a:not(.button) { min-height: 48px; display: flex; align-items: center; }
  .menu-toggle { min-width: 44px; min-height: 44px; }
}

@media (max-width: 900px) {
  .header-inner { height: 82px; }
  .hero-description { font-size: 16px; }
  .format-item .icon { width: 32px; height: 32px; }
  .format-item strong { font-size: 14px; }
  .format-item span { font-size: 12px; }
  .process-heading > p, .process-step p { font-size: 14px; }
  .about-portrait figcaption span:last-child { font-size: 11px; }
  .about-section { gap: 45px; }

  .footer-main { grid-template-columns: 1fr 1fr; gap: 34px; }
  .footer-contact { grid-column: 1 / -1; }
  .footer-contact-card strong { font-size: 14px; }
}

@media (max-width: 680px) {
  .header-inner { height: 76px; gap: 8px; }
  .brand { gap: 8px; }
  .brand .brand-type { font-size: 47px; letter-spacing: -1.5px; }
  .brand .brand-type > .brand-method { font-size: 8px; letter-spacing: 1.7px; margin-bottom: -5px; }
  .brand .brand-type > span.brand-tagline { font-size: 7px; letter-spacing: .9px; margin-top: 3px; }
  .header-cta { min-width: 0; min-height: 42px; padding: 9px 10px; font-size: 12px; white-space: normal; text-align: center; }
  .menu-toggle { width: 44px; height: 44px; padding: 10px; flex-shrink: 0; }
  .mobile-nav { max-height: calc(100dvh - 76px); }
  .menu-toggle .icon { width: 24px; height: 24px; }
  .mobile-nav > a:not(.button) { font-size: 16px; }
  .hero-description { font-size: 16px; }
  .hero-actions { flex-wrap: wrap; gap: 12px 20px; }
  .hero-actions .button { min-height: 52px; font-size: 14px; padding: 14px 20px; }
  .hero-actions .text-link { font-size: 14px; }
  .hero-professional p { font-size: 14px; }
  .hero-professional p > span { font-size: 12px; }
  .photo-caption { font-size: 10px; letter-spacing: 1.15px; }
  .format-inner { grid-template-columns: 1fr; max-width: 340px; gap: 22px; }
  .format-item { gap: 10px; }
  .format-item .icon { width: 34px; height: 34px; }
  .format-item strong { font-size: 15px; }
  .format-item span { font-size: 13px; margin-top: 2px; }
  .intro-copy p { font-size: 16px; }
  .topic-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .topic-tab, .topic-tab.is-active { min-height: 70px; font-size: 13px; line-height: 1.5; padding: 12px 10px; }
  .topic-tab .topic-number { display: none; }
  .topic-panel { padding: 26px 20px; }
  .topic-panel h3 { font-size: clamp(26px, 7.2vw, 29px); line-height: 1.2; }
  .topic-panel .eyebrow { letter-spacing: 1.15px; }
  .topic-panel > p:not(.eyebrow), .topic-reflection p { font-size: 15px; line-height: 1.75; }
  .topic-reflection > span { font-size: 11px; letter-spacing: .8px; }
  .step-label { font-size: 11px; letter-spacing: .8px; padding-top: 18px; }
  .process-heading > p, .process-step p { font-size: 15px; }
  .process-step { padding-left: 46px; }
  .process-bottom > span { font-size: 14px; align-items: flex-start; }
  .process-bottom .text-link { margin-left: 33px; }
  .about-portrait figcaption { display: none; }
  .about-portrait figcaption span:last-child { margin-top: 3px; }
  .about-section { grid-template-columns: 1fr; gap: 36px; }
  .about-portrait { width: min(100%, 300px); }
  .about-copy { padding-bottom: 0; }


  .about-copy > p:not(.eyebrow):not(.about-credential):not(.approach-label) { font-size: 16px; }
  .faq-heading > p:not(.eyebrow) { font-size: 16px; }
  .faq-list summary { font-size: 14px; padding: 17px 14px; gap: 10px; }
  .faq-list .faq-answer { padding: 0 18px 22px; }
  .faq-list .faq-answer p { font-size: 15px; }
  .contact-inner > p:not(.eyebrow) { font-size: 16px; }
  .button-dark { padding-inline: 20px; gap: 12px; }
  .footer-main { grid-template-columns: 1fr; }
  .footer-navigation { gap: 10px 24px; }
  .dialog-content .button { font-size: 13px; }
}

@media (max-width: 370px) {
  .hero-actions { gap: 8px; }
  .contact-inner .button-dark { font-size: 13px; gap: 9px; padding-inline: 14px; }
}

/* The contact action stays in the mobile menu and the main page. */
@media (max-width: 480px) {
  .header-cta { display: none; }
  .menu-toggle { margin-left: auto; }
  .hero-actions .button { width: 100%; }
  .hero-actions .text-link { justify-content: center; width: 100%; }
  .hero-professional { margin-top: 22px; }
  .section { padding-block: 56px; }
  .intro { gap: 24px; }
  .about-section { gap: 28px; }
  .footer-contact .footer-contact-card { padding: 14px; gap: 10px; }
  .footer-copyright { font-size: 11px; padding-inline: 12px; }
}

/* Dialog content remains readable and scrollable in short mobile viewports. */
@media (max-width: 680px) {
  .info-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px); }
  .dialog-content { padding: 56px 22px 26px; }
  .dialog-close { width: 44px; height: 44px; top: 7px; right: 7px; }
  .dialog-content h2 { font-size: clamp(30px, 8.2vw, 36px); }
  .dialog-content .button { font-size: 13px; line-height: 1.5; gap: 10px; }
  .included-list li { font-size: 14px; line-height: 1.6; }
}
