/*
 * Punto Córdoba · Pulso Urbano
 * Capa visual global. Mantiene la estructura y la lógica de cada módulo.
 */
:root {
    --pu-bg: #f4f4f1;
    --pu-surface: #ffffff;
    --pu-surface-raised: #fafaf8;
    --pu-surface-soft: #e9e9e5;
    --pu-ink: #171717;
    --pu-muted: #686762;
    --pu-line: rgba(22, 22, 22, .12);
    --pu-line-strong: rgba(22, 22, 22, .2);
    --pu-primary: #961f27;
    --pu-primary-hover: #74151c;
    --pu-urgent: #d64232;
    --pu-gold: #d5a235;
    --pu-success: #17785f;
    --pu-info: #236d89;
    --pu-radius-xl: 1.75rem;
    --pu-radius-lg: 1.35rem;
    --pu-radius-md: 1rem;
    --pu-radius-sm: .75rem;
    --pu-shadow-sm: 0 8px 24px rgba(25, 25, 25, .055);
    --pu-shadow: 0 18px 45px rgba(25, 25, 25, .09);
    --pu-shadow-hover: 0 22px 52px rgba(25, 25, 25, .13);
    --pc-bordo: var(--pu-primary);
    --pc-bordo-oscuro: var(--pu-ink);
    --pc-dorado: var(--pu-gold);
    --pc-crema: var(--pu-bg);
    --pc-blanco: var(--pu-surface);
    --pc-texto: var(--pu-ink);
    --pc-texto-suave: var(--pu-muted);
    --bs-body-bg: var(--pu-bg);
    --bs-body-color: var(--pu-ink);
    --bs-primary: var(--pu-primary);
    --bs-primary-rgb: 150, 31, 39;
    --bs-secondary-color: var(--pu-muted);
    --bs-border-color: var(--pu-line);
    --bs-border-radius: var(--pu-radius-sm);
    --bs-border-radius-lg: var(--pu-radius-md);
    --bs-link-color: var(--pu-primary);
    --bs-link-hover-color: var(--pu-primary-hover);
    color-scheme: light;
}

html { background: var(--pu-bg); }

body.punto-pulso-urbano {
    overflow-x: hidden;
    background: var(--pu-bg);
    color: var(--pu-ink);
    font-family: "Manrope", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
    transition: background-color .22s ease, color .22s ease;
}

body.punto-pulso-urbano main { min-height: 58vh; }
body.punto-pulso-urbano ::selection { background: color-mix(in srgb, var(--pu-primary) 24%, transparent); }
body.punto-pulso-urbano a { color: var(--pu-primary); text-underline-offset: .18em; }
body.punto-pulso-urbano a:hover { color: var(--pu-primary-hover); }
body.punto-pulso-urbano a.btn-primary,
body.punto-pulso-urbano a.btn-primary:hover,
body.punto-pulso-urbano a.btn-primary:focus,
body.punto-pulso-urbano a.btn-primary:active,
body.punto-pulso-urbano a.btn-outline-primary:hover,
body.punto-pulso-urbano a.btn-outline-primary:focus,
body.punto-pulso-urbano a.btn-outline-primary:active { color: #fff; }
body.punto-pulso-urbano h1,
body.punto-pulso-urbano h2,
body.punto-pulso-urbano h3,
body.punto-pulso-urbano h4,
body.punto-pulso-urbano h5,
body.punto-pulso-urbano h6 { color: var(--pu-ink); letter-spacing: -.025em; }

/* Cabecera y navegación */
.punto-sticky-header { z-index: 1030; }
.punto-navbar {
    min-height: 68px;
    padding: .45rem 0;
    border-top: 0;
    border-bottom: 1px solid var(--pu-line);
    background: color-mix(in srgb, var(--pu-surface) 93%, transparent);
    box-shadow: 0 7px 24px rgba(20, 20, 20, .055);
    backdrop-filter: blur(16px) saturate(150%);
}

.punto-brand-logo { width: clamp(150px, 13vw, 170px); }
.punto-main-nav {
    gap: .15rem;
    padding: .22rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
}

.punto-main-nav .nav-link {
    padding: .58rem .62rem;
    border-radius: 999px;
    color: var(--pu-muted);
    font-size: .9rem;
    font-weight: 750;
    white-space: nowrap;
    transition: color .16s ease, background .16s ease, transform .16s ease;
}
.punto-main-nav button.nav-link { border: 0; background: transparent; text-align: left; }

.punto-main-nav .nav-link:hover {
    color: var(--pu-ink);
    background: var(--pu-surface-soft);
    transform: translateY(-1px);
}

.punto-main-nav .nav-link.active {
    color: #fff;
    background: var(--pu-primary);
    box-shadow: 0 7px 18px color-mix(in srgb, var(--pu-primary) 26%, transparent);
}

.punto-header-actions { gap: .5rem; }
.punto-header-locality { display: flex; align-items: center; gap: .35rem; min-width: 0; }
.punto-header-locality label { margin: 0; color: var(--pu-muted); font-size: .78rem; font-weight: 750; }
.punto-header-locality .form-select { width: 155px; min-height: 38px; padding-block: .3rem; border-radius: 999px; font-weight: 700; }
.punto-claim-button,
.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--pu-primary);
    --bs-btn-border-color: var(--pu-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--pu-primary-hover);
    --bs-btn-hover-border-color: var(--pu-primary-hover);
    --bs-btn-active-bg: var(--pu-primary-hover);
    --bs-btn-active-border-color: var(--pu-primary-hover);
    border-radius: 999px;
    padding-inline: 1.1rem;
    font-weight: 750;
    box-shadow: 0 7px 17px color-mix(in srgb, var(--pu-primary) 19%, transparent);
}

.punto-login-button,
.btn-outline-primary {
    --bs-btn-color: var(--pu-primary);
    --bs-btn-border-color: color-mix(in srgb, var(--pu-primary) 55%, transparent);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--pu-primary);
    --bs-btn-hover-border-color: var(--pu-primary);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--pu-primary);
    border-radius: 999px;
    background: transparent;
    font-weight: 700;
}

.btn-outline-secondary,
.btn-outline-danger,
.btn-outline-success,
.btn-light,
.btn-warning { border-radius: 999px; font-weight: 700; }
.btn:not(.btn-link) { display:inline-flex; align-items:center; justify-content:center; gap:.45rem; min-height:40px; border-radius:999px; font-weight:700; line-height:1.2; }
.btn-sm { min-height: 32px; }
.btn-success,.btn-success:hover,.btn-success:focus,.btn-success:active { color:#fff !important; }
.punto-btn-whatsapp { --bs-btn-bg:#168a50; --bs-btn-border-color:#168a50; --bs-btn-hover-bg:#117241; --bs-btn-hover-border-color:#117241; box-shadow:0 7px 17px rgba(22,138,80,.2); }
.punto-btn-whatsapp svg { width:1.15rem; height:1.15rem; flex:0 0 auto; }
.punto-noticia-card-link:focus-visible { outline:3px solid color-mix(in srgb,var(--pu-primary) 35%,transparent); outline-offset:3px; border-radius:var(--pu-radius-lg); }
.punto-news-clickable { cursor:pointer; transition:transform .18s ease,box-shadow .18s ease; }
.punto-news-clickable:hover { transform:translateY(-2px); }

.navbar-toggler {
    width: 46px;
    height: 46px;
    padding: .6rem;
    border-color: var(--pu-line-strong);
    border-radius: var(--pu-radius-md);
    background: var(--pu-surface-raised);
    color: var(--pu-ink);
}
.navbar-toggler-icon {
    position: relative;
    width: 1.35rem;
    height: 1rem;
    border-top: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    background-image: none !important;
}
.navbar-toggler-icon::after {
    content: "";
    position: absolute;
    inset: 50% 0 auto;
    border-top: 2px solid currentColor;
    transform: translateY(-50%);
}
/* Superficies globales */
.card,
.punto-filter-card,
.punto-guide-search,
.punto-guide-results-section,
.punto-guide-accordion__item,
.punto-instagram-mini,
.punto-reclamos-map-shell,
.punto-today-card,
.punto-territory-card,
.punto-news-empty {
    border: 1px solid var(--pu-line) !important;
    border-radius: var(--pu-radius-lg) !important;
    background: var(--pu-surface) !important;
    color: var(--pu-ink);
    box-shadow: var(--pu-shadow-sm) !important;
}

.card { overflow: clip; }
.card:hover { border-color: color-mix(in srgb, var(--pu-primary) 24%, var(--pu-line)) !important; }
.card-header,
.card-footer { border-color: var(--pu-line); background: var(--pu-surface-raised); color: var(--pu-ink); }
.shadow-sm { box-shadow: var(--pu-shadow-sm) !important; }
.shadow { box-shadow: var(--pu-shadow) !important; }
.rounded-4 { border-radius: var(--pu-radius-lg) !important; }
.rounded-3 { border-radius: var(--pu-radius-md) !important; }
.border { border-color: var(--pu-line) !important; }
.border-top,
.border-bottom,
.border-start,
.border-end { border-color: var(--pu-line) !important; }

.bg-white,
.bg-light,
.text-bg-light { background-color: var(--pu-surface-raised) !important; color: var(--pu-ink) !important; }
.text-muted,
.form-text { color: var(--pu-muted) !important; }
.text-primary { color: var(--pu-primary) !important; }

.dropdown-menu,
.offcanvas,
.modal-content,
.accordion-item,
.list-group-item {
    border-color: var(--pu-line);
    background: var(--pu-surface);
    color: var(--pu-ink);
}
.dropdown-menu,
.offcanvas,
.modal-content { box-shadow: var(--pu-shadow); }
.dropdown-menu { padding: .55rem; border-radius: var(--pu-radius-md); }
.dropdown-item { border-radius: .7rem; color: var(--pu-ink); }
.dropdown-item:hover,
.dropdown-item:focus { background: var(--pu-surface-soft); color: var(--pu-primary); }

/* Formularios y buscadores */
.form-control,
.form-select,
.input-group-text {
    min-height: 46px;
    border-color: var(--pu-line-strong);
    border-radius: var(--pu-radius-sm);
    background-color: var(--pu-surface-raised);
    color: var(--pu-ink);
    box-shadow: none;
}
.form-control::placeholder { color: color-mix(in srgb, var(--pu-muted) 78%, transparent); }
.form-control:focus,
.form-select:focus {
    border-color: var(--pu-primary);
    background-color: var(--pu-surface);
    color: var(--pu-ink);
    box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--pu-primary) 15%, transparent);
}
.form-check-input { border-color: var(--pu-line-strong); background-color: var(--pu-surface-raised); }
.form-check-input:checked { border-color: var(--pu-primary); background-color: var(--pu-primary); }
.form-label { color: var(--pu-ink); font-size: .84rem; font-weight: 750; }

.punto-select-search-input,
.punto-select-search-list {
    border-color: var(--pu-line-strong);
    background: var(--pu-surface);
    color: var(--pu-ink);
}
.punto-select-search-input { border-radius: var(--pu-radius-sm); }
.punto-select-search-list { border-radius: var(--pu-radius-md); box-shadow: var(--pu-shadow); }
.punto-select-search-option:hover,
.punto-select-search-option.is-active { background: var(--pu-surface-soft); color: var(--pu-primary); }

.punto-category-picker { border-color: var(--pu-line); background: var(--pu-surface-raised); }
.punto-category-picker span { border-color: var(--pu-line-strong); color: var(--pu-ink); }
.punto-category-picker input:checked + span { border-color: var(--pu-primary); background: var(--pu-primary); color: #fff; }

/* Etiquetas, alertas y paginación */
.punto-eyebrow {
    padding: .4rem .72rem;
    border-radius: 999px;
    background: var(--pu-gold);
    color: #241b0c;
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .035em;
}
.badge { border-radius: 999px !important; }
.punto-fuente { border-radius: 999px; }
.alert {
    border: 1px solid var(--pu-line);
    border-radius: var(--pu-radius-md);
    color: var(--pu-ink);
    box-shadow: var(--pu-shadow-sm);
}
.alert-light { background: var(--pu-surface); }
.alert-primary { background: color-mix(in srgb, var(--pu-primary) 10%, var(--pu-surface)); }
.alert-success { background: color-mix(in srgb, var(--pu-success) 12%, var(--pu-surface)); }
.alert-warning { background: color-mix(in srgb, var(--pu-gold) 16%, var(--pu-surface)); }
.alert-danger { background: color-mix(in srgb, var(--pu-urgent) 13%, var(--pu-surface)); }
.pagination { gap: .28rem; }
.page-link { border-color: var(--pu-line); border-radius: .7rem !important; background: var(--pu-surface); color: var(--pu-primary); }
.active > .page-link,
.page-link.active { border-color: var(--pu-primary); background: var(--pu-primary); color: #fff; }

/* Tablas de administración */
.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--pu-ink);
    --bs-table-border-color: var(--pu-line);
    --bs-table-hover-bg: var(--pu-surface-soft);
    --bs-table-hover-color: var(--pu-ink);
    margin-bottom: 0;
}
.table > :not(caption) > * > * { padding: .85rem .8rem; }
.table-dark,
.table > .table-dark {
    --bs-table-bg: var(--pu-ink);
    --bs-table-color: var(--pu-bg);
    --bs-table-border-color: rgba(255, 255, 255, .11);
}

/* Administración */
.punto-admin-toolbar { border-color: var(--pu-line); background: var(--pu-surface-raised); box-shadow: var(--pu-shadow-sm); }
.punto-admin-home-link { border-radius: 999px; background: var(--pu-primary); }
.punto-admin-home-link:hover { background: var(--pu-primary-hover); }
.punto-admin-toolbar-label { color: var(--pu-muted); }
.punto-admin-site-link { color: var(--pu-primary); }
.punto-admin-modules { gap: 1rem; }
.punto-admin-module {
    min-height: 112px;
    border: 1px solid var(--pu-line);
    border-radius: var(--pu-radius-lg);
    background: var(--pu-surface);
    color: var(--pu-ink);
    box-shadow: var(--pu-shadow-sm);
}
.punto-admin-module:hover { border-color: var(--module-color); color: var(--pu-ink); box-shadow: var(--pu-shadow-hover); }
.punto-admin-module small { color: var(--pu-muted); }
.punto-admin-module-icon { border-radius: 1.05rem; }
.punto-admin-guide { border-color: var(--pu-line); border-radius: var(--pu-radius-lg); background: var(--pu-surface); }
.punto-admin-guide__heading { border-color: var(--pu-line); background: var(--pu-surface-raised); }
.punto-admin-guide__heading p { color: var(--pu-muted); }
.punto-admin-guide__links a,
.punto-admin-guide-nav { border-color: var(--pu-line); border-radius: var(--pu-radius-md); background: var(--pu-surface); color: var(--pu-ink); }
.punto-admin-guide__links small,
.punto-admin-guide-nav a { color: var(--pu-muted); }

/* Portada Pulso Urbano */
.punto-news-home {
    padding: clamp(2.25rem, 4vw, 4.5rem) 0 3.5rem;
    background:
        radial-gradient(circle at 93% 2%, color-mix(in srgb, var(--pu-gold) 14%, transparent), transparent 25rem),
        var(--pu-bg);
}
.punto-news-home__masthead { align-items: end; }
.punto-news-home__masthead h1 {
    margin: .7rem 0 .4rem;
    font-family: "Manrope", sans-serif;
    font-size: clamp(2.65rem, 5vw, 5rem);
    font-weight: 850;
    letter-spacing: -.065em;
    line-height: .96;
}
.punto-news-home__masthead p { color: var(--pu-muted); }
.punto-news-home__edition span { color: var(--pu-muted); }
.punto-news-home__rule {
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--pu-urgent) 0 72%, var(--pu-gold) 72%);
}
.punto-news-home__grid { grid-template-columns: minmax(0, 1.5fr) minmax(275px, .72fr); }
.punto-news-lead {
    overflow: hidden;
    padding-bottom: 1.7rem;
    border: 1px solid var(--pu-line);
    border-radius: var(--pu-radius-xl);
    background: var(--pu-surface);
    box-shadow: var(--pu-shadow);
}
.punto-news-lead > :not(.punto-news-image) { margin-inline: clamp(1.25rem, 3vw, 2rem); }
.punto-news-image { border-radius: var(--pu-radius-lg); }
.punto-news-lead__image { min-height: 360px; border-radius: 0; }
.punto-news-image.is-placeholder::after { content: "PUNTO CÓRDOBA"; }
.punto-news-meta { color: var(--pu-muted); }
.punto-news-featured { color: var(--pu-urgent); }
.punto-news-lead h2,
.punto-news-secondary h3,
.punto-news-latest h3 { font-family: "Manrope", sans-serif; font-weight: 800; }
.punto-news-lead h2 { font-size: clamp(1.9rem, 3vw, 3rem); line-height: 1.03; }
.punto-news-lead h2 a,
.punto-news-secondary h3 a,
.punto-news-latest h3 a { color: var(--pu-ink); }
.punto-news-lead h2 a:hover,
.punto-news-secondary h3 a:hover,
.punto-news-latest h3 a:hover { color: var(--pu-primary); }
.punto-news-lead p,
.punto-news-date { color: var(--pu-muted); }
.punto-news-secondary {
    padding: 1.25rem;
    border: 1px solid var(--pu-line);
    border-radius: var(--pu-radius-lg);
    background: var(--pu-surface);
    box-shadow: var(--pu-shadow-sm);
}
.punto-news-secondary article { border-color: var(--pu-line); }
.punto-news-secondary__image { border-radius: var(--pu-radius-md); }
.punto-news-home__instagram { grid-column: 2; position: static; max-height: none; }
.punto-news-section-title { border-color: var(--pu-ink); }
.punto-news-section-title h2 { font-family: "Manrope", sans-serif; }
.punto-news-latest__grid article {
    border: 1px solid var(--pu-line);
    border-top: 4px solid var(--pu-urgent);
    border-radius: 0 0 var(--pu-radius-lg) var(--pu-radius-lg);
    background: var(--pu-surface);
    box-shadow: var(--pu-shadow-sm);
}
.punto-news-latest p { color: var(--pu-muted); }
.punto-card-news-image { height: 270px; }
.punto-card-news-image,
.punto-news-detail-image,
.punto-news-crop-preview { background: var(--pu-surface-soft); }
.punto-news-detail-image { border-radius: var(--pu-radius-lg); }
.punto-news-featured-ribbon { background: var(--pu-urgent); color: #fff; }
.punto-noticia-card { transition: transform .18s ease, box-shadow .18s ease; }
.punto-noticia-card:hover { transform: translateY(-4px); box-shadow: var(--pu-shadow-hover) !important; }
.punto-noticias-section-head { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1rem; padding-bottom:.7rem; border-bottom:3px solid var(--pu-ink); }
.punto-noticias-section-head h2 { margin:0; font-family:"Manrope",sans-serif; font-size:1.45rem; font-weight:850; }
.punto-noticias-section-head span { color:var(--pu-muted); font-size:.82rem; }
.punto-noticias-portada-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.punto-noticias-portada-grid__principal { grid-column:1 / -1; }
.punto-noticia-card--principal { display:grid; grid-template-columns:minmax(0,1.22fr) minmax(280px,.78fr); }
.punto-noticia-card--principal .punto-card-news-image { height:100%; min-height:340px; }
.punto-noticia-card__titulo-principal { font-family:"Manrope",sans-serif; font-size:clamp(1.65rem,2.6vw,2.55rem); font-weight:850; line-height:1.06; }
.punto-noticia-card__leer { align-self:flex-start; color:var(--pu-primary); font-weight:800; }
.punto-noticia-card__leer b { display:inline-block; margin-left:.25rem; transition:transform .18s ease; }
.punto-noticia-card:hover .punto-noticia-card__leer b { transform:translateX(4px); }

.punto-home-services { border-color: var(--pu-line); background: var(--pu-surface-soft); }
.punto-home-services__grid a {
    border-color: var(--pu-line);
    border-radius: var(--pu-radius-lg);
    background: var(--pu-surface);
    color: var(--pu-ink);
    box-shadow: var(--pu-shadow-sm);
}
.punto-home-services__grid a:hover { border-color: var(--pu-urgent); box-shadow: var(--pu-shadow-hover); }
.punto-home-services__grid strong { color: var(--pu-primary); }
.punto-home-services__grid small { color: var(--pu-muted); }

/* Noticias, redes y menú lateral */
.punto-news-menu-trigger { border-color: var(--pu-line); border-radius: 999px; background: var(--pu-surface); color: var(--pu-primary); }
.punto-news-menu-trigger:hover { border-color: var(--pu-primary); background: var(--pu-surface-soft); }
.punto-news-drawer { color: var(--pu-ink); background: var(--pu-surface); }
.punto-news-drawer .offcanvas-header { border-color: var(--pu-line); }
.punto-news-drawer .offcanvas-title { font-family: "Manrope", sans-serif; }
.punto-news-drawer-social a { border-color: var(--pu-line); color: var(--pu-primary); }
.punto-news-drawer-nav a { border-color: var(--pu-line); color: var(--pu-ink); }
.punto-news-drawer-nav a::after { content: "›"; color: var(--pu-muted); }
.punto-news-drawer-nav a:hover,
.punto-news-drawer-nav a.active { background: var(--pu-surface-soft); color: var(--pu-primary); }
.punto-instagram-mini { background: linear-gradient(145deg, var(--pu-surface), color-mix(in srgb, var(--pu-primary) 7%, var(--pu-surface))) !important; }
.punto-instagram-perfil small,
.punto-instagram-vacio p { color: var(--pu-muted); }
.punto-instagram-feed { border-color: var(--pu-line); }
.punto-instagram-publicacion,
.punto-instagram-vacio { border-color: var(--pu-line); border-radius: var(--pu-radius-md); background: var(--pu-surface-raised); }

/* Guía, instituciones, funcionarios y comercios */
.punto-guide-hero { background: var(--pu-bg); }
.punto-guide-hero .lead { color: var(--pu-muted); }
.punto-guide-summary { border-color: var(--pu-line); border-radius: var(--pu-radius-lg); background: var(--pu-surface); box-shadow: var(--pu-shadow-sm); }
.punto-guide-summary div + div { border-color: var(--pu-line); }
.punto-guide-summary strong { color: var(--pu-primary); }
.punto-guide-summary span { color: var(--pu-muted); }
.punto-guide-path,
.punto-guide-categories a,
.punto-guide-result-card,
.punto-guide-government-links a {
    border-color: var(--pu-line);
    border-radius: var(--pu-radius-lg);
    background: var(--pu-surface);
    color: var(--pu-ink);
    box-shadow: var(--pu-shadow-sm);
}
.punto-guide-path:hover,
.punto-guide-categories a:hover,
.punto-guide-government-links a:hover { color: var(--pu-ink); box-shadow: var(--pu-shadow-hover); }
.punto-guide-path__icon { border-radius: var(--pu-radius-md); }
.punto-guide-path small,
.punto-guide-categories small,
.punto-guide-result-card small,
.punto-guide-government-links span { color: var(--pu-muted); }
.punto-guide-accordion__trigger { background: var(--pu-surface); color: var(--pu-ink); }
.punto-guide-accordion__trigger:hover,
.punto-guide-accordion__trigger:not(.collapsed) { background: var(--pu-surface-soft); color: var(--pu-primary); }
.punto-guide-accordion__trigger small { color: var(--pu-muted); }
.punto-guide-accordion__body { border-color: var(--pu-line); background: var(--pu-surface-raised); }
.punto-funcionarios-tabs .nav-link { border-color: var(--pu-line); color: var(--pu-primary); }
.punto-funcionarios-tabs .nav-link.active { background: var(--pu-primary); }
.punto-funcionario-card:hover { box-shadow: var(--pu-shadow-hover) !important; }
.punto-funcionario-photo-wrap { border-radius: var(--pu-radius-lg); background: var(--pu-surface-soft); }

/* Reclamos, mapas y transporte */
.punto-reclamos-map-shell { overflow: hidden; }
.punto-reclamos-panel { border-color: var(--pu-line); background: var(--pu-surface); }
.punto-reclamos-panel-header { border-color: var(--pu-line); background: var(--pu-surface-raised); }
.punto-reclamo-map-card { border-color: var(--pu-line); background: var(--pu-surface); }
.punto-reclamo-map-card:hover,
.punto-reclamo-map-card.is-active { background: var(--pu-surface-soft); }
.punto-transport-line { transition: transform .18s ease, box-shadow .18s ease; }
.punto-transport-line:hover { transform: translateY(-3px); box-shadow: var(--pu-shadow-hover) !important; }
.punto-transport-code { border-radius: var(--pu-radius-md) !important; }
#mapa-transporte,
[id^="mapa-"] {
    overflow: hidden;
    border: 1px solid var(--pu-line);
    border-radius: var(--pu-radius-lg) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip { background: var(--pu-surface); color: var(--pu-ink); }
.leaflet-popup-content-wrapper { border-radius: var(--pu-radius-md); box-shadow: var(--pu-shadow); }
.leaflet-control-zoom a,
.leaflet-control-layers { background: var(--pu-surface) !important; color: var(--pu-ink) !important; }

/* Pie */
.punto-footer { border-top: 4px solid var(--pu-gold); background: #151515; color: #d9d5cd; }
.punto-footer a { color: #fff; }
.punto-social-links a { border-color: rgba(255,255,255,.18); border-radius: 999px; }

/* Accesibilidad y movimiento */
:focus-visible { outline: 3px solid color-mix(in srgb, var(--pu-gold) 75%, white); outline-offset: 3px; }

@media (max-width: 1199.98px) {
    .punto-navbar .navbar-collapse {
        margin-top: .8rem;
        padding: 1rem;
        border: 1px solid var(--pu-line);
        border-radius: var(--pu-radius-lg);
        background: var(--pu-surface);
        box-shadow: var(--pu-shadow);
    }
    .punto-main-nav { align-items: stretch; border-radius: var(--pu-radius-md); }
    .punto-main-nav .nav-link { border-radius: var(--pu-radius-sm); }
    .punto-header-actions { flex-wrap: wrap; padding-top: .75rem; }
    .punto-header-locality { width: 100%; }
    .punto-header-locality .form-select { width: min(100%, 280px); }
    .punto-news-home__grid { grid-template-columns: minmax(0, 1.5fr) minmax(250px, .7fr); }
    .punto-news-home__instagram { grid-column: 1 / -1; }
}

@media (max-width: 767.98px) {
    .punto-noticias-portada-grid { grid-template-columns:1fr; }
    .punto-noticias-portada-grid__principal { grid-column:auto; }
    .punto-noticia-card--principal { display:block; }
    .punto-noticia-card--principal .punto-card-news-image { height:240px; min-height:0; }
    .punto-noticias-section-head { align-items:flex-start; flex-direction:column; gap:.25rem; }
    .punto-navbar { min-height: 68px; }
    .punto-brand-logo { width: min(50vw, 178px); }
    .punto-header-actions { display: grid; grid-template-columns: auto 1fr; }
    .punto-header-locality { grid-column: 1 / -1; }
    .punto-header-actions .punto-claim-button { grid-column: 2; }
    .punto-header-actions .dropdown,
    .punto-header-actions .punto-login-button:not(.dropdown-toggle) { grid-column: 1 / -1; }
    .punto-news-home__grid { grid-template-columns: 1fr; }
    .punto-news-home__instagram { grid-column: auto; }
    .punto-news-lead__image { min-height: 240px; }
    .punto-news-lead h2 { font-size: clamp(1.65rem, 8vw, 2.35rem); }
    .punto-news-secondary { padding: 1rem; }
    .punto-guide-summary { grid-template-columns: 1fr; }
    .punto-guide-summary div + div { border-top: 1px solid var(--pu-line); border-left: 0; }
    .table > :not(caption) > * > * { padding: .72rem .6rem; }
}

@media (max-width: 420px) {
    .punto-navbar-inner { padding-inline: .8rem; }
    .punto-brand-logo { width: 164px; }
    .navbar-toggler { width: 42px; height: 42px; }
    .punto-news-home__masthead h1 { font-size: 2.55rem; }
    .card-body { padding: 1.15rem !important; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
