/* HealthLine 2026 v0.10.5: tested clinic layout with robust chooser and overflow-safe timetable cards. */
.hl-clinics-v105 {
  position: relative;
  overflow: hidden;
  padding: 4.5rem 1rem 5rem;
  background:
    radial-gradient(circle at 4% 12%, rgba(214, 23, 71, .045), transparent 28%),
    radial-gradient(circle at 96% 88%, rgba(27, 128, 243, .05), transparent 28%),
    #fffdfb;
}

.hl-clinics-v105 * { box-sizing: border-box; }

.hl-clinics-v105__shell {
  width: min(100% - 2rem, 1240px);
  margin-inline: auto;
}

.hl-clinics-v105__heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: end;
  margin-bottom: 1.75rem;
}

.hl-clinics-v105__eyebrow {
  margin: 0 0 .52rem;
  color: #d61747;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.hl-clinics-v105__titleblock h2 {
  margin: 0;
  color: #0b2948;
  font-size: clamp(1.75rem, 2.4vw, 2.42rem);
  line-height: 1.12;
  letter-spacing: -.035em;
}

/* Robust flex-based chooser. JavaScript alternates the active location chip. */
.hl-clinics-v105__chooser {
  display: flex;
  max-width: 470px;
  min-width: 390px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .55rem .65rem;
  padding: .72rem .9rem;
  border: 1px solid #dbe7f1;
  border-radius: 20px;
  background: linear-gradient(115deg, rgba(214,23,71,.045), rgba(255,255,255,.98) 46%, rgba(27,128,243,.05));
  box-shadow: 0 10px 28px rgba(11, 41, 72, .075);
}

.hl-clinics-v105__chooser-copy {
  flex: 1 1 100%;
  margin: 0;
  color: #607185;
  font-size: .82rem;
  font-weight: 660;
  line-height: 1.35;
  text-align: center;
}

.hl-clinics-v105__chooser-locations {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .42rem;
}

.hl-clinics-v105__chooser-chip {
  display: inline-flex;
  min-width: 84px;
  min-height: 31px;
  align-items: center;
  justify-content: center;
  padding: .32rem .72rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  font-size: .76rem;
  font-weight: 860;
  line-height: 1;
  box-shadow: 0 4px 12px rgba(11,41,72,.05);
  transition: background 220ms ease, color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.hl-clinics-v105__chooser-chip--alimos { color: #d61747; }
.hl-clinics-v105__chooser-chip--sepolia { color: #1b80f3; }
.hl-clinics-v105__chooser-chip--alimos.is-active {
  background: #d61747;
  color: #fff;
  box-shadow: 0 6px 16px rgba(214,23,71,.23);
  transform: translateY(-1px);
}
.hl-clinics-v105__chooser-chip--sepolia.is-active {
  background: #1b80f3;
  color: #fff;
  box-shadow: 0 6px 16px rgba(27,128,243,.23);
  transform: translateY(-1px);
}

.hl-clinics-v105__chooser-separator {
  color: #8a98a7;
  font-size: .72rem;
  font-weight: 760;
}

.hl-clinics-v105__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.55rem;
  align-items: stretch;
}

.hl-clinic-v105 {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dfe8ef;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(11, 41, 72, .085);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.hl-clinic-v105--alimos { border-top: 5px solid #d61747; }
.hl-clinic-v105--sepolia { border-top: 5px solid #1b80f3; }

.hl-clinic-v105:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 46px rgba(11, 41, 72, .12);
}

.hl-clinic-v105__media {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: #edf3f7;
}

.hl-clinic-v105__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 73%, rgba(8,31,55,.24) 100%);
  pointer-events: none;
}

.hl-clinic-v105__media img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
  transition: transform 420ms ease;
}

.hl-clinic-v105:hover .hl-clinic-v105__media img { transform: scale(1.018); }

.hl-clinic-v105__area {
  position: absolute;
  z-index: 2;
  left: 1rem;
  bottom: .9rem;
  display: inline-flex;
  min-height: 31px;
  align-items: center;
  padding: .38rem .75rem;
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 999px;
  background: rgba(255,255,255,.96);
  color: #0b2948;
  font-size: .76rem;
  font-weight: 850;
  box-shadow: 0 5px 16px rgba(0,0,0,.10);
}

.hl-clinic-v105__body {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 368px;
  padding: 1.35rem 1.4rem 1.3rem;
}

.hl-clinic-v105__head {
  min-height: 72px;
  padding-bottom: 1rem;
  border-bottom: 1px solid #edf1f5;
}

.hl-clinic-v105__head h3 {
  margin: 0;
  color: #0b2948;
  font-size: 1.42rem;
  line-height: 1.15;
  letter-spacing: -.025em;
}

.hl-clinic-v105__head p {
  margin: .4rem 0 0;
  color: #65768a;
  font-size: .87rem;
  font-weight: 650;
  line-height: 1.45;
}

.hl-clinic-v105__details {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(230px, 1.08fr);
  gap: 1rem;
  align-items: start;
  align-content: start;
  padding-top: 1rem;
}

.hl-clinic-v105__contact {
  display: grid;
  align-content: start;
  gap: .72rem;
  padding: .7rem .2rem;
}

.hl-clinic-v105__meta-row {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .62rem;
  color: #0b2948;
  font-size: .89rem;
  font-weight: 735;
  line-height: 1.35;
}

.hl-clinic-v105__meta-icon {
  position: relative;
  display: block;
  width: 1.65rem;
  height: 1.65rem;
  flex: 0 0 1.65rem;
  border-radius: 8px;
  background: #f1f6fb;
}
.hl-clinic-v105--alimos .hl-clinic-v105__meta-icon { background: #fff1f4; }

.hl-clinic-v105__meta-icon--pin::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 42%;
  width: 7px;
  height: 9px;
  border: 2px solid #1b80f3;
  border-radius: 7px 7px 7px 0;
  transform: translate(-50%, -50%) rotate(-45deg);
}
.hl-clinic-v105--alimos .hl-clinic-v105__meta-icon--pin::before { border-color: #d61747; }
.hl-clinic-v105__meta-icon--pin::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 38%;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #1b80f3;
  transform: translate(-50%, -50%);
}
.hl-clinic-v105--alimos .hl-clinic-v105__meta-icon--pin::after { background: #d61747; }

.hl-clinic-v105__meta-icon--phone::before {
  content: "☎";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #1b80f3;
  font-size: .88rem;
  line-height: 1;
}
.hl-clinic-v105--alimos .hl-clinic-v105__meta-icon--phone::before { color: #d61747; }

.hl-clinic-v105__phone,
.hl-clinic-v105__phone:visited {
  color: #d61747 !important;
  font-size: 1.02rem;
  font-weight: 880;
  text-decoration: none;
}
.hl-clinic-v105__phone:hover,
.hl-clinic-v105__phone:focus-visible { color: #ad1037 !important; }

/* Fixed equal-height timetable box, with each schedule stacked to avoid Firefox/zoom overflow. */
.hl-clinic-v105__hours {
  display: flex;
  height: 168px;
  min-height: 168px;
  min-width: 0;
  flex-direction: column;
  justify-content: flex-start;
  padding: .78rem .88rem;
  border: 1px solid #e4ecf3;
  border-radius: 13px;
  background: #f8fbfd;
  overflow: hidden;
}
.hl-clinic-v105--alimos .hl-clinic-v105__hours { background: linear-gradient(145deg, #fff8fa, #f8fbfd); }
.hl-clinic-v105--sepolia .hl-clinic-v105__hours { background: linear-gradient(145deg, #f8fbfd, #f4f9ff); }

.hl-clinic-v105__hours-label {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .55rem;
  color: #748396;
  font-size: .68rem;
  font-weight: 860;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.hl-clinic-v105__clock {
  position: relative;
  width: 1.45rem;
  height: 1.45rem;
  flex: 0 0 1.45rem;
  border-radius: 50%;
  background: #eef6ff;
}
.hl-clinic-v105--alimos .hl-clinic-v105__clock { background: #fff0f4; }
.hl-clinic-v105__clock::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1.5px solid #1b80f3;
  border-radius: 50%;
}
.hl-clinic-v105--alimos .hl-clinic-v105__clock::before { border-color: #d61747; }
.hl-clinic-v105__clock::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 4px;
  height: 1.5px;
  border-left: 1.5px solid #1b80f3;
  border-bottom: 1.5px solid #1b80f3;
  transform: translate(-10%, -90%) rotate(20deg);
}
.hl-clinic-v105--alimos .hl-clinic-v105__clock::after { border-color: #d61747; }

.hl-clinic-v105__hours-rows {
  display: grid;
  min-width: 0;
  gap: .5rem;
}

.hl-clinic-v105__hours-row {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  gap: .08rem;
  color: #0b2948;
  font-size: .79rem;
  line-height: 1.28;
}
.hl-clinic-v105__hours-row span {
  min-width: 0;
  overflow-wrap: anywhere;
  font-weight: 760;
}
.hl-clinic-v105__hours-row strong {
  color: #53677c;
  font-size: .76rem;
  font-weight: 820;
  white-space: nowrap;
}

.hl-clinic-v105__actions {
  display: flex;
  min-height: 64px;
  flex-wrap: wrap;
  align-items: center;
  align-self: end;
  gap: .65rem .95rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #edf1f5;
}

.hl-clinic-v105__primary {
  display: inline-flex;
  min-height: 43px;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  padding: .68rem 1rem;
  border: 1px solid #d61747;
  border-radius: 9px;
  background: #d61747;
  color: #fff !important;
  font-size: .83rem;
  font-weight: 850;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 7px 17px rgba(214,23,71,.14);
  transition: background 160ms ease, color 160ms ease, transform 160ms ease;
}
.hl-clinic-v105__primary:hover,
.hl-clinic-v105__primary:focus-visible {
  background: #fff;
  color: #d61747 !important;
  transform: translateY(-1px);
}

.hl-clinic-v105__primary--mobile,
.hl-clinic-v105__secondary--mobile { display: none; }

.hl-clinic-v105__directions,
.hl-clinic-v105__directions:visited {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  gap: .35rem;
  color: #1b80f3 !important;
  font-size: .81rem;
  font-weight: 820;
  text-decoration: none;
}
.hl-clinic-v105__directions:hover,
.hl-clinic-v105__directions:focus-visible { color: #0965cc !important; }

@media (max-width: 1000px) {
  .hl-clinics-v105__heading { grid-template-columns: 1fr; gap: 1rem; align-items: start; }
  .hl-clinics-v105__chooser { min-width: 0; width: min(100%, 520px); }
  .hl-clinics-v105__grid { grid-template-columns: 1fr; }
  .hl-clinic-v105__media { aspect-ratio: 16 / 9; }
}

@media (max-width: 680px) {
  .hl-clinics-v105 { padding: 3.7rem .75rem 4.2rem; }
  .hl-clinics-v105__shell { width: min(100% - .5rem, 620px); }
  .hl-clinics-v105__chooser { padding: .7rem .75rem; border-radius: 16px; }
  .hl-clinics-v105__chooser-copy { font-size: .8rem; }
  .hl-clinic-v105 { border-radius: 18px; }
  .hl-clinic-v105__media { aspect-ratio: 4 / 3; }
  .hl-clinic-v105__body { min-height: 0; padding: 1.15rem 1rem 1rem; }
  .hl-clinic-v105__head { min-height: 0; }
  .hl-clinic-v105__details { grid-template-columns: 1fr; }
  .hl-clinic-v105__contact { padding: .25rem 0; }
  .hl-clinic-v105__hours { min-height: 0; height: auto; overflow: visible; }
  .hl-clinic-v105__primary--desktop { display: none; }
  .hl-clinic-v105__primary--mobile,
  .hl-clinic-v105__secondary--mobile { display: inline-flex; }
  .hl-clinic-v105__secondary--mobile {
    min-height: 40px;
    align-items: center;
    color: #0b2948 !important;
    font-size: .8rem;
    font-weight: 820;
    text-decoration: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hl-clinic-v105,
  .hl-clinic-v105__media img,
  .hl-clinic-v105__primary,
  .hl-clinics-v105__chooser-chip { transition: none; }
}
