/*
 * SoftMed public
 * Design Read: medicina B2C mexicana, humana y regulada, con dirección editorial.
 * DESIGN_VARIANCE 5, MOTION_INTENSITY 4, VISUAL_DENSITY 3.
 */

[data-surface="public"] {
  --pub-paper: #f7f8f8;
  --pub-paper-raised: #ffffff;
  --pub-paper-muted: #f1f3f3;
  --pub-graphite: #1a2221;
  --pub-graphite-soft: #3d4847;
  --pub-muted: #6b7574;
  --pub-line: #dde3e2;
  --pub-line-strong: #b8c4c2;
  --pub-teal: #14a090;
  --pub-teal-deep: #0d8a7c;
  --pub-teal-wash: #e8f6f4;
  --pub-teal-soft: #f3faf9;
  --pub-danger: #9a342c;
  --pub-danger-wash: #f8e5e2;
  --pub-success: #157a5c;
  --pub-success-wash: #e3f5ec;
  --pub-hero-bg: #173c3d;
  --pub-shadow-color: #1c2f2d;
  --pub-shadow: 0 1.25rem 3.5rem color-mix(in srgb, var(--pub-shadow-color) 8%, transparent);
  --pub-radius: 1rem;
  --pub-radius-small: 0.55rem;
  --pub-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --pub-ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
  --pub-font: "DM Sans", var(--font-ui, system-ui, sans-serif);
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

.pub-shell {
  margin: 0;
  color: var(--pub-graphite);
  background: var(--pub-paper);
  font-family: var(--pub-font);
  font-size: 1rem;
  line-height: 1.6;
  font-feature-settings: "kern" 1, "liga" 1;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.pub-shell.pub-menu-open { overflow: hidden; }
.pub-shell img { display: block; max-width: 100%; }
.pub-shell a { color: inherit; text-decoration: none; }
.pub-shell button, .pub-shell input { font: inherit; }
.pub-shell h1, .pub-shell h2, .pub-shell h3, .pub-shell p,
.pub-shell ol, .pub-shell dl, .pub-shell dd { margin: 0; }
.pub-shell address { font-style: normal; }

.pub-shell h1,
.pub-shell h2,
.pub-shell h3 {
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.12;
  text-wrap: balance;
}

.pub-shell h1 { font-size: clamp(2.65rem, 6.1vw, 5.7rem); }
.pub-shell h2 { font-size: clamp(2rem, 4vw, 3.75rem); }
.pub-shell h3 { font-size: clamp(1.15rem, 1.8vw, 1.45rem); }

.pub-wrap {
  width: min(100% - 2.5rem, 76rem);
  margin-inline: auto;
}

.pub-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.pub-skip {
  position: fixed;
  z-index: 100;
  top: 0.65rem;
  left: 0.65rem;
  padding: 0.7rem 1rem;
  border-radius: var(--pub-radius-small);
  color: var(--pub-paper-raised);
  background: var(--pub-graphite);
  transform: translateY(-140%);
  transition: transform 160ms var(--pub-ease-out);
}
.pub-skip:focus { transform: translateY(0); }

.pub-shell :focus-visible {
  outline: 3px solid color-mix(in srgb, var(--pub-teal) 72%, white);
  outline-offset: 3px;
}

.pub-nav-sentinel {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

/* Chrome */
.pub-chrome {
  position: sticky;
  z-index: 20;
  top: 0;
  color: var(--pub-graphite);
  background: rgb(244 246 245 / 0.88);
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(1rem) saturate(130%);
  -webkit-backdrop-filter: blur(1rem) saturate(130%);
  transition: border-color 180ms var(--pub-ease-out), box-shadow 180ms var(--pub-ease-out);
}

.pub-chrome.is-scrolled {
  border-bottom-color: rgb(170 183 179 / 0.6);
  box-shadow: 0 0.5rem 1.5rem color-mix(in srgb, var(--pub-shadow-color) 4%, transparent);
}

.pub-chrome__inner {
  width: min(100% - 2.5rem, 76rem);
  height: 4.5rem;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.pub-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  width: max-content;
}
.pub-brand__mark { flex: none; color: var(--pub-teal); }
.brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  overflow: hidden;
  flex: none;
}
.brand-mark--public,
.brand-mark--app {
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 0.82rem;
  background: transparent;
}
.brand-mark__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.brand-mark__img.brand-mark__lockup {
  width: auto;
  max-width: none;
  height: 100%;
  object-fit: none;
}
.pub-brand__word { font-size: 1.08rem; font-weight: 720; letter-spacing: -0.025em; }

.pub-nav { display: flex; align-items: center; gap: 2rem; font-size: 0.91rem; font-weight: 610; }
.pub-nav > a:not(.pub-button) {
  padding-block: 0.45rem;
  color: var(--pub-graphite-soft);
  transition: color 140ms ease;
}
.pub-nav a[aria-current="page"] { color: var(--pub-teal-deep); text-decoration: underline; text-underline-offset: 0.38rem; }

.pub-menu-button {
  display: none;
  min-height: 2.75rem;
  padding: 0.55rem 0.8rem;
  align-items: center;
  gap: 0.7rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius-small);
  color: var(--pub-graphite);
  background: var(--pub-paper-raised);
  cursor: pointer;
  transition: transform 120ms var(--pub-ease-out), border-color 160ms ease;
}
.pub-menu-button__label { font-size: 0.85rem; font-weight: 650; }
.pub-menu-button__lines { width: 1.15rem; display: grid; gap: 0.3rem; }
.pub-menu-button__lines span {
  display: block;
  height: 1px;
  background: currentColor;
  transition: transform 180ms var(--pub-ease-out);
}
.pub-menu-button[aria-expanded="true"] .pub-menu-button__lines span:first-child { transform: translateY(0.2rem) rotate(45deg); }
.pub-menu-button[aria-expanded="true"] .pub-menu-button__lines span:last-child { transform: translateY(-0.2rem) rotate(-45deg); }

.pub-drawer {
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 1.25rem;
  left: 1.25rem;
  padding: 0.55rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
  box-shadow: var(--pub-shadow);
  opacity: 0;
  transform: translateY(-0.6rem) scale(0.98);
  transform-origin: top right;
  transition: opacity 180ms var(--pub-ease-out), transform 220ms var(--pub-ease-drawer);
}
.pub-drawer[hidden] { display: none; }
.pub-drawer.is-open { opacity: 1; transform: none; }
.pub-drawer a {
  display: flex;
  align-items: center;
  min-height: 3.25rem;
  padding: 0.65rem 0.8rem;
  border-radius: 0.65rem;
  font-weight: 620;
}
.pub-drawer a[aria-current="page"] { color: var(--pub-teal-deep); background: var(--pub-teal-wash); }

/* Controls */
.pub-button {
  display: inline-flex;
  min-height: 2.85rem;
  padding: 0.7rem 1.15rem;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: var(--pub-radius-small);
  cursor: pointer;
  font-size: 0.92rem;
  font-weight: 680;
  line-height: 1;
  white-space: nowrap;
  transition: color 140ms ease, background-color 140ms ease, border-color 140ms ease, transform 120ms var(--pub-ease-out);
}
.pub-button:active, .pub-menu-button:active, .pub-slot:active,
.pub-directory-row:active, .pub-practitioner:active { transform: scale(0.97); }
.pub-button--primary { color: #fff; background: var(--pub-teal); }
.pub-button--secondary { color: var(--pub-graphite); border-color: var(--pub-line-strong); background: transparent; }
.pub-button--quiet { min-height: 2.55rem; color: var(--pub-graphite); border-color: var(--pub-line); background: var(--pub-paper-raised); }
.pub-button--block { width: 100%; margin-top: 1.5rem; }

.pub-text-link {
  display: inline-flex;
  width: max-content;
  align-items: center;
  gap: 0.45rem;
  color: var(--pub-teal);
  font-size: 0.9375rem;
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--pub-teal) 38%, transparent);
  text-underline-offset: 0.3rem;
  transition: color 140ms ease, transform 120ms var(--pub-ease-out);
}
.pub-text-link:active { transform: scale(0.97); }
.pub-text-link--light { color: #d7f2ed; }

/* Landing */
.pub-kicker {
  color: var(--pub-muted);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.pub-section { padding-block: clamp(5rem, 9vw, 8.5rem); }
.pub-section__header { max-width: 44rem; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.pub-section__header h2 { max-width: 13ch; }
.pub-section__header p, .pub-section-lead {
  max-width: 38rem;
  margin-top: 1.1rem;
  color: var(--pub-muted);
  font-size: 1rem;
  line-height: 1.65;
}
.pub-section__header--compact { margin-bottom: 3.2rem; }
.pub-section__footer { margin-top: 2.3rem; }

.pub-practitioner-list {
  display: grid;
  grid-template-columns: 1.24fr 0.88fr;
  grid-template-rows: repeat(2, minmax(12rem, auto));
  gap: 1rem;
}
.pub-practitioner {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(9rem, 0.76fr) 1fr;
  overflow: hidden;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
  transition: border-color 180ms ease, box-shadow 240ms var(--pub-ease-out), transform 180ms var(--pub-ease-out);
}
.pub-practitioner:first-child { grid-row: 1 / 3; grid-template-columns: 1fr; }
.pub-practitioner__media {
  min-height: 11rem;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: var(--pub-teal-deep);
  background: var(--pub-teal-wash);
  font-size: 3rem;
  font-weight: 720;
}
.pub-practitioner:first-child .pub-practitioner__media { min-height: 22rem; }
.pub-practitioner__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.84);
  transition: transform 420ms var(--pub-ease-out);
}
.pub-practitioner__body { display: flex; flex-direction: column; padding: 1.35rem; }
.pub-practitioner__specialty { margin-top: 0.45rem; color: var(--pub-teal-deep); font-size: 0.85rem; font-weight: 690; }
.pub-practitioner__meta { margin-top: 1.1rem; color: var(--pub-muted); font-size: 0.86rem; line-height: 1.45; }
.pub-practitioner__cta { margin-top: auto; padding-top: 1.35rem; font-size: 0.88rem; font-weight: 690; }

/* Acento por especialidad (Format::hue()); "teal" usa el color de marca por defecto arriba. */
.pub-practitioner.hue-indigo .pub-practitioner__media { color: var(--hue-indigo); background: var(--hue-indigo-bg); }
.pub-practitioner.hue-indigo .pub-practitioner__specialty { color: var(--hue-indigo); }
.pub-practitioner.hue-violet .pub-practitioner__media { color: var(--hue-violet); background: var(--hue-violet-bg); }
.pub-practitioner.hue-violet .pub-practitioner__specialty { color: var(--hue-violet); }
.pub-practitioner.hue-rose .pub-practitioner__media { color: var(--hue-rose); background: var(--hue-rose-bg); }
.pub-practitioner.hue-rose .pub-practitioner__specialty { color: var(--hue-rose); }
.pub-practitioner.hue-amber .pub-practitioner__media { color: var(--hue-amber); background: var(--hue-amber-bg); }
.pub-practitioner.hue-amber .pub-practitioner__specialty { color: var(--hue-amber); }
.pub-practitioner.hue-emerald .pub-practitioner__media { color: var(--hue-emerald); background: var(--hue-emerald-bg); }
.pub-practitioner.hue-emerald .pub-practitioner__specialty { color: var(--hue-emerald); }
.pub-practitioner.hue-sky .pub-practitioner__media { color: var(--hue-sky); background: var(--hue-sky-bg); }
.pub-practitioner.hue-sky .pub-practitioner__specialty { color: var(--hue-sky); }

.pub-process { padding-top: 1rem; }
.pub-process__flow {
  list-style: none;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--pub-line-strong);
}
.pub-process__flow li { padding: 2rem 2.5rem 2rem 0; }
.pub-process__flow li + li { padding-left: 2.5rem; border-left: 1px solid var(--pub-line); }
.pub-process__flow h3 { max-width: 12ch; }
.pub-process__flow p { max-width: 25ch; margin-top: 1rem; color: var(--pub-muted); font-size: 0.94rem; }

.pub-closing { padding: 1.25rem; }
.pub-closing__inner {
  min-height: 28rem;
  width: min(100%, 82rem);
  padding: clamp(3rem, 7vw, 6rem);
  border-radius: var(--pub-radius);
  color: #edf6f4;
  background: var(--pub-graphite);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.pub-closing__inner > p { color: #91cfc5; font-size: 0.78rem; font-weight: 700; }
.pub-closing h2 { max-width: 21ch; margin-top: 1.15rem; font-size: clamp(2rem, 4.4vw, 4rem); }
.pub-closing .pub-text-link { margin-top: 2rem; }

.pub-privacy {
  padding-block: clamp(3.5rem, 8vw, 6rem);
  background: linear-gradient(180deg, #f4f9f8 0%, var(--pub-paper) 55%);
  border-top: 1px solid var(--pub-line);
  scroll-margin-top: 5rem;
}
.pub-privacy__layout { display: flex; flex-direction: column; gap: 0; }
.pub-privacy .pub-section__footer { margin-top: 2rem; }

/* Directory */
.pub-page { min-height: 65vh; padding-block: clamp(4rem, 8vw, 7.5rem); }
.pub-page__header { max-width: 48rem; margin-bottom: clamp(3rem, 7vw, 6rem); }
.pub-page__header h1 { max-width: 11ch; margin-top: 1.1rem; font-size: clamp(2.7rem, 6vw, 5.1rem); }
.pub-page__header > p:last-child { max-width: 37rem; margin-top: 1.35rem; color: var(--pub-muted); font-size: 1.08rem; }

.pub-directory.pub-page {
  min-height: auto;
  padding-block: clamp(2rem, 4vw, 3.25rem);
}
.pub-directory__top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: end;
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem);
}
.pub-directory__intro h1 {
  max-width: 14ch;
  margin-top: .85rem;
  font-size: clamp(2.2rem, 4.5vw, 3.6rem);
}
.pub-directory__intro > p:last-child {
  max-width: 34rem;
  margin-top: .9rem;
  color: var(--pub-muted);
  font-size: 1rem;
}
.pub-directory-toolbar {
  padding: 1rem 1.1rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
  box-shadow: 0 .75rem 2rem color-mix(in srgb, var(--pub-shadow-color) 5%, transparent);
}
.pub-directory-toolbar label {
  display: block;
  margin-bottom: .4rem;
  font-size: .76rem;
  font-weight: 680;
}
.pub-directory-toolbar__row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .5rem;
}

.pub-directory__list { border-top: 1px solid var(--pub-line-strong); }
.pub-directory-row {
  min-height: 10rem;
  display: grid;
  grid-template-columns: 7.5rem minmax(13rem, 0.75fr) minmax(15rem, 1fr) auto;
  align-items: center;
  gap: clamp(1.4rem, 4vw, 3.5rem);
  padding-block: 1.3rem;
  border-bottom: 1px solid var(--pub-line);
  transition: color 160ms ease, background-color 160ms ease, transform 120ms var(--pub-ease-out);
}
.pub-directory-row__media {
  width: 7.5rem;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: var(--pub-radius);
  color: var(--pub-teal-deep);
  background: var(--pub-teal-wash);
  display: grid;
  place-items: center;
  font-size: 2.4rem;
  font-weight: 720;
}
.pub-directory-row__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.85); }
.pub-directory-row__identity h2 { font-size: clamp(1.3rem, 2.2vw, 1.85rem); }
.pub-directory-row__specialty { margin-top: 0.55rem; color: var(--pub-teal-deep); font-size: 0.88rem; font-weight: 680; }
.pub-directory-row__details { color: var(--pub-muted); font-size: 0.88rem; line-height: 1.5; }
.pub-directory-row__details address { margin-top: 0.55rem; }
.pub-directory-row__action { font-size: 0.88rem; font-weight: 690; white-space: nowrap; }

.pub-empty {
  padding: 3rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  color: var(--pub-muted);
  background: var(--pub-paper-raised);
  text-align: center;
}
.pub-empty--compact { margin-top: 1.75rem; padding: 1.5rem; text-align: left; }

/* Profile and booking */
.pub-profile-head { padding-block: clamp(2.5rem, 6vw, 5.5rem); }
.pub-back-link { display: inline-flex; gap: 0.45rem; margin-bottom: 2.5rem; color: var(--pub-muted); font-size: 0.88rem; font-weight: 650; }
.pub-profile-head__grid {
  display: grid;
  grid-template-columns: minmax(17rem, 0.68fr) minmax(0, 1.32fr);
  gap: clamp(2.5rem, 8vw, 7rem);
  align-items: center;
}
.pub-profile-head__portrait {
  aspect-ratio: 4 / 5;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: var(--pub-radius);
  color: var(--pub-teal-deep);
  background: var(--pub-teal-wash);
  box-shadow: var(--pub-shadow);
  font-size: 6rem;
  font-weight: 700;
}
.pub-profile-head__portrait img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.84); }
.pub-profile-head__specialty { color: var(--pub-teal); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.02em; }
.pub-profile-head h1 { max-width: 12ch; margin-top: 0.75rem; font-size: clamp(2.6rem, 5.5vw, 5rem); }
.pub-profile-head__bio { max-width: 42rem; margin-top: 1.5rem; color: var(--pub-graphite-soft); font-size: 1.04rem; line-height: 1.7; }
.pub-profile-head__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2rem; }
.pub-profile-head__facts div { padding-top: 0.8rem; border-top: 1px solid var(--pub-line); }
.pub-profile-head__facts dt { color: var(--pub-muted); font-size: 0.75rem; font-weight: 680; }
.pub-profile-head__facts dd { margin-top: 0.35rem; font-size: 0.92rem; }
.pub-profile-head .pub-text-link { margin-top: 1.7rem; }

.pub-booking {
  width: min(100% - 2.5rem, 76rem);
  margin: 1rem auto clamp(5rem, 9vw, 8rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 0.78fr);
  align-items: start;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
  overflow: hidden;
}
.pub-booking > section { padding: clamp(2rem, 5vw, 4rem); }
.pub-booking__schedule { position: sticky; top: 5.5rem; }
.pub-booking__schedule h2 { max-width: 14ch; margin-top: 0.8rem; font-size: clamp(1.65rem, 2.8vw, 2.35rem); font-weight: 600; color: var(--pub-graphite); }
.pub-booking__request { border-left: 1px solid var(--pub-line); background: var(--pub-paper-raised); }
.pub-booking__request h2 { font-size: clamp(1.35rem, 2.2vw, 1.85rem); font-weight: 600; color: var(--pub-graphite); }

.pub-slots { display: grid; gap: 1.4rem; margin-top: 2.3rem; }
.pub-slot-day {
  display: grid;
  grid-template-columns: 5.3rem 1fr;
  gap: 1rem;
  align-items: start;
}
.pub-slot-day__date { padding-top: 0.55rem; font-size: 0.86rem; font-weight: 720; }
.pub-slot-day__date span { display: block; color: var(--pub-muted); font-size: 0.75rem; font-weight: 560; }
.pub-slot-day__times { display: flex; flex-wrap: wrap; gap: 0.55rem; }
.pub-slot {
  min-width: 4.4rem;
  min-height: 2.65rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius-small);
  color: var(--pub-graphite);
  background: var(--pub-paper);
  display: inline-grid;
  place-items: center;
  font-size: 0.85rem;
  font-weight: 680;
  font-variant-numeric: tabular-nums;
  transition: color 140ms ease, background-color 140ms ease, border-color 140ms ease, transform 120ms var(--pub-ease-out);
}
.pub-slot--active { color: #fff; border-color: var(--pub-teal); background: var(--pub-teal); }
.pub-slot-day__times--solo { margin-top: 1rem; }

.pub-location-picker { display: grid; gap: .65rem; margin: 1.5rem 0 1.25rem; }
.pub-location-chip {
  display: grid; gap: .15rem; padding: .75rem .9rem;
  border: 1px solid var(--pub-line); border-radius: var(--pub-radius-small);
  color: var(--pub-graphite); background: var(--pub-paper);
  transition: border-color 140ms ease, background-color 140ms ease, transform 120ms var(--pub-ease-out);
}
.pub-location-chip strong { font-size: .88rem; }
.pub-location-chip span { color: var(--pub-muted); font-size: .78rem; }
.pub-location-chip--active { border-color: var(--pub-teal); background: var(--pub-teal-wash); }
.pub-location-single { margin: 1.25rem 0 .5rem; font-size: .86rem; color: var(--pub-muted); }

.pub-calendar { margin-top: 1.5rem; padding: 1.1rem; border: 1px solid var(--pub-line); border-radius: var(--pub-radius); background: var(--pub-paper-raised); box-shadow: 0 1px 2px color-mix(in srgb, var(--pub-shadow-color) 4%, transparent); }
.pub-calendar__nav { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .85rem; }
.pub-calendar__title { margin: 0; font-size: 1.02rem; font-weight: 600; color: var(--pub-graphite); letter-spacing: -0.01em; }
.pub-calendar__arrow {
  min-width: 2.25rem; min-height: 2.25rem; border: 1px solid var(--pub-line); border-radius: var(--pub-radius-small);
  display: grid; place-items: center; color: var(--pub-graphite); background: var(--pub-paper-raised);
  transition: border-color 140ms ease, background-color 140ms ease, transform 120ms var(--pub-ease-out);
}
.pub-calendar__weekdays,
.pub-calendar__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .35rem; }
.pub-calendar__weekdays { margin-bottom: .35rem; color: var(--pub-muted); font-size: .68rem; font-weight: 500; text-align: center; letter-spacing: 0.02em; }
.pub-calendar__day {
  aspect-ratio: 1; min-height: 2.35rem; border-radius: .45rem;
  display: grid; place-items: center; font-size: .84rem; font-weight: 500; font-variant-numeric: tabular-nums;
  transition: color 140ms ease, background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease, transform 120ms var(--pub-ease-out);
}
.pub-calendar__day--empty { visibility: hidden; }
.pub-calendar__day--past { color: var(--pub-muted); opacity: .4; }
.pub-calendar__day--blocked { color: var(--pub-muted); background: var(--pub-paper-muted); text-decoration: line-through; opacity: .65; }
.pub-calendar__day--available { color: var(--pub-graphite); background: var(--pub-teal-soft); border: 1px solid transparent; }
.pub-calendar__day--selected {
  color: var(--pub-teal-deep);
  font-weight: 600;
  background: #fff;
  border: 2px solid var(--pub-teal);
  box-shadow: 0 0 0 3px var(--pub-teal-wash);
}
.pub-calendar__legend { display: flex; flex-wrap: wrap; gap: .65rem 1rem; margin: .85rem 0 0; color: var(--pub-muted); font-size: .72rem; }
.pub-calendar__dot { display: inline-block; width: .55rem; height: .55rem; margin-right: .25rem; border-radius: 50%; vertical-align: middle; }
.pub-calendar__dot--available { background: var(--pub-teal); }
.pub-calendar__dot--blocked { background: var(--pub-line-strong); }

.pub-day-slots { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--pub-line); scroll-margin-top: 6rem; }
.pub-day-slots__title { margin: 0 0 .75rem; font-size: .95rem; font-weight: 600; color: var(--pub-graphite-soft); letter-spacing: -0.01em; }

.pub-selected-slot {
  margin-top: 1.35rem;
  padding: 0.85rem 1rem;
  border-left: 3px solid var(--pub-teal);
  color: var(--pub-muted);
  background: var(--pub-paper-raised);
  font-size: 0.82rem;
}
.pub-selected-slot strong { display: block; color: var(--pub-graphite); margin-top: 0.15rem; }

.pub-alert {
  margin-top: 1.5rem;
  padding: 0.9rem 1rem;
  border-radius: var(--pub-radius-small);
  font-size: 0.88rem;
  animation: pub-alert-in 220ms var(--pub-ease-out);
}
.pub-alert--success { color: var(--pub-success); background: var(--pub-success-wash); }
.pub-alert--error { color: var(--pub-danger); background: var(--pub-danger-wash); }

.pub-form { margin-top: 1.5rem; }
.pub-field { display: grid; gap: 0.35rem; margin-bottom: 1rem; }
.pub-field label { font-size: 0.8125rem; font-weight: 500; color: var(--pub-graphite-soft); letter-spacing: 0.01em; }
.pub-input {
  width: 100%;
  min-height: 2.85rem;
  padding: 0.6rem 0.85rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius-small);
  color: var(--pub-graphite);
  background: #fff;
  font-size: 0.9375rem;
  transition: border-color 140ms ease, box-shadow 140ms ease;
}
.pub-input:focus { outline: none; border-color: var(--pub-teal); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pub-teal) 18%, transparent); }
.pub-hint { color: var(--pub-muted); font-size: 0.75rem; line-height: 1.45; }
.pub-consent { display: flex; align-items: flex-start; gap: 0.65rem; color: var(--pub-muted); font-size: 0.8125rem; line-height: 1.5; }
.pub-consent input { width: 1.05rem; height: 1.05rem; margin-top: 0.16rem; accent-color: var(--pub-teal); }
.pub-consent a { color: var(--pub-teal); font-weight: 500; text-decoration: underline; text-underline-offset: 0.2rem; }

/* Firma dibujada (pre-registro) */
.pub-signature-pad { display: grid; gap: 0.45rem; }
.pub-signature-pad__canvas-wrap {
  position: relative;
  border: 1px solid var(--pub-line-strong);
  border-radius: var(--pub-radius-small);
  background: #fff;
  touch-action: none;
}
.pub-signature-pad__canvas { display: block; width: 100%; height: 9rem; cursor: crosshair; }
.pub-signature-pad__hint {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pub-muted);
  font-size: 0.78rem;
  pointer-events: none;
}
.pub-signature-pad.is-signed .pub-signature-pad__hint { display: none; }
.pub-signature-pad__actions { display: flex; gap: 0.45rem; flex-wrap: wrap; }

/* Legal and error */
.pub-legal-hero { max-width: 42rem; padding-block: clamp(2.5rem, 6vw, 4rem) clamp(2rem, 4vw, 3rem); }
.pub-legal-hero h1 { max-width: 14ch; }
.pub-legal-hero__lead { margin-top: 1rem; color: var(--pub-muted); font-size: 1.05rem; line-height: 1.65; max-width: 48ch; }
.pub-legal-hero__meta { margin-top: 1.25rem; color: var(--pub-muted); font-size: .8125rem; font-weight: 500; }

.pub-legal-layout {
  display: grid;
  grid-template-columns: minmax(14rem, 0.32fr) minmax(0, 1fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: start;
  padding-bottom: clamp(3rem, 8vw, 6rem);
}

.pub-legal-sidebar { position: sticky; top: 6.5rem; }
.pub-legal-nav {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  padding: 1rem;
  border: 1px solid var(--pub-line);
  border-radius: .85rem;
  background: var(--pub-paper-raised);
}

.pub-legal-nav a {
  padding: .55rem .75rem;
  border-radius: .55rem;
  color: var(--pub-graphite-soft);
  font-size: .875rem;
  font-weight: 500;
  text-decoration: none;
  transition: background 160ms var(--pub-ease-out), color 160ms var(--pub-ease-out);
}

.pub-legal-prose { padding-top: 0; font-size: 1rem; line-height: 1.75; }
.pub-legal-prose section:first-of-type { border-top: 0; padding-top: 0; }

/* Footer */
.pub-footer { padding-block: 4rem 2rem; }
.pub-footer__grid { display: flex; justify-content: space-between; gap: 3rem; }
.pub-footer__tagline { max-width: 25rem; margin-top: 0.7rem; color: var(--pub-muted); font-size: 0.9rem; }
.pub-footer__links { display: grid; gap: 0.55rem; color: var(--pub-graphite-soft); font-size: 0.86rem; }
.pub-footer__legal { margin-top: 3rem; padding-top: 1.3rem; border-top: 1px solid var(--pub-line); color: var(--pub-muted); font-size: 0.76rem; }

/* Motion: hierarchy and scroll storytelling only */
.pub-enter { opacity: 0; transform: translateY(0.8rem); animation: pub-enter 420ms var(--pub-ease-out) forwards; }
.pub-enter--2 { animation-delay: 60ms; }
.pub-enter--3 { animation-delay: 120ms; }
.pub-enter--4 { animation-delay: 180ms; }
.reveal { transition: opacity 380ms var(--pub-ease-out), transform 380ms var(--pub-ease-out); }
.reveal.reveal--armed:not(.is-visible) { opacity: 0; transform: translateY(0.9rem); }

@keyframes pub-enter { to { opacity: 1; transform: none; } }
@keyframes pub-alert-in { from { opacity: 0; transform: translateY(-0.25rem) scale(0.98); } }

@media (hover: hover) and (pointer: fine) {
  .pub-button--primary:hover { background: var(--pub-teal-deep); }
  .pub-button--secondary:hover, .pub-button--quiet:hover { border-color: var(--pub-teal); background: var(--pub-teal-wash); }
  .pub-text-link:hover { color: var(--pub-teal); }
  .pub-practitioner:hover { border-color: var(--pub-line-strong); box-shadow: 0 1rem 2.5rem color-mix(in srgb, var(--pub-shadow-color) 9%, transparent); transform: translateY(-0.2rem); }
  .pub-practitioner:hover img { transform: scale(1.025); }
  .pub-directory-row:hover { background: var(--pub-paper-raised); }
  .pub-directory-row:hover .pub-directory-row__action { color: var(--pub-teal-deep); }
  .pub-slot:hover { color: var(--pub-teal-deep); border-color: var(--pub-teal); background: var(--pub-teal-wash); }
  .pub-location-chip:hover { border-color: var(--pub-teal); background: var(--pub-teal-wash); }
  .pub-calendar__arrow:hover { border-color: var(--pub-teal); background: var(--pub-teal-wash); }
  .pub-calendar__day--available:hover { background: var(--pub-teal-wash); box-shadow: inset 0 0 0 1px var(--pub-teal); }
}

@media (max-width: 900px) {
  .pub-practitioner-list { grid-template-columns: 1fr; grid-template-rows: auto; }
  .pub-practitioner:first-child { grid-row: auto; grid-template-columns: minmax(9rem, 0.76fr) 1fr; }
  .pub-practitioner:first-child .pub-practitioner__media { min-height: 11rem; }
  .pub-directory-row { grid-template-columns: 6rem minmax(12rem, 0.8fr) 1fr; }
  .pub-directory-row__media { width: 6rem; }
  .pub-directory-row__action { grid-column: 2; }
  .pub-booking { grid-template-columns: 1fr; }
  .pub-booking__schedule { position: static; }
  .pub-booking__request { border-top: 1px solid var(--pub-line); border-left: 0; }
}

@media (max-width: 760px) {
  .pub-wrap, .pub-chrome__inner, .pub-booking { width: min(100% - 2rem, 76rem); }
  .pub-shell h1 { font-size: clamp(2.45rem, 13vw, 4rem); }
  .pub-nav { display: none; }
  .pub-menu-button { display: inline-flex; }
  .pub-hero { min-height: auto; padding-block: 3.5rem 4.5rem; }
  .pub-hero__copy h1 { max-width: 10.5ch; }
  .pub-legal-layout { grid-template-columns: 1fr; gap: 2rem; }
  .pub-practitioner, .pub-practitioner:first-child { grid-template-columns: minmax(7rem, 0.55fr) 1fr; }
  .pub-practitioner__media, .pub-practitioner:first-child .pub-practitioner__media { min-height: 12rem; }
  .pub-process__flow { grid-template-columns: 1fr; }
  .pub-process__flow li { padding: 1.6rem 0; border-bottom: 1px solid var(--pub-line); }
  .pub-process__flow li + li { padding-left: 0; border-left: 0; }
  .pub-closing { padding: 0.75rem; }
  .pub-closing__inner { min-height: 25rem; }
  .pub-directory-row { grid-template-columns: 5.3rem 1fr auto; gap: 1rem; }
  .pub-directory-row__media { width: 5.3rem; grid-row: 1 / 3; }
  .pub-directory-row__details { grid-column: 2 / 4; }
  .pub-directory-row__action { grid-column: 3; grid-row: 1; }
  .pub-profile-head__grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .pub-profile-head__portrait { width: min(100%, 25rem); }
  .pub-legal-sidebar { position: static; }
  .pub-legal-nav { flex-direction: row; flex-wrap: wrap; gap: .5rem; }
  .pub-legal-nav a { padding: .45rem .65rem; font-size: .8125rem; }
  .pub-footer__grid { flex-direction: column; }
}

@media (max-width: 520px) {
  .pub-practitioner, .pub-practitioner:first-child { grid-template-columns: 1fr; }
  .pub-practitioner__media, .pub-practitioner:first-child .pub-practitioner__media { aspect-ratio: 16 / 10; }
  .pub-directory-row { grid-template-columns: 4.7rem 1fr; }
  .pub-directory-row__media { width: 4.7rem; grid-row: 1; }
  .pub-directory-row__details { grid-column: 1 / 3; }
  .pub-directory-row__action { grid-column: 2; grid-row: 2; }
  .pub-profile-head__facts { grid-template-columns: 1fr; }
  .pub-booking { width: 100%; border-right: 0; border-left: 0; border-radius: 0; }
  .pub-booking > section { padding: 2rem 1rem; }
  .pub-slot-day { grid-template-columns: 4rem 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .pub-enter { opacity: 1; transform: none; animation: none; }
  .reveal, .reveal.reveal--armed:not(.is-visible) { opacity: 1; transform: none; transition: opacity 160ms ease; }
  .pub-drawer { transition: opacity 160ms ease; transform: none; }
  .pub-menu-button__lines span, .pub-button, .pub-slot, .pub-practitioner,
  .pub-directory-row, .pub-text-link { transition: none; transform: none !important; }
  .pub-alert { animation: none; }
}

@media (prefers-reduced-transparency: reduce) {
  .pub-chrome {
    background: var(--pub-paper-raised);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

@media (prefers-contrast: more) {
  [data-surface="public"] { --pub-line: #7f8d89; --pub-line-strong: #52615d; }
  .pub-chrome { background: var(--pub-paper); backdrop-filter: none; -webkit-backdrop-filter: none; }
}

/* v0.4.15: marketplace visual, specialty first */
.pub-hero {
  position: relative;
  min-height: min(46rem, calc(100dvh - 4.5rem));
  padding: 0;
  color: #f5fbf9;
  background: var(--pub-hero-bg);
}
.pub-hero__media { position: absolute; inset: 0; }
.pub-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgb(16 43 43 / .94) 0%, rgb(16 43 43 / .82) 42%, rgb(16 43 43 / .2) 76%);
}
.pub-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.pub-hero__content {
  position: relative;
  z-index: 1;
  min-height: inherit;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  padding-block: clamp(3.5rem, 7vw, 6rem);
}
.pub-hero__copy { width: min(100%, 38rem); }
.pub-hero__copy .pub-kicker { color: #a6ddd4; }
.pub-hero__copy h1 { max-width: 9ch; margin-top: 1rem; font-size: clamp(3rem, 6.4vw, 5.8rem); }
.pub-hero__lead { max-width: 31rem; margin-top: 1.25rem; color: #dce9e6; font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.55; text-wrap: pretty; }
.pub-hero-search {
  width: min(100%, 34rem);
  margin-top: 2rem;
  padding: 1rem;
  color: var(--pub-graphite);
  border: 1px solid rgb(255 255 255 / .28);
  border-radius: var(--pub-radius);
  background: rgb(250 251 249 / .94);
  box-shadow: 0 1.5rem 4rem color-mix(in srgb, var(--pub-shadow-color) 25%, transparent), inset 0 1px 0 rgb(255 255 255 / .8);
  backdrop-filter: blur(1rem);
}
.pub-hero-search label { display: block; margin-bottom: .55rem; font-size: .78rem; font-weight: 720; }
.pub-hero-search__row { display: grid; grid-template-columns: 1fr auto; gap: .65rem; }
.pub-hero-search select {
  min-width: 0;
  min-height: 3rem;
  padding: .65rem 2.25rem .65rem .8rem;
  color: var(--pub-graphite);
  border: 1px solid var(--pub-line-strong);
  border-radius: var(--pub-radius-small);
  background: var(--pub-paper-raised);
}
.pub-hero__assurance {
  align-self: flex-end;
  width: min(20rem, 32%);
  padding: 1.15rem;
  border: 1px solid rgb(255 255 255 / .25);
  border-radius: var(--pub-radius);
  background: rgb(17 50 49 / .74);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .12);
  backdrop-filter: blur(.8rem);
}
.pub-hero__assurance strong, .pub-hero__assurance span { display: block; }
.pub-hero__assurance span { margin-top: .35rem; color: #c8ddda; font-size: .85rem; line-height: 1.5; }

.pub-specialties { padding-block: clamp(5rem, 9vw, 8rem); background: var(--pub-paper-raised); }
.pub-specialties__layout { display: grid; grid-template-columns: minmax(18rem, .78fr) minmax(24rem, 1.22fr); gap: clamp(3rem, 8vw, 7rem); }
.pub-specialties__intro { align-self: start; }
.pub-specialties__intro h2 { max-width: 10ch; }
.pub-specialties__intro > p { max-width: 33rem; margin-top: 1rem; color: var(--pub-muted); }
.pub-specialty-index { border-top: 1px solid var(--pub-line-strong); }
.pub-specialty-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 1.25rem;
  align-items: center;
  gap: 1rem;
  min-height: 4.6rem;
  padding: .85rem .25rem;
  border-bottom: 1px solid var(--pub-line);
  transition: color 160ms ease, padding 180ms var(--pub-ease-out), background-color 160ms ease, transform 120ms var(--pub-ease-out);
}
.pub-specialty-link > span:first-child { font-size: clamp(1.12rem, 2vw, 1.45rem); font-weight: 680; letter-spacing: -.02em; }
.pub-specialty-link small { color: var(--pub-muted); }
.pub-specialty-link--all { color: var(--pub-teal-deep); }

.pub-care-story { padding: 1.25rem; background: var(--pub-paper); }
.pub-care-story__grid {
  width: min(100%, 82rem);
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 0;
  overflow: hidden;
  color: #edf6f4;
  border-radius: var(--pub-radius);
  background: var(--pub-graphite);
}
.pub-care-story__image img { width: 100%; height: 100%; min-height: 34rem; object-fit: cover; }
.pub-care-story__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2.5rem, 6vw, 5rem); }
.pub-care-story__copy h2 { max-width: 12ch; }
.pub-care-story__copy > p { margin-top: 1rem; color: #bdd0cc; }
.pub-care-story__copy dl { margin-top: 2.25rem; }
.pub-care-story__copy dl div { display: grid; grid-template-columns: 5rem 1fr; gap: 1rem; padding-block: .85rem; border-top: 1px solid rgb(255 255 255 / .16); }
.pub-care-story__copy dt { color: #91cfc5; font-weight: 700; }
.pub-care-story__copy dd { color: #e1ece9; font-size: .9rem; }

.pub-directory-catalog {
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background:
    linear-gradient(160deg, var(--pub-paper-raised) 0%, var(--pub-paper-muted) 100%);
}
.pub-directory-catalog.is-filtered {
  padding-block: .85rem 1rem;
}
.pub-directory-catalog__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .85rem;
}
.pub-directory-catalog > h2,
.pub-directory-catalog__head > h2 {
  font-size: clamp(1.15rem, 2vw, 1.45rem);
}
.pub-directory-catalog.is-filtered .pub-directory-catalog__head > h2 {
  margin-bottom: 0;
  font-size: 1rem;
}
.pub-directory-catalog__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
}
.pub-directory-catalog.is-filtered .pub-directory-catalog__grid {
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
}
.pub-specialty-tile {
  min-height: 6.25rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1rem 1.1rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius-small);
  background: var(--pub-paper-raised);
  box-shadow: 0 .35rem 1rem color-mix(in srgb, var(--pub-shadow-color) 4%, transparent);
  transition: border-color 160ms ease, box-shadow 200ms var(--pub-ease-out), transform 120ms var(--pub-ease-out);
}
.pub-directory-catalog.is-filtered .pub-specialty-tile {
  min-height: 4.5rem;
  padding: .75rem .85rem;
}
.pub-specialty-tile strong { font-size: 1.05rem; }
.pub-specialty-tile span { color: var(--pub-muted); font-size: .8rem; }
.pub-specialty-tile.is-active { color: #f4fbf9; border-color: var(--pub-teal-deep); background: var(--pub-teal-deep); }
.pub-specialty-tile.is-active span { color: #cbe4df; }
.pub-directory-results {
  scroll-margin-top: 5rem;
  padding-top: .25rem;
}
.pub-directory-results__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .75rem;
  padding-bottom: .75rem;
  border-bottom: 1px solid var(--pub-line);
}
.pub-directory-results__title {
  font-size: clamp(1.25rem, 2.2vw, 1.75rem);
}
.pub-directory-results__label {
  color: var(--pub-muted);
  font-size: .88rem;
  font-weight: 680;
}
.pub-directory-results__count {
  color: var(--pub-muted);
  font-size: .88rem;
  white-space: nowrap;
}
.pub-clear-filter {
  color: var(--pub-teal-deep);
  font-size: .82rem;
  font-weight: 680;
  text-decoration: underline;
  text-underline-offset: .25rem;
  white-space: nowrap;
}
.pub-directory-row__identity h3 { margin-top: .35rem; font-size: clamp(1.25rem, 2vw, 1.75rem); }
.pub-empty h3 { margin-bottom: .5rem; }
.pub-empty .pub-button { margin-top: 1.25rem; }

.pub-profile-head__path { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-top: 2rem; }
.pub-profile-head__path div { min-width: 0; padding: .85rem; border: 1px solid var(--pub-line); border-radius: var(--pub-radius-small); background: var(--pub-paper-raised); }
.pub-profile-head__path strong, .pub-profile-head__path span { display: block; }
.pub-profile-head__path strong { color: var(--pub-teal-deep); font-size: .78rem; }
.pub-profile-head__path span { margin-top: .2rem; color: var(--pub-muted); font-size: .75rem; }
.pub-booking__secure { margin-bottom: 0.85rem; color: var(--pub-muted); font-size: .8125rem; font-weight: 500; }
.pub-booking .pub-section-lead { margin-top: .5rem; max-width: 42ch; }

.pub-profile-rating { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .55rem; margin: .35rem 0 1rem; color: var(--pub-muted); font-size: .88rem; }
.pub-stars { color: #e6a800; letter-spacing: .04em; }
.pub-section-title { margin: 0 0 .65rem; font-size: clamp(1.35rem, 2.2vw, 1.85rem); font-weight: 720; }
.pub-map-section, .pub-waitlist, .pub-reviews { margin: 2.5rem auto 0; padding-bottom: 2rem; }
.pub-map-embed { border: 1px solid var(--pub-line); border-radius: var(--pub-radius); overflow: hidden; aspect-ratio: 16/9; max-height: 22rem; }
.pub-map-embed iframe { width: 100%; height: 100%; border: 0; }
.pub-waitlist__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; margin: 1rem 0; }
.pub-waitlist__grid .pub-field--wide { grid-column: 1 / -1; }
.pub-review-list { display: grid; gap: .85rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.pub-review-card { padding: 1rem 1.1rem; border: 1px solid var(--pub-line); border-radius: var(--pub-radius-small); background: var(--pub-paper-raised); }
.pub-review-card__top { display: flex; justify-content: space-between; gap: .75rem; margin-bottom: .45rem; }
.pub-review-compose { margin-top: 1.25rem; padding: 1rem; border: 1px dashed var(--pub-line); border-radius: var(--pub-radius-small); }
.pub-review-compose summary { cursor: pointer; font-weight: 680; }
.pub-stars-input { display: flex; flex-wrap: wrap; gap: .55rem .85rem; margin: .75rem 0; border: 0; padding: 0; }
.pub-stars-input label { display: inline-flex; align-items: center; gap: .25rem; cursor: pointer; }
.pub-alert__action { margin-top: .75rem; }
.pub-button--sm { min-height: 2.35rem; padding: .45rem .85rem; font-size: .82rem; }

.pub-portal { padding: clamp(2rem, 5vw, 4rem) 0 clamp(4rem, 8vw, 6rem); }
.pub-portal__inner { max-width: 36rem; }
.pub-portal__head h1 { margin-top: .5rem; font-size: clamp(2rem, 3.5vw, 2.75rem); }
.pub-portal__form { margin-top: 1.5rem; }
.pub-portal__session { margin: 1rem 0; color: var(--pub-muted); }
.pub-portal-list { display: grid; gap: .75rem; margin: 1.25rem 0 0; padding: 0; list-style: none; }
.pub-portal-card { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid var(--pub-line); border-radius: var(--pub-radius-small); background: var(--pub-paper-raised); }
.pub-portal-card__main { display: grid; gap: .2rem; }
.pub-portal-card__loc { color: var(--pub-muted); font-size: .82rem; }
.pub-portal-card__meta { display: grid; justify-items: end; gap: .35rem; text-align: right; }
.pub-portal-card__status { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.pub-portal-card__status--confirmada { color: var(--pub-teal-deep); }
.pub-portal-card__status--pendiente { color: #b8860b; }
.pub-portal-card__status--cancelada { color: var(--pub-muted); }
.pub-portal-detail { margin-top: 1.25rem; padding: 1.25rem; border: 1px solid var(--pub-line); border-radius: var(--pub-radius); background: var(--pub-paper-raised); }
.pub-portal-detail__facts { display: grid; gap: .75rem; }
.pub-portal-detail__facts dt { color: var(--pub-muted); font-size: .72rem; font-weight: 680; text-transform: uppercase; }
.pub-portal-detail__actions { margin-top: 1rem; }
.pub-portal-detail__hint { margin-top: 1rem; }

.pub-directory-toolbar__geo { margin-bottom: .85rem; }
.pub-directory-toolbar__geo label { display: block; margin-bottom: .25rem; font-size: .78rem; font-weight: 680; }

@media (max-width: 760px) {
  .pub-waitlist__grid { grid-template-columns: 1fr; }
  .pub-portal-card { flex-direction: column; }
  .pub-portal-card__meta { justify-items: start; text-align: left; }
}

.pub-prose section { padding-block: 2rem; border-top: 1px solid var(--pub-line); scroll-margin-top: 6rem; }
.pub-prose section h2 { font-size: clamp(1.35rem, 2.2vw, 1.75rem); font-weight: 600; color: var(--pub-graphite); letter-spacing: -0.02em; }
.pub-prose section h3 { margin-top: 1.25rem; font-size: 1rem; font-weight: 600; color: var(--pub-graphite-soft); }
.pub-prose section p { padding: 0; border: 0; color: var(--pub-graphite-soft); }
.pub-prose section p + p, .pub-prose section h2 + p, .pub-prose section h3 + ul { margin-top: .85rem; }
.pub-prose ul { margin: .75rem 0 0 1.1rem; padding-left: .5rem; color: var(--pub-graphite-soft); }
.pub-prose ol { margin: .75rem 0 0 1.1rem; padding-left: .5rem; color: var(--pub-graphite-soft); }
.pub-prose li + li { margin-top: .4rem; }
.pub-prose section h3 + p { margin-top: .65rem; }
.pub-legal-nav { max-height: calc(100dvh - 9rem); overflow-y: auto; }
.pub-prose a { color: var(--pub-teal); font-weight: 500; text-decoration: underline; text-underline-offset: .2rem; }

.pub-legal__notice {
  margin-bottom: .5rem;
  padding: 1.15rem 1.25rem;
  border: 1px solid color-mix(in srgb, var(--pub-teal) 22%, var(--pub-line));
  border-radius: .75rem;
  background: var(--pub-paper-raised);
}

.pub-legal__notice strong {
  display: block;
  margin-bottom: .45rem;
  color: var(--pub-graphite);
  font-size: .875rem;
  font-weight: 600;
}

.pub-legal__notice p { padding: 0; border: 0; font-size: .9375rem; line-height: 1.6; color: var(--pub-muted); }

.pub-portal__inner--narrow { max-width: 32rem; }
.pub-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.pub-button--block { width: 100%; justify-content: center; }
.pub-portal__switch { margin-top: 1.25rem; color: var(--pub-muted); font-size: .875rem; text-align: center; }
.pub-account-form { margin-top: 1.5rem; padding: 1.5rem; border: 1px solid var(--pub-line); border-radius: 1rem; background: var(--pub-paper-raised); }
.pub-account-form .pub-consent + .pub-consent { margin-top: .75rem; }
.pub-account-form .pub-button { margin-top: 1.25rem; }

.pub-hp {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.pub-account__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 2rem; }
.pub-account-tabs { display: flex; gap: .5rem; margin-bottom: 2rem; padding: .35rem; border: 1px solid var(--pub-line); border-radius: .75rem; background: var(--pub-paper-raised); }
.pub-account-tabs a {
  flex: 1;
  padding: .65rem 1rem;
  border-radius: .55rem;
  color: var(--pub-muted);
  font-size: .875rem;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
}

.pub-account-tabs a.is-active { color: var(--pub-graphite); background: var(--pub-paper); box-shadow: 0 1px 2px color-mix(in srgb, var(--pub-shadow-color) 6%, transparent); }
.pub-account-section h2 { font-size: 1.125rem; font-weight: 600; margin-bottom: 1rem; }
.pub-account-section__sub { margin-top: 2.5rem; }
.pub-account-note { margin-bottom: 1rem; color: var(--pub-muted); font-size: .875rem; line-height: 1.55; }
.pub-portal-card__tag { color: var(--pub-muted); font-size: .78rem; font-weight: 500; text-transform: capitalize; }
.pub-portal-card--stack { flex-direction: column; align-items: stretch; }
.pub-rx-list { margin: .75rem 0 0 1rem; padding: 0; list-style: disc; color: var(--pub-graphite-soft); font-size: .9375rem; }
.pub-rx-indications { margin-top: .75rem; color: var(--pub-muted); font-size: .875rem; line-height: 1.55; }

@media (max-width: 640px) {
  .pub-form-row { grid-template-columns: 1fr; }
  .pub-account__head { flex-direction: column; }
  .pub-account-tabs { flex-direction: column; }
}

@media (hover: hover) and (pointer: fine) {
  .pub-legal-nav a:hover { background: var(--pub-teal-wash); color: var(--pub-teal-deep); }
  .pub-account-tabs a:hover:not(.is-active) { color: var(--pub-graphite-soft); background: rgb(255 255 255 / 0.5); }
}

@media (hover: hover) and (pointer: fine) {
  .pub-specialty-link:hover { padding-inline: .8rem; color: var(--pub-teal-deep); background: var(--pub-teal-wash); }
  .pub-specialty-tile:hover { border-color: var(--pub-teal); box-shadow: var(--pub-shadow); transform: translateY(-.15rem); }
}
@media (max-width: 900px) {
  .pub-hero__assurance { width: min(18rem, 38%); }
  .pub-specialties__layout { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .pub-hero { min-height: 42rem; }
  .pub-hero__media::after { background: linear-gradient(180deg, rgb(16 43 43 / .8), rgb(16 43 43 / .9)); }
  .pub-hero__content { align-items: flex-start; flex-direction: column; justify-content: center; gap: 1.5rem; }
  .pub-hero__assurance { width: 100%; align-self: auto; }
  .pub-care-story__grid { grid-template-columns: 1fr; }
  .pub-care-story__image img { min-height: 20rem; max-height: 24rem; }
  .pub-directory__top { grid-template-columns: 1fr; align-items: stretch; }
  .pub-directory-toolbar { width: 100%; }
  .pub-directory-catalog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pub-directory-results__meta { flex-direction: column; align-items: flex-start; gap: .25rem; }
  .pub-profile-head__path { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .pub-hero-search__row, .pub-directory-toolbar__row { grid-template-columns: 1fr; }
  .pub-directory-catalog__grid,
  .pub-directory-catalog.is-filtered .pub-directory-catalog__grid { grid-template-columns: 1fr; }
  .pub-specialty-link { grid-template-columns: 1fr auto; }
  .pub-specialty-link small { grid-column: 1; }
  .pub-care-story { padding: .75rem; }
}
@media (prefers-reduced-transparency: reduce) {
  .pub-hero-search { background: var(--pub-paper-raised); backdrop-filter: none; }
  .pub-hero__assurance { background: var(--pub-hero-bg); backdrop-filter: none; }
}


/* ---- Mini-sitios: acentos y base compartida ---- */
.pub-doctor-site[data-accent="teal"],
.pub-doctor-site:not([data-accent]) { --pub-teal: #1a6b6d; --pub-teal-deep: #145456; --pub-teal-wash: #eef6f6; }
.pub-doctor-site[data-accent="navy"] { --pub-teal: #1e3a5f; --pub-teal-deep: #152a45; --pub-teal-wash: #eef2f8; }
.pub-doctor-site[data-accent="gold"] { --pub-teal: #b8860b; --pub-teal-deep: #946b08; --pub-teal-wash: #faf6eb; --pub-paper: #fdfbf7; }
.pub-doctor-site[data-accent="rose"] { --pub-teal: #c45c6a; --pub-teal-deep: #a84855; --pub-teal-wash: #fdf0f2; --pub-paper: #fdfafa; }
.pub-doctor-site[data-accent="emerald"] { --pub-teal: #059669; --pub-teal-deep: #047857; --pub-teal-wash: #ecfdf5; }
.pub-doctor-site[data-accent="custom"] {
  --pub-teal: #1a6b6d;
  --pub-teal-deep: #145456;
  --pub-teal-wash: #eef6f6;
}

.pub-shell--doctor-site { background: var(--pub-paper); }
.pub-shell--layout-showcase,
.pub-shell--layout-minimal { --pub-font-display: "Fraunces", Georgia, serif; }
.pub-shell--layout-gallery { --pub-font-display: "Instrument Serif", Georgia, serif; }

.pub-site-section { padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.pub-site-about__bio { margin-top: 1rem; color: var(--pub-graphite-soft); line-height: 1.7; }
.pub-site-list { margin-top: 1rem; display: grid; gap: .45rem; padding-left: 1.1rem; }
.pub-site-list li { color: var(--pub-graphite-soft); line-height: 1.5; }
.pub-site-gallery__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); gap: .85rem; margin-top: 1.25rem; }
.pub-site-gallery__grid--compact { grid-template-columns: repeat(3, 1fr); }
.pub-site-gallery__item { margin: 0; border-radius: var(--pub-radius-small); overflow: hidden; background: var(--pub-paper-raised); }
.pub-site-gallery__item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform 220ms var(--pub-ease-out); }
.pub-site-gallery__item:hover img { transform: scale(1.03); }
.pub-site-gallery__item figcaption { padding: .5rem .65rem; font-size: .75rem; color: var(--pub-muted); }

.pub-button--on-dark {
  --pub-btn-bg: color-mix(in srgb, #fff 14%, transparent);
  --pub-btn-fg: #fff;
  border: 1px solid color-mix(in srgb, #fff 35%, transparent);
}

/* Vitrina (showcase) — sitio profesional tipo cirujano */
.pub-doctor-site[data-layout="showcase"] {
  --pub-vitrina-serif: var(--pub-font-display, Georgia, serif);
}
.pub-vitrina-hero {
  position: relative;
  min-height: clamp(26rem, 62vh, 40rem);
  padding-block: clamp(1.25rem, 3vw, 2rem) clamp(2.5rem, 6vw, 4rem);
  color: #fff;
  background: var(--pub-teal-deep) var(--pub-vitrina-bg, none) center / cover no-repeat;
}
.pub-vitrina-hero__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(118deg, color-mix(in srgb, var(--pub-teal-deep) 94%, #000) 0%, color-mix(in srgb, var(--pub-teal-deep) 72%, transparent) 52%, color-mix(in srgb, var(--pub-teal) 45%, transparent) 100%);
  pointer-events: none;
}
.pub-vitrina-hero__inner { position: relative; z-index: 1; }
.pub-vitrina-hero__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
}
.pub-vitrina-hero__back { font-size: .82rem; color: color-mix(in srgb, #fff 82%, transparent); }
.pub-vitrina-hero__bar-actions { display: flex; gap: .5rem; }
.pub-vitrina-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(16rem, .85fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: end;
}
.pub-vitrina-hero__specialty { display: grid; gap: .15rem; }
.pub-vitrina-hero__specialty-line {
  font-family: var(--pub-vitrina-serif);
  font-size: clamp(1.85rem, 4.5vw, 3.2rem);
  font-weight: 650;
  line-height: .95;
  letter-spacing: -.02em;
  text-transform: uppercase;
  color: color-mix(in srgb, #fff 92%, var(--pub-teal-wash));
}
.pub-vitrina-hero__name {
  margin-top: 1rem;
  max-width: 16ch;
  font-size: clamp(1.35rem, 2.5vw, 1.85rem);
  font-weight: 500;
  letter-spacing: .01em;
  color: color-mix(in srgb, #fff 88%, transparent);
}
.pub-vitrina-hero__lead { margin-top: .85rem; max-width: 38ch; font-size: 1rem; color: color-mix(in srgb, #fff 80%, transparent); line-height: 1.6; }
.pub-vitrina-hero__rating { margin-top: .85rem; color: color-mix(in srgb, #fff 90%, transparent); font-size: .92rem; }
.pub-vitrina-hero__card {
  padding: 1.35rem;
  border-radius: var(--pub-radius);
  background: color-mix(in srgb, #fff 12%, transparent);
  border: 1px solid color-mix(in srgb, #fff 22%, transparent);
  backdrop-filter: blur(8px);
}
.pub-vitrina-hero__card-kicker {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: color-mix(in srgb, #fff 70%, transparent);
}
.pub-vitrina-hero__facts {
  margin-top: .65rem;
  display: grid;
  gap: .4rem;
  font-size: .88rem;
  line-height: 1.45;
  color: color-mix(in srgb, #fff 92%, transparent);
  list-style: none;
  padding: 0;
}
.pub-vitrina-hero__facts a { color: inherit; text-decoration: underline; text-underline-offset: .12em; }
.pub-vitrina-hero__card-actions { display: grid; gap: .5rem; margin-top: 1rem; }

.pub-vitrina-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.65rem;
  padding: .55rem 1.2rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: .82rem;
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 120ms ease-out, filter 120ms ease-out;
}
.pub-shell a.pub-vitrina-btn { text-decoration: none; }
.pub-vitrina-btn:active { transform: scale(0.97); }
.pub-vitrina-btn--block { width: 100%; }
.pub-vitrina-btn--sm { min-height: 2.15rem; padding-inline: .95rem; font-size: .72rem; }
.pub-vitrina-btn--solid,
.pub-shell a.pub-vitrina-btn--solid,
.pub-shell a.pub-vitrina-btn--solid:visited {
  color: #fff;
  background: var(--pub-teal);
  border-color: var(--pub-teal);
}
.pub-vitrina-btn--solid:hover { filter: brightness(1.06); }
.pub-vitrina-btn--outline,
.pub-shell a.pub-vitrina-btn--outline,
.pub-shell a.pub-vitrina-btn--outline:visited {
  color: #fff;
  background: transparent;
  border-color: color-mix(in srgb, #fff 45%, transparent);
}
.pub-vitrina-btn--ghost,
.pub-shell a.pub-vitrina-btn--ghost,
.pub-shell a.pub-vitrina-btn--ghost:visited {
  color: #fff;
  background: color-mix(in srgb, #fff 10%, transparent);
  border-color: color-mix(in srgb, #fff 28%, transparent);
}
.pub-vitrina-btn--on-dark,
.pub-shell a.pub-vitrina-btn--on-dark,
.pub-shell a.pub-vitrina-btn--on-dark:visited {
  color: #fff;
  border-color: color-mix(in srgb, #fff 50%, transparent);
}

/* Botones legibles sobre hero oscuro, tarjeta cristal y bandas de acento */
.pub-vitrina-hero .pub-vitrina-btn--solid,
.pub-shell .pub-vitrina-hero a.pub-vitrina-btn--solid,
.pub-vitrina-hero__card .pub-vitrina-btn--solid,
.pub-shell .pub-vitrina-hero__card a.pub-vitrina-btn--solid,
.pub-vitrina-cta-band .pub-vitrina-btn--solid,
.pub-shell .pub-vitrina-cta-band a.pub-vitrina-btn--solid,
.pub-trust-cta-band .pub-vitrina-btn--solid,
.pub-shell .pub-trust-cta-band a.pub-vitrina-btn--solid,
.pub-inst-hero .pub-vitrina-btn--solid,
.pub-shell .pub-inst-hero a.pub-vitrina-btn--solid,
.pub-luxe-cine__intro .pub-vitrina-btn--solid,
.pub-shell .pub-luxe-cine__intro a.pub-vitrina-btn--solid,
.pub-vitrina-hero .pub-vitrina-btn--solid:visited,
.pub-shell .pub-vitrina-hero a.pub-vitrina-btn--solid:visited,
.pub-vitrina-cta-band .pub-vitrina-btn--solid:visited,
.pub-shell .pub-vitrina-cta-band a.pub-vitrina-btn--solid:visited {
  color: var(--pub-teal-deep);
  background: #fff;
  border-color: #fff;
  box-shadow: 0 .2rem .75rem color-mix(in srgb, #000 20%, transparent);
}
.pub-vitrina-hero .pub-vitrina-btn--ghost,
.pub-shell .pub-vitrina-hero a.pub-vitrina-btn--ghost {
  color: #fff;
  background: color-mix(in srgb, #fff 20%, transparent);
  border-color: color-mix(in srgb, #fff 62%, transparent);
}
.pub-vitrina-hero .pub-vitrina-btn--outline,
.pub-shell .pub-vitrina-hero a.pub-vitrina-btn--outline,
.pub-vitrina-hero__card .pub-vitrina-btn--outline,
.pub-shell .pub-vitrina-hero__card a.pub-vitrina-btn--outline,
.pub-vitrina-cta-band .pub-vitrina-btn--outline,
.pub-shell .pub-vitrina-cta-band a.pub-vitrina-btn--outline,
.pub-trust-cta-band .pub-vitrina-btn--outline,
.pub-shell .pub-trust-cta-band a.pub-vitrina-btn--outline,
.pub-trust-cta-band .pub-vitrina-btn--on-dark,
.pub-shell .pub-trust-cta-band a.pub-vitrina-btn--on-dark,
.pub-vitrina-cta-band .pub-vitrina-btn--on-dark,
.pub-shell .pub-vitrina-cta-band a.pub-vitrina-btn--on-dark {
  color: #fff;
  background: color-mix(in srgb, #000 10%, transparent);
  border-color: color-mix(in srgb, #fff 72%, transparent);
}
@media (hover: hover) {
  .pub-vitrina-hero .pub-vitrina-btn--solid:hover,
  .pub-vitrina-hero__card .pub-vitrina-btn--solid:hover,
  .pub-vitrina-cta-band .pub-vitrina-btn--solid:hover {
    filter: none;
    background: color-mix(in srgb, #fff 92%, var(--pub-teal-wash));
  }
  .pub-vitrina-hero .pub-vitrina-btn--ghost:hover,
  .pub-vitrina-hero .pub-vitrina-btn--outline:hover,
  .pub-vitrina-hero__card .pub-vitrina-btn--outline:hover,
  .pub-vitrina-cta-band .pub-vitrina-btn--outline:hover {
    background: color-mix(in srgb, #fff 14%, transparent);
    border-color: #fff;
  }
}

/* Nav sticky y superficies claras: botón sólido siempre legible */
.pub-site-nav .pub-vitrina-btn--solid,
.pub-shell .pub-site-nav a.pub-vitrina-btn--solid,
.pub-booking-inline__bar .pub-vitrina-btn--solid,
.pub-shell .pub-booking-inline__bar a.pub-vitrina-btn--solid {
  color: #fff;
  background: var(--pub-teal);
  border-color: var(--pub-teal);
  box-shadow: 0 .15rem .5rem color-mix(in srgb, var(--pub-teal-deep) 25%, transparent);
}

.pub-site-nav {
  position: sticky;
  top: 0;
  z-index: 40;
  border-bottom: 1px solid var(--pub-line);
  background: color-mix(in srgb, var(--pub-paper-raised) 92%, transparent);
  backdrop-filter: blur(10px);
}
.pub-site-nav__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem 1.25rem;
  padding-block: .65rem;
}
.pub-site-nav__brand {
  font-size: .82rem;
  font-weight: 650;
  color: var(--pub-teal-deep);
  max-width: 14ch;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pub-site-nav__links {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem 1rem;
  list-style: none;
  padding: 0;
  margin: 0;
  flex: 1;
}
.pub-site-nav__links a {
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--pub-graphite-soft);
}
.pub-site-nav__links a:hover { color: var(--pub-teal); }

.pub-vitrina-section-head { max-width: 42rem; margin-bottom: 1.75rem; }
.pub-vitrina-section-head__lead { margin-top: .65rem; }

.pub-vitrina-services { background: var(--pub-paper-raised); }
.pub-vitrina-services__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
  gap: 1.15rem;
}
.pub-vitrina-service-card {
  position: relative;
  padding: 1.35rem 1.25rem 1.25rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: var(--pub-paper);
  transition: transform 180ms var(--pub-ease-out), box-shadow 180ms var(--pub-ease-out);
}
.pub-vitrina-service-card:hover { transform: translateY(-3px); box-shadow: var(--pub-shadow); }
.pub-vitrina-service-card__index {
  position: absolute;
  top: .85rem;
  right: .85rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--pub-muted);
}
.pub-vitrina-service-card__media {
  margin: -1.35rem -1.25rem 1rem;
  border-radius: var(--pub-radius) var(--pub-radius) 0 0;
  overflow: hidden;
  aspect-ratio: 16/10;
}
.pub-vitrina-service-card__media img { width: 100%; height: 100%; object-fit: cover; }
.pub-vitrina-service-card h3 {
  font-family: var(--pub-vitrina-serif);
  font-size: 1.15rem;
  font-weight: 650;
  color: var(--pub-teal-deep);
  text-transform: capitalize;
}
.pub-vitrina-service-card p { margin-top: .55rem; font-size: .9rem; color: var(--pub-graphite-soft); line-height: 1.55; }

.pub-vitrina-about__grid {
  display: grid;
  grid-template-columns: min(17rem, 32%) 1fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}
.pub-vitrina-about__media img {
  width: 100%;
  border-radius: var(--pub-radius);
  aspect-ratio: 4/5;
  object-fit: cover;
  box-shadow: var(--pub-shadow);
}
.pub-vitrina-about__bio { margin-top: 1rem; color: var(--pub-graphite-soft); line-height: 1.75; }
.pub-vitrina-checklist {
  margin-top: 1.25rem;
  display: grid;
  gap: .55rem;
  list-style: none;
  padding: 0;
}
.pub-vitrina-checklist li {
  padding-left: 1.35rem;
  position: relative;
  color: var(--pub-graphite-soft);
  line-height: 1.5;
}
.pub-vitrina-checklist li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55rem;
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: var(--pub-teal);
}

.pub-vitrina-certs { background: var(--pub-teal-wash); }
.pub-vitrina-certs__grid {
  margin-top: 1.25rem;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
  gap: .65rem 1.25rem;
  list-style: none;
  padding: 0;
}
.pub-vitrina-certs__grid li {
  padding: .65rem .85rem;
  border-radius: var(--pub-radius-small);
  background: var(--pub-paper-raised);
  border: 1px solid color-mix(in srgb, var(--pub-teal) 12%, var(--pub-line));
  font-size: .88rem;
  color: var(--pub-graphite-soft);
}

.pub-vitrina-procedures__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
  gap: 1rem;
}
.pub-vitrina-procedure-card {
  padding: 1.15rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
}
.pub-vitrina-procedure-card h3 {
  font-family: var(--pub-vitrina-serif);
  font-size: 1.02rem;
  font-weight: 650;
  color: var(--pub-teal-deep);
  line-height: 1.25;
}
.pub-vitrina-procedure-card__more { margin-top: .65rem; }
.pub-vitrina-procedure-card__more summary {
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--pub-teal);
  cursor: pointer;
  list-style: none;
}
.pub-vitrina-procedure-card__more summary::-webkit-details-marker { display: none; }
.pub-vitrina-procedure-card__more p { margin-top: .55rem; font-size: .86rem; color: var(--pub-graphite-soft); line-height: 1.55; }

.pub-vitrina-cta-band {
  padding-block: clamp(2.25rem, 5vw, 3.25rem);
  background: var(--pub-teal-deep);
  color: #fff;
  text-align: center;
}
.pub-vitrina-cta-band h2 { color: #fff; font-family: var(--pub-vitrina-serif); font-size: clamp(1.5rem, 3.5vw, 2.25rem); }
.pub-vitrina-cta-band__inner { display: grid; gap: 1.25rem; justify-items: center; }
.pub-vitrina-cta-band__actions { display: flex; flex-wrap: wrap; gap: .65rem; justify-content: center; }

.pub-vitrina-hospitals__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
  gap: 1rem;
  margin-top: 1.25rem;
}
.pub-vitrina-hospital-card {
  text-align: center;
  padding: 1.15rem .85rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
}
.pub-vitrina-hospital-card img { max-height: 2.75rem; margin-inline: auto; object-fit: contain; }
.pub-vitrina-hospital-card h3 { margin-top: .65rem; font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--pub-graphite-soft); }

.pub-vitrina-consultorio {
  background: var(--pub-paper-muted);
  border-block: 1px solid var(--pub-line);
}
.pub-vitrina-consultorio__head {
  max-width: 38rem;
  margin-bottom: clamp(1.25rem, 3vw, 1.75rem);
}
.pub-vitrina-consultorio__panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  border: 1px solid var(--pub-line);
  border-radius: calc(var(--pub-radius) + .2rem);
  background: var(--pub-paper-raised);
  box-shadow: 0 .75rem 2.25rem color-mix(in srgb, var(--pub-graphite) 7%, transparent);
  overflow: hidden;
}
.pub-vitrina-consultorio__panel--map {
  grid-template-columns: minmax(0, 20rem) minmax(0, 1.35fr);
  align-items: stretch;
}
.pub-vitrina-consultorio__details {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  padding: clamp(1.15rem, 3vw, 1.65rem);
}
.pub-vitrina-consultorio__panel--map .pub-vitrina-consultorio__details {
  border-right: 1px solid var(--pub-line);
}
.pub-vitrina-consultorio__label {
  margin: 0 0 .45rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pub-muted);
}
.pub-vitrina-consultorio__address {
  display: grid;
  gap: .2rem;
  font-style: normal;
}
.pub-vitrina-consultorio__address-line {
  font-size: .88rem;
  line-height: 1.45;
  color: var(--pub-graphite-soft);
  text-wrap: pretty;
}
.pub-vitrina-consultorio__address-line--name {
  font-size: .95rem;
  font-weight: 650;
  color: var(--pub-graphite);
}
.pub-vitrina-consultorio__contact {
  display: grid;
  gap: .35rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: .88rem;
}
.pub-vitrina-consultorio__contact a {
  color: var(--pub-teal-deep);
  font-weight: 600;
  word-break: break-word;
}
.pub-vitrina-consultorio__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: auto;
  padding-top: .25rem;
}
.pub-vitrina-btn--on-light,
.pub-shell a.pub-vitrina-btn--on-light,
.pub-shell a.pub-vitrina-btn--on-light:visited {
  color: var(--pub-teal-deep);
  background: var(--pub-paper);
  border-color: color-mix(in srgb, var(--pub-teal) 35%, var(--pub-line));
}
@media (hover: hover) {
  .pub-vitrina-btn--on-light:hover {
    background: var(--pub-teal-wash);
    border-color: var(--pub-teal);
  }
}
.pub-vitrina-consultorio__marks {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pub-vitrina-consultorio__mark {
  width: 4.25rem;
  height: 4.25rem;
  padding: .4rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius-small);
  background: var(--pub-paper);
  display: grid;
  place-items: center;
}
.pub-vitrina-consultorio__mark img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.pub-vitrina-consultorio__photos {
  margin-top: clamp(1.25rem, 3vw, 1.75rem);
}
.pub-vitrina-consultorio__photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 1fr));
  gap: .65rem;
  margin-top: .65rem;
}
.pub-vitrina-consultorio__photo {
  margin: 0;
  border-radius: var(--pub-radius-small);
  overflow: hidden;
  border: 1px solid var(--pub-line);
  background: var(--pub-paper);
}
.pub-vitrina-consultorio__photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
.pub-vitrina-consultorio__photo figcaption {
  padding: .45rem .55rem;
  font-size: .72rem;
  color: var(--pub-muted);
  line-height: 1.35;
}
.pub-vitrina-consultorio__map {
  margin: 0;
  min-height: 16rem;
  display: flex;
  flex-direction: column;
  background: var(--pub-paper-muted);
}
.pub-vitrina-consultorio__map-frame {
  position: relative;
  flex: 1;
  min-height: 16rem;
  overflow: hidden;
  background: var(--pub-paper-muted);
}
.pub-vitrina-consultorio__map-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 16rem;
  border: 0;
}
.pub-vitrina-consultorio__map-cta {
  position: absolute;
  right: .85rem;
  bottom: .85rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: 2.35rem;
  padding: .45rem .95rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, #fff 55%, var(--pub-line));
  background: color-mix(in srgb, var(--pub-paper-raised) 92%, transparent);
  backdrop-filter: blur(8px);
  color: var(--pub-teal-deep);
  font-size: .82rem;
  font-weight: 650;
  box-shadow: 0 .35rem 1rem color-mix(in srgb, var(--pub-graphite) 12%, transparent);
  transition: transform 120ms var(--pub-ease-out), background 120ms var(--pub-ease-out);
}
.pub-vitrina-consultorio__map-cta:active { transform: scale(0.97); }
@media (hover: hover) {
  .pub-vitrina-consultorio__map-cta:hover {
    background: var(--pub-paper-raised);
    border-color: var(--pub-teal);
  }
}

/* Agenda inline + modal solo formulario (mini-sitios) */
.pub-booking-inline {
  padding-block: clamp(2.5rem, 6vw, 4rem);
  background: var(--pub-paper-raised);
  border-block: 1px solid var(--pub-line);
  scroll-margin-top: 1rem;
}
.pub-booking-inline .pub-booking__schedule {
  position: static;
  top: auto;
  padding: 0;
}
.pub-booking-inline .pub-booking__schedule h2 {
  max-width: none;
  font-size: clamp(1.5rem, 3vw, 2rem);
}
.pub-booking-inline__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(15rem, 1fr);
  gap: clamp(1.75rem, 4vw, 3rem);
  align-items: start;
  margin-top: 1.5rem;
  max-width: 54rem;
}
.pub-booking-inline__grid .pub-calendar { margin-top: 0; }
.pub-booking-inline__grid .pub-day-slots {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
  scroll-margin-top: 1rem;
}
.pub-booking-inline__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  margin-top: 1.75rem;
  padding: 1rem 1.15rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: var(--pub-paper);
  position: relative;
  z-index: 1;
  clear: both;
}
.pub-booking-inline__pick { flex: 1; min-width: min(100%, 14rem); }
.pub-booking-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}
.pub-booking-chip {
  display: grid;
  gap: .12rem;
  padding: .55rem .85rem;
  border: 1px solid var(--pub-line);
  border-radius: calc(var(--pub-radius-small) + .1rem);
  background: var(--pub-paper-raised);
  min-width: min(100%, 10rem);
}
.pub-booking-chip__label {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pub-muted);
}
.pub-booking-chip strong {
  font-size: .92rem;
  font-weight: 650;
  color: var(--pub-graphite);
  line-height: 1.35;
  word-break: break-word;
}
.pub-booking-chip--time {
  border-color: color-mix(in srgb, var(--pub-teal) 28%, var(--pub-line));
  background: color-mix(in srgb, var(--pub-teal-wash) 65%, var(--pub-paper-raised));
}
.pub-booking-chip--place strong { font-size: .84rem; font-weight: 600; color: var(--pub-graphite-soft); }
.pub-booking-inline__hint { margin: 0; font-size: .88rem; color: var(--pub-muted); }
.pub-booking-inline__hint--pulse { color: var(--pub-teal-deep); }
.pub-booking-inline__go { flex-shrink: 0; min-width: 10.5rem; }
.pub-booking-inline__go:disabled {
  opacity: .45;
  cursor: not-allowed;
  filter: grayscale(.15);
}

.pub-booking-modal {
  width: min(100% - 1.5rem, 26rem);
  max-height: min(92vh, 40rem);
  padding: 0;
  border: none;
  border-radius: var(--pub-radius);
  background: transparent;
  overflow: visible;
}
.pub-booking-modal::backdrop {
  background: color-mix(in srgb, var(--pub-graphite) 55%, transparent);
  backdrop-filter: blur(4px);
}
.pub-booking-modal__panel {
  display: flex;
  flex-direction: column;
  max-height: min(92vh, 40rem);
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
  box-shadow: 0 1.5rem 4rem color-mix(in srgb, var(--pub-graphite) 22%, transparent);
  overflow: hidden;
}
.pub-booking-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--pub-line);
  background: var(--pub-paper);
}
.pub-booking-modal__head h2 { font-size: 1.05rem; font-weight: 650; }
.pub-booking-modal__close {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--pub-line);
  border-radius: 999px;
  background: var(--pub-paper-raised);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  transition: transform 120ms ease-out, background 120ms ease-out;
}
.pub-booking-modal__close:active { transform: scale(0.97); }
.pub-booking-modal__body {
  overflow: auto;
  padding: 1.35rem 1.5rem 1.5rem;
  max-height: calc(min(92vh, 40rem) - 4.25rem);
}
.pub-booking-modal__body .pub-booking__request { padding: 0; border: 0; background: transparent; }
.pub-booking-modal__body .pub-booking__request h2 { font-size: 1.15rem; margin-top: 0; }
.pub-booking-modal__body .pub-booking__secure { margin-bottom: 1rem; line-height: 1.5; }
.pub-booking-modal__body .pub-form { margin-top: 1.75rem; display: grid; gap: .15rem; }
.pub-booking-modal__body .pub-field { margin-bottom: 1.15rem; gap: 0.45rem; }
.pub-booking-modal__body .pub-input { min-height: 2.75rem; }
.pub-booking-chips--location,
.pub-booking-chips--summary {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin: 1.15rem 0 .25rem;
}
.pub-booking-chips--summary { margin-top: 1rem; margin-bottom: .5rem; }
.pub-booking-chip--place strong {
  display: block;
  max-width: 28ch;
  line-height: 1.35;
  font-weight: 600;
  font-size: .88rem;
}

/* Confianza: agenda y secciones con más aire */
.pub-doctor-site[data-layout="classic"] .pub-booking-inline {
  padding-block: clamp(3rem, 7vw, 5rem);
  background: linear-gradient(180deg, var(--pub-paper) 0%, var(--pub-paper-raised) 100%);
}
.pub-doctor-site[data-layout="classic"] .pub-booking-inline .pub-wrap {
  display: grid;
  gap: 1.5rem;
}
.pub-doctor-site[data-layout="classic"] .pub-booking-inline__grid {
  max-width: 58rem;
}
.pub-doctor-site[data-layout="classic"] .pub-booking-inline__bar {
  margin-top: .5rem;
  padding: 1.15rem 1.25rem;
}
.pub-doctor-site[data-layout="classic"] .pub-trust-stats {
  gap: 1rem;
}
.pub-doctor-site[data-layout="classic"] .pub-trust-stats__item dd {
  font-size: .84rem;
  line-height: 1.45;
  word-break: break-word;
}
.pub-doctor-site[data-layout="classic"] .pub-trust-cta-band {
  margin-bottom: 0;
}
.pub-booking-panel { display: contents; }

.pub-calendar--pro {
  margin-top: 1.15rem;
  padding: 1.15rem;
  border: 1px solid var(--pub-line);
  border-radius: calc(var(--pub-radius) + .15rem);
  background: linear-gradient(180deg, var(--pub-paper-raised) 0%, var(--pub-paper) 100%);
  box-shadow: 0 .35rem 1.25rem color-mix(in srgb, var(--pub-graphite) 6%, transparent);
}
.pub-calendar--pro .pub-calendar__title { font-size: 1.08rem; }
.pub-calendar--pro .pub-calendar__arrow {
  border-radius: 999px;
  background: var(--pub-paper);
}
.pub-calendar--pro .pub-calendar__day {
  position: relative;
  flex-direction: column;
  gap: .15rem;
  aspect-ratio: 1;
  min-height: 2.5rem;
  border-radius: 999px;
  border: 1px solid transparent;
}
.pub-calendar--pro .pub-calendar__day-num { line-height: 1; }
.pub-calendar--pro .pub-calendar__day-dot {
  width: .28rem;
  height: .28rem;
  border-radius: 50%;
  background: var(--pub-teal);
}
.pub-calendar--pro .pub-calendar__day--today:not(.pub-calendar__day--selected) {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pub-teal) 35%, transparent);
}
.pub-calendar--pro .pub-calendar__day--available:not(.pub-calendar__day--selected) {
  background: color-mix(in srgb, var(--pub-teal-wash) 80%, var(--pub-paper-raised));
}
.pub-calendar--pro .pub-calendar__day--selected {
  color: #fff;
  background: var(--pub-teal);
  border-color: var(--pub-teal);
  box-shadow: 0 .35rem .85rem color-mix(in srgb, var(--pub-teal) 35%, transparent);
}
.pub-calendar--pro .pub-calendar__day--selected .pub-calendar__day-dot { background: #fff; }
.pub-calendar--pro .pub-slot {
  border-radius: 999px;
  min-width: 4.75rem;
}

.pub-doctor-site:not([data-layout="classic"]) .pub-waitlist {
  margin-top: 0;
  padding-block: 1.75rem 2.5rem;
  border-top: 1px solid var(--pub-line);
}
.pub-doctor-site:not([data-layout="classic"]) .pub-waitlist__form { max-width: 40rem; }
.pub-doctor-site:not([data-layout="classic"]) .pub-waitlist__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem 1rem;
}
.pub-doctor-site:not([data-layout="classic"]) .pub-field--wide { grid-column: 1 / -1; }

.pub-site-contact-footer {
  padding-block: clamp(2rem, 5vw, 3rem);
  background: var(--pub-graphite);
  color: color-mix(in srgb, #fff 88%, transparent);
}
.pub-site-contact-footer__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
  gap: 1.5rem 2rem;
  align-items: start;
}
.pub-site-contact-footer__kicker { font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: color-mix(in srgb, #fff 55%, transparent); }
.pub-site-contact-footer__name { margin-top: .35rem; font-family: var(--pub-vitrina-serif); font-size: 1.35rem; color: #fff; }
.pub-site-contact-footer__tagline { margin-top: .35rem; font-size: .88rem; color: color-mix(in srgb, #fff 70%, transparent); }
.pub-site-contact-footer__facts { display: grid; gap: .65rem; }
.pub-site-contact-footer__facts dt { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: color-mix(in srgb, #fff 50%, transparent); }
.pub-site-contact-footer__facts dd { margin-top: .15rem; font-size: .88rem; }
.pub-site-contact-footer__facts a { color: inherit; text-decoration: underline; text-underline-offset: .12em; }
.pub-site-contact-footer__cta { display: grid; gap: .65rem; align-content: start; }
.pub-site-contact-footer__back { color: color-mix(in srgb, #fff 75%, transparent) !important; font-size: .82rem; }
.pub-site-contact-footer__legal {
  margin-top: 1.75rem;
  padding-top: 1rem;
  border-top: 1px solid color-mix(in srgb, #fff 12%, transparent);
  text-align: center;
  font-size: .72rem;
  color: color-mix(in srgb, #fff 50%, transparent);
}

.pub-reviews--vitrina { padding-block: clamp(2.5rem, 5vw, 3.5rem); }
.pub-review-list--cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
  gap: 1rem;
  margin-top: 1.25rem;
  list-style: none;
  padding: 0;
}
.pub-review-card--quote {
  padding: 1.25rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
}
.pub-review-card--quote blockquote {
  margin: 0 0 .85rem;
  font-family: var(--pub-vitrina-serif);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--pub-graphite-soft);
}

.pub-doctor-site[data-layout="showcase"] .pub-booking-inline { margin-top: 0; }

/* ---- Layouts premium: Confianza, Editorial, Cinematográfico, Instituto ---- */
.pub-luxe-hero__eyebrow {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--pub-teal);
}
.pub-luxe-hero__lead {
  margin-top: .85rem;
  max-width: 42ch;
  color: var(--pub-graphite-soft);
  line-height: 1.65;
  font-size: 1.02rem;
}
.pub-luxe-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: 1.25rem;
}
.pub-luxe-hero__portrait {
  position: relative;
  width: min(100%, 14rem);
  aspect-ratio: 4/5;
  border-radius: calc(var(--pub-radius) + .35rem);
  overflow: hidden;
  background: var(--pub-paper-raised);
  box-shadow:
    0 1.25rem 2.5rem color-mix(in srgb, var(--pub-graphite) 12%, transparent),
    0 0 0 1px var(--pub-line);
}
.pub-luxe-hero__portrait::after {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  padding: 2px;
  background: linear-gradient(145deg, var(--hue-teal, var(--pub-teal)), transparent 55%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.pub-luxe-hero__portrait.hue-indigo::after { background: linear-gradient(145deg, var(--hue-indigo), transparent 55%); }
.pub-luxe-hero__portrait.hue-violet::after { background: linear-gradient(145deg, var(--hue-violet), transparent 55%); }
.pub-luxe-hero__portrait.hue-rose::after { background: linear-gradient(145deg, var(--hue-rose), transparent 55%); }
.pub-luxe-hero__portrait.hue-amber::after { background: linear-gradient(145deg, var(--hue-amber), transparent 55%); }
.pub-luxe-hero__portrait.hue-emerald::after { background: linear-gradient(145deg, var(--hue-emerald), transparent 55%); }
.pub-luxe-hero__portrait.hue-sky::after { background: linear-gradient(145deg, var(--hue-sky), transparent 55%); }
.pub-luxe-hero__portrait img,
.pub-luxe-hero__portrait > span {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  object-fit: cover;
  font-size: 3rem;
  font-weight: 650;
  color: var(--pub-teal-deep);
  background: var(--pub-teal-wash);
}

/* Confianza (classic) — hero con malla, marquee y tarjetas numeradas */
.pub-trust-hero {
  position: relative;
  padding-block: clamp(2rem, 5vw, 3.25rem) clamp(3rem, 7vw, 5rem);
  background: linear-gradient(165deg, var(--pub-paper-raised) 0%, var(--pub-paper) 55%, color-mix(in srgb, var(--pub-teal-wash) 35%, var(--pub-paper)) 100%);
  overflow: hidden;
}
.pub-trust-hero__mesh {
  position: absolute;
  inset: -20% -10% auto auto;
  width: min(55vw, 32rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--pub-teal) 22%, transparent), transparent 55%),
    radial-gradient(circle at 70% 60%, color-mix(in srgb, var(--pub-teal-deep) 15%, transparent), transparent 50%);
  filter: blur(48px);
  pointer-events: none;
  animation: pub-luxe-drift 20s ease-in-out infinite alternate;
}
.pub-trust-hero__grain {
  position: absolute;
  inset: 0;
  opacity: .35;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  pointer-events: none;
}
.pub-trust-hero__inner { position: relative; z-index: 1; }
.pub-trust-hero__back { margin-bottom: 1.25rem; }
.pub-trust-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 14rem) 1fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.pub-trust-hero__visual { position: relative; }
.pub-trust-hero__portrait {
  position: relative;
  border-radius: calc(var(--pub-radius) + .65rem);
  overflow: hidden;
  aspect-ratio: 4/5;
  box-shadow:
    0 1.25rem 2.75rem color-mix(in srgb, var(--pub-graphite) 12%, transparent),
    0 0 0 1px color-mix(in srgb, var(--pub-teal) 12%, var(--pub-line));
}
.pub-trust-hero__portrait::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(145deg, color-mix(in srgb, var(--pub-teal) 18%, transparent), transparent 55%);
  pointer-events: none;
}
.pub-trust-hero__portrait.hue-indigo::after { background: linear-gradient(145deg, var(--hue-indigo), transparent 55%); }
.pub-trust-hero__portrait.hue-violet::after { background: linear-gradient(145deg, var(--hue-violet), transparent 55%); }
.pub-trust-hero__portrait.hue-rose::after { background: linear-gradient(145deg, var(--hue-rose), transparent 55%); }
.pub-trust-hero__portrait.hue-amber::after { background: linear-gradient(145deg, var(--hue-amber), transparent 55%); }
.pub-trust-hero__portrait.hue-emerald::after { background: linear-gradient(145deg, var(--hue-emerald), transparent 55%); }
.pub-trust-hero__portrait.hue-sky::after { background: linear-gradient(145deg, var(--hue-sky), transparent 55%); }
.pub-trust-hero__portrait img,
.pub-trust-hero__portrait > span {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: grid;
  place-items: center;
  font-size: 2.5rem;
  font-weight: 650;
  color: var(--pub-teal-deep);
  background: var(--pub-teal-wash);
}
.pub-trust-hero__badge {
  position: absolute;
  right: -.85rem;
  bottom: 1rem;
  display: grid;
  gap: .1rem;
  padding: .65rem .85rem;
  border-radius: var(--pub-radius-small);
  background: var(--pub-paper-raised);
  border: 1px solid var(--pub-line);
  box-shadow: 0 .75rem 1.75rem color-mix(in srgb, var(--pub-graphite) 10%, transparent);
  text-align: center;
  min-width: 5.5rem;
}
.pub-trust-hero__badge-stars { color: #c9a227; font-size: .72rem; letter-spacing: .05em; }
.pub-trust-hero__badge strong { font-size: 1.35rem; line-height: 1; }
.pub-trust-hero__badge-count { font-size: .62rem; color: var(--pub-muted); text-transform: uppercase; letter-spacing: .06em; }
.pub-trust-hero__eyebrow {
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--pub-teal);
}
.pub-trust-hero__name {
  margin-top: .35rem;
  font-size: clamp(2.1rem, 5vw, 3.5rem);
  letter-spacing: -.035em;
  line-height: 1.02;
}
.pub-trust-hero__lead {
  margin-top: .85rem;
  max-width: 42ch;
  color: var(--pub-graphite-soft);
  line-height: 1.65;
  font-size: 1.02rem;
}
.pub-trust-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: 1.35rem;
}
.pub-trust-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.5rem), 1fr));
  gap: .75rem;
  margin-top: clamp(2rem, 4vw, 3rem);
}
.pub-trust-stats__item {
  padding: .9rem 1rem;
  border-radius: var(--pub-radius-small);
  border: 1px solid color-mix(in srgb, var(--pub-teal) 14%, var(--pub-line));
  background: color-mix(in srgb, var(--pub-paper-raised) 90%, var(--pub-teal-wash));
  box-shadow: 0 .4rem 1.1rem color-mix(in srgb, var(--pub-graphite) 5%, transparent);
  transition: transform 200ms var(--pub-ease-out), box-shadow 200ms var(--pub-ease-out);
}
.pub-trust-stats__item dt {
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--pub-muted);
}
.pub-trust-stats__item dd {
  margin-top: .25rem;
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.4;
}
.pub-trust-hero__clip {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3.5rem;
  background: var(--pub-paper);
  clip-path: polygon(0 100%, 100% 0, 100% 100%);
  pointer-events: none;
}
.pub-trust-marquee {
  overflow: hidden;
  border-block: 1px solid var(--pub-line);
  background: color-mix(in srgb, var(--pub-teal-wash) 55%, var(--pub-paper));
  padding-block: .65rem;
}
.pub-trust-marquee__track {
  display: flex;
  gap: 1.25rem;
  width: max-content;
  animation: pub-trust-marquee 32s linear infinite;
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--pub-teal-deep);
}
.pub-trust-marquee__dot { opacity: .35; font-size: .55rem; }
@keyframes pub-trust-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.pub-trust-section-head { max-width: 38rem; margin-bottom: 1.75rem; }
.pub-trust-services { background: var(--pub-paper); }
.pub-trust-services__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
  gap: 1rem;
}
.pub-trust-service-card {
  position: relative;
  padding: 1.2rem 1.25rem 1.25rem 3.25rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
  box-shadow: 0 .5rem 1.35rem color-mix(in srgb, var(--pub-graphite) 5%, transparent);
  transition: transform 220ms var(--pub-ease-out), border-color 220ms var(--pub-ease-out), box-shadow 220ms var(--pub-ease-out);
}
.pub-trust-service-card__index {
  position: absolute;
  top: 1rem;
  left: 1rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--pub-teal);
}
.pub-trust-service-card__media {
  margin: -.25rem 0 .75rem -2rem;
  border-radius: var(--pub-radius-small);
  overflow: hidden;
}
.pub-trust-service-card__media img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.pub-trust-service-card h3 { font-size: 1rem; font-weight: 650; }
.pub-trust-service-card p { margin-top: .45rem; font-size: .88rem; color: var(--pub-graphite-soft); line-height: 1.55; }
.pub-trust-about {
  background:
    linear-gradient(180deg, var(--pub-paper) 0%, color-mix(in srgb, var(--pub-teal-wash) 40%, var(--pub-paper)) 100%);
}
.pub-trust-about__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, .85fr);
  gap: clamp(1.5rem, 4vw, 2.5rem);
  align-items: start;
}
.pub-trust-about__panel {
  padding: clamp(1.25rem, 3vw, 2rem);
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
  border: 1px solid var(--pub-line);
  box-shadow: 0 .65rem 1.75rem color-mix(in srgb, var(--pub-graphite) 6%, transparent);
}
.pub-trust-about__bio { margin-top: 1rem; color: var(--pub-graphite-soft); line-height: 1.75; }
.pub-trust-about__aside {
  padding: 1.25rem 1.35rem;
  border-radius: var(--pub-radius);
  border: 1px solid color-mix(in srgb, var(--pub-teal) 20%, var(--pub-line));
  background: color-mix(in srgb, var(--pub-teal-wash) 50%, var(--pub-paper-raised));
}
.pub-trust-about__aside-title {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pub-teal-deep);
}
.pub-trust-checklist {
  margin-top: .85rem;
  display: grid;
  gap: .55rem;
  padding: 0;
  list-style: none;
}
.pub-trust-checklist li {
  padding-left: 1.15rem;
  position: relative;
  font-size: .88rem;
  color: var(--pub-graphite-soft);
  line-height: 1.5;
}
.pub-trust-checklist li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .45em;
  width: .45rem;
  height: .45rem;
  border-radius: 50%;
  background: var(--pub-teal);
}
.pub-trust-certs { padding-block: clamp(2rem, 5vw, 3rem); }
.pub-trust-certs__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr));
  gap: .65rem;
  margin-top: 1.25rem;
  padding: 0;
  list-style: none;
}
.pub-trust-certs__grid li {
  padding: .65rem .85rem;
  border-radius: var(--pub-radius-small);
  border: 1px solid var(--pub-line);
  background: var(--pub-paper-raised);
  font-size: .84rem;
  font-weight: 600;
  color: var(--pub-graphite-soft);
}
.pub-trust-procedures__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
  gap: .85rem;
  margin-top: 1.25rem;
}
.pub-trust-procedure-card {
  padding: 1rem 1.1rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius-small);
  background: var(--pub-paper-raised);
}
.pub-trust-procedure-card h3 { font-size: .95rem; font-weight: 650; }
.pub-trust-procedure-card__more { margin-top: .55rem; font-size: .84rem; color: var(--pub-graphite-soft); }
.pub-trust-procedure-card__more summary { cursor: pointer; font-weight: 600; color: var(--pub-teal-deep); }
.pub-trust-cta-band {
  padding-block: clamp(2rem, 5vw, 3rem);
  background: linear-gradient(118deg, var(--pub-teal-deep) 0%, color-mix(in srgb, var(--pub-teal) 88%, #000) 100%);
  color: #fff;
}
.pub-trust-cta-band__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
}
.pub-trust-cta-band h2 {
  margin-top: .35rem;
  font-size: clamp(1.35rem, 3vw, 2rem);
  color: #fff;
  max-width: 22ch;
}
.pub-trust-cta-band__kicker { color: color-mix(in srgb, #fff 72%, var(--pub-teal-wash)); }
.pub-trust-cta-band__actions { display: flex; flex-wrap: wrap; gap: .55rem; }

/* Editorial (minimal) — revista, rail horizontal y dock flotante */
.pub-edit-hero {
  position: relative;
  min-height: clamp(24rem, 58vh, 36rem);
  padding-block: clamp(2rem, 5vw, 3.5rem);
  background:
    radial-gradient(ellipse 70% 50% at 100% 0%, color-mix(in srgb, var(--pub-teal-wash) 80%, transparent), transparent 60%),
    linear-gradient(180deg, var(--pub-paper-raised) 0%, var(--pub-paper) 100%);
  overflow: hidden;
}
.pub-edit-hero__veil {
  position: absolute;
  inset: auto -15% -30% auto;
  width: min(50vw, 26rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--pub-teal) 12%, transparent), transparent 68%);
  pointer-events: none;
}
.pub-edit-hero__inner { position: relative; z-index: 1; }
.pub-edit-hero__back { margin-bottom: 1rem; }
.pub-edit-hero__stage {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(12rem, .85fr);
  gap: clamp(1.25rem, 4vw, 3rem);
  align-items: end;
}
.pub-edit-hero__eyebrow {
  font-size: .78rem;
  font-weight: 650;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--pub-teal);
}
.pub-edit-hero__name {
  margin-top: .5rem;
  font-family: var(--pub-font-display, Georgia, serif);
  font-size: clamp(2.75rem, 7vw, 5rem);
  letter-spacing: -.04em;
  line-height: .92;
  max-width: 12ch;
}
.pub-doctor-site[data-layout="minimal"] {
  padding-bottom: 4.25rem;
}
.pub-edit-hero__visual {
  display: flex;
  justify-content: flex-end;
}
.pub-edit-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .85rem;
  margin-top: 1.1rem;
  font-size: .84rem;
}
.pub-edit-hero__meta-link {
  font-weight: 650;
  color: var(--pub-teal-deep);
  text-decoration: none;
}
.pub-edit-hero__meta-muted {
  color: var(--pub-muted);
  max-width: 36ch;
  line-height: 1.45;
}
.pub-edit-hero__deck {
  margin-top: clamp(1.5rem, 4vw, 2.25rem);
  max-width: 44ch;
  font-family: var(--pub-font-display, Georgia, serif);
  font-size: 1.08rem;
  line-height: 1.55;
  color: var(--pub-graphite-soft);
}
.pub-edit-hero__placeholder {
  width: min(100%, 18rem);
  aspect-ratio: 3/4;
  border-radius: calc(var(--pub-radius) + .75rem);
  display: grid;
  place-items: center;
  font-family: var(--pub-font-display, Georgia, serif);
  font-size: 4rem;
  font-weight: 650;
  color: var(--pub-teal-deep);
  background: var(--pub-teal-wash);
  box-shadow: 0 1.75rem 3.5rem color-mix(in srgb, var(--pub-graphite) 16%, transparent);
}
.pub-edit-hero__rating { margin-top: .85rem; }
.pub-edit-hero__photo {
  margin: 0;
  position: relative;
  width: min(100%, 18rem);
  border-radius: calc(var(--pub-radius) + .75rem);
  overflow: hidden;
  box-shadow: 0 1.75rem 3.5rem color-mix(in srgb, var(--pub-graphite) 16%, transparent);
  transform: rotate(1.5deg);
}
.pub-edit-hero__photo img {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  display: block;
  filter: saturate(.9) contrast(1.02);
}
.pub-edit-hero__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, color-mix(in srgb, var(--pub-graphite) 28%, transparent), transparent 50%);
  pointer-events: none;
}
.pub-edit-quote {
  position: relative;
  margin-top: clamp(2rem, 5vw, 3rem);
  padding: clamp(1.25rem, 3vw, 2rem) clamp(1.5rem, 4vw, 2.5rem);
  border-radius: var(--pub-radius);
  background: color-mix(in srgb, var(--pub-teal-wash) 65%, var(--pub-paper-raised));
  border: 1px solid color-mix(in srgb, var(--pub-teal) 18%, var(--pub-line));
}
.pub-edit-quote__mark {
  position: absolute;
  top: -.35rem;
  left: 1rem;
  font-family: var(--pub-font-display, Georgia, serif);
  font-size: 4rem;
  line-height: 1;
  color: color-mix(in srgb, var(--pub-teal) 35%, transparent);
  pointer-events: none;
}
.pub-edit-quote p {
  position: relative;
  font-family: var(--pub-font-display, Georgia, serif);
  font-size: clamp(1.15rem, 2.5vw, 1.55rem);
  font-style: italic;
  line-height: 1.45;
  color: var(--pub-graphite-soft);
  max-width: 48ch;
}
.pub-edit-spread__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, .75fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}
.pub-edit-spread__body {
  margin-top: 1rem;
  columns: 2;
  column-gap: 1.75rem;
  color: var(--pub-graphite-soft);
  line-height: 1.75;
  font-size: 1.02rem;
}
.pub-edit-spread__body::first-letter {
  float: left;
  margin: .05em .12em 0 0;
  font-family: var(--pub-font-display, Georgia, serif);
  font-size: 3.2em;
  line-height: .82;
  color: var(--pub-teal-deep);
}
.pub-edit-spread__aside {
  padding: 1.25rem;
  border-left: 3px solid var(--pub-teal);
  background: color-mix(in srgb, var(--pub-teal-wash) 40%, var(--pub-paper-raised));
  border-radius: 0 var(--pub-radius-small) var(--pub-radius-small) 0;
}
.pub-edit-spread__aside h3 {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pub-teal-deep);
}
.pub-edit-timeline {
  margin-top: .85rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: .75rem;
}
.pub-edit-timeline__item {
  position: relative;
  padding-left: 1.1rem;
  font-size: .88rem;
  color: var(--pub-graphite-soft);
  line-height: 1.5;
}
.pub-edit-timeline__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: .35em;
  width: .35rem;
  height: .35rem;
  border-radius: 50%;
  background: var(--pub-teal);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pub-teal) 18%, transparent);
}
.pub-edit-section-head { margin-bottom: 1.25rem; }
.pub-edit-services { padding-bottom: clamp(2rem, 5vw, 3rem); overflow: hidden; }
.pub-edit-services__rail {
  display: flex;
  gap: 1rem;
  padding-inline: max(1.25rem, calc((100% - 76rem) / 2 + 1.25rem));
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  padding-bottom: .5rem;
}
.pub-edit-service-card {
  flex: 0 0 min(18rem, 78vw);
  scroll-snap-align: start;
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
  box-shadow: 0 .55rem 1.35rem color-mix(in srgb, var(--pub-graphite) 6%, transparent);
  transition: transform 220ms var(--pub-ease-out), border-color 220ms var(--pub-ease-out);
}
.pub-edit-service-card__media {
  margin: -.25rem -.25rem .75rem;
  border-radius: var(--pub-radius-small);
  overflow: hidden;
}
.pub-edit-service-card__media img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; }
.pub-edit-service-card h3 { font-family: var(--pub-font-display, Georgia, serif); font-size: 1.15rem; }
.pub-edit-service-card p { margin-top: .45rem; font-size: .88rem; color: var(--pub-graphite-soft); line-height: 1.55; }
.pub-edit-certs__strip {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: 1rem;
  padding: 0;
  list-style: none;
}
.pub-edit-certs__pill {
  padding: .5rem .95rem;
  border-radius: 999px;
  border: 1px solid var(--pub-line);
  background: linear-gradient(135deg, var(--pub-paper-raised), color-mix(in srgb, var(--pub-teal-wash) 50%, var(--pub-paper-raised)));
  font-size: .82rem;
  font-weight: 600;
  color: var(--pub-graphite-soft);
}
.pub-edit-procedures__list { display: grid; gap: .55rem; margin-top: 1rem; max-width: 40rem; }
.pub-edit-procedure {
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius-small);
  padding: .65rem .85rem;
  background: var(--pub-paper-raised);
}
.pub-edit-procedure summary { cursor: pointer; font-weight: 650; }
.pub-edit-procedure p { margin-top: .55rem; font-size: .88rem; color: var(--pub-graphite-soft); line-height: 1.55; }
.pub-edit-dock {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 35;
  padding-block: .65rem;
  background: color-mix(in srgb, var(--pub-paper-raised) 96%, transparent);
  backdrop-filter: blur(12px);
  border-top: 1px solid var(--pub-line);
  box-shadow: 0 -.35rem 1.25rem color-mix(in srgb, var(--pub-graphite) 8%, transparent);
}
.pub-edit-dock__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .55rem;
}
.pub-edit-dock__chip {
  padding: .4rem .75rem;
  border-radius: 999px;
  border: 1px solid var(--pub-line);
  background: var(--pub-paper);
  font-size: .78rem;
  font-weight: 600;
  color: var(--pub-teal-deep);
  text-decoration: none;
}
.pub-edit-dock__chip--muted { color: var(--pub-muted); font-weight: 500; }

/* Cinematográfico (gallery) */
.pub-luxe-cine { background: var(--pub-graphite); color: #fff; }
.pub-luxe-cine__stage {
  position: relative;
  height: clamp(20rem, 52vh, 32rem);
  max-height: 32rem;
  overflow: hidden;
  background: var(--pub-graphite);
}
.pub-luxe-cine__stage::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: var(--pub-cine-bg, none);
  background-size: cover;
  background-position: center;
  transform: scale(1.03);
}
.pub-luxe-cine__stage--empty {
  background:
    radial-gradient(ellipse 80% 70% at 85% 15%, color-mix(in srgb, var(--pub-teal) 22%, transparent), transparent 55%),
    linear-gradient(155deg, color-mix(in srgb, var(--pub-graphite) 96%, #000), var(--pub-graphite));
}
.pub-luxe-cine__stage--empty::before {
  display: none;
}
.pub-luxe-cine__reel {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: flex;
  width: 600%;
  height: 100%;
  will-change: transform;
  animation: pub-luxe-pan 36s linear infinite;
}
.pub-luxe-cine__reel img {
  flex: 0 0 calc(100% / 6);
  width: calc(100% / 6);
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  opacity: .88;
  filter: saturate(.92) contrast(1.04);
}
.pub-luxe-cine__reel--hold {
  animation: pub-luxe-pan 48s linear infinite;
}
.pub-luxe-cine__reel--hold img {
  animation: pub-cine-ken-burns 22s ease-in-out infinite alternate;
}
@keyframes pub-cine-ken-burns {
  from { transform: scale(1.04); object-position: 42% center; }
  to { transform: scale(1.12); object-position: 58% center; }
}
.pub-luxe-cine__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(105deg, color-mix(in srgb, var(--pub-graphite) 78%, #000) 0%, color-mix(in srgb, var(--pub-graphite) 38%, transparent) 44%, transparent 70%),
    linear-gradient(0deg, color-mix(in srgb, var(--pub-graphite) 72%, transparent), transparent 50%);
  pointer-events: none;
}
.pub-luxe-cine__intro {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-block: clamp(2rem, 5vw, 3.5rem);
}
.pub-luxe-cine__back { color: color-mix(in srgb, #fff 78%, transparent) !important; margin-bottom: 1rem; }
.pub-luxe-cine__intro h1 {
  font-family: var(--pub-font-display, Georgia, serif);
  font-size: clamp(2.25rem, 6vw, 4rem);
  max-width: 14ch;
  line-height: .95;
  color: #fff;
}
.pub-luxe-cine__intro p {
  margin-top: .65rem;
  max-width: 36ch;
  color: color-mix(in srgb, #fff 78%, transparent);
  font-size: 1.02rem;
}
.pub-luxe-cine__intro .pub-vitrina-btn--ghost {
  border-color: color-mix(in srgb, #fff 35%, transparent);
  color: #fff;
  background: color-mix(in srgb, #fff 8%, transparent);
}
.pub-luxe-cine__mosaic {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 10rem;
  gap: .45rem;
  padding-block: clamp(1.5rem, 4vw, 2.75rem);
  background: var(--pub-paper);
}
.pub-luxe-cine__tile {
  margin: 0;
  overflow: hidden;
  border-radius: .4rem;
  position: relative;
  display: grid;
  grid-template-rows: 1fr auto;
  min-height: 10rem;
  height: 100%;
}
.pub-luxe-cine__tile img {
  width: 100%;
  height: 100%;
  min-height: 10rem;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 420ms var(--pub-ease-out), filter 420ms var(--pub-ease-out);
}
.pub-luxe-cine__tile:hover img {
  transform: scale(1.04);
  filter: brightness(1.05);
}
.pub-luxe-cine__tile--0 { grid-column: span 6; grid-row: span 2; min-height: 20rem; }
.pub-luxe-cine__tile--0 img { min-height: 20rem; }
.pub-luxe-cine__tile--1 { grid-column: span 3; }
.pub-luxe-cine__tile--2 { grid-column: span 3; }
.pub-luxe-cine__tile--3 { grid-column: span 4; }
.pub-luxe-cine__tile--4 { grid-column: span 4; }
.pub-luxe-cine__tile--5 { grid-column: span 4; }
.pub-luxe-cine__tile figcaption {
  padding: .5rem .65rem;
  font-size: .72rem;
  color: var(--pub-muted);
  background: var(--pub-paper-raised);
}
.pub-luxe-cine__bio {
  padding-block: 2rem 3rem;
  background: var(--pub-paper);
  color: var(--pub-graphite);
}
.pub-doctor-site[data-layout="gallery"] .pub-site-nav {
  position: sticky;
  top: 0;
  z-index: 20;
  background: color-mix(in srgb, var(--pub-paper-raised) 92%, transparent);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--pub-line);
}

/* Instituto (clinical) — dashboard clínico con malla y bento */
.pub-inst-hero {
  position: relative;
  padding-block: clamp(1.75rem, 4vw, 3rem) clamp(2rem, 5vw, 3.5rem);
  background: linear-gradient(155deg, color-mix(in srgb, var(--pub-teal-deep) 96%, #000) 0%, var(--pub-teal-deep) 45%, color-mix(in srgb, var(--pub-teal) 75%, #000) 100%);
  color: #fff;
  overflow: hidden;
}
.pub-inst-hero__mesh {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 15% 20%, color-mix(in srgb, #fff 8%, transparent), transparent 35%),
    radial-gradient(circle at 85% 80%, color-mix(in srgb, var(--pub-teal) 25%, transparent), transparent 40%);
  pointer-events: none;
}
.pub-inst-hero__grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(color-mix(in srgb, #fff 6%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, #fff 6%, transparent) 1px, transparent 1px);
  background-size: 2.5rem 2.5rem;
  mask-image: linear-gradient(180deg, #000 0%, transparent 85%);
  pointer-events: none;
}
.pub-inst-hero__inner { position: relative; z-index: 1; }
.pub-inst-hero__back { color: color-mix(in srgb, #fff 78%, transparent) !important; margin-bottom: 1rem; }
.pub-inst-hero__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.25rem;
}
.pub-inst-hero__id {
  display: flex;
  gap: 1.15rem;
  align-items: center;
  max-width: 42rem;
}
.pub-inst-hero__portrait {
  position: relative;
  flex-shrink: 0;
  width: 5.5rem;
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 .85rem 2rem color-mix(in srgb, #000 30%, transparent);
  border: 2px solid color-mix(in srgb, #fff 25%, transparent);
}
.pub-inst-hero__portrait::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: linear-gradient(145deg, color-mix(in srgb, var(--pub-teal) 25%, transparent), transparent 55%);
  pointer-events: none;
}
.pub-inst-hero__portrait img,
.pub-inst-hero__portrait > span {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: grid;
  place-items: center;
  font-weight: 650;
  background: var(--pub-teal-wash);
  color: var(--pub-teal-deep);
}
.pub-inst-hero__eyebrow {
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: color-mix(in srgb, #fff 70%, var(--pub-teal-wash));
}
.pub-inst-hero__id h1 {
  margin-top: .2rem;
  font-size: clamp(1.5rem, 3.5vw, 2.35rem);
  color: #fff;
  line-height: 1.08;
}
.pub-inst-hero__lead {
  margin-top: .45rem;
  font-size: .92rem;
  color: color-mix(in srgb, #fff 78%, transparent);
  line-height: 1.5;
  max-width: 42ch;
}
.pub-inst-hero__actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.pub-inst-hero__actions .pub-vitrina-btn--ghost {
  border-color: color-mix(in srgb, #fff 35%, transparent);
  color: #fff;
  background: color-mix(in srgb, #fff 8%, transparent);
}
.pub-inst-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
  gap: .65rem;
  margin-top: clamp(1.5rem, 4vw, 2.25rem);
  padding: 0;
}
.pub-inst-metrics > div {
  padding: .75rem .85rem;
  border-radius: var(--pub-radius-small);
  background: color-mix(in srgb, #fff 8%, transparent);
  border: 1px solid color-mix(in srgb, #fff 14%, transparent);
  backdrop-filter: blur(6px);
}
.pub-inst-metrics dt {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: color-mix(in srgb, #fff 65%, transparent);
}
.pub-inst-metrics dd {
  margin-top: .2rem;
  font-size: .88rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.35;
}
.pub-inst-dashboard { padding-block: clamp(2rem, 5vw, 3.5rem); margin-top: -1.5rem; }
.pub-inst-bento {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1rem;
}
.pub-inst-bento__cell {
  grid-column: span 4;
  padding: 1.25rem 1.35rem;
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
  border: 1px solid var(--pub-line);
  box-shadow: 0 .55rem 1.5rem color-mix(in srgb, var(--pub-graphite) 6%, transparent);
  position: relative;
  overflow: hidden;
  transition: transform 220ms var(--pub-ease-out), box-shadow 220ms var(--pub-ease-out), border-color 220ms var(--pub-ease-out);
}
.pub-inst-bento__cell::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--pub-teal), color-mix(in srgb, var(--pub-teal) 40%, transparent));
  opacity: .85;
}
.pub-inst-bento__cell--profile { grid-column: span 8; }
.pub-inst-bento__cell--services { grid-row: span 2; }
.pub-inst-bento__cell--gallery { grid-column: span 12; }
.pub-inst-bento__label {
  display: block;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--pub-teal-deep);
}
.pub-inst-bento__cell h2 {
  margin-top: .35rem;
  font-size: 1.15rem;
  font-weight: 650;
}
.pub-inst-bento__bio {
  margin-top: .75rem;
  color: var(--pub-graphite-soft);
  line-height: 1.7;
  font-size: .92rem;
}
.pub-inst-service-list {
  margin-top: .85rem;
  display: grid;
  gap: .65rem;
  padding: 0;
  list-style: none;
}
.pub-inst-service-list__item {
  padding-bottom: .65rem;
  border-bottom: 1px solid var(--pub-line);
  display: grid;
  gap: .15rem;
}
.pub-inst-service-list__item strong { font-size: .9rem; }
.pub-inst-service-list__item span { font-size: .82rem; color: var(--pub-graphite-soft); line-height: 1.45; }
.pub-inst-cert-list {
  margin-top: .75rem;
  display: grid;
  gap: .45rem;
  padding: 0;
  list-style: none;
  font-size: .84rem;
  color: var(--pub-graphite-soft);
}
.pub-inst-cert-list li {
  padding-left: .85rem;
  position: relative;
}
.pub-inst-cert-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--pub-teal);
  font-size: .72rem;
  font-weight: 700;
}
.pub-inst-gallery {
  display: grid;
  grid-template-columns: 2fr repeat(4, 1fr);
  gap: .55rem;
  margin-top: .85rem;
}
.pub-inst-gallery__item {
  margin: 0;
  border-radius: var(--pub-radius-small);
  overflow: hidden;
  min-height: 5.5rem;
}
.pub-inst-gallery__item--lead { grid-row: span 2; min-height: 11rem; }
.pub-inst-gallery__item img {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  display: block;
  transition: transform 320ms var(--pub-ease-out);
}
.pub-inst-gallery__item:hover img { transform: scale(1.04); }
.pub-inst-section-head { max-width: 36rem; margin-bottom: 1.25rem; }
.pub-inst-procedures__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
  gap: .65rem;
}
.pub-inst-procedure {
  padding: .75rem 1rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius-small);
  background: var(--pub-paper-raised);
}
.pub-inst-procedure summary { cursor: pointer; font-weight: 650; font-size: .92rem; }
.pub-inst-procedure p { margin-top: .55rem; font-size: .86rem; color: var(--pub-graphite-soft); line-height: 1.55; }

@keyframes pub-luxe-drift {
  from { transform: translate(0, 0) scale(1); }
  to { transform: translate(-8%, 6%) scale(1.08); }
}
@keyframes pub-luxe-pan {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Legacy aliases (previews / rutas antiguas) */
.pub-gallery-site__mast { position: relative; min-height: clamp(18rem, 45vh, 28rem); overflow: hidden; background: var(--pub-graphite); }
.pub-gallery-site__strip {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  height: 100%;
  min-height: inherit;
  opacity: .55;
}
.pub-gallery-site__strip-item img { width: 100%; height: 100%; min-height: 18rem; object-fit: cover; }
.pub-gallery-site__hero-img img { width: 100%; max-height: 28rem; object-fit: cover; opacity: .5; }
.pub-gallery-site__intro {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: linear-gradient(transparent 20%, color-mix(in srgb, var(--pub-graphite) 88%, transparent));
  color: #fff;
}
.pub-gallery-site__intro .pub-wrap { width: min(100% - 2.5rem, 76rem); margin-inline: auto; }
.pub-gallery-site__back { color: color-mix(in srgb, #fff 80%, transparent); margin-bottom: 1rem; }
.pub-gallery-site__intro h1 { color: #fff; font-size: clamp(2rem, 5vw, 3.5rem); max-width: 14ch; }
.pub-gallery-site__intro p { margin-top: .5rem; max-width: 36ch; color: color-mix(in srgb, #fff 82%, transparent); }
.pub-gallery-site__actions { display: flex; gap: .55rem; margin-top: 1.15rem; }
.pub-gallery-site__mosaic {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: .4rem;
  padding-block: clamp(1.5rem, 4vw, 2.5rem);
}
.pub-gallery-site__tile { margin: 0; overflow: hidden; border-radius: .35rem; }
.pub-gallery-site__tile img { width: 100%; height: 100%; min-height: 10rem; object-fit: cover; display: block; }
.pub-gallery-site__tile--0 { grid-column: span 6; grid-row: span 2; }
.pub-gallery-site__tile--1 { grid-column: span 3; }
.pub-gallery-site__tile--2 { grid-column: span 3; }
.pub-gallery-site__tile--3 { grid-column: span 4; }
.pub-gallery-site__tile--4 { grid-column: span 2; }
.pub-gallery-site__tile figcaption { padding: .45rem .55rem; font-size: .72rem; color: var(--pub-muted); background: var(--pub-paper-raised); }
.pub-gallery-site__bio { padding-block: 2rem 3rem; max-width: 40rem; }

/* Minimal — editorial */
.pub-minimal-site__head { padding-block: clamp(2.5rem, 7vw, 5rem); }
.pub-minimal-site__head-inner { max-width: 38rem; }
.pub-minimal-site__identity { display: flex; gap: 1.15rem; align-items: center; margin-top: 1.5rem; }
.pub-minimal-site__avatar { width: 4.5rem; height: 4.5rem; border-radius: 50%; object-fit: cover; }
.pub-minimal-site__eyebrow { font-size: .78rem; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; color: var(--pub-teal); }
.pub-minimal-site__head h1 { margin-top: .25rem; font-size: clamp(2rem, 4.5vw, 3rem); letter-spacing: -.03em; }
.pub-minimal-site__bio { margin-top: 1.25rem; color: var(--pub-graphite-soft); line-height: 1.75; font-size: 1.05rem; }
.pub-minimal-site__meta { margin-top: 1.25rem; display: grid; gap: .35rem; list-style: none; padding: 0; color: var(--pub-muted); font-size: .92rem; }
.pub-minimal-site__rule { height: 1px; background: var(--pub-line); max-width: 38rem; margin-inline: auto; }
.pub-doctor-site[data-layout="minimal"] .pub-booking { background: var(--pub-paper); }

/* Clínico — expediente / dossier */
.pub-clinical-site { padding-block: clamp(2rem, 5vw, 3rem); }
.pub-clinical-site__shell {
  display: grid;
  grid-template-columns: min(17rem, 30%) 1fr;
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
}
.pub-clinical-site__sidebar {
  position: sticky;
  top: 1rem;
  padding: 1.25rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius);
  background: var(--pub-paper-raised);
  box-shadow: 0 .5rem 1.5rem color-mix(in srgb, var(--pub-graphite) 5%, transparent);
}
.pub-clinical-site__id h1 { margin-top: .85rem; font-size: 1.25rem; }
.pub-clinical-site__specialty { margin-top: .35rem; font-size: .82rem; color: var(--pub-teal); font-weight: 600; }
.pub-clinical-site__facts { display: grid; gap: .55rem; margin-top: 1rem; font-size: .84rem; }
.pub-clinical-site__facts dt { font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--pub-muted); }
.pub-clinical-site__facts dd { margin-top: .1rem; }
.pub-clinical-site__main { display: grid; gap: 1rem; }
.pub-clinical-site__panel {
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--pub-line);
  border-radius: var(--pub-radius-small);
  background: var(--pub-paper-raised);
}
.pub-clinical-site__panel h2 { font-size: .92rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--pub-teal-deep); }
.pub-clinical-site__list { margin-top: .75rem; display: grid; gap: .55rem; list-style: none; padding: 0; }
.pub-clinical-site__list li { display: grid; gap: .15rem; padding-bottom: .55rem; border-bottom: 1px solid var(--pub-line); font-size: .88rem; }
.pub-clinical-site__list strong { color: var(--pub-graphite); }
.pub-clinical-site__list span { color: var(--pub-graphite-soft); line-height: 1.45; }
.pub-clinical-site__procedures { margin-top: .75rem; display: grid; gap: .45rem; }
.pub-clinical-site__procedures details { border: 1px solid var(--pub-line); border-radius: var(--pub-radius-small); padding: .55rem .75rem; }
.pub-clinical-site__procedures summary { cursor: pointer; font-weight: 600; font-size: .88rem; }
.pub-clinical-site__procedures p { margin-top: .45rem; font-size: .84rem; color: var(--pub-graphite-soft); line-height: 1.5; }

@media (max-width: 768px) {
  .pub-vitrina-hero__grid,
  .pub-vitrina-about__grid,
  .pub-booking-inline__grid,
  .pub-clinical-site__shell,
  .pub-trust-hero__grid,
  .pub-trust-about__grid,
  .pub-edit-hero__stage,
  .pub-edit-spread__grid,
  .pub-edit-spread__body,
  .pub-inst-hero__head,
  .pub-inst-bento,
  .pub-inst-gallery { grid-template-columns: 1fr; }
  .pub-inst-bento__cell,
  .pub-inst-bento__cell--profile,
  .pub-inst-bento__cell--services,
  .pub-inst-bento__cell--gallery { grid-column: 1 / -1; grid-row: auto; }
  .pub-inst-hero__actions { width: 100%; }
  .pub-edit-spread__body { columns: 1; }
  .pub-edit-hero__photo { transform: none; }
  .pub-trust-marquee__track { animation: none; }
  .pub-clinical-site__sidebar { position: static; }
  .pub-vitrina-consultorio__panel--map {
    grid-template-columns: 1fr;
  }
  .pub-vitrina-consultorio__panel--map .pub-vitrina-consultorio__details {
    border-right: 0;
    border-bottom: 1px solid var(--pub-line);
  }
  .pub-vitrina-consultorio__map-frame iframe {
    min-height: 14rem;
    aspect-ratio: 16 / 9;
  }
  .pub-site-nav__brand { display: none; }
  .pub-site-nav__links { order: 3; width: 100%; }
  .pub-gallery-site__strip { grid-template-columns: repeat(4, 1fr); }
  .pub-gallery-site__mosaic,
  .pub-luxe-cine__mosaic {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 9rem;
  }
  .pub-luxe-cine__tile--0 { min-height: 18rem; }
  .pub-luxe-cine__tile--0 img { min-height: 18rem; }
  .pub-gallery-site__tile--0,
  .pub-luxe-cine__tile--0 { grid-column: span 2; grid-row: span 1; }
  .pub-gallery-site__tile--1,
  .pub-gallery-site__tile--2,
  .pub-gallery-site__tile--3,
  .pub-gallery-site__tile--4,
  .pub-luxe-cine__tile--1,
  .pub-luxe-cine__tile--2,
  .pub-luxe-cine__tile--3,
  .pub-luxe-cine__tile--4,
  .pub-luxe-cine__tile--5 { grid-column: span 1; }
  .pub-site-gallery__grid--compact { grid-template-columns: repeat(2, 1fr); }
  .pub-booking-inline__bar { flex-direction: column; align-items: stretch; }
  .pub-booking-inline__go { width: 100%; }
}

/* ---- Mini-sitio: motion (scroll reveal, hero, nav, modal) ---- */
.pub-doctor-site {
  --pub-motion-fast: 140ms;
  --pub-motion-base: 220ms;
  --pub-motion-slow: 380ms;
  --pub-motion-stagger: 65ms;
}
.pub-site-nav-sentinel {
  height: 1px;
  margin-bottom: -1px;
  pointer-events: none;
}
.pub-site-nav {
  transition:
    background var(--pub-motion-base) var(--pub-ease-out),
    border-color var(--pub-motion-base) var(--pub-ease-out),
    box-shadow var(--pub-motion-slow) var(--pub-ease-out);
}
.pub-site-nav.is-scrolled {
  background: color-mix(in srgb, var(--pub-paper-raised) 98%, transparent);
  box-shadow: 0 .4rem 1.35rem color-mix(in srgb, var(--pub-graphite) 7%, transparent);
}
.pub-site-nav__links a {
  position: relative;
  transition: color var(--pub-motion-fast) ease-out;
}
.pub-site-nav__links a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -.2rem;
  height: 2px;
  border-radius: 1px;
  background: var(--pub-teal);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--pub-motion-base) var(--pub-ease-out);
}
@media (hover: hover) {
  .pub-site-nav__links a:hover::after,
  .pub-site-nav__links a:focus-visible::after {
    transform: scaleX(1);
  }
}

.pub-site-reveal {
  transition: opacity var(--pub-motion-slow) var(--pub-ease-out), transform var(--pub-motion-slow) var(--pub-ease-out);
}
.pub-site-reveal:not(.is-visible) {
  opacity: 0;
  transform: translateY(1.1rem);
}
.pub-site-reveal__item {
  transition:
    opacity var(--pub-motion-slow) var(--pub-ease-out),
    transform var(--pub-motion-slow) var(--pub-ease-out),
    box-shadow var(--pub-motion-base) var(--pub-ease-out),
    border-color var(--pub-motion-base) ease-out;
  transition-delay: calc(var(--pub-reveal-i, 0) * var(--pub-motion-stagger));
}
.pub-site-reveal:not(.is-visible) .pub-site-reveal__item {
  opacity: 0;
  transform: translateY(.85rem);
}
.pub-site-reveal.is-visible .pub-site-reveal__item {
  opacity: 1;
  transform: none;
}

/* Hero: entrada escalonada al cargar */
.pub-doctor-site:not(.pub-site-motion-ready) .pub-vitrina-hero__bar,
.pub-doctor-site:not(.pub-site-motion-ready) .pub-vitrina-hero__specialty-line,
.pub-doctor-site:not(.pub-site-motion-ready) .pub-vitrina-hero__name,
.pub-doctor-site:not(.pub-site-motion-ready) .pub-vitrina-hero__lead,
.pub-doctor-site:not(.pub-site-motion-ready) .pub-vitrina-hero__card,
.pub-doctor-site:not(.pub-site-motion-ready) .pub-trust-hero__grid,
.pub-doctor-site:not(.pub-site-motion-ready) .pub-trust-stats,
.pub-doctor-site:not(.pub-site-motion-ready) .pub-edit-hero__stage,
.pub-doctor-site:not(.pub-site-motion-ready) .pub-edit-quote,
.pub-doctor-site:not(.pub-site-motion-ready) .pub-inst-hero__head,
.pub-doctor-site:not(.pub-site-motion-ready) .pub-inst-metrics,
.pub-doctor-site:not(.pub-site-motion-ready) .pub-luxe-cine__intro {
  opacity: 0;
  transform: translateY(1rem);
}
.pub-site-motion-ready .pub-vitrina-hero__bar,
.pub-site-motion-ready .pub-vitrina-hero__specialty-line,
.pub-site-motion-ready .pub-vitrina-hero__name,
.pub-site-motion-ready .pub-vitrina-hero__lead,
.pub-site-motion-ready .pub-vitrina-hero__card,
.pub-site-motion-ready .pub-trust-hero__grid,
.pub-site-motion-ready .pub-trust-stats,
.pub-site-motion-ready .pub-edit-hero__stage,
.pub-site-motion-ready .pub-edit-quote,
.pub-site-motion-ready .pub-inst-hero__head,
.pub-site-motion-ready .pub-inst-metrics,
.pub-site-motion-ready .pub-luxe-cine__intro {
  opacity: 1;
  transform: none;
  transition:
    opacity 420ms var(--pub-ease-out),
    transform 420ms var(--pub-ease-out);
}
.pub-site-motion-ready .pub-trust-stats { transition-delay: 180ms; }
.pub-site-motion-ready .pub-edit-quote { transition-delay: 220ms; }
.pub-site-motion-ready .pub-inst-metrics { transition-delay: 160ms; }
.pub-site-motion-ready .pub-vitrina-hero__specialty-line { transition-delay: 80ms; }
.pub-site-motion-ready .pub-vitrina-hero__name { transition-delay: 140ms; }
.pub-site-motion-ready .pub-vitrina-hero__lead { transition-delay: 200ms; }
.pub-site-motion-ready .pub-vitrina-hero__card { transition-delay: 260ms; }

.pub-vitrina-btn {
  transition:
    transform 120ms var(--pub-ease-out),
    background-color var(--pub-motion-base) ease-out,
    border-color var(--pub-motion-base) ease-out,
    color var(--pub-motion-fast) ease-out,
    box-shadow var(--pub-motion-slow) var(--pub-ease-out),
    filter var(--pub-motion-base) ease-out;
}
.pub-vitrina-service-card,
.pub-vitrina-procedure-card,
.pub-trust-service-card,
.pub-trust-stats__item,
.pub-edit-service-card,
.pub-inst-bento__cell,
.pub-vitrina-consultorio__panel,
.pub-booking-inline__bar,
.pub-booking-chip {
  transition:
    transform var(--pub-motion-base) var(--pub-ease-out),
    box-shadow var(--pub-motion-slow) var(--pub-ease-out),
    border-color var(--pub-motion-base) ease-out;
}
@media (hover: hover) {
  .pub-vitrina-service-card:hover,
  .pub-vitrina-procedure-card:hover,
  .pub-trust-service-card:hover,
  .pub-trust-stats__item:hover,
  .pub-edit-service-card:hover,
  .pub-inst-bento__cell:hover {
    transform: translateY(-3px);
  }
}
.pub-calendar--pro .pub-calendar__day,
.pub-slot {
  transition:
    color var(--pub-motion-fast) ease-out,
    background-color var(--pub-motion-base) ease-out,
    border-color var(--pub-motion-base) ease-out,
    box-shadow var(--pub-motion-base) ease-out,
    transform 120ms var(--pub-ease-out);
}
.pub-slot--active {
  transform: scale(1.02);
}
.pub-booking-inline__hint--pulse {
  animation: pub-hint-pulse 900ms var(--pub-ease-out) 2;
}
@keyframes pub-hint-pulse {
  0%, 100% { opacity: 1; transform: none; }
  50% { opacity: .65; transform: translateX(.15rem); }
}

.pub-booking-modal[open] {
  z-index: 50;
  animation: pub-modal-backdrop-in 240ms ease-out;
}
.pub-booking-modal[open] .pub-booking-modal__panel {
  animation: pub-modal-panel-in 320ms var(--pub-ease-out);
}
.pub-booking-modal__close {
  transition: transform 120ms var(--pub-ease-out), background var(--pub-motion-fast) ease-out, border-color var(--pub-motion-fast) ease-out;
}
@keyframes pub-modal-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes pub-modal-panel-in {
  from { opacity: 0; transform: translateY(1rem) scale(0.98); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .pub-vitrina-service-card:hover,
  .pub-site-gallery__item:hover img,
  .pub-luxe-cine__tile:hover img,
  .pub-trust-service-card:hover,
  .pub-trust-stats__item:hover,
  .pub-edit-service-card:hover,
  .pub-inst-bento__cell:hover { transform: none; }
  .pub-vitrina-btn:active { transform: none; }
  .pub-trust-hero__mesh,
  .pub-trust-marquee__track,
  .pub-luxe-cine__reel,
  .pub-luxe-cine__reel img { animation: none; }
  .pub-site-reveal,
  .pub-site-reveal:not(.is-visible),
  .pub-site-reveal__item,
  .pub-site-reveal:not(.is-visible) .pub-site-reveal__item {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .pub-booking-modal[open],
  .pub-booking-modal[open] .pub-booking-modal__panel {
    animation: none;
  }
  .pub-booking-inline__hint--pulse { animation: none; }
  .pub-slot--active { transform: none; }
}
@media (prefers-reduced-transparency: reduce) {
  .pub-vitrina-hero__card,
  .pub-site-nav,
  .pub-booking-modal::backdrop,
  .pub-vitrina-consultorio__map-cta { backdrop-filter: none; }
}

