/* Refined physician profile system */
:root {
  --paper: #f6f4f0;
  --paper-deep: #eeece7;
  --navy-deep: #1d2947;
  --purple-soft: #a798bc;
  --shadow-soft: 0 24px 70px rgba(29, 41, 71, 0.09);
}

body {
  background: #fbfaf7;
  text-rendering: optimizeLegibility;
}

.shell { max-width: 1370px; }
.section { padding-top: 104px; padding-bottom: 104px; }
.section-heading { margin-bottom: 42px; }
.section-heading h2 { margin-top: 11px; }
.section-heading p { max-width: 330px; }

.announcement {
  padding: 9px;
  background: var(--navy-deep);
  letter-spacing: 2.2px;
}

.header {
  height: 82px;
  border-color: rgba(38, 53, 87, 0.12);
  box-shadow: 0 10px 34px rgba(29, 41, 71, 0.06);
}

.header-socials { display: flex; align-items: center; gap: 6px; }
.header-socials a {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid rgba(38, 53, 87, 0.16);
  border-radius: 50%;
  color: var(--navy);
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}
.header-socials a:hover {
  border-color: var(--navy);
  background: var(--navy);
  color: #fff;
  transform: translateY(-2px);
}
.header-socials svg { width: 14px; height: 14px; }
#headerLinkedin svg,
#headerTiktok svg { fill: currentColor; }
#headerInstagram svg { fill: none; stroke: currentColor; stroke-width: 1.8; }
#headerInstagram .fill-dot { fill: currentColor; stroke: none; }

.nav a { position: relative; }
.nav a::after {
  position: absolute;
  right: 0;
  bottom: -9px;
  left: 0;
  height: 1px;
  background: var(--purple);
  content: '';
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}
.nav a:hover::after { transform: scaleX(1); }

.contact-cta,
.primary-btn {
  box-shadow: 0 8px 22px rgba(38, 53, 87, 0.12);
  transition: background 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}
.contact-cta:hover,
.primary-btn:hover {
  background: #33466f;
  box-shadow: 0 12px 26px rgba(38, 53, 87, 0.16);
  transform: translateY(-2px);
}

/* Hero */
.hero {
  min-height: 790px;
  padding-top: 62px;
  padding-bottom: 76px;
  background: radial-gradient(circle at 82% 28%, rgba(116, 97, 143, 0.09), transparent 29%);
}
.hero h1 {
  max-width: 670px;
  margin: 0 0 28px;
  font-family: 'DM Sans', sans-serif;
  font-size: clamp(58px, 6.2vw, 92px);
  font-weight: 500;
  letter-spacing: -0.07em;
  line-height: 0.96;
}
.hero h1 em {
  font-family: inherit;
  font-weight: 400;
}
.hero-intro { max-width: 510px; line-height: 1.75; }
.hero-buttons { margin-top: 28px; }
.hero-foot { margin-top: 45px; }
.hero-art { height: 680px; margin-left: 38px; }
.portrait-wrap {
  inset: 0 0 36px;
  box-shadow: 0 28px 70px rgba(29, 41, 71, 0.18);
}
.portrait-wrap,
.portrait-placeholder { background: #d8dce3; }
.portrait-placeholder img { object-position: center 17%; }
.hero-art-bottom {
  right: 0;
  justify-content: flex-start;
  color: var(--navy);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(14px, 1.25vw, 18px);
  font-weight: 500;
  letter-spacing: 0.025em;
}
.hero-art-bottom strong { color: var(--purple); font-weight: 600; }

/* Professional overview */
.credential-strip {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: linear-gradient(112deg, #ebe8e3 0%, #f5f2ed 48%, #eceaf1 100%);
  box-shadow: inset 0 12px 30px rgba(29, 41, 71, 0.025), 0 16px 45px rgba(29, 41, 71, 0.045);
}
.credential-inner {
  display: grid;
  min-height: 124px;
  grid-template-columns: repeat(4, 1fr);
  align-items: stretch;
}
.credential-inner > div {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  padding: 20px 27px;
  border-left: 1px solid #d9d6d0;
}
.credential-inner > div:first-child { padding-left: 0; border-left: 0; }
.credential-inner small {
  color: var(--purple);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.6px;
}
.credential-inner strong {
  max-width: 250px;
  color: var(--navy);
  font-family: 'Playfair Display', serif;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.35;
}
.location-country {
  color: #747b89;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.35px;
  text-transform: uppercase;
}

/* About and expertise */
.about-main h2 { margin-bottom: 24px; }
.lead { font-size: 23px; line-height: 1.58; }
.about-grid { margin: 38px 0; }
.expertise-section { background: var(--paper); }
.expertise-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;
}
.expertise-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(64, 72, 100, 0.12);
  background: linear-gradient(105deg, #fff 0%, #faf9fb 57%, #f0edf4 100%);
  box-shadow: 0 14px 38px rgba(29, 41, 71, 0.075);
  transition: box-shadow 180ms ease, transform 180ms ease;
}
.expertise-card:nth-child(even) {
  background: linear-gradient(105deg, #fff 0%, #f8f9fb 57%, #e9edf4 100%);
}
.expertise-card::after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--purple), var(--blue));
  content: '';
}
.expertise-card:hover,
.expertise-card[open] {
  box-shadow: 0 20px 48px rgba(29, 41, 71, 0.13);
  transform: translateX(5px);
}
.expertise-summary {
  display: grid;
  min-height: 112px;
  grid-template-columns: 82px minmax(260px, 0.75fr) minmax(280px, 1.25fr) 40px;
  align-items: center;
  gap: 24px;
  padding: 24px 32px;
  list-style: none;
  cursor: pointer;
}
.expertise-summary::-webkit-details-marker { display: none; }
.expertise-index {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid rgba(116, 97, 143, 0.3);
  border-radius: 50%;
  color: var(--purple);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.4px;
}
.expertise-title {
  color: var(--navy);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 25px;
  font-weight: 500;
  line-height: 1.25;
}
.expertise-summary-text,
.expertise-more p { margin: 0; color: #68707e; font-size: 13px; line-height: 1.65; }
.expertise-toggle {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid rgba(38, 53, 87, 0.25);
  border-radius: 50%;
  color: var(--navy);
  font-size: 22px;
  font-weight: 300;
  line-height: 1;
  transition: background 160ms ease, color 160ms ease, transform 180ms ease;
}
.expertise-card[open] .expertise-toggle {
  background: var(--navy);
  color: #fff;
  transform: rotate(45deg);
}
.expertise-more {
  margin: 0 32px 0 138px;
  padding: 20px 72px 24px 0;
  border-top: 1px solid rgba(64, 72, 100, 0.12);
}
.expertise-more p { max-width: 830px; color: #555f71; }

/* Credentials */
.profile-section { position: relative; }
.profile-layout {
  display: grid;
  grid-template-columns: minmax(300px, 0.76fr) minmax(0, 1.4fr);
  gap: 34px;
  align-items: start;
}
.profile-image-card {
  position: sticky;
  top: 112px;
  overflow: hidden;
  border: 1px solid #dcd8d1;
  background: #fff;
  box-shadow: 0 24px 65px rgba(29, 41, 71, 0.13);
}
.profile-photo-frame {
  height: clamp(285px, 28vw, 370px);
  overflow: hidden;
  background: #d8dce3;
}
.profile-photo-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 31%;
  filter: saturate(0.82) contrast(1.02);
}
.profile-photo-caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 17px 19px;
}
.profile-photo-caption > span {
  color: var(--purple);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.5px;
}
.profile-photo-caption a {
  color: var(--navy);
  font-size: 11px;
  text-decoration: none;
}
.profile-photo-caption a span { margin-left: 7px; color: var(--purple); }
.profile-photo-caption a:hover { text-decoration: underline; text-underline-offset: 4px; }
.profile-details {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid #dcd8d1;
  border-left: 1px solid #dcd8d1;
  background: #fff;
  box-shadow: 0 24px 65px rgba(29, 41, 71, 0.12);
}
.profile-details .profile-detail {
  min-height: 0;
  padding: 27px 30px;
  border-right: 1px solid #dcd8d1;
  border-bottom: 1px solid #dcd8d1;
}
.profile-details .profile-detail--role {
  display: grid;
  grid-template-columns: 165px 1fr;
  grid-column: 1 / -1;
  align-items: center;
  column-gap: 28px;
  min-height: 146px;
  background: linear-gradient(120deg, #1d2947 0%, #293b66 68%, #4b446d 130%);
  color: #fff;
}
.profile-detail--role .mini-label { grid-row: 1 / 3; color: #c6b8d8; }
.profile-detail--role h3 { color: #fff; }
.profile-detail--role p { color: #bdc5d9; }
.profile-details h3 { margin: 0 0 7px; font-size: 25px; line-height: 1.28; }
.profile-details p,
.profile-details li { color: #707683; font-size: 12px; line-height: 1.65; }
.profile-details p { margin-bottom: 0; }
.profile-details ul { margin: 12px 0 0; padding: 0; list-style: none; }
.profile-details li { position: relative; padding-left: 15px; }
.profile-details li::before {
  position: absolute;
  top: 0;
  left: 0;
  color: var(--purple-soft);
  content: '•';
}
.profile-details li + li { margin-top: 6px; }
.training-languages {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.training-languages .mini-label { margin-bottom: 8px; }
.training-languages p { color: var(--navy); letter-spacing: 0.02em; }

/* Appointment callout */
.appointment-section {
  padding: 58px 0;
  scroll-margin-top: 90px;
  background: linear-gradient(118deg, #192540 0%, #26375e 58%, #4c426a 135%);
  color: #fff;
  box-shadow: inset 0 24px 55px rgba(8, 13, 28, 0.16);
}
.appointment-layout {
  display: grid;
  grid-template-columns: 1fr minmax(380px, 0.78fr);
  gap: 56px;
  align-items: center;
}
.appointment-section .eyebrow { color: #c7b7dc; }
.appointment-section h2 { margin: 12px 0 16px; color: #fff; font-size: clamp(40px, 4.3vw, 62px); }
.appointment-section h2 em { color: #c7b7dc; }
.appointment-section p { max-width: 580px; margin-bottom: 12px; color: #bac2d7; line-height: 1.62; }
.medical-note { font-size: 11px; }
.appointment-card {
  padding: 27px 29px;
  border: 1px solid rgba(215, 221, 239, 0.24);
  background: #2b3a61;
  box-shadow: 0 24px 60px rgba(10, 17, 36, 0.22);
}
.appointment-card .mini-label { color: #c7b7dc; }
.appointment-phone {
  display: block;
  margin: 10px 0 5px;
  font-family: 'Playfair Display', serif;
  font-size: clamp(33px, 3.5vw, 48px);
}
.appointment-card > p { margin-bottom: 18px; }
.booking-links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.booking-links a {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 13px;
  border: 1px solid #68769c;
  color: #fff;
  font-size: 11px;
  transition: background 160ms ease, color 160ms ease;
}
.booking-links a:hover { background: #fff; color: var(--navy); }
.booking-links .primary-booking {
  grid-column: 1 / -1;
  background: #fff;
  color: var(--navy);
  font-weight: 700;
}

/* Editorial profile sections */
.editorial-section {
  padding-top: 82px;
  padding-bottom: 82px;
  border-top: 1px solid rgba(38, 53, 87, 0.08);
}
.editorial-section .section-heading {
  align-items: center;
  margin-bottom: 34px;
  padding-bottom: 25px;
  border-bottom: 1px solid #d9d7d2;
}
.editorial-section .section-heading > div {
  display: grid;
  grid-template-columns: 105px minmax(0, 1fr);
  align-items: baseline;
  gap: 26px;
}
.editorial-section .section-heading h2 {
  margin: 0;
  font-size: clamp(35px, 3.65vw, 52px);
  letter-spacing: -0.045em;
  line-height: 1.08;
}
.editorial-section .section-heading p {
  max-width: 390px;
  margin: 0;
}
.editorial-section .eyebrow { white-space: nowrap; }
.timeline-entry { padding: 24px 13px; transition: background 160ms ease; }
.timeline-entry h3 { font-size: 24px; }
.timeline-entry[role='button'] { cursor: pointer; }
.timeline-entry[role='button']:hover { background: rgba(255, 255, 255, 0.7); }
.publication-item { padding: 24px 4px; transition: background 160ms ease, padding 160ms ease; }
.publication-item:hover { padding-right: 12px; padding-left: 12px; background: #fff; }
.publication-item h3 { font-size: 23px; }
.publication-item .arrow {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid #d8d3df;
  border-radius: 50%;
  font-size: 16px;
}
.event-grid,
.news-grid { gap: 18px; }
.event-card,
.news-card {
  min-height: 300px;
  border-color: #dfdcd6;
  background: linear-gradient(145deg, #fff 0%, #fbfaf8 62%, #f0edf4 120%);
  box-shadow: 0 16px 42px rgba(29, 41, 71, 0.09);
}
.news-card { min-height: 215px; }
.card-art { height: 145px; }
.card-content { padding: 20px; }
.card-content h3 { font-size: 21px; }
.media-grid { gap: 12px; }
.media-item { border: 1px solid #e1ddd7; box-shadow: 0 14px 34px rgba(29, 41, 71, 0.1); }
.contact-section { padding: 74px 0; background: linear-gradient(115deg, #e5e6eb 0%, #efedf2 58%, #e3dde9 100%); }
.footer { padding-top: 48px; }
.contact-right .email-big:not([href]) { opacity: 0.5; pointer-events: none; }
.detail-source {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  font-size: 11px;
}
.detail-resource {
  padding: 12px 15px;
  background: var(--navy);
  color: #fff !important;
  text-decoration: none !important;
}

@media (max-width: 1100px) {
  .credential-inner { grid-template-columns: repeat(2, 1fr); }
  .credential-inner > div:nth-child(3) { border-left: 0; }
  .expertise-summary { grid-template-columns: 68px minmax(210px, 0.75fr) minmax(240px, 1.25fr) 38px; }
  .profile-layout { grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr); gap: 26px; }
  .profile-details .profile-detail { padding: 24px; }
  .profile-details .profile-detail--role { grid-template-columns: 135px 1fr; }
  .appointment-layout { gap: 45px; }
}

@media (max-width: 980px) and (min-width: 831px) {
  .contact-cta { display: none; }
}

@media (max-width: 830px) {
  .section { padding-top: 78px; padding-bottom: 78px; }
  .header { height: 75px; }
  .nav { top: 75px; }
  .hero { min-height: auto; padding-top: 54px; padding-bottom: 64px; }
  .hero-art { height: 630px; margin-left: 0; }
  .credential-inner { padding-right: 6%; padding-left: 6%; }
  .credential-inner > div { padding: 20px 18px; }
  .credential-inner > div:first-child { padding-left: 18px; }
  .expertise-summary { grid-template-columns: 64px 1fr 38px; gap: 14px 18px; padding: 22px 24px; }
  .expertise-summary-text { grid-column: 2; }
  .expertise-toggle { grid-row: 1 / 3; grid-column: 3; }
  .expertise-more { margin-left: 106px; padding-right: 24px; }
  .editorial-section .section-heading > div { grid-template-columns: 90px minmax(0, 1fr); gap: 18px; }
  .editorial-section .section-heading h2 { font-size: 38px; }
  .profile-layout { grid-template-columns: 1fr; }
  .profile-image-card { position: relative; top: auto; max-width: none; }
  .profile-photo-frame { height: clamp(300px, 56vw, 430px); }
  .appointment-layout { grid-template-columns: 1fr; }
  .appointment-section { padding: 54px 0; }
  .appointment-card { max-width: 620px; }
  .contact-right { margin-top: 25px; }
}

@media (max-width: 540px) {
  .header-socials { gap: 4px; }
  .header-socials a { width: 28px; height: 28px; }
  .header-socials svg { width: 12px; height: 12px; }
  .hero h1 { font-size: 53px; letter-spacing: -0.065em; }
  .hero-art { height: 530px; }
  .hero-art-bottom { font-size: 13px; }
  .credential-inner { grid-template-columns: 1fr; padding-top: 8px; padding-bottom: 8px; }
  .credential-inner > div,
  .credential-inner > div:first-child {
    padding: 16px 0;
    border-bottom: 1px solid #d9d6d0;
    border-left: 0;
  }
  .credential-inner > div:last-child { border-bottom: 0; }
  .expertise-summary { min-height: 0; grid-template-columns: 48px 1fr 34px; gap: 12px 14px; padding: 20px; }
  .expertise-index { width: 40px; height: 40px; }
  .expertise-title { font-size: 22px; }
  .expertise-summary-text { grid-column: 1 / -1; }
  .expertise-toggle { grid-row: 1; width: 32px; height: 32px; }
  .expertise-more { margin: 0 20px; padding: 18px 0 20px; }
  .editorial-section { padding-top: 64px; padding-bottom: 64px; }
  .editorial-section .section-heading { display: block; padding-bottom: 20px; }
  .editorial-section .section-heading > div { display: block; }
  .editorial-section .section-heading h2 { margin-top: 8px; font-size: 35px; }
  .editorial-section .section-heading p { margin-top: 15px; }
  .profile-photo-frame { height: 265px; }
  .profile-photo-caption { align-items: flex-start; flex-direction: column; gap: 8px; }
  .profile-details { grid-template-columns: 1fr; }
  .profile-details .profile-detail { grid-column: 1; padding: 23px; }
  .profile-details .profile-detail--role {
    display: block;
    grid-column: 1;
    min-height: 0;
  }
  .profile-detail--role .mini-label { margin-bottom: 15px; }
  .profile-details h3 { font-size: 23px; }
  .appointment-card { padding: 28px 22px; }
  .appointment-phone { font-size: 37px; }
  .booking-links { grid-template-columns: 1fr; }
  .booking-links .primary-booking { grid-column: auto; }
  .publication-item:hover { padding-right: 4px; padding-left: 4px; }
}
