/* ════════════════════════════════════════════════
   pages/counselors.css — アドバイザー紹介
   ════════════════════════════════════════════════ */

/* ── Advisor cards ──────────────────────────────── */
.advisor-section {
  display: flex;
  flex-direction: column;
  gap: var(--sp-16);
}

.advisor-card {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 0;
  border-radius: var(--r-xl);
  overflow: hidden;
  border: 1px solid var(--c-border-light);
  box-shadow: var(--shadow-sm);
  background: var(--c-washi);
}

/* Visual panel */
.advisor-card__visual {
  position: relative;
  overflow: hidden;
  min-height: 480px;
}

.advisor-card__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 男性カウンセラー写真：PCは全身の構図のまま／SPだけ顔が中央に来るよう調整 */
.advisor-card--male .advisor-card__photo {
  object-position: center 12%;
}
@media (max-width: 900px) {
  .advisor-card--male .advisor-card__visual {
    min-height: 430px !important;
  }
  .advisor-card--male .advisor-card__photo {
    object-position: center 22%;
  }
}

.advisor-card__name-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: var(--sp-10) var(--sp-8) var(--sp-8);
  background: linear-gradient(to top, rgba(42, 39, 35, 0.72) 0%, transparent 100%);
  z-index: 1;
}

.advisor-card__name-overlay .advisor-card__name-block {
  text-align: left;
}

.advisor-card__role {
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: 0.12em;
  color: var(--c-gold-light);
  margin-bottom: var(--sp-2);
}

.advisor-card__name {
  font-family: var(--f-serif);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  color: var(--c-white);
  margin-bottom: var(--sp-1);
  letter-spacing: var(--ls-wide);
}

/* Content panel */
.advisor-card__content {
  padding: var(--sp-12) var(--sp-10);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--sp-6);
  min-width: 0;
  overflow-wrap: break-word;
}

.advisor-card__catch {
  font-family: var(--f-serif);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  color: var(--c-text);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-wide);
  border-left: 3px solid var(--c-gold);
  padding-left: var(--sp-5);
  margin-bottom: var(--sp-2);
}

.advisor-card__desc {
  font-size: var(--fs-sm);
  color: var(--c-text-light);
  line-height: var(--lh-loose);
}

/* Qualifications */
.advisor-card__quals {
  background: var(--c-gold-ultra);
  border-radius: var(--r-md);
  padding: var(--sp-5) var(--sp-6);
}

.advisor-card__quals-title {
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: var(--ls-wider);
  color: var(--c-gold-dark);
  text-transform: uppercase;
  margin-bottom: var(--sp-3);
}

.advisor-card__quals-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}

.advisor-card__qual {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  font-size: var(--fs-sm);
  color: var(--c-text);
  font-weight: var(--fw-medium);
}

.advisor-card__qual::before {
  content: '';
  display: block;
  width: 6px;
  height: 6px;
  border-radius: var(--r-full);
  background: var(--c-gold);
  flex-shrink: 0;
}

/* Support items */
.advisor-card__supports-title {
  font-family: var(--f-serif);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-text);
  margin-bottom: var(--sp-4);
}

.advisor-card__supports {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-3);
}

.support-item {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  background: var(--c-bg-alt);
  border-radius: var(--r-md);
  padding: var(--sp-4);
}

.support-item__icon {
  width: 32px;
  height: 32px;
  border-radius: var(--r-sm);
  background: var(--c-gold-pale);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.support-item__icon svg {
  width: 16px;
  height: 16px;
  stroke: var(--c-gold);
}

.support-item__text {
  font-size: var(--fs-sm);
  color: var(--c-text-light);
  line-height: var(--lh-snug);
}

@media (max-width: 900px) {
  .advisor-card,
  .advisor-card:nth-child(even) {
    grid-template-columns: minmax(0, 1fr);
  }

  .advisor-card__visual,
  .advisor-card:nth-child(even) .advisor-card__visual {
    order: 0;
    min-height: 320px;
  }

  .advisor-card__content,
  .advisor-card:nth-child(even) .advisor-card__content {
    order: 1;
    padding: var(--sp-8) var(--sp-6);
  }

  .advisor-card__supports {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* ── Dual perspective highlight ──────────────────── */
.perspective-banner {
  background: linear-gradient(135deg, var(--c-text) 0%, #3D3030 100%);
  border-radius: var(--r-xl);
  padding: var(--sp-12) var(--sp-10);
  text-align: center;
  color: var(--c-white);
  position: relative;
  overflow: hidden;
  max-width: 900px;
  margin-inline: auto;
}

.perspective-banner::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -10%;
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, rgba(196, 162, 101, 0.1) 0%, transparent 70%);
  pointer-events: none;
}

.perspective-banner__title {
  font-family: var(--f-serif);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  color: var(--c-white);
  margin-bottom: var(--sp-6);
  line-height: var(--lh-snug);
  letter-spacing: var(--ls-wide);
}

.perspective-banner__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-8);
  max-width: 640px;
  margin-inline: auto;
  margin-bottom: var(--sp-8);
}

.perspective-col {}

.perspective-col__label {
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-widest);
  color: var(--c-gold-light);
  text-transform: uppercase;
  margin-bottom: var(--sp-3);
}

.perspective-col__text {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.75);
  line-height: var(--lh-loose);
}

.perspective-banner__note {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.5);
}

@media (max-width: 600px) {
  .perspective-banner__cols {
    grid-template-columns: minmax(0, 1fr);
  }

  .perspective-banner {
    padding: var(--sp-8) var(--sp-6);
  }
}
