/*
Theme Name: ZOFRACOBIJA Institucional
Theme URI: https://zofracobija.gob.bo/
Author: ZOFRACOBIJA
Description: Tema institucional definitivo con portada, carrusel de fotografías reales, noticias y la interfaz oficial CIF mediante el plugin de consulta WordPress–Django. No almacena ni calcula valores CIF.
Version: 2.0.4
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: zofracobija-institucional
Tags: custom-logo, custom-menu, featured-images, blog, news, one-column, accessibility-ready
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
  --zf-navy: #073b57;
  --zf-midnight: #092d45;
  --zf-teal: #008493;
  --zf-teal-dark: #006b79;
  --zf-ink: #123c53;
  --zf-slate: #5b7385;
  --zf-mist: #f3f8fa;
  --zf-line: #dce8ee;
  --zf-white: #fff;
  --zf-width: 1260px;
  --zf-shadow: 0 18px 45px rgba(5, 52, 76, .09);
}
.zf-site { margin: 0; min-height: 100vh; background: #fff; color: var(--zf-ink); font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
.zf-site *, .zf-site *::before, .zf-site *::after { box-sizing: border-box; }
.zf-site a { color: inherit; text-decoration: none; }
.zf-site a:hover { color: var(--zf-teal-dark); }
.zf-site img { max-width: 100%; height: auto; }
.zf-site button, .zf-site input, .zf-site textarea, .zf-site select { font-family: inherit; }
.zf-site :focus-visible { outline: 3px solid #00a2b5; outline-offset: 3px; }
.zf-site .zf-container { width: min(calc(100% - 56px), var(--zf-width)); margin-inline: auto; }
.zf-skip-link { position: fixed; left: 16px; top: -70px; z-index: 99999; padding: 12px 16px; color: #fff !important; background: var(--zf-midnight); border-radius: 6px; }
.zf-skip-link:focus { top: 12px; }

/* Header institucional */
.zf-topbar { background: #052e44; color: #e5f0f5; font-size: 11px; letter-spacing: .025em; }
.zf-topbar-inner { min-height: 35px; display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.zf-topbar a { color: #d7f0f2 !important; font-weight: 700; }
.zf-topbar-separator { opacity: .48; margin-inline: 4px; }
.zf-header { position: relative; z-index: 40; background: #fff; border-bottom: 1px solid #e7eef2; box-shadow: 0 3px 16px rgba(11, 50, 71, .035); }
.zf-header-inner { min-height: 88px; display: flex; align-items: center; gap: 24px; }
.zf-brand-wrap { flex: 0 0 auto; min-width: 0; }
.zf-brand-logo .custom-logo-link, .zf-footer-logo .custom-logo-link { display: inline-flex; align-items: center; }
.zf-brand-logo .custom-logo { display: block; max-width: 205px; max-height: 69px; width: auto; height: auto; object-fit: contain; }
.zf-brand-text { display: grid; gap: 1px; }
.zf-brand-text strong { color: var(--zf-navy); font-size: 24px; font-weight: 900; line-height: 1.2; letter-spacing: -.04em; }
.zf-brand-text small { color: #628094; font-size: 10px; letter-spacing: .01em; font-weight: 550; }
.zf-primary-nav { margin-left: auto; }
.zf-nav-list { margin: 0; padding: 0; list-style: none; display: flex; align-items: center; gap: clamp(10px, 1.35vw, 22px); }
.zf-nav-list li { position: relative; margin: 0; }
.zf-nav-list > li > a { display: inline-flex; gap: 5px; align-items: center; padding: 17px 0; color: #24485f; font-size: 13px; font-weight: 680; line-height: 1.2; white-space: nowrap; }
.zf-nav-list > li > a:hover, .zf-nav-list > li.current-menu-item > a, .zf-nav-list > li.current_page_item > a, .zf-nav-list > li.current-menu-ancestor > a { color: var(--zf-teal-dark); }
.zf-nav-list .sub-menu { position: absolute; min-width: 205px; left: -14px; top: 100%; margin: 0; padding: 10px 0; list-style: none; background: #fff; border: 1px solid var(--zf-line); border-radius: 10px; box-shadow: var(--zf-shadow); visibility: hidden; opacity: 0; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility .2s; }
.zf-nav-list li:hover > .sub-menu, .zf-nav-list li:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: translateY(0); }
.zf-nav-list .sub-menu a { display: block; color: var(--zf-ink); font-size: 13px; line-height: 1.4; padding: 10px 17px; white-space: normal; }
.zf-nav-list .sub-menu a:hover { background: var(--zf-mist); color: var(--zf-teal-dark); }
.zf-nav-list .sub-menu .sub-menu { left: 100%; top: 0; }
.zf-header-cta { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border-radius: 7px; padding: 11px 16px; background: var(--zf-teal); color: #fff !important; font-weight: 750; font-size: 12px; }
.zf-header-cta:hover { background: var(--zf-teal-dark); }
.zf-menu-toggle { display: none; background: transparent; border: 1px solid #d0e1e9; border-radius: 7px; padding: 11px; cursor: pointer; }
.zf-menu-toggle span { width: 21px; height: 2px; background: var(--zf-navy); display: block; margin: 4px 0; }

/* Portada / carrusel */
.zf-hero { background: #0c354d; }
.zf-hero-slides { height: min(610px, 65vw); min-height: 490px; position: relative; isolation: isolate; overflow: hidden; }
.zf-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .6s ease, visibility .6s; background: radial-gradient(circle at 75% 30%, #256a78 0%, #0a425c 40%, #071f38 100%); }
.zf-slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; z-index: 1; }
.zf-slide-media { position: absolute; inset: 0; display: flex; justify-content: center; align-items: center; overflow: hidden; }
.zf-slide-media img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.zf-slide-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4, 37, 58, .98) 0%, rgba(4, 37, 58, .9) 29%, rgba(4, 37, 58, .51) 58%, rgba(4, 37, 58, .13) 100%); }
.zf-slide-content { position: relative; height: 100%; display: flex; justify-content: center; flex-direction: column; align-items: flex-start; color: #fff; padding-bottom: 40px; }
.zf-slide-kicker { display: inline-block; color: #9be7e6; font-size: 12px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; margin: 0 0 21px; }
.zf-slide h1 { max-width: 720px; margin: 0; font-size: clamp(36px, 5vw, 66px); line-height: 1.07; letter-spacing: -.045em; font-weight: 830; color: #fff; text-wrap: balance; }
.zf-slide-description { max-width: 540px; font-size: clamp(15px, 1.45vw, 18px); line-height: 1.7; margin: 22px 0 30px; color: #e1edf3; }
.zf-slide-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.zf-btn { display: inline-flex; align-items: center; gap: 12px; justify-content: center; border-radius: 7px; padding: 13px 22px; font-size: 13px; font-weight: 760; line-height: 1.35; border: 1px solid transparent; transition: transform .2s ease, background .2s ease; }
.zf-btn:hover { transform: translateY(-2px); }
.zf-btn-primary { background: #008b99; color: #fff !important; border-color: #008b99; }
.zf-btn-primary:hover { background: #006e7b; }
.zf-btn-ghost { border-color: rgba(255,255,255,.55); color: #fff !important; background: rgba(255,255,255,.05); }
.zf-btn-ghost:hover { background: rgba(255,255,255,.16); }
.zf-btn-light { color: var(--zf-navy) !important; background: #fff; }
.zf-hero-bottom { position: absolute; bottom: 0; left: 0; right: 0; z-index: 3; background: linear-gradient(0deg, rgba(0, 20, 35, .49), transparent); }
.zf-hero-bottom-inner { display: flex; min-height: 80px; align-items: center; justify-content: space-between; gap: 20px; }
.zf-hero-caption { display: flex; align-items: center; color: #dcebf2; font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.zf-caption-line { width: 27px; height: 2px; background: #4fc4c6; margin-right: 12px; }
.zf-carousel-controls { display: flex; align-items: center; gap: 13px; }
.zf-carousel-arrow { width: 35px; height: 35px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; color: #fff; background: rgba(0,0,0,.1); cursor: pointer; font-size: 18px; line-height: 1; }
.zf-carousel-arrow:hover { background: rgba(255,255,255,.16); }
.zf-carousel-dots { display: flex; align-items: center; gap: 8px; }
.zf-carousel-dot { height: 6px; width: 18px; border-radius: 7px; border: 0; background: rgba(255,255,255,.45); cursor: pointer; padding: 0; transition: background .2s, width .2s; }
.zf-carousel-dot.is-active { width: 34px; background: #fff; }

/* Accesos directos */
.zf-quick-section { background: #fff; padding: 0 0 24px; }
.zf-quick-grid { position: relative; z-index: 5; margin-top: -30px !important; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); box-shadow: var(--zf-shadow); border-radius: 12px; background: #fff; overflow: hidden; }
.zf-quick-card { position: relative; display: flex; flex-direction: column; min-height: 174px; gap: 5px; padding: 26px 24px; border-right: 1px solid var(--zf-line); background: #fff; }
.zf-quick-card:last-child { border-right: 0; }
.zf-quick-card:hover { background: #f3fafb; }
.zf-quick-index { font-size: 10px; letter-spacing: .11em; color: var(--zf-teal-dark); font-weight: 800; margin-bottom: 8px; }
.zf-quick-card strong { font-size: 16px; color: #113e55; line-height: 1.25; font-weight: 760; }
.zf-quick-card > span:nth-of-type(2) { color: #688396; font-size: 12px; line-height: 1.5; max-width: 200px; }
.zf-quick-arrow { position: absolute; right: 20px; top: 22px; color: #007e8d; font-size: 19px; }

/* Información institucional */
.zf-info-section { padding: 90px 0 90px; }
.zf-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 90px); align-items: center; }
.zf-section-kicker { margin: 0 0 14px; color: var(--zf-teal-dark); font-size: 11px; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.zf-section-title { margin: 0; font-size: clamp(27px, 3.5vw, 43px); line-height: 1.2; letter-spacing: -.035em; font-weight: 790; color: var(--zf-navy); }
.zf-info-copy { border-left: 3px solid #d8edef; padding-left: 32px; }
.zf-info-copy p { font-size: 16px; color: #627c8d; line-height: 1.85; margin: 0 0 22px; }
.zf-text-link { color: var(--zf-teal-dark) !important; font-size: 13px; font-weight: 790; display: inline-flex; align-items: center; gap: 9px; }
.zf-text-link:hover { text-decoration: underline; }

/* Banda de CIF */
.zf-cif-promo { padding: 66px 0; color: #fff; background: linear-gradient(105deg, #07344f, #075265); }
.zf-promo-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.zf-promo-tag { margin: 0 0 13px; color: #a2e8e6; letter-spacing: .15em; font-size: 11px; font-weight: 800; }
.zf-promo-inner h2 { color: #fff; margin: 0 0 9px; font-size: clamp(26px, 3vw, 36px); letter-spacing: -.025em; line-height: 1.2; }
.zf-promo-inner p:last-child { color: #d9e9ef; margin: 0; max-width: 620px; font-size: 14px; }
.zf-promo-inner .zf-btn { flex: 0 0 auto; }

/* Noticias y popup de relevancia */
.zf-news-section { background: #f7fafb; padding: 92px 0 110px; }
.zf-news-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 22px; margin-bottom: 32px; }
.zf-news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.zf-news-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--zf-line); border-radius: 11px; background: #fff; transition: transform .22s, box-shadow .22s; }
.zf-news-card:hover { transform: translateY(-4px); box-shadow: var(--zf-shadow); }
.zf-news-card-media { display: flex; align-items: center; justify-content: center; overflow: hidden; height: 215px; background: #e6f0f4; }
.zf-news-card-media img { width: 100%; height: 100%; object-fit: contain; }
.zf-news-placeholder { color: #567d8c; font-size: 16px; letter-spacing: .12em; font-weight: 900; }
.zf-news-body { padding: 23px 22px 26px; display: flex; flex-direction: column; flex: 1; align-items: flex-start; }
.zf-news-meta { font-size: 11px !important; color: #6890a0 !important; letter-spacing: .03em; font-weight: 680; margin: 0 0 10px !important; }
.zf-news-body h3 { margin: 0 0 11px; font-size: 19px; line-height: 1.34; letter-spacing: -.015em; font-weight: 750; }
.zf-news-body h3 a { color: #153e55; }
.zf-news-body > p:not(.zf-news-meta) { margin: 0 0 20px; color: #6c8290; font-size: 13px; line-height: 1.7; }
.zf-news-body .zf-text-link { margin-top: auto; }
.zf-news-empty { border-radius: 10px; padding: 40px; background: #fff; border: 1px dashed var(--zf-line); }
.zf-news-empty h3 { margin-top: 0; }
.zf-news-empty p { margin-bottom: 0; color: var(--zf-slate); }
.zf-news-dialog { border: 0; border-radius: 15px; width: min(90vw, 600px); max-height: min(90vh, 760px); padding: 0; color: var(--zf-ink); box-shadow: 0 30px 100px #0005; }
.zf-news-dialog::backdrop { background: rgba(3, 28, 42, .68); }
.zf-dialog-inside { position: relative; padding: 37px; }
.zf-dialog-close { position: absolute; top: 13px; right: 16px; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--zf-line); cursor: pointer; background: #fff; color: #2c5970; font-size: 24px; line-height: 1; }
.zf-dialog-inside h2 { margin: 5px 36px 18px 0; font-size: 29px; line-height: 1.2; color: var(--zf-navy); }
.zf-dialog-inside p:not(.zf-section-kicker) { color: var(--zf-slate); font-size: 14px; line-height: 1.65; }
.zf-dialog-image { width: 100%; max-height: 280px; object-fit: contain; border-radius: 8px; background: var(--zf-mist); }

/* Páginas interiores y artículo */
.zf-page-main { min-height: 50vh; padding: 66px 0 90px; background: #fff; }
.zf-content-container { max-width: 940px !important; }
.zf-page-heading { margin: 0 0 27px; color: var(--zf-navy); font-size: clamp(30px, 4vw, 48px); letter-spacing: -.035em; line-height: 1.15; }
.zf-entry-content { color: #334f62; font-size: 16px; line-height: 1.85; overflow-wrap: anywhere; }
.zf-entry-content p, .zf-entry-content ul, .zf-entry-content ol { margin: 0 0 1.4em; }
.zf-entry-content a { color: var(--zf-teal-dark); text-decoration: underline; }
.zf-entry-content h2, .zf-entry-content h3 { color: var(--zf-navy); line-height: 1.25; }
.zf-entry-content .alignwide { max-width: 1100px; margin-inline: auto; }
.zf-entry-content .alignfull { width: 100%; }
.zf-article-hero { margin: 0 0 32px; }
.zf-article-hero img { display: block; width: 100%; max-height: 560px; object-fit: contain; border-radius: 9px; }
.zf-back-link { color: var(--zf-teal-dark) !important; font-size: 13px; font-weight: 750; display: inline-block; margin: 0 0 22px; }
.zf-pagination { margin: 35px 0; }
.zf-pagination .nav-links { display: flex; gap: 8px; justify-content: center; }
.zf-pagination .page-numbers { border: 1px solid var(--zf-line); padding: 8px 12px; border-radius: 5px; }
.zf-pagination .current { background: var(--zf-teal); color: #fff; }
.zf-empty-posts { padding: 35px; background: var(--zf-mist); border-radius: 8px; }
.zf-404 { text-align: center; max-width: 650px !important; }
.zf-404 h1 { color: var(--zf-navy); font-size: 44px; }
.zf-404 p:not(.zf-section-kicker) { color: var(--zf-slate); margin-bottom: 30px; }
.zf-404 .zf-btn { text-decoration: none; }
.zf-search-form { display: grid; max-width: 520px; gap: 8px; }
.zf-search-form label { font-weight: 750; font-size: 14px; }
.zf-search-form > div { display: flex; gap: 8px; }
.zf-search-form input { border: 1px solid #cbdfe8; padding: 12px; border-radius: 7px; flex: 1; min-width: 0; }
.zf-search-form button { border: 0; background: var(--zf-teal); color: #fff; border-radius: 7px; padding: 12px 20px; }

/* Plantilla CIF — mismo diseño del plugin, sin iframe ni cabecera redundante */
.zf-cif-page { padding: 20px 0 67px; min-height: 55vh; background: #fff; }
.zf-cif-container { max-width: 1210px !important; }
.zf-breadcrumb { display: flex; align-items: center; gap: 12px; color: #758997; font-size: 11px; padding: 5px 0 26px; }
.zf-breadcrumb a { color: #38677f; }
.zf-cif-page .zofra-cif { max-width: 1080px; margin: 0 auto; }
.zf-cif-legal { margin: 26px auto 0; max-width: 1080px; border-top: 1px solid #e6eef2; padding: 16px 0; font-size: 12px; line-height: 1.7; color: #6a8191; }
.zf-cif-legal strong { color: #31586e; }
.zf-cif-unavailable { max-width: 900px; margin: 35px auto 70px; background: var(--zf-mist); border: 1px solid var(--zf-line); border-radius: 10px; padding: 30px; }
.zf-cif-unavailable h1 { color: var(--zf-navy); font-size: 30px; margin: 0 0 12px; }
.zf-cif-unavailable p { color: var(--zf-slate); }

/* Pie institucional */
.zf-footer { color: #d6e7ed; background: #082b42; padding: 69px 0 0; }
.zf-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: clamp(24px, 3.3vw, 52px); padding-bottom: 53px; }
.zf-footer h2 { color: #fff; font-size: 14px; line-height: 1.4; margin: 4px 0 20px; font-weight: 770; }
.zf-footer-brand p { max-width: 290px; font-size: 13px; line-height: 1.75; color: #b2cbd5; margin: 15px 0 0; }
.zf-footer-logo .custom-logo { display: block; max-height: 65px; max-width: 190px; width: auto; height: auto; object-fit: contain; background: #fff; border-radius: 5px; padding: 4px; }
.zf-footer-name { color: #fff; font-size: 22px; letter-spacing: -.03em; }
.zf-footer-links { margin: 0; padding: 0; list-style: none; display: grid; gap: 13px; }
.zf-footer-links a, .zf-footer p a { color: #d1e3ea; font-size: 13px; }
.zf-footer-links a:hover, .zf-footer p a:hover { color: #7de0dc; }
.zf-footer-grid > div > p { font-size: 13px; margin: 0 0 13px; line-height: 1.7; }
.zf-footer-bottom { border-top: 1px solid rgba(255,255,255,.14); min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #a6c2ce; font-size: 11px; }

/* Soporte responsive */
@media (max-width: 1120px) {
  .zf-header-inner { gap: 16px; }
  .zf-nav-list { gap: 13px; }
  .zf-nav-list > li > a { font-size: 12px; }
  .zf-header-cta { padding: 10px 12px; }
  .zf-brand-logo .custom-logo { max-width: 170px; }
  .zf-brand-text strong { font-size: 21px; }
}
@media (max-width: 960px) {
  .zf-header-inner { min-height: 76px; }
  .zf-menu-toggle { display: block; margin-left: auto; }
  .zf-primary-nav { display: none; position: absolute; top: 100%; left: 0; width: 100%; margin: 0; padding: 8px 28px 24px; background: #fff; box-shadow: 0 16px 28px #061f3126; border-top: 1px solid var(--zf-line); max-height: 75vh; overflow-y: auto; }
  .zf-primary-nav.is-open { display: block; }
  .zf-primary-nav .zf-nav-list { display: block; }
  .zf-primary-nav .zf-nav-list > li > a { width: 100%; padding: 12px 4px; font-size: 14px; border-bottom: 1px solid #edf3f6; }
  .zf-primary-nav .zf-nav-list .sub-menu { visibility: visible; opacity: 1; transform: none; position: static; display: block; box-shadow: none; border: 0; border-radius: 0; background: #f6fafb; padding: 1px 0 5px 12px; }
  .zf-primary-nav .zf-nav-list .sub-menu .sub-menu { position: static; }
  .zf-primary-nav .zf-nav-list .sub-menu a { font-size: 13px; padding: 10px 12px; }
  .zf-header-cta { margin: 0; }
  .zf-quick-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .zf-quick-card:nth-child(2) { border-right: 0; }
  .zf-quick-card:nth-child(-n+2) { border-bottom: 1px solid var(--zf-line); }
  .zf-footer-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .zf-site .zf-container { width: min(calc(100% - 32px), var(--zf-width)); }
  .zf-topbar-inner { min-height: 31px; }
  .zf-topbar-inner a, .zf-topbar-separator { display: none; }
  .zf-topbar { font-size: 10px; }
  .zf-header-inner { gap: 11px; min-height: 72px; }
  .zf-brand-text strong { font-size: 19px; }
  .zf-brand-text small { display: none; }
  .zf-brand-logo .custom-logo { max-width: 154px; max-height: 58px; }
  .zf-header-cta { padding: 10px 11px; font-size: 11px; }
  .zf-menu-toggle { padding: 8px; }
  .zf-hero-slides { min-height: 540px; height: 540px; }
  .zf-slide-shade { background: linear-gradient(90deg, rgba(4, 37, 58, .95), rgba(4, 37, 58, .66)); }
  .zf-slide h1 { font-size: clamp(32px, 7.1vw, 46px); }
  .zf-slide-content { padding-bottom: 45px; }
  .zf-slide-kicker { font-size: 10px; letter-spacing: .12em; }
  .zf-slide-description { margin: 18px 0 23px; line-height: 1.55; }
  .zf-hero-bottom-inner { min-height: 70px; }
  .zf-hero-caption { display: none; }
  .zf-carousel-controls { margin-left: auto; }
  .zf-info-section { padding: 65px 0; }
  .zf-info-grid { grid-template-columns: 1fr; gap: 25px; }
  .zf-info-copy { padding-left: 18px; }
  .zf-promo-inner { display: block; }
  .zf-promo-inner .zf-btn { margin-top: 24px; }
  .zf-news-section { padding: 68px 0 75px; }
  .zf-news-grid { grid-template-columns: 1fr; }
  .zf-news-card { display: grid; grid-template-columns: 35% 1fr; }
  .zf-news-card-media { height: 100%; min-height: 185px; }
  .zf-news-section-heading { align-items: flex-start; }
  .zf-page-main { padding: 44px 0 65px; }
  .zf-cif-page { padding-top: 15px; }
  .zf-breadcrumb { padding-bottom: 20px; }
}
@media (max-width: 500px) {
  .zf-header-cta { display: none; }
  .zf-hero-slides { height: 520px; min-height: 520px; }
  .zf-slide h1 { font-size: 34px; }
  .zf-slide-content { padding-bottom: 65px; }
  .zf-slide-actions .zf-btn { width: 100%; }
  .zf-quick-grid { margin-top: 0 !important; grid-template-columns: 1fr; border-radius: 0; box-shadow: none; }
  .zf-quick-card { min-height: 118px; padding: 20px 18px; border-right: 0 !important; border-bottom: 1px solid var(--zf-line); }
  .zf-quick-card strong { font-size: 15px; }
  .zf-quick-card > span:nth-of-type(2) { max-width: 260px; }
  .zf-quick-section { padding: 5px 0 15px; }
  .zf-section-title { font-size: 29px; }
  .zf-info-section { padding: 45px 0 65px; }
  .zf-cif-promo { padding: 44px 0 50px; }
  .zf-news-section-heading { display: block; }
  .zf-news-section-heading .zf-text-link { margin-top: 16px; }
  .zf-news-card { display: flex; }
  .zf-news-card-media { height: 205px; }
  .zf-footer { padding-top: 52px; }
  .zf-footer-grid { grid-template-columns: 1fr; gap: 25px; }
  .zf-footer-bottom { justify-content: center; text-align: center; flex-direction: column; padding: 17px 0; gap: 4px; }
  .zf-dialog-inside { padding: 26px 22px; }
  .zf-dialog-inside h2 { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* v1.1 · Información pública adicional sin alterar el buscador CIF */
.zf-broad-section { padding: 84px 0; }
.zf-broad-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:22px; }
.zf-broad-intro { color:var(--zf-slate); font-size:15px; line-height:1.8; max-width:760px; margin:0 0 32px; }
.zf-services-section { background:#f6f9fa; }
.zf-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.zf-service-card { min-height:188px; position:relative; background:#fff; border:1px solid var(--zf-line); border-radius:10px; display:block; padding:24px 25px 30px; transition:transform .2s,box-shadow .2s,border-color .2s; }
.zf-service-card:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(6,49,70,.09); border-color:#b5dade; }
.zf-service-num { font-size:11px; color:var(--zf-teal-dark); font-weight:800; letter-spacing:.11em; }
.zf-service-card h3 { margin:14px 25px 8px 0; font-size:19px; color:var(--zf-navy); line-height:1.35; }
.zf-service-card p { margin:0; max-width:320px; color:var(--zf-slate); font-size:13px; line-height:1.65; }
.zf-service-go { color:var(--zf-teal); position:absolute; right:24px; top:24px; font-weight:800; }
.zf-source-note { margin:22px 0 0; color:var(--zf-slate); font-size:12px; line-height:1.8; }
.zf-source-note a { color:var(--zf-teal-dark); text-decoration:underline; font-weight:700; }
.zf-history-section { background:#fff; }
.zf-history-grid { display:grid; grid-template-columns:.85fr 1.15fr; align-items:center; gap:clamp(35px,6vw,100px); }
.zf-history-grid > div:first-child > p:not(.zf-section-kicker) { color:var(--zf-slate); font-size:15px; line-height:1.85; margin:24px 0; }
.zf-history-timeline { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.zf-history-timeline > div { background:#f3f8fa; border:1px solid var(--zf-line); border-radius:11px; padding:25px 22px; display:flex; flex-direction:column; gap:8px; }
.zf-history-timeline strong { font-size:31px; font-weight:850; color:var(--zf-teal-dark); line-height:1; }
.zf-history-timeline span { color:#527183; font-size:13px; line-height:1.65; }
.zf-document-section { background:#fff; }
.zf-doc-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.zf-doc-item { display:flex; flex-direction:column; gap:8px; position:relative; border:1px solid var(--zf-line); border-radius:10px; padding:24px 50px 24px 24px; min-height:150px; }
.zf-doc-item:hover { background:#f5fafb; border-color:#a8d0d7; }
.zf-doc-item small { font-size:10px; color:var(--zf-teal-dark); font-weight:850; text-transform:uppercase; letter-spacing:.1em; }
.zf-doc-item strong { font-size:17px; font-weight:800; line-height:1.3; color:var(--zf-navy); }
.zf-doc-item > span:not(.zf-doc-arrow) { color:var(--zf-slate); font-size:12px; line-height:1.65; }
.zf-doc-arrow { position:absolute; right:22px; top:25px; color:var(--zf-teal); font-size:19px; }
.zf-contact-band { background:#eef6f7; border-top:1px solid var(--zf-line); }
.zf-contact-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(35px,6vw,100px); align-items:center; }
.zf-contact-grid > div:first-child > p:not(.zf-section-kicker) { color:var(--zf-slate); font-size:15px; max-width:450px; line-height:1.7; margin:20px 0 25px; }
.zf-contact-details { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.zf-contact-details > div { background:#fff; border:1px solid #d5e7e9; padding:19px; border-radius:9px; display:flex; flex-direction:column; gap:7px; min-height:115px; }
.zf-contact-details small { font-size:11px; color:var(--zf-teal-dark); font-weight:800; }
.zf-contact-details strong, .zf-contact-details a { font-size:13px; color:var(--zf-navy); font-weight:720; line-height:1.5; overflow-wrap:anywhere; }
.zf-contact-details a { text-decoration:underline; }
/* Los enlaces de la portada y la legibilidad móvil se adaptan sin modificar estilos del plugin. */
@media (max-width: 960px) {
 .zf-broad-section { padding:60px 0; }
 .zf-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .zf-history-grid,.zf-contact-grid { grid-template-columns:1fr; gap:30px; }
 .zf-doc-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px) {
 .zf-broad-section { padding:44px 0; }
 .zf-broad-heading { align-items:flex-start; flex-direction:column; }
 .zf-service-grid,.zf-doc-grid,.zf-history-timeline,.zf-contact-details { grid-template-columns:1fr; }
 .zf-service-card { min-height:150px; padding:19px; }
 .zf-history-timeline > div { padding:18px; }
 .zf-doc-item { min-height:120px; padding:19px 45px 19px 19px; }
}

.zf-more-section { background:#f6f9fa; padding:26px 0 58px; }
.zf-more-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.zf-more-grid a { background:#fff; padding:22px; min-height:130px; border:1px solid var(--zf-line); border-radius:9px; position:relative; display:flex; flex-direction:column; gap:7px; }
.zf-more-grid a:hover { border-color:#93c9d0; box-shadow:0 10px 24px rgba(7,58,82,.07); }
.zf-more-grid span { color:var(--zf-teal-dark); font-size:10px; font-weight:850; letter-spacing:.1em; }
.zf-more-grid strong { color:var(--zf-navy); font-size:18px; line-height:1.3; }
.zf-more-grid small { font-size:12px; color:var(--zf-slate); line-height:1.6; max-width:260px; }
.zf-more-grid b { position:absolute; right:17px; top:16px; color:var(--zf-teal-dark); }
@media (max-width:760px) { .zf-more-grid { grid-template-columns:1fr; } }

/* VERSIÓN 1.2.0 — Portada breve, navegación jerárquica y acceso permanente a asistencia. */
.zf-header { position: sticky; top: 0; }
.zf-header-inner { min-height: 80px; gap: clamp(12px, 2vw, 29px); }
.zf-brand-text strong { font-size: 23px; }
.zf-nav-list { gap: clamp(13px, 1.65vw, 26px); }
.zf-nav-list > li > a, .zf-nav-button { color: #254b60; font-size: 12px; font-weight: 730; letter-spacing: .005em; white-space: nowrap; }
.zf-nav-list > li > a { padding: 26px 0; }
.zf-nav-button { padding: 26px 0; border: 0; background: transparent; cursor: pointer; }
.zf-nav-button:hover, .zf-nav-button[aria-expanded="true"] { color: var(--zf-teal-dark); }
.zf-more-nav { position: relative; }
.zf-extra-dropdown { position: absolute; right: -35px; top: calc(100% - 9px); width: 236px; padding: 9px 0; background: #fff; border: 1px solid var(--zf-line); border-radius: 12px; box-shadow: 0 22px 44px rgba(9,45,69,.17); list-style: none; margin: 0; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(7px); transition: .18s; z-index: 80; }
.zf-more-nav.is-open .zf-extra-dropdown { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.zf-extra-dropdown li { margin: 0; }
.zf-extra-dropdown a { display: block; padding: 10px 20px; font-size: 13px; color: var(--zf-ink); line-height: 1.5; }
.zf-extra-dropdown a:hover { color: var(--zf-teal-dark); background: #f1f8fa; }
.zf-systems-wrap { position: relative; flex: 0 0 auto; }
.zf-header-cta { border: 0; cursor: pointer; color: #fff; padding: 12px 17px; font-size: 12px; gap: 8px; border-radius: 8px; box-shadow: 0 7px 17px #007a8b22; }
.zf-systems-dropdown[hidden] { display: none !important; }
.zf-systems-dropdown { position: absolute; z-index: 110; right: 0; top: calc(100% + 14px); background: #fff; border: 1px solid var(--zf-line); width: min(310px, 94vw); box-shadow: 0 20px 55px rgba(6,45,67,.2); border-radius: 13px; padding: 15px; }
.zf-systems-title { display: block; color: var(--zf-ink); font-size: 13px; font-weight: 800; padding: 2px 7px 10px; }
.zf-system-option { display: flex; gap: 12px; justify-content: space-between; align-items: center; padding: 13px 12px; margin: 4px 0; border: 1px solid var(--zf-line); border-radius: 9px; background: #f8fbfc; }
.zf-system-option:hover { background: #ebf7f8; border-color: #a5d1d6; }
.zf-system-option strong { font-size: 14px; color: var(--zf-navy); display: block; }
.zf-system-option small { color: #617e8d; font-size: 11px; display: block; margin-top: 3px; }
.zf-system-option.is-pending { opacity: .7; }
.zf-system-settings { display: block; font-size: 11px; color: var(--zf-teal-dark) !important; font-weight: 720; padding: 8px; }

/* Fotografías no deformadas. object-fit: cover ajusta el recorte al marco sin editar la fuente. */
.zf-hero-slides { height: 505px; min-height: 505px; }
.zf-slide-media { display: block; }
.zf-slide-media img { object-fit: cover; object-position: center center; width: 100%; height: 100%; }
.zf-slide-shade { background: linear-gradient(90deg, rgba(3, 31, 48, .96) 0%, rgba(3, 36, 54, .82) 34%, rgba(3, 39, 56, .32) 64%, rgba(3, 39, 56, .12) 100%); }
.zf-slide h1 { font-size: clamp(35px, 4.4vw, 58px); max-width: 640px; }
.zf-slide-description { font-size: 16px; margin: 18px 0 25px; max-width: 520px; }
.zf-hero-bottom-inner { min-height: 65px; }
.zf-quick-section { padding-bottom: 0; }
.zf-quick-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: -24px !important; }
.zf-quick-grid-three .zf-quick-card { border-bottom: 0; }
.zf-quick-button { text-align: left; border: none; border-right: none; font: inherit; cursor: pointer; display: flex; flex-direction: column; align-items: flex-start; color: inherit; background: #fff; }
.zf-quick-button:hover { background: #f4fafb; }
.zf-quick-button strong { color: var(--zf-ink); }

.zf-home-intro { padding: 70px 0 72px; background: #fff; }
.zf-home-intro-inner { display: grid; grid-template-columns: 1fr .85fr; gap: clamp(35px, 8vw, 130px); align-items: center; }
.zf-home-intro h2 { max-width: 650px; margin: 0; font-size: clamp(28px, 3.2vw, 42px); font-weight: 820; color: var(--zf-navy); line-height: 1.19; letter-spacing: -.035em; }
.zf-home-intro-inner > div:last-child { padding-left: 22px; border-left: 3px solid #d4e9ec; }
.zf-home-intro p:not(.zf-section-kicker) { margin: 0 0 15px; color: var(--zf-slate); line-height: 1.78; font-size: 15px; }
.zf-home-services { padding: 76px 0 84px; background: #f4f8fa; }
.zf-home-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 28px; }
.zf-home-section-heading h2, .zf-home-bottom h2 { margin: 0; font-size: clamp(28px, 3.3vw, 39px); color: var(--zf-navy); line-height: 1.16; font-weight: 800; letter-spacing: -.035em; }
.zf-home-service-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.zf-home-service-cards > a { min-height: 193px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; background: #fff; border: 1px solid var(--zf-line); padding: 25px 25px 25px; border-radius: 12px; position: relative; transition: .2s ease; }
.zf-home-service-cards > a:hover { border-color: #8fc2c9; box-shadow: 0 14px 35px rgba(9,50,76,.09); transform: translateY(-3px); }
.zf-home-service-cards .zf-home-icon { display: flex; align-items: center; justify-content: center; color: #007987; font-weight: 850; font-size: 12px; width: 41px; height: 41px; background: #e3f3f4; border-radius: 10px; }
.zf-home-service-cards strong { color: var(--zf-navy); font-size: 19px; line-height: 1.3; }
.zf-home-service-cards small { color: var(--zf-slate); font-size: 13px; }
.zf-home-service-cards b { color: var(--zf-teal-dark); position: absolute; right: 22px; top: 22px; font-size: 19px; }
.zf-home-news { padding: 82px 0 86px; background: #fff; }
.zf-home-news .zf-news-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.zf-home-news .zf-news-card-media { height: 195px; }
.zf-home-news .zf-news-card-media img { object-fit: cover; }
.zf-home-bottom { padding: 49px 0; background: linear-gradient(100deg, #073a54, #075a68); color: #fff; }
.zf-home-bottom-inner { display: grid; grid-template-columns: 1fr 1.05fr; gap: 42px; align-items: center; }
.zf-home-bottom h2 { color: #fff; }
.zf-home-bottom .zf-section-kicker { color: #9fe3e6; }
.zf-home-bottom p:not(.zf-section-kicker) { color: #d1e4ec; font-size: 14px; max-width: 470px; margin: 13px 0 0; }
.zf-home-bottom-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.zf-home-bottom-links a { border: 1px solid #ffffff50; border-radius: 9px; padding: 19px 16px; color: #fff; font-size: 13px; font-weight: 760; display: flex; align-items: center; justify-content: space-between; gap: 5px; }
.zf-home-bottom-links a:hover { background: #ffffff17; color: #fff; }
.zf-footer-grid-compact { grid-template-columns: 1.4fr .8fr 1fr 1.1fr; }
.zf-footer-bottom a { color: #afced9; }

/* Acceso visible en todo el sitio sin recargar la portada. */
.zf-assistance-dock { position: fixed; inset: auto 0 0; z-index: 210; pointer-events: none; }
.zf-assistance-dock > a { position: fixed; bottom: 22px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border-radius: 999px; padding: 12px 17px; background: #fff; border: 1px solid #cce2e8; box-shadow: 0 6px 28px rgba(10,58,79,.2); font-size: 12px; font-weight: 780; color: var(--zf-ink); pointer-events: auto; min-height: 48px; transition: transform .2s; }
.zf-assistance-dock > a:hover { transform: translateY(-3px); }
.zf-assistance-dock svg { flex: 0 0 auto; }
.zf-assistance-dock .zf-dock-suggestions { left: 23px; bottom: 75px; }
.zf-assistance-dock .zf-dock-zofrito { right: 23px; color: #fff; background: var(--zf-teal-dark); border-color: var(--zf-teal-dark); }
.zf-dock-zofrito small { display: block; font-size: 10px; font-weight: 500; line-height: 1.2; color: #d2f0f0; }

/* Accesos reales para buzón y Zofrito. */
.zf-special-page .zf-content-container { max-width: 920px; }
.zf-special-lead { color: var(--zf-slate); font-size: 16px; max-width: 700px; line-height: 1.8; margin-bottom: 29px; }
.zf-suggestion-form { max-width: 760px; display: flex; flex-direction: column; gap: 9px; background: #f8fbfc; border: 1px solid var(--zf-line); border-radius: 13px; padding: clamp(22px, 4vw, 36px); }
.zf-suggestion-form label { color: var(--zf-ink); font-weight: 750; font-size: 13px; margin-top: 12px; }
.zf-suggestion-form input:not([type="hidden"]), .zf-suggestion-form textarea, .zf-suggestion-form select { border: 1px solid #c6dae2; color: var(--zf-ink); background: #fff; border-radius: 8px; width: 100%; padding: 12px 15px; font-size: 14px; }
.zf-suggestion-form textarea { resize: vertical; }
.zf-suggestion-form .zf-btn { align-self: flex-start; border: 0; margin-top: 14px; cursor: pointer; }
.zf-suggestion-form .zf-form-privacy { font-size: 12px; color: var(--zf-slate); line-height: 1.7; margin: 8px 0; }
.zf-hidden-field { position: absolute; width: 1px; height: 1px; overflow: hidden; left: -10000px; }
.zf-form-notice { padding: 14px 18px; border-radius: 8px; background: #fff6e7; border: 1px solid #ecc68d; color: #75501d; margin-bottom: 22px; }
.zf-form-notice.success { background: #e8f7f3; border-color: #a6d5c9; color: #176458; }
.zf-zofrito-info { display: flex; gap: 26px; align-items: center; background: #f4f9fb; border: 1px solid var(--zf-line); padding: 32px; border-radius: 14px; }
.zf-zofrito-info h2 { font-size: 24px; margin: 0 0 12px; }
.zf-zofrito-info p { font-size: 14px; color: var(--zf-slate); }
.zf-assistant-avatar { width: 90px; height: 90px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 22px; background: #e3f1f4; font-size: 45px; }
.zf-config-note { margin: 13px 0 0; }
.zf-config-note a { font-size: 12px; color: var(--zf-teal-dark); text-decoration: underline; }

@media (max-width: 1170px) {
  .zf-header-inner { gap: 16px; }
  .zf-nav-list { gap: 13px; }
  .zf-nav-list > li > a, .zf-nav-button { font-size: 11px; }
  .zf-brand-text strong { font-size: 21px; }
  .zf-header-cta { font-size: 11px; padding: 11px 13px; }
}
@media (max-width: 1020px) {
  .zf-menu-toggle { display: block; margin-left: auto; }
  .zf-primary-nav { display: none; position: absolute; top: 100%; left: 0; width: 100%; margin: 0; padding: 8px 25px 22px; background: #fff; border-top: 1px solid var(--zf-line); box-shadow: 0 20px 40px #061f3129; max-height: 75vh; overflow-y: auto; }
  .zf-primary-nav.is-open { display: block; }
  .zf-primary-nav .zf-nav-list { display: block; }
  .zf-nav-list > li > a, .zf-nav-button { display: block; width: 100%; text-align: left; padding: 12px 5px; border-bottom: 1px solid #e9f1f4; font-size: 14px !important; }
  .zf-extra-dropdown { visibility: visible; opacity: 1; pointer-events: auto; display: block; position: static; transform: none; box-shadow: none; border: none; background: #f6fafb; padding: 0 0 4px 12px; width: 100%; border-radius: 4px; }
  .zf-extra-dropdown a { font-size: 13px; padding: 10px 15px; }
  .zf-quick-grid-three { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .zf-hero-slides { height: 460px; min-height: 460px; }
  .zf-slide h1 { font-size: clamp(31px, 7vw, 45px); }
  .zf-slide-shade { background: linear-gradient(90deg, rgba(4, 37, 58, .94), rgba(4, 37, 58, .45)); }
  .zf-quick-grid-three { grid-template-columns: 1fr; margin-top: 0 !important; }
  .zf-quick-grid-three .zf-quick-card { border-bottom: 1px solid var(--zf-line); border-right: 0; min-height: 112px; }
  .zf-home-intro { padding: 45px 0; }
  .zf-home-intro-inner { grid-template-columns: 1fr; gap: 18px; }
  .zf-home-intro-inner > div:last-child { padding-left: 16px; }
  .zf-home-services, .zf-home-news { padding: 53px 0; }
  .zf-home-service-cards { grid-template-columns: 1fr; }
  .zf-home-service-cards > a { min-height: 152px; }
  .zf-home-section-heading { align-items: flex-start; flex-direction: column; gap: 11px; }
  .zf-home-news .zf-news-grid { grid-template-columns: 1fr; }
  .zf-home-bottom-inner { grid-template-columns: 1fr; gap: 23px; }
  .zf-home-bottom-links { grid-template-columns: 1fr; }
  .zf-home-bottom { padding: 43px 0; }
  .zf-footer-grid-compact { grid-template-columns: 1fr 1fr; }
  .zf-assistance-dock > a { bottom: 13px; padding: 11px 12px; font-size: 11px; }
  .zf-assistance-dock .zf-dock-suggestions { left: 10px; bottom: 75px; }
  .zf-assistance-dock .zf-dock-zofrito { right: 10px; }
  .zf-zofrito-info { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 500px) {
  .zf-systems-wrap { flex: 0 0 auto; }
  .zf-header-cta { display: inline-flex; padding: 10px 12px; font-size: 0; }
  .zf-header-cta svg { width: 19px; height: 19px; }
  .zf-header-cta span { font-size: 12px; }
  .zf-footer-grid-compact { grid-template-columns: 1fr; }
  .zf-assistance-dock .zf-dock-suggestions span { max-width: 92px; line-height: 1.2; }
  .zf-assistance-dock .zf-dock-zofrito small { display: none; }
}


/* ZOFRACOBIJA 1.3 · rediseño de portada con referencia al prototipo institucional */
:root { --zf-navy:#083b53; --zf-midnight:#062f43; --zf-teal:#12805f; --zf-teal-dark:#08664f; --zf-ink:#143d4b; --zf-slate:#617680; --zf-mist:#f2f8f6; --zf-line:#dbe8e4; }
.zf-header { box-shadow: 0 5px 24px rgba(1,42,51,.045); }
.zf-header-inner { min-height: 83px; gap:20px; }
.zf-nav-list > li > a, .zf-nav-button { font-size: 12px; font-weight: 720; }
.zf-nav-list { gap: clamp(12px, 1.5vw, 23px); }
.zf-header-cta { background:#12805f; border-radius:10px; padding:13px 17px; }
.zf-header-cta:hover { background:#0a664e; }
.zf-slide-shade { background:linear-gradient(90deg, rgba(4,36,51,.93),rgba(4,45,52,.73) 39%,rgba(5,50,54,.08) 100%); }
.zf-hero-slides { min-height:500px; height:min(570px, 65vw); }
.zf-slide-media img { object-fit:cover; }
.zf-slide h1 { font-weight:830; font-size:clamp(36px,4.7vw,62px); max-width:680px; }
.zf-btn-primary { background:#16835f; border-color:#16835f; border-radius:10px; }
.zf-btn-primary:hover { background:#08664f; }
.zf-quick-section { padding:0 0 31px; }
.zf-quick-grid-three { box-shadow:0 18px 45px rgba(8,59,70,.12); border:1px solid #e2eee9; }
.zf-quick-grid-three .zf-quick-card { min-height:126px; padding:23px 26px; }
.zf-quick-card:hover { background:#f1f9f5; }
.zf-quick-index { color:#198467; }
.zf-home-rate { padding: 26px 0 32px; background:#fff; }
.zf-rate-layout { display:flex; align-items:center; gap:20px; background:linear-gradient(110deg,#f0f8f4,#f9fcfb); border:1px solid #cee3da; padding:21px 26px; border-radius:16px; }
.zf-rate-icon { width:54px; height:54px; display:grid; place-items:center; border-radius:15px; background:#dbefe3; font-size:27px; font-weight:850; color:#12694f; flex:0 0 auto; }
.zf-rate-copy { flex:1; min-width:0; display:grid; gap:2px; }
.zf-rate-label { font-size:10px; letter-spacing:.11em; color:#197f65; font-weight:850; }
.zf-rate-copy strong { font-size:17px; color:#123e4c; }
.zf-rate-copy small { color:#627b7c; font-size:11px; }
.zf-rate-figure { flex:0 0 auto; text-align:center; padding:4px 18px; border-left:1px solid #d5e8df; }
.zf-rate-figure strong { display:block; color:#0a6454; font-size:27px; line-height:1.2; }
.zf-rate-figure span { color:#69827d; font-size:11px; }
.zf-rate-links { display:flex; flex-direction:column; gap:6px; font-size:12px; font-weight:750; color:#0a735d; }
.zf-home-focus { padding:65px 0 70px; background:linear-gradient(130deg,#f3f9f7,#f8fbfc); }
.zf-focus-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(30px,6vw,85px); align-items:center; }
.zf-focus-content h2 { font-size:clamp(29px,3.6vw,44px); letter-spacing:-.04em; line-height:1.12; margin:0 0 18px; color:#083b53; max-width:550px; }
.zf-focus-content p:not(.zf-section-kicker) { color:#617682; font-size:15px; line-height:1.9; max-width:540px; }
.zf-focus-actions { display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-top:25px; }
.zf-focus-benefits { display:flex; gap:10px; flex-wrap:wrap; margin-top:32px; }
.zf-focus-benefits span { border-radius:22px; border:1px solid #cde4d9; background:#fff; padding:7px 12px; font-size:11px; font-weight:740; color:#2c765a; }
.zf-focus-visual { position:relative; height:325px; background:linear-gradient(145deg,#0a3647,#197f68); border-radius:23px; overflow:hidden; box-shadow:0 24px 45px #092f4a22; }
.zf-focus-photo { width:100%; height:100% !important; object-fit:cover; object-position:center; }
.zf-focus-visual:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(1,34,39,.72),transparent 48%); }
.zf-focus-visual-label { position:absolute; left:24px; bottom:25px; color:#fff; z-index:1; font-size:12px; letter-spacing:.1em; font-weight:850; }
.zf-home-news { padding:65px 0 70px; }
.zf-home-news .zf-news-grid { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:1010px; }
.zf-home-news .zf-news-card { border-radius:14px; overflow:hidden; box-shadow:0 11px 30px #133c4610; }
.zf-home-news .zf-news-card-media { height:210px; }
.zf-home-news .zf-news-card-body { padding:24px; }
.zf-footer { background:#06384f; }
.zf-system-option { border-radius:7px; }
.zf-systems-dropdown[hidden], .zf-floating-drawer[hidden], .zf-drawer-overlay[hidden] { display:none !important; }
.zf-assistance-dock { pointer-events:none; }
.zf-assistance-dock > button, .zf-assistance-dock > a { border:1px solid #d1e4df; border-radius:20px; min-height:53px; padding:12px 16px; cursor:pointer; font-size:12px; box-shadow:0 9px 32px #062f4f2b; display:flex; align-items:center; gap:10px; pointer-events:auto; }
.zf-assistance-dock > button:hover, .zf-assistance-dock > a:hover { transform:translateY(-2px); }
.zf-assistance-dock .zf-dock-suggestions { position:fixed; left:20px; bottom:22px; background:#fff; color:#0b5e66; }
.zf-assistance-dock .zf-dock-zofrito { position:fixed; right:20px; bottom:22px; background:#12805f; border-color:#12805f; color:#fff; }
.zf-avatar-mark { display:grid;place-items:center;background:#ffffff24;border:1px solid #ffffff52;border-radius:12px;height:32px;width:32px;font-size:20px; }
.zf-drawer-overlay { position:fixed; inset:0; z-index:9980; background:rgba(1,23,34,.45); }
.zf-floating-drawer { position:fixed; z-index:9981; top:0; right:0; width:min(460px,100vw); height:100dvh; background:#fff; box-shadow:-15px 0 60px #062f4f35; color:#143d4b; display:flex; flex-direction:column; }
.zf-drawer-heading { padding:22px 26px; display:flex; align-items:center;justify-content:space-between;gap:15px;background:linear-gradient(110deg,#083b53,#126e62);color:white; }
.zf-drawer-heading small { font-size:10px; letter-spacing:.11em; color:#c0f0e0; font-weight:800; }
.zf-drawer-heading h2 { font-size:22px;line-height:1.2;margin:6px 0 0;color:white; }
.zf-drawer-heading button { color:#fff; background:#ffffff25; border:0; border-radius:50%; width:37px; height:37px; cursor:pointer; font-size:24px; }
.zf-drawer-scroll { padding:23px 24px 35px; overflow:auto; flex:1; overscroll-behavior:contain; }
.zf-drawer-scroll > p { margin:0 0 16px;color:#607989;font-size:13px;line-height:1.75; }
.zf-suggestion-mini { background:transparent;padding:0;border:0;gap:6px; }
.zf-suggestion-mini .zf-btn { width:100%; border:0; margin-top:15px; }
.zf-suggestion-mini label { margin-top:8px; }
body.zf-drawer-active { overflow:hidden; }
@media(max-width:1070px) { .zf-focus-grid { gap:30px; } .zf-rate-layout { flex-wrap:wrap; } .zf-rate-links { margin-left:auto; } }
@media(max-width:760px) {
  .zf-slide-media img { object-fit:cover; }
  .zf-rate-layout { gap:13px;padding:17px; }
  .zf-rate-copy { min-width:calc(100% - 70px); }
  .zf-rate-figure { border-left:0;border-top:1px solid #d5e8df; padding:12px 6px 0;text-align:left; }
  .zf-rate-links { margin-left:auto; }
  .zf-home-focus { padding:48px 0; }
  .zf-focus-grid { grid-template-columns:1fr; }
  .zf-focus-visual { height:230px; order:-1; }
  .zf-home-news .zf-news-grid { grid-template-columns:1fr; }
  .zf-assistance-dock .zf-dock-suggestions { left:10px;bottom:15px; }
  .zf-assistance-dock .zf-dock-zofrito { right:10px;bottom:15px; }
  .zf-assistance-dock > a, .zf-assistance-dock > button { min-height:47px; padding:9px 11px; font-size:11px; gap:6px; }
}

/* 1.3.2 · Directorio visual de usuarios. No altera el buscador CIF. */
.zf-directory-page{background:#f7fafb;color:#07354c}
.zf-directory-hero{background:linear-gradient(120deg,#07354c 0%,#07516a 55%,#087b77 100%);color:#fff;position:relative;overflow:hidden}
.zf-directory-hero:after{content:"";position:absolute;right:-140px;top:-250px;width:640px;height:640px;border:1px solid #ffffff23;border-radius:50%;box-shadow:0 0 0 70px #ffffff06,0 0 0 170px #ffffff07;pointer-events:none}
.zf-directory-hero-inner{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(200px,.7fr);gap:40px;align-items:center;padding-top:55px;padding-bottom:70px;position:relative;z-index:1}
.zf-directory-breadcrumb{display:flex;gap:10px;align-items:center;color:#bcd5dc;font-size:12px;margin-bottom:38px}.zf-directory-breadcrumb a{color:#fff;text-decoration:none}
.zf-directory-hero .zf-section-kicker{color:#b8eadd;font-size:12px;letter-spacing:.12em;font-weight:800}
.zf-directory-hero h1{font-size:clamp(36px,4.8vw,58px);line-height:1.08;letter-spacing:-.05em;color:#fff;margin:12px 0 18px}
.zf-directory-hero p:not(.zf-section-kicker){max-width:670px;color:#d5e8ec;font-size:16px;line-height:1.75;margin:0}
.zf-directory-hero-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.zf-directory-hero-chips span{font-size:12px;border:1px solid #ffffff3d;border-radius:100px;padding:7px 12px;background:#ffffff12;color:#fff}
.zf-directory-hero-decoration{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:230px;border:1px solid #ffffff30;border-radius:28px;background:linear-gradient(130deg,#ffffff10,#ffffff04);transform:rotate(-3deg)}
.zf-directory-bigword{font-size:clamp(42px,6.5vw,82px);font-weight:900;letter-spacing:-.075em;line-height:1;color:#ffffffed}.zf-directory-bigword-bottom{font-size:12px;letter-spacing:.25em;color:#b8eadd;font-weight:800;margin-top:14px}
.zf-directory-list-section{padding:72px 0 82px}.zf-directory-section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:26px}.zf-directory-section-head h2{font-size:clamp(28px,3.2vw,40px);color:#07354c;letter-spacing:-.04em;margin:8px 0 12px}.zf-directory-section-head p:last-child{margin:0;max-width:680px;color:#587382;font-size:14px;line-height:1.7}.zf-directory-reg-link{color:#087c84;font-weight:800;white-space:nowrap;font-size:13px}
.zf-directory-filter{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:20px;background:#eff5f7;border:1px solid #d8e7ed;border-radius:16px;margin-bottom:29px}
.zf-directory-input{display:flex;flex-direction:column;flex:1;min-width:210px;gap:7px;font-size:11px;font-weight:800;color:#204b61;letter-spacing:.04em;text-transform:uppercase}
.zf-directory-input input,.zf-directory-input select{height:46px;width:100%;padding:0 14px;background:#fff;color:#174058;border:1px solid #cadde5;border-radius:10px;font-size:14px;font-weight:500;text-transform:none;letter-spacing:normal}
.zf-directory-search-button{height:46px;padding:0 23px;border:0;border-radius:10px;background:#087c88;color:#fff;font-weight:800;cursor:pointer}.zf-directory-search-button:hover{background:#066371}
.zf-directory-reset{font-size:12px;font-weight:700;color:#0e6876;padding:12px 3px}
.zf-directory-result-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 16px;color:#607984;font-size:12px}.zf-directory-result-head p{margin:0}.zf-directory-result-head p:first-child{font-weight:800;color:#0e5f71}
.zf-user-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}
.zf-user-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid #dce8ed;border-radius:17px;overflow:hidden;box-shadow:0 8px 20px #063d4a08;transition:transform .2s ease,box-shadow .2s ease}
.zf-user-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px #063d4a14}
.zf-user-card-logo{display:flex;align-items:center;justify-content:center;min-height:154px;padding:22px;background:linear-gradient(145deg,#fff,#f4f9fb);border-bottom:1px solid #e5eef1}
.zf-user-logo-img{width:auto!important;height:auto!important;max-width:100%;max-height:118px;object-fit:contain;object-position:center}
.zf-user-logotype{max-width:90%;overflow-wrap:anywhere;color:#126477;text-align:center;font-weight:900;font-size:clamp(17px,2vw,25px);letter-spacing:-.03em;line-height:1.13}
.zf-user-card-content{padding:19px 21px 16px;flex:1;display:flex;flex-direction:column;align-items:start}
.zf-user-card-category{font-size:10px;letter-spacing:.07em;text-transform:uppercase;font-weight:800;color:#037a81;background:#e6f6f4;padding:6px 9px;border-radius:30px}
.zf-user-card h3{font-size:18px;letter-spacing:-.02em;line-height:1.25;color:#07354c;margin:13px 0 9px}
.zf-user-card-content p{font-size:13px;color:#547481;line-height:1.7;margin:0 0 12px}
.zf-user-card-detail{font-size:11px;color:#5d7b88;margin-top:4px}
.zf-user-card-links{border-top:1px solid #e9f0f2;display:flex;flex-wrap:wrap;gap:15px;padding:15px 21px;margin-top:auto}
.zf-user-card-links a{color:#087c84;font-size:12px;font-weight:800;white-space:nowrap}.zf-user-card-links a:hover{text-decoration:underline}
.zf-directory-pages{margin:35px 0}.zf-directory-pages ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}.zf-directory-pages a,.zf-directory-pages span{display:inline-block;padding:9px 13px;border:1px solid #d0e2e9;border-radius:8px;color:#0a6479}.zf-directory-pages .current{background:#087c84;color:#fff}
.zf-directory-empty{text-align:center;padding:60px 26px;background:white;border:1px solid #dce8ed;border-radius:20px}.zf-directory-empty-symbol{display:block;font-size:46px;color:#07838a}.zf-directory-empty h3{font-size:23px;color:#08384d;margin:8px 0}.zf-directory-empty p{max-width:540px;margin:10px auto 20px;color:#617987;line-height:1.7}
.zf-directory-service-cta{background:#eaf4f5;padding:48px 0}.zf-directory-cta-inner{display:flex;justify-content:space-between;align-items:center;gap:20px}.zf-directory-cta-inner h2{margin:7px 0 12px;color:#07354c;font-size:27px}.zf-directory-cta-inner p:not(.zf-section-kicker){max-width:660px;font-size:14px;color:#597581;line-height:1.7}.zf-directory-cta-inner .zf-btn{white-space:nowrap}
.zf-home-user-strip{padding:32px 0;background:#fff;border-top:1px solid #e5eef1}.zf-home-user-strip-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:19px}.zf-home-user-strip-head h2{font-size:22px;color:#07354c;margin:5px 0}.zf-home-user-logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.zf-home-user-logo{background:#f6fafb;border:1px solid #e0edf0;border-radius:12px;padding:15px;min-height:100px;display:grid;place-items:center;color:#0b5368;text-align:center;text-decoration:none}.zf-home-user-logo img{max-height:65px;width:auto;height:auto;max-width:100%;object-fit:contain}.zf-home-user-logo strong{font-size:14px;line-height:1.2}
@media(max-width:990px){.zf-directory-hero-inner{grid-template-columns:1fr}.zf-directory-hero-decoration{display:none}.zf-user-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.zf-home-user-logos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.zf-directory-hero-inner{padding-top:31px;padding-bottom:48px}.zf-directory-breadcrumb{margin-bottom:29px}.zf-directory-section-head{align-items:start;flex-direction:column}.zf-directory-list-section{padding:43px 0 55px}.zf-directory-input{min-width:100%}.zf-directory-search-button{flex:1}.zf-directory-result-head{align-items:start;flex-direction:column}.zf-user-cards{grid-template-columns:1fr}.zf-directory-cta-inner{align-items:start;flex-direction:column}.zf-home-user-logos{grid-template-columns:repeat(2,minmax(0,1fr))}}
