:root {
  --brand: #063b70;
  --brand-light: #00a9e8;
  --sun: #f5a300;
  --ink: #16324a;
  --muted: #526575;
  --border: #d9e2e8;
  --surface: #ffffff;
  --soft: #f5f8fa;
  --services: #a9233a;
  --procedures: #082f57;
  --business: #f36b12;
  --health: #00a653;
  --events: #f4b000;
  --beaches: #00b8b2;
  --contacts: #d32f2f;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--soft);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--soft); }
button, input { font: inherit; }
button { cursor: pointer; }
button, a, [role="button"] { -webkit-tap-highlight-color: transparent; }
button.tap-pressed, a.tap-pressed, [role="button"].tap-pressed {
  transform: translateY(1px) scale(.97);
  filter: brightness(.98);
}
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

.app-shell {
  width: min(100%, 560px);
  min-height: 100dvh;
  margin: 0 auto;
  background: var(--surface);
  box-shadow: 0 0 36px rgba(6, 59, 112, .09);
  padding-bottom: calc(70px + env(safe-area-inset-bottom));
}

.app-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 68px;
  padding: 8px 18px 7px;
  border-bottom: 1px solid var(--border);
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
}
.app-header img { display: block; width: 168px; height: auto; }
.home-logo-button { padding: 0; border: 0; border-radius: 10px; background: transparent; }
.home-logo-button:focus-visible { outline: 3px solid rgba(0,169,232,.28); outline-offset: 4px; }
.home-logo-button:active { transform: scale(.98); }
.location-pill {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  min-height: 38px;
  padding: 8px 11px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--brand);
  background: var(--soft);
  font-size: .82rem;
  font-weight: 700;
}

main { padding: 12px 18px 8px; }
.intro { padding: 6px 2px 18px; }
.eyebrow { margin: 0 0 5px; color: var(--brand-light); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 7px; font-size: clamp(1.85rem, 7vw, 2.35rem); line-height: 1.1; color: var(--brand); }
h2 { font-size: 1.1rem; line-height: 1.25; }
.intro p:last-child { margin: 0; color: var(--muted); line-height: 1.55; }

/* v89: cabecera visual editable de Inicio */
.home-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  min-height: 188px;
  aspect-ratio: 1.74 / 1;
  margin: 0 0 12px;
  border-radius: 20px;
  background: #dbe7ef;
  box-shadow: 0 12px 28px rgba(7,47,87,.11);
  --hero-eyebrow-color: #063b70;
  --hero-title-color: #ffffff;
  --hero-subtitle-color: #ffffff;
}
.home-hero > img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.home-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(6,25,44,0) 32%, rgba(6,25,44,.08) 55%, rgba(6,25,44,.34) 100%);
}
.home-hero-copy {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 16px 18px 14px;
}
.home-hero-eyebrow {
  position: absolute;
  top: 15px;
  left: 18px;
  right: 18px;
  margin: 0;
  color: var(--hero-eyebrow-color);
  font-size: clamp(.74rem, 2.7vw, .9rem);
  font-weight: 900;
  letter-spacing: .08em;
  line-height: 1.15;
  text-transform: uppercase;
  text-shadow: 0 1px 5px rgba(255,255,255,.32);
}
.home-hero h1 {
  margin: 0 0 5px;
  color: var(--hero-title-color);
  font-size: clamp(2rem, 8.8vw, 2.7rem);
  line-height: .98;
  text-shadow: 0 2px 10px rgba(0,0,0,.34);
}
.home-hero-subtitle {
  margin: 0;
  color: var(--hero-subtitle-color);
  font-size: clamp(.83rem, 3.4vw, 1rem);
  line-height: 1.25;
  text-shadow: 0 2px 8px rgba(0,0,0,.34);
}
@media (max-width: 360px) {
  .home-hero { min-height: 182px; }
  .home-hero-copy { padding: 14px 14px 13px; }
  .home-hero-eyebrow { top: 13px; left: 14px; right: 14px; }
}

.search-wrap { position: relative; margin-bottom: 12px; }
.search-icon { position: absolute; left: 16px; top: 14px; z-index: 1; color: var(--brand); font-size: 1.45rem; line-height: 1; }
#main-search {
  width: 100%;
  min-height: 54px;
  padding: 0 45px 0 48px;
  border: 2px solid var(--border);
  border-radius: 16px;
  outline: 0;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 8px 24px rgba(6, 59, 112, .07);
  font-size: 1rem;
}
#main-search:focus { border-color: var(--brand-light); box-shadow: 0 0 0 4px rgba(0,169,232,.12); }
#clear-search { position: absolute; right: 8px; top: 8px; display: none; width: 38px; height: 38px; border: 0; border-radius: 50%; color: var(--muted); background: transparent; font-size: 1.5rem; }
.suggestions { position: absolute; top: 62px; z-index: 15; width: 100%; padding: 7px; border: 1px solid var(--border); border-radius: 15px; background: #fff; box-shadow: 0 18px 45px rgba(6,59,112,.16); }
.suggestions button { display: flex; width: 100%; gap: 10px; align-items: center; padding: 12px; border: 0; border-radius: 10px; color: var(--ink); background: transparent; text-align: left; }
.suggestions .suggestion-icon { display: grid; flex: 0 0 30px; place-items: center; width: 30px; height: 30px; }
.suggestions .suggestion-icon svg { width: 25px; height: 25px; }
.suggestions button:hover, .suggestions button:focus { background: var(--soft); }

.install-panel {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  margin: -10px 0 26px;
  padding: 14px;
  border-radius: 17px;
  color: #fff;
  background: linear-gradient(135deg, var(--brand), #07599c);
  box-shadow: 0 9px 24px rgba(6, 59, 112, .16);
}
.install-panel[hidden] { display: none; }
.install-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: var(--brand); background: #fff; font-size: 1.35rem; font-weight: 900; }
.install-panel h2 { margin: 0 0 3px; color: #fff; font-size: .96rem; }
.install-panel p { margin: 0; color: rgba(255,255,255,.8); font-size: .75rem; line-height: 1.35; }
.install-panel button { min-height: 40px; padding: 8px 13px; border: 0; border-radius: 11px; color: var(--brand); background: #fff; font-size: .78rem; font-weight: 850; }

.section-heading { display: flex; justify-content: space-between; align-items: baseline; margin: 0 2px 12px; }
.section-heading h2 { margin: 0; color: var(--ink); }
.section-heading span { color: var(--muted); font-size: .75rem; }
.quick-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 12px; }
.quick-card {
  min-height: 116px;
  padding: 12px 8px 10px;
  border: 1px solid #dce7f0;
  border-radius: 18px;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 12px 26px rgba(7,47,87,.09);
  font-size: .88rem;
  font-weight: 900;
  line-height: 1.12;
}
.quick-card:active { transform: scale(.98); }
.quick-icon { display: grid; place-items: center; width: 58px; height: 58px; margin: 0 auto 9px; border-radius: 17px; color: #fff; font-size: 1.72rem; font-weight: 900; box-shadow: inset 0 -8px 14px rgba(0,0,0,.09), 0 8px 18px rgba(7,47,87,.11); }
.quick-icon svg { width: 34px; height: 34px; }
.custom-item-icon { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }

.category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-bottom: 28px; }
.category-card { display: flex; min-width: 0; align-items: center; gap: 12px; min-height: 76px; padding: 12px; border: 1px solid #dce7f0; border-radius: 17px; color: var(--ink); background: #fff; box-shadow: 0 8px 20px rgba(7,47,87,.055); font-weight: 900; text-align: left; }
.category-card > span:last-child { min-width: 0; overflow-wrap: break-word; }
.category-card .category-icon { display: grid; flex: 0 0 52px; place-items: center; width: 52px; height: 52px; border-radius: 15px; color: #fff; font-size: 1.35rem; box-shadow: inset 0 -8px 14px rgba(255,255,255,.22); }
.category-card .category-icon svg { width: 31px; height: 31px; }
.category-card small { display: block; margin-top: 4px; color: var(--muted); font-size: .75rem; font-weight: 600; }

.today-card { margin-bottom: 22px; padding: 20px; border-radius: 20px; color: #fff; background: linear-gradient(140deg, #063b70 0%, #07599c 100%); }
.today-card .eyebrow { color: #7cddff; }
.today-card h2 { margin-bottom: 8px; font-size: 1.24rem; }
.today-card p:last-child { margin: 0; color: rgba(255,255,255,.82); font-size: .9rem; line-height: 1.5; }
.status-dot { float: right; width: 10px; height: 10px; margin-top: 3px; border-radius: 50%; background: #42db8b; box-shadow: 0 0 0 5px rgba(66,219,139,.17); }

.detail-view { min-height: 64vh; }
.back-button { margin: 0 0 22px; padding: 8px 0; border: 0; color: var(--brand); background: transparent; font-weight: 750; }
.detail-hero { padding: 22px; border-radius: 22px; color: #fff; background: var(--accent, var(--brand)); }
.detail-hero .detail-symbol { display: grid; place-items: center; width: 42px; height: 42px; font-size: 2rem; }
.detail-hero .detail-symbol svg { width: 38px; height: 38px; }
.detail-hero h1 { margin: 10px 0 5px; color: #fff; }
.detail-hero p { margin: 0; color: rgba(255,255,255,.85); }
.directory-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(150px,.72fr); gap: 16px; align-items: stretch; }
.directory-hero-copy { min-width: 0; }
.directory-hero-copy .detail-symbol { width: 48px; height: 48px; }
.directory-hero-copy .detail-symbol svg { width: 42px; height: 42px; }
.directory-hero-copy .detail-symbol .custom-item-icon { width: 100%; height: 100%; }
.directory-featured { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 12px; border: 1px solid rgba(255,255,255,.58); border-radius: 12px; background: rgba(255,255,255,.16); overflow: hidden; }
.directory-featured small { color: rgba(255,255,255,.78); font-size: .62rem; font-weight: 850; }
.directory-featured strong { margin: 4px 0 9px; color: #fff; font-size: .9rem; line-height: 1.22; overflow-wrap: anywhere; }
.directory-featured button { align-self: flex-start; min-height: 34px; padding: 6px 10px; border: 1px solid rgba(255,255,255,.85); border-radius: 8px; color: #fff; background: transparent; font: inherit; font-size: .72rem; font-weight: 800; }
.directory-featured.has-business { position: relative; min-height: 112px; padding: 0; background: rgba(255,255,255,.18); }
.directory-featured.has-business.has-image { background: #fff; }
.directory-featured.has-business img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 1; }
.directory-featured.has-business.has-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,23,45,.72), rgba(3,23,45,.18)); }
.directory-featured.has-business > div { position: relative; z-index: 1; padding: 12px; }
.directory-featured.has-business > div { display: flex; flex-direction: column; justify-content: center; height: 100%; }
.demo-note { margin-top: 16px; padding: 14px 15px; border: 1px solid #bde8f7; border-radius: 14px; color: var(--ink); background: #effaff; font-size: .86rem; line-height: 1.45; }
.action-list { display: grid; gap: 10px; margin-top: 18px; }
.action-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 66px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 15px; background: #fff; }
.action-row strong { display: block; font-size: .93rem; }
.action-row small { color: var(--muted); }
.action-row a { padding: 9px 12px; border-radius: 10px; color: #fff; background: var(--brand); font-size: .75rem; font-weight: 800; text-decoration: none; }
.empty-state { margin-top: 28px; padding: 38px 22px; border: 1px dashed var(--border); border-radius: 20px; text-align: center; background: var(--soft); }
.empty-state > span { color: var(--brand-light); font-size: 2.4rem; }
.empty-state h2 { margin: 10px 0 6px; }
.empty-state p { margin: 0; color: var(--muted); line-height: 1.5; }

.contacts-hero { background: linear-gradient(140deg, #a61f2a, var(--contacts)); }
.contacts-toolbar { position: relative; margin: 16px 0 10px; }
.contacts-toolbar > span { position: absolute; left: 15px; top: 13px; color: var(--contacts); font-size: 1.35rem; }
.contacts-toolbar input {
  width: 100%;
  min-height: 50px;
  padding: 0 15px 0 45px;
  border: 2px solid var(--border);
  border-radius: 15px;
  outline: none;
  color: var(--ink);
  background: #fff;
  font-size: 1rem;
}
.contacts-toolbar input:focus { border-color: var(--contacts); box-shadow: 0 0 0 4px rgba(211,47,47,.1); }
.test-badge { margin: 0 0 18px; padding: 11px 13px; border-radius: 12px; color: #7e251f; background: #fff2f1; font-size: .82rem; line-height: 1.4; }
.contact-groups { display: grid; gap: 22px; }
.contact-group h2 { display: flex; gap: 9px; align-items: center; margin: 0 0 9px; color: var(--ink); font-size: 1rem; }
.contact-group h2 span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; color: #fff; background: var(--contacts); font-size: .82rem; font-weight: 900; }
.contact-list { overflow: hidden; border: 1px solid var(--border); border-radius: 17px; background: #fff; }
.contact-row { display: flex; gap: 12px; align-items: center; justify-content: space-between; min-height: 70px; padding: 12px 13px; border-bottom: 1px solid var(--border); }
.contact-row:last-child { border-bottom: 0; }
.contact-row[hidden], .contact-group[hidden] { display: none; }
.contact-info { flex: 1 1 220px; width: 100%; min-width: 0; overflow: hidden; }
.contact-info strong { display: block; margin-bottom: 3px; font-size: .93rem; }
.contact-info small { display: block; color: var(--muted); font-size: .72rem; line-height: 1.3; }
.contact-name-button, .place-name-button { display: inline-block; padding: 3px 0; border: 0; color: var(--ink); background: transparent; font: inherit; font-size: .95rem; font-weight: 850; text-align: left; cursor: pointer; }
.contact-name-button:hover, .place-name-button:hover, .business-name-button:hover { text-decoration: underline; }
.location-link { display: block; width: fit-content; max-width: 100%; margin: 7px 0; padding: 8px 10px; border-radius: 10px; color: var(--brand); background: #eef5fb; font-size: .83rem; font-weight: 750; line-height: 1.35; text-decoration: none; overflow-wrap: break-word; word-break: normal; }
.location-link-hint { display: block; margin: 3px 0 0 18px; font-size: .74rem; font-weight: 850; }
.location-link:hover { background: #dfeef9; text-decoration: underline; }
.contact-name-button:focus-visible, .place-name-button:focus-visible, .business-name-button:focus-visible, .location-link:focus-visible { outline: 3px solid #ecaa28; outline-offset: 3px; }
.contact-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.favorite-heart { display: inline-grid; flex: 0 0 44px; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #cad9e7; border-radius: 13px; color: #425c78; background: #fff; font: inherit; font-size: 1.8rem; line-height: 1; cursor: pointer; }
.favorite-heart.is-saved { border-color: #aa3450; color: #a9233a; background: #fff1f4; }
.favorite-heart:focus-visible { outline: 3px solid #ecaa28; outline-offset: 2px; }
.contact-actions .favorite-heart { flex-basis: 38px; width: 38px; height: 38px; font-size: 1.5rem; }
.profile-favorite-head, .place-card-head, .favorite-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.profile-favorite-head > h1, .place-card-head > div, .favorite-card-heading > div { min-width: 0; }
.business-heading > div { min-width: 0; flex: 1 1 auto; }
.favorite-card { margin: 12px 0; padding: 16px; border: 1px solid var(--border); border-radius: 16px; background: #fff; }
.favorite-card h2 { margin: 3px 0 10px; color: var(--ink); font-size: 1.06rem; overflow-wrap: anywhere; }
.favorite-card small, .favorite-card p, .favorites-explain { color: var(--muted); font-size: .8rem; line-height: 1.45; }
.favorite-card-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.favorite-card-actions a, .favorite-card-actions button, .favorites-refresh { display: inline-grid; place-items: center; min-height: 42px; padding: 9px 12px; border: 1px solid var(--brand); border-radius: 10px; color: var(--brand); background: #fff; font: inherit; font-size: .82rem; font-weight: 750; text-decoration: none; cursor: pointer; }
.favorite-card { border-left: 4px solid var(--favorite-accent, var(--brand)); }
.favorite-card-heading small { color: var(--favorite-accent, var(--brand)); font-weight: 750; }
.favorite-card-actions .favorite-action-profile { border-color: var(--favorite-accent, var(--brand)); color: var(--favorite-accent, var(--brand)); background: #fff; }
.favorite-card-actions .favorite-action-call { border-color: #087a42; color: #fff; background: #087a42; }
.favorite-card-actions .favorite-action-whatsapp { border-color: #11794a; color: #fff; background: #11794a; }
.favorite-card-actions .favorite-action-map { border-color: #0b5fa5; color: #fff; background: #0b5fa5; }
.favorite-card-actions a:focus-visible, .favorite-card-actions button:focus-visible { outline: 3px solid #ecaa28; outline-offset: 2px; }
.favorites-explain { margin: 14px 0; }
.tgo-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.demo-call { flex: 0 0 auto; min-height: 38px; padding: 8px 13px; border: 0; border-radius: 11px; color: #fff; background: var(--contacts); font-size: .76rem; font-weight: 850; text-transform: uppercase; }
.contact-actions .demo-call, .source-small { display: inline-grid; place-items: center; text-decoration: none; }
.contact-actions .contact-whatsapp { display: inline-grid; place-items: center; min-height: 38px; padding: 8px 11px; border-radius: 11px; color: #fff; background: #11794a; font-size: .76rem; font-weight: 800; text-decoration: none; }
.source-small { min-height: 38px; padding: 8px 11px; border: 1px solid var(--border); border-radius: 11px; color: var(--brand); background: #fff; font-size: .76rem; font-weight: 800; }
.contact-load-error { padding: 14px; color: #842b26; background: #fff1ed; border-radius: 11px; line-height: 1.4; }
.contact-profile { padding: 19px; border: 1px solid var(--border); border-radius: 18px; background: #fff; }
.contact-profile h1 { font-size: 1.5rem; overflow-wrap: anywhere; }
.contact-profile section { padding: 16px 0; border-top: 1px solid var(--border); }
.contact-profile section h2 { font-size: 1rem; margin-bottom: 7px; }
.contact-profile section p { margin-bottom: 8px; line-height: 1.5; }
.contact-profile a { color: var(--brand); font-weight: 750; overflow-wrap: anywhere; }
.profile-section { padding: 16px 0; border-top: 1px solid var(--border); }
.profile-section h2 { margin-bottom: 7px; color: var(--brand); font-size: 1rem; }
.profile-section p { margin: 0 0 8px; line-height: 1.5; }
.profile-section a { color: var(--brand); font-weight: 750; overflow-wrap: anywhere; }
.contact-description { line-height: 1.6; white-space: pre-line; }
.contact-multiline { white-space: pre-line; }
.contact-cover { display: block; width: 100%; max-height: 310px; object-fit: contain; border-radius: 12px; margin: 10px 0 19px; background: var(--soft); }
.contact-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.contact-gallery img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: contain; border-radius: 10px; background: var(--soft); }
.official-card { margin-top: 18px; padding: 20px; border: 1px solid var(--border); border-radius: 18px; background: #fff; box-shadow: 0 6px 22px rgba(6,59,112,.06); }
.official-card h2 { margin: 0 0 8px; color: var(--ink); font-size: 1.2rem; }
.official-card p { margin: 0 0 17px; color: var(--muted); line-height: 1.55; }
.official-card a { display: inline-grid; min-height: 45px; place-items: center; padding: 10px 16px; border-radius: 11px; color: #fff; background: var(--brand); font-weight: 800; text-decoration: none; }
.source-notice { padding: 12px 15px; border-left: 3px solid var(--brand-light); border-radius: 8px; color: var(--muted); background: var(--soft); font-size: .85rem; line-height: 1.5; }
.demo-call:focus-visible { outline: 3px solid rgba(211,47,47,.25); outline-offset: 2px; }
.contacts-empty { padding: 30px 18px; border: 1px dashed var(--border); border-radius: 16px; color: var(--muted); background: var(--soft); text-align: center; }

.demo-call-dialog { width: min(calc(100% - 36px), 430px); padding: 24px; border: 0; border-radius: 22px; color: var(--ink); box-shadow: 0 24px 70px rgba(0,0,0,.28); text-align: center; }
.demo-call-dialog::backdrop { background: rgba(8,31,50,.62); backdrop-filter: blur(3px); }
.dialog-icon { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 14px; border-radius: 16px; color: #fff; background: var(--contacts); font-size: 1.5rem; }
.demo-call-dialog h2 { margin-bottom: 7px; color: var(--brand); font-size: 1.28rem; }
.demo-call-dialog p { margin-bottom: 12px; color: var(--muted); line-height: 1.5; }
#demo-call-contact { color: var(--ink); font-weight: 800; }
.demo-call-dialog button { width: 100%; min-height: 46px; margin-top: 4px; border: 0; border-radius: 12px; color: #fff; background: var(--brand); font-weight: 800; }

.bottom-nav {
  position: fixed;
  left: 50%;
  bottom: 0;
  z-index: 30;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  width: min(100%, 560px);
  padding: 5px 8px calc(5px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  border-top: 1px solid var(--border);
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(14px);
}
.bottom-nav button { display: grid; gap: 3px; justify-items: center; min-height: 54px; padding: 4px 2px; border: 0; border-radius: 12px; color: var(--muted); background: transparent; font-size: .875rem; font-weight: 750; }
.bottom-nav button span { font-size: 1.5rem; font-weight: 800; line-height: 1; }
.bottom-nav button svg { width: 28px; height: 28px; display: block; }
.bottom-nav button .bottom-nav-brand-icon { width: 28px; height: 28px; display: block; overflow: hidden; border-radius: 8px; }
.bottom-nav button .bottom-nav-brand-icon img { width: 100%; height: 100%; display: block; object-fit: cover; }
.bottom-nav button.active { color: var(--brand); background: #eef6fc; }

@media (min-width: 700px) {
  body { padding: 28px 0; }
  .app-shell { min-height: calc(100dvh - 56px); border-radius: 28px; overflow: hidden; }
  .bottom-nav { bottom: 28px; border-radius: 0 0 28px 28px; }
}

/* v62: Explora Torrevieja aprovecha mejor el ancho en móvil sin reducir tipografías */
@media (max-width: 699px) {
  .category-grid {
    gap: 8px;
    margin-left: -12px;
    margin-right: -12px;
  }
  .category-card {
    gap: 8px;
    padding: 9px;
  }
  .category-card .category-icon {
    flex-basis: 50px;
    width: 50px;
    height: 50px;
  }
}

@media (max-width: 370px) {
  .app-header img { width: 145px; }
  .location-pill { padding-inline: 9px; font-size: .75rem; }
  .quick-grid { grid-template-columns: repeat(2, 1fr); }
  .install-panel { grid-template-columns: auto 1fr; }
  .install-panel button { grid-column: 1 / -1; width: 100%; }
  .contact-row { align-items: flex-start; }
  .demo-call { padding-inline: 10px; }
}

@media (prefers-reduced-motion: no-preference) {
  button, a, [role="button"] { transition: transform .12s ease, filter .12s ease, background-color .15s ease, box-shadow .15s ease; }
  .quick-card, .category-card, .bottom-nav button { transition: transform .15s ease, filter .12s ease, background-color .15s ease, box-shadow .15s ease; }
  .quick-card:hover, .category-card:hover { transform: translateY(-2px); box-shadow: 0 9px 22px rgba(6,59,112,.09); }
}

/* Pantallas funcionales del prototipo completo */
.filter-chips, .segmented { display: flex; gap: 8px; overflow-x: auto; margin: 18px 0 14px; padding-bottom: 2px; scrollbar-width: none; }
.filter-chips::-webkit-scrollbar { display: none; }
.filter-chips button, .segmented button { flex: 0 0 auto; min-height: 40px; padding: 8px 14px; border: 1px solid var(--border); border-radius: 999px; color: var(--ink); background: #fff; font-size: .78rem; font-weight: 800; }
.filter-chips button.active, .segmented button.active { border-color: var(--brand); color: #fff; background: var(--brand); }
.segmented { display: grid; grid-template-columns: 1fr 1fr; overflow: visible; }
.segmented button { border-radius: 12px; }
.map-placeholder { display: grid; place-items: center; min-height: 150px; margin-bottom: 18px; padding: 22px; border-radius: 18px; color: #08743e; background: linear-gradient(145deg, #e6f8ef, #f6fcf9); text-align: center; }
.map-placeholder span { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 8px; border-radius: 50%; color: #fff; background: var(--health); font-size: 1.25rem; font-weight: 900; }
.map-placeholder strong { font-size: .95rem; }
.map-placeholder small { margin-top: 4px; color: var(--muted); font-size: .73rem; }
.map-placeholder.map-blue { color: var(--brand); background: linear-gradient(145deg, #eaf4fc, #f8fbfe); }
.map-placeholder.map-blue span { background: var(--brand); }
.result-list, .event-list { display: grid; gap: 11px; }
.result-card { padding: 15px; border: 1px solid var(--border); border-radius: 17px; background: #fff; box-shadow: 0 5px 16px rgba(6,59,112,.05); }
.result-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.result-card-top h3 { margin: 6px 0 0; color: var(--ink); font-size: 1rem; }
.result-card-top > strong { flex: 0 0 auto; color: var(--brand); font-size: .86rem; }
.result-card p { margin: 8px 0 12px; color: var(--muted); font-size: .78rem; }
.result-status { display: inline-block; color: var(--muted); font-size: .68rem; font-weight: 850; letter-spacing: .03em; text-transform: uppercase; }
.result-status.is-open { color: var(--health); }
.card-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.card-actions button, .beach-card button, .help-card button { min-height: 38px; padding: 8px 12px; border: 0; border-radius: 10px; color: #fff; background: var(--brand); font-size: .74rem; font-weight: 850; }
.empty-inline { padding: 24px 16px; border: 1px dashed var(--border); border-radius: 15px; color: var(--muted); background: var(--soft); text-align: center; }
.business-results { display: grid; gap: 13px; margin-top: 15px; }
.business-loading, .business-empty { padding: 30px 18px; border: 1px dashed var(--border); border-radius: 17px; color: var(--muted); background: var(--soft); text-align: center; }
.business-empty > span { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 12px; border-radius: 15px; color: #fff; background: var(--category-color, var(--services)); font-size: 1.3rem; font-weight: 900; }
.business-empty > span svg { width: 29px; height: 29px; }
.business-empty h2 { margin-bottom: 7px; color: var(--ink); }
.business-empty p { margin: 0; line-height: 1.5; }
.business-empty button { min-height: 42px; margin-top: 14px; padding: 8px 15px; border: 0; border-radius: 11px; color: #fff; background: var(--brand); font-weight: 800; }
.business-card { overflow: hidden; border: 1px solid var(--border); border-radius: 19px; background: #fff; box-shadow: 0 7px 20px rgba(6,59,112,.07); }
.business-card.plan-premium, .business-profile.plan-premium { border: 2px solid #d99a00; box-shadow: 0 9px 25px rgba(217,154,0,.2); }
.business-card.plan-plus, .business-profile.plan-plus { border: 2px solid #7a8a96; box-shadow: 0 9px 25px rgba(91,109,122,.15); }
.business-card.plan-destacado, .business-profile.plan-destacado { border: 2px solid #b56832; box-shadow: 0 9px 25px rgba(181,104,50,.15); }
.business-cover { display: block; overflow: hidden; width: 100%; padding: 0; border: 0; background: var(--soft); }
.business-cover img { display: block; width: 100%; max-height: 160px; aspect-ratio: 16 / 6; object-fit: cover; }
.business-card-body { padding: 17px; }
.business-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.business-heading .favorite-heart { margin-left: auto; }
.business-small-icon { display: grid; flex: 0 0 44px; place-items: center; width: 44px; height: 44px; border-radius: 13px; color: #fff; background: var(--category-color, var(--services)); font-size: 1.35rem; }
.business-small-icon svg { width: 27px; height: 27px; }
.plan-premium .business-small-icon { color: #795400; background: #fff0bd; }
.plan-plus .business-small-icon { color: #4f606c; background: #e8edf0; }
.plan-destacado .business-small-icon { color: #81441d; background: #f5e2d4; }
.business-featured { display: inline-block; margin-bottom: 4px; color: #bd6200; font-size: .7rem; font-weight: 900; letter-spacing: .055em; }
.plan-premium .business-featured { color: #9b6900; }
.plan-plus .business-featured { color: #536570; }
.plan-destacado .business-featured { color: #985124; }
.business-badges { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.business-new { display: inline-block; margin-bottom: 4px; padding: 3px 7px; border-radius: 999px; color: #fff; background: var(--brand-light); font-size: .66rem; font-weight: 900; letter-spacing: .055em; }
.business-card h2 { margin-bottom: 7px; color: var(--ink); font-size: 1.18rem; }
.business-heading h2 { margin-bottom: 0; }
.business-name-button { padding: 0; border: 0; color: inherit; background: transparent; font-weight: 850; text-align: left; }
.business-card p { margin-bottom: 12px; color: var(--muted); font-size: .9rem; line-height: 1.5; }
.business-services { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 12px; }
.business-services span { padding: 5px 9px; border-radius: 999px; color: var(--brand); background: #edf5fc; font-size: .72rem; font-weight: 750; }
.business-card .business-address { margin-bottom: 12px; padding: 10px 11px; border-radius: 11px; color: var(--ink); background: var(--soft); font-size: .84rem; }
.business-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 2px 0 13px; }
.business-gallery a { overflow: hidden; border-radius: 9px; background: var(--soft); }
.business-gallery img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.business-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 13px; }
.business-action { display: grid; place-items: center; min-height: 44px; padding: 8px 10px; border-radius: 11px; color: #fff; background: var(--brand); font-size: .82rem; font-weight: 850; text-decoration: none; }
.business-action.whatsapp { background: #168c4f; }
.business-action.secondary { border: 1px solid var(--border); color: var(--brand); background: #fff; }
.business-action.maps { background: #c45d08; }
.business-detail-button { width: 100%; min-height: 43px; margin-top: 9px; border: 1px solid var(--brand); border-radius: 11px; color: var(--brand); background: #fff; font-size: .84rem; font-weight: 850; }
.business-no-contact { margin: 8px 0 0 !important; font-style: italic; }
.business-profile { overflow: hidden; border: 1px solid var(--border); border-radius: 20px; background: #fff; box-shadow: 0 9px 28px rgba(6,59,112,.1); }
.business-profile-cover-wrap { display: flex; align-items: center; justify-content: center; width: 100%; max-height: 420px; overflow: hidden; background: #f5f8fa; }
.business-profile-cover { display: block; width: auto; max-width: 100%; height: auto; max-height: 420px; object-fit: contain; }
.business-profile-title { display: grid; place-items: center; min-height: 105px; color: #fff; background: var(--category-color, var(--services)); font-size: 2rem; }
.business-profile-title svg { width: 48px; height: 48px; }
.business-profile-body { padding: 20px 17px; }
.business-profile-body h1 { margin: 4px 0 13px; font-size: 1.7rem; }
.business-profile-description { color: var(--muted); font-size: 1rem !important; line-height: 1.65 !important; white-space: pre-line; }
.business-profile-section { margin-top: 20px; }
.business-profile-section h2 { margin-bottom: 9px; color: var(--brand); }
.business-specifications { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.business-specification { padding:11px; border-radius:11px; background:var(--soft); }
.business-specification small { display:block; color:var(--muted); font-size:.72rem; }
.business-specification strong { display:block; margin-top:3px; color:var(--ink); font-size:.94rem; overflow-wrap:anywhere; }
.business-price { margin:8px 0 11px; color:var(--brand)!important; font-size:1.08rem!important; font-weight:850; }
.business-filter-panel { margin: 0 0 16px; padding: 15px; border: 1px solid var(--border); border-radius: 17px; background: #f7fafc; box-shadow: 0 5px 16px rgba(6,59,112,.06); }
.business-filter-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.business-filter-heading strong { display: block; color: var(--brand); font-size: 1rem; }
.business-filter-heading small { display: block; margin-top: 2px; color: var(--muted); font-size: .76rem; }
.business-filter-heading button, .business-empty [data-business-filter-reset] { min-height: 36px; padding: 7px 11px; border: 1px solid #b9cad7; border-radius: 10px; color: var(--brand); background: #fff; font-size: .8rem; font-weight: 800; }
.business-filter-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.business-filter-grid label { display: grid; gap: 5px; color: var(--ink); font-size: .76rem; font-weight: 800; }
.business-filter-grid input, .business-filter-grid select { width: 100%; min-width: 0; min-height: 42px; padding: 8px 9px; border: 1px solid #cbd8e1; border-radius: 10px; color: var(--ink); background: #fff; font-size: .86rem; }
.business-sort-field { grid-column: 1 / -1; }
.business-filter-apply { width: 100%; min-height: 46px; margin-top: 12px; border: 0; border-radius: 12px; color: #fff; background: var(--brand); font-size: .95rem; font-weight: 850; box-shadow: 0 5px 12px rgba(6,59,112,.16); }
.business-filter-count { margin: 0 0 9px!important; color: var(--muted)!important; font-size: .82rem!important; font-weight: 750; }
@media (max-width: 370px) { .business-filter-grid { grid-template-columns: 1fr; } .business-sort-field { grid-column: auto; } }
.business-profile-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.business-profile-gallery a { overflow: hidden; border-radius: 11px; background: var(--soft); }
.business-profile-gallery img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.business-profile-actions { margin-top: 22px; }
.weather-now { display: flex; justify-content: space-between; align-items: center; padding: 22px; border-radius: 20px; color: #fff; background: linear-gradient(140deg, #008bc4, #00a9e8); }
.weather-now span { font-size: .76rem; }
.weather-now strong { display: block; margin: 4px 0 0; font-size: 3.35rem; line-height: 1; }
.weather-now p { margin: 7px 0 0; }
.weather-now .weather-sun { font-size: 4rem; }
.weather-feature { position: relative; isolation: isolate; overflow: hidden; min-height: 235px; margin: 16px 0 18px; padding: 22px; border-radius: 24px; color: #fff; background: linear-gradient(135deg, #087dcc, #15b3e5); box-shadow: 0 14px 28px rgba(6,59,112,.16); }
.weather-hourly { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 225px; margin: 16px 0 14px; padding: 23px; border-radius: 24px; color: #fff; background: linear-gradient(140deg, #087dad, #12b7d9); box-shadow: 0 12px 24px rgba(6,59,112,.15); }
.weather-hourly-label { margin: 0 0 9px; font-size: .71rem; font-weight: 800; letter-spacing: .045em; }
.weather-hourly strong { display: block; font-size: clamp(4rem, 16vw, 6rem); letter-spacing: -.055em; line-height: 1; }
.weather-hourly p:last-child { margin: 10px 0 0; font-size: .94rem; }
.weather-hourly-caption { display: block; margin-top: 13px; font-size: .68rem; opacity: .93; }
.weather-hourly-icon { flex: 0 0 clamp(85px, 26vw, 130px); width: clamp(85px, 26vw, 130px); height: clamp(85px, 26vw, 130px); }
.weather-hours-section { margin: 18px 0 22px; }
.weather-section-title { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.weather-section-title h2 { margin: 0 0 12px; color: var(--ink); font-size: 1.1rem; }
.weather-section-title span { color: var(--muted); font-size: .7rem; white-space: nowrap; }
.weather-hours-track { display: flex; gap: 9px; overflow-x: auto; padding: 2px 2px 12px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.weather-hour-tile { display: flex; flex: 0 0 91px; flex-direction: column; align-items: center; gap: 5px; min-height: 142px; padding: 11px 6px; border: 1px solid var(--border); border-radius: 16px; background: #fff; box-shadow: 0 4px 14px rgba(6,59,112,.06); scroll-snap-align: start; }
.weather-hour-tile:first-child { border-color: #00a9e8; background: #e9f8fd; }
.weather-hour-tile small, .weather-hour-tile span { color: var(--muted); font-size: .7rem; }
.weather-hour-tile strong, .weather-hour-tile b { color: var(--ink); font-size: .86rem; }
.weather-tile-icon { width: 42px; height: 42px; color: #357b9f; }
.weather-feature::before { content: ""; position: absolute; z-index: -1; top: -85px; right: -50px; width: 245px; height: 245px; border-radius: 50%; background: rgba(255,255,255,.12); }
.weather-feature--sun { background: linear-gradient(140deg, #047cb6, #08a7d6 72%, #46c9de); }
.weather-feature--partly { background: linear-gradient(140deg, #176b9c, #1fa2c5); }
.weather-feature--cloud { background: linear-gradient(140deg, #375d80, #6a94ac); }
.weather-feature--rain, .weather-feature--snow { background: linear-gradient(140deg, #1b4d77, #4588ab); }
.weather-feature--night { background: linear-gradient(140deg, #0b2d55, #164f78 72%, #27739a); }
.weather-hour-tile.is-night { border-color: #c7d9e7; background: #f4f8fc; }
.weather-hour-tile:first-child.is-night { border-color: #2a6f9d; background: #eaf3fa; }
.weather-feature-eyebrow { margin: 0 0 18px; font-size: .7rem; font-weight: 850; letter-spacing: .09em; }
.weather-feature-content { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.weather-feature h1 { margin: 0 0 6px; font-size: clamp(1.4rem, 5vw, 2rem); line-height: 1.2; text-transform: capitalize; }
.weather-condition { margin: 0 0 18px; font-size: 1.15rem; }
.weather-feature-icon { width: clamp(90px, 28vw, 138px); height: clamp(90px, 28vw, 138px); flex-shrink: 0; filter: drop-shadow(0 6px 10px rgba(0,39,64,.16)); }
.weather-main-temps { display: flex; flex-wrap: wrap; gap: 10px; }
.weather-main-temps span { padding: 7px 10px; border: 1px solid rgba(255,255,255,.28); border-radius: 11px; background: rgba(255,255,255,.13); font-size: .78rem; white-space: nowrap; }
.weather-main-temps strong { font-size: 1.04rem; }
.weather-feature-updated { display: block; margin-top: 20px; font-size: .73rem; opacity: .95; }
.weather-info, .weather-upcoming { margin: 19px 0; }
.weather-info h2, .weather-upcoming h2 { margin: 0 0 12px; color: var(--ink); font-size: 1.1rem; }
.weather-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.weather-metric { display: flex; align-items: flex-start; gap: 11px; min-width: 0; min-height: 92px; padding: 15px 11px; border: 1px solid var(--border); border-radius: 17px; background: #fff; box-shadow: 0 6px 17px rgba(6,59,112,.05); }
.weather-metric-icon { display: grid; flex: 0 0 29px; place-items: center; width: 29px; height: 29px; border-radius: 10px; color: #087cac; background: #e8f7fc; font-size: 1rem; }
.weather-metric-label { display: block; margin-bottom: 5px; color: var(--muted); font-size: .74rem; }
.weather-metric strong { display: block; color: var(--ink); font-size: .95rem; line-height: 1.25; }
.weather-metric small { display: block; margin-top: 5px; color: var(--muted); font-size: .67rem; line-height: 1.35; }
.weather-days { overflow: hidden; border: 1px solid var(--border); border-radius: 18px; background: #fff; }
.weather-day { display: flex; align-items: center; gap: 11px; min-height: 71px; padding: 10px 14px; border-bottom: 1px solid var(--border); }
.weather-day:last-child { border-bottom: none; }
.weather-day-icon { display: grid; flex: 0 0 42px; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: #467f9f; }
.weather-day-icon svg { width: 34px; height: 34px; }
.weather-day-main { flex: 1; min-width: 0; }
.weather-day-main strong { display: block; color: var(--ink); font-size: .88rem; text-transform: capitalize; }
.weather-day-main small { display: block; overflow: hidden; color: var(--muted); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.weather-day-temp { color: var(--ink); font-size: .92rem; font-weight: 800; text-align: right; white-space: nowrap; }
.weather-day-temp > span { color: var(--muted); }
.weather-day-temp small { display: block; color: #087cac; font-size: .7rem; }
.weather-disclaimer { margin: 18px 0 26px; padding: 13px 15px; border-radius: 13px; color: #51647a; background: #f1f6fa; font-size: .75rem; line-height: 1.55; }
@media(max-width:370px) { .weather-feature { padding: 19px 16px; } .weather-feature-icon { width: 82px; height: 82px; } .weather-metric { gap: 6px; padding: 12px 8px; } .weather-metric-icon { flex-basis: 24px; width: 24px; } }
@media(max-width:370px) { .weather-hourly { padding: 17px; } .weather-hourly-icon { flex-basis: 79px; width: 79px; height: 79px; } .weather-hourly strong { font-size: 4rem; } }
.metric-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 12px 0 22px; }
.metric-grid div { padding: 14px; border: 1px solid var(--border); border-radius: 15px; background: #fff; }
.metric-grid span, .hour-strip span { display: block; margin-bottom: 5px; color: var(--muted); font-size: .7rem; }
.metric-grid strong { font-size: .92rem; }
.content-section { margin: 22px 0; }
.content-section h2 { margin-bottom: 10px; }
.hour-strip { display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; border: 1px solid var(--border); border-radius: 16px; }
.hour-strip div { padding: 13px 7px; border-right: 1px solid var(--border); text-align: center; }
.hour-strip div:last-child { border-right: 0; }
.coast-card { padding: 16px; border-radius: 17px; color: #087d83; background: #e9fbfb; }
.coast-card > div { display: flex; gap: 13px; align-items: center; }
.coast-card > div > span { font-size: 2rem; }
.coast-card strong, .coast-card small { display: block; }
.coast-card small { margin-top: 4px; color: var(--muted); line-height: 1.4; }
.toolbar-line { display: flex; justify-content: space-between; align-items: center; margin: 18px 0 10px; }
.toolbar-line select { min-height: 38px; padding: 6px 30px 6px 10px; border: 1px solid var(--border); border-radius: 10px; color: var(--ink); background: #fff; }
.rank { display: inline-grid; place-items: center; width: 24px; height: 24px; float: left; margin-right: 8px; border-radius: 8px; color: #fff; background: var(--business); font-size: .72rem; font-weight: 900; }
.fuel-card h3 { padding-top: 3px; }
.calculator-card { margin-top: 18px; padding: 18px; border-radius: 18px; color: #fff; background: linear-gradient(140deg, #d9550b, var(--business)); }
.calculator-card h2 { margin-bottom: 14px; }
.calculator-card label { display: block; margin-bottom: 7px; font-size: .78rem; }
.calculator-line { display: flex; align-items: center; gap: 9px; }
.calculator-line input { width: 110px; min-height: 45px; padding: 8px 10px; border: 0; border-radius: 11px; font-size: 1rem; }
.calculator-card p { margin: 14px 0 0; }
.date-card { display: grid; grid-template-columns: auto 1fr; gap: 1px 12px; align-items: center; margin: 18px 0 2px; padding: 15px; border-radius: 16px; color: #6b5000; background: #fff6d8; }
.date-card > span { grid-row: 1 / 3; padding: 9px; border-radius: 10px; color: #fff; background: #b78000; font-size: .7rem; font-weight: 900; }
.date-card strong, .date-card small { display: block; }
.date-card small { color: var(--muted); }
.event-card { display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; padding: 14px; border: 1px solid var(--border); border-radius: 17px; background: #fff; }
.event-time { min-width: 54px; padding: 10px 6px; border-radius: 11px; color: #725500; background: #fff2c3; font-size: .76rem; font-weight: 900; text-align: center; }
.event-card span { color: #8a6900; font-size: .66rem; font-weight: 850; text-transform: uppercase; }
.event-card h3 { margin: 3px 0; font-size: .95rem; }
.event-card p { margin: 0; color: var(--muted); font-size: .72rem; }
.event-card > button { width: 36px; height: 36px; border: 0; border-radius: 50%; color: var(--brand); background: var(--soft); font-size: 1.4rem; }
.category-list, .more-list { display: grid; gap: 12px; margin-top: 18px; }
.category-list button, .more-list > button { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; width: 100%; min-height: 78px; padding: 13px 14px; border: 1px solid #dce7f0; border-radius: 17px; color: var(--ink); background: #fff; text-align: left; box-shadow: 0 8px 20px rgba(7,47,87,.045); }
.category-list button > span, .more-icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 15px; color: #fff; font-weight: 900; font-size: 1.34rem; }
.category-list .category-list-icon svg { width: 31px; height: 31px; }
.more-icon svg { width: 31px; height: 31px; }
.more-icon.has-custom-image { padding: 0; overflow: hidden; }
.more-icon.has-custom-image .custom-item-icon { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.category-list button > b, .more-list button > b { color: var(--muted); font-size: 1.2rem; }
.directory-advertise { display: flex; gap: 14px; align-items: center; justify-content: space-between; margin-top: 18px; padding: 16px; border: 1px solid #ffd8be; border-radius: 17px; background: #fff8f3; }
.directory-advertise-top { margin: 14px 0 4px; }
.directory-advertise strong { color: var(--ink); }
.directory-advertise p { margin: 4px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.4; }
.directory-advertise button { flex: 0 0 auto; min-height: 42px; padding: 8px 14px; border: 0; border-radius: 11px; color: #fff; background: var(--business); font-weight: 900; }
.weather-retry { margin-top: 16px; padding: 18px; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
.weather-retry h2 { margin-top: 0; }
.weather-retry p { color: var(--muted); line-height: 1.5; }
.weather-retry button { min-height: 42px; padding: 9px 14px; border: 0; border-radius: 8px; color: #fff; background: var(--brand-light); font-weight: 850; }
@media (max-width: 430px) {
  .directory-hero { grid-template-columns: minmax(0,1fr) minmax(120px,.75fr); padding: 17px; gap: 11px; }
  .directory-featured { padding: 10px; }
  .directory-featured.has-business { min-height: 105px; }
}
.more-list strong, .more-list small { display: block; }
.more-list small { margin-top: 4px; color: var(--muted); font-size: .82rem; }
.more-list strong { font-size: 1.06rem; }
.more-icon.orange { color: #f36b12; background: #fff1e8; }
.more-icon.blue { color: var(--brand); background: #edf7ff; }
.more-icon.teal { color: var(--beaches); background: #e8fbfb; }
.more-icon.yellow { color: #e5a900; background: #fff7df; }
.more-icon.red { color: #cf2e5d; background: #fff0f5; }
.sponsored-preview, .help-card { margin-top: 20px; padding: 18px; border: 2px solid #ffd8be; border-radius: 18px; background: #fff8f3; }
.sponsored-preview > span, .help-card > span { color: var(--business); font-size: .68rem; font-weight: 900; letter-spacing: .06em; }
.sponsored-preview h2, .help-card h2 { margin: 8px 0 6px; }
.sponsored-preview p, .help-card p { color: var(--muted); font-size: .82rem; line-height: 1.45; }
.beach-card { display: grid; grid-template-columns: 86px 1fr; gap: 14px; overflow: hidden; border: 1px solid var(--border); border-radius: 17px; background: #fff; }
.beach-visual { display: grid; place-items: center; min-height: 146px; color: #fff; background: linear-gradient(160deg, #00b8b2, #087ec0); font-size: 2.5rem; }
.beach-card > div:last-child { padding: 14px 14px 14px 0; }
.beach-card span { color: var(--beaches); font-size: .65rem; font-weight: 850; text-transform: uppercase; }
.beach-card h3 { margin: 5px 0; }
.beach-card p { margin: 0 0 10px; color: var(--muted); font-size: .75rem; line-height: 1.4; }
.step-list { display: grid; gap: 9px; margin-top: 18px; }
.step-list div { display: flex; gap: 12px; align-items: center; min-height: 58px; padding: 10px 13px; border: 1px solid var(--border); border-radius: 14px; }
.step-list span { display: grid; flex: 0 0 32px; place-items: center; width: 32px; height: 32px; border-radius: 10px; color: #fff; background: var(--procedures); font-weight: 900; }
.benefit-list { display: grid; gap: 9px; margin: 18px 0; }
.benefit-list > div { display: flex; gap: 11px; padding: 13px; border-radius: 14px; background: #fff7f1; }
.benefit-list > div > span { display: grid; flex: 0 0 28px; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #fff; background: var(--business); font-weight: 900; }
.benefit-list p { margin: 0; }
.benefit-list strong, .benefit-list small { display: block; }
.benefit-list small { margin-top: 3px; color: var(--muted); }
.lead-form { display: grid; gap: 14px; }
.lead-form > label { color: var(--ink); font-size: .79rem; font-weight: 800; }
.lead-form input, .lead-form select, .lead-form textarea { width: 100%; min-height: 48px; margin-top: 6px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 12px; outline: 0; color: var(--ink); background: #fff; font-size: 1rem; font-weight: 400; }
.lead-form textarea { resize: vertical; }
.lead-form input:focus, .lead-form select:focus, .lead-form textarea:focus { border-color: var(--business); box-shadow: 0 0 0 4px rgba(243,107,18,.1); }
.lead-form .field-help { display: block; margin-top: 5px; color: var(--muted); font-size: .75rem; font-weight: 500; }
.lead-form .check-line { display: flex; gap: 9px; align-items: flex-start; font-weight: 500; line-height: 1.4; }
.lead-form .check-line input { flex: 0 0 20px; width: 20px; min-height: 20px; margin: 0; }
.primary-action { width: 100%; min-height: 48px; padding: 10px 14px; border: 0; border-radius: 12px; color: #fff; background: var(--brand); font-weight: 850; }
.lead-form .primary-action { background: var(--more-accent, var(--business)); }
.more-page-copy { margin-top: 18px; padding: 18px; border: 1px solid var(--border); border-radius: 17px; background: #fff; box-shadow: 0 8px 20px rgba(7,47,87,.045); }
.more-page-copy p { margin: 0; color: var(--muted); line-height: 1.65; }
.more-page-copy .primary-action, .more-page-action { display: grid; place-items: center; margin-top: 16px; text-decoration: none; background: var(--more-accent, var(--brand)); }
.form-footnote { margin: -3px 0 0; color: var(--muted); font-size: .72rem; text-align: center; }
.success-panel, .client-preview { margin-top: 20px; padding: 28px 20px; border-radius: 20px; background: var(--soft); text-align: center; }
.success-panel > span, .client-preview > span { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 13px; border-radius: 16px; color: #fff; background: var(--health); font-size: 1.4rem; font-weight: 900; }
.client-preview > span { background: var(--brand); }
.success-panel h2, .client-preview h2 { margin-bottom: 7px; }
.success-panel p, .client-preview p { color: var(--muted); line-height: 1.5; }
.client-preview small { display: block; margin-top: 10px; color: var(--muted); line-height: 1.4; }
@media (max-width: 370px) {
  .weather-now { padding: 18px; }
  .weather-now .weather-sun { font-size: 3.2rem; }
  .event-card { grid-template-columns: auto 1fr; }
  .event-card > button { display: none; }
  .beach-card { grid-template-columns: 72px 1fr; }
}

/* Selector de ciudad y páginas de próxima apertura */
.city-selector { position: relative; }
.city-chevron { margin-left: 1px; font-size: .9rem; transition: transform .15s ease; }
.location-pill[aria-expanded="true"] .city-chevron { transform: rotate(180deg); }
.city-menu { position: absolute; top: calc(100% + 9px); right: 0; z-index: 50; width: min(250px, calc(100vw - 36px)); padding: 7px; border: 1px solid var(--border); border-radius: 16px; background: #fff; box-shadow: 0 18px 48px rgba(6,59,112,.2); }
.city-menu[hidden] { display: none; }
.city-menu button { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 48px; padding: 9px 10px; border: 0; border-radius: 11px; color: var(--ink); background: transparent; text-align: left; }
.city-menu button:hover, .city-menu button:focus-visible, .city-menu button.selected { background: #edf6fc; }
.city-menu button span { font-weight: 800; }
.city-menu button small { margin-left: 12px; color: var(--muted); font-size: .7rem; }
.city-menu button.selected small { color: var(--brand); font-weight: 800; }
.city-coming-view { display: grid; min-height: calc(100dvh - 148px); place-items: center; }
.city-coming-view[hidden] { display: none; }
.coming-city-card { width: 100%; padding: 30px 20px; border: 1px solid var(--border); border-radius: 24px; background: linear-gradient(160deg, #fff 55%, #eff8fe); box-shadow: 0 12px 36px rgba(6,59,112,.08); text-align: center; }
.coming-city-card img { display: block; width: min(100%, 440px); height: auto; margin: 0 auto 24px; }
.coming-city-card .eyebrow { margin-bottom: 13px; }
.coming-badge { display: inline-block; margin-bottom: 18px; padding: 10px 18px; transform: rotate(-2deg); border-radius: 12px; color: #fff; background: var(--sun); box-shadow: 0 7px 18px rgba(245,163,0,.24); font-size: clamp(1.2rem, 6vw, 1.65rem); font-weight: 950; letter-spacing: .08em; }
.coming-city-card h1 { margin-bottom: 9px; font-size: clamp(1.65rem, 7vw, 2.15rem); }
.coming-city-card > p:not(.eyebrow) { max-width: 390px; margin: 0 auto 22px; color: var(--muted); line-height: 1.55; }
.coming-city-card button { min-height: 46px; padding: 10px 16px; border: 0; border-radius: 12px; color: #fff; background: var(--brand); font-weight: 850; }
.bottom-nav[hidden] { display: none; }
.place-card { margin: 11px 0; padding: 16px; border: 1px solid var(--border); border-radius: 16px; background: #fff; }
.place-card strong { font-size: 1.05rem; }
.place-card .place-name-button { font-size: 1.05rem; }
.place-card p { margin: 8px 0; color: var(--muted); }
.place-card small { display: block; margin: 6px 0; color: var(--muted); }
small.place-distance { display: block; width: fit-content; margin: 7px 0; padding: 6px 9px; border-radius: 9px; color: #065477; background: #e7f6fb; font-size: .86rem; font-weight: 900; line-height: 1.25; }
.place-location-tools { margin: 12px 0 16px; }
.place-location-tools p { margin: 4px 0 12px; color: var(--muted); font-size: .77rem; line-height: 1.4; }
.place-nearby:disabled { cursor: wait; opacity: .65; }
.place-ad, .place-guard { display: inline-block; margin: 5px 4px 0 0; padding: 4px 8px; border-radius: 8px; font-size: .76rem; font-weight: 800; }
.place-ad { background: #fff2d7; color: #71440a; }
.place-guard { background: #e5f6ed; color: #075c36; }
.place-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 12px; }
.place-actions a, .place-actions button, .place-nearby { min-height: 44px; padding: 10px 14px; border: 1px solid var(--brand); border-radius: 10px; color: var(--brand); background: #fff; font: inherit; font-weight: 800; text-decoration: none; }
.place-actions a { color: #fff; background: var(--brand); }
.place-actions a.place-whatsapp { border-color: #11794a; background: #11794a; }
.place-nearby { margin: 10px 0; }
.fuel-prices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 12px 0 4px; }
.fuel-prices > span { padding: 10px; border-radius: 12px; color: #713300; background: #fff1e5; }
.fuel-prices small, .fuel-prices strong { display: block; margin: 0; }
.fuel-prices strong { margin-top: 3px; font-size: 1rem; }
.fuel-prices.is-compact { max-width: 360px; }
.data-updated { color: var(--muted); font-size: .68rem !important; font-weight: 500; }
.fuel-cheapest { margin: 15px 0; padding: 15px; border-radius: 17px; background: linear-gradient(135deg,#fff1e5,#fffaf5); border: 1px solid #ffd1ad; }
.fuel-cheapest h2 { margin: 0 0 10px; font-size: 1.08rem; }
.fuel-cheapest > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.fuel-cheapest button { padding: 13px; border: 1px solid #f36b12; border-radius: 12px; color: #713300; background: #fff; text-align: left; }
.fuel-cheapest button small,.fuel-cheapest button strong,.fuel-cheapest button span { display:block; }
.fuel-cheapest button small { font-size: .82rem; font-weight: 850; }
.fuel-cheapest button strong { margin: 5px 0; font-size: 1.28rem; }
.fuel-cheapest button span { overflow:hidden; font-size:.88rem; font-weight: 800; line-height: 1.25; text-overflow:ellipsis; white-space:nowrap; }
.fuel-sort { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 12px 0 16px; padding: 13px; border: 1px solid #ffd1ad; border-radius: 12px; background: #fffaf5; }
.fuel-sort label { color: #713300; font-size: .94rem; font-weight: 900; }
.fuel-sort select { min-width: 220px; min-height: 46px; padding: 9px 12px; border: 1px solid #e6a16e; border-radius: 9px; color: var(--ink); background: #fff; font-size: .96rem; font-weight: 850; }
.beach-list-card { overflow: hidden; padding: 0; }
.beach-list-card .place-card-body { padding: 16px; }
.beach-list-photo { display: block; width: 100%; height: 155px; padding: 0; border: 0; background: #eef5f7; overflow: hidden; }
.beach-list-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.beach-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin: 12px 0 4px; }
.beach-summary > div { display: flex; min-width: 0; min-height: 64px; padding: 9px 7px; border: 1px solid #dbe7eb; border-radius: 10px; align-items: center; justify-content: center; gap: 6px; color: #173848; background: #f7fafb; text-align: center; }
.beach-summary > div > strong { font-size: .78rem; line-height: 1.25; }
.beach-summary > div > span:not(.beach-flag) { color: #087d83; font-size: 1rem; }
.beach-status-line .beach-flag { color: var(--flag-color); font-size: 1.65rem; line-height: 1; text-shadow: 0 1px 1px rgba(0,0,0,.12); }
.beach-services { display:flex; flex-wrap:wrap; gap:7px; }
.beach-services span { padding:7px 9px; border-radius:9px; color:#075e62; background:#e8fafa; font-size:.78rem; font-weight:800; }
.coming-city .app-shell { padding-bottom: env(safe-area-inset-bottom); }
@media (max-width: 370px) {
  .city-selector .location-pill { max-width: 140px; }
  #city-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .coming-city-card { padding: 24px 15px; }
}
@media (max-width: 430px) {
  .contact-row { flex-wrap: wrap; }
  .contact-actions { width: 100%; justify-content: flex-start; }
  .fuel-cheapest > div { grid-template-columns: 1fr; }
  .fuel-sort { align-items: stretch; flex-direction: column; }
  .fuel-sort select { width: 100%; min-width: 0; }
  .beach-summary { grid-template-columns: 1fr; }
  .beach-summary > div { min-height: 44px; justify-content: flex-start; padding: 8px 10px; text-align: left; }
}
.lead-form[hidden]{display:none!important}

/* v67: mejora de contraste en tarjeta meteorológica nocturna */
.weather-feature--night h1 { color: #fff; }

/* v71: tiempo móvil revisado de forma conjunta: cabecera, horas, métricas y próximos días */
.weather-feature-copy { flex: 1 1 auto; min-width: 0; }
.weather-feature-now { display: flex; flex: 0 0 auto; align-items: center; justify-content: flex-end; gap: 2px; margin-left: auto; }
.weather-feature-current { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-end; min-width: 74px; transform: translateX(18px); }
.weather-feature-current strong { color: #fff; font-size: clamp(3.55rem, 14vw, 4.7rem); line-height: .88; letter-spacing: -.045em; }
.weather-feature-now .weather-feature-icon { width: clamp(112px, 30vw, 148px); height: clamp(112px, 30vw, 148px); }
.weather-feature--night.weather-feature--sun .weather-feature-now .weather-feature-icon { filter: brightness(0) invert(1) drop-shadow(0 6px 10px rgba(0,39,64,.16)); }
.weather-main-temps span { padding: 9px 12px; font-size: .92rem; }
.weather-main-temps strong { font-size: 1.2rem; }
.weather-feature .weather-feature-updated { margin-top: 16px; font-size: .86rem; line-height: 1.45; }

.weather-section-title h2 { font-size: 1.32rem; }
.weather-section-title span { font-size: .84rem; }
.weather-hours-track { gap: 10px; }
.weather-hour-tile { flex-basis: 112px; min-height: 174px; padding: 14px 8px; gap: 7px; }
.weather-hour-tile small { font-size: .88rem; }
.weather-hour-tile strong { font-size: 1.18rem; }
.weather-hour-tile b { font-size: 1.2rem; }
.weather-hour-tile span { font-size: .9rem; }
.weather-tile-icon { width: 56px; height: 56px; }

.weather-info h2, .weather-upcoming h2 { font-size: 1.32rem; }
.weather-metric { min-height: 108px; padding: 17px 13px; gap: 12px; }
.weather-metric-icon { flex-basis: 35px; width: 35px; height: 35px; font-size: 1.15rem; }
.weather-metric-label { margin-bottom: 6px; font-size: .9rem; line-height: 1.25; }
.weather-metric strong { font-size: 1.16rem; line-height: 1.25; }
.weather-metric small { margin-top: 6px; font-size: .82rem; line-height: 1.4; }

.weather-day { min-height: 86px; padding: 13px 14px; gap: 12px; }
.weather-day-icon { flex-basis: 50px; width: 50px; height: 50px; }
.weather-day-icon svg { width: 41px; height: 41px; }
.weather-day-main strong { font-size: 1.08rem; }
.weather-day-main small { font-size: .88rem; }
.weather-day-temp { font-size: 1.17rem; }
.weather-day-temp small { font-size: .86rem; }
.weather-disclaimer { font-size: .86rem; }

@media(max-width:430px) {
  .weather-feature { min-height: 0; }
  .weather-feature-content { align-items: center; }
  .weather-feature-now { gap: 0; margin-left: auto; margin-right: -2px; }
  .weather-feature-current { min-width: 72px; transform: translateX(22px); }
  .weather-feature-current strong { font-size: clamp(3.55rem, 14.5vw, 4.45rem); }
  .weather-feature-now .weather-feature-icon { width: 116px; height: 116px; }
}
@media(max-width:370px) {
  .weather-feature-current { min-width: 66px; transform: translateX(14px); }
  .weather-feature-current strong { font-size: 3.2rem; }
  .weather-feature-now .weather-feature-icon { width: 102px; height: 102px; }
  .weather-hour-tile { flex-basis: 108px; }
  .weather-hour-tile small { font-size: .84rem; }
  .weather-hour-tile strong, .weather-hour-tile b { font-size: 1.12rem; }
  .weather-hour-tile span { font-size: .86rem; }
}

/* v73 · Formulario de negocio gratuito */
.lead-form .free-photo-field input[type="file"] { min-height: 0; padding: 12px; background: #fff; }
.lead-form .free-photo-field input[type="file"]::file-selector-button { margin-right: 10px; padding: 9px 12px; border: 0; border-radius: 9px; background: var(--soft); color: var(--ink); font-weight: 800; cursor: pointer; }
.lead-form .free-photo-summary { display: block; margin-top: 6px; color: var(--brand); font-size: .78rem; font-weight: 700; }


/* v74 · formulario gratuito dinámico por categoría */
.free-category-picker{display:grid;gap:12px;padding:16px;border:1px solid #d9e4ee;border-radius:18px;background:#f8fbfd}
.free-category-picker label,.free-listing-dynamic label{min-width:0}
.free-template-hint{margin:0;color:#587083;font-size:.92rem;line-height:1.4}
.free-template-intro{grid-column:1/-1;display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;background:#eef7fb;color:#0b3557}
.free-template-intro strong{font-size:1.05rem}.free-template-intro small{font-size:.9rem;line-height:1.4;color:#587083}
.free-check-field{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;padding:12px 14px;border:1px solid #d9e4ee;border-radius:14px}
.free-check-control{display:inline-flex;align-items:center;gap:6px;font-weight:700}
.free-check-field .field-help{flex-basis:100%}

/* v77 · referencias y promoción de anuncios */
.free-picker-label { display: block; margin-bottom: 2px; color: var(--ink); font-size: .9rem; font-weight: 850; line-height: 1.25; }
.listing-reference { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; margin: -2px 0 14px; padding: 10px 12px; border: 1px solid #d9e4ee; border-radius: 12px; background: #f8fbfd; color: #486277; font-size: .9rem; }
.listing-reference strong { color: var(--ink); letter-spacing: .02em; }
.listing-reference button { min-height: 34px; padding: 6px 10px; border: 1px solid #c8d8e4; border-radius: 9px; background: #fff; color: var(--brand); font: inherit; font-size: .82rem; font-weight: 800; cursor: pointer; }
.promotion-intro { margin: 0 0 2px; padding: 12px 14px; border-radius: 14px; background: #fff8e9; color: #5e4a20; font-size: .92rem; line-height: 1.5; }
.promotion-form > label { color: var(--ink); font-size: .82rem; font-weight: 800; }
@media(max-width:430px) {
  .listing-reference { align-items: stretch; }
  .listing-reference button { width: 100%; }
}

/* v81: icono de Más más visible y equilibrado */
.bottom-nav button[data-nav="more"] .bottom-nav-brand-icon {
  width: 32px;
  height: 32px;
  border-radius: 9px;
}
.bottom-nav button[data-nav="more"] .bottom-nav-brand-icon img {
  object-fit: cover;
  transform: scale(1.12);
  transform-origin: center;
}


/* v82: selector relacionado Categoría / Subcategoría en Destaca tu negocio */
.advertise-category-picker{display:grid;gap:12px;padding:16px;border:1px solid #d9e4ee;border-radius:18px;background:#f8fbfd}
.advertise-category-picker label{min-width:0;color:var(--ink);font-size:.79rem;font-weight:800}
.advertise-category-picker .field-help{margin-top:-3px}


/* v83: tarjeta principal del tiempo más compacta y equilibrada en móvil */
.weather-feature-content {
  align-items: flex-start;
}
.weather-feature-now {
  display: flex;
  flex: 0 0 clamp(122px, 33vw, 158px);
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 1px;
  margin: -8px 0 0 auto;
}
.weather-feature-current {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  transform: none;
}
.weather-feature-current strong {
  color: #fff;
  font-size: clamp(4rem, 16vw, 5.15rem);
  line-height: .88;
  letter-spacing: -.045em;
}
.weather-feature-now .weather-feature-icon {
  width: clamp(92px, 24vw, 120px);
  height: clamp(92px, 24vw, 120px);
}
.weather-main-temps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
  margin-top: 18px;
}
.weather-main-temps span {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 7px;
  min-width: 0;
  padding: 12px 10px;
  text-align: center;
}
.weather-feature .weather-feature-updated {
  margin-top: 18px;
}
@media(max-width:430px) {
  .weather-feature-content { align-items: flex-start; }
  .weather-feature-now { flex-basis: 126px; gap: 0; margin: -10px -2px 0 auto; }
  .weather-feature-current { min-width: 0; transform: none; }
  .weather-feature-current strong { font-size: clamp(4rem, 17vw, 4.8rem); }
  .weather-feature-now .weather-feature-icon { width: 96px; height: 96px; }
  .weather-main-temps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
  .weather-main-temps span { padding: 10px 7px; font-size: .86rem; }
  .weather-main-temps strong { font-size: 1.15rem; }
}
@media(max-width:370px) {
  .weather-feature-now { flex-basis: 112px; }
  .weather-feature-current { min-width: 0; transform: none; }
  .weather-feature-current strong { font-size: 3.65rem; }
  .weather-feature-now .weather-feature-icon { width: 86px; height: 86px; }
  .weather-main-temps span { gap: 5px; padding: 9px 5px; font-size: .79rem; }
  .weather-main-temps strong { font-size: 1.05rem; }
}


/* v84: hora actual, termómetros y símbolo CO sin recuadro */
.weather-feature-clock {
  display: block;
  margin-top: 9px;
  color: #fff;
  font-size: 1.08rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .025em;
}
.weather-main-temps span {
  align-items: center;
}
.weather-thermometer-svg {
  flex: 0 0 24px;
  width: 24px;
  height: 32px;
  display: block;
  margin-right: 1px;
}
.bottom-nav button[data-nav="more"] .bottom-nav-brand-icon {
  width: 44px;
  height: 30px;
  overflow: visible;
  border-radius: 0;
}
.bottom-nav button[data-nav="more"] .bottom-nav-brand-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: none;
}
@media(max-width:370px) {
  .bottom-nav button[data-nav="more"] .bottom-nav-brand-icon { width: 41px; height: 28px; }
  .weather-feature-clock { font-size: 1rem; }
  .weather-thermometer-svg { flex-basis: 21px; width: 21px; height: 29px; }
}

/* v85: hora más visible y centrada; termómetro mínimo azul marino */
.weather-feature-clock {
  width: 100%;
  margin-top: 13px;
  text-align: center;
  font-size: 1.34rem;
  font-weight: 900;
  letter-spacing: .035em;
}
@media(max-width:430px) {
  .weather-feature-clock {
    margin-top: 13px;
    font-size: 1.38rem;
  }
}
@media(max-width:370px) {
  .weather-feature-clock {
    font-size: 1.25rem;
  }
}

/* v86: hora alineada con temperatura actual; azul mínimo intermedio; CO limpio y mayor */
.weather-feature-clock {
  width: 100%;
  margin-top: 18px;
  text-align: center;
  font-size: 1.72rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .035em;
  transform: translate(-22px, 4px);
}
.bottom-nav button[data-nav="more"] .bottom-nav-brand-icon {
  width: 52px;
  height: 30px;
  overflow: visible;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
}
.bottom-nav button[data-nav="more"] .bottom-nav-brand-icon img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  transform: none;
  background: transparent !important;
  box-shadow: none !important;
}
@media(max-width:430px) {
  .weather-feature-clock {
    margin-top: 18px;
    font-size: 1.72rem;
    transform: translate(-22px, 5px);
  }
  .bottom-nav button[data-nav="more"] .bottom-nav-brand-icon { width: 54px; height: 31px; }
}
@media(max-width:370px) {
  .weather-feature-clock {
    font-size: 1.55rem;
    transform: translate(-18px, 4px);
  }
  .bottom-nav button[data-nav="more"] .bottom-nav-brand-icon { width: 49px; height: 28px; }
}

/* v87: ajuste fino del icono CO de la barra inferior */
.bottom-nav button[data-nav="more"] .bottom-nav-brand-icon {
  width: 48px;
  height: 28px;
}
@media(max-width:430px) {
  .bottom-nav button[data-nav="more"] .bottom-nav-brand-icon { width: 50px; height: 29px; }
}
@media(max-width:370px) {
  .bottom-nav button[data-nav="more"] .bottom-nav-brand-icon { width: 46px; height: 27px; }
}

/* v88: icono CO equilibrado con Inicio/Buscar/Favoritos */
.bottom-nav button[data-nav="more"] .bottom-nav-brand-icon {
  width: 42px;
  height: 24px;
}
@media(max-width:430px) {
  .bottom-nav button[data-nav="more"] .bottom-nav-brand-icon { width: 43px; height: 25px; }
}
@media(max-width:370px) {
  .bottom-nav button[data-nav="more"] .bottom-nav-brand-icon { width: 40px; height: 23px; }
}


/* v92: cabecera superior más compacta para ganar altura útil en Inicio */
@media (max-width: 560px) {
  .app-header {
    min-height: 68px;
    padding-top: 8px;
    padding-bottom: 7px;
  }
}


/* v93 · Directorio comercial, anuncios y fichas definitivas */
.directory-result-section{margin:0 0 22px}.directory-result-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 0 11px}.directory-result-heading span{display:block;margin-bottom:2px;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.045em}.directory-result-heading h2{margin:0;color:var(--ink);font-size:1.16rem}.featured-business-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.featured-business-card{overflow:hidden;border:1px solid #e4c9b7;border-radius:17px;background:#fff;box-shadow:0 8px 20px rgba(103,63,33,.10)}.featured-business-image{display:grid;place-items:center;width:100%;height:112px;padding:0;border:0;background:#f6f8fa;overflow:hidden}.featured-business-image img{width:100%;height:100%;object-fit:cover}.business-image-placeholder{color:#fff;background:var(--category-color,var(--services))}.business-image-placeholder svg{width:38px;height:38px}.featured-business-body{padding:11px}.featured-business-top,.standard-business-head,.listing-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:7px}.featured-business-card .favorite-heart{flex-basis:32px;width:32px;height:32px;border-radius:10px;font-size:1.25rem}.featured-business-card h3,.listing-card h3,.standard-business-card h3{margin:5px 0 3px;color:var(--ink);font-size:.96rem;line-height:1.2}.featured-business-card h3 button,.listing-card h3 button,.standard-business-card h3 button{padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:850;text-align:left;cursor:pointer}.featured-business-specialty{margin:0 0 3px!important;color:#8b4d24!important;font-size:.74rem!important;font-weight:800}.featured-business-description{display:-webkit-box;overflow:hidden;margin:0 0 6px!important;color:var(--muted)!important;font-size:.76rem!important;line-height:1.35!important;-webkit-line-clamp:2;-webkit-box-orient:vertical}.featured-business-location{overflow:hidden;margin:0 0 8px!important;color:#5b6c79!important;font-size:.72rem!important;text-overflow:ellipsis;white-space:nowrap}.featured-business-open,.listing-card-open,.standard-business-open,.featured-listings-more{width:100%;min-height:38px;border:1px solid var(--brand);border-radius:10px;color:var(--brand);background:#fff;font-size:.78rem;font-weight:850}.promoted-listing-list,.regular-result-list{display:grid;gap:10px}.listing-card,.standard-business-card{display:grid;grid-template-columns:112px minmax(0,1fr);overflow:hidden;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:0 5px 16px rgba(6,59,112,.06)}.listing-card.is-promoted{border-color:#e8bb69;background:linear-gradient(135deg,#fffdf8,#fff)}.listing-card-image,.standard-business-image{display:grid;place-items:center;width:112px;height:100%;min-height:145px;padding:0;border:0;background:#eef3f7;overflow:hidden}.listing-card-image img,.standard-business-image img{width:100%;height:100%;object-fit:cover}.listing-card-body,.standard-business-body{min-width:0;padding:11px 12px}.listing-card .favorite-heart,.standard-business-card .favorite-heart{flex-basis:34px;width:34px;height:34px;border-radius:10px;font-size:1.3rem}.listing-promoted-badge{display:inline-flex;margin:0 5px 3px 0;padding:4px 7px;border-radius:999px;color:#7b5200;background:#fff0bd;font-size:.62rem;font-weight:900;letter-spacing:.04em}.listing-card-price{display:block;margin:4px 0 7px;color:var(--brand);font-size:1.08rem}.listing-card-specs{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 7px}.listing-card-specs span{padding:4px 6px;border-radius:7px;color:#40586d;background:#f0f5f8;font-size:.66rem;font-weight:750}.listing-card-meta{margin:0 0 8px!important;color:var(--muted)!important;font-size:.68rem!important;line-height:1.35!important}.listing-card-open,.standard-business-open{min-height:36px;font-size:.75rem}.standard-business-head>span{padding:3px 7px;border-radius:999px;color:var(--brand);background:#edf5fc;font-size:.62rem;font-weight:850}.standard-business-body>p{display:-webkit-box;overflow:hidden;margin:0 0 6px!important;color:var(--muted)!important;font-size:.78rem!important;line-height:1.35!important;-webkit-line-clamp:2;-webkit-box-orient:vertical}.standard-business-body>small{display:block;overflow:hidden;margin-bottom:8px;color:#5b6c79;text-overflow:ellipsis;white-space:nowrap}.featured-listings-more{margin-top:10px}.business-filter-panel{margin:0 0 20px}.business-profile{border-radius:20px}.featured-cover-wrap,.listing-cover-wrap{max-height:330px;background:#eef3f7}.featured-cover,.listing-cover{width:100%;height:clamp(190px,55vw,330px);max-height:none;object-fit:cover}.business-detail-title-row,.featured-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.business-detail-title-row>div:first-child,.featured-detail-title{min-width:0;flex:1}.business-detail-title-row h1,.featured-detail-title h1{margin:3px 0 6px}.business-detail-title-actions{display:flex;flex:0 0 auto;align-items:center;gap:6px}.business-share-button{display:grid;place-items:center;min-width:44px;height:44px;padding:4px 8px;border:1px solid #cad9e7;border-radius:13px;color:#425c78;background:#fff;font-size:1.05rem}.business-share-button span{font-size:.58rem;font-weight:800}.featured-detail-heading{align-items:center}.featured-detail-logo{flex:0 0 58px;width:58px;height:58px;border:1px solid var(--border);border-radius:15px;object-fit:contain;background:#fff}.featured-detail-title p{margin:0;color:var(--muted);font-size:.86rem}.listing-detail-price{display:block;color:var(--brand);font-size:1.42rem;line-height:1.1}.listing-detail-meta{margin:8px 0 14px;color:var(--muted);font-size:.82rem}.business-detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.business-detail-actions-top{margin:15px 0 2px}.business-detail-section{padding:18px 0;border-top:1px solid var(--border)}.business-detail-section h2{margin:0 0 9px;color:var(--brand);font-size:1.04rem}.business-detail-section p{margin:0 0 8px;line-height:1.55}.business-detail-copy{white-space:pre-line;color:#445b6e}.business-detail-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.business-detail-gallery a{overflow:hidden;border-radius:12px;background:#eef3f7}.business-detail-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.business-promotion-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;margin:18px 0;padding:14px;border:1px solid #f0ca7c;border-radius:16px;background:#fff9ec}.business-promotion-card>img{width:78px;height:78px;border-radius:12px;object-fit:cover}.business-promotion-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;color:#fff;background:#d58b00;font-size:1.25rem;font-weight:900}.business-promotion-card small{color:#926000;font-size:.68rem;font-weight:900;letter-spacing:.05em}.business-promotion-card h2{margin:3px 0 5px;color:#5f4300;font-size:1.05rem}.business-promotion-card p{margin:0 0 5px;color:#5e4a20;line-height:1.45}.business-promotion-terms{font-size:.72rem!important;opacity:.82}.business-promotion-card a,.business-location-button,.business-social-links a{display:inline-block;margin-top:4px;color:var(--brand);font-weight:850}.business-social-links{display:flex;flex-wrap:wrap;gap:8px}.business-social-links a{margin:0;padding:8px 10px;border:1px solid var(--border);border-radius:10px;text-decoration:none}.business-detail-bottom-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.listing-privacy-note{display:block;margin-top:7px;color:var(--muted);font-size:.76rem}.featured-business-profile.plan-normal{border:1px solid var(--border);box-shadow:0 9px 28px rgba(6,59,112,.1)}
@media(max-width:370px){.featured-business-grid{gap:7px}.featured-business-image{height:100px}.featured-business-body{padding:9px}.listing-card,.standard-business-card{grid-template-columns:98px minmax(0,1fr)}.listing-card-image,.standard-business-image{width:98px}.business-detail-title-row{flex-direction:column}.business-detail-title-actions{width:100%}}

/* v93.1 · remates de fichas flexibles y CTA de publicación */
.directory-publish-free{flex:0 0 auto;min-height:34px;padding:6px 10px;border:1px solid var(--brand);border-radius:10px;color:var(--brand);background:#fff;font-size:.72rem;font-weight:850;white-space:nowrap}.standard-business-profile{border:1px solid var(--border);box-shadow:0 7px 22px rgba(6,59,112,.07)}.standard-cover-wrap{max-height:280px;background:#eef3f7}.standard-cover{width:100%;height:clamp(180px,50vw,280px);object-fit:cover}@media(max-width:370px){.directory-result-heading{align-items:flex-start}.directory-publish-free{font-size:.68rem;padding:5px 8px}}

/* v96: proximidad, fichas completas y datos restaurados */
.business-distance-inline{color:#557086;font-weight:800;white-space:nowrap}.business-distance-detail{display:block;margin:-2px 0 9px;color:#557086;font-size:.78rem;font-weight:800}.business-sort-only{padding:12px 14px}.business-sort-only .business-filter-grid{grid-template-columns:minmax(0,1fr)}.business-sort-only .business-filter-heading{margin-bottom:8px}.pharmacy-advertise{margin:0 0 18px}.pharmacy-advertise button{white-space:nowrap}

/* v96 — restaura información útil en tarjetas sin duplicar datos en la ficha */
.business-card-services{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}.business-card-services span{padding:3px 6px;border-radius:999px;color:#466078;background:#eef5fa;font-size:.62rem;font-weight:750;line-height:1.2}.business-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0 0 8px}.business-card-actions .business-action{min-height:32px;padding:6px 7px;border-radius:9px;font-size:.68rem}.business-contact-actions{margin:0}.business-contact-extra{margin-top:10px;padding-top:9px;border-top:1px dashed #d8e2ea}.business-contact-extra p{margin:0 0 7px!important;color:#455d70;font-size:.82rem}.business-contact-extra p:last-child{margin-bottom:0!important}.business-distance-inline{font-weight:750;color:#4d6b84}.business-distance-detail{display:block;margin:3px 0 8px;color:#4d6b84;font-weight:750}.featured-business-card .business-card-actions{grid-template-columns:1fr;margin-top:7px}.featured-business-card .business-card-actions .business-action.maps,.featured-business-card .business-card-actions .business-action.secondary{display:none}.standard-business-card .business-card-actions .business-action.maps,.standard-business-card .business-card-actions .business-action.secondary{display:none}@media(max-width:370px){.business-card-actions{grid-template-columns:1fr}.business-card-services span{font-size:.59rem}}

/* v97: mantenimiento acumulativo; sin cambios visuales en el tiempo. */


/* v98 — precio visible, distancias uniformes y navegación que conserva la posición */
.business-card-location-row,.listing-card-location-row,.listing-detail-location-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin:6px 0 8px;color:#5b6c79;font-size:.72rem;line-height:1.35}
.business-card-location-text,.listing-card-location-text,.listing-detail-location-text{min-width:0}
.business-distance-badge.place-distance{display:inline-flex;width:auto;margin:0;padding:5px 8px;border-radius:9px;color:#065477;background:#e7f6fb;font-size:.72rem;font-weight:900;line-height:1.15;white-space:nowrap}
.featured-detail-title .business-distance-badge,.business-detail-title-row .business-distance-badge{margin-top:7px}
.listing-card-price{margin:3px 0 8px;font-size:1.18rem;font-weight:900;line-height:1.1}
.listing-detail-price{margin-top:3px;font-size:1.55rem;font-weight:900}
.listing-card-date{margin:2px 0 8px!important}
.listing-detail-date{color:var(--muted);font-size:.78rem}
@media(max-width:370px){.business-distance-badge.place-distance{font-size:.68rem;padding:4px 7px}.listing-card-price{font-size:1.1rem}}

/* v99: rebranding visual a Torrevieja Connect; el icono de Más usa el símbolo CO suministrado. */


/* v101 · Rebranding visual definitivo Torrevieja Connect */
.home-logo-button {
  padding: 0;
  background: #ffffff !important;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: none;
  forced-color-adjust: none;
  -webkit-print-color-adjust: exact;
}
.home-logo-button img {
  display: block;
  background: #ffffff !important;
  border-radius: 12px;
  filter: none !important;
  mix-blend-mode: normal !important;
  forced-color-adjust: none;
  -webkit-print-color-adjust: exact;
}
.bottom-nav button[data-nav="more"] .bottom-nav-brand-icon,
.bottom-nav button[data-nav="more"] .bottom-nav-brand-icon img {
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  mix-blend-mode: normal !important;
  forced-color-adjust: none;
}
@media (prefers-color-scheme: dark) {
  .home-logo-button,
  .home-logo-button img { background: #ffffff !important; }
  .bottom-nav button[data-nav="more"] .bottom-nav-brand-icon,
  .bottom-nav button[data-nav="more"] .bottom-nav-brand-icon img { background: transparent !important; }
}
