/* =============================================================
   医師紹介ページ — SWELL競合防止のためすべて .dr-page でスコープ
   ============================================================= */

/* --- Variables --- */
.dr-page {
  --dr-blue-50:  #F0F4FA;
  --dr-blue-100: #DCE5F4;
  --dr-blue-200: #B8CBE8;
  --dr-blue-300: #8AAAD6;
  --dr-blue-400: #5C89C4;
  --dr-blue-500: #3A6DAE;
  --dr-blue-600: #1E4F8E;
  --dr-blue-700: #183F72;
  --dr-blue-800: #123058;
  --dr-blue-900: #0C2240;
  --dr-gold:     #C5A55A;
  --dr-gold-lt:  #DCC88E;
  --dr-g50:  #F5F6F8;
  --dr-g100: #ECEEF2;
  --dr-g200: #DDE0E6;
  --dr-g300: #BFC3CC;
  --dr-g400: #9A9FAB;
  --dr-g500: #787E8A;
  --dr-g600: #5E636E;
  --dr-g700: #464A54;
  --dr-g800: #32363E;
  --dr-g900: #1F2228;
  --dr-white: #FFFFFF;
  --dr-font-d: 'Cormorant Garamond', 'Noto Serif JP', serif;
  --dr-font-h: 'Noto Serif JP', 'Hiragino Mincho ProN', serif;
  --dr-font-b: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif;
}

/* --- Base --- */
.dr-page {
  font-family: var(--dr-font-b) !important;
  font-weight: 300 !important;
  color: var(--dr-g800) !important;
  line-height: 1.8 !important;
  letter-spacing: 0.03em !important;
  -webkit-font-smoothing: antialiased;
  margin-top: -8em !important;
  padding-top: -6em !important;
  margin-bottom: -6em !important;
}

.dr-page *,
.dr-page *::before,
.dr-page *::after {
  box-sizing: border-box !important;
}


/* ========== Page Hero ========== */
.dr-page .dr-hero {
  position: relative !important;
  background: linear-gradient(135deg, var(--dr-blue-800) 0%, var(--dr-blue-600) 50%, var(--dr-blue-500) 100%) !important;
  padding: clamp(5rem, 12vw, 9rem) 2rem clamp(3rem, 8vw, 5rem) !important;
  text-align: center !important;
  overflow: hidden !important;
  margin: 0 !important;
  border: none !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  width: 100vw !important;
}

.dr-page .dr-hero::before {
  content: '' !important;
  position: absolute !important;
  top: -50% !important;
  right: -20% !important;
  width: 600px !important;
  height: 600px !important;
  border-radius: 50% !important;
  background: radial-gradient(circle, rgba(197, 165, 90, 0.08) 0%, transparent 70%) !important;
  pointer-events: none !important;
}

.dr-page .dr-hero::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 80px !important;
  background: linear-gradient(180deg, transparent, var(--dr-white)) !important;
  pointer-events: none !important;
}

.dr-page .dr-hero__en {
  font-family: var(--dr-font-d) !important;
  font-size: clamp(0.7rem, 1.2vw, 0.82rem) !important;
  font-weight: 400 !important;
  letter-spacing: 0.35em !important;
  text-transform: uppercase !important;
  color: var(--dr-gold-lt) !important;
  margin: 0 0 1rem 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
}

.dr-page .dr-hero__title {
  font-family: var(--dr-font-h) !important;
  font-size: clamp(1.6rem, 4vw, 2.4rem) !important;
  font-weight: 400 !important;
  letter-spacing: 0.15em !important;
  color: var(--dr-white) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
}

.dr-page .dr-hero__line {
  display: block !important;
  width: 40px !important;
  height: 1px !important;
  background: linear-gradient(90deg, var(--dr-gold), var(--dr-gold-lt)) !important;
  margin: 1.5rem auto 0 !important;
  border: none !important;
}


/* ========== Container ========== */
.dr-page .dr-container {
  max-width: 960px !important;
  margin: 0 auto !important;
  padding: 0 clamp(1.5rem, 4vw, 3rem) !important;
}

.dr-page .dr-section {
  padding: clamp(3rem, 7vw, 6rem) 0 !important;
  margin: 0 !important;
  border: none !important;
  background: none !important;
}


/* ========== Doctor Profile ========== */
.dr-page .dr-profile {
  display: grid !important;
  grid-template-columns: 320px 1fr !important;
  gap: clamp(2rem, 5vw, 4rem) !important;
  align-items: stretch !important;
}

.dr-page .dr-photo {
  position: relative !important;
  margin-top: 7rem !important;
  display: flex !important;
  flex-direction: column !important;
}

.dr-page .dr-photo__frame {
  position: relative !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  flex: 1 !important;
  min-height: 0 !important;
  background: var(--dr-blue-50) !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.dr-page .dr-photo__frame img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center top !important;
  display: block !important;
  border: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.dr-page .dr-photo__accent {
  display: none !important;
}

/* --- Message --- */
.dr-page .dr-msg { padding-top: 0.5rem !important; }
.dr-page .dr-msg__pos {
  font-family: var(--dr-font-d) !important;
  font-size: 0.78rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  color: var(--dr-blue-500) !important;
  margin: 0 0 0.5rem 0 !important;
  padding: 0 !important;border: none !important;background: none !important;
}
.dr-page .dr-msg__name {
  font-family: var(--dr-font-h) !important;
  font-size: clamp(1.5rem, 3vw, 2rem) !important;
  font-weight: 400 !important;letter-spacing: 0.1em !important;
  color: var(--dr-g900) !important;
  margin: 0 0 0.3rem 0 !important;padding: 0 !important;
  border: none !important;background: none !important;
  border-left: none !important;border-radius: 0 !important;
}
.dr-page .dr-msg__name-en {
  font-family: var(--dr-font-d) !important;
  font-size: 0.85rem !important;font-weight: 400 !important;
  letter-spacing: 0.2em !important;color: var(--dr-g400) !important;
  margin: 0 0 2rem 0 !important;padding: 0 !important;
  border: none !important;background: none !important;
}
.dr-page .dr-msg__heading {
  font-family: var(--dr-font-h) !important;
  font-size: 1.15rem !important;font-weight: 500 !important;
  color: var(--dr-g900) !important;letter-spacing: 0.05em !important;
  margin: 0 0 1.2rem 0 !important;padding: 0 0 0 1em !important;
  border: none !important;border-left: 3px solid var(--dr-blue-600) !important;
  background: none !important;border-radius: 0 !important;
}
.dr-page .dr-msg__text {
  font-size: 0.92rem !important;line-height: 2.1 !important;
  color: var(--dr-g700) !important;
  margin: 0 0 1.4em 0 !important;padding: 0 !important;
  border: none !important;background: none !important;
}
.dr-page .dr-msg__text:last-child { margin-bottom: 0 !important; }


/* ========== Divider ========== */
.dr-page .dr-divider {
  display: flex !important;align-items: center !important;
  justify-content: center !important;gap: 1rem !important;
  padding: 0 2rem !important;margin: 0 !important;
  border: none !important;background: none !important;
}
.dr-page .dr-divider::before,
.dr-page .dr-divider::after {
  content: '' !important;flex: 1 !important;
  height: 1px !important;max-width: 160px !important;border: none !important;
}
.dr-page .dr-divider::before { background: linear-gradient(90deg, transparent, var(--dr-blue-200)) !important; }
.dr-page .dr-divider::after  { background: linear-gradient(90deg, var(--dr-blue-200), transparent) !important; }
.dr-page .dr-divider__diamond {
  width: 6px !important;height: 6px !important;
  background: var(--dr-gold) !important;
  transform: rotate(45deg) !important;flex-shrink: 0 !important;
  border: none !important;padding: 0 !important;margin: 0 !important;
}


/* ========== Career & Quals — 2カラム ========== */
.dr-page .dr-cq-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: clamp(2.5rem, 5vw, 4rem) !important;
  align-items: start !important;
}

/* --- Section Label --- */
.dr-page .dr-label {
  text-align: left !important;
  margin: 0 0 2.5rem 0 !important;padding: 0 !important;
  border: none !important;background: none !important;
}
.dr-page .dr-label__en {
  font-family: var(--dr-font-d) !important;
  font-size: 0.75rem !important;font-weight: 400 !important;
  letter-spacing: 0.35em !important;text-transform: uppercase !important;
  color: var(--dr-blue-500) !important;
  margin: 0 0 0.5rem 0 !important;padding: 0 !important;
  border: none !important;background: none !important;
}
.dr-page .dr-label__ja {
  font-family: var(--dr-font-h) !important;
  font-size: clamp(1.2rem, 2.5vw, 1.6rem) !important;
  font-weight: 400 !important;letter-spacing: 0.12em !important;
  color: var(--dr-g900) !important;
  margin: 0 !important;padding: 0 !important;
  border: none !important;border-left: none !important;
  background: none !important;border-radius: 0 !important;
}
.dr-page .dr-label__line {
  display: block !important;width: 30px !important;height: 1px !important;
  background: linear-gradient(90deg, var(--dr-blue-600), var(--dr-gold)) !important;
  margin: 1rem 0 0 0 !important;border: none !important;padding: 0 !important;
}


/* --- Timeline --- */
.dr-page .dr-timeline {
  position: relative !important;padding-left: 2rem !important;
  margin: 0 !important;border: none !important;background: none !important;
  list-style: none !important;
}
.dr-page .dr-timeline::before {
  content: '' !important;position: absolute !important;
  top: 8px !important;left: 0 !important;bottom: 8px !important;
  width: 1px !important;
  background: linear-gradient(180deg, var(--dr-blue-300), var(--dr-blue-100)) !important;
}
.dr-page .dr-tl-item {
  position: relative !important;
  padding: 0 0 2rem 1.5rem !important;
  margin: 0 !important;border: none !important;
  background: none !important;list-style: none !important;
}
.dr-page .dr-tl-item:last-child { padding-bottom: 0 !important; }
.dr-page .dr-tl-item::before {
  content: '' !important;position: absolute !important;
  left: -2rem !important;top: 8px !important;
  width: 9px !important;height: 9px !important;border-radius: 50% !important;
  background: var(--dr-blue-600) !important;
  border: 2px solid var(--dr-white) !important;
  box-shadow: 0 0 0 2px var(--dr-blue-300) !important;
  z-index: 1 !important;
}
.dr-page .dr-tl-year {
  font-family: var(--dr-font-d) !important;
  font-size: 0.88rem !important;font-weight: 600 !important;
  letter-spacing: 0.1em !important;color: var(--dr-blue-600) !important;
  margin: 0 0 0.2rem 0 !important;padding: 0 !important;
  border: none !important;background: none !important;
}
.dr-page .dr-tl-text {
  font-size: 0.9rem !important;color: var(--dr-g700) !important;
  line-height: 1.7 !important;
  margin: 0 !important;padding: 0 !important;
  border: none !important;background: none !important;
}


/* --- Qual Card (統合) --- */
.dr-page .dr-qual {
  background: var(--dr-blue-50) !important;
  border: 1px solid var(--dr-blue-100) !important;
  border-radius: 8px !important;
  padding: clamp(1.5rem, 3vw, 2rem) !important;
  margin: 0 !important;
}
.dr-page .dr-qual__sub {
  font-family: var(--dr-font-h) !important;
  font-size: 0.9rem !important;font-weight: 500 !important;
  letter-spacing: 0.06em !important;color: var(--dr-g900) !important;
  margin: 0 0 0.8rem 0 !important;padding: 0 0 0.6rem 0 !important;
  border: none !important;
  border-bottom: 1px solid var(--dr-blue-200) !important;
  border-left: none !important;background: none !important;border-radius: 0 !important;
}
.dr-page .dr-qual__sub--mt { margin-top: 1.8rem !important; }
.dr-page .dr-qual__list {
  list-style: none !important;margin: 0 !important;padding: 0 !important;border: none !important;
}
.dr-page .dr-qual__list li {
  position: relative !important;
  font-size: 0.88rem !important;color: var(--dr-g700) !important;
  line-height: 1.7 !important;
  padding: 0.4em 0 0.4em 1.2em !important;
  margin: 0 !important;border: none !important;
  border-bottom: 1px solid rgba(184, 203, 232, 0.3) !important;
  background: none !important;list-style: none !important;
}
.dr-page .dr-qual__list li:last-child { border-bottom: none !important; }
.dr-page .dr-qual__list li::before {
  content: '' !important;position: absolute !important;
  left: 0 !important;top: 50% !important;transform: translateY(-50%) !important;
  width: 5px !important;height: 5px !important;
  border-radius: 50% !important;background: var(--dr-blue-400) !important;
}


/* ========== CTA ========== */
.dr-page .dr-cta {
  text-align: center !important;
  padding: clamp(3rem, 7vw, 5rem) 2rem !important;
  margin: 0 !important;
  background: linear-gradient(135deg, var(--dr-blue-50) 0%, var(--dr-blue-100) 100%) !important;
  border: none !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  width: 100vw !important;
}
.dr-page .dr-cta__text {
  font-family: var(--dr-font-h) !important;
  font-size: 1rem !important;font-weight: 400 !important;
  color: var(--dr-g700) !important;letter-spacing: 0.05em !important;
  margin: 0 0 2rem 0 !important;padding: 0 !important;line-height: 2 !important;
  border: none !important;background: none !important;
}
.dr-page .dr-cta__btn {
  display: inline-flex !important;align-items: center !important;gap: 0.6rem !important;
  padding: 16px 44px !important;
  font-family: var(--dr-font-b) !important;
  font-size: 0.88rem !important;font-weight: 400 !important;
  letter-spacing: 0.15em !important;color: var(--dr-white) !important;
  background: linear-gradient(135deg, var(--dr-blue-600), var(--dr-blue-700)) !important;
  border: none !important;border-radius: 50px !important;
  text-decoration: none !important;
  box-shadow: 0 4px 20px rgba(30, 79, 142, 0.25) !important;
  transition: all 0.3s ease !important;cursor: pointer !important;
}
.dr-page .dr-cta__btn:hover {
  background: linear-gradient(135deg, var(--dr-blue-700), var(--dr-blue-800)) !important;
  box-shadow: 0 8px 32px rgba(30, 79, 142, 0.35) !important;
  transform: translateY(-2px) !important;color: var(--dr-white) !important;
}
.dr-page .dr-cta__btn svg {
  width: 16px !important;height: 16px !important;
  stroke: currentColor !important;fill: none !important;
  stroke-width: 2 !important;transition: transform 0.3s ease !important;
}
.dr-page .dr-cta__btn:hover svg { transform: translateX(3px) !important; }


/* ========== Responsive ========== */
@media (max-width: 768px) {
  .dr-page .dr-profile { grid-template-columns: 1fr !important; gap: 2rem !important; }
  .dr-page .dr-photo { margin-top: 0 !important; display: block !important; }
  .dr-page .dr-photo__frame {
    max-width: 260px !important;margin: 0 auto !important;
    aspect-ratio: 3 / 4 !important;flex: none !important;
  }
  .dr-page .dr-photo__frame img { position: relative !important; }
  .dr-page .dr-msg { text-align: center !important;padding-top: 0 !important; }
  .dr-page .dr-msg__heading { display: inline-block !important;text-align: left !important; }
  .dr-page .dr-msg__text { text-align: left !important; }
  .dr-page .dr-cq-grid { grid-template-columns: 1fr !important; }
  .dr-page .dr-timeline { padding-left: 1.5rem !important; }
  .dr-page .dr-tl-item { padding-left: 1rem !important; }
  .dr-page .dr-tl-item::before { left: -1.5rem !important; }
}
