/* =========================================================================
   Aster — Location, hours and contact
   The photograph places the clinic; a single white panel overlapping it
   carries the address, the hours and every way of reaching us.
   ========================================================================= */

.aster-visit { padding-top: 0; }

/* Alignfull already, so the photograph reaches both page edges without the
   100vw / negative-margin trick the design needed inside a container. */
.aster-visit__media {
  width: 100%;
  height: clamp(18rem, 44vh, 30rem);
}
.aster-visit__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 62%;
  background: var(--wp--custom--image-fill);
}


/* -------------------------------------------------------------------------
   The panel — lifted up over the photograph
   ------------------------------------------------------------------------- */
.aster-visit__panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 3fr);
  gap: var(--wp--custom--grid-gap) clamp(var(--wp--preset--spacing--60), 4vw, var(--wp--preset--spacing--80));
  align-items: start;
  margin-top: clamp(-10rem, -13vw, -5rem);
  padding: clamp(var(--wp--preset--spacing--70), 5vw, var(--wp--preset--spacing--90))
           clamp(var(--wp--preset--spacing--60), 4vw, var(--wp--preset--spacing--80));
  background: var(--wp--preset--color--base);
}

.aster-detail-col {
  padding-top: var(--wp--preset--spacing--50);
  border-top: var(--wp--custom--line-rule) solid var(--wp--preset--color--contrast);
}

.aster-detail-col__title {
  margin: 0 0 var(--wp--preset--spacing--50);
  font-family: var(--wp--preset--font-family--body);
  font-size: var(--wp--preset--font-size--xxs);
  font-weight: var(--wp--custom--weight-medium);
  /* A heading, so heading leading — this is what puts the Hours and Contact
     labels on the same baseline as the eyebrow in the lead column. */
  line-height: var(--wp--custom--leading-snug);
  letter-spacing: var(--wp--custom--tracking-label);
  text-transform: uppercase;
  color: var(--wp--preset--color--ink-muted);
}

/* The lead column is labelled with an eyebrow rather than a heading, so its
   line box has to be matched to keep all three labels on one baseline. */
.aster-detail-col--lead .aster-eyebrow { line-height: var(--wp--custom--leading-snug); }

.aster-visit__title {
  margin: 0 0 var(--wp--preset--spacing--20);
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--preset--font-size--xl);
  font-weight: var(--wp--custom--weight-medium);
  line-height: var(--wp--custom--leading-snug);
  letter-spacing: var(--wp--custom--tracking-display);
  color: var(--wp--preset--color--contrast);
  text-wrap: balance;
}

.aster-visit__address {
  margin: 0 0 var(--wp--preset--spacing--50);
  font-style: normal;
  font-size: var(--wp--preset--font-size--base);
  line-height: var(--wp--custom--leading-relaxed);
  color: var(--wp--preset--color--ink-muted);
}

.aster-visit__note {
  max-width: 32ch;
  margin: var(--wp--preset--spacing--50) 0 0;
  font-size: var(--wp--preset--font-size--sm);
  line-height: var(--wp--custom--leading-relaxed);
  color: var(--wp--preset--color--ink-muted);
}


/* -------------------------------------------------------------------------
   Hours
   ------------------------------------------------------------------------- */
.aster-hours { margin: 0; }

.aster-hours__row {
  display: flex;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--50);
  padding-block: var(--wp--preset--spacing--30);
  border-bottom: var(--wp--custom--line-hairline) solid var(--wp--preset--color--line);
  font-size: var(--wp--preset--font-size--base);
  line-height: var(--wp--custom--leading-relaxed);
}
.aster-hours__row dt {
  margin: 0;
  color: var(--wp--preset--color--ink-secondary);
}
.aster-hours__row dd {
  margin: 0;
  color: var(--wp--preset--color--contrast);
  font-variant-numeric: tabular-nums;
}
.aster-hours__row--closed dd { color: var(--wp--preset--color--ink-muted); }


/* -------------------------------------------------------------------------
   Contact
   ------------------------------------------------------------------------- */
.aster-contact-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.aster-contact-list li {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--50);
  padding-block: var(--wp--preset--spacing--30);
  border-bottom: var(--wp--custom--line-hairline) solid var(--wp--preset--color--line);
  font-size: var(--wp--preset--font-size--base);
  line-height: var(--wp--custom--leading-relaxed);
}

.aster-contact-list__label { color: var(--wp--preset--color--ink-secondary); }

.aster-contact-list a {
  color: var(--wp--preset--color--contrast);
  text-decoration: none;
  border-bottom: var(--wp--custom--line-hairline) solid var(--wp--preset--color--line-strong);
  transition: color var(--wp--custom--duration-fast) var(--wp--custom--ease-out),
              border-color var(--wp--custom--duration-fast) var(--wp--custom--ease-out);
}
.aster-contact-list a:hover {
  color: var(--wp--preset--color--accent);
  border-bottom-color: currentColor;
}


/* -------------------------------------------------------------------------
   Tablet — the address column spans, hours and contact pair up beneath
   ------------------------------------------------------------------------- */
@media (max-width: 62rem) {
  .aster-visit__panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aster-visit__panel > :first-child { grid-column: 1 / -1; }
}


/* -------------------------------------------------------------------------
   Phone — the panel barely overlaps, so the photograph keeps its height
   ------------------------------------------------------------------------- */
@media (max-width: 46rem) {
  .aster-visit__panel {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--wp--preset--spacing--80);
    margin-top: clamp(-4rem, -9vw, -2.5rem);
    padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
  }
  .aster-visit__panel > :first-child { grid-column: 1; }
  .aster-visit__note { max-width: none; }
}
