@charset "UTF-8";
:root {
    --ink: #173b36;
    --ink-deep: #102c29;
    --ink-soft: #31544f;
    --orange: #ed6848;
    --orange-dark: #d84f31;
    --cream: #f7f2e8;
    --paper: #fffdf9;
    --sage: #b7d0bd;
    --sage-soft: #e8f0e9;
    --line: #dfe4de;
    --muted: #697b76;
    --white: #ffffff;
    --shadow: 0 24px 70px rgba(23, 59, 54, .12);
    --shadow-soft: 0 12px 34px rgba(23, 59, 54, .08);
    --shell: min(1180px, calc(100% - 40px));
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: Inter, "Segoe UI", system-ui, -apple-system, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
.shell { width: var(--shell); margin: 0 auto; }

/* Cabecera simple, coherente con el resto del sitio público. */
.comercio-topbar { background: var(--ink-deep); color: #fff; }
.comercio-nav { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; padding: 1rem 0; }
.comercio-brand { display: inline-flex; align-items: center; gap: .6rem; font-weight: 800; font-size: 1.05rem; color: #fff; }
.comercio-brand img { width: 32px; height: 32px; border-radius: 9px; }
.comercio-back { color: rgba(255,255,255,.8); font-weight: 700; font-size: .88rem; display: inline-flex; align-items: center; gap: .35rem; }
.comercio-back:hover { color: #fff; }

/* Cabecera de directorio */
.comercio-hero { background: linear-gradient(180deg, var(--ink-deep), var(--ink)); color: #fff; padding: 3rem 0 2.6rem; }
.comercio-hero .eyebrow { display: block; color: #f5c7a8; font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; margin-bottom: .7rem; }
.comercio-hero h1 { margin: 0 0 .7rem; font-size: clamp(1.7rem, 3.4vw, 2.4rem); letter-spacing: -.02em; }
.comercio-hero p { margin: 0; max-width: 620px; color: rgba(255,255,255,.78); line-height: 1.6; }

/* Directorio: grid de tarjetas */
.comercio-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 1.2rem; padding: 2.4rem 0 3.5rem; }
.comercio-card { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; box-shadow: var(--shadow-soft); display: flex; flex-direction: column; transition: transform .15s ease; }
.comercio-card:hover { transform: translateY(-3px); }
.comercio-card-cover { height: 120px; background: var(--sage-soft) center/cover no-repeat; display: flex; align-items: flex-end; padding: .8rem; }
.comercio-card-logo { width: 46px; height: 46px; border-radius: 12px; background: var(--white) center/cover no-repeat; border: 3px solid var(--paper); box-shadow: var(--shadow-soft); display: grid; place-items: center; font-weight: 800; color: var(--orange-dark); }
.comercio-card-body { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.comercio-card-body h3 { margin: 0; font-size: 1.05rem; letter-spacing: -.01em; }
.comercio-card-meta { display: flex; align-items: center; gap: .5rem; color: var(--muted); font-size: .82rem; }
.comercio-card-desc { color: var(--ink-soft); font-size: .86rem; line-height: 1.5; margin: 0; flex: 1; }
.comercio-card-foot { display: flex; align-items: center; justify-content: space-between; margin-top: .3rem; }
.comercio-empty { text-align: center; padding: 4rem 1rem; color: var(--muted); }

/* Estrellas de valoración */
.stars { display: inline-flex; gap: 1px; color: #e0a13a; font-size: .95rem; }
.stars .dim { color: var(--line); }
.rating-line { display: inline-flex; align-items: center; gap: .4rem; font-size: .82rem; color: var(--muted); }
.rating-line strong { color: var(--ink); }

/* Ficha detallada del comercio */
.comercio-profile-hero { position: relative; height: 260px; background: var(--sage-soft) center/cover no-repeat; }
.comercio-profile-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16,44,41,0) 40%, rgba(16,44,41,.75)); }
.comercio-profile-identity { position: relative; z-index: 1; display: flex; align-items: flex-end; gap: 1.1rem; height: 100%; padding-bottom: 1.4rem; color: #fff; }
.comercio-profile-logo { width: 84px; height: 84px; border-radius: 18px; background: var(--white) center/cover no-repeat; border: 4px solid var(--paper); box-shadow: var(--shadow); flex: none; display: grid; place-items: center; font-weight: 800; font-size: 1.6rem; color: var(--orange-dark); }
.comercio-profile-identity h1 { margin: 0 0 .3rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.comercio-profile-identity .comercio-card-meta { color: rgba(255,255,255,.85); }

.comercio-profile-body { display: grid; grid-template-columns: 1fr; gap: 2rem; padding: 2.4rem 0 4rem; }
@media (min-width: 940px) { .comercio-profile-body { grid-template-columns: 2fr 1fr; } }

.comercio-section { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 1.6rem 1.8rem; margin-bottom: 1.6rem; box-shadow: var(--shadow-soft); }
.comercio-section h2 { margin: 0 0 .9rem; font-size: 1.08rem; letter-spacing: -.01em; }
.comercio-section p { color: var(--ink-soft); line-height: 1.65; margin: 0; }

.comercio-locations { display: grid; gap: .8rem; }
.comercio-location { display: flex; gap: .9rem; padding: .9rem 1rem; background: var(--sage-soft); border-radius: 12px; }
.comercio-location i { color: var(--orange-dark); font-size: 1.1rem; margin-top: .1rem; }
.comercio-location strong { display: block; margin-bottom: .15rem; }
.comercio-location span { color: var(--ink-soft); font-size: .86rem; }
.comercio-location b.primary-tag { display: inline-block; margin-left: .4rem; font-size: .68rem; font-weight: 800; letter-spacing: .05em; color: var(--orange-dark); background: #fce8e1; padding: .1rem .4rem; border-radius: 999px; vertical-align: middle; }

.comercio-product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .9rem; }
.comercio-product { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--white); }
.comercio-product img { width: 100%; height: 100px; object-fit: cover; display: block; background: var(--sage-soft); }
.comercio-product-info { padding: .6rem .7rem; }
.comercio-product-info strong { display: block; font-size: .84rem; margin-bottom: .2rem; }
.comercio-product-info span { color: var(--orange-dark); font-weight: 800; font-size: .84rem; }

.comercio-review { border-bottom: 1px solid var(--line); padding: 1rem 0; }
.comercio-review:last-child { border-bottom: 0; }
.comercio-review header { display: flex; align-items: center; justify-content: space-between; margin-bottom: .35rem; }
.comercio-review strong { font-size: .88rem; }
.comercio-review time { font-size: .76rem; color: var(--muted); }
.comercio-review p { margin: .35rem 0 0; color: var(--ink-soft); font-size: .88rem; line-height: 1.55; }
.comercio-no-reviews { color: var(--muted); font-size: .9rem; }

.review-form { display: grid; gap: .8rem; }
.review-stars-input { display: flex; gap: .3rem; font-size: 1.5rem; }
.review-stars-input button { background: none; border: 0; cursor: pointer; color: var(--line); padding: 0; line-height: 1; }
.review-stars-input button.active, .review-stars-input button:hover { color: #e0a13a; }
.review-form textarea { min-height: 90px; padding: .7rem .85rem; border: 1px solid var(--line); border-radius: 10px; font: inherit; resize: vertical; }
.review-form button[type="submit"] { align-self: flex-start; min-height: 44px; padding: 0 1.3rem; border: 0; border-radius: 10px; background: var(--orange); color: #fff; font-weight: 800; cursor: pointer; }
.review-form button[type="submit"]:hover { background: var(--orange-dark); }
.review-login-hint { background: var(--sage-soft); border-radius: 12px; padding: .9rem 1rem; font-size: .86rem; color: var(--ink-soft); }
.review-login-hint a { color: var(--orange-dark); font-weight: 700; }
.comercio-alert { padding: .7rem 1rem; border-radius: 10px; font-size: .84rem; margin-bottom: .8rem; }
.comercio-alert.success { background: #edfff8; color: #126044; border: 1px solid #a8d9ca; }
.comercio-alert.error { background: #fff1ef; color: #8f1d14; border: 1px solid #f2c7c2; }

.comercio-sidebar-card { position: sticky; top: 1.2rem; }
.comercio-contact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.comercio-contact-list li { display: flex; gap: .6rem; align-items: center; color: var(--ink-soft); font-size: .86rem; }
.comercio-contact-list i { color: var(--orange-dark); width: 18px; text-align: center; }

.comercio-404 { text-align: center; padding: 5rem 1rem; }
.comercio-404 a { display: inline-block; margin-top: 1rem; color: var(--orange-dark); font-weight: 700; }
