/* ============================================================
   Contacts and schedule pages.
   These informational surfaces reuse the shared room and
   consultation bands, then inherit the manuscript card grammar.
   ============================================================ */

.info-hero.room{height:max(460px,min(60vh,42vw))}
.info-section{padding:89px 0 99px}
.info-section__lead{
  max-width:760px;margin:27px auto 0;
  font-size:var(--fs-lead);line-height:27px;color:var(--ink);
}

/* --- contacts ---------------------------------------------- */
.contact-grid{
  max-width:1104px;margin-top:44px;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;
}
.contact-card{
  display:flex;flex-direction:column;min-width:0;
  padding:34px 30px 30px;background:var(--card);border-radius:var(--r-lg);
  transition:box-shadow .3s ease,transform .3s ease;
}
.contact-card:hover{box-shadow:var(--sh-hover);transform:translateY(-1px)}
.contact-card__kicker{
  font-size:var(--fs-label);letter-spacing:.09em;text-transform:uppercase;color:var(--brass-ink);
}
.contact-card h3{
  margin:14px 0 0;font-family:var(--serif);font-weight:500;
  font-size:var(--fs-title);line-height:33px;color:var(--green);letter-spacing:.004em;
}
.contact-card p{margin:12px 0 0;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink)}
.contact-card__handle{
  display:block;margin-top:20px;padding-top:18px;border-top:1px solid var(--hairline);
  overflow-wrap:anywhere;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink);
}
.contact-card .btn-ghost{align-self:flex-start;margin-top:22px}

/* --- schedule ---------------------------------------------- */
.schedule-list{max-width:1104px;margin-top:36px;display:grid;gap:10px}
.schedule-row{
  display:grid;grid-template-columns:312px 1fr auto;align-items:center;min-height:151px;
  padding:0 30px 0 0;background:var(--card);border-radius:var(--r-lg);
  transition:box-shadow .3s ease,transform .3s ease;
}
.schedule-row:hover{box-shadow:var(--sh-hover);transform:translateY(-1px)}
.schedule-row__date{
  align-self:stretch;display:flex;align-items:center;
  padding:24px 24px 24px 34px;border-right:1px solid var(--hairline);
}
.schedule-row__date time{
  white-space:nowrap;font-family:var(--serif);font-weight:300;font-size:34px;line-height:1.05;
  color:var(--gold-soft);letter-spacing:.004em;font-variant-numeric:lining-nums;
}
.schedule-row__body{min-width:0;padding-left:44px}
.schedule-row__body h3{
  margin:0;font-family:var(--serif);font-weight:500;font-size:var(--fs-title);
  line-height:33px;color:var(--green);letter-spacing:.004em;
}
.schedule-row__body p{margin:10px 0 0;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink)}
.schedule-row__action{padding-left:32px}
.schedule-note{text-align:center;margin-top:34px}
.schedule-note p{margin:0;font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink)}

@media (max-width:1120px){
  .contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .schedule-row{grid-template-columns:262px 1fr auto}
  .schedule-row__date time{font-size:28px}
  .schedule-row__body{padding-left:32px}
  .schedule-row__action{padding-left:24px}
}

@media (max-width:860px){
  .info-hero.room{height:auto;min-height:420px}
  .info-section{padding:64px 0 72px}
  .contact-grid{grid-template-columns:1fr;margin-top:32px}
  .schedule-list{margin-top:32px}
  .schedule-row{grid-template-columns:1fr;min-height:0;padding:24px}
  .schedule-row__date{padding:0 0 16px;border-right:0;border-bottom:1px solid var(--hairline)}
  .schedule-row__date time{white-space:normal;font-size:32px}
  .schedule-row__body{padding:16px 0 0}
  .schedule-row__action{padding:20px 0 0}
}

@media (max-width:420px){
  .contact-card{padding:28px 24px 24px}
  .contact-card .btn-ghost,.schedule-row .btn-ghost{width:100%;padding-inline:16px}
}
