/*
Theme Name: Plantilla Institucional Azul
Theme URI: https://example.com/
Author: Codex
Description: Base institucional: encabezado, espacio de contenido y pie de página.
Version: 1.0.0
Text Domain: plantilla-institucional
*/

:root { --azul:#145bd7; --azul-oscuro:#0d347d; --tinta:#092d69; --hielo:#eaf5ff; --borde:#bdd0ed; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:#fff; color:#18243a; font-family:Arial, Helvetica, sans-serif; font-size:14px; }
a { color:inherit; text-decoration:none; }
.site-shell { width:min(100% - 48px, 1200px); margin:auto; }
.site-header { padding:35px 0 22px; background:#fff; }
.header-top { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.custom-logo-link { display:block; line-height:0; }
.custom-logo { max-width:235px; height:auto; }
.brand-fallback { color:var(--azul); display:flex; align-items:center; font-size:27px; font-weight:800; letter-spacing:-1.5px; }
.brand-fallback small { display:block; margin-top:3px; font-size:7px; letter-spacing:.15px; color:#355c9e; }
.brand-mark { width:33px; height:33px; border:3px solid currentColor; border-radius:7px; margin-right:7px; position:relative; }
.brand-mark:before,.brand-mark:after { content:""; position:absolute; inset:6px; border:2px solid currentColor; border-radius:2px; }
.brand-mark:after { inset:13px 2px 2px 13px; background:#fff; }
.header-tools { display:flex; align-items:center; gap:17px; color:var(--azul); }
.world-icon { width:26px; height:26px; display:grid; place-items:center; color:var(--azul); font-size:29px; line-height:1; }
.world-icon img { width:26px; height:26px; object-fit:contain; }
.language { border:1px solid #edf0f5; border-radius:24px; background:#fff; color:#1d2431; padding:13px 42px 13px 18px; min-width:155px; font-size:14px; position:relative; }
.language:after { content:'⌄'; position:absolute; right:17px; color:#b4bac4; font-size:20px; top:7px; }
.language select { appearance:none; border:0; background:transparent; color:#1d2431; font:inherit; outline:0; width:100%; }
.primary-row { display:flex; justify-content:space-between; align-items:center; margin-top:25px; gap:22px; }
.main-navigation ul { list-style:none; display:flex; align-items:center; gap:29px; padding:0; margin:0; }
.main-navigation li { white-space:nowrap; color:#141b29; font-size:13px; }
.main-navigation li { position:relative; }
.main-navigation .sub-menu { display:none; position:absolute; z-index:10; top:24px; left:-12px; min-width:190px; padding:12px; border-radius:9px; background:#fff; box-shadow:0 8px 25px #163c7925; }
.main-navigation li:hover > .sub-menu, .main-navigation li:focus-within > .sub-menu { display:grid; gap:12px; }
.main-navigation a:hover,.main-navigation .current-menu-item a { color:var(--azul); font-weight:700; }
.credit-button { display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:0 24px; background:var(--azul); border-radius:19px; color:#fff; font-weight:700; font-size:12px; transition:background .2s; }
.credit-button:hover { background:var(--azul-oscuro); }
.menu-toggle { display:none; border:1px solid var(--borde); border-radius:6px; padding:8px 12px; background:#fff; color:var(--azul-oscuro); }

/* El contenido se añadirá posteriormente en las plantillas de página. */
.site-content { min-height:300px; }
.page-content { padding-bottom:52px; }
.content-placeholder { margin:0 0 64px; min-height:240px; border-radius:16px; background:var(--azul); }

.site-footer { margin-top:10px; padding-bottom:48px; }
.footer-cta { padding:29px 34px; border-radius:18px; background:#dceeff; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.footer-eyebrow { margin:0 0 7px; color:var(--azul); font-weight:800; font-size:10px; letter-spacing:.6px; text-transform:uppercase; }
.footer-cta h2 { margin:0; color:var(--azul); max-width:380px; font-size:26px; line-height:1.04; letter-spacing:-1px; }
.footer-cta p { margin:8px 0 0; color:#36506f; font-size:12px; }
.footer-actions { display:flex; align-items:center; gap:12px; white-space:nowrap; }
.footer-action { border:1px solid var(--borde); border-radius:18px; padding:10px 17px; background:#fff; color:var(--azul-oscuro); font-size:11px; font-weight:700; }
.footer-action.primary { border-color:var(--azul-oscuro); background:var(--azul-oscuro); color:#fff; }
.footer-main { margin-top:18px; min-height:248px; border-radius:15px; padding:40px 44px 24px; background:var(--azul); color:#fff; display:flex; flex-direction:column; justify-content:space-between; }
.footer-logos { display:flex; justify-content:space-between; align-items:center; gap:28px; }
.social-links { display:flex; gap:10px; }
.social-links a { width:34px; height:34px; border-radius:7px; background:#fff; color:var(--azul); display:grid; place-items:center; font-size:16px; font-weight:800; }
.social-links a img { width:20px; height:20px; object-fit:contain; }
.footer-title { font-size:27px; line-height:.85; font-weight:800; letter-spacing:-1.6px; text-align:center; }
.footer-title img { display:block; max-width:230px; max-height:100px; width:auto; height:auto; }
.footer-title small { display:block; margin-top:9px; font-size:8px; letter-spacing:1.5px; }
.partner-logo { width:110px; min-height:65px; display:grid; place-items:center; }
.partner-logo img { max-width:110px; max-height:90px; width:auto; height:auto; object-fit:contain; }
.partner-logos { display:flex; align-items:center; justify-content:flex-end; gap:12px; min-width:110px; }
.site-info { text-align:center; font-size:10px; color:#e5efff; }
@media (max-width:760px) { .site-shell { width:min(100% - 30px, 1200px); } .site-header { padding-top:22px; } .brand-fallback { font-size:21px; } .header-tools { gap:7px; } .primary-row { margin-top:18px; } .menu-toggle { display:block; } .main-navigation { display:none; } .main-navigation.is-open { display:block; position:absolute; z-index:2; left:15px; right:15px; top:118px; padding:18px; border-radius:10px; background:#fff; box-shadow:0 8px 24px #163c7930; } .main-navigation.is-open ul { display:grid; gap:15px; } .content-placeholder { min-height:180px; } .footer-cta { display:block; padding:25px; } .footer-cta h2 { font-size:23px; } .footer-actions { margin-top:20px; flex-wrap:wrap; } .footer-main { min-height:225px; padding:30px 22px 20px; } .footer-logos { align-items:flex-start; } .footer-title { font-size:22px; } }
