/* Portada y directorio: composición editorial compartida, septiembre de 2026. */
.home-page,
.directory-page {
  --refresh-navy: #17366a;
  --refresh-ink: #25354b;
  --refresh-muted: #526176;
  --refresh-line: #dce4ee;
  --refresh-paper: #f6f8fb;
  --refresh-orange: #c2410c;
  background: var(--refresh-paper);
  color: var(--refresh-ink);
  font-weight: 400;
}
.home-page h1,.home-page h2,.home-page h3,
.directory-page h1,.directory-page h2,.directory-page h3 {
  font-weight: 750;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.home-page p,.directory-page p { text-wrap: pretty; }
.home-page .font-black { font-weight: 750; }
.home-page .font-medium,.home-page .font-semibold { font-weight: 450; }
.home-page .section-eyebrow { letter-spacing: .12em; font-weight: 700; font-size: .7rem; }
.home-page > header { background: #fff; backdrop-filter: none; }
.home-page #miniHeader { visibility: hidden; }
.home-page #miniHeader.visible { visibility: visible; }
.home-page > header > .container { max-width: 1140px; padding-block: 1.4rem 1.7rem; }
.home-page .home-logo-wrap { width: 5rem; margin-bottom: .2rem; }
.home-page .home-hero-panel {
  max-width: 1060px;
  padding: clamp(1.5rem,4vw,3rem);
  margin-bottom: 1.3rem;
  border-radius: 24px;
  border: 1px solid #274c80;
  background: var(--refresh-navy);
  box-shadow: 0 16px 40px rgba(23,54,106,.09);
}
.home-page .home-hero-panel > .absolute { display: none; }
.home-page .home-hero-panel h1 {
  font-size: clamp(1.8rem,3.7vw,2.75rem);
  line-height: 1.14;
  max-width: 19ch;
  margin: 0 auto 1rem;
  color: #fff;
}
.home-page .home-hero-intro { max-width: 54ch; color: #e2eaf5; font-size: 1rem; line-height: 1.65; font-weight: 400; }
.home-page .home-hero-doctor { margin-block: 1.2rem; }
.home-page .home-hero-doctor__photo { width: 72px; height: 72px; box-shadow: none; border: 2px solid rgba(255,255,255,.6); }
.home-page .home-hero-doctor__name { font-size: 1rem; font-weight: 700; }
.home-page .home-hero-doctor__credential { color: #d5e4f7; font-size: .75rem; font-weight: 500; text-transform: none; background: transparent; border: 0; padding: 0; box-shadow: none; }
.home-page .hero-action--primary { background: var(--refresh-orange); border: 1px solid #d65a23; box-shadow: 0 5px 15px rgba(0,0,0,.08); border-radius: 14px; min-height: 62px; }
.home-page .hero-action--primary:hover { background: #9a3412; transform: translateY(-1px); }
.home-page .hero-action-copy strong { font-size: 1rem; font-weight: 750; }
.home-page .hero-action-copy small { font-size: .72rem; font-weight: 400; }
.home-page .home-hero-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; gap: .7rem; }
.home-page .home-hero-actions .hero-action { width: 100%; min-width: 0; max-width: none; min-height: 62px; border-radius: 14px; text-align: center; padding: .8rem .7rem; }
.home-page .home-hero-actions .hero-action--secondary { color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.5); box-shadow: none; font-size: .95rem; font-weight: 700; }
.home-page .home-hero-actions .hero-action--secondary:hover { background: rgba(255,255,255,.15); }
.home-page .home-hero-proof { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 740px; gap: 0; margin: 1.25rem auto 0; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.18); }
.home-page .home-hero-proof span { min-width: 0; padding: .3rem .65rem; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.home-page .home-hero-proof span + span { border-left: 1px solid rgba(255,255,255,.18); }
.home-page .home-hero-proof strong { font-size: .94rem; color: #fff; }
.home-page .home-hero-proof small { font-size: .68rem; color: #d5e4f7; line-height: 1.45; margin-top: .25rem; font-weight: 400; }
.home-page #headerSearchForm { max-width: 660px; overflow: visible; }
.home-page #headerSearchInput { height: 58px; border: 1px solid #cad6e4; border-radius: 16px; box-shadow: none; background: #f8fafc; font-size: .95rem; padding-left: 2.7rem; padding-right: 6rem; }
.home-page #headerSearchForm button { min-height: 44px; border-radius: 11px; background: var(--refresh-navy); }
.home-page #headerSearchHelp { color: var(--refresh-muted); font-size: .76rem; margin-top: .65rem; }
.home-page #navLinks { gap: .2rem; padding-block: .4rem; justify-content: flex-start; scroll-padding-inline: 1rem; }
.home-page #navLinks > a { flex: 0 0 auto; }
.home-page #navLinks > a:first-child { margin-left: auto; }
.home-page #navLinks > a:last-child { margin-right: auto; }
.home-page #navLinks a { min-height: 44px; display: inline-flex; align-items: center; font-size: .78rem; border-radius: 10px; }
.home-page #navLinks a[href*="reservas.php"],.home-page .floating-dock a.dock-reservar,.home-page .mobile-action-bar a.mob-reservar { background: var(--refresh-orange); color: #fff; }
.home-page #navLinks a.active { background: var(--refresh-navy) !important; color: #fff !important; transition: none; }
.home-page .floating-dock a.dock-whatsapp,.home-page .mobile-action-bar a.mob-whatsapp { background: #167842; color: #fff; }
.home-page #main-content { max-width: 1180px; margin-block: 0; border: 0; border-radius: 0; background: #fff; box-shadow: none; backdrop-filter: none; padding-bottom: 2rem; }
.home-page #main-content > section { padding: clamp(2rem,5vw,3.5rem) clamp(1rem,4vw,2.5rem); background: #fff; border-bottom: 1px solid var(--refresh-line); }
.home-page #main-content > section:nth-of-type(even) { background: #f9fbfd; }
.home-page .section-intro { max-width: 63ch; color: var(--refresh-muted); font-size: .96rem; line-height: 1.65; font-weight: 400; }
.home-page #main-content h2 { font-size: clamp(1.5rem,2.8vw,2rem); line-height: 1.25; }
.home-page .soft-card { background: #fff; border: 1px solid var(--refresh-line); border-radius: 20px; box-shadow: 0 6px 20px rgba(23,54,106,.035); padding: clamp(1.25rem,3vw,2rem); }
.home-page .section-split--compact { gap: 1rem; margin-bottom: 1.6rem; }
.home-page .section-illustration { width: 130px; padding: .6rem; border-radius: 18px; box-shadow: none; }
.home-page #rutas-busqueda .home-hub-grid { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 1rem; }
.home-page #rutas-busqueda .home-clinical-hub { min-height: 0; padding: 1.25rem; border-radius: 18px; gap: .7rem; background: #fff; border: 1px solid var(--hub-border); box-shadow: 0 4px 14px rgba(23,54,106,.035); }
.home-page #rutas-busqueda .home-clinical-hub::before { height: 3px; }
.home-page #rutas-busqueda .home-clinical-hub__eyebrow { min-height: 0; padding: .25rem .5rem; border: 0; border-radius: 6px; letter-spacing: .06em; font-size: .62rem; }
.home-page #rutas-busqueda .home-clinical-hub h3 { font-size: 1.18rem; line-height: 1.3; }
.home-page #rutas-busqueda .home-clinical-hub p { font-size: .86rem; line-height: 1.6; color: var(--refresh-muted); font-weight: 400; }
.home-page #rutas-busqueda .home-clinical-hub__cta { min-height: 44px; border-radius: 10px; font-size: .78rem; padding: .6rem .8rem; }
.home-page #rutas-busqueda .home-clinical-hub__links { gap: .3rem; }
.home-page #rutas-busqueda .home-clinical-hub__link { min-height: 44px; padding: .55rem .65rem; border-radius: 8px; background: #fff; font-size: .8rem; font-weight: 650; box-shadow: none; }
.home-page #rutas-busqueda #hub-card-tests { grid-column: 1/-1; background: var(--hub-tint); padding: 1.5rem; }
.home-page #hub-card-tests .home-clinical-hub__links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.home-page #hub-card-tests .home-clinical-hub__cta { align-self: flex-start; }
.home-page .home-family-details { border-top: 1px solid var(--refresh-line); }
.home-page .home-family-details summary { cursor: pointer; color: var(--hub-ink); padding: .7rem 0 .2rem; font-size: .77rem; font-weight: 700; min-height: 44px; }
.home-page .home-family-details[open] summary { padding-bottom: .7rem; }
.home-page .home-disclosure { margin-top: 1rem; border: 1px solid var(--refresh-line); border-radius: 16px; background: #fff; }
.home-page .home-disclosure > summary { padding: 1rem 1.2rem; min-height: 52px; color: var(--refresh-navy); font-size: .92rem; font-weight: 700; cursor: pointer; }
.home-page .home-disclosure[open] > summary { border-bottom: 1px solid var(--refresh-line); margin-bottom: 1rem; }
.home-page .home-disclosure > .soft-card { border: 0; box-shadow: none; padding-top: .5rem; }
.home-page #requestsGrid { margin-top: 1.25rem; gap: 1rem; }
.home-page summary:focus-visible { outline: 3px solid var(--refresh-navy); outline-offset: 3px; border-radius: 8px; }
.home-page .home-credential-highlights { display: flex; flex-wrap: wrap; gap: .55rem; }
.home-page .home-credential-highlights > * { padding: .6rem .8rem; border: 1px solid var(--refresh-line); background: #fff; border-radius: 9px; font-size: .8rem; line-height: 1.5; }
.home-page .home-credential-highlights a { color: var(--refresh-navy); font-weight: 700; min-height: 44px; }
.home-page .home-credential-summary > li { font-size: .9rem; }
.home-page .home-credential-summary > li span { font-size: .95rem; line-height: 1.6; }
.home-page .home-credential-summary .svg-badge { width: 40px; height: 40px; border-radius: 10px; }
.home-page .home-request-primary { display: inline-flex; align-items: center; min-height: 48px; padding: .75rem 1.1rem; border-radius: 12px; background: var(--refresh-navy); color: #fff; font-size: .9rem; font-weight: 700; }
.home-page #requestsGrid > div { border-radius: 14px; box-shadow: none; gap: 1rem; padding: 1rem; }
.home-page #requestsGrid h3 { font-size: 1rem; }
.home-page #requestsGrid .flex-1 > a { min-height: 44px; font-size: .72rem; letter-spacing: 0; text-transform: none; }
.home-page .home-reserve-card { border: 1px solid #fed7aa; border-radius: 22px; padding: clamp(1.25rem,4vw,2.5rem); box-shadow: 0 10px 30px rgba(23,54,106,.05); --tw-ring-shadow: 0 0 #0000; }
.home-page .home-reserve-card > a[data-home-link="booking"] { min-height: 58px; border: 1px solid var(--refresh-orange); border-radius: 13px; background: var(--refresh-orange); font-size: 1rem; padding: 1rem 1.5rem; box-shadow: none; }
.home-page .home-reserve-card > a[data-home-link="booking"]:hover { background: #9a3412; }
.home-page .home-reservation-confirmation { max-width: 70ch; margin: 24px auto 0; padding: 18px 20px; border: 1px solid #f0d3be; border-left: 4px solid var(--refresh-orange); border-radius: 12px; background: #fff8f2; text-align: left; }
.home-page .home-reservation-confirmation h3 { margin: 0 0 10px; color: #9a3412; font-size: 1rem; line-height: 1.4; }
.home-page .home-reservation-confirmation p { max-width: none; margin: 0; color: var(--refresh-ink); font-size: .875rem; line-height: 1.65; }
.home-page .home-reservation-confirmation p + p { margin-top: 10px; }

.home-page .home-session-photo { width: 220px; height: 220px; box-shadow: none; border-radius: 20px; }
.home-page #faqList { max-width: 900px; }
.home-page .faq-toggle { font-size: .94rem; padding: 1rem 1.2rem; }
.home-page .faq-body { font-size: .92rem; }
.home-page #alcance-atencion h3 { font-size: 1.03rem; }
.home-page .home-final-cta { margin: 1.5rem; padding: 2rem; border-radius: 20px; box-shadow: none; }

/* The directory stays a complete list. Scanning and search carry its hierarchy. */
.directory-page .dir-shell { width: min(100% - 32px,1180px); padding-top: 16px; }
.directory-page .dir-nav { box-shadow: 0 6px 22px rgba(23,54,106,.055); border-radius: 17px; padding: 5px 8px; }
.directory-page .dir-logo { width: 58px; height: 58px; border-radius: 12px; }
.directory-page .dir-logo img { width: 52px; height: 52px; border-radius: 10px; }
.directory-page .dir-nav-links a { font-size: .8rem; font-weight: 700; padding-inline: 11px; border-radius: 10px; }
.directory-page .dir-hero { background: var(--refresh-navy); border-radius: 24px; padding: clamp(1.4rem,4vw,3rem); box-shadow: 0 12px 35px rgba(23,54,106,.075); }
.directory-page .dir-hero::before,.directory-page .dir-hero::after { display: none; }
.directory-page .dir-hero h1 { max-width: 23ch; font-size: clamp(1.85rem,4vw,2.8rem); line-height: 1.18; }
.directory-page .dir-hero-copy { max-width: 62ch; font-size: 1rem; line-height: 1.65; color: #dce8f7; font-weight: 400; margin-top: 1rem; }
.directory-page .dir-eyebrow { padding: 0; border: 0; background: none; color: #bed2ed; font-size: .7rem; letter-spacing: .12em; }
.directory-page .dir-stats { gap: .55rem 1rem; }
.directory-page .dir-stats span { min-height: 0; padding: 0; border: 0; background: none; font-size: .76rem; font-weight: 500; color: #dce8f7; }
.directory-page .dir-search { border-radius: 17px; padding: 1.15rem; background: #fff; border: 1px solid #dce4ee; box-shadow: none; }
.directory-page .dir-search input { border-radius: 11px; min-height: 54px; font-size: .95rem; font-weight: 450; }
.directory-page .dir-search-submit { background: var(--refresh-orange); border-radius: 11px; min-height: 54px; font-size: .9rem; font-weight: 700; }
.directory-page .dir-search-label { color: var(--refresh-navy); font-weight: 700; font-size: .9rem; }
.directory-page .dir-search-meta,.directory-page .dir-search-meta p { font-size: .76rem; font-weight: 400; line-height: 1.55; }
.directory-page .dir-search-privacy { font-size: .72rem; font-weight: 400; line-height: 1.55; background: #f6f8fb; color: #526176; }
.directory-page .dir-section { margin-top: 2.75rem; }
.directory-page .dir-section-head h2 { font-size: clamp(1.45rem,2.6vw,1.9rem); }
.directory-page .dir-section-head p { font-size: .94rem; max-width: 64ch; line-height: 1.65; font-weight: 400; }
.directory-page .dir-section-kicker { letter-spacing: .12em; font-size: .68rem; }
.directory-page .dir-family-jump { border-radius: 11px; box-shadow: none; padding: .6rem .8rem; }
.directory-page .dir-family-jump-label { font-size: .8rem; font-weight: 700; }
.directory-page .dir-family-jump-code { width: 30px; height: 30px; border-radius: 8px; font-size: .67rem; }
.directory-page .dir-family-section { border-radius: 18px; box-shadow: 0 4px 15px rgba(23,54,106,.035); background: #fff; }
.directory-page .dir-family-section-head { padding: 1rem; }
.directory-page .dir-family-section h2 { font-size: 1.16rem; }
.directory-page .dir-resource-link { font-size: .88rem; font-weight: 600; line-height: 1.5; border-radius: 9px; box-shadow: none; min-height: 46px; }
.directory-page .dir-family-card,.directory-page .dir-support-card,.directory-page .dir-orientation-card { border-radius: 18px; box-shadow: 0 4px 16px rgba(23,54,106,.035); }
.directory-page .dir-family-card h3,.directory-page .dir-support-card h3 { font-size: 1.1rem; }
.directory-page .dir-family-card p,.directory-page .dir-support-card p,.directory-page .dir-orientation-card p { font-size: .88rem; font-weight: 400; line-height: 1.65; }
.directory-page .dir-empty { border-radius: 16px; line-height: 1.6; }
.directory-page .dir-empty-suggestions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .7rem; }
.directory-page .dir-empty-suggestions a { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem .9rem; border-radius: 9px; background: #fff; border: 1px solid var(--refresh-line); color: var(--refresh-navy); font-size: .85rem; font-weight: 700; }
.directory-page .dir-empty-suggestions a:focus-visible { outline: 3px solid var(--refresh-navy); outline-offset: 3px; }
.directory-page .dir-cta { border-radius: 20px; background: var(--refresh-navy); box-shadow: none; }
.directory-page a:focus-visible { outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 5px #0f2a6b; transition: none; }

@media (min-width:900px) {
  .home-page .home-hero-panel > .relative { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,.8fr); column-gap: 2rem; text-align: left; align-items: center; }
  .home-page .home-hero-panel h1 { grid-column: 1; max-width: 19ch; margin: 0 0 1rem; font-size: 2.55rem; }
  .home-page .home-hero-intro { grid-column: 1; margin: 0 0 1.25rem; max-width: 48ch; }
  .home-page .home-hero-panel > .relative > .w-16 { display: none; }
  .home-page .home-hero-doctor { grid-column: 2; grid-row: 1/4; flex-direction: column; gap: 1rem; margin: 0; text-align: center; }
  .home-page .home-hero-doctor__photo { width: 160px; height: 160px; }
  .home-page .home-hero-doctor__identity { align-items: center; text-align: center; }
  .home-page .hero-action-row { grid-column: 1; justify-content: flex-start; margin: 0; }
  .home-page .hero-action--primary { flex: 0 1 auto; width: auto; min-width: 320px; }
  .home-page .home-hero-proof { grid-column: 1/-1; width: 100%; max-width: none; margin-top: 1.5rem; }
}

@media (min-width:1000px) {
  .home-page #rutas-busqueda .home-hub-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .home-page #rutas-busqueda #hub-card-tests { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.35fr); column-gap: 2rem; align-items: start; }
  .home-page #hub-card-tests > .home-clinical-hub__links { grid-column: 2; grid-row: 1/5; align-self: center; }
  .home-page #hub-card-tests > .home-clinical-hub__cta { justify-self: start; }
}
@media (max-width:767px) {
  .home-page > header > .container { padding-top: .65rem; }
  .home-page .home-logo-wrap { width: 3.4rem; }
  .home-page .home-hero-panel { padding: 1.35rem 1.1rem; border-radius: 18px; }
  .home-page .home-hero-panel h1 { font-size: 1.85rem; }
  .home-page .home-hero-intro { font-size: .9rem; line-height: 1.6; }
  .home-page .home-hero-proof { grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: .8rem; }
  .home-page .home-hero-proof span:nth-child(3) { border-left: 0; }
  .home-page .home-hero-doctor__photo { width: 60px; height: 60px; }
  .home-page .home-hero-doctor__name { font-size: .85rem; }
  .home-page #headerSearchInput { font-size: 16px !important; padding-left: 2.4rem; padding-right: 5.3rem; }
  .home-page #rutas-busqueda .home-hub-grid { grid-template-columns: minmax(0,1fr); }
  .home-page #rutas-busqueda #hub-card-tests { padding: 1.1rem; }
  .home-page #hub-card-tests .home-clinical-hub__links { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-page .section-illustration { display: none; }
  .home-page .home-final-cta { margin: 1rem; padding: 1.4rem; }
  .home-page .home-reserve-card > a[data-home-link="booking"] { width: 100%; }
  .directory-page .dir-shell { width: min(100% - 24px,1180px); }
  .directory-page .dir-nav { width: 100%; top: 5px; margin-bottom: 12px; }
  .directory-page .dir-logo { width: 43px; height: 43px; }
  .directory-page .dir-logo img { width: 39px; height: 39px; }
  .directory-page .dir-nav-links { min-width: 0; }
  .directory-page .dir-nav-links a { padding-inline: 10px; font-size: .73rem; }
  .directory-page .dir-hero { padding: 1.35rem 1rem; border-radius: 18px; }
  .directory-page .dir-hero h1 { font-size: 1.85rem; }
  .directory-page .dir-hero-copy { font-size: .92rem; }
  .directory-page .dir-search { padding: .9rem; }
  .directory-page .dir-search input { font-size: .86rem; }
}
/* Inicio: conservar espacio de lectura y acciones completas en teléfonos. */
@media (max-width:560px) {
  .home-page > header .home-logo-wrap { width: clamp(144px,43vw,168px); }
}
@media (max-width:440px) {
  .home-page .home-hero-actions { grid-template-columns: minmax(0,1fr); gap: .6rem; }
  .home-page .home-hero-actions .hero-action { min-height: 54px; padding: .8rem 1rem; gap: .6rem; }
  .home-page .home-hero-actions .hero-action-copy strong { white-space: nowrap; }
}
@media (max-width:380px) {
  .home-page #headerSearchForm { display: grid; gap: .5rem; overflow: visible; }
  .home-page #headerSearchInput { padding-right: 1rem; }
  .home-page #headerSearchForm > svg { top: 29px; }
  .home-page #headerSearchForm button { position: static; width: 100%; min-height: 48px; transform: none; }
}
@media (prefers-reduced-motion:reduce) {
  .home-page,.directory-page { scroll-behavior: auto; }
  .home-page *,.directory-page * { scroll-behavior: auto !important; }
}
@media print {
  .home-page details:not([open]) > :not(summary) { display: block; }
  .home-page #hub-card-tests .home-clinical-hub__links { display: block; }
}
