/* Ficha vertical compacta: ancho máximo de 34rem y contactos en una columna. */
.business-directory__dialog { width: min(92vw, 34rem); max-height: 88dvh; padding: clamp(1.1rem, 3vw, 1.75rem); border-radius: 1.25rem; overflow-x: hidden; overscroll-behavior: contain; }
.business-directory__dialog::backdrop { background: rgb(12 30 49 / 65%); backdrop-filter: blur(.35rem); }
.business-directory__dialog .business-directory__close { right: .75rem; top: .75rem; width: 2.5rem; height: 2.5rem; font-size: 1.75rem; }
.business-detail__icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 1.8rem; width: 1.8rem; height: 1.8rem; color: #0085ff; }
.business-detail__icon svg { width: 100%; height: 100%; }
.business-directory__dialog .business-directory__detail-category { display: inline-flex; align-items: center; gap: .65rem; max-width: calc(100% - 3rem); margin: 0 0 1rem; padding: .45rem .75rem; border-radius: 3rem; background: #e8f4ff; color: #0085ff; font-size: .85rem; }
.business-directory__dialog #directory-detail-name { font-size: clamp(1.7rem, 5vw, 2.3rem); letter-spacing: -.04em; line-height: 1.12; overflow-wrap: anywhere; }
.business-detail__location { display: flex; align-items: center; gap: .7rem; font-size: 1rem; }
.business-detail__rating { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; margin-block: 1rem; padding: .75rem; background: #f3f8fe; border-radius: 1rem; }
.business-detail__rating .directory-card__stars { font-size: 1.65rem; letter-spacing: .07em; }
.business-detail__rating strong { font-size: 1.05rem; }
.business-detail__rating > span:last-child { padding-left: 0; border: 0; color: #657d9f; font-size: .8rem; flex-basis: 100%; }
.business-detail__section { border-top: 1px solid #dce6f1; padding-top: 1rem; margin-top: 1rem; }
.business-directory__dialog .business-detail__section h3 { font-size: 1.2rem; letter-spacing: -.03em; }
.business-directory__dialog #directory-detail-description { white-space: pre-line; overflow-wrap: anywhere; color: #48638a; line-height: 1.55; font-size: .95rem; }
.business-detail__socials { display: flex; flex-wrap: wrap; gap: .6rem; margin-block: 1rem; }
.business-detail__social { display: flex; align-items: center; justify-content: center; flex: 0 1 3.5rem; max-width: 3.5rem; min-height: 3.25rem; border-radius: 1rem; background: #f0f6fd; }
.business-detail__social .business-detail__icon { width: 1.9rem; height: 1.9rem; flex-basis: 1.9rem; font-size: 2rem; font-weight: 800; }
.business-detail__social--whatsapp { background: #edf9f3; }
.business-detail__social--whatsapp .business-detail__icon { color: #0ac64a; }
.business-detail__social--instagram { background: #fff0f7; }
.business-detail__social--instagram .business-detail__icon { color: #dc227e; }
.business-detail__social--twitter .business-detail__icon, .business-detail__social--tiktok .business-detail__icon { color: #071426; }
.business-detail__social--youtube .business-detail__icon { color: #f00026; }
.business-detail__contacts { display: grid; grid-template-columns: minmax(0, 1fr); gap: .65rem; }
.business-detail__contact { display: flex; align-items: center; gap: .75rem; min-width: 0; padding: .75rem; border: 1px solid #d6e8fc; border-radius: .9rem; background: linear-gradient(135deg, #fff, #f6faff); }
.business-detail__contact .business-detail__icon { flex-basis: 2.5rem; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: #e5f2ff; padding: .65rem; }
.business-detail__contact > div { min-width: 0; }
.business-detail__contact span:not(.business-detail__icon) { display: block; color: #657d9f; font-size: .85rem; margin-bottom: .3rem; }
.business-detail__contact strong { display: block; font-size: .95rem; font-weight: 500; overflow-wrap: anywhere; white-space: pre-line; }
a.business-detail__contact strong { color: #007fff; font-weight: 600; }
.business-directory__dialog a:hover { filter: brightness(.95); }
.business-directory__dialog a:focus-visible { outline: 3px solid #0085ff; outline-offset: 3px; }
.business-directory__dialog small { border-top: 1px solid #dce6f1; padding-top: 1rem; font-size: .75rem; }
.business-directory__dialog [hidden] { display: none !important; }
@media (max-width: 38rem) { .business-detail__contacts { grid-template-columns: 1fr; } .business-detail__rating { gap: .7rem; padding: .85rem; } .business-detail__rating > span:last-child { padding-left: 0; border: 0; flex-basis: 100%; } }

/* El modal define su paleta: no depende del color heredado de la sección que lo abre. */
.business-directory__dialog { --directory-ink:#102f69; --directory-muted:#657d9f; --directory-blue:#0085ff; color:var(--directory-ink); }
.business-directory__dialog #directory-detail-name,
.business-directory__dialog .business-detail__section h3,
.business-directory__dialog .business-detail__location,
.business-directory__dialog .business-detail__rating strong,
.business-directory__dialog .business-detail__contact { color:var(--directory-ink); }
.business-directory__dialog .business-directory__close { color:var(--directory-ink); }
.business-directory__dialog .business-detail__logo { display:block; width:5.5rem; height:5.5rem; object-fit:contain; margin:0 0 .85rem; padding:.35rem; border:1px solid #e1eaf5; border-radius:1rem; background:#fff; }
.business-detail__social--website { background:#e8f4ff; }
.business-detail__social--website .business-detail__icon { color:#0085ff; }

/* Ficha con cabecera fotográfica, tarjetas blancas y acentos celestes. */
.business-directory__dialog { width:min(94vw,38rem); padding:1.5rem; border:1px solid #d5e8fb; border-radius:1.8rem; background:linear-gradient(145deg,#f7fcff,#eaf5ff); color:#09205c; }
.business-directory__dialog .business-directory__close { z-index:3; top:1.1rem; right:1.1rem; width:2.8rem; height:2.8rem; background:#fff; box-shadow:0 .25rem .7rem #0065c528; color:#08286c; }
.business-detail__hero { position:relative; isolation:isolate; margin:-1.5rem -1.5rem 0; padding:1.2rem 1.7rem 2.6rem; overflow:hidden; border-radius:1.8rem 1.8rem 0 0; background:#e2f2ff; }
.business-detail__cover { position:absolute; z-index:-3; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.business-detail__hero::before { content:''; position:absolute; z-index:-2; inset:0; background:linear-gradient(100deg,#f7fcfff5 8%,#eaf6ffd9 48%,#bce0ff44 100%); }
.business-detail__hero::after { content:''; position:absolute; z-index:-1; width:22rem; height:22rem; border:2rem solid #79c1ff30; border-radius:50%; right:-7rem; top:-7rem; }
.business-directory__dialog .business-directory__detail-category { padding:.6rem 1rem; margin:0 3rem 1rem 0; background:#e7f4ffed; box-shadow:0 .2rem .6rem #087cd520; }
.business-detail__identity { display:flex; align-items:center; gap:1.2rem; min-width:0; }
.business-detail__heading { min-width:0; }
.business-directory__dialog .business-detail__logo { flex:0 0 6.8rem; width:6.8rem; height:6.8rem; margin:0; padding:.7rem; border-radius:1.3rem; box-shadow:0 .4rem 1rem #0076bc20; }
.business-directory__dialog #directory-detail-name { font-size:clamp(1.6rem,4.5vw,2.7rem); color:#07184e; }
.business-directory__dialog .business-detail__location { margin:.7rem 0 0; color:#284c85; }
.business-detail__rating { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 5.5rem; gap:.3rem 1rem; margin:-1.5rem 0 1rem; padding:1.25rem 1.7rem; border:1px solid #fff; border-radius:1.5rem; background:linear-gradient(145deg,#fff,#edf7ff); box-shadow:0 .4rem 1.1rem #0082dc20; }
.business-detail__rating #directory-detail-score { grid-column:1; grid-row:1; font-size:2rem; color:#07184e; }
.business-detail__rating #directory-detail-stars { grid-column:1; grid-row:2; width:10rem; height:2rem; mask-size:2rem 2rem; -webkit-mask-size:2rem 2rem; }
.business-detail__rating #directory-detail-reviews { grid-column:1; grid-row:3; margin-top:.3rem; font-size:.9rem; }
.business-detail__rating::after { content:''; grid-column:2; grid-row:1 / 4; align-self:center; justify-self:center; width:3rem; height:3rem; background:#0085ff; mask:url('../../assets/icons/fontawesome-free/solid-users.svg') center/contain no-repeat; -webkit-mask:url('../../assets/icons/fontawesome-free/solid-users.svg') center/contain no-repeat; }
.business-detail__section { border:0; margin:.6rem 0 0; padding:1rem 1rem 1rem 5.6rem; border-radius:1.3rem; background:linear-gradient(145deg,#fff,#f1f9ff); box-shadow:0 .3rem .8rem #006fc110; position:relative; }
.business-detail__section::before { content:''; position:absolute; left:1.1rem; top:1rem; width:3.4rem; height:3.4rem; border-radius:50%; background:#dff0ff; }
.business-detail__section::after { content:''; position:absolute; left:1.9rem; top:1.8rem; width:1.8rem; height:1.8rem; background:#0085ff; mask:url('../../assets/icons/fontawesome-free/solid-file-arrow-up.svg') center/contain no-repeat; -webkit-mask:url('../../assets/icons/fontawesome-free/solid-file-arrow-up.svg') center/contain no-repeat; }
#directory-detail-contact-section::after { mask-image:url('../../assets/icons/fontawesome-free/brands-telegram.svg'); -webkit-mask-image:url('../../assets/icons/fontawesome-free/brands-telegram.svg'); }
.business-directory__dialog #directory-detail-description { margin:.4rem 0 0; }
.business-detail__socials { gap:1rem; margin:.7rem 0 .2rem; }
.business-detail__social { flex:0 0 3.2rem; width:3.2rem; min-height:3.2rem; border-radius:50%; background:linear-gradient(140deg,#00c8ef,#0084ff); box-shadow:0 .3rem .7rem #0075c526; text-decoration:none; }
.business-detail__social .business-detail__icon { color:white; width:1.8rem; height:1.8rem; flex-basis:1.8rem; }
.business-detail__social--facebook { background:#0866ed; }
.business-detail__social--instagram { background:radial-gradient(circle at 25% 110%,#ffdb5c 5%,#ff472e 40%,#e000a3 70%,#8a24d7); }
.business-detail__social--whatsapp { background:#0cc45a; }
.business-detail__social--youtube { background:#f02538; }
.business-detail__social--twitter,.business-detail__social--tiktok { background:#101d33; }
.business-detail__contacts { margin:1rem 0 -1rem -5.6rem; width:calc(100% + 6.6rem); gap:.4rem; }
.business-detail__contact { padding:.6rem 1rem; border:1px solid #e2f0fc; border-radius:1.2rem; box-shadow:0 .25rem .6rem #006fc110; text-decoration:none; }
.business-detail__contact-icon { display:flex!important; align-items:center; justify-content:center; flex:0 0 3.4rem; width:3.4rem; height:3.4rem; border-radius:50%; background:#dff0ff; margin:0!important; }
.business-detail__contact .business-detail__contact-icon .business-detail__icon { width:1.7rem; height:1.7rem; flex-basis:1.7rem; padding:0; border-radius:0; background-color:currentColor; }
.business-detail__contact .business-detail__contact-arrow { margin-left:auto; flex:0 0 .8rem; width:.8rem; height:.8rem; padding:0; border-radius:0; color:#42618c; background-color:currentColor; }
.business-directory__dialog small { margin-top:1.8rem; color:#657d9f; }
@media(max-width:38rem) {
 .business-directory__dialog { padding:1rem; }
 .business-detail__hero { margin:-1rem -1rem 0; padding:1rem 1rem 2.3rem; }
 .business-directory__dialog .business-detail__logo { width:5rem;height:5rem;flex-basis:5rem; }
 .business-detail__identity { gap:.8rem; }
 .business-detail__rating { padding:1rem; grid-template-columns:minmax(0,1fr) 3rem; }
 .business-detail__rating #directory-detail-score { font-size:1.6rem; }
 .business-detail__rating #directory-detail-stars { width:8rem;height:1.6rem;mask-size:1.6rem 1.6rem;-webkit-mask-size:1.6rem 1.6rem; }
 .business-detail__section { padding-left:4.5rem; }
 .business-detail__section::before { left:.65rem;width:2.8rem;height:2.8rem; }
 .business-detail__section::after { left:1.25rem;top:1.6rem;width:1.6rem;height:1.6rem; }
 .business-detail__contacts { margin-left:-4.5rem;width:calc(100% + 5.5rem); }
 .business-detail__contact { gap:.6rem; }
}
