/* Tipografías ya utilizadas por la landing, sin nuevos proveedores. */
@font-face {
  font-family: "Cabinet Grotesk";
  src: url("https://cdn.fontshare.com/wf/CKQBK2QBTCDREE7L3MXZ3PPW7LDNJCWU/OTOY7FQFSFOJVZKJWKO2EHUJLOGBDN4Q/4CO2ETY7NITKLUDKMYJ75RHJSPHOJ7XT.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Expose";
  src: url("https://cdn.fontshare.com/wf/CUT6L56NHJKAMTP6AAEYBBWHJ7VLIV7W/ASC2L375KFOC6LHNABALQSNN7HLSY2RI/JIGE53G2RNTVRSKPJ23ZS4AOXQCWXRG4.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
:root { --green:#537c73; --blue:#324d63; --grey:#eaeaea; --ink:#353535; --paper:#f6f7f4; --line:#cbd4cf; }
* { box-sizing:border-box; }
body.corporate { margin:0; background:var(--paper); color:var(--ink); font:400 1.0625rem/1.65 "Expose",Arial,sans-serif; }
.corporate .wrap { width:min(1280px,calc(100% - 96px)); margin-inline:auto; }
.corporate a { color:inherit; text-decoration-thickness:1px; text-underline-offset:.25em; }
.corporate :is(a,summary,[tabindex]):focus-visible { outline:3px solid var(--green); outline-offset:5px; border-radius:2px; }
.corporate .skip-link { position:fixed; z-index:20; left:12px; top:12px; padding:12px 18px; background:var(--blue); color:white; transform:translateY(-160%); }
.corporate .skip-link:focus { transform:none; }
.corporate .site-header { display:flex; align-items:center; justify-content:space-between; gap:36px; min-height:116px; border-bottom:1px solid var(--line); }
.corporate .brand { display:block; flex-shrink:0; }
.corporate .brand img { display:block; width:228px; height:auto; }
.corporate .desktop-nav { display:flex; gap:26px; align-items:center; font-size:.9375rem; }
.corporate :is(.desktop-nav,.mobile-menu nav) > :is(a,span) { position:relative; padding:10px 0; text-decoration:none; }
.corporate [aria-current="page"] { color:var(--blue); }
.corporate .desktop-nav [aria-current="page"]::after { content:""; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--green); }
.corporate .mobile-menu { display:none; }
.corporate h1,.corporate h2,.corporate h3 { font-family:"Cabinet Grotesk",Arial,sans-serif; font-weight:500; color:var(--blue); line-height:1.12; letter-spacing:-.035em; text-wrap:pretty; }
.corporate h1 { font-size:clamp(2.8rem,4.6vw,4.6rem); margin:0; }
.corporate h1 span { display:block; }
.corporate h1 span+span { color:var(--green); margin-top:.2em; }
.corporate h2 { font-size:clamp(2rem,3vw,2.9rem); margin:0 0 24px; }
.corporate h3 { font-size:1.55rem; margin:0 0 18px; }
.corporate p { margin:0 0 22px; }
.corporate p:last-child { margin-bottom:0; }
.corporate .eyebrow { color:var(--blue); font-size:.78rem; line-height:1.5; letter-spacing:.12em; text-transform:uppercase; margin-bottom:24px; }
.corporate .hero { display:grid; grid-template-columns:1.15fr 1fr; gap:8%; padding-block:76px 90px; align-items:center; }
.corporate .hero-copy { padding-top:38px; }
.corporate .hero-copy>p:first-child { font-size:1.25rem; line-height:1.55; color:var(--blue); }
.corporate .hero-copy>p+p { max-width:43ch; }
.corporate .actions { display:flex; flex-wrap:wrap; gap:20px 24px; align-items:center; margin-top:30px; }
.corporate .action { display:inline-flex; align-items:center; gap:14px; max-width:100%; min-height:44px; text-decoration:none; color:var(--blue); font-size:.95rem; line-height:1.4; border-bottom:1px solid currentColor; padding-block:8px; }
.corporate a.action:hover { color:var(--blue); border-color:var(--green); text-decoration:underline; }
.corporate .hero .actions>.action:first-child { border:1px solid #aabbb2; padding:13px 18px; }
.corporate .section { padding-block:88px; scroll-margin-top:28px; }
.corporate .section h2 { margin:0 0 28px; }
.corporate .section-inner { display:grid; grid-template-columns:1fr 1.35fr; gap:9%; }
.corporate .section-body p { max-width:66ch; }
.corporate .features { padding-block:0 88px; }
.corporate .features .section-inner { display:block; }
.corporate .features .entries { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.corporate .features article { padding:44px; background:#e3ebe5; display:flex; flex-direction:column; align-items:flex-start; }
.corporate .features article h2 { max-width:15ch; font-size:2.7rem; }
.corporate .features article p { max-width:50ch; }
.corporate .features article .action { margin-top:auto; }
.corporate .features article:last-child { background:var(--blue); color:#fff; }
.corporate .features article:last-child h2,.corporate .features article:last-child a { color:#fff; }
.corporate .features article:last-child a:hover { color:#d8e6df; }
.corporate .features article:last-child :focus-visible { outline-color:#fff; }
.corporate .services { padding-top:0; }
.corporate .services .section-body>p { color:#555f59; }
.corporate .services ul { padding:0; list-style:none; margin:32px 0 0; }
.corporate .services li { padding:20px 0 20px 45px; border-top:1px solid var(--line); position:relative; counter-increment:service; }
.corporate .services li::before { content:"0" counter(service); position:absolute; left:0; top:23px; color:var(--blue); font:400 .75rem Arial,sans-serif; }
.corporate .services li strong { color:var(--blue); font-weight:600; }
.corporate .collaboration { background:var(--grey); }
.corporate .collaboration .section-inner { display:block; }
.corporate .collaboration .section-heading { max-width:650px; margin-bottom:44px; }
.corporate .collaboration .entries { display:grid; grid-template-columns:repeat(3,1fr); gap:36px; }
.corporate .collaboration article { border-top:1px solid #adbdb3; padding-top:22px; }
.corporate .collaboration h3 { max-width:23ch; }
.corporate .institution { background:var(--blue); color:#fff; }
.corporate .institution h2 { color:#fff; }
.corporate .institution .section-body>p:first-child { font-size:1.3rem; line-height:1.6; }
.corporate .institution .section-body>p:last-child { padding-top:22px; border-top:1px solid #91a4b1; color:#e1e9e4; }
.corporate .routes .section-inner { display:block; }
.corporate .routes .section-heading { max-width:800px; margin-bottom:42px; }
.corporate .routes .entries { display:grid; grid-template-columns:1fr 1fr; gap:40px 70px; }
.corporate .routes article { border-top:1px solid var(--line); padding-top:26px; }
.corporate .routes article:last-child { grid-column:1/-1; background:#e3ebe5; padding:32px 38px; display:grid; grid-template-columns:1fr 1.1fr; gap:0 55px; }
.corporate .routes article:last-child h3 { grid-row:1/3; max-width:23ch; margin:0; font-size:1.9rem; }
.corporate .routes article:last-child .action { justify-self:start; }
.corporate .closing { border-top:1px solid var(--line); padding-block:70px 80px; }
.corporate .closing .section-inner { grid-template-columns:1fr 1fr; align-items:start; }
.corporate .closing .section-heading { max-width:540px; }
.corporate .closing .actions { margin-top:22px; }
.corporate .site-footer { border-top:1px solid var(--line); background:#edf0eb; padding:38px 0 24px; }
.corporate .footer-grid { display:grid; grid-template-columns:1fr 1fr auto; gap:28px 36px; align-items:center; }
.corporate .footer-brand img { width:185px; height:auto; display:block; }
.corporate .footer-links { display:flex; gap:12px; flex-direction:column; align-items:flex-start; font-size:.95rem; }
.corporate .footer-meta { display:flex; gap:8px; flex-direction:column; font-size:.85rem; color:#555f59; }
.corporate .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.corporate .needs { background:#e8eee8; padding-block:60px; }
.corporate .needs ul { margin:24px 0; padding-left:22px; }
.corporate .needs li { padding-left:5px; margin-bottom:10px; }
.corporate .service-index { display:flex; flex-wrap:wrap; gap:10px 22px; padding-block:28px; border-bottom:1px solid var(--line); }
.corporate .service-index a { font-size:.85rem; color:var(--blue); padding-block:6px; }
.corporate .service-detail { padding-block:68px; }
.corporate .service-layout { display:grid; grid-template-columns:1fr 1.25fr; gap:10%; }
.corporate .service-detail+.service-detail .service-layout { border-top:1px solid var(--line); padding-top:64px; }
.corporate .service-detail+.service-detail { padding-top:0; }
.corporate .service-heading .eyebrow { margin-bottom:22px; }
.corporate .service-detail h2 { font-size:clamp(1.8rem,2.7vw,2.6rem); }
.corporate .service-lead h2 { font-size:clamp(2rem,3vw,3rem); }
.corporate #tesoreria { background:#e3ebe5; padding-top:65px; margin-bottom:68px; }
.corporate #tesoreria .service-layout { padding-top:0; border:0; }
.corporate #tesoreria .service-copy>p:first-child { font-size:1.25rem; color:var(--blue); }
.corporate #planificacion .service-layout { border:0; padding-top:0; }
.corporate .company-collaboration .entries { grid-template-columns:1fr 1fr; }
.corporate .collaboration-end { margin-top:36px; }
.corporate .sectors .section-body>p:first-child { font-size:1.25rem; color:var(--blue); }
@media(min-width:1600px) { .corporate .hero { padding-block:90px 105px; } }
@media(max-width:1100px) {
 .corporate .wrap { width:calc(100% - 64px); }
 .corporate .desktop-nav { gap:18px; font-size:.875rem; }
 .corporate .brand img { width:198px; }
 .corporate .site-header { gap:24px; }
 .corporate .hero { gap:6%; }
 .corporate .features article { padding:32px; }
 .corporate .features article h2 { font-size:2.35rem; }
 .corporate .section-inner,.corporate .service-layout { gap:7%; }
}
@media(max-width:900px) {
 .corporate .site-header { min-height:96px; }
 .corporate .desktop-nav { display:none; }
 .corporate .mobile-menu { display:block; position:relative; }
 .corporate .mobile-menu summary { cursor:pointer; min-height:44px; display:flex; gap:16px; align-items:center; padding:8px 2px; color:var(--blue); list-style:none; }
 .corporate .mobile-menu summary::-webkit-details-marker { display:none; }
 .corporate .mobile-menu nav { position:absolute; z-index:10; top:calc(100% + 14px); right:0; width:260px; padding:14px 24px; background:var(--paper); border:1px solid var(--line); box-shadow:0 18px 35px #324d6312; display:flex; flex-direction:column; }
 .corporate .mobile-menu nav>* { min-height:44px; border-bottom:1px solid var(--line); }
 .corporate .mobile-menu nav>*:last-child { border:0; }
 .corporate .hero { grid-template-columns:1fr; gap:32px; padding-block:54px 64px; }
 .corporate h1 { font-size:clamp(2.8rem,6.5vw,4rem); max-width:900px; }
 .corporate .hero-copy { padding:0; max-width:650px; }
 .corporate .hero-copy>p+p { max-width:unset; }
 .corporate .section { padding-block:62px; }
 .corporate .features { padding-top:0; }
 .corporate .section-inner,.corporate .service-layout { grid-template-columns:1fr; gap:26px; }
 .corporate .section-heading,.corporate .service-heading { max-width:660px; }
 .corporate .section-body,.corporate .service-copy { max-width:760px; }
 .corporate .features .section-body { max-width:unset; }
 .corporate .closing .section-inner { grid-template-columns:1fr; }
 .corporate .collaboration .entries { gap:24px; }
 .corporate .collaboration h3 { font-size:1.35rem; }
 .corporate .service-detail+.service-detail .service-layout { padding-top:52px; }
 .corporate #tesoreria .service-layout,.corporate #planificacion .service-layout { padding-top:0; }
 .corporate #tesoreria { margin-bottom:62px; }
 .corporate .footer-grid { grid-template-columns:1fr 1fr; }
 .corporate .footer-meta { grid-column:1/-1; flex-direction:row; justify-content:space-between; }
}
@media(max-width:600px) {
 .corporate .wrap { width:calc(100% - 40px); }
 .corporate .site-header { min-height:88px; }
 .corporate .brand img { width:185px; }
 .corporate h1 { font-size:clamp(2.45rem,9vw,3.4rem); line-height:1.1; }
 .corporate h1 span+span { margin-top:.28em; }
 .corporate .hero { padding-block:38px 48px; gap:28px; }
 .corporate .hero-copy>p:first-child { font-size:1.125rem; }
 .corporate .eyebrow { margin-bottom:20px; }
 .corporate .actions { gap:18px; margin-top:26px; }
 .corporate .section { padding-block:48px; }
 .corporate .features { padding-top:0; }
 .corporate .features .entries { grid-template-columns:1fr; gap:16px; }
 .corporate .features article { padding:30px 26px; }
 .corporate .features article h2 { font-size:2.3rem; }
 .corporate h2 { font-size:2rem; }
 .corporate .services { padding-top:0; }
 .corporate .collaboration .entries,.corporate .company-collaboration .entries { grid-template-columns:1fr; gap:26px; }
 .corporate .collaboration .section-heading { margin-bottom:30px; }
 .corporate .collaboration h3 { font-size:1.5rem; max-width:25ch; }
 .corporate .institution .section-body>p:first-child { font-size:1.125rem; }
 .corporate .routes .entries { grid-template-columns:1fr; gap:30px; }
 .corporate .routes .section-heading { margin-bottom:30px; }
 .corporate .routes article:last-child { grid-column:auto; padding:28px 24px; display:block; }
 .corporate .routes article:last-child h3 { margin-bottom:20px; font-size:1.7rem; }
 .corporate .footer-grid { grid-template-columns:1fr; gap:26px; }
 .corporate .footer-links { gap:16px; }
 .corporate .service-index { gap:6px 18px; padding-block:22px; }
 .corporate .service-index a { font-size:.8rem; }
 .corporate .service-detail h2 { font-size:2rem; }
 .corporate .service-detail+.service-detail { padding-top:0; }
 .corporate .service-detail+.service-detail .service-layout { padding-top:44px; }
 .corporate #tesoreria { padding-top:48px; margin-bottom:48px; }
 .corporate #tesoreria .service-layout,.corporate #planificacion .service-layout { padding-top:0; }
}
@media(prefers-reduced-motion:reduce) { .corporate * { scroll-behavior:auto; } }

/* Contacto: componentes aislados de la calculadora y de sus hojas de estilo. */
.corporate [hidden] { display:none!important; }
.corporate .contact-hero { padding-bottom:54px; }
.corporate .contact-section { padding-top:16px; }
.corporate .contact-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,.75fr); gap:10%; align-items:start; }
.corporate .contact-form fieldset { border:0; margin:0; padding:0; min-width:0; }
.corporate .contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.corporate .contact-fields label { display:flex; flex-direction:column; gap:9px; color:var(--blue); font-size:1rem; }
.corporate .field-required { color:#626b67; font-size:.8rem; }
.corporate .contact-fields .full-field { grid-column:1/-1; }
.corporate .contact-fields :is(input,select,textarea) { width:100%; min-width:0; border:1px solid #9aaea3; border-radius:0; background:#fff; padding:13px 14px; font:inherit; line-height:1.5; color:var(--ink); }
.corporate .contact-fields select { min-height:52px; }
.corporate .contact-fields textarea { resize:vertical; min-height:180px; }
.corporate .contact-fields :is(input,select,textarea):focus-visible { outline:3px solid var(--green); outline-offset:3px; }
.corporate .contact-fields [aria-invalid="true"] { border:2px solid #864734; }
.corporate .contact-fields small { font-size:.85rem; color:#555f59; line-height:1.5; }
.corporate .contact-fields .field-error { color:#864734; }
.corporate .field-error:empty,.corporate .contact-status:empty { display:none; }
.corporate .contact-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.corporate .contact-submit { border:1px solid var(--blue); background:var(--blue); color:#fff; padding:15px 25px; font:inherit; min-height:52px; cursor:pointer; margin-top:26px; }
.corporate .contact-submit:focus-visible { outline:3px solid var(--green); outline-offset:5px; }
.corporate .contact-submit:disabled { background:#dae1da; border-color:#b3c0b7; color:#555f59; cursor:default; }
.corporate .contact-status:not(:empty),.corporate .contact-unavailable { border-left:3px solid var(--green); padding:15px 20px; margin:0 0 28px; background:#e3ebe5; }
.corporate .contact-status[role="alert"] { border-left-color:#864734; }
.corporate .privacy-summary { margin-top:26px; font-size:.85rem; color:#555f59; }
.corporate .privacy-summary p { margin-bottom:12px; }
.corporate .contact-aside { border-top:1px solid var(--line); padding-top:26px; }
.corporate .contact-aside section+section { margin-top:38px; }
.corporate .contact-aside h2 { font-size:1.55rem; margin-bottom:14px; }
.corporate .contact-aside a { overflow-wrap:anywhere; }
@media(max-width:900px) { .corporate .contact-layout { grid-template-columns:1fr; gap:48px; } .corporate .contact-aside { display:grid; grid-template-columns:1fr 1fr; gap:32px; } .corporate .contact-aside section+section { margin:0; } }
@media(max-width:600px) { .corporate .contact-fields { grid-template-columns:1fr; gap:22px; } .corporate .contact-fields .full-field { grid-column:auto; } .corporate .contact-aside { grid-template-columns:1fr; gap:32px; } .corporate .contact-hero { padding-bottom:36px; } }
