/* 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%; } }
