/* ===== Doctor page · หมอเก่ง ===== */

/* ================== 01 · HERO (compact) ================== */
.doc-hero {
  padding: 0 0 var(--space-xl);
  background: var(--color-canvas);
}
.doc-hero__banner {
  width: 100%;
  background: var(--color-surface-dark);
  overflow: hidden;
}
.doc-hero__banner img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 720px;
  object-fit: cover;
  object-position: center top;
}
.doc-hero__below {
  padding-top: clamp(16px, 2vw, 24px);
}
.doc-hero__intro {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: center;
}
.doc-hero__intro .kicker { margin-top: 0; }
.doc-hero__intro .doc-hero__name { margin-top: 2px; }
.doc-hero__intro .page-hero__crumbs { justify-content: center; margin-bottom: 0; }
.doc-hero__intro .kicker { justify-content: center; }
.doc-hero__name {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.035em;
  font-size: clamp(32px, 4.4vw, 52px);
  line-height: 1.05;
  color: var(--color-ink);
  margin: 0;
}
.doc-hero__license {
  font: var(--type-caption);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted);
  padding: 6px 16px;
  background: var(--color-surface-soft);
  border-radius: var(--radius-pill);
  border: 1px solid var(--color-hairline);
}
.doc-hero__tagline {
  font-size: 17px;
  line-height: 1.7;
  color: var(--color-body);
  max-width: 60ch;
  margin: 0;
}
.doc-hero__quote {
  font-family: var(--font-display);
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 500;
  line-height: 1.4;
  color: var(--color-primary);
  margin: var(--space-md) 0 0;
  padding: var(--space-lg) var(--space-xl);
  background: var(--color-surface-soft);
  border-left: 3px solid var(--color-primary);
  border-radius: var(--radius-md);
  max-width: 56ch;
  text-align: left;
}
.doc-hero__ctas {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
  justify-content: center;
  margin-top: var(--space-md);
}
@media (max-width: 720px) {
  .doc-hero__banner img { max-height: 480px; }
  .doc-hero__intro { text-align: left; align-items: flex-start; }
  .doc-hero__intro .kicker { justify-content: flex-start; }
  .doc-hero__intro .page-hero__crumbs { justify-content: flex-start; }
  .doc-hero__ctas { justify-content: flex-start; width: 100%; }
  .doc-hero__ctas .btn { width: 100%; justify-content: center; }
}

/* ================== 03 · PHILOSOPHY (premium quote card · compact) ================== */
section[data-screen-label="04.03 Philosophy"] {
  padding-top: var(--space-md);
  padding-bottom: var(--space-xl);
}
.philo-card {
  max-width: 900px;
  margin: 0 auto;
  background: linear-gradient(180deg, var(--color-canvas) 0%, var(--color-surface-soft) 100%);
  border: 1px solid var(--color-hairline);
  border-radius: var(--radius-xl);
  padding: clamp(24px, 3.5vw, 48px) clamp(20px, 3vw, 48px);
  position: relative;
  text-align: center;
  box-shadow: 0 12px 36px rgba(45, 106, 79, 0.06);
  overflow: hidden;
}
.philo-card::before,
.philo-card::after {
  content: "";
  position: absolute;
  width: 80px;
  height: 80px;
  border: 1px solid var(--color-primary);
  opacity: 0.35;
}
.philo-card::before {
  top: 24px; left: 24px;
  border-right: 0;
  border-bottom: 0;
  border-top-left-radius: var(--radius-md);
}
.philo-card::after {
  bottom: 24px; right: 24px;
  border-left: 0;
  border-top: 0;
  border-bottom-right-radius: var(--radius-md);
}

.philo-card__kicker {
  display: inline-block;
  font: var(--type-caption-uppercase);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-primary);
  font-weight: 600;
  margin-bottom: var(--space-sm);
}

.philo-card__quote-wrap {
  position: relative;
  display: inline-block;
  padding: 28px 56px 36px;  /* breathing room so quote marks sit OUTSIDE text */
  margin: 0 auto;
}
.philo-card__quote-mark {
  position: absolute;
  font-family: var(--font-display);
  font-size: clamp(72px, 9vw, 120px);
  line-height: 1;
  color: var(--color-primary);
  opacity: 0.16;
  font-weight: 700;
  pointer-events: none;
  user-select: none;
}
.philo-card__quote-mark {
  top: -8px;
  left: -6px;
}
.philo-card__quote-mark--close {
  top: auto;
  bottom: -36px;
  left: auto;
  right: -6px;
}
.philo-card__quote {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.45;            /* more breathing between lines */
  letter-spacing: -0.02em;
  color: var(--color-ink);
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 1;
}

.philo-card__attribution {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: var(--space-md);
  text-align: left;
}
.philo-card__sig {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--color-primary);
  color: var(--color-on-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.philo-card__attribution strong {
  display: block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 17px;
  color: var(--color-ink);
  line-height: 1.2;
}
.philo-card__attribution span {
  font: var(--type-caption);
  color: var(--color-muted);
  letter-spacing: 0.02em;
}

.philo-card__divider {
  width: 60px;
  height: 1px;
  background: var(--color-hairline);
  margin: var(--space-md) auto;
}

.philo-card__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  max-width: 62ch;
  margin: 0 auto;
  text-align: left;
}
.philo-card__body p {
  font-size: 16px;
  line-height: 1.6;
  color: var(--color-body);
  margin: 0;
}
.philo-card__body strong {
  color: var(--color-ink);
  font-weight: 600;
}

@media (max-width: 640px) {
  .philo-card::before,
  .philo-card::after { width: 50px; height: 50px; }
  .philo-card__attribution { flex-direction: column; gap: 8px; text-align: center; }
  .philo-card__quote-mark { font-size: 70px; }
  .philo-card__quote-mark { top: -12px; left: -16px; }
  .philo-card__quote-mark--close { bottom: -42px; right: -16px; }
}

/* ================== 04 · EDUCATION (premium card layout) ================== */
.edu-feature {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: var(--space-xl);
  align-items: center;
  background: var(--color-canvas);
  border: 1px solid var(--color-hairline);
  border-left: 4px solid var(--color-primary);
  border-radius: var(--radius-lg);
  padding: var(--space-xl) var(--space-xxl);
  margin: 0 auto var(--space-xl);
  max-width: 980px;
  box-shadow: 0 8px 24px rgba(45, 106, 79, 0.06);
}
.edu-feature__crest {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: var(--color-canvas);
  border: 1px solid var(--color-hairline);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
  padding: 8px;
}
.edu-feature__logo {
  width: 100%;
  max-width: 280px;
  height: 175px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: visible;
  background: transparent;
  border: 0;
  padding: 0;
}
.edu-feature__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.edu-feature__copy { display: flex; flex-direction: column; gap: 8px; }
.edu-feature__tag {
  font: var(--type-caption-uppercase);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-primary);
  font-weight: 600;
}
.edu-feature__title {
  font-family: var(--font-display);
  font-size: clamp(24px, 2.6vw, 32px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--color-ink);
  margin: 0;
}
.edu-feature__th {
  font-size: 17px;
  color: var(--color-body);
  margin: 0;
  font-weight: 500;
}
.edu-feature__institution {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 6px;
  padding-top: 12px;
  border-top: 1px solid var(--color-hairline-soft);
}
.edu-feature__institution-name {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 19px;
  color: var(--color-ink);
}
.edu-feature__country {
  font: var(--type-caption);
  color: var(--color-muted);
  font-style: italic;
}

.edu-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-lg);
  max-width: 980px;
  margin: 0 auto;
}
.edu-card {
  background: var(--color-canvas);
  border: 1px solid var(--color-hairline);
  border-radius: var(--radius-md);
  padding: var(--space-lg) var(--space-xl);
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: var(--space-md);
  align-items: flex-start;
  transition: transform 0.2s var(--ease), border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.edu-card:hover {
  transform: translateY(-2px);
  border-color: var(--color-primary);
  box-shadow: 0 8px 20px rgba(20, 20, 19, 0.06);
}
.edu-card__logo {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
  flex-shrink: 0;
  overflow: visible;
  padding: 0;
}
.edu-card__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  mix-blend-mode: multiply;
}
.edu-card__copy { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.edu-card__tag {
  font: var(--type-caption-uppercase);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-primary);
  font-weight: 500;
}
.edu-card__title {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.25;
  color: var(--color-ink);
  margin: 4px 0 0;
}
.edu-card__institution {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--color-hairline-soft);
}
.edu-card__institution strong {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-ink);
}
.edu-card__institution span {
  font: var(--type-caption);
  color: var(--color-muted);
}

@media (max-width: 720px) {
  .edu-feature { grid-template-columns: 1fr; padding: var(--space-lg) var(--space-xl); text-align: left; }
  .edu-feature__crest,
  .edu-feature__logo { margin: 0; }
  .edu-grid { grid-template-columns: 1fr; }
}

/* ================== 05 · KCL / 07 · TRAINER galleries ================== */
/* Bento layout — mixed landscape + portrait for visual rhythm */
.doc-gallery {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: 1fr 1fr;
  gap: var(--space-md);
  aspect-ratio: 16 / 9;
}
.doc-gallery__item {
  margin: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-surface-card);
  transition: transform 0.25s var(--ease);
  min-width: 0;
  min-height: 0;
}
.doc-gallery__item:hover { transform: translateY(-3px); }
.doc-gallery__item image-slot {
  display: block !important;
  width: 100% !important; height: 100% !important;
  aspect-ratio: auto !important;
  --slot-radius: 0;
  --slot-border: 0;
  --slot-bg: var(--color-surface-card);
}
/* Bento cell placements (5 items) */
.doc-gallery__item:nth-child(1) { grid-column: 1 / 8;  grid-row: 1; }        /* landscape big */
.doc-gallery__item:nth-child(2) { grid-column: 8 / 13; grid-row: 1 / 3; }   /* portrait tall right */
.doc-gallery__item:nth-child(3) { grid-column: 1 / 4;  grid-row: 2; }        /* portrait */
.doc-gallery__item:nth-child(4) { grid-column: 4 / 6;  grid-row: 2; }        /* portrait small */
.doc-gallery__item:nth-child(5) { grid-column: 6 / 8;  grid-row: 2; }        /* portrait small */

@media (max-width: 1024px) {
  .doc-gallery {
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: auto auto auto;
    aspect-ratio: auto;
  }
  .doc-gallery__item:nth-child(1) { grid-column: 1 / 7; grid-row: 1; aspect-ratio: 16/10; }
  .doc-gallery__item:nth-child(2) { grid-column: 1 / 4; grid-row: 2; aspect-ratio: 4/5; }
  .doc-gallery__item:nth-child(3) { grid-column: 4 / 7; grid-row: 2; aspect-ratio: 4/5; }
  .doc-gallery__item:nth-child(4) { grid-column: 1 / 4; grid-row: 3; aspect-ratio: 4/5; }
  .doc-gallery__item:nth-child(5) { grid-column: 4 / 7; grid-row: 3; aspect-ratio: 4/5; }
}
@media (max-width: 640px) {
  .doc-gallery { grid-template-columns: 1fr 1fr; }
  .doc-gallery__item:nth-child(n) { grid-column: auto; grid-row: auto; aspect-ratio: 4/5; }
  .doc-gallery__item:nth-child(1) { grid-column: 1 / 3; aspect-ratio: 16/10; }
}

/* ================== 06 · ROLES ================== */
.doc-roles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg);
}
.doc-role {
  background: var(--color-canvas);
  border: 1px solid var(--color-hairline);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
  display: flex;
  flex-direction: column;
  gap: var(--space-sm);
  transition: border-color 0.25s var(--ease), transform 0.25s var(--ease);
}
.doc-role:hover {
  border-color: var(--color-primary);
  transform: translateY(-2px);
}
.doc-role__icon {
  width: 56px;
  height: 56px;
  border-radius: var(--radius-md);
  background: var(--color-surface-soft);
  color: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--space-sm);
}
.doc-role h3 {
  font-family: var(--font-display);
  font-size: clamp(22px, 2vw, 26px);
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--color-ink);
  margin: 0;
}
.doc-role__name {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 16px;
  color: var(--color-primary);
  margin: 0;
}
.doc-role__body {
  font: var(--type-body-sm);
  color: var(--color-body);
  line-height: 1.55;
  margin: 0;
  padding-top: var(--space-sm);
  border-top: 1px solid var(--color-hairline-soft);
}

@media (max-width: 880px) { .doc-roles { grid-template-columns: 1fr; } }

/* ================== 08 · AWARDS aspect override ================== */
section[data-screen-label="04.08 Awards"] .award-card__image {
  aspect-ratio: 4/5;
}

/* ================== 09 · INTERNATIONAL CONFERENCES ================== */
.doc-conf {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg);
}
.doc-conf__item {
  background: var(--color-canvas);
  border: 1px solid var(--color-hairline);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color 0.25s var(--ease), transform 0.25s var(--ease);
}
.doc-conf__item:hover {
  border-color: var(--color-primary);
  transform: translateY(-3px);
}
.doc-conf__image {
  aspect-ratio: 4/3;
  background: var(--color-surface-card);
  overflow: hidden;
}
.doc-conf__image image-slot {
  display: block !important;
  width: 100% !important; height: 100% !important;
  aspect-ratio: auto !important;
  --slot-radius: 0;
  --slot-border: 0;
  --slot-bg: var(--color-surface-card);
}
.doc-conf__meta {
  padding: var(--space-lg) var(--space-xl) var(--space-xl);
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}
.doc-conf__year {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: 18px;
  color: var(--color-primary);
}
.doc-conf__item h3 {
  font: var(--type-title-md);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--color-ink);
  margin: 0;
  font-size: 19px;
}
.doc-conf__loc {
  font: var(--type-caption-uppercase);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin: 0;
}
.doc-conf__desc {
  font: var(--type-body-sm);
  color: var(--color-body);
  line-height: 1.55;
  margin-top: var(--space-xs);
}

@media (max-width: 880px) { .doc-conf { grid-template-columns: 1fr; } }

/* ================== 10 · CERTIFICATIONS ================== */
.doc-cert-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: var(--space-xl);
  justify-content: center;
}
.doc-cert-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-md);
  align-items: start;
}
.doc-cert-item {
  margin: 0;
  aspect-ratio: 3/4;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-canvas);
  border: 1px solid var(--color-hairline);
  cursor: pointer;
  transition: transform 0.25s var(--ease), border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.doc-cert-item--portrait { aspect-ratio: 3/4; }
.doc-cert-item--landscape { aspect-ratio: 4/3; }
.doc-cert-item:hover {
  transform: translateY(-3px);
  border-color: var(--color-primary);
  box-shadow: 0 12px 28px rgba(20, 20, 19, 0.08);
}
.doc-cert-item image-slot {
  display: block !important;
  width: 100% !important; height: 100% !important;
  aspect-ratio: auto !important;
  --slot-radius: 0;
  --slot-border: 0;
  --slot-bg: var(--color-surface-card);
  --slot-fit: contain;
}

/* Education layout — mixed portrait + landscape, uniform row height
   Layout: P · L · L (จุฬา center) · L · P */
.doc-cert-grid--edu {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: stretch;
  gap: var(--space-sm);
  max-width: 1280px;
  margin: 0 auto;
  /* Override grid base styles */
  grid-template-columns: none;
}
.doc-cert-grid--edu .doc-cert-item {
  /* Uniform height — width is computed from aspect-ratio.
     2 portrait (3/4) + 3 landscape (4/3) + 4 gaps × 16px = 5.5h + 64
     For 1100px container → h ≈ 188px. Clamped responsively. */
  height: clamp(160px, 14vw, 200px);
  flex: 0 0 auto;
  width: auto;
}
.doc-cert-grid--edu .doc-cert-item--portrait {
  aspect-ratio: 3 / 4;   /* tall — width = height × 0.75 */
}
.doc-cert-grid--edu .doc-cert-item--landscape {
  aspect-ratio: 4 / 3;   /* wide — width = height × 1.333 */
}

/* Mobile — wrap to 2-column grid */
@media (max-width: 880px) {
  .doc-cert-grid { grid-template-columns: repeat(3, 1fr); }
  .doc-cert-grid--edu {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    max-width: 100%;
  }
  .doc-cert-grid--edu .doc-cert-item {
    height: auto;
    width: auto;
  }
}
@media (max-width: 560px) {
  .doc-cert-grid { grid-template-columns: repeat(2, 1fr); }
  .doc-cert-grid--edu { grid-template-columns: 1fr; }
}
</content>
</invoke>