/* ─────────────────────────────────────────────────────────────
   Avena Health — Specialist profile redesign
   Based on Perfil Especialista.dc.html + avena design-system tokens
   ───────────────────────────────────────────────────────────── */

:root {
  --blue-50:#E6F4FF; --blue-100:#EDF2FF; --primary:#155DFC; --primary-hover:#0F46C8;
  --fg:#111827; --fg-muted:#6A7282; --fg-subtle:#B3B3B3;
  --bg:#FFFFFF; --canvas:#F5F7FA; --surface:#F8FAFC; --line:#EEF1F5; --border:#E7E7E7;
  --star:#FFC847;
  --shadow-card:0 4px 24px rgba(17,24,39,0.05);
  --shadow-rail:0 8px 32px rgba(17,24,39,0.07);
  --ease:cubic-bezier(0.2,0,0,1);
  --font:'Figtree','Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
}

/* ── reset / base ── */
html, body { margin:0; padding:0; }
body {
  font-family:var(--font);
  letter-spacing:-0.02em;
  color:var(--fg);
  background-color:var(--canvas);
  background-image:radial-gradient(#D7DDE7 1.1px, transparent 1.1px);
  background-size:22px 22px;
  -webkit-font-smoothing:antialiased;
}
.av * { box-sizing:border-box; }
.av a { color:var(--primary); text-decoration:none; }
.av a:hover { color:var(--primary-hover); text-decoration:underline; }
.av h1,.av h2,.av h3,.av h4,.av p,.av ul { margin:0; }
.av img { max-width:100%; }

.av-eyebrow {
  font-size:9px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--fg-subtle);
}

/* ── header ── */
.av-header {
  position:sticky; top:0; z-index:40;
  background:rgba(255,255,255,0.92); backdrop-filter:saturate(180%) blur(8px);
  border-bottom:1px solid var(--border);
}
.av-header__bar {
  max-width:1120px; margin:0 auto; padding:0 20px; height:64px;
  display:flex; align-items:center; gap:20px;
}
.av-header__logo { display:flex; align-items:center; flex:0 0 auto; }
.av-header__logo svg { height:26px; width:167px; display:block; }
.av-header__spacer { flex:1 1 auto; }
.av-esp-btn {
  display:flex; align-items:center; gap:6px; background:transparent; border:0; cursor:pointer;
  font-family:inherit; font-size:14px; font-weight:600; letter-spacing:-0.02em; color:var(--fg); padding:8px 4px;
}
.av-esp-btn svg { color:var(--fg-muted); transition:transform 180ms var(--ease); }
.av-esp-btn[aria-expanded="true"] svg { transform:rotate(180deg); }
.av a.av-header__wa {
  display:inline-flex; align-items:center; gap:8px; height:40px; padding:0 18px; border-radius:9999px;
  background:#F1F5F9; color:#111827; font-size:14px; font-weight:600;
}
.av a.av-header__wa:hover { color:#111827; text-decoration:none; }
.av-esp-panel { display:none; border-top:1px solid #F1F5F9; background:#fff; }
.av-esp-panel.open { display:block; }
.av-esp-panel__inner { max-width:1120px; margin:0 auto; padding:16px 20px 20px; display:flex; flex-wrap:wrap; gap:8px; }
.av-esp-panel__inner a {
  padding:7px 14px; border-radius:9999px; border:1px solid var(--border);
  font-size:13px; font-weight:500; color:var(--fg);
}
.av-esp-panel__inner a:hover { text-decoration:none; border-color:var(--primary); color:var(--primary); }

/* ── breadcrumb ── */
.av-breadcrumb { max-width:1120px; margin:0 auto; padding:20px 20px 0; }
.av-breadcrumb p { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:12px; font-weight:500; color:var(--fg-muted); }
.av-breadcrumb a { color:var(--fg-muted); }
.av-breadcrumb .sep { color:var(--fg-subtle); }
.av-breadcrumb strong { color:var(--fg); font-weight:600; }

/* ── layout ── */
.av-main {
  max-width:1120px; margin:0 auto; padding:20px 20px 64px;
  display:grid; grid-template-columns:minmax(0,1fr) 380px;
  grid-template-areas:"hero rail" "content rail";
  align-items:start; gap:24px;
}
#hero-card { grid-area:hero; }
#profile-content { grid-area:content; min-width:0; display:flex; flex-direction:column; gap:24px; }
#booking-rail { grid-area:rail; position:sticky; top:88px; align-self:flex-start; }
.av-rail { display:flex; flex-direction:column; gap:16px; }

.av-card {
  background:#fff; border:1px solid var(--line); border-radius:24px;
  box-shadow:var(--shadow-card); padding:32px;
}
.av-card--flush { padding:0; overflow:hidden; }

/* ── hero ── */
.av-hero__head {
  background:var(--surface); border-bottom:1px solid var(--line);
  padding:28px 32px; display:flex; flex-wrap:wrap; align-items:center; gap:24px;
}
.av-hero__avatar {
  width:104px; height:104px; border-radius:9999px; object-fit:cover; object-position:top;
  border:4px solid #fff; box-shadow:0 2px 8px rgba(17,24,39,0.08); flex:0 0 auto; cursor:pointer;
}
.av-hero__id { flex:1 1 260px; display:flex; flex-direction:column; gap:8px; }
.av-hero__namerow { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.av-hero__badges { display:flex; flex-wrap:wrap; gap:8px; }
.av-hero__name { font-size:34px; line-height:40px; font-weight:800; letter-spacing:-0.03em; color:var(--fg); }
.av-verified {
  display:inline-flex; align-items:center; gap:5px; padding:5px 10px; border-radius:9999px;
  background:var(--blue-100); color:var(--primary); font-size:11px; font-weight:700; letter-spacing:0.02em;
}
.av-hero__title { font-size:17px; line-height:24px; color:var(--fg-muted); }
.av-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.av-chip {
  display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:9999px;
  background:#fff; border:1px solid var(--border); font-size:12px; font-weight:600; color:var(--fg);
}
.av-hero__meta { padding:20px 32px; display:flex; flex-wrap:wrap; gap:12px 40px; }
.av-meta { display:flex; flex-direction:column; gap:2px; }
.av-meta span:last-child { font-size:14px; font-weight:600; }

/* ── section headings ── */
.av-card h2.av-h { font-size:20px; line-height:28px; font-weight:700; margin:0 0 16px; }
.av-card .av-sub { margin:0 0 20px; font-size:15px; line-height:24px; color:var(--fg-muted); }
.av-tiles { display:flex; flex-wrap:wrap; gap:12px; }
.av-tile { flex:1 1 220px; border:1px solid var(--line); background:var(--surface); border-radius:12px; padding:16px 18px; }
.av-tile .av-tile__t { font-size:15px; font-weight:600; line-height:22px; margin-top:6px; }
.av-tile .av-tile__s { font-size:13px; color:var(--fg-muted); margin-top:2px; }
.av-list { list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.av-list li { display:inline-flex; padding:6px 12px; border-radius:9999px; background:var(--surface); border:1px solid var(--line); font-size:13px; font-weight:500; }

/* ── booking rail ── */
.av-book__head {
  padding:20px 24px; background:var(--surface); border-bottom:1px solid var(--line);
  display:flex; align-items:flex-end; justify-content:space-between; gap:12px;
}
.av-book__head .t { font-size:14px; font-weight:700; color:var(--fg); margin-bottom:2px; }
.av-book__head .s { font-size:13px; color:var(--fg-muted); }
.av-book__head--plan { align-items:flex-start; }
.av-book__head--plan .t { font-size:16px; font-weight:800; letter-spacing:-0.01em; }
.av-plan-sum__right { display:flex; flex-direction:column; align-items:flex-end; gap:2px; text-align:right; }
.av-plan-sum__right .p { font-size:20px; font-weight:800; color:var(--fg); letter-spacing:-0.02em; }
.av-plan-sum__change { border:0; background:transparent; padding:0; font-family:inherit; font-size:13px; font-weight:700; color:var(--primary); cursor:pointer; }
.av-plan-sum__change:hover { text-decoration:underline; }
.av-book__body { padding:24px; }
.av-field { margin-bottom:20px; }
.av-field > .av-eyebrow { display:block; margin-bottom:10px; }

/* place selector */
.av-place { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.av-place__opt {
  position:relative;
  display:flex; flex-direction:column; gap:2px; align-items:flex-start; text-align:left;
  padding:12px 14px; border:1px solid var(--border); border-radius:12px; background:#fff;
  cursor:pointer; font-family:inherit;
}
.av-place__opt .t { font-size:14px; font-weight:600; color:var(--fg); }
.av-place__opt .s { font-size:12px; color:var(--fg-muted); }
.av-place__opt:hover:not(.av-place__opt--disabled) { border-color:var(--primary); }
.av-place__opt--active { border-color:var(--primary); background:var(--blue-100); box-shadow:0 0 0 1px var(--primary) inset; }
.av-place__opt--disabled { cursor:not-allowed; background:var(--surface); }
.av-place__opt--disabled .t, .av-place__opt--disabled .s { color:var(--fg-subtle); }
/* full-address tooltip on the Consultorio option */
.av-place__tip {
  position:absolute; bottom:calc(100% + 10px); right:0;
  background:var(--fg); color:#fff; font-size:12px; font-weight:500; line-height:1.45;
  padding:8px 11px; border-radius:8px; width:max-content; max-width:230px; text-align:left;
  opacity:0; visibility:hidden; transform:translateY(4px);
  transition:opacity .15s var(--ease), transform .15s var(--ease);
  pointer-events:none; z-index:30; box-shadow:0 8px 24px rgba(17,24,39,0.22);
}
.av-place__tip::after { content:''; position:absolute; top:100%; right:24px; border:6px solid transparent; border-top-color:var(--fg); }
.av-place__opt:hover .av-place__tip { opacity:1; visibility:visible; transform:translateY(0); }
.av-select, .av-date {
  width:100%; box-sizing:border-box; height:44px; padding:0 14px;
  border:1px solid var(--border); border-radius:12px; background:#fff; color:var(--fg);
  font-family:inherit; font-size:14px; font-weight:500; cursor:pointer;
}
.av-select {
  -webkit-appearance:none; appearance:none;
  padding-right:44px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236A7282' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9l7 7 7-7'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:20px 20px;
}

/* week-strip date picker */
.av-week__head { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.av-week__nav { display:flex; gap:6px; }
.av-week__arrow {
  width:28px; height:28px; border-radius:9999px; border:1px solid var(--border); background:#fff;
  color:var(--fg-muted); display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0;
}
.av-week__arrow:hover:not(:disabled) { border-color:var(--primary); color:var(--primary); }
.av-week__arrow:disabled { opacity:.4; cursor:not-allowed; }
.av-week { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; }
.av-day {
  display:flex; flex-direction:column; align-items:center; gap:2px; padding:10px 0;
  border:1px solid var(--border); border-radius:12px; background:#fff; cursor:pointer; font-family:inherit;
}
.av-day .dow { font-size:10px; font-weight:600; letter-spacing:0.04em; color:var(--fg-muted); }
.av-day .num { font-size:17px; font-weight:700; letter-spacing:-0.02em; color:var(--fg); }
.av-day:hover { border-color:var(--primary); }
.av-day--active { border-color:var(--primary); background:var(--blue-100); box-shadow:0 0 0 1px var(--primary) inset; }
.av-date {
  -webkit-appearance:none; appearance:none; display:flex; align-items:center; text-align:left;
}
.av-date::-webkit-date-and-time-value { text-align:left; margin:0; }
.av-field--row { display:flex; flex-direction:column; gap:8px; margin-bottom:8px; }
#currentDate { font-size:11px; color:var(--fg-muted); margin:8px 0 16px; text-align:right; }

/* slots */
.cta__slotsContainer { display:flex; flex-wrap:wrap; gap:8px; }
.cta__slot {
  padding:12px; border-radius:10px; border:1px solid var(--border); background:#fff; color:var(--fg);
  cursor:pointer; font-family:inherit; font-size:14px; font-weight:600; letter-spacing:-0.02em;
  transition:border-color .15s var(--ease), background .15s var(--ease);
}
.cta__slot:hover { border-color:var(--primary); }
.cta__slot--selected { border-color:var(--primary); background:var(--blue-100); box-shadow:0 0 0 1px var(--primary) inset; }
.cta__slotsLoading, .cta__slotsEmpty { font-size:13px; color:var(--fg-muted); padding:6px 0; }

.av-cta {
  width:100%; box-sizing:border-box; height:52px; display:flex; align-items:center; justify-content:center;
  border:0; border-radius:9999px; background:var(--primary); color:#fff; cursor:pointer;
  font-family:inherit; font-size:15px; font-weight:700; letter-spacing:-0.02em;
  transition:background .15s var(--ease), opacity .15s var(--ease);
}
.av-cta:hover { background:var(--primary-hover); }
.av-cta:disabled { opacity:.5; cursor:not-allowed; }
.av-cta--ghost {
  margin-top:10px; height:44px; background:#fff; color:var(--fg); border:1px solid var(--border);
  font-weight:600; font-size:14px;
}
.av-cta--ghost:hover { background:var(--surface); text-decoration:none; }
.av-secure { margin-top:14px; display:flex; align-items:center; justify-content:center; gap:7px; font-size:12px; color:var(--fg-muted); }
.av-rail__help { display:flex; align-items:center; justify-content:center; gap:8px; font-size:13px; color:var(--fg-muted); }
.av-rail__help a { font-weight:600; }

/* ── in-page nav pills ── */
.av-nav { }
.av-nav ul { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:8px; }
.av-nav a {
  display:inline-flex; padding:8px 16px; border-radius:9999px; border:1px solid var(--border);
  font-size:13px; font-weight:600; color:var(--fg); background:#fff;
}
.av-nav a:hover, .av-nav a.active { border-color:var(--primary); color:var(--primary); text-decoration:none; }

/* ── reviews ── */
.av-reviews__head { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:20px; }
.av-reviews__grid { display:flex; flex-wrap:wrap; gap:24px; }
.av-reviews__score {
  flex:0 0 auto; width:168px; min-width:140px; border:1px solid var(--line); background:var(--surface);
  border-radius:16px; padding:20px; display:flex; flex-direction:column; align-items:center; gap:6px; align-self:flex-start;
}
.av-reviews__score .big { font-size:40px; line-height:44px; font-weight:800; letter-spacing:-0.04em; }
.av-reviews__score .stars { display:flex; gap:2px; }
.av-reviews__score .count { font-size:12px; color:var(--fg-muted); margin-top:2px; }
.review-summary__reviews { flex:1 1 300px; min-width:min(100%,260px); }
.review-summary__reviews ul { list-style:none; padding:0; margin:0; }
.review-summary__reviews ul li { display:flex; gap:14px; padding:20px 0; border-bottom:1px solid #F1F5F9; }
.review-summary__reviews ul li:nth-child(n+4) { display:none; }
.review-summary__reviews ul li figure { margin:0; flex:0 0 auto; }
.review-summary__reviews ul li figure img { width:40px; height:40px; border-radius:9999px; object-fit:cover; }
.review-summary__reviews__content { flex:1 1 auto; min-width:0; }
.review-summary__reviews__content h3 { font-size:15px; font-weight:700; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.review-summary__reviews__content .small { font-size:12px; color:var(--fg-subtle); }
.review-summary__reviews__content p:last-child { font-size:14px; line-height:22px; color:var(--fg-muted); margin-top:4px; }
/* all-reviews modal list */
.reviews-modal__list ul { list-style:none; padding:0; margin:0; }
.reviews-modal__list ul li { display:flex; gap:14px; padding:20px 0; border-bottom:1px solid #F1F5F9; }
.reviews-modal__list ul li:last-child { border-bottom:0; }
.reviews-modal__list ul li figure { margin:0; flex:0 0 auto; }
.reviews-modal__list ul li figure img { width:40px; height:40px; border-radius:9999px; object-fit:cover; }

/* ── gallery ── */
.av-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; }
.av-gallery img { aspect-ratio:1/1; width:100%; border-radius:12px; object-fit:cover; border:1px solid var(--line); background:var(--surface); cursor:zoom-in; }

/* ── location ── */
.av-loc { border:1px solid var(--line); border-radius:12px; }
.av-loc__map {
  height:150px; border-radius:11px 11px 0 0;
  background-color:var(--blue-100);
  background-image:linear-gradient(#DCE6FB 1px,transparent 1px),linear-gradient(90deg,#DCE6FB 1px,transparent 1px);
  background-size:28px 28px; display:flex; align-items:center; justify-content:center;
}
.av-loc__pin { position:relative; display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--border); border-radius:9999px; padding:8px 16px; font-size:13px; font-weight:600; color:var(--fg); box-shadow:0 2px 8px rgba(17,24,39,0.06); }
.av-loc__tip {
  position:absolute; bottom:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(4px);
  background:var(--fg); color:#fff; font-size:12px; font-weight:500; line-height:1.45;
  padding:8px 11px; border-radius:8px; width:max-content; max-width:260px; text-align:center;
  opacity:0; visibility:hidden; transition:opacity .15s var(--ease), transform .15s var(--ease);
  pointer-events:none; z-index:20; box-shadow:0 8px 24px rgba(17,24,39,0.22);
}
.av-loc__tip::after { content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:6px solid transparent; border-top-color:var(--fg); }
.av-loc__map--link:hover .av-loc__tip { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.av a.av-loc__map--link { cursor:pointer; }
.av a.av-loc__map--link:hover { text-decoration:none; }
.av a.av-loc__map--link:hover .av-loc__pin { border-color:var(--primary); color:var(--primary); box-shadow:0 4px 14px rgba(21,93,252,0.18); }
.av-loc__row { padding:18px; background:var(--surface); border-top:1px solid var(--line); border-radius:0 0 11px 11px; display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
.av-loc__row p { flex:1 1 260px; margin:0; font-size:14px; line-height:21px; color:var(--fg); }
.av a.av-loc__btn { flex:0 0 auto; display:inline-flex; align-items:center; height:40px; padding:0 18px; border-radius:9999px; border:1px solid var(--border); background:#fff; color:#111827; font-size:14px; font-weight:600; }
.av a.av-loc__btn:hover { border-color:var(--primary); background:#fff; text-decoration:none; }

/* ── empty state ── */
.av-empty {
  border:1px dashed #E0E0EB; border-radius:16px; background:var(--surface);
  padding:44px 24px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:6px;
}
.av-empty__icon {
  width:56px; height:56px; border-radius:9999px; background:var(--blue-100); color:var(--primary);
  display:flex; align-items:center; justify-content:center; margin-bottom:8px;
}
.av-empty__title { font-size:16px; font-weight:700; color:var(--fg); }
.av-empty__text { font-size:14px; line-height:21px; color:var(--fg-muted); max-width:380px; }

/* ── FAQ / collapse ── */
.collapse h3 { margin:0; border-top:1px solid #F1F5F9; font-size:15px; font-weight:600; }
.collapse h3 button {
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
  background:transparent; border:0; cursor:pointer; text-align:left; font-family:inherit;
  font-size:15px; font-weight:600; line-height:22px; letter-spacing:-0.02em; color:var(--fg); padding:18px 0;
}
.collapse h3 button svg { flex:0 0 auto; width:18px; height:18px; color:var(--fg-muted); }
.collapse h3 button[aria-expanded="false"] .arrow-up { display:none; }
.collapse h3 button[aria-expanded="true"] .arrow-down { display:none; }
.collapse p { margin:0; padding:0 40px 18px 0; font-size:14px; line-height:22px; color:var(--fg-muted); }
.collapse > div { padding:0; }

/* ── links (Mis enlaces) ── */
.av-links { display:flex; flex-direction:column; gap:12px; }
.av a.mediaLink__container { display:flex; align-items:center; gap:12px; padding:12px 16px; border-radius:12px; border:1px solid var(--line); background:var(--surface); color:#111827; font-size:14px; font-weight:600; }
.av a.mediaLink__container:hover { border-color:var(--primary); color:#111827; text-decoration:none; }
.mediaLink__container img { width:24px; height:24px; }
.mediaLink__container p { margin:0; }

/* ── footer ── */
.av-footer { background:#fff; border-top:1px solid var(--border); margin-top:24px; }
.av-footer__inner { max-width:1120px; margin:0 auto; padding:48px 20px 24px; display:flex; flex-wrap:wrap; gap:40px; }
.av-footer__col { flex:1 1 170px; display:flex; flex-direction:column; gap:10px; }
.av-footer__col--brand { flex:1 1 220px; gap:14px; }
.av-footer__col--brand svg, .av-footer__col--brand img { height:32px; width:auto; max-width:150px; }
.av-footer__col--brand p { font-size:13px; line-height:20px; color:var(--fg-muted); max-width:240px; }
.av-footer__col a { font-size:13px; color:var(--fg-muted); }
.av-footer__copy { max-width:1120px; margin:0 auto; padding:20px; border-top:1px solid #F1F5F9; font-size:12px; color:var(--fg-subtle); }

/* ── gallery lightbox modal ── */
.gallery-modal { display:none; position:fixed; inset:0; z-index:90; background:rgba(17,24,39,0.82); padding:24px; }
.gallery-modal__content { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.gallery-modal__image { width:min(760px, 92vw); height:min(760px, 82vh); border-radius:16px; object-fit:cover; box-shadow:0 12px 24px -6px rgba(17,24,39,0.3); }
.gallery-modal__close { position:absolute; top:24px; right:24px; width:40px; height:40px; border-radius:9999px; border:0; background:rgba(255,255,255,0.14); color:#fff; cursor:pointer; font-size:22px; line-height:1; }
.gallery-modal__nav {
  position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:9999px; border:0;
  background:rgba(255,255,255,0.16); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:2;
}
.gallery-modal__nav:hover { background:rgba(255,255,255,0.3); }
.gallery-modal__prev { left:24px; }
.gallery-modal__next { right:24px; }
@media (max-width:600px) { .gallery-modal__prev { left:10px; } .gallery-modal__next { right:10px; } }

/* ── plan modal (scheduleModal) ── */
.modal { display:none; position:fixed; inset:0; z-index:80; background:rgba(17,24,39,0.45); padding:0; overflow:hidden; }
.modal .modal-content { width:calc(100% - 48px); max-width:640px; margin:24px auto; background:#fff; border-radius:24px; box-shadow:var(--shadow-rail); padding:28px; position:relative; max-height:calc(100vh - 48px); overflow-y:auto; }
.modal .modal-content { padding-top:0; }
.modal .close {
  position:sticky; float:right; top:16px; margin:16px 0 -40px; width:40px; height:40px; border-radius:9999px;
  border:1px solid var(--border); background:#fff; color:var(--fg-muted);
  display:flex; align-items:center; justify-content:center; font-size:22px; line-height:1; cursor:pointer; z-index:4;
}
.modal .close:hover { background:var(--surface); color:var(--fg); }
.hidden { display:none; }
.title__container {
  position:sticky; top:0; z-index:2; background:#fff;
  padding:24px 56px 20px 0; margin:0 0 20px; border-bottom:1px solid var(--line);
}
.title__container h2 { font-size:20px; font-weight:700; margin:0 0 4px; }
.title__container p { font-size:14px; color:var(--fg-muted); margin:0; }
.cards__container { display:flex; flex-direction:column; gap:16px; }
.cards__container .card__wrapperContainer { width:100%; }
.schedule__card {
  display:grid;
  grid-template-columns: minmax(150px, 0.9fr) minmax(0, 1.35fr);
  grid-template-areas: "price benefits" "price btn";
  column-gap:32px; row-gap:20px;
  border:1px solid var(--line); border-radius:16px; padding:24px; background:#fff;
}
.sc-price { align-self:start; }
.card__wrapperContainer.is-featured .schedule__card { border:1.5px solid var(--primary); background:#F8FCFF; }
.sc-price { grid-area:price; }
.sc-plan { font-size:13px; font-weight:600; color:var(--fg-muted); margin:0; }
.sc-price h3 { font-size:28px; font-weight:800; letter-spacing:-0.03em; margin:4px 0; color:var(--fg); }
.sc-usd { font-size:12px; color:var(--fg-subtle); margin:0; }
.sc-benefits { grid-area:benefits; }
.benefits__list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px; }
.benefits__list li { display:flex; align-items:center; gap:10px; font-size:14px; line-height:20px; color:var(--fg); }
.benefits__list li svg { flex:0 0 auto; }
.subscription__select {
  grid-area:btn; width:100%; height:52px; border:0; border-radius:9999px; background:var(--primary); color:#fff;
  font-family:inherit; font-size:15px; font-weight:700; cursor:pointer;
}
.subscription__select:hover { background:var(--primary-hover); }
.subscription__select.is-selected { background:var(--blue-100); color:var(--primary); }
.subscription__select.is-selected:hover { background:var(--blue-100); }
@media (max-width:560px) {
  .schedule__card { grid-template-columns:1fr; grid-template-areas:"price" "benefits" "btn"; row-gap:16px; }
}
.specialist__empty { text-align:center; padding:20px; }
.specialist__empty .icon--close { display:none; }
.specialist__empty .specialist__pictureProfile { width:96px; height:96px; border-radius:9999px; object-fit:cover; margin:0 auto 12px; }

/* ── responsive ── */
@media (max-width:980px) {
  .av-main { grid-template-columns:1fr; grid-template-areas:"hero" "rail" "content"; }
  #booking-rail { position:static; }
  .av-hero__name { font-size:28px; line-height:34px; }
}
@media (max-width:520px) {
  .av-card { padding:20px; }
  .av-hero__head { padding:20px; }
  .av-hero__meta { padding:16px 20px; gap:12px 24px; }
  .av-header__wa { padding:0 12px; }
}

/* ===================== SEARCH / RESULTS PAGE ===================== */
.av-header__bar--search { flex-wrap:wrap; gap:16px; }
.av-search-form { display:flex; align-items:center; gap:10px; flex:1 1 420px; min-width:260px; }
.av-search-form__input { flex:1 1 auto; min-width:0; height:44px; border:1px solid var(--border); border-radius:9999px; padding:0 18px; font-family:inherit; font-size:14px; background:#fff; color:var(--fg); }
.av-search-form__input:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(21,93,252,0.12); }
.av-search-form__select {
  height:44px; border:1px solid var(--border); border-radius:9999px; padding:0 42px 0 16px;
  font-family:inherit; font-size:14px; color:var(--fg); cursor:pointer; max-width:190px;
  -webkit-appearance:none; appearance:none; background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236A7282' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9l7 7 7-7'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; background-size:18px 18px;
}
.av-search-form__btn { height:44px; padding:0 22px; border:1px solid var(--border); border-radius:9999px; background:#fff; color:var(--fg); font-family:inherit; font-size:14px; font-weight:700; cursor:pointer; }
.av-search-form__btn:hover { background:var(--surface); border-color:var(--primary); color:var(--primary); }
.av a.av-header__cta { display:inline-flex; align-items:center; height:44px; padding:0 20px; border-radius:9999px; background:var(--primary); color:#fff; font-size:14px; font-weight:700; }
.av a.av-header__cta:hover { background:var(--primary-hover); text-decoration:none; }

.av-loc-bar { max-width:1120px; margin:0 auto; padding:20px 20px 0; }
.av-loc-bar__inner { display:flex; flex-wrap:wrap; gap:12px; background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:14px 16px; }
.av-chip { height:40px; padding:0 20px; border-radius:9999px; border:1px solid var(--border); background:#fff; color:var(--fg); font-family:inherit; font-size:14px; font-weight:700; cursor:pointer; }
.av-chip:hover { background:var(--surface); border-color:var(--primary); color:var(--primary); }
.av-chip--ghost { background:#fff; color:var(--fg); border:1px solid var(--border); }
.av-chip--ghost:hover { background:var(--surface); border-color:var(--primary); color:var(--primary); }

.av-main--search { grid-template-columns:260px minmax(0,1fr); grid-template-areas:none; align-items:start; }
.av-rail--filters { position:static; top:auto; }
.av-filters__list { border:0; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.av-radio { display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:10px; font-size:14px; color:var(--fg); cursor:pointer; }
.av-radio:hover { background:var(--surface); }
.av-radio input { accent-color:var(--primary); width:16px; height:16px; margin:0; flex:0 0 auto; }

.av-results { min-width:0; }
.av-results__title { font-size:26px; font-weight:800; letter-spacing:-0.02em; margin:4px 0 20px; color:var(--fg); text-transform:capitalize; }
.av-results__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:16px; }
.av-result { background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px; }
.av-result__body { display:flex; gap:16px; }
.av-result__avatar { margin:0; flex:0 0 auto; }
.av-result__avatar img { width:88px; height:88px; border-radius:14px; object-fit:cover; display:block; }
.av-result__info { min-width:0; flex:1 1 auto; }
.av-result__titlerow { display:flex; align-items:center; gap:8px; }
.av-result__titlerow h3 { font-size:18px; font-weight:800; color:var(--fg); margin:0; }
.av a.av-result__titlerow, .av-result__titlerow a { color:var(--fg); }
.av-result__titlerow a:hover { text-decoration:none; color:var(--primary); }
.av-result__verify { display:block; }
.av-result__role { font-size:13px; color:var(--fg-muted); margin:2px 0 0; }
.av-result__rating { display:flex; align-items:center; gap:8px; margin-top:8px; }
.av-stars { display:inline-flex; gap:1px; }
.av a.av-result__reviews { font-size:13px; font-weight:600; color:var(--primary); }
.av-result__price { font-size:14px; color:var(--fg-muted); margin-top:8px; }
.av-result__price strong { color:var(--fg); font-weight:800; }
.av-result__foot { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-top:20px; padding-top:16px; border-top:1px solid var(--line); }
.av-result__loc p { margin:2px 0 0; font-size:14px; color:var(--fg); }
.av a.av-result__cta { display:inline-flex; align-items:center; height:44px; padding:0 24px; border-radius:9999px; border:1px solid var(--border); background:#fff; color:var(--fg); font-size:14px; font-weight:700; flex:0 0 auto; }
.av a.av-result__cta:hover { background:var(--surface); border-color:var(--primary); color:var(--primary); text-decoration:none; }

.av-pager { display:flex; justify-content:space-between; gap:12px; margin-top:24px; }
.av-pager--end { justify-content:flex-end; }
.av a.av-pager__btn { display:inline-flex; align-items:center; height:44px; padding:0 24px; border-radius:9999px; border:1px solid var(--border); background:#fff; color:var(--fg); font-size:14px; font-weight:700; }
.av a.av-pager__btn:hover { background:var(--surface); text-decoration:none; }
.av a.av-pager__btn--primary { background:var(--primary); color:#fff; border-color:var(--primary); }
.av a.av-pager__btn--primary:hover { background:var(--primary-hover); }

.av-noresults { text-align:center; padding:48px 24px; }
.av-noresults img { max-width:220px; width:100%; margin:0 auto 16px; }
.av-noresults h2 { font-size:20px; font-weight:800; margin:0 0 8px; }
.av-noresults p { font-size:14px; color:var(--fg-muted); margin:0 auto; max-width:460px; }

/* state / city selection modals (reuse .modal) */
.modal__optionListContainer { display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.ModalOption__itemContainer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border:1px solid var(--line); border-radius:12px; font-size:14px; color:var(--fg); }
.ModalOption__itemContainer button { border:1px solid var(--border); background:#fff; color:var(--fg); border-radius:9999px; padding:8px 16px; font-family:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.ModalOption__itemContainer button:hover { background:var(--surface); border-color:var(--primary); color:var(--primary); }

@media (max-width:900px) {
  .av-main--search { grid-template-columns:1fr; }
}

/* ===================== HOME / LANDING PAGE ===================== */
.av-promo { background:#D8EDE5; text-align:center; }
.av a.av-promo__link { display:block; padding:11px 16px; color:#12503B; font-size:14px; font-weight:500; }
.av a.av-promo__link:hover { text-decoration:none; }
.av-promo strong { font-weight:800; }
.hidden-field { display:none; }

.av-home { max-width:1120px; margin:0 auto; padding:24px 20px 64px; }
.av-home-sec { margin-top:56px; }
.av-home .av-home-h { font-size:30px; font-weight:800; letter-spacing:-0.02em; color:var(--fg); margin:0 0 24px; }
.av-home .av-home-h:has(+ .av-home-sub) { margin-bottom:8px; }
.av-home-h strong { color:var(--primary); }
.av-home .av-home-sub { font-size:15px; color:var(--fg-muted); margin:0 0 32px; }

/* hero */
.av-hero-home { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:center; }
.av-hero-home__text h1 { font-size:44px; line-height:1.05; font-weight:800; letter-spacing:-0.03em; color:var(--fg); margin:0 0 16px; }
.av-hero-home__text p { font-size:17px; color:var(--fg-muted); margin:0; max-width:420px; }
.av-hero-home__media { margin:0; }
.av-hero-home__media img { width:100%; height:auto; border-radius:20px; object-fit:cover; }
.av-hero-search { display:flex; gap:12px; background:#fff; border:1px solid var(--line); border-radius:9999px; box-shadow:var(--shadow-rail); padding:12px; margin-top:24px; position:relative; z-index:2; flex-wrap:wrap; }
.av-hero-search input[type=search] { flex:1 1 320px; min-width:0; height:48px; border:1px solid var(--border); border-radius:9999px; padding:0 20px; font-family:inherit; font-size:15px; color:var(--fg); }
.av-hero-search input[type=search]:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(21,93,252,0.12); }
.av-hero-search select[name=estado] { height:48px; border:1px solid var(--border); border-radius:9999px; padding:0 42px 0 18px; font-family:inherit; font-size:15px; color:var(--fg); cursor:pointer; -webkit-appearance:none; appearance:none; background-color:#fff; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236A7282' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 9l7 7 7-7'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; background-size:18px; min-width:180px; }
.av-hero-search button { height:48px; padding:0 30px; margin-left:auto; border:1px solid var(--border); border-radius:9999px; background:#fff; color:var(--fg); font-family:inherit; font-size:15px; font-weight:700; cursor:pointer; }
.av-hero-search button:hover { background:var(--surface); border-color:var(--primary); color:var(--primary); }

/* category grid */
.av-cat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.av a.av-cat { position:relative; display:block; border-radius:16px; overflow:hidden; aspect-ratio:1/1; }
.av-cat img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.av-cat:hover img { transform:scale(1.05); }
.av-cat span { position:absolute; left:0; right:0; bottom:0; padding:16px 14px; color:#fff; font-weight:700; font-size:15px; background:linear-gradient(to top, rgba(0,0,0,0.6), rgba(0,0,0,0)); }

/* most viewed */
.av-seen-grid { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; -webkit-overflow-scrolling:touch; }
.av-seen-grid::-webkit-scrollbar { height:8px; }
.av-seen-grid::-webkit-scrollbar-thumb { background:var(--border); border-radius:9999px; }
.av a.av-seen { flex:0 0 220px; scroll-snap-align:start; display:block; background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px; text-align:center; position:relative; color:var(--fg); }
.av a.av-seen:hover { text-decoration:none; box-shadow:var(--shadow-rail); border-color:var(--border); }
.av-seen__avatar { width:72px; height:72px; border-radius:9999px; object-fit:cover; margin:0 auto 10px; display:block; }
.av-seen__verify { position:absolute; top:14px; right:14px; width:20px; height:20px; }
.av-seen h4 { font-size:15px; font-weight:700; color:var(--fg); margin:0 0 2px; }
.av-seen__role { font-size:12px; color:var(--fg-muted); margin:0 0 8px; min-height:32px; }
.av-seen__stars { display:flex; justify-content:center; gap:1px; margin-bottom:6px; }
.av-seen__reviews { font-size:12px; color:var(--fg-muted); margin:0; }

/* how it works */
.av-how__grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:center; margin-top:24px; }
.av-how__step { padding:16px 0; border-bottom:1px solid var(--line); }
.av-how__step:last-child { border-bottom:0; }
.av-how__step h3 { font-size:14px; font-weight:800; letter-spacing:0.04em; color:var(--primary); margin:0 0 4px; }
.av-how__step p { font-size:14px; color:var(--fg-muted); margin:0; }
.av-how figure { margin:0; }
.av-how figure img { width:100%; border-radius:20px; }
.av-cta-btn { display:inline-flex; align-items:center; height:52px; padding:0 32px; margin-top:24px; border:0; border-radius:9999px; background:var(--primary); color:#fff; font-family:inherit; font-size:15px; font-weight:700; cursor:pointer; }
.av-cta-btn:hover { background:var(--primary-hover); }

/* download */
.av-download__card { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:center; background:var(--surface); border:1px solid var(--line); border-radius:24px; padding:40px; }
.av-download__info h2 { font-size:28px; font-weight:800; margin:0 0 8px; }
.av-download__info h4 { font-size:16px; font-weight:600; margin:0 0 4px; }
.av-download__info p { color:var(--fg-muted); margin:0 0 20px; }
.av-download__stores { display:flex; gap:12px; flex-wrap:wrap; }
.av-download__stores img { height:44px; width:auto; }
.av-download__card figure { margin:0; }
.av-download__card figure img { width:100%; max-width:360px; margin:0 auto; display:block; }

/* states */
.av-states { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.av-states__col h2 { font-size:18px; font-weight:800; margin:0 0 12px; }
.av-states__col ul { list-style:none; margin:0; padding:0; }
.av-states__col li { margin-bottom:6px; }
.av a.av-states__link { font-size:13px; color:var(--fg-muted); }
.av a.av-states__link:hover { color:var(--primary); }

@media (max-width:900px) {
  .av-hero-home, .av-how__grid, .av-download__card { grid-template-columns:1fr; }
  .av-cat-grid { grid-template-columns:repeat(2,1fr); }
  .av-seen-grid { grid-template-columns:repeat(2,1fr); }
  .av-states { grid-template-columns:1fr; }
}
