:root{
  --brand-primary:#0f766e;
  --brand-secondary:#f59e0b;
  --page-bg:#ffffff;
  --button-bg:#0f766e;
  --button-text:#ffffff;
  --button-hover-bg:#0b5f59;
  --hero-gradient-start:#f8fffd;
  --hero-gradient-end:#f3f7f5;
  --cta-gradient-start:#0f766e;
  --cta-gradient-end:#0f4c47;
  --ink:#102a2a;
  --muted:#5b6b70;
  --soft:#f4f7f5;
  --line:#dbe5e1;
  --white:#fff;
  --radius:24px;
  --shadow:0 18px 55px rgba(10,36,35,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--page-bg,#fff)}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.public-body{overflow-x:hidden;padding-top:var(--public-header-offset,96px)}
.site-header{background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid rgba(16,42,42,.08)}
.navbar{min-height:82px}
.brand-logo{object-fit:cover;border-radius:14px}
.brand-logo-main{width:auto;max-width:220px;height:64px;object-fit:contain;border-radius:0}
.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:16px;background:linear-gradient(135deg,var(--brand-primary),#14b8a6);color:#fff;font-weight:800}
.brand-copy{display:grid;line-height:1.05}
.brand-copy strong{font-size:1rem}
.brand-copy small{font-size:.76rem;color:var(--muted)}
.nav-link{font-weight:700;color:var(--ink)!important}
.nav-link.active{color:var(--brand-primary)!important}
.btn-brand{background:var(--button-bg,var(--brand-primary));border-color:var(--button-bg,var(--brand-primary));color:var(--button-text,#fff);font-weight:800}
.btn-brand:hover,.btn-brand:focus{background:var(--button-hover-bg,#0b5f59);border-color:var(--button-hover-bg,#0b5f59);color:var(--button-text,#fff)}
.text-link{font-weight:800;color:var(--brand-primary)}
.mobile-link{padding:1rem;border-radius:18px;background:var(--soft);font-weight:800}
.hero-section,.sales-hero{padding:3.8rem 0;background:
radial-gradient(circle at top right,rgba(245,158,11,.18),transparent 28%),
linear-gradient(135deg,var(--hero-gradient-start,#f8fffd),var(--hero-gradient-end,#f3f7f5))}
.hero-kicker,.eyebrow{display:inline-flex;align-items:center;gap:.45rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:var(--brand-primary);margin-bottom:1rem}
.hero-section h1,.sales-hero h1,.page-head h1,.business-hero h1,.narrow-reading h1,.page-reading-wide h1,.monument-hero h1{font-size:clamp(2.3rem,5vw,5.2rem);line-height:.96;font-weight:950;letter-spacing:-.055em;margin-bottom:1.25rem}
.hero-lead,.page-head p,.business-hero p{font-size:1.16rem;color:var(--muted);max-width:760px}
.hero-card{padding:2rem;border-radius:32px;background:#fff;box-shadow:var(--shadow);border:1px solid rgba(15,118,110,.12)}
.hero-card-top{display:grid;gap:.45rem;padding:1rem;border-radius:22px;background:linear-gradient(135deg,var(--brand-primary),#115e59);color:#fff;margin-bottom:1.3rem}
.hero-card-top span{font-size:.85rem;opacity:.88}
.hero-card-top strong{font-size:1.5rem}
.hero-mini-list{display:grid;gap:1rem}
.hero-mini-list article{display:flex;gap:.85rem;align-items:flex-start}
.dot{width:12px;height:12px;border-radius:50%;background:var(--brand-secondary);margin-top:.35rem;flex:0 0 12px}
.hero-mini-list strong{display:block}
.hero-mini-list small{color:var(--muted)}
.hero-stat-grid{display:flex;flex-wrap:wrap;gap:1rem}
.hero-stat-grid>div{min-width:145px;padding:1rem 1.1rem;border-radius:20px;background:rgba(255,255,255,.72);border:1px solid rgba(16,42,42,.08)}
.hero-stat-grid strong{display:block;font-size:1.55rem}
.hero-stat-grid span{display:block;font-size:.88rem;color:var(--muted)}
.section-pad{padding:4.6rem 0}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2rem}
.section-head h2,.feature-panel h2,.cta-band h2{font-size:clamp(1.75rem,3vw,3.2rem);line-height:1.02;font-weight:950;letter-spacing:-.04em;margin:0}
.feature-panel,.feature-tile,.story-card,.detail-box,.form-card,.panel-card,.metric-card,.quick-card,.setup-step,.empty-state{border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.feature-panel{padding:2rem;min-height:310px;background:linear-gradient(180deg,#fff,#f4fffc)}
.feature-panel.alt{background:linear-gradient(180deg,#fff,#fffaf0)}
.soft-section{background:var(--soft)}
.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.category-card{display:grid;overflow:hidden;border-radius:22px;background:#fff;border:1px solid var(--line);transition:transform .18s ease,box-shadow .18s ease}
.category-card:hover,.business-card:hover,.product-card:hover,.campaign-card:hover,.quick-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(10,36,35,.12)}
.category-card-media{display:block;aspect-ratio:1/1;background:var(--soft);overflow:hidden}
.category-card-media img{width:100%;height:100%;object-fit:cover}
.category-card-copy{display:grid;gap:.45rem;padding:1.15rem}
.category-card-copy small{color:var(--muted);font-size:.92rem}
.business-card,.product-card,.campaign-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff;transition:transform .18s ease,box-shadow .18s ease}
.card-media{display:block;aspect-ratio:1/1;background:var(--soft);overflow:hidden}
.card-media img{width:100%;height:100%;object-fit:cover}
.card-body-custom{padding:1.35rem}
.card-body-custom h3{font-weight:900;letter-spacing:-.025em}
.card-body-custom p{color:var(--muted);min-height:52px}
.mini-badge{display:inline-flex;margin-bottom:.75rem;padding:.38rem .72rem;border-radius:999px;background:rgba(15,118,110,.12);color:var(--brand-primary);font-size:.78rem;font-weight:900}
.price-line,.price-big{font-weight:950;color:var(--brand-primary);margin:.5rem 0 1rem}
.price-big{font-size:2rem}
.cta-band{padding:4rem 0;background:linear-gradient(135deg,var(--cta-gradient-start,var(--brand-primary)),var(--cta-gradient-end,#0f4c47));color:#fff;margin-top:4rem}
.cta-band .eyebrow{color:#fff;opacity:.84}
.site-footer{padding:4rem 0 1.5rem;background:#0f2424;color:#fff}
.text-footer{color:rgba(255,255,255,.7)}
.footer-links{display:grid;gap:.7rem;color:rgba(255,255,255,.8)}
.footer-links a:hover{color:#fff}
.footer-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:2rem;margin-top:2rem;border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.64);font-size:.9rem}
.breadcrumb-wrap{margin-bottom:1.3rem}
.breadcrumb-wrap .breadcrumb{margin-bottom:0}
.page-head{margin-bottom:2rem}
.search-panel{padding:1rem;border:1px solid var(--line);border-radius:24px;background:var(--soft)}
.category-inline{display:flex;flex-wrap:wrap;gap:.65rem}
.category-inline a{padding:.65rem .9rem;border-radius:999px;background:var(--soft);font-weight:800}
.business-hero{padding:4.4rem 0;background:linear-gradient(135deg,#123f3d,#0f766e);color:#fff}
.business-hero p{color:rgba(255,255,255,.82)}
.business-hero .breadcrumb a{color:#fff}
.business-contact-panel{display:grid;gap:.8rem;padding:1.25rem;border-radius:24px;background:rgba(255,255,255,.12);backdrop-filter:blur(10px)}
.rich-copy{color:#334;line-height:1.82}
.detail-box,.form-card{padding:1.5rem}
.detail-image,.article-cover{display:block;width:100%;aspect-ratio:1/1;border-radius:32px;border:1px solid var(--line);object-fit:cover}
.narrow-reading{max-width:980px}
.article-cover{margin:1.5rem 0 2rem}
.article-copy{font-size:1.08rem}
.currency-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0}
.currency-grid>div{padding:1.5rem;border-radius:22px;background:var(--soft);border:1px solid var(--line)}
.currency-grid strong{display:block;font-size:1.5rem;color:var(--brand-primary)}
.currency-grid span{display:block;color:var(--muted)}
.login-wrap{min-height:70vh;display:grid;place-items:center}
.login-card{width:min(100%,520px)}
.sales-card ul{margin:1rem 0 0;padding-left:1.2rem}
.sales-card li{margin:.65rem 0}
.feature-tile,.story-card{padding:1.5rem;height:100%}
.feature-tile h3,.story-card h3{font-size:1.2rem;font-weight:900}
.stack-list{display:grid;gap:1rem}
.stack-list article{display:grid;gap:.35rem;padding:1.2rem;border-radius:20px;background:#fff;border:1px solid var(--line)}
.stack-list strong{font-size:1.08rem}
.stack-list span{color:var(--muted)}
.empty-state{padding:2rem;text-align:center;background:var(--soft)}
.dashboard-body{background:#f5f7f6}
.dashboard-topbar{position:sticky;top:0;z-index:20;padding:1rem 0;background:rgba(245,247,246,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.dashboard-shell{display:grid;grid-template-columns:280px 1fr;min-height:calc(100vh - 86px)}
.dashboard-sidebar{padding:1.25rem;border-right:1px solid var(--line);background:#fff}
.dashboard-brand{display:flex;align-items:center;gap:.85rem;margin-bottom:1.2rem;padding:.75rem;border-radius:20px;background:var(--soft);font-weight:950}
.dashboard-brand-logo{display:block;max-width:190px;max-height:66px;width:auto;height:auto;object-fit:contain}
.dashboard-brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--brand-primary);color:#fff;font-weight:950}
.sidebar-link{padding:.9rem 1rem;border-radius:18px;font-weight:850}
.sidebar-link:hover{background:var(--soft)}
.dashboard-main{padding:1.5rem}
.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.metric-card{padding:1.35rem}
.metric-card span{display:block;color:var(--muted);font-size:.92rem}
.metric-card strong{display:block;font-size:2rem;line-height:1.1;margin-top:.35rem}
.panel-card{padding:1.35rem}
.panel-head{margin-bottom:1.25rem}
.setup-step,.quick-card{display:grid;gap:.45rem;padding:1.2rem;height:100%}
.setup-step span,.quick-card span{color:var(--muted)}
.setup-step a{color:var(--brand-primary);font-weight:900}
.form-check-wrap{display:flex;align-items:end}
.current-media-card{display:grid;gap:.65rem;align-content:start;min-height:118px;padding:1rem;border:1px dashed var(--line);border-radius:18px;background:var(--soft)}
.current-media-card>span{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:var(--muted)}
.current-media-preview{display:block;max-width:100%;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.45rem}
.logo-preview{max-height:82px;width:auto}
.favicon-preview{width:58px;height:58px;object-fit:contain}
.admin-thumb-square{display:block;width:64px;height:64px;object-fit:cover;border-radius:16px;border:1px solid var(--line);background:#fff}
.toast-stack{position:fixed;top:1rem;right:1rem;z-index:9999;display:grid;gap:.75rem}
.flash-toast{min-width:280px;max-width:380px;padding:1rem 1.1rem;border-radius:18px;background:#102a2a;color:#fff;box-shadow:var(--shadow);animation:toastIn .18s ease}
.flash-toast.error{background:#7f1d1d}
.flash-toast.success{background:#14532d}
@keyframes toastIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.table>:not(caption)>*>*{padding:1rem .75rem}
.hero-full-copy{max-width:1180px}
.hero-full-copy .hero-lead{max-width:920px}
.fade-up{opacity:0;transform:translateY(26px);transition:opacity .62s ease,transform .62s ease}
.fade-up.is-visible{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion:reduce){.fade-up{opacity:1;transform:none;transition:none}}
@media (max-width:1199px){
  .category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:991px){
  .navbar{min-height:74px}
  .brand-logo-main{max-width:178px;height:54px}
  .dashboard-brand{margin-bottom:1rem}
  .dashboard-brand-logo{max-width:150px;max-height:54px}
  .hero-section,.sales-hero{padding:3.7rem 0 3.4rem}
  .section-pad{padding:3.4rem 0}
  .dashboard-shell{display:block}
  .dashboard-sidebar{border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}
  .dashboard-sidebar nav{display:flex!important;min-width:max-content}
  .dashboard-main{padding:1rem}
  .business-hero{padding:3rem 0}
}
@media (max-width:767px){
  .hero-stat-grid{display:grid;grid-template-columns:1fr}
  .section-head{display:block}
  .section-head .text-link{display:inline-block;margin-top:1rem}
  .category-grid,.currency-grid,.dashboard-grid{grid-template-columns:1fr}
  .card-body-custom p{min-height:0}
  .cta-band{padding:3rem 0}
  .toast-stack{left:1rem;right:1rem}
  .flash-toast{min-width:0;max-width:none}
}


/* v1.3: imágenes cuadradas y categorías visuales */
.card-img,
.business-card img,
.product-card img,
.campaign-card img,
.category-card-media img,
.product-main-image,
.business-logo,
.admin-thumb-square{
  aspect-ratio:1/1;
  object-fit:cover;
}

.category-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:1rem;
}
.category-card{
  display:grid;
  gap:.85rem;
  padding:.85rem;
  border:1px solid var(--line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 12px 35px rgba(10,36,35,.07);
  transition:transform .18s ease, box-shadow .18s ease;
}
.category-card:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 48px rgba(10,36,35,.12);
}
.category-card-media{
  display:block;
  overflow:hidden;
  border-radius:18px;
  background:var(--soft);
}
.category-card-media img{
  width:100%;
  height:100%;
  display:block;
}
.category-card-copy{
  display:grid;
  gap:.25rem;
}
.category-card-copy strong{
  font-size:1.05rem;
  font-weight:900;
}
.category-card-copy small{
  color:var(--muted);
}

.admin-thumb-square{
  width:58px;
  height:58px;
  border-radius:16px;
  border:1px solid var(--line);
  background:var(--soft);
}

.rich-copy{
  font-size:1.05rem;
  line-height:1.8;
  color:var(--ink);
}


/* v1.4: páginas públicas más anchas y módulo Monumentos */
.page-reading-wide .rich-copy{
  max-width:100%;
}

.monument-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
  transition:transform .18s ease,box-shadow .18s ease;
}
.monument-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow);
}
.monument-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin-top:1rem;
}
.monument-meta span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:.35rem .75rem;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--soft);
  color:var(--muted);
  font-size:.9rem;
  font-weight:700;
}
.monument-main-media{
  overflow:hidden;
  border-radius:32px;
  border:1px solid var(--line);
  background:var(--soft);
  box-shadow:var(--shadow);
}
.monument-main-media img{
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
}
.monument-visit-box{
  padding:1.5rem;
}
.monument-dl{
  display:grid;
  gap:1rem;
  margin:1rem 0 0;
}
.monument-dl>div{
  display:grid;
  gap:.2rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--line);
}
.monument-dl>div:last-child{
  border-bottom:0;
  padding-bottom:0;
}
.monument-dl dt{
  color:var(--muted);
  font-size:.9rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:900;
}
.monument-dl dd{
  margin:0;
  font-weight:800;
}
.monument-content .feature-panel{
  min-height:100%;
}


/* v1.4.6 · Buscadores en vivo */
.page-head-search{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:2rem;
  flex-wrap:wrap;
}
.search-box{
  width:min(100%,520px);
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  align-items:center;
  padding:1rem;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--soft);
}
.search-box .form-control{
  flex:1 1 260px;
  min-height:52px;
}
.search-box .btn{
  min-height:52px;
}
.live-search-form{
  transition:opacity .18s ease;
}
.live-search-form.is-searching{
  opacity:.92;
}
.live-search-feedback{
  min-height:1.35rem;
  color:var(--muted);
  font-size:.92rem;
  font-weight:700;
}
.live-search-results{
  min-height:90px;
}


/* v1.4.7 · Contenido HTML flexible en monumentos */
.monument-html-panel{
  width:100%;
  min-height:auto;
}
.monument-rich-html > :first-child{
  margin-top:0;
}
.monument-rich-html > :last-child{
  margin-bottom:0;
}
.monument-rich-html h2,
.monument-rich-html h3,
.monument-rich-html h4{
  margin:1.4rem 0 .75rem;
  font-weight:950;
  letter-spacing:-.025em;
  color:var(--ink);
}
.monument-rich-html p,
.monument-rich-html ul,
.monument-rich-html ol{
  margin-bottom:1rem;
}
.monument-rich-html a{
  color:var(--brand-primary);
  text-decoration:underline;
  text-underline-offset:.18em;
}


/* v1.4.8 · Monumentos más editoriales, responsive y guardado municipal visible */
.monument-rich-html h2{
  font-size:clamp(1.55rem, 3.8vw, 2.35rem);
  line-height:1.12;
  font-weight:1000;
  letter-spacing:-.035em;
  text-wrap:balance;
}
.monument-rich-html h3{
  font-size:clamp(1.3rem, 3vw, 1.8rem);
  line-height:1.18;
  font-weight:950;
  text-wrap:balance;
}
.monument-rich-html h4{
  font-size:clamp(1.12rem, 2.6vw, 1.45rem);
  line-height:1.22;
  font-weight:950;
}
.monument-rich-html{
  overflow-wrap:anywhere;
}
.monument-rich-html img{
  max-width:100%;
  height:auto;
  border-radius:18px;
}
.monument-current-image-preview{
  display:block;
  width:min(100%, 180px);
  aspect-ratio:1/1;
  object-fit:cover;
  background:#fff;
}
.municipality-settings-form{
  padding-bottom:6.5rem;
}
.municipality-save-dock{
  position:fixed;
  right:1.5rem;
  bottom:1.5rem;
  z-index:1055;
  display:flex;
  justify-content:flex-end;
  padding:.8rem;
  border:1px solid rgba(16,42,42,.12);
  border-radius:999px;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px);
  box-shadow:0 18px 48px rgba(10,36,35,.18);
}
.municipality-save-dock .btn{
  min-width:190px;
  border-radius:999px;
}
@media (max-width:991px){
  .monument-content{
    gap:1.2rem!important;
  }
  .monument-html-panel{
    padding:1.35rem;
  }
}
@media (max-width:767px){
  .monument-rich-html{
    font-size:1rem;
    line-height:1.75;
  }
  .monument-rich-html h2{
    font-size:clamp(1.4rem, 7vw, 1.9rem);
    line-height:1.14;
    margin:1.15rem 0 .65rem;
  }
  .monument-rich-html h3{
    font-size:clamp(1.2rem, 6vw, 1.55rem);
    line-height:1.18;
  }
  .monument-rich-html p,
  .monument-rich-html ul,
  .monument-rich-html ol{
    margin-bottom:.85rem;
  }
  .monument-html-panel{
    padding:1.15rem;
    border-radius:20px;
  }
  .monument-current-image-preview{
    width:132px;
  }
  .municipality-settings-form{
    padding-bottom:7.5rem;
  }
  .municipality-save-dock{
    left:1rem;
    right:1rem;
    bottom:1rem;
    justify-content:stretch;
    border-radius:24px;
  }
  .municipality-save-dock .btn{
    width:100%;
    min-width:0;
  }
}


/* v1.5.1 · Contenedores restaurados, carruseles móviles y contenido sin desbordes */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
.public-body,
.site-header,
.site-footer{
  width:100%;
  max-width:100%;
}
.public-body > main:not(.container){
  width:100%;
  max-width:100%;
}
.brand-logo-main{
  max-width:min(72vw,100%);
  object-fit:contain;
}
.home-card-scroll{
  margin-left:0;
  margin-right:0;
  padding-left:.35rem;
  padding-right:.35rem;
  overflow-x:auto;
  overflow-y:hidden;
  flex-wrap:nowrap!important;
  scroll-snap-type:x mandatory;
  scroll-padding-left:.35rem;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.home-card-scroll > [class*="col-"]{
  flex:0 0 auto;
  scroll-snap-align:start;
}
.home-category-scroll .home-category-col,
.home-card-scroll .home-card-scroll-col{
  flex:0 0 auto;
}
.cookie-banner[hidden]{
  display:none!important;
}
.cookie-banner{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:1090;
  padding:1rem 0;
  background:rgba(15,36,36,.96);
  color:#fff;
  box-shadow:0 -18px 48px rgba(0,0,0,.22);
  backdrop-filter:blur(14px);
}
.cookie-banner-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1.5rem;
}
.cookie-banner-copy{
  display:grid;
  gap:.35rem;
  min-width:0;
}
.cookie-banner-copy strong{
  font-size:1rem;
  font-weight:950;
}
.cookie-banner-copy p{
  margin:0;
  color:rgba(255,255,255,.84);
  line-height:1.55;
  overflow-wrap:anywhere;
}
.cookie-banner-copy a{
  width:max-content;
  max-width:100%;
  color:#fff;
  font-weight:900;
  text-decoration:underline;
  text-underline-offset:.18em;
  overflow-wrap:anywhere;
}
.cookie-banner-actions{
  flex:0 0 auto;
}
.cookie-banner-actions .btn{
  min-width:132px;
}

/* Cualquier texto largo debe plegarse, no ensanchar la página */
.rich-copy,
.article-copy,
.monument-rich-html,
.detail-box,
.form-card,
.footer-links,
.text-footer,
.footer-bottom,
.site-footer,
.business-contact-panel,
.page-head,
.monument-visit-box{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.rich-copy *,
.article-copy *,
.monument-rich-html *,
.detail-box *,
.footer-links *,
.text-footer *,
.footer-bottom *{
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.rich-copy img,
.rich-copy video,
.rich-copy iframe,
.article-copy img,
.article-copy video,
.article-copy iframe,
.monument-rich-html img,
.monument-rich-html video,
.monument-rich-html iframe{
  max-width:100%;
  height:auto;
}
.rich-copy .table-responsive,
.article-copy .table-responsive,
.monument-rich-html .table-responsive{
  display:block;
  width:100%;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.rich-copy .table-responsive > table,
.article-copy .table-responsive > table,
.monument-rich-html .table-responsive > table{
  display:table;
  width:100%;
  max-width:none;
  margin-bottom:0;
}
.rich-copy > table,
.article-copy > table,
.monument-rich-html > table{
  display:block;
  width:100%;
  max-width:100%;
  overflow-x:auto;
}
.rich-copy pre,
.article-copy pre,
.monument-rich-html pre{
  max-width:100%;
  overflow-x:auto;
  white-space:pre-wrap;
  word-break:break-word;
}
.rich-copy a.btn,
.article-copy a.btn,
.monument-rich-html a.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  max-width:100%;
  text-decoration:none!important;
  color:var(--bs-btn-color, inherit)!important;
  overflow-wrap:normal;
  word-break:normal;
  white-space:normal;
}
.footer-links a,
.text-footer a,
.footer-bottom a,
.detail-box a{
  overflow-wrap:anywhere;
  word-break:break-word;
}
@media (min-width:768px){
  .home-card-scroll{
    margin-left:0;
    margin-right:0;
    padding-left:.35rem;
    padding-right:.35rem;
    overflow-x:auto;
    overflow-y:hidden;
    flex-wrap:nowrap!important;
    scroll-snap-type:x mandatory;
    scroll-padding-left:.35rem;
  }
  .home-card-scroll .home-card-scroll-col,
  .home-category-scroll .home-category-col{
    min-width:33.333333%;
  }
}
@media (max-width:991px){
  .brand-logo-main{
    max-width:min(68vw,100%);
  }
}
@media (max-width:767px){
  .home-card-scroll{
    padding-top:.1rem;
    padding-bottom:.85rem!important;
    padding-left:.45rem;
    padding-right:.45rem;
    scroll-padding-left:.45rem;
  }
  .home-category-scroll .home-category-col{
    min-width:66.666667%;
  }
  .home-card-scroll .home-card-scroll-col{
    min-width:58.333333%;
  }
  .cookie-banner{
    padding:.9rem 0;
  }
  .cookie-banner-inner{
    display:grid;
    gap:1rem;
  }
  .cookie-banner-actions,
  .cookie-banner-actions .btn{
    width:100%;
  }
  .rich-copy a.btn,
  .article-copy a.btn,
  .monument-rich-html a.btn{
    width:100%;
  }
}


/* v1.5.2 · Padding público móvil consistente y carruseles también en escritorio */
@media (max-width:767px){
  .public-body .container,
  .site-header .container,
  .site-footer .container,
  .soft-section > .container,
  main.container,
  section.container{
    padding-left:1rem!important;
    padding-right:1rem!important;
  }

  .public-body .section-pad{
    overflow:visible;
  }

  .home-card-scroll{
    margin-left:0!important;
    margin-right:0!important;
    padding-left:.15rem!important;
    padding-right:.35rem!important;
  }

  .home-card-scroll > [class*="col-"]{
    padding-left:.4rem;
    padding-right:.4rem;
  }

  .home-card-scroll > [class*="col-"]:first-child{
    padding-left:0;
  }

  .home-card-scroll > [class*="col-"]:last-child{
    padding-right:0;
  }

  .category-card,
  .business-card,
  .product-card,
  .campaign-card,
  .monument-card{
    width:100%;
  }
}


/* v1.5.3 · Header fijo, buscadores plegables y cards más compactas */
.site-header.fixed-top{
  z-index:1080;
}
.search-disclosure{
  display:grid;
  gap:1rem;
}
.search-disclosure-toggle{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 1.15rem;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--soft);
  color:var(--ink);
  font-weight:950;
  text-align:left;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.search-disclosure-toggle:hover,
.search-disclosure-toggle:focus{
  background:#fff;
  border-color:rgba(15,118,110,.35);
}
.search-disclosure-icon{
  display:grid;
  place-items:center;
  flex:0 0 36px;
  width:36px;
  height:36px;
  border-radius:999px;
  background:rgba(15,118,110,.12);
  color:var(--brand-primary);
  font-size:1.4rem;
  line-height:1;
}
.search-disclosure-panel{
  display:grid;
  gap:1rem;
}
.search-disclosure-panel[hidden]{
  display:none!important;
}
.search-disclosure.is-open .search-disclosure-toggle{
  background:#fff;
}
.card-body-custom p{
  min-height:0;
}
.category-card-copy small{
  display:none;
}
@media (max-width:767px){
  .search-disclosure-toggle{
    padding:.95rem 1rem;
    border-radius:20px;
  }
  .card-body-custom{
    padding:1rem;
  }
  .card-body-custom h3,
  .monument-card .card-body-custom h2{
    font-size:1rem;
    line-height:1.22;
  }
  .mini-badge,
  .monument-card .eyebrow{
    font-size:.7rem;
  }
  .card-body-custom .btn,
  .monument-card .btn{
    font-size:.78rem;
    padding:.45rem .65rem;
  }
  .monument-meta{
    gap:.4rem;
  }
  .monument-meta span{
    min-height:28px;
    padding:.25rem .55rem;
    font-size:.72rem;
  }
}


/* v1.5.4 · Negocios personalizables, Google Maps y volver arriba */
.business-profile-theme .business-hero{
  background:linear-gradient(135deg,var(--business-primary,#333333),var(--business-secondary,#333333));
}
.business-profile-theme .btn-brand{
  background:var(--business-primary,#0f766e);
  border-color:var(--business-primary,#0f766e);
}
.business-profile-theme .btn-brand:hover,
.business-profile-theme .btn-brand:focus{
  filter:brightness(.92);
  background:var(--business-primary,#0f766e);
  border-color:var(--business-primary,#0f766e);
}
.business-profile-theme .mini-badge{
  color:var(--business-primary,#0f766e);
  background:rgba(255,255,255,.86);
}
.business-map-box{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:32px;
  background:#fff;
  box-shadow:var(--shadow);
}
.business-map-frame{
  display:block;
  width:100%;
  min-height:420px;
  border:0;
}
.scroll-top-button{
  position:fixed;
  right:1.2rem;
  bottom:1.2rem;
  z-index:1088;
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border:0;
  border-radius:999px;
  background:var(--brand-primary);
  color:#fff;
  box-shadow:0 18px 46px rgba(10,36,35,.28);
  opacity:0;
  visibility:hidden;
  transform:translateY(14px);
  transition:opacity .18s ease,visibility .18s ease,transform .18s ease,filter .18s ease;
}
.scroll-top-button svg{
  width:28px;
  height:28px;
  fill:currentColor;
}
.scroll-top-button.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.scroll-top-button:hover,
.scroll-top-button:focus{
  filter:brightness(.92);
}
.cookie-banner-visible .scroll-top-button{
  bottom:10rem;
}
@media (max-width:767px){
  .business-map-box{
    border-radius:22px;
  }
  .business-map-frame{
    min-height:320px;
  }
  .scroll-top-button{
    right:1rem;
    bottom:1rem;
    width:48px;
    height:48px;
  }
  .scroll-top-button svg{
    width:25px;
    height:25px;
  }
  .cookie-banner-visible .scroll-top-button{
    bottom:12rem;
  }
}


/* v1.5.5 · Personalización municipal y ficha de negocio adaptable */
.panel-switch-card{
  display:flex;
  align-items:flex-start;
  gap:.85rem;
  height:100%;
  padding:1rem 1.1rem;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--soft);
}
.panel-switch-card .form-check-input{
  flex:0 0 auto;
  margin-top:.2rem;
}
.panel-switch-card .form-check-label{
  display:grid;
  gap:.2rem;
}
.panel-switch-card small{
  color:var(--muted);
  font-weight:600;
}
.business-contact-column{
  display:flex;
}
.business-contact-panel{
  width:100%;
}
.business-public-logo{
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:92px;
  padding:1rem;
  margin-bottom:1rem;
  border-radius:22px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(255,255,255,.35);
  box-shadow:0 16px 38px rgba(0,0,0,.12);
}
.business-public-logo img{
  width:auto;
  max-width:100%;
  max-height:110px;
  object-fit:contain;
}
.business-empty-panel{
  display:none;
}
.business-dashboard-preview{
  display:grid;
  gap:.65rem;
  margin-top:.85rem;
  padding:1rem;
  border:1px dashed var(--line);
  border-radius:18px;
  background:var(--soft);
}
.business-dashboard-preview span{
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:900;
  color:var(--muted);
}
.business-dashboard-preview img{
  display:block;
  max-width:100%;
  max-height:110px;
  object-fit:contain;
  border:1px solid var(--line);
  border-radius:14px;
  padding:.45rem;
  background:#fff;
}
.business-dashboard-preview.cover-preview img{
  width:100%;
  height:140px;
  max-height:none;
  object-fit:cover;
}
@media (max-width:991px){
  .business-contact-column{
    order:-1;
    margin-bottom:.5rem;
  }
  .business-public-logo{
    min-height:84px;
  }
  .business-public-logo img{
    max-height:96px;
  }
}


/* v1.5.6 · Empresas unificadas, offcanvas superior, tablas responsive y cabeceras de negocio */
.offcanvas{
  z-index:1110;
}
.offcanvas-backdrop{
  z-index:1105;
}
.business-profile-theme .business-hero h1{
  color:var(--business-h1-color,#fff);
}
.business-profile-theme .business-hero p{
  color:var(--business-intro-color,rgba(255,255,255,.82));
}
.category-listing-intro{
  display:grid;
  gap:.65rem;
}
.category-listing-intro h2{
  margin:0;
  font-size:clamp(1.65rem,3vw,2.7rem);
  line-height:1.08;
  font-weight:950;
  letter-spacing:-.04em;
}
.category-listing-intro p{
  margin:0;
  max-width:920px;
  color:var(--muted);
  font-size:1.04rem;
  line-height:1.72;
}


/* v1.5.7 · Tablas HTML contenidas sin romper el ancho de Monumentos */
.monument-content,
.monument-html-panel,
.monument-rich-html{
  min-width:0;
  max-width:100%;
}
.monument-html-panel{
  overflow:hidden;
}
.rich-copy .table-responsive,
.article-copy .table-responsive,
.monument-rich-html .table-responsive{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.rich-copy .table-responsive > table,
.article-copy .table-responsive > table,
.monument-rich-html .table-responsive > table{
  width:max-content;
  min-width:100%;
  max-width:none;
}
.monument-rich-html{
  overflow-wrap:anywhere;
  word-break:break-word;
}
@media (max-width:767px){
  .monument-rich-html .table-responsive{
    border-radius:16px;
  }
}


/* v1.5.8 · Menú Empresas por categorías, fichas de categoría y seguridad visual */
.nav-category-dropdown{
  min-width:290px;
  max-height:min(62vh,520px);
  overflow-y:auto;
  padding:.65rem;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:0 22px 52px rgba(10,36,35,.18);
}
.nav-category-dropdown .dropdown-item{
  border-radius:14px;
  padding:.68rem .8rem;
  font-weight:800;
  white-space:normal;
}
.nav-category-dropdown .dropdown-item:hover,
.nav-category-dropdown .dropdown-item:focus{
  background:var(--soft);
  color:var(--brand-primary);
}
.nav-category-all{
  margin-bottom:.35rem;
  color:var(--brand-primary);
}
.mobile-category-disclosure{
  display:grid;
  gap:.45rem;
}
.mobile-category-summary{
  list-style:none;
  cursor:pointer;
  position:relative;
  padding-right:2.5rem;
}
.mobile-category-summary::-webkit-details-marker{
  display:none;
}
.mobile-category-summary::after{
  content:"+";
  position:absolute;
  right:1rem;
  top:50%;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:999px;
  background:rgba(15,118,110,.12);
  color:var(--brand-primary);
  font-size:1.15rem;
  font-weight:950;
}
.mobile-category-disclosure[open] .mobile-category-summary::after{
  content:"−";
}
.mobile-category-panel{
  display:grid;
  gap:.35rem;
  max-height:min(46vh,420px);
  overflow-y:auto;
  padding:.35rem .2rem .35rem .75rem;
}
.mobile-sublink{
  display:block;
  padding:.72rem .8rem;
  border-radius:16px;
  color:var(--ink);
  text-decoration:none;
  font-weight:800;
  background:var(--soft);
}
.mobile-sublink:hover,
.mobile-sublink:focus{
  color:var(--brand-primary);
}
.mobile-sublink-strong{
  background:rgba(15,118,110,.14);
  color:var(--brand-primary);
}
.category-page-head p{
  width:100%;
  max-width:100%;
  font-size:.98rem;
  line-height:1.68;
}
@media (max-width:767px){
  .category-page-head p{
    font-size:.9rem;
    line-height:1.58;
  }
}


/* v1.5.9 · Categorías con portada visual y gestión de imágenes desde admin */
.category-current-media{
  position:relative;
}
.category-current-preview{
  width:100%;
  height:138px;
  object-fit:cover;
}
.category-cover-preview{
  height:168px;
}
.category-media-clear{
  position:absolute;
  top:.7rem;
  right:.7rem;
  z-index:2;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  padding:0;
  border:0;
  border-radius:999px;
  background:#991b1b;
  color:#fff;
  font-size:1.25rem;
  font-weight:950;
  line-height:1;
  box-shadow:0 12px 28px rgba(0,0,0,.22);
}
.category-media-clear:hover,
.category-media-clear:focus{
  background:#7f1d1d;
}
.category-page-hero.has-cover{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:clamp(260px,38vw,430px);
  display:flex;
  align-items:flex-end;
  padding:clamp(1.5rem,4vw,3.6rem);
  border-radius:36px;
  background:
    linear-gradient(180deg,rgba(0,0,0,.34),rgba(0,0,0,.72)),
    var(--category-cover-image) center/cover no-repeat;
  box-shadow:var(--shadow);
}
.category-page-hero.has-cover > div{
  position:relative;
  z-index:1;
  max-width:980px;
}
.category-page-hero.has-cover h1,
.category-page-hero.has-cover p{
  color:var(--category-hero-text,#fff);
}
.category-page-hero.has-cover p{
  max-width:920px;
  opacity:.96;
}
@media (max-width:767px){
  .category-current-preview{
    height:118px;
  }
  .category-cover-preview{
    height:142px;
  }
  .category-page-hero.has-cover{
    min-height:250px;
    padding:1.35rem;
    border-radius:26px;
  }
}


/* v1.6.0 · Ajustes de respiración móvil, cabecera de categorías y cifras en home */
.mobile-offcanvas-header{
  min-height:82px;
  align-items:center;
  gap:1rem;
}
.mobile-offcanvas-brand{
  display:inline-flex;
  align-items:center;
  max-width:calc(100% - 52px);
}
.mobile-offcanvas-logo{
  display:block;
  width:auto;
  max-width:min(190px,100%);
  max-height:58px;
  object-fit:contain;
}
.home-stats-section{
  padding-top:1.2rem;
}
.home-stats-card{
  padding:clamp(1.35rem,3vw,2.2rem);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:linear-gradient(135deg,var(--soft),#fff);
  box-shadow:0 18px 48px rgba(10,36,35,.08);
}
.home-stats-head{
  margin-bottom:1.2rem;
}
.home-stat-grid{
  margin-top:0;
}
.category-listing-intro p{
  width:100%;
  max-width:100%;
  font-size:.98rem;
  line-height:1.68;
}
@media (min-width:768px){
  .category-page-hero.has-cover{
    align-items:center;
  }
  .home-card-scroll{
    padding-top:.6rem;
    padding-bottom:1.25rem!important;
  }
}
@media (max-width:767px){
  .public-body > main.container.section-pad,
  .public-body > main.narrow-reading.section-pad,
  .public-body > main.page-reading-wide.section-pad{
    padding-top:1.65rem;
  }
  .hero-section{
    padding-top:2rem;
    padding-bottom:2rem;
  }
  .category-listing-intro p{
    font-size:.9rem;
    line-height:1.58;
  }
  .home-stats-section{
    padding-top:.8rem;
  }
  .home-stats-card{
    padding:1.15rem;
    border-radius:22px;
  }
  .home-stat-grid{
    display:grid;
    grid-template-columns:1fr;
  }
}


/* v1.6.1 · Hero más compacto y carrusel de categorías sin caja visual propia */
.home-category-scroll{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.home-category-scroll.row{
  border:0!important;
  box-shadow:none!important;
  outline:0!important;
}
.home-category-scroll::before,
.home-category-scroll::after{
  display:none!important;
}


/* v1.6.2 · Flechas de navegación en carruseles de home para escritorio */
.home-carousel-shell{
  position:relative;
}
.home-carousel-arrow{
  position:absolute;
  top:50%;
  z-index:12;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  padding:0;
  border:1px solid rgba(16,42,42,.16);
  border-radius:999px;
  background:rgba(255,255,255,.96);
  color:var(--ink);
  box-shadow:0 10px 24px rgba(10,36,35,.16);
  transform:translateY(-50%);
  transition:opacity .18s ease, visibility .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}
.home-carousel-arrow svg{
  width:23px;
  height:23px;
  fill:currentColor;
}
.home-carousel-prev{
  left:-.35rem;
}
.home-carousel-next{
  right:-.35rem;
}
.home-carousel-arrow:hover,
.home-carousel-arrow:focus{
  background:var(--button-bg,var(--brand-primary));
  border-color:var(--button-bg,var(--brand-primary));
  color:var(--button-text,#fff);
}
.home-carousel-arrow.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
@media (max-width:767px){
  .home-carousel-arrow{
    display:none!important;
  }
}


/* v1.6.3 · Cards sin sombras */
.category-card{
  box-shadow:none!important;
}
.category-card:hover,
.business-card:hover,
.product-card:hover,
.campaign-card:hover,
.monument-card:hover,
.quick-card:hover{
  box-shadow:none!important;
}


/* v1.6.4 · Contenido HTML/CSS editable en páginas públicas */
.page-custom-html{
  width:100%;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.page-custom-html > :first-child{
  margin-top:0;
}
.page-custom-html > :last-child{
  margin-bottom:0;
}
.page-custom-html img,
.page-custom-html video,
.page-custom-html iframe{
  max-width:100%;
  height:auto;
}
.page-custom-html table{
  max-width:100%;
}


/* v1.6.5 · Jerarquía SEO de cards, monumentos compactos y botones con texto fuerte */
.btn{
  font-weight:850!important;
}
.card-body-custom h2,
.card-body-custom h3,
.category-card-copy h3{
  font-weight:900;
  letter-spacing:-.025em;
}
.category-card-copy{
  align-content:start;
}
.category-card-copy .btn{
  width:max-content;
  max-width:100%;
}
.monument-meta{
  gap:.45rem;
  margin-top:.8rem;
}
.monument-meta span{
  min-height:26px;
  padding:.22rem .55rem;
  font-size:.76rem;
  font-weight:750;
}
@media (max-width:767px){
  .monument-meta span{
    min-height:24px;
    padding:.18rem .48rem;
    font-size:.66rem;
  }
}


/* v1.6.6 · Ficha pública de empresa con hero encapsulado */
.business-hero-shell{
  padding-top:2.35rem;
}
.business-breadcrumb{
  color:var(--ink);
}
.business-breadcrumb .breadcrumb-item,
.business-breadcrumb .breadcrumb-item a,
.business-breadcrumb .breadcrumb-item.active{
  color:var(--ink);
}
.business-page-hero{
  overflow:hidden;
  padding:clamp(1.55rem,3.7vw,3.6rem);
  border-radius:36px;
  background:linear-gradient(135deg,var(--business-primary,#333333),var(--business-secondary,#333333));
  color:#fff;
}
.business-hero-inner{
  width:100%;
}
@media (max-width:767px){
  .business-hero-shell{
    padding-top:1.65rem;
  }
  .business-page-hero{
    padding:1.35rem;
    border-radius:26px;
  }
}


/* v1.6.7 · Catálogo más visible, ficha de empresa ampliada, cifras flexibles y redes sociales */
@media (min-width:768px){
  .section-pad{
    padding:2.6rem 0;
  }
}

.admin-table-thumb{
  display:block;
  width:58px;
  height:58px;
  object-fit:cover;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--soft);
}
.product-current-media{
  position:relative;
}
.product-current-preview{
  width:100%;
  height:180px;
  object-fit:cover;
}
.product-media-clear{
  position:absolute;
  top:.7rem;
  right:.7rem;
  z-index:2;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  padding:0;
  border:0;
  border-radius:999px;
  background:#991b1b;
  color:#fff;
  font-size:1.25rem;
  font-weight:950;
  line-height:1;
  box-shadow:0 12px 28px rgba(0,0,0,.22);
}
.product-media-clear:hover,
.product-media-clear:focus{
  background:#7f1d1d;
}

.business-description-section,
.business-products-section,
.business-useful-section,
.business-map-section{
  width:100%;
}
.business-useful-box{
  width:100%;
}
.business-useful-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem;
  margin-top:1rem;
}
.business-useful-grid > div{
  display:grid;
  gap:.35rem;
  min-width:0;
  padding:1rem 1.05rem;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--soft);
}
.business-useful-grid strong{
  font-weight:950;
}
.business-useful-grid span,
.business-useful-grid a{
  min-width:0;
  overflow-wrap:anywhere;
}

.business-contact-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.65rem;
}
.button-icon{
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  width:20px;
  height:20px;
}
.button-icon svg{
  width:100%;
  height:100%;
  fill:currentColor;
}

.home-stat-grid{
  display:grid;
  grid-template-columns:repeat(var(--home-stat-count,3),minmax(0,1fr));
  gap:1rem;
}
.home-stat-grid > div{
  width:100%;
  min-width:0;
  text-align:center;
}
.home-stat-grid strong{
  font-size:clamp(1.6rem,3vw,2.25rem);
}
.home-stat-grid span{
  font-weight:800;
}

.footer-social-links{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:1rem;
}
.footer-social-links a{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#fff;
  transition:transform .18s ease, background .18s ease, border-color .18s ease;
}
.footer-social-links a:hover,
.footer-social-links a:focus{
  transform:translateY(-2px);
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.36);
}
.footer-social-links svg{
  width:21px;
  height:21px;
  fill:currentColor;
}

@media (max-width:1199px){
  .home-stat-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media (max-width:767px){
  .product-current-preview{
    height:150px;
  }
  .admin-table-thumb{
    width:48px;
    height:48px;
  }
  .business-useful-grid{
    grid-template-columns:1fr;
  }
  .home-stat-grid{
    grid-template-columns:1fr;
  }
}


/* v1.6.8 · Hero municipal coloreada y admin de municipio reorganizado */
.hero-section{
  color:#fff;
  background:
    linear-gradient(135deg,rgba(0,0,0,.28),rgba(0,0,0,.38)),
    radial-gradient(circle at top right,rgba(255,255,255,.18),transparent 30%),
    linear-gradient(135deg,var(--hero-gradient-start,var(--brand-primary)),var(--hero-gradient-end,var(--brand-secondary)));
}
.hero-section .hero-kicker,
.hero-section h1{
  color:#fff;
}
.hero-section .hero-lead{
  color:rgba(255,255,255,.9);
}
.hero-section .btn-light{
  color:var(--ink);
}

.municipality-settings-pro{
  display:grid;
  gap:1.4rem;
}
.settings-group{
  padding:1.35rem;
  border:1px solid var(--line);
  border-radius:26px;
  background:linear-gradient(180deg,#fff,rgba(244,247,245,.48));
}
.settings-group .panel-head{
  margin-bottom:.4rem;
}
.settings-help{
  margin:0 0 1.2rem;
  color:var(--muted);
  line-height:1.65;
}
.inner-panel-head{
  margin-top:.8rem;
  margin-bottom:0!important;
}
.home-section-admin-grid{
  display:grid;
  gap:1rem;
}
.home-section-admin-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:1rem;
  align-items:center;
  padding:1rem;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
}
.home-section-admin-card strong{
  display:block;
  font-size:1.02rem;
}
.home-section-admin-card p{
  margin:.3rem 0 0;
  color:var(--muted);
}
.home-section-admin-controls{
  display:grid;
  grid-template-columns:minmax(185px,1fr) 110px;
  gap:.8rem;
  align-items:end;
}
.compact-switch{
  min-height:74px;
  margin:0;
}
@media (max-width:991px){
  .home-section-admin-card{
    grid-template-columns:1fr;
  }
  .home-section-admin-controls{
    grid-template-columns:1fr 120px;
  }
}
@media (max-width:767px){
  .settings-group{
    padding:1rem;
    border-radius:20px;
  }
  .home-section-admin-controls{
    grid-template-columns:1fr;
  }
}
