/* Approved page refinements. Load after the existing site styles. */

/* A short opening statement, with the service choices close below it. */
.hero.hero-compact {
  display: block;
  padding-top: 42px;
  padding-bottom: 42px;
}

.hero.hero-compact h1 {
  max-width: 1040px;
  margin: 0;
  font-size: clamp(32px, 3.35vw, 44px);
  font-weight: 500;
  line-height: 1.48;
  letter-spacing: -.065em;
  text-wrap: balance;
}

.hero.hero-compact .hero-intro {
  max-width: 1010px;
  margin: 18px 0 0;
  font-size: 14px;
  line-height: 2;
  color: #626b71;
}

/* The number belongs to the title; the icon gets its own centered square. */
.service-card-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  min-height: 44px;
}

.service-card .service-card-heading h3 {
  min-width: 0;
  margin: 0;
  font-size: clamp(18px, 1.55vw, 21px);
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: -.05em;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.service-card-heading .service-number {
  display: inline;
  margin-right: 5px;
  font-family: var(--sans);
  font-size: .66em;
  font-weight: 300;
  letter-spacing: -.01em;
  white-space: nowrap;
  color: #70797f;
}

.service-card-heading .service-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  padding: 0;
  margin: 0;
  background: #ffdd7b;
  color: #4c5154;
  line-height: 1;
  box-sizing: border-box;
}

.service-card-heading .service-icon svg {
  display: block;
  width: 24px;
  height: 24px;
  max-width: none;
  margin: 0;
  transform: none;
  flex: none;
}

/* Detail pages use the complete content area once their sidebar is removed. */
.page-layout.page-layout-full {
  display: block;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  padding-top: 38px;
  padding-bottom: 76px;
}

.page-layout-full > .page-content {
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
}

.page-layout-full .content-section {
  margin-bottom: 44px;
}

.page-layout-full .content-section > p,
.page-layout-full .guide-body > p,
.page-layout-full .editorial-list {
  max-width: 1040px;
}

.page-layout-full img,
.page-layout-full video {
  max-width: 100%;
}

.page-layout-full .content-section:last-child {
  margin-bottom: 0;
}

/* Readable social destinations below the video previews. */
.social-links-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 22px;
  margin-top: 26px;
}

.social-links-grid .social-card {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  min-width: 0;
  min-height: 138px;
  padding: 27px 28px;
  border: 1px solid #d7dadb;
  border-top: 3px solid #cbd0d3;
  background: #eeeef0;
}

.social-links-grid .social-card:last-child {
  border-top-color: #ffbd12;
}

.social-links-grid .social-card:hover {
  border-color: #d8ad39;
  background: #fff8e4;
}

.social-links-grid .social-card > svg {
  display: block;
  width: 36px;
  height: 36px;
  margin: 0;
}

.social-links-grid .social-card > div {
  min-width: 0;
}

.social-links-grid .social-card > div > span {
  margin-bottom: 6px;
  font-size: 11px;
  line-height: 1.6;
}

.social-links-grid .social-card strong {
  font-size: 21px;
  line-height: 1.6;
  font-weight: 500;
}

.social-links-grid .social-card p {
  margin: 9px 0 0;
  font-size: 11px;
  line-height: 1.85;
}

.social-links-grid .social-arrow {
  align-self: start;
  margin: 0;
  font-size: 25px;
  line-height: 1.2;
}

/* Keep the request to call before applying visible and easy to act on. */
.booking-nonstudent-note {
  max-width: 1040px;
  margin: 23px 0 0;
  padding: 17px 20px;
  border-left: 3px solid #ffbd12;
  background: #fff8e6;
  color: #424b51;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.9;
}

.booking-nonstudent-note p {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
}

.booking-nonstudent-note a {
  display: inline;
  font-weight: 700;
  white-space: nowrap;
  text-decoration: underline;
  text-decoration-color: #c49a38;
  text-underline-offset: 4px;
}

@media (max-width: 1020px) {
  .hero.hero-compact {
    padding-top: 34px;
    padding-bottom: 36px;
  }

  .hero.hero-compact h1 {
    font-size: clamp(30px, 4.2vw, 38px);
  }

  .service-card .service-card-heading h3 {
    font-size: 20px;
  }

  .social-links-grid .social-card {
    gap: 16px;
    padding: 23px 22px;
  }

  .social-links-grid .social-card strong {
    font-size: 18px;
  }
}

@media (max-width: 640px) {
  .hero.hero-compact {
    padding-top: 29px;
    padding-bottom: 30px;
  }

  .hero.hero-compact h1 {
    font-size: clamp(28px, 7.5vw, 34px);
    line-height: 1.52;
    letter-spacing: -.065em;
  }

  .hero.hero-compact .hero-intro {
    margin-top: 16px;
    font-size: 12px;
    line-height: 2;
  }

  .service-card-heading {
    grid-template-columns: minmax(0, 1fr) 40px;
    gap: 12px;
    min-height: 40px;
    margin-bottom: 16px;
  }

  .service-card .service-card-heading h3 {
    font-size: 20px;
    line-height: 1.65;
  }

  .service-card-heading .service-icon {
    width: 40px;
    height: 40px;
    min-width: 40px;
  }

  .service-card-heading .service-icon svg {
    width: 23px;
    height: 23px;
  }

  .page-layout.page-layout-full {
    padding-top: 27px;
    padding-bottom: 46px;
  }

  .page-layout-full .content-section {
    margin-bottom: 34px;
  }

  .social-links-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 13px;
    margin-top: 23px;
  }

  .social-links-grid .social-card {
    grid-template-columns: 32px minmax(0, 1fr) 20px;
    gap: 16px;
    min-height: 121px;
    padding: 22px 20px;
  }

  .social-links-grid .social-card > svg {
    width: 32px;
    height: 32px;
  }

  .social-links-grid .social-card > div > span {
    font-size: 10px;
  }

  .social-links-grid .social-card strong {
    font-size: 19px;
  }

  .social-links-grid .social-card p {
    font-size: 10px;
  }

  .social-links-grid .social-arrow {
    font-size: 23px;
  }

  .booking-nonstudent-note {
    margin-top: 19px;
    padding: 15px 16px;
    font-size: 14px;
    line-height: 1.9;
  }
}

/* Home-only type scale: keep matching roles consistent across sections. */
:is(.services-band, .profile-section, .home-lectures, .home-columns,
    .home-videos, .home-resources, .home-exploration, .home-inquiry,
    .home-contact, .home-locations) {
  --home-heading-size: 28px;
  --home-item-size: 19px;
  --home-copy-size: 13px;
  --home-meta-size: 11px;
  --home-link-size: 12px;
}

:is(.services-band, .profile-section, .home-lectures, .home-columns,
    .home-videos, .home-resources, .home-exploration, .home-inquiry,
    .home-contact) h2 {
  font-size: var(--home-heading-size);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: -.045em;
}

.services-band .service-card .service-card-heading h3,
.home-lectures .home-lecture-row h3,
.home-columns .column-card h3,
.home-videos .video-card h3,
.home-resources .resource-card h3,
.home-exploration .exploration-home-card h3,
.home-videos .social-links-grid .social-card strong {
  font-size: var(--home-item-size);
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: -.04em;
}

.services-band .service-card p,
.profile-section .profile-copy,
.profile-section .profile-copy p,
.home-columns .column-card p,
.home-videos .video-card p,
.home-videos .social-links-grid .social-card p,
.home-resources .resource-card .resource-description,
.home-exploration .exploration-home-card p,
.home-inquiry .inquiry-intro > p,
.home-contact p {
  font-size: var(--home-copy-size);
  line-height: 1.95;
}

:is(.services-band, .profile-section, .home-lectures, .home-columns,
    .home-videos, .home-resources, .home-exploration, .home-contact) .eyebrow,
.profile-section .profile-affiliation,
.home-lectures .home-lecture-date,
.home-lectures .home-lecture-host,
.home-columns .column-meta,
.home-columns .column-topic,
.home-videos .video-card .resource-meta,
.home-resources .resource-meta,
.home-exploration .exploration-home-card > div > span,
.home-videos .social-links-grid .social-card > div > span {
  font-size: var(--home-meta-size);
  line-height: 1.75;
}

:is(.services-band, .profile-section, .home-lectures, .home-columns,
    .home-videos, .home-resources, .home-exploration, .home-contact,
    .home-locations) .text-link,
.services-band .service-card .text-link,
.profile-section .profile-copy .text-link,
.home-columns .column-links .text-link,
.home-videos .video-card .text-link,
.home-resources .resource-links .text-link,
.home-locations .location-links .text-link,
.home-contact .button {
  font-size: var(--home-link-size);
  line-height: 1.8;
}

.home-resources .resource-links {
  max-width: 185px;
}

.home-locations .location-title h3 {
  font-size: 18px;
  line-height: 1.7;
}

@media (max-width: 640px) {
  :is(.services-band, .profile-section, .home-lectures, .home-columns,
      .home-videos, .home-resources, .home-exploration, .home-inquiry,
      .home-contact, .home-locations) {
    --home-heading-size: 24px;
    --home-item-size: 18px;
    --home-meta-size: 10px;
    --home-link-size: 11px;
  }

  .home-resources .resource-links {
    max-width: none;
  }

  .home-locations .location-title h3 {
    font-size: 17px;
  }
}

/* Approved home hero C: a quiet gold outline indicating the next direction. */
.home-hero {
  overflow: hidden;
  background: #343b3d;
  padding: 48px 0 50px;
  color: #f7f7f7;
}
.home-hero .wrap { position: relative; }
.home-hero-heading-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 270px;
  gap: 46px;
  align-items: center;
}
.home-hero-heading-copy { min-width: 0; }
.home-hero h1 {
  font-family: var(--sans);
  font-size: 56px;
  font-weight: 500;
  line-height: 1.34;
  letter-spacing: -.065em;
  margin: 0;
  color: #f7f7f7;
  word-break: keep-all;
}
.home-hero h1 span:last-child { color: #ead08a; }
.home-hero-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #d9bd6f;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .17em;
  line-height: 1.6;
  margin-bottom: 24px;
}
.home-hero-kicker::before {
  content: "";
  display: block;
  width: 27px;
  height: 2px;
  background: #d7ab35;
}
.home-hero-description {
  font-size: 14px;
  line-height: 2;
  color: #d1d5d5;
  font-weight: 300;
  margin: 28px 0 0;
  max-width: 1100px;
  letter-spacing: -.025em;
  padding-top: 23px;
  border-top: 1px solid #ffffff2b;
}
.home-hero-direction {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 270px;
  height: 190px;
  color: #ead08a;
  pointer-events: none;
}
.home-hero-direction svg {
  display: block;
  width: 254px;
  height: 254px;
  max-width: 100%;
  flex: none;
  overflow: visible;
  opacity: .66;
}
@media (max-width: 880px) and (min-width: 641px) {
  .home-hero-heading-row {
    grid-template-columns: minmax(0, 1fr) 180px;
    gap: 24px;
  }
  .home-hero h1 { font-size: clamp(36px, 5vw, 44px); }
  .home-hero-direction { width: 180px; }
  .home-hero-direction svg { max-width: 180px; max-height: 180px; }
}
@media (max-width: 640px) {
  .home-hero { padding: 33px 0 34px; }
  .home-hero-heading-row { display: block; }
  .home-hero h1 {
    font-size: 36px;
    line-height: 1.4;
    letter-spacing: -.055em;
  }
  .home-hero-kicker { font-size: 9px; margin-bottom: 20px; }
  .home-hero-direction {
    width: 100%;
    height: 76px;
    margin-top: 12px;
    justify-content: flex-end;
  }
  .home-hero-direction svg { width: 84px; height: 84px; }
  .home-hero-description {
    font-size: 12px;
    line-height: 2;
    padding-top: 19px;
    margin-top: 18px;
  }
  .home-hero-desktop-break { display: none; }
}
