/* Public presentation only; the private review editor keeps its approved layout. */
body.warm {
  --radius: .625rem; --card-radius: 1rem; --section-space: 2.25rem;
  font-size: 1rem; line-height: 1.7;
}
body.warm h1 { font-size: clamp(2.25rem, 1.6rem + 2.75vw, 3.75rem); line-height: 1.12; }
body.warm h2 { font-size: clamp(2rem, 1.4rem + 2vw, 3rem); line-height: 1.15; }
body.warm h3 { font-size: 1.25rem; }
body.warm h4 { font-size: 1.125rem; }
body.warm :is(p,li,a,summary,h1,h2,h3,h4) { overflow-wrap: anywhere; }
.warm :is(.hero-copy,.hero-visual,.section-heading > div,.service-card) { min-width: 0; }
.warm .brand { max-width: 100%; min-width: 0; }
.warm .brand-logo { max-width: 100%; }
.warm :is(h3,h4,summary) { text-wrap: balance; }
.warm .copy-unit { white-space: nowrap; }
.warm :is(.service-limits,.advocate-areas,.preview-pending,.experience,.certification-list) li { text-wrap: pretty; }
.warm :is(.advocate-areas,.experience,.certification-list) li { text-wrap: balance; }
.warm .section { padding-block: var(--section-space); }
/* Anchor navigation accounts for the section's own top padding. */
.warm #advocates { scroll-margin-top: calc(-1 * var(--section-space)); }
.warm .section-heading { margin-bottom: 2.5rem; }
.warm .eyebrow { font-size: .75rem; letter-spacing: .12em; margin-bottom: 1.25rem; }
.warm .button { font-size: .9375rem; border-radius: var(--radius); min-height: 3rem; padding: .875rem 1.25rem; }
.warm .button-small { font-size: .875rem; }
.warm .text-link { font-size: .9375rem; }
.warm .hero { padding-block: clamp(2rem, 1rem + 3vw, 4rem) 0; }
.warm .hero-inner { gap: clamp(2rem, 1rem + 2vw, 3rem); }
.warm :is(.about-grid,.faq-grid) { gap: clamp(2.5rem, 5vw, 4rem); }
@media(min-width:1101px) {
  .warm .hero-inner {
    grid-template-columns: calc((100% - clamp(2rem, 1rem + 2vw, 3rem)) * .55) calc((100% - clamp(2rem, 1rem + 4vw, 5rem)) * .41);
  }
}
.warm .hero-copy { padding-block: 1rem; }
.warm .hero-intro { font-size: 1.0625rem; line-height: 1.7; max-width: 60ch; margin-top: 1.5rem; }
.warm .portrait { border-radius: 15rem 15rem var(--radius) var(--radius); }
.warm .photo-card { border-radius: var(--radius); padding: .375rem .875rem; gap: .5rem; left: -2.5rem; bottom: 1.5rem; }
.warm .photo-card > .icon { display: none; }
.warm .photo-card strong { font-size: 1rem; }
.warm .photo-card span, .warm .photo-card .founder-role { font-size: .6875rem; }
.warm .photo-card .founder-role { margin-top: 0; line-height: 1.4; }
.warm .about-copy p { font-size: 1rem; max-width: 62ch; }
.warm .about-copy p + p { margin-top: 1.125rem; }
.warm .need-links { gap: 1rem; margin-top: 2rem; }
.warm .need-links > a { border-radius: var(--radius); font-size: .9375rem; }
.warm .services { background: var(--surface); border-block: 1px solid var(--line); }
.warm .services-heading { gap: 2.5rem; align-items: start; }
.warm .services-heading p { font-size: 1rem; max-width: none; }
.warm .services-heading > div:last-child { align-self: center; }
.warm .services-heading > div:last-child p { margin-bottom: 0; }
.warm .school-terms { margin-bottom: 1.5rem; max-width: 75ch; font-size: .9375rem; }
.warm :is(.school-terms,.advocate-background) summary { cursor: pointer; font-weight: 600; padding-block: .75rem; min-height: 2.75rem; }
.warm .school-terms p { color: var(--muted); padding: .25rem 0 .75rem; }
.warm .school-terms dl { margin: .5rem 0 1rem; }
.warm .school-terms dl > div { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: .75rem; padding-block: .375rem; }
.warm .school-terms dt { font-weight: 600; }
.warm .school-terms dd { margin: 0; color: var(--muted); text-wrap: pretty; }
.warm .pricing-nav { gap: .5rem 1.5rem; padding-block: .875rem; }
.warm .pricing-nav a { font-size: .9375rem; min-height: 2.75rem; display: inline-flex; align-items: center; }
.warm .consultation-note { font-size: .9375rem; color: var(--muted); max-width: none; margin: 1rem 0 2rem; text-wrap: balance; }
.warm .payment-preview-note { font-size: .875rem; color: var(--muted); margin: -1rem 0 2rem; text-wrap: pretty; }
.warm .service-action .button:disabled { opacity: .65; cursor: not-allowed; box-shadow: none; transform: none; }
.warm .service-grid { gap: 1.25rem; align-items: start; }
.warm .individual-service-grid { align-items: stretch; }
.warm .service-category { margin-block: 2rem; }
.warm .individual-service-grid > .service-category:last-child { margin-bottom: 0; }
.warm .service-category > h3 { margin-bottom: 1.25rem; }
.warm .service-category .service-grid { align-items: stretch; }
@media(min-width:961px) {
  .warm .service-category .service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.warm .bundle-grid { align-items: stretch; }
.warm #services .service-card .service-best-for { font-size: .875rem; line-height: 1.6; color: var(--muted); padding-bottom: 0; margin-top: .75rem; margin-bottom: .75rem; }
.warm .service-best-for strong { color: var(--ink); }
@supports (grid-template-rows: subgrid) {
  .warm .bundle-grid { row-gap: 0; }
  .warm #services .bundle-grid .service-card { display: grid; grid-row: span 7; grid-template-rows: subgrid; margin-bottom: 1.25rem; }
  .warm .bundle-grid .service-purchase { display: grid; grid-row: 6 / span 2; grid-template-rows: subgrid; margin-top: 0; }
  .warm .bundle-grid .service-price { grid-row: 1; }
  .warm .bundle-grid .service-action { grid-row: 2; }
}
.warm #services .service-card { background: var(--paper); padding: 1.5rem; border-radius: var(--card-radius); }
.warm #services .service-card h4 { font-size: 1.25rem; line-height: 1.35; }
.warm #services .service-card .service-description { font-size: .9375rem; line-height: 1.7; }
.warm #services .service-card .service-description p { margin-bottom: 0; }
.warm #services .service-card .service-limits { font-size: .9375rem; margin-top: 1.25rem; }
.warm #services .service-card .service-price strong { font-size: 2rem; }
.warm .service-top { margin-bottom: 1rem; }
.warm .service-number { font-size: .75rem; color: var(--muted); }
.warm .service-timing { font-size: .875rem; text-wrap: balance; }
.warm .service-purchase { padding-top: 1.5rem; }
.warm .service-included-heading { font-size: .875rem; margin: .75rem 0 0; }
.warm #services .service-card .service-limits { margin-top: .5rem; }
.warm .shared-service-timing { margin: 0; border: 0; padding: 0; }
.warm .shared-service-timing summary { cursor: pointer; font-weight: 600; }
.warm .shared-service-timing p { max-width: none; margin-top: 1rem; font-size: .9375rem; }
.warm .services-heading { margin-bottom: 1.25rem; }
.warm .service-guides { margin-bottom: 1rem; padding: .4rem 1rem; border-radius: .75rem; background: color-mix(in srgb, var(--ink) 4%, transparent); }
.warm .service-guides > details { max-width: none; margin: 0; border: 0; padding: 0; font-size: .9375rem; }
.warm .service-guides summary { padding-block: .4rem; min-height: 2.75rem; display: list-item; }
.warm .service-guides details[open] { padding-bottom: .5rem; }
.warm .service-guides .shared-service-timing p { margin: .5rem 0; }
.warm .pricing-nav { border: 0; padding-block: .35rem; margin-bottom: .5rem; }
.warm .bundle-comparison { font-size: .8125rem; line-height: 1.6; margin-top: .625rem; color: var(--muted); }
.warm #services .bundle-featured { border: 2px solid var(--accent); padding: calc(1.5rem - 1px); }
.warm .savings-badge { font-size: .8125rem; background: var(--soft); color: var(--ink); border-radius: var(--radius); }
.warm #services .bundle-grid .service-price { align-items: center; gap: .75rem; }
.warm #services .bundle-grid .savings-badge { margin: 0; font-size: .8125rem; color: var(--ink); white-space: nowrap; }
.warm .pricing-note { font-size: .9375rem; max-width: none; text-wrap: balance; }
.warm .service-group-title { margin-block: 1.5rem; }
.warm .monthly-title { margin-top: 3rem; }
.warm .service-policies { margin-top: 2.5rem; max-width: 80ch; }
.warm .service-policies h3 { margin-bottom: .75rem; }
.warm .preview-pending { background: var(--soft); border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: var(--card-radius); padding: 1.5rem; margin-bottom: 2rem; }
.warm .preview-pending p { margin: 0; }
.warm .preview-pending ul { padding-left: 1.25rem; margin: 1rem 0 0; font-size: .9375rem; color: var(--muted); }
.warm .preview-pending li + li { margin-top: .875rem; }
.warm .preview-pending strong { color: var(--ink); }
.warm .booking-preview-note { margin-top: 1rem; max-width: 70ch; font-size: .875rem; line-height: 1.65; color: var(--muted); text-wrap: balance; }
.warm #contact .booking-preview-note { font-size: .875rem; color: inherit; }
.warm .service-policies details { border-bottom: 1px solid var(--line); }
.warm .service-policies summary { font-size: .9375rem; min-height: 2.75rem; }
.warm .service-policies p { font-size: .9375rem; color: var(--muted); }
.warm .service-disclosure { font-size: .875rem; margin-top: 2rem; max-width: none; text-wrap: balance; }
.warm .process-grid { gap: 2rem; }
.warm .process-grid p { font-size: 1rem; }
.warm .process-grid h3 { font-size: 1.25rem; }
.warm .step-number { font-size: 2rem; margin-bottom: 1.25rem; padding-bottom: .75rem; }
.warm .advocate-heading { gap: 2.5rem; align-items: end; }
.warm .advocate-introduction p { font-size: 1rem; max-width: 62ch; }
.warm .advocate-grid { align-items: start; gap: 1.25rem; }
.warm .advocate-card { border-radius: var(--card-radius); overflow: hidden; background: var(--surface); }
.warm .advocate-photo { margin: 1.25rem 1.25rem 0; border-radius: var(--radius); }
.warm .advocate-bio { padding: 1.5rem; }
.warm .advocate-bio h3 { font-size: 1.25rem; line-height: 1.4; }
.warm .advocate-summary { font-size: .9375rem; line-height: 1.7; margin-top: .875rem; color: var(--muted); }
.warm .advocate-areas-heading { font-size: .875rem; margin-top: 1.5rem; }
.warm .advocate-areas { display: block; margin-top: .75rem; padding-left: 1.125rem; list-style: disc; }
.warm .advocate-areas > li { background: none; border-radius: 0; font-size: .875rem; padding: 0; margin-bottom: .5rem; color: var(--muted); }
.warm .advocate-areas > li::marker { color: var(--accent); }
.warm .advocate-background { border-top: 1px solid var(--line); margin-top: 1.5rem; font-size: .875rem; }
.warm .advocate-bio:has(> .advocate-background:not([open])) { padding-bottom: 0; }
.warm .advocate-background p { color: var(--muted); font-size: .9375rem; margin-top: 1rem; }
.warm .credentials { background: var(--soft); }
.warm .background-intro { display: grid; grid-template-columns: minmax(0, 18rem) minmax(0, 1fr); align-items: center; gap: clamp(2rem, 5vw, 4rem); margin-bottom: 3rem; }
.warm .background-intro .section-heading { margin-bottom: 0; }
.warm .background-portrait img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; border-radius: 50% 50% .625rem .625rem / 40% 40% .625rem .625rem; }
.warm .background-portrait figcaption { margin-top: .875rem; font-size: .9375rem; text-align: center; }
.warm .first-conversation-panel.consultation-scene-panel { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: center; }
.warm .consultation-scene-panel .consultation-host-portrait { aspect-ratio: 3 / 2; border-radius: .625rem; }
.warm .consultation-scene-panel .consultation-host-portrait img { object-position: center; }
.warm .combined-working-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: center; gap: clamp(2rem, 4vw, 3rem); }
.warm .combined-working-layout .consultation-host-portrait { aspect-ratio: 3 / 2; border-radius: .625rem; }
.warm .combined-working-layout .consultation-host-portrait img { object-position: center; }
.warm .combined-working-copy p { margin: 0; font-size: 1rem; line-height: 1.65; color: #e5ece7; }
.warm .combined-working-steps { display: grid; gap: 1.5rem; }
.warm .combined-working-steps h3 { font-family: var(--font-body); font-size: clamp(1.375rem, 1.1rem + .5vw, 1.5rem); line-height: 1.25; font-weight: 500; color: #fffefa; }
.warm .combined-working-steps p { margin-top: .5rem; }
.warm .combined-working-boundary { margin-top: 1rem; font-size: .875rem; line-height: 1.65; color: #e5ece7; }
.warm #how-it-works > .container > .section-heading .eyebrow { color: #e6c48e; }
.warm .combined-working-copy .button { background: #fffefa; color: #102e26; }
.warm .combined-working-copy .first-conversation-action { display: flex; justify-content: center; }
.warm .combined-working-action { display: flex; justify-content: center; margin-top: 2rem; }
.warm .combined-working-action .button { background: #fffefa; color: #102e26; }
@media (max-width: 767px) {
  .warm .combined-working-layout { grid-template-columns: 1fr; }
  .warm .combined-working-layout .consultation-host { width: 100%; }
}
@media (max-width: 767px) {
  .warm .background-intro, .warm .first-conversation-panel.consultation-scene-panel { grid-template-columns: 1fr; }
  .warm .background-portrait { width: min(100%, 18rem); margin-inline: auto; }
  .warm .consultation-scene-panel .consultation-host { width: 100%; }
}
.warm .credential-feature { border-radius: var(--card-radius); }
.warm .credential-feature p { font-size: 1rem; }
.warm :is(.education-list strong,.certification-list li,.experience li,.experience-heading p) { font-size: .9375rem; }
.warm :is(.education-list span,.education-list small) { font-size: .875rem; }
.warm .experience-lists { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem; align-items: start; }
.warm .experience .experience-column { display: flex; flex-direction: column; gap: 1rem; }
.warm .faq-list summary { font-size: 1rem; min-height: 3rem; padding-block: 1.25rem; }
.warm .faq-list details > p { font-size: 1rem; line-height: 1.7; max-width: 70ch; }
.warm .faq-number { font-size: .75rem; }
.warm .faq .section-title > p:not(.eyebrow) { font-size: 1rem; }
.warm .contact { padding-block: var(--section-space); }
.warm .contact h2 { font-size: clamp(2rem, 1.4rem + 2vw, 3rem); max-width: 20ch; }
.warm .contact-inner > div > p:not(.eyebrow) { font-size: 1rem; max-width: 65ch; }
.warm .contact-details p:not(.eyebrow) { font-size: .9375rem; }
.warm .contact-details .contact-phone-label { margin: .75rem 0 0; }
.warm .footer-disclosure { font-size: .875rem; }
.warm .footer-bottom { font-size: .8125rem; }
.warm .theme-control { font-size: .75rem; }
.warm .theme-control select { border-radius: var(--radius); }
.warm :is(a,button,summary,select):focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
.warm .contact :is(a,button):focus-visible { outline-color: #fffefa; }
html[data-color-mode="dark"] .warm #services .service-card { background: var(--paper); }
html[data-color-mode="dark"] .warm .contact :is(a,button):focus-visible { outline-color: var(--ink); }
.warm .not-found > p:not(.eyebrow) { margin-block: 1.5rem; max-width: 60ch; }
@media(prefers-color-scheme:dark) {
  html:not([data-color-mode]) .warm .button { background: #a9d2b7; border-color: #a9d2b7; color: #14231c; }
  html:not([data-color-mode]) .warm .contact { background: #243c30; color: #e9efe9; }
  html:not([data-color-mode]) .warm .brand-logo { background: #fffefa; padding: .4375rem; border-radius: var(--radius); }
}
@media(min-width:701px) and (max-width:1100px) {
  .warm .advocate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .warm .experience-lists { grid-template-columns: 1fr; }
  .warm .header-inner { gap: .75rem; }
  .warm .site-header nav { gap: .875rem; }
  .warm .brand-logo { width: 11rem; }
}
@media(max-width:960px) {
  .warm .site-header nav > a:not(.button) { font-size: 1rem; padding: .5rem; }
  .warm .site-header nav.is-open { max-height: calc(100dvh - 10rem); overflow-y: auto; }
  html:not([data-js]) .warm .site-header { position: static; }
  html:not([data-js]) .warm .menu-button { display: none; }
  html:not([data-js]) .warm .site-header nav { display: flex; position: static; flex-wrap: wrap; gap: .75rem; width: 100%; padding: .75rem 0; border: 0; box-shadow: none; }
}
@media(max-width:700px) {
  .warm .photo-card { left: -1.375rem; }
  .warm .experience-lists { grid-template-columns: 1fr; }
  .warm .advocate-grid { grid-template-columns: 1fr; }
  .warm .container { width: calc(100% - 2.5rem); }
  .warm .hero-inner { gap: 2rem; }
  .warm .hero-copy { padding-block: .5rem 0; }
  .warm .hero-actions { align-items: stretch; }
  .warm .hero-actions .button { width: 100%; }
  .warm .hero-actions .text-link { align-self: flex-start; }
  .warm .hero-visual { max-width: 20rem; }
  .warm :is(.about-grid,.services-heading,.advocate-heading,.faq-grid) { gap: 1.5rem; }
  .warm .section-heading { margin-bottom: 2rem; }
  .warm .need-links > a { padding: 1rem; }
  .warm .process-grid { gap: 2rem; }
  .warm .advocate-bio { padding: 1.25rem; }
  .warm .faq-list details > p { padding-left: 1.75rem; padding-right: .25rem; }
  .warm .contact .button { width: 100%; }
  .warm .contact-details { padding-left: 0; }
  .warm .brand-logo { width: 11rem; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } }
.contact-form-wrap { margin-top:3rem; }
.contact-form { max-width:44rem; padding:2rem; border:1px solid #ffffff70; border-radius:var(--radius, 12px); }
.contact-form h3 { font-size:1.5rem; }
.contact-form p { margin-block:1rem; font-size:.9375rem; }
.contact-form fieldset { border:0; padding:0; margin:1.5rem 0 0; min-width:0; }
.contact-form legend { font-size:.875rem; padding:0; margin-bottom:1rem; }
.contact-form label { display:block; margin-block:1.25rem .375rem; }
.contact-form input, .contact-form textarea { display:block; box-sizing:border-box; width:100%; min-height:48px; font:inherit; font-size:1rem; padding:.75rem; border:1px solid #70786e; border-radius:6px; background:var(--paper); color:var(--ink); }
.contact-form textarea { resize:vertical; }
.contact-form .button:disabled { opacity:.65; cursor:not-allowed; }
@media(max-width:700px) { .contact-form { padding:1.25rem; } }
/* Validation appears after interaction and includes written feedback. */
.contact-field-error { display: none; font-size: .9rem; }
.contact-form [aria-invalid="true"] { outline: 2px solid #a13226; outline-offset: 2px; }
.contact-form [aria-invalid="true"] + .contact-field-error { display: block; }
.contact-form-status { min-height: 1.5em; }
.contact-spam-check { max-width: 100%; margin-block: 1rem; }

/* Meeting bundles share the site's palette, with a distinct section background. */
.warm .meeting-bundle-section { margin-block: clamp(3rem, 6vw, 5rem) 1.5rem; padding: clamp(1rem, 2.5vw, 2rem); background: var(--soft); border: 1px solid var(--line); border-radius: var(--card-radius); scroll-margin-top: 6rem; }
.warm .meeting-bundle-section .service-group-title { margin: 0 0 1.5rem; border: 0; padding: 0; }
.warm .meeting-bundle-section h3 { font-family: var(--font-heading, Georgia, serif); font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: 1.25; }
.warm .meeting-bundle-section .eyebrow { margin-bottom: .5rem; }
.warm .bundle-intro { max-width: none; font-size: .9375rem; margin-top: .75rem; color: var(--muted); }
.warm .bundle-discovery-link { display: block; width: fit-content; max-width: 100%; margin: .5rem 0 1rem; font-size: .9375rem; color: var(--ink); text-underline-offset: .2em; }
.warm .bundle-discovery-link span { font-weight: 600; color: var(--accent); }
.warm .bundle-focus-label { display: block; margin-top: .75rem; font-family: var(--font-body, inherit); font-size: .8125rem; font-weight: 600; line-height: 1.5; color: var(--accent); }
.warm .bundle-value-note { margin: 0 0 .75rem; color: var(--muted); font-size: .8125rem; line-height: 1.5; }
.warm .meeting-bundle-section .service-action .button { white-space: normal; text-align: center; line-height: 1.4; min-height: 3.5rem; }
.warm .meeting-bundle-section .savings-badge { padding: .375rem .625rem; background: var(--accent); color: var(--paper); font-weight: 700; }
@supports (grid-template-rows: subgrid) {
  .warm .meeting-bundle-section .service-purchase { grid-row: 6 / span 3; }
  .warm #services .meeting-bundle-section .service-card { grid-row: span 8; }
  .warm .meeting-bundle-section .bundle-value-note { grid-row: 1; }
  .warm #services .meeting-bundle-section .service-price { grid-row: 2; }
  .warm #services .meeting-bundle-section .service-action { grid-row: 3; }
}

.warm .meeting-bundle-section .service-group-title { display: block; }
.warm #services .meeting-bundle-section .savings-badge { color: var(--paper); }
.warm .meeting-bundle-section .service-action { display: flex; }
.warm .meeting-bundle-section .service-action .button { flex: 1; align-self: stretch; }

.warm .process-grid .step-icon { display: block; color: var(--accent); margin-bottom: 1.25rem; }
.warm .step-icon svg { display: block; width: 1.75rem; height: 1.75rem; }

.warm .preview-terms { border-block: 1px solid var(--line); }
.warm .preview-terms .container { max-width: 62rem; }
.warm .preview-terms h2 { margin-block: .5rem 1.25rem; }
.warm .preview-terms h3 { margin-block: 2rem 1rem; }
.warm .preview-terms p, .warm .preview-vendor-followups { font-size: 1rem; line-height: 1.7; }
.warm .preview-terms-intro { max-width: 52rem; }
.warm .preview-terms-version { color: var(--muted); overflow-wrap: anywhere; }
.warm .preview-term-list details { border-block-start: 1px solid var(--line); }
.warm .preview-term-list details:last-child { border-block-end: 1px solid var(--line); }
.warm .preview-term-list summary { cursor: pointer; padding-block: 1rem; font-weight: 600; font-size: 1rem; }
.warm .preview-term-list summary:focus-visible, .warm .preview-terms-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.warm .preview-term-copy { padding-block-end: .5rem; overflow-wrap: anywhere; }
.warm .preview-vendor-followups { padding-inline-start: 1.5rem; }
.warm .preview-vendor-followups li { margin-block-end: 1rem; }
.warm .preview-terms-link { display: inline-block; margin-block: 0 1.5rem; color: var(--ink); text-underline-offset: .2em; }

/* Small feedback on interactive elements; the public layout stays in place. */
html[data-public-appearance][data-color-mode="light"] { color-scheme: light; }
html[data-public-appearance][data-color-mode="dark"] { color-scheme: dark; }
.warm .button { transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease; }
.warm .individual-service-grid .service-card { transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease; }
.warm .individual-service-grid .service-card:focus-within { border-color: var(--accent); box-shadow: 0 8px 24px #00000012; }
.warm .theme-toggle { display: inline-flex; justify-content: center; width: 44px; height: 44px; min-height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: var(--paper); color: var(--ink); transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease; }
.warm .theme-toggle svg { width: 20px; height: 20px; }
.warm .faq-number { display: inline-block; transform-origin: center; transition: transform 180ms ease, color 180ms ease; }
.warm .faq-list details[open] .faq-number { transform: rotate(45deg); color: var(--accent); }
.warm .faq-toggle { transition: transform 180ms ease; }
.warm .faq-toggle::after { transition: transform 180ms ease; }
.warm .faq-list details[open] .faq-toggle { transform: rotate(45deg); }
.warm .faq-list details[open] .faq-toggle::after { transform: rotate(90deg); }

/* One editorial panel makes bundles read as combined support. */
.warm .meeting-bundle-section {
  --ink: #fffefa; --muted: #e5ece7; --paper: #385a48; --accent: #e6c48e; --line: #9bb19f;
  background: #385a48; color: var(--ink); border-color: var(--line);
  padding: clamp(1.5rem, 4vw, 3.5rem);
}
.warm .meeting-bundle-section .service-group-title { display: block; padding-bottom: 1.25rem; border-bottom: 1px solid var(--line); margin-bottom: 2rem; }
.warm .meeting-bundle-section h3 { font-family: var(--heading); font-size: clamp(1.75rem, 3vw, 2.75rem); }
.warm #services .meeting-bundle-section .service-card { background: transparent; border: 0; border-radius: 0; padding: 0; margin-bottom: 0; box-shadow: none; }
html[data-color-mode="dark"] .warm #services .meeting-bundle-section .service-card { background: transparent; }
.warm .meeting-bundle-section .bundle-grid { gap: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.warm #services .meeting-bundle-section .service-card + .service-card { border-left: 1px solid var(--line); padding-left: 1.75rem; margin-left: 1.75rem; }
.warm #services .meeting-bundle-section .service-price .savings-badge { background: #e6c48e; color: #102e26; }
.warm .meeting-bundle-section .bundle-focus-label { color: var(--accent); }
.warm #services .meeting-bundle-section .button,
html[data-color-mode="dark"] .warm #services .meeting-bundle-section .button { background: #fffefa !important; border-color: #fffefa !important; color: #102e26 !important; }
.warm .meeting-bundle-section :is(a,button):focus-visible { outline-color: #fffefa; }
@media(min-width:961px) {
  .warm #services .meeting-bundle-section .service-card { padding: .75rem 1.25rem; }
  .warm #services .meeting-bundle-section .service-card + .service-card { margin-left: 0; padding-left: 1.25rem; }
}
@media(max-width:960px) {
  .warm .meeting-bundle-section .bundle-grid { grid-template-columns: 1fr; gap: 2rem; }
  .warm #services .meeting-bundle-section .service-card { display: flex; flex-direction: column; grid-row: auto; }
  .warm #services .meeting-bundle-section .service-card + .service-card { border-left: 0; padding-left: 0; margin-left: 0; border-top: 1px solid var(--line); padding-top: 2rem; }
  .warm .meeting-bundle-section .service-purchase { display: block; margin-top: auto; }
}

/* The call invitation stands apart from contact details and the message form. */
.warm #contact, html[data-color-mode="dark"] .warm #contact { background: var(--paper); color: var(--ink); }
.warm #contact .contact-inner { display: block; }
.warm .consultation-panel { position: relative; isolation: isolate; overflow: hidden; padding: clamp(1.5rem, 5vw, 4rem); border-radius: var(--card-radius); background: #385a48; color: #fffefa; }
.warm #contact .consultation-panel h2 { font-size: clamp(2.25rem, 4.4vw, 4rem); max-width: 23ch; }
.warm #contact .consultation-panel > p:not(.eyebrow) { max-width: 65ch; color: #d1dfd8; }
.warm #contact .consultation-panel .button,
html[data-color-mode="dark"] .warm #contact .consultation-panel .button { background: #fffefa !important; border-color: #fffefa !important; color: #102e26 !important; }
.warm .consultation-decoration { position: absolute; z-index: -1; pointer-events: none; width: 21rem; height: 21rem; right: -6rem; bottom: -10rem; border: 1px solid #57746a; border-radius: 50% 50% 0 0; transform: rotate(23deg); }
.warm .consultation-decoration img { position: absolute; width: 5.5rem; height: 5.5rem; top: 5rem; left: 6rem; transform: rotate(-23deg); filter: brightness(0) invert(94%); }
.warm #contact .contact-details { margin-top: 2.5rem; border: 0; padding-left: 0; }
.warm #contact :is(a,button):focus-visible { outline-color: var(--ink); }
.warm #contact .consultation-panel :is(a,button):focus-visible { outline-color: #fffefa; }
.warm #contact .contact-form { border-color: var(--line); }
.warm #contact .contact-form .button { margin-top: 1rem; }
.warm #contact .contact-form .button { background: var(--accent); border-color: var(--accent); color: #fffefa; }
html[data-color-mode="dark"] .warm #contact .contact-form .button { background: #a9d2b7 !important; border-color: #a9d2b7 !important; color: #14231c !important; }
@media(max-width:700px) {
  .warm .consultation-decoration { width: 13rem; height: 13rem; bottom: -9rem; right: -5rem; opacity: .45; }
  .warm .consultation-decoration img { display: none; }
}
@media(hover:hover) and (pointer:fine) {
  .warm .button:not(:disabled):hover { transform: translateY(-2px); box-shadow: 0 6px 16px #00000020; }
  html[data-color-mode="dark"] .warm .button:not(:disabled):hover { background: #c9e8d4 !important; border-color: #c9e8d4 !important; }
  .warm .individual-service-grid .service-card:hover { transform: translateY(-3px); border-color: var(--accent); box-shadow: 0 8px 24px #00000012; }
  .warm .theme-toggle:hover { transform: translateY(-2px); background: var(--soft); border-color: var(--accent); }
  .warm #services .meeting-bundle-section .button:not(:disabled):hover,
  html[data-color-mode="dark"] .warm #services .meeting-bundle-section .button:not(:disabled):hover,
  .warm #contact .consultation-panel .button:hover,
  html[data-color-mode="dark"] .warm #contact .consultation-panel .button:hover { background: #e6eee8 !important; border-color: #e6eee8 !important; }
}
.warm .button:not(:disabled):active, .warm .theme-toggle:active { transform: translateY(0); }
@media(prefers-reduced-motion:reduce) {
  .warm :is(.button,.theme-toggle,.faq-number,.faq-toggle,.individual-service-grid .service-card) { transform: none !important; transition: none !important; }
  .warm .faq-list details[open] .faq-toggle::after { transform: none; }
}

/* Manus-inspired compact actions and open, aligned supporting information. */
.warm #services .service-card:is(:hover,:focus-within) { border-color: #385a48; }
html[data-color-mode="dark"] .warm #services .service-card:is(:hover,:focus-within) { border-color: #a9d2b7; }
.warm .service-category + .service-category { margin-top: clamp(3rem, 5vw, 4.5rem); }
.warm .service-disclosure { border: 0; padding-top: 0; text-align: center; }
.warm .services { border-bottom: 0; }
.warm .service-guides { display: grid; grid-template-columns: 1fr; gap: 1.25rem; padding: 0; background: none; align-items: stretch; margin-block: 1.75rem 1.25rem; }
.warm .service-guides > details { border-block: 1px solid var(--line); min-width: 0; }
.warm .service-guides summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-block: 1rem; list-style: none; }
.warm .service-guides summary::-webkit-details-marker { display: none; }
.warm .service-guides summary::after { content: '+'; color: var(--accent); font-size: 1.25rem; }
.warm .service-guides details[open] summary::after { content: '×'; }
.warm .service-guides .school-terms dl > div { grid-template-columns: 8rem minmax(0, 1fr); }
.warm #services .service-price { align-items: center; gap: .625rem; flex-wrap: nowrap; }
.warm #services .service-price .service-action { display: flex; flex: 0 0 44px; margin: 0 0 0 auto; padding: 0; grid-row: auto; }
.warm #services .service-action .service-request,
html[data-color-mode="dark"] .warm #services .service-action .service-request {
  width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%;
  background: transparent !important; border-color: var(--ink) !important; color: var(--ink) !important; box-shadow: none;
}
.warm #services .service-request .icon { width: 18px; height: 18px; }
.warm #services .service-request:disabled { opacity: .65; }
@supports(grid-template-rows: subgrid) {
  .warm #services .meeting-bundle-section .service-card { grid-row: span 7; }
  .warm .meeting-bundle-section .service-purchase { grid-row: 6 / span 2; }
}
.warm #services .meeting-bundle-section .service-price { gap: .5rem; }
.warm #services .meeting-bundle-section .savings-badge { padding: .25rem .375rem; font-size: .75rem; }
.warm #services .meeting-bundle-section .service-card:is(:hover,:focus-within) { outline: 1px solid #a9d2b7; outline-offset: -1px; }
.warm #contact .contact-support-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(2rem, 6vw, 5rem); margin-top: clamp(3rem, 6vw, 5rem); }
.warm #contact .contact-details { margin: 0; min-width: 0; }
.warm #contact .contact-phone-label { font-family: var(--heading); font-weight: 400; font-size: 2rem; margin: 1.25rem 0; }
.warm #contact .contact-details > a { width: fit-content; max-width: 100%; font-family: var(--heading); font-size: clamp(1.25rem, 2vw, 1.75rem); text-decoration: underline; text-decoration-thickness: 1px; }
.warm #contact .contact-availability { margin-top: 2rem; padding-top: 1.75rem; border-top: 1px solid var(--line); }
.warm #contact .contact-availability + p { margin-top: 1.25rem; }
.warm #contact .contact-details > p:not(.eyebrow) { max-width: 34ch; }
.warm #contact .contact-form-wrap { margin: 0; min-width: 0; }
.warm #contact .contact-form { max-width: none; border: 0; padding: 0; }
.warm #contact .contact-form h3 { font-family: var(--heading); font-weight: 400; font-size: 2rem; }
.warm #contact .contact-form fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 2rem; }
.warm #contact .contact-form legend { margin-bottom: 1.5rem; }
.warm #contact .contact-field { min-width: 0; }
.warm #contact .contact-field-wide { grid-column: 1 / -1; }
.warm #contact .contact-field label { margin: 0 0 .5rem; font-size: .875rem; font-weight: 600; }
.warm #contact .contact-field :is(input,textarea) { background: transparent; color: var(--ink); border: 0; border-bottom: 1px solid var(--muted); border-radius: 0; padding: .5rem 0; }
.warm #contact .contact-field textarea { min-height: 8rem; }
.warm #contact .contact-field :is(input,textarea):focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.warm #contact .contact-form .button { grid-column: 1 / -1; justify-self: start; width: auto; }
@media(hover:hover) and (pointer:fine) {
  .warm #services .service-action .service-request:not(:disabled):hover,
  html[data-color-mode="dark"] .warm #services .service-action .service-request:not(:disabled):hover { background: color-mix(in srgb, var(--ink) 8%, transparent) !important; border-color: var(--ink) !important; }
}
@media(max-width:700px) {
  .warm .service-guides { grid-template-columns: 1fr; gap: 0; }
  .warm .service-guides > details:not(:last-child) { border-bottom: 0; }
  .warm .service-guides summary { padding-block: .75rem; }
  .warm .service-guides summary::after { flex-shrink: 0; }
  .warm .service-guides .school-terms dl > div { grid-template-columns: 6.5rem minmax(0, 1fr); }
  .warm #contact .contact-support-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .warm #contact .contact-form fieldset { grid-template-columns: 1fr; }
}

/* Compact cards keep complete explanations and a clear reading rhythm. */
.warm #services .service-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; margin-bottom: .75rem; }
.warm #services .service-heading h4 { flex: 1; min-width: 0; margin: 0; }
.warm #services .service-heading > .icon { width: 22px; height: 22px; color: var(--accent); margin-top: .125rem; }
.warm #services .service-card .service-description { margin-top: 0; font-size: .875rem; line-height: 1.6; }
.warm #services .service-card .service-best-for { font-size: .875rem; line-height: 1.6; margin-block: .75rem; }
.warm #services .service-card .service-included-heading { font-size: .875rem; line-height: 1.5; margin-top: .375rem; }
.warm #services .service-card .service-limits { font-size: .875rem; line-height: 1.6; }
.warm #services .service-card .service-limits li { padding-left: 1.125rem; }
.warm #services .service-card .service-limits li + li { margin-top: .375rem; }
.warm #services .service-purchase { padding-top: 1rem; }
.warm #services .service-card .service-price { padding-top: .75rem; padding-bottom: 0; }
@media(max-width:700px) {
  .warm #services .service-card :is(.service-description,.service-best-for,.service-limits) { font-size: .9375rem; line-height: 1.6; }
}

/* Editorial accents on main headings and their section labels. */
.warm .eyebrow { display: flex; align-items: center; gap: .625rem; }
.warm .eyebrow::before { content: ''; width: 1.125rem; height: 1px; background: var(--accent); flex: 0 0 1.125rem; }
.warm .consultation-panel .eyebrow::before { background: #e6c48e; }
html[data-public-appearance] .warm :is(h1,h2,h3) em { font-style: italic; font-weight: inherit; color: inherit; }

/* Independent transforms preserve each supplied portrait's existing crop. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .warm :is(.portrait,.advocate-photo,.consultation-host-portrait) > img {
    scale: 1;
    transition: scale 1000ms cubic-bezier(.2,.65,.3,1);
  }
  .warm :is(.portrait,.advocate-photo,.consultation-host-portrait):hover > img {
    scale: 1.035;
  }
}

/* A prominent experience figure balances the first-person account beside it. */
.warm .experience { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); align-items: start; gap: clamp(2rem, 5vw, 4rem); border-top: 0; margin-top: 3rem; padding-top: 0; }
.warm .experience-heading h3 { display: flex; align-items: center; gap: 1rem; margin: 0; }
.warm .experience-stat { font-family: var(--heading); font-size: clamp(5rem, 8vw, 6.5rem); font-weight: 400; line-height: .9; letter-spacing: -.075em; color: var(--accent); }
.warm .experience-stat-label { font-family: 'Segoe UI', Arial, sans-serif; font-size: .75rem; font-weight: 500; line-height: 1.5; letter-spacing: .06em; text-transform: uppercase; }
.warm .experience-content > p { font-size: 1rem; line-height: 1.6; color: var(--muted); margin: 0 0 1.25rem; }
.warm .experience .experience-list { display: grid; grid-template-columns: 1fr; gap: .5rem; }
.warm .experience .experience-list li { display: grid; grid-template-columns: .75rem minmax(0, 1fr); gap: .375rem; font-size: .875rem; line-height: 1.6; text-wrap: pretty; }
.warm .experience .experience-list li::before { content: '–'; color: var(--accent); }
@media(max-width:700px) {
  .warm .experience { grid-template-columns: 1fr; gap: 1.75rem; }
  .warm .experience .experience-list li { font-size: .9375rem; }
}

/* Coral accents follow the Manus reference without changing primary green UI. */
body.warm { --orange-detail: #df6e52; --orange-ui: #ce5638; --orange-text: #b1472f; --orange-display: #ce5638; }
html[data-color-mode="dark"] body.warm { --orange-ui: #f28c70; --orange-text: #f28c70; --orange-display: #df6e52; }
.warm .eyebrow::before,
.warm .hero-copy .eyebrow::before,
.warm .consultation-panel .eyebrow::before { background: var(--orange-detail); }
.warm .photo-decoration,
.warm .photo-decoration::after { border-color: var(--orange-detail); }
.warm .process-grid .step-icon,
.warm #services .service-heading > .icon { color: var(--orange-ui); }
.warm #services .individual-service-grid .service-limits li::before,
.warm .experience .experience-list li::before { color: var(--orange-detail); }
.warm .experience-stat,
.warm .credential-seal { color: var(--orange-display); }
.warm .credential-seal span { color: var(--muted); }
.warm .faq-list .faq-number,
.warm .faq-list details[open] .faq-number { color: var(--orange-text); }
.warm .faq-toggle,
.warm .service-guides summary::after { color: var(--orange-ui); }
.warm :is(.advocate-background,.website-privacy) summary::marker { color: var(--orange-ui); }
.warm :is(.advocate-background,.website-privacy) summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; list-style: none; }
.warm :is(.advocate-background,.website-privacy) summary::-webkit-details-marker { display: none; }
.warm :is(.advocate-background,.website-privacy) summary::after { content: '+'; color: var(--orange-ui); font-size: 1.25rem; }
.warm :is(.advocate-background,.website-privacy)[open] summary::after { content: '×'; }
.warm #site-nav > a:not(.button):is(:hover,:focus-visible) { text-decoration: underline; text-decoration-color: var(--orange-detail); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.warm #contact .contact-details > a { text-decoration-color: var(--orange-detail); }

/* Light service cards sit above the warm cream canvas. */
html[data-color-mode="light"] .warm .services { background: var(--paper); }
html[data-color-mode="light"] .warm #services .individual-service-grid .service-card { background: var(--surface); }
