/* An illustrated-book composition within Kamelia's existing botanical identity. */
.about-page .page-head { padding-top: 24px; padding-bottom: 32px; }
.about-page .crumbs { margin: 0; line-height: 1.7; }
.about-page .about-opening { padding-top: 0; padding-bottom: 64px; }
.about-page .about-intro { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 72px; align-items: center; }
.about-title-copy h1 { color: var(--text-on-mint); font-family: Nunito, sans-serif; font-size: clamp(3rem, 4.7vw, 4.25rem); font-weight: 800; line-height: 1.08; letter-spacing: -.035em; text-wrap: initial; margin: 0; }
.about-title-copy h1 span { display: block; color: var(--red-deep); }
.about-tagline { max-width: 27ch; margin: 24px 0 0; color: var(--text-on-mint); font-size: clamp(1.25rem, 2vw, 1.625rem); line-height: 1.5; text-wrap: pretty; }
.about-tagline em { font-style: normal; text-decoration: underline; text-decoration-color: var(--mint); text-decoration-thickness: .16em; text-underline-offset: .13em; }
.about-visual { position: relative; isolation: isolate; margin-top: 12px; }
.about-photo { margin: 0; overflow: hidden; border-radius: 64px 18px 64px 18px; }
.about-photo img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
.about-decor { pointer-events: none; user-select: none; object-fit: contain; }
.about-hero-sprig { position: absolute; width: 140px; height: 140px; right: 4px; top: -40px; z-index: -1; transform: rotate(12deg); }
.about-hero-flower { position: absolute; width: 86px; height: 86px; left: -26px; bottom: -22px; transform: rotate(-10deg); }
.about-page .about-story { max-width: 70ch; margin: 64px auto 0; }
.about-story p { font-size: 1.1875rem; line-height: 1.85; margin: 0; }
.about-story p::first-letter { float: left; font-size: 3.6em; line-height: .9; padding-top: .12em; padding-right: .13em; font-weight: 800; color: var(--red-deep); }
.about-story strong { color: var(--text-on-mint); }
.about-section-layout { display: grid; grid-template-columns: minmax(0,280px) minmax(0,1fr); gap: 64px; align-items: start; }
.about-section-heading h2, .about-team h2 { font-family: Nunito, sans-serif; font-size: 2rem; line-height: 1.25; font-weight: 800; letter-spacing: -.015em; color: var(--text-on-mint); text-wrap: pretty; }
.about-section-heading h2 span { display: block; }
.about-page .about-reading-section { padding-top: 0; padding-bottom: 64px; }
.about-reading-section .about-section-layout { padding-top: 36px; border-top: 1px solid var(--border); }
.about-section-layout .article-body > :last-child { margin-bottom: 0; }
.about-founded { color: var(--red-deep); }
.about-space-band { background: var(--leaf-paper); }
.about-page .about-space-section { padding-top: 48px; padding-bottom: 48px; }
.about-space-section .about-section-layout { border: 0; padding-top: 0; }
.about-space-sprig { width: 104px; height: 104px; margin-top: 24px; transform: rotate(-12deg); }
.about-space-section .article-body { color: var(--text-on-mint); }
.article-body .about-spaces { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 28px; margin: 22px 0 28px; padding-left: 1.2em; }
.article-body .about-spaces li { margin: 0; padding: 10px 0 10px 4px; }
.about-page .about-mission-section { background: var(--surface); max-width: none; padding-top: 36px; padding-bottom: 44px; }
.about-mission-section .about-section-layout { max-width: 1112px; margin: 0 auto; }
.about-promise { max-width: 860px; margin: 52px auto 0; padding-top: 36px; border-top: 1px solid var(--border); text-align: center; }
.about-promise-flower { width: 46px; height: 46px; margin: 0 auto 24px; transform: rotate(12deg); }
.about-statement { margin: 0 auto; max-width: 36ch; font-size: clamp(1.5rem, 2.7vw, 2.125rem); line-height: 1.4; font-weight: 800; letter-spacing: -.02em; color: var(--text-on-mint); text-wrap: pretty; }
.about-statement span { color: var(--red-deep); }
.about-promise-note { max-width: 58ch; margin: 20px auto 0; color: var(--text-soft); font-size: 1.0625rem; line-height: 1.75; }
.about-page .about-team { padding-top: 48px; }
.about-team .teachers { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.about-team .teacher { padding: 24px 20px; border-radius: 16px; }
.about-team .teacher h3 { font-family: Nunito, sans-serif; font-size: 1.125rem; font-weight: 800; line-height: 1.4; margin-bottom: 8px; }
.about-team .teacher > span { display: block; font-size: .9375rem; line-height: 1.55; }
.about-team .avatar-initials { background: #E6F1E4; color: var(--text-on-mint); }
@media (max-width: 1000px) {
  .about-page .about-intro { gap: 40px; }
  .about-title-copy h1 { font-size: 3rem; }
  .about-hero-sprig { width: 110px; height: 110px; top: -32px; }
  .about-hero-flower { width: 70px; height: 70px; left: -18px; bottom: -20px; }
  .about-section-layout { grid-template-columns: minmax(0,210px) minmax(0,1fr); gap: 32px; }
  .about-section-heading h2, .about-team h2 { font-size: 1.75rem; }
}
@media (max-width: 760px) {
  .about-page .about-intro { grid-template-columns: 1fr; gap: 36px; }
  .about-title-copy h1 span { display: inline; }
  .about-tagline { max-width: 40ch; }
  .about-visual { width: 100%; max-width: 540px; margin: 8px auto 0; }
  .about-photo img { max-height: 380px; }
  .about-team .teachers { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .about-section-layout { grid-template-columns: 1fr; gap: 24px; }
  .about-section-heading h2 span { display: inline; }
  .about-space-section .about-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
  .about-space-sprig { width: 68px; height: 68px; margin: 0; flex-shrink: 0; }
}
@media (max-width: 560px) {
  .about-page .page-head { padding: 20px 20px 24px; }
  .about-page section.block { padding-right: 20px; padding-left: 20px; }
  .about-title-copy h1 { font-size: clamp(2.375rem, 10vw, 2.75rem); line-height: 1.1; }
  .about-title-copy h1 span { display: block; }
  .about-tagline { max-width: 29ch; font-size: 1.1875rem; line-height: 1.6; margin-top: 18px; }
  .about-photo { border-radius: 44px 14px 44px 14px; }
  .about-hero-sprig { width: 88px; height: 88px; top: -30px; right: 4px; }
  .about-hero-flower { width: 60px; height: 60px; left: -10px; bottom: -18px; }
  .about-page .about-story { margin-top: 48px; }
  .about-story p { font-size: 1.0625rem; line-height: 1.8; }
  .about-story p::first-letter { font-size: 3.2em; }
  .about-section-heading h2, .about-team h2 { font-size: 1.5rem; }
  .about-space-sprig { width: 56px; height: 56px; }
  .article-body .about-spaces { grid-template-columns: 1fr; margin: 16px 0 24px; }
  .article-body .about-spaces li { padding-top: 6px; padding-bottom: 6px; }
  .about-page .about-opening { padding-bottom: 36px; }
  .about-page .about-reading-section { padding-bottom: 36px; }
  .about-page .about-space-section { padding-top: 28px; padding-bottom: 32px; }
  .about-reading-section .about-section-layout { padding-top: 28px; }
  .about-space-section .about-section-layout { padding-top: 0; }
  .about-promise { margin-top: 36px; padding-top: 28px; }
  .about-statement { font-size: 1.5rem; }
  .about-promise-note { font-size: 1rem; }
  .about-team .teachers { grid-template-columns: 1fr; }
  .about-team .teacher { display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 6px 16px; text-align: left; padding: 20px; align-items: center; }
  .about-team .avatar { grid-column: 1; grid-row: 1 / span 2; width: 64px; height: 64px; margin: 0; }
  .about-team .teacher h3 { grid-column: 2; margin: 0; align-self: end; font-size: 1rem; }
  .about-team .teacher > span { grid-column: 2; align-self: start; font-size: .875rem; }
}
@media print {
  .about-decor { display: none; }
  .about-page .about-intro { grid-template-columns: 1fr 1fr; gap: 24px; }
  .about-title-copy h1 { font-size: 28pt; }
  .about-page .about-story { margin-top: 24px; }
  .about-story p::first-letter { float: none; font-size: inherit; padding: 0; }
}
