.db-listing,.db-hub-head,.db-hero,.db-modules,.db-grid{--db-fg:#334155;--db-muted:#64748b;--db-line:#e2e8f0;--db-accent:#2b6cb0;--db-navy:#1a365d;--db-bg:#fff;--db-soft:#f1f5f9;--db-soft2:#f8fafc;--db-danger:#b91c1c}
.db-listing{color:var(--db-fg);line-height:1.6}
.db-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.db-crumbs{font-size:.85rem;color:var(--db-muted);margin:0 0 1rem;display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.db-crumbs a{color:var(--db-muted);text-decoration:none}
.db-crumbs a:hover{color:var(--db-accent)}
.db-crumb-sep{opacity:.5}

/* Hero de la ficha */
.db-hero-listing{background:linear-gradient(135deg,#1a365d 0%,#2b6cb0 100%);border-radius:16px;padding:34px 30px;margin:0 0 18px;color:#fff;box-shadow:0 10px 30px rgba(26,54,93,.28)}
.db-hero-listing__eyebrow{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.82;margin:0 0 10px}
.db-hero-listing__title{color:#fff;font-size:1.9rem;line-height:1.2;font-weight:800;margin:0 0 8px}
.db-hero-listing__sub{opacity:.85;margin:0 0 4px;font-size:.92rem}
.db-hero-listing__lead{opacity:.92;margin:10px 0 18px;line-height:1.6;font-size:.96rem}
.db-hero-listing__actions{display:flex;flex-wrap:wrap;gap:10px}
.db-hbtn{display:inline-flex;align-items:center;gap:.35rem;background:rgba(255,255,255,.15);color:#fff;padding:10px 16px;border-radius:8px;text-decoration:none;font-weight:600;font-size:.83rem;border:1px solid rgba(255,255,255,.28)}
.db-hbtn:hover{background:rgba(255,255,255,.25)}
.db-hbtn--solid{background:#fff;color:#1a365d;border-color:#fff;font-weight:700}
.db-hbtn--solid:hover{background:#eaf1f8}

/* At a glance (tarjeta antes de "About this office") */
.db-glance{margin:0 0 2rem;padding:16px 18px;background:linear-gradient(135deg,#f8fafc 0%,#eef5fb 100%);border:1px solid var(--db-line);border-radius:12px;box-shadow:0 2px 6px rgba(0,0,0,.04)}
.db-glance__label{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--db-muted);font-weight:700;margin:0 0 10px}
.db-glance__chips{display:flex;flex-wrap:wrap;gap:8px}
.db-chip{display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:1px solid #d5e4f2;color:var(--db-navy);padding:7px 13px;border-radius:8px;font-size:.83rem;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.db-chip::before{content:"✓";color:var(--db-accent);font-weight:800}

/* Menú de píldoras */
.db-pills{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.db-pill{display:inline-block;background:var(--db-soft);border:1px solid var(--db-line);color:var(--db-accent);padding:7px 14px;border-radius:999px;text-decoration:none;font-size:.8rem;font-weight:600}
.db-pill:hover{background:#e2ebf5}

/* Secciones */
.db-section{margin:0 0 2rem;scroll-margin-top:80px}
.db-section>h2{font-size:1.15rem;font-weight:700;color:var(--db-navy);margin:0 0 .9rem}
.db-section--flush>h2{margin:0}

/* Mapa */
.db-map{height:300px;border-radius:14px;overflow:hidden;border:1px solid var(--db-line);box-shadow:0 4px 14px rgba(0,0,0,.12);margin:0 0 16px}
.db-pin span{display:block;width:18px;height:18px;border-radius:50% 50% 50% 0;background:var(--db-accent);transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}

/* Columnas horario / contacto */
.db-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.db-panel{background:var(--db-bg);border:1px solid var(--db-line);border-radius:12px;padding:20px;box-shadow:0 2px 6px rgba(0,0,0,.05);scroll-margin-top:80px}
.db-panel__title{font-size:1rem;font-weight:700;color:var(--db-navy);margin:0 0 12px;border-bottom:2px solid var(--db-accent);padding-bottom:7px}

/* Datos de contacto */
.db-data{display:grid;gap:.6rem}
.db-row{display:grid;grid-template-columns:1.4rem 6rem 1fr;align-items:start;gap:.5rem}
.db-row__label{color:var(--db-muted);font-size:.85rem}
.db-row__value{font-size:.9rem}
.db-row__value a{color:var(--db-accent);text-decoration:none;word-break:break-word}
.db-pluscode{display:inline-block;font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--db-soft);border:1px solid var(--db-line);border-radius:6px;padding:1px 8px;font-weight:600;text-decoration:none}

/* Horario */
.db-hours{border-collapse:collapse;width:100%;font-size:.87rem}
.db-hours th,.db-hours td{text-align:left;padding:8px 12px;border-top:1px solid #eef2f7}
.db-hours tr:nth-child(odd){background:var(--db-soft2)}
.db-hours th{font-weight:600;color:var(--db-fg)}
.db-hours td{color:#475569}
.db-hours__closed{color:var(--db-danger);font-weight:600}
.db-hours-line{font-size:.9rem}

/* QR */
.db-qr-block{display:flex;gap:14px;align-items:center;border-top:1px solid #eef2f7;padding-top:14px;margin-top:14px}
.db-qr{width:92px;height:92px;flex:0 0 auto;border:1px solid var(--db-line);border-radius:8px;padding:3px;background:#fff}
.db-qr img,.db-qr canvas{display:block;width:100%;height:100%}
.db-qr-block__text strong{display:block;font-size:.82rem;color:var(--db-fg);margin-bottom:2px}
.db-qr-block__text span{font-size:.76rem;color:var(--db-muted);line-height:1.4}

/* Sobre */
.db-prose{font-size:.96rem;line-height:1.75}

/* Servicios */
.db-services{margin:0;padding:0;list-style:none}
.db-service{padding:10px 14px;background:var(--db-soft);border-left:3px solid var(--db-accent);border-radius:6px;font-size:.9rem;color:var(--db-fg);margin:0 0 8px}

/* FAQ acordeón */
.db-faq__item{background:var(--db-bg);border:1px solid var(--db-line);border-radius:10px;margin:0 0 10px}
.db-faq__q{cursor:pointer;padding:14px 16px;font-weight:600;color:var(--db-navy);font-size:.95rem;list-style:none}
.db-faq__q::-webkit-details-marker{display:none}
.db-faq__q::after{content:"＋";float:right;color:var(--db-accent);font-weight:700}
.db-faq__item[open] .db-faq__q::after{content:"－"}
.db-faq__item[open] .db-faq__q{border-bottom:1px solid #eef2f7}
.db-faq__a{padding:12px 16px;color:#475569;font-size:.92rem;line-height:1.65}

/* Rejilla de tarjetas (hubs + cercanas) */
.db-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin:0}
.db-related{margin:0}
.db-card{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border:1px solid var(--db-line);border-radius:.7rem;text-decoration:none;color:var(--db-fg);background:var(--db-bg);box-shadow:0 2px 6px rgba(0,0,0,.05);transition:border-color .15s,box-shadow .15s}
.db-card:hover{border-color:var(--db-accent);box-shadow:0 4px 14px rgba(0,0,0,.08)}
.db-card__title{font-weight:700;color:var(--db-navy)}
.db-card__meta{color:var(--db-muted);font-size:.85rem}
.db-card__go{color:var(--db-accent);font-size:.85rem;margin-top:.25rem}

/* Hubs / portada */
.db-hub-head h1{font-size:1.9rem;line-height:1.2;margin:.2rem 0}
.db-hub-sub{color:var(--db-muted);margin:.1rem 0 1rem}
.db-hero{text-align:center;padding:2.5rem 1rem;background:var(--db-soft2);border-radius:.8rem;margin:0 0 1.5rem}
.db-hero h1{font-size:2.2rem;margin:0 0 .5rem}
.db-hero__scale{color:var(--db-muted);font-size:1.1rem;margin:0 0 1.2rem}
.db-modules{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin:0 0 2rem}
.db-module{text-align:center;padding:1rem}
.db-module h3{margin:.4rem 0 .25rem;font-size:1.05rem}
.db-module p{color:var(--db-muted);margin:0;font-size:.9rem}
.db-btn{display:inline-flex;align-items:center;gap:.4rem;background:var(--db-accent);color:#fff;padding:.55rem .9rem;border-radius:.5rem;text-decoration:none;font-weight:600}
.db-btn:hover{filter:brightness(1.08)}

/* Iconos */
.db-ico{display:inline-block;width:1.1em;height:1.1em;background:currentColor;vertical-align:-.15em;-webkit-mask:var(--db-i) center/contain no-repeat;mask:var(--db-i) center/contain no-repeat;color:var(--db-accent)}
.db-ico--pin{--db-i:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C8 2 5 5 5 9c0 5 7 13 7 13s7-8 7-13c0-4-3-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z"/></svg>')}
.db-ico--phone{--db-i:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 2a2 2 0 0 0-2 2c0 8 6 14 14 14a2 2 0 0 0 2-2v-3l-4-1-2 2a11 11 0 0 1-5-5l2-2-1-4H6z"/></svg>')}
.db-ico--clock{--db-i:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 10V6h-2v8h6v-2h-4z"/></svg>')}
.db-ico--mail{--db-i:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2 5h20v14H2V5zm2 2v.5l8 5 8-5V7H4z"/></svg>')}
.db-ico--globe{--db-i:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm7.7 8h-3.4c-.2-1.9-.7-3.6-1.4-4.8A8 8 0 0 1 19.7 10zM12 4c1 0 2.2 2.3 2.6 6H9.4C9.8 6.3 11 4 12 4zM4.3 14h3.4c.2 1.9.7 3.6 1.4 4.8A8 8 0 0 1 4.3 14z"/></svg>')}
.db-ico--directions{--db-i:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21.7 11.3 12.7 2.3a1 1 0 0 0-1.4 0l-9 9a1 1 0 0 0 0 1.4l9 9a1 1 0 0 0 1.4 0l9-9a1 1 0 0 0 0-1.4zM14 14v-3h-3v2H9v-4h5V6l4 4-4 4z"/></svg>')}

/* Página de estado (region) */
.db-region .db-grid{--db-fg:#334155;--db-muted:#64748b;--db-line:#e2e8f0;--db-accent:#2b6cb0;--db-navy:#1a365d}
.db-hero-region .db-hero-listing__title{font-size:2rem}
.db-hero-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.db-stat{display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.28);color:#fff;padding:8px 14px;border-radius:8px;font-size:.85rem;font-weight:600}
.db-section--cities{background:var(--db-soft2);border:1px solid var(--db-line);border-radius:14px;padding:20px 22px}
.db-section--cities>h2{margin:0 0 .2rem}
.db-section--cities .db-hub-sub{margin:0 0 1rem}

/* Checklist "What to bring" (div-based, no native <li> bullets) */
.db-checklist{margin:0;padding:0;display:grid;gap:10px;list-style:none}
.db-check{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--db-soft2);border:1px solid var(--db-line);border-radius:8px;font-size:.92rem;line-height:1.55}
.db-check__mark{flex:0 0 auto;width:20px;height:20px;margin-top:1px;border-radius:50%;background:var(--db-accent);color:#fff;font-size:.72rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.db-check__text{flex:1 1 auto}

/* Ciudades aún sin publicar (tarjeta no enlazada) */
.db-card--soon{cursor:default;background:var(--db-soft2);border-style:dashed;box-shadow:none}
.db-card--soon:hover{border-color:var(--db-line);box-shadow:none}
.db-card--soon .db-card__title{color:var(--db-muted)}

/* Bloque destacado con fondo (rompe el blanco) */
.db-callout{display:flex;gap:14px;align-items:flex-start;background:linear-gradient(135deg,#eef5fb 0%,#e2edf8 100%);border:1px solid #d5e4f2;border-left:4px solid var(--db-accent);border-radius:12px;padding:18px 20px;margin:0 0 2rem;color:#2a445f}
.db-callout__icon{font-size:1.4rem;line-height:1.3;flex:0 0 auto}
.db-callout__body{font-size:.97rem;line-height:1.7}
.db-callout__body p{margin:0 0 .6rem}
.db-callout__body p:last-child{margin:0}

/* Tabla de tarifas */
.db-fees{border-collapse:collapse;width:100%;font-size:.9rem;border:1px solid var(--db-line);border-radius:10px;overflow:hidden}
.db-fees th,.db-fees td{text-align:left;padding:11px 14px;border-top:1px solid #eef2f7}
.db-fees thead th{background:var(--db-navy);color:#fff;font-weight:700;border-top:0}
.db-fees tbody tr:nth-child(even){background:var(--db-soft2)}
.db-fees tbody th{font-weight:600;color:var(--db-fg)}
.db-fees td{color:#475569}
.db-fees-note{font-size:.85rem;color:var(--db-muted);margin:.7rem 0 0;line-height:1.55}

/* Condados / áreas */
.db-counties{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.db-county{background:var(--db-bg);border:1px solid var(--db-line);border-radius:10px;padding:14px 16px;box-shadow:0 2px 6px rgba(0,0,0,.04)}
.db-county strong{display:block;color:var(--db-navy);font-size:.98rem}
.db-county span{display:block;color:var(--db-muted);font-size:.85rem;margin-top:3px}

@media(max-width:640px){.db-cols{grid-template-columns:1fr}.db-hero-listing{padding:26px 20px}.db-hero-listing__title{font-size:1.55rem}.db-hero-region .db-hero-listing__title{font-size:1.6rem}.db-fees{font-size:.82rem}.db-fees th,.db-fees td{padding:9px 10px}}
@media(max-width:600px){.db-row{grid-template-columns:1.4rem 1fr}.db-row__label,.db-row__value{grid-column:2}}
