/* Prosener public layout. Loaded after the original stylesheet. */
body.prosener-site { margin: 0; background: #eef2ee; color: #26372d; font: 15px/1.55 Calibri, Arial, sans-serif; }
.prosener-site #web { width: calc(100% - 40px); max-width: 1180px; margin: 24px auto; height: auto; overflow: visible; background: #fff; border: 1px solid #dce5dc; border-radius: 14px; box-shadow: 0 8px 26px rgba(28, 63, 36, .07); }
.prosener-site #web #cabecera { width: 100%; height: auto; min-height: 0; overflow: hidden; border-radius: 13px 13px 0 0; background: #d8e8de; }
.prosener-site .ps-banner-link { display: block; line-height: 0; }
.prosener-site #cabecera > .ps-banner-link > img { display: block; width: 100%; height: auto; max-width: 100%; }
.prosener-site .ps-topbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; padding: 14px 24px; border-bottom: 1px solid #e1e9e1; background: #fff; }
.prosener-site .ps-topbar a { color: #315b39; text-decoration: none; font-size: 14px; font-weight: bold; }
.prosener-site .ps-topbar a:hover { text-decoration: underline; }
.prosener-site .ps-topbar .ps-contact-link { margin-left: auto; padding: 9px 15px; border-radius: 6px; background: #286932; color: #fff; }
.prosener-site #ps-menu-toggle { display: none; padding: 8px 13px; border: 1px solid #b9ccbc; border-radius: 6px; background: #eff6ef; color: #225e2c; font: bold 14px Calibri, Arial, sans-serif; cursor: pointer; }
.prosener-site #web #content { display: grid; grid-template-columns: 200px minmax(0, 1fr) 210px; align-items: start; gap: 22px; box-sizing: border-box; width: 100%; height: auto; margin: 0; padding: 26px 24px; overflow: visible; }
.prosener-site #content #izq,
.prosener-site #content #contenido,
.prosener-site #content #right { float: none; box-sizing: border-box; width: auto; min-width: 0; height: auto; margin: 0; padding: 0; overflow: visible; }
.prosener-site #izq #menu,
.prosener-site #izq #menudos { float: none; width: 100%; box-sizing: border-box; overflow: hidden; border: 1px solid #dce5dc; border-radius: 9px; background: #f7faf7; }
.prosener-site #izq #menudos { margin-top: 18px; }
.prosener-site #menu ul,
.prosener-site #menudos ul { float: none; margin: 0; padding: 0; width: 100%; }
.prosener-site #menu ul li,
.prosener-site #menudos ul li { float: none; width: 100%; border: 0; border-bottom: 1px solid #e2ebe2; font-size: 14px; }
.prosener-site #menu ul li:last-child,
.prosener-site #menudos ul li:last-child { border-bottom: 0; }
.prosener-site #menu ul li.titular,
.prosener-site #menudos ul li.titular { box-sizing: border-box; width: 100%; padding: 12px 14px; background: #225e2c; color: #fff; font-weight: bold; font-size: 15px; }
.prosener-site #menu ul li a,
.prosener-site #menudos ul li a { display: block; float: none; box-sizing: border-box; width: 100%; padding: 10px 14px; color: #344e3a; line-height: 1.35; background: transparent; text-decoration: none; transition: background .15s; }
.prosener-site #menu ul li a:hover,
.prosener-site #menudos ul li a:hover,
.prosener-site #menu ul li a.activo,
.prosener-site #menudos ul li a.activo { width: 100%; padding: 10px 14px; color: #215e2d; background: #e5f1e5; box-shadow: inset 3px 0 #368141; font-weight: bold; }
.prosener-site #contenido { overflow-wrap: break-word; }
.prosener-site #contenido h1,
.prosener-site #contenido h2 { margin: 0 0 16px; color: #205d2a; font-size: 27px; line-height: 1.2; }
.prosener-site #contenido h3 { margin: 24px 0 12px; color: #2c7137; font-size: 21px; line-height: 1.25; }
.prosener-site #contenido p { color: #405047; font-size: 15px; line-height: 1.65; margin: 0 0 14px; text-align: left; }
.prosener-site #contenido ul li,
.prosener-site #contenido ol li { color: #405047; font-size: 15px; line-height: 1.55; }
.prosener-site #contenido a { color: #286932; text-underline-offset: 3px; }
.prosener-site #contenido img { max-width: 100%; height: auto; }
.prosener-site #contenido table { max-width: 100%; }
.prosener-site #contenido iframe { max-width: 100%; }
.prosener-site #right #login,
.prosener-site #right #empresa,
.prosener-site #right #presupuesto,
.prosener-site #right #area_privada { box-sizing: border-box; width: 100%; height: auto; overflow: hidden; margin: 0 0 18px; border: 1px solid #dce5dc; border-radius: 9px; background: #f7faf7; }
.prosener-site #right h5 { box-sizing: border-box; width: 100%; height: auto; margin: 0; padding: 12px 10px; background: #225e2c; color: #fff; font: bold 15px/1.35 Calibri, Arial, sans-serif; }
.prosener-site #right h5 a { color: #fff; }
.prosener-site #right p { font-size: 13px; line-height: 1.45; }
.prosener-site #right img { max-width: 100%; height: auto; }
.prosener-site #login input.boton { width: 100%; max-width: 100%; box-sizing: border-box; padding: 8px; height: auto; border: 1px solid #b8c8ba; border-radius: 5px; background: #fff; color: #26372d; }
.prosener-site #login input.virtual { width: 100%; height: auto; padding: 9px 10px; box-sizing: border-box; border: 0; border-radius: 5px; background: #286932; color: #fff; font-weight: bold; cursor: pointer; }
.prosener-site #login .ps-intranet-fields { box-sizing: border-box; padding: 14px; }
.prosener-site #login .ps-intranet-fields label { display: block; margin: 0 0 5px; font-size: 13px; }
.prosener-site #login .ps-intranet-fields input.boton { margin: 0 0 12px; }
.prosener-site #presupuesto h6 { padding: 14px 12px; margin: 0; font-size: 14px; line-height: 1.4; background: none; color: #344e3a; }
.prosener-site #presupuesto p { width: auto; height: auto; padding: 10px; margin: 0; background: #e5f1e5; }
.prosener-site #presupuesto p a { color: #225e2c; }
.prosener-site #web #foot { clear: both; width: 100%; height: auto; min-height: 42px; border-radius: 0 0 13px 13px; background: #225e2c; }
.prosener-site #foot p { padding: 14px 20px; color: #fff; font-size: 13px; line-height: 1.5; }
.prosener-site #foot a { color: #fff; }
.prosener-site a:focus-visible,
.prosener-site button:focus-visible,
.prosener-site input:focus-visible { outline: 3px solid #94bf99; outline-offset: 3px; }
.prosener-site .ps-skip-link { position: absolute; top: -100px; left: 20px; z-index: 100; padding: 10px 16px; background: #225e2c; color: #fff; }
.prosener-site .ps-skip-link:focus { top: 8px; }
@media (max-width: 1000px) {
    .prosener-site #web #content { grid-template-columns: 190px minmax(0, 1fr); gap: 20px; }
    .prosener-site #content #right { grid-column: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
    .prosener-site #right #login,
    .prosener-site #right #empresa,
    .prosener-site #right #presupuesto,
    .prosener-site #right #area_privada { margin-bottom: 0; }
}
@media (max-width: 700px) {
    .prosener-site #web { width: calc(100% - 20px); margin: 10px auto; border-radius: 10px; }
    .prosener-site .ps-topbar { gap: 10px 14px; padding: 12px 14px; }
    .prosener-site #ps-menu-toggle { display: inline-block; }
    .prosener-site .ps-topbar .ps-contact-link { margin-left: 0; }
    .prosener-site #web #content { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; padding: 20px 16px; }
    .prosener-site.ps-has-js:not(.ps-nav-open) #content #izq { display: none; }
    .prosener-site #content #right { grid-column: 1; grid-template-columns: minmax(0, 1fr); }
    .prosener-site #contenido h1,
    .prosener-site #contenido h2 { font-size: 25px; }
    .prosener-site #contenido table { display: block; overflow-x: auto; }
}
@media (prefers-reduced-motion: reduce) {
    .prosener-site #menu ul li a,
    .prosener-site #menudos ul li a { transition: none; }
}

/* Corrección de paginación: elimina el recorte heredado de style.css. */
#contenido #paginacion {
    height: auto;
    min-height: 0;
    max-height: none;
    overflow: visible;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 6px 4px;
    line-height: 1.4;
    box-sizing: border-box;
    clear: both;
}
#contenido #paginacion a,
#contenido #paginacion strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 34px;
    min-height: 38px;
    padding: 7px 10px;
    margin: 0;
    line-height: 1.4;
    border: 1px solid #ceddc7;
    border-radius: 5px;
    text-decoration: none;
    float: none;
}
#contenido #paginacion a { color: #28671c; background: #fff; }
#contenido #paginacion a:hover { background: #edf5e7; }
#contenido #paginacion strong { background: #2b771e; color: #fff; }
#contenido #paginacion a:focus-visible { outline: 2px solid #2b771e; outline-offset: 2px; }

/* Parche 19: contraste de botones y navegación con teclado. */
.prosener-site #contenido .home-quick a:not(:first-child),
.prosener-site #contenido .home-contact > a,
.prosener-site #contenido .service-request a,
.prosener-site #contenido .map-contact a,
.prosener-site #contenido a.contact-button {
    color: #fff;
    background-color: #2b771e;
}
.prosener-site #contenido .home-quick a:not(:first-child):hover,
.prosener-site #contenido .home-contact > a:hover,
.prosener-site #contenido .service-request a:hover,
.prosener-site #contenido .map-contact a:hover,
.prosener-site #contenido a.contact-button:hover {
    color: #fff;
    background-color: #205d15;
}
.prosener-site #contenido a:focus-visible,
.prosener-site #izq a:focus-visible,
.prosener-site #right a:focus-visible,
.prosener-site textarea:focus-visible,
.prosener-site select:focus-visible {
    outline: 2px solid #174a20;
    outline-offset: 3px;
}
.prosener-site #contenido .home-quick a,
.prosener-site #contenido .home-contact > a,
.prosener-site #contenido .service-request a,
.prosener-site #contenido .map-contact a,
.prosener-site #contenido a.contact-button {
    min-height: 44px;
    box-sizing: border-box;
}
.prosener-site .ps-skip-link:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 2px;
    box-shadow: 0 0 0 5px #174a20;
}
