:root{--g-primary:#004438;--g-secondary:#009a77;--g-teal:#007362;--g-charcoal:#4a4a49;--g-olive:#50564f;--g-mint:#6dc1b0;--g-gray-med:#878989;--g-sage:#B7BFB0;--g-pale-mint:#d8ece7;--g-light-gray:#b9babb;--g-ice:#f0f0f0;--g-steel:#596F7B;--g-muted-teal:#8da29f;--g-pale-blue:#B9DBD9;--card-shadow:0 2px 8px rgba(0,68,56,0.07);--card-shadow-hover:0 6px 20px rgba(0,68,56,0.13)}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Arial,Helvetica,sans-serif;line-height:1.6;color:var(--g-charcoal);background:var(--g-ice);font-size:15px}
h1,h2,h3,h4{font-family:'Montserrat',Arial,sans-serif}
h1{font-weight:700;color:var(--g-primary)}h2{font-weight:500;color:var(--g-primary)}h3,h4{font-weight:500;color:var(--g-teal)}
a{color:var(--g-teal);text-decoration:underline;text-underline-offset:2px}a:hover{color:var(--g-primary)}
html{scrollbar-color:var(--g-muted-teal) var(--g-ice)}
.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}
a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--g-secondary);outline-offset:2px}
#main-content,.tab-content,#declaracion-accesibilidad{scroll-margin-top:72px}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{transition:none!important;animation:none!important}.block-card:hover{transform:none}.skip-link{transition:none}}
::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--g-ice)}::-webkit-scrollbar-thumb{background:var(--g-muted-teal);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--g-teal)}
.skip-link{position:absolute;top:-40px;left:0;background:var(--g-primary);color:#fff;padding:8px 16px;z-index:10000;transition:top .3s}.skip-link:focus{top:0;outline:3px solid var(--g-secondary);outline-offset:2px}
header{background:var(--g-primary);color:#fff;padding:0}
.header-top{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:#fff;border-bottom:4px solid var(--g-secondary)}
.garrigues-logo{display:flex;align-items:center}.garrigues-logo svg{height:26px;width:auto;display:block}
.header-eu-flag{display:flex;align-items:center}
.header-main{text-align:center;padding:30px 20px 26px}
header h1{font-size:1.9rem;margin-bottom:8px;color:#fff;letter-spacing:-.01em}
header .subtitle{font-size:1rem;opacity:.92;margin-bottom:4px}header .version-note{font-size:.85rem;opacity:.72}
.header-accent{height:5px;background:var(--g-secondary)}
nav{background:#fff;border-bottom:1px solid var(--g-light-gray);padding:0 20px;position:sticky;top:0;z-index:100;box-shadow:0 2px 4px rgba(0,0,0,.03)}
.nav-inner{max-width:1320px;margin:0 auto;display:flex;align-items:center}
.nav-label{padding:14px 0;margin-right:12px;font-weight:600;color:var(--g-primary);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;font-family:'Montserrat',Arial,sans-serif}
.tab-list{display:flex;flex-wrap:wrap;gap:0;list-style:none}
.tab-btn{background:var(--g-ice);border:none;padding:14px 20px;cursor:pointer;font-size:.9rem;font-weight:500;color:var(--g-charcoal);border-bottom:3px solid transparent;transition:all .2s;font-family:Arial,Helvetica,sans-serif}
.tab-btn:hover{color:var(--g-primary);background:var(--g-pale-mint)}.tab-btn.active{color:var(--g-primary);border-bottom-color:var(--g-secondary);font-weight:700;background:#fff}.tab-btn:focus{outline:3px solid var(--g-secondary);outline-offset:2px}
main{max-width:1320px;margin:0 auto;padding:28px 20px}.tab-content{display:none}.tab-content.active{display:block}
.section-header{margin-bottom:24px}.section-header h2{font-size:1.6rem;color:var(--g-primary);margin-bottom:6px}.section-header p{color:var(--g-olive);font-size:.95rem}
.blocks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:18px}
.block-card{display:block;width:100%;text-align:left;font-family:inherit;font-size:inherit;color:inherit;background:#fff;border-radius:8px;padding:22px;box-shadow:var(--card-shadow);cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s;border:1px solid var(--g-light-gray);border-left:4px solid var(--g-primary)}
.block-card:hover{transform:translateY(-3px);box-shadow:var(--card-shadow-hover);background:var(--g-pale-mint);border-color:var(--g-secondary)}.block-card:focus{outline:3px solid var(--g-secondary);outline-offset:2px}
.block-card h3{font-size:1rem;color:var(--g-primary);margin-bottom:8px;line-height:1.4;font-family:'Montserrat',Arial,sans-serif;font-weight:500}
.block-card .block-num{display:inline-flex;align-items:center;justify-content:center;background:var(--g-teal);color:#fff;width:28px;height:28px;border-radius:50%;font-size:.8rem;font-weight:700;margin-right:8px;font-family:Arial,sans-serif}
.block-card .desc{font-size:.84rem;color:var(--g-olive);margin:8px 0;line-height:1.5}
.block-card .norm-count{display:inline-block;font-size:.8rem;background:var(--g-teal);color:#fff;padding:3px 10px;border-radius:12px;font-weight:600}
.legend{display:flex;flex-wrap:wrap;gap:14px;margin:18px 0;padding:14px 18px;background:#fff;border-radius:6px;border:1px solid var(--g-light-gray)}.legend-item{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--g-charcoal)}.legend-dot{width:11px;height:11px;border-radius:50%;display:inline-block;border:1px solid var(--g-gray-med)}
.total-row td{background:var(--g-pale-mint)!important;font-weight:700}
.collapsible-body .data-table{table-layout:fixed}
.collapsible-body .data-table col.tcol-norma{width:21%}
.collapsible-body .data-table col.tcol-tipo{width:13%}
.collapsible-body .data-table col.tcol-anio{width:5%}
.collapsible-body .data-table col.tcol-tes{width:15%}
.collapsible-body .data-table col.tcol-boe{width:26%}
.collapsible-body .data-table col.tcol-estado{width:15%}
.collapsible-body .data-table col.tcol-link{width:5%}
.collapsible-body .data-table th:first-child,.collapsible-body .data-table td:first-child{position:sticky;left:0;z-index:2;background:#fff;box-shadow:2px 0 0 var(--g-light-gray)}
.collapsible-body .data-table thead th:first-child{background:var(--g-primary);z-index:3}
.collapsible-body .data-table tr:nth-child(even) td:first-child{background:var(--g-ice)}
.collapsible-body .data-table tr:hover td:first-child{background:var(--g-pale-mint)}
.modal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,68,56,.7);z-index:1000;justify-content:center;align-items:flex-start;padding:40px 20px;overflow-y:auto}.modal-overlay.open{display:flex}
.modal{background:#fff;border-radius:12px;max-width:1140px;width:100%;max-height:80vh;overflow-y:auto;padding:0;position:relative;box-shadow:0 20px 60px rgba(0,68,56,.3)}
.modal-close{position:absolute;top:14px;right:18px;background:none;border:none;font-size:1.8rem;cursor:pointer;color:var(--g-secondary);line-height:1;z-index:10}.modal-close:hover{color:var(--g-primary)}.modal-close:focus{outline:3px solid var(--g-secondary);outline-offset:2px}
.modal h3{font-size:1.2rem;color:#fff;background:var(--g-primary);margin:0;padding:18px 50px 18px 24px;border-radius:12px 12px 0 0;font-family:'Montserrat',Arial,sans-serif;font-weight:500}
#modal-body{padding:24px}
.data-table{width:100%;border-collapse:collapse;font-size:.83rem;margin-top:12px;border:1px solid var(--g-light-gray)}
.collapsible-body .data-table td,.collapsible-body .data-table th{overflow-wrap:normal;word-break:normal;hyphens:manual;-webkit-hyphens:manual}
.collapsible-body .data-table th{white-space:normal;vertical-align:top}
.data-table th{background:var(--g-primary);color:#fff;padding:10px 12px;text-align:left;font-weight:600;white-space:nowrap;font-family:Arial,sans-serif;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
.data-table td{padding:10px 12px;border-bottom:1px solid var(--g-light-gray);vertical-align:top}
.data-table tr:nth-child(even) td{background:var(--g-ice)}.data-table tr:hover td{background:var(--g-pale-mint)}
.data-table .status-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.8rem;font-weight:600;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:manual;-webkit-hyphens:manual}
#modal-body .data-table{table-layout:fixed;width:100%}
#modal-body .data-table col.col-norma{width:22%}#modal-body .data-table col.col-norma-en{width:15%}#modal-body .data-table col.col-ref{width:16%}#modal-body .data-table col.col-tipo{width:13%}#modal-body .data-table col.col-estado{width:18%}#modal-body .data-table col.col-es{width:10%}#modal-body .data-table col.col-links{width:6%}
#modal-body .data-table td,#modal-body .data-table th{padding:7px 8px;overflow-wrap:normal;word-break:normal;hyphens:manual;-webkit-hyphens:manual;white-space:normal}
.status-vigente{background:var(--g-teal);color:#fff}.status-proceso{background:var(--g-mint);color:var(--g-primary)}.status-trilogo{background:var(--g-primary);color:#fff}.status-planificada{background:var(--g-pale-blue);color:var(--g-primary)}.status-revision{background:var(--g-steel);color:#fff}.status-anunciada{background:var(--g-sage);color:var(--g-charcoal)}.status-retirada{background:var(--g-charcoal);color:#fff;text-decoration:line-through}
.trans-directa,.trans-sinreq{background:var(--g-pale-mint);color:var(--g-primary)}.trans-transpuesta{background:var(--g-mint);color:var(--g-primary)}.trans-parcial{background:var(--g-pale-blue);color:var(--g-primary)}.trans-pendiente{background:var(--g-steel);color:#fff}.trans-tramitacion{background:var(--g-light-gray);color:var(--g-charcoal)}
.timeline{position:relative;padding-left:44px;margin-top:20px}.timeline::before{content:'';position:absolute;left:18px;top:0;bottom:0;width:3px;background:var(--g-secondary);border-radius:2px}
.timeline-item{position:relative;margin-bottom:22px;padding:18px 22px;background:#fff;border-radius:8px;box-shadow:var(--card-shadow);border:1px solid var(--g-light-gray)}
.timeline-item::before{content:'';position:absolute;left:-34px;top:22px;width:14px;height:14px;border-radius:50%;background:var(--g-primary);border:3px solid var(--g-secondary)}
.timeline-item.tl-vigente::before{background:var(--g-secondary);border-color:var(--g-primary)}.timeline-item.tl-proceso::before{background:var(--g-mint);border-color:var(--g-primary)}.timeline-item.tl-planificada::before{background:var(--g-pale-blue);border-color:var(--g-primary)}.timeline-item.tl-revision::before{background:var(--g-muted-teal);border-color:var(--g-primary)}.timeline-item.tl-default::before{background:var(--g-gray-med);border-color:var(--g-primary)}
.timeline-date{font-size:.8rem;color:var(--g-steel);font-weight:600;margin-bottom:4px;font-family:'Montserrat',Arial,sans-serif}.timeline-title{font-size:1rem;font-weight:500;color:var(--g-primary);margin-bottom:8px;font-family:'Montserrat',Arial,sans-serif}.timeline-desc{font-size:.84rem;color:var(--g-charcoal);line-height:1.6}
.timeline-blocks{margin-top:10px}.timeline-blocks .tag{display:inline-block;background:var(--g-teal);color:#fff;padding:3px 10px;border-radius:12px;font-size:.72rem;font-weight:600;margin-right:4px;margin-top:4px}
.collapsible{margin-bottom:12px}.collapsible h3{margin:0}
.collapsible-header{width:100%;text-align:left;font-family:inherit;font-size:inherit;color:inherit;background:#fff;border:1px solid var(--g-light-gray);border-radius:8px;padding:14px 20px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:all .2s}
.collapsible-header:hover{background:var(--g-pale-mint);border-color:var(--g-secondary)}.collapsible-header .col-title{font-size:.95rem;color:var(--g-primary);font-family:'Montserrat',Arial,sans-serif;font-weight:500}
.collapsible-header .arrow{transition:transform .3s;font-size:1rem;color:var(--g-secondary)}.collapsible-header.open .arrow{transform:rotate(180deg)}.collapsible-header.open{border-color:var(--g-primary);border-bottom-left-radius:0;border-bottom-right-radius:0;background:var(--g-pale-mint)}
.collapsible-body{display:none;overflow-x:auto;border:1px solid var(--g-primary);border-top:none;border-bottom-left-radius:8px;border-bottom-right-radius:8px;padding:16px;background:#fff}.collapsible-body.open{display:block}
.resource-category{margin-bottom:28px}.resource-category h3{font-size:1.1rem;color:var(--g-primary);margin-bottom:14px;border-bottom:2px solid var(--g-secondary);padding-bottom:8px;font-family:'Montserrat',Arial,sans-serif;font-weight:500}
.resource-list{list-style:none}.resource-item{padding:14px 18px;background:#fff;border-radius:6px;margin-bottom:10px;box-shadow:0 1px 4px rgba(0,0,0,.04);border:1px solid var(--g-light-gray);transition:border-color .2s}
.resource-item:hover{border-color:var(--g-secondary)}.resource-item a{font-weight:600;display:block;margin-bottom:4px;color:var(--g-secondary)}.resource-item a:hover{color:var(--g-primary)}.resource-item .res-desc{font-size:.84rem;color:var(--g-olive)}
.resumen-section{margin-top:28px;padding:20px;background:#fff;border-radius:8px;border:1px solid var(--g-light-gray)}.resumen-section h3{font-size:1.1rem;color:var(--g-primary);margin-bottom:12px;font-family:'Montserrat',Arial,sans-serif;font-weight:500}
.search-box{width:100%;padding:12px 16px;border:1px solid var(--g-light-gray);border-radius:6px;font-size:.9rem;margin-bottom:16px;font-family:Arial,sans-serif;transition:border-color .2s}.search-box:focus{outline:2px solid var(--g-secondary);outline-offset:1px;border-color:var(--g-secondary);box-shadow:0 0 0 3px rgba(0,154,119,.1)}
.search-label{display:block;font-weight:600;font-size:.85rem;color:var(--g-primary);margin-bottom:6px;font-family:'Montserrat',Arial,sans-serif}
.trans-count{margin-bottom:16px;font-size:.85rem;color:var(--g-olive)}
footer{background:var(--g-ice);color:var(--g-olive);text-align:center;padding:24px 20px 0;margin-top:40px}
footer .footer-brand{display:flex;justify-content:center;margin-bottom:12px}footer .footer-brand svg{height:16px;width:auto}
footer p{font-size:.82rem;color:var(--g-olive);margin:4px 0}footer a{color:var(--g-secondary)}footer a:hover{color:var(--g-primary)}
footer .footer-accent{width:100%;height:5px;background:var(--g-primary);margin:20px 0 0}
@media(max-width:768px){header h1{font-size:1.3rem}.header-top{padding:12px 16px}.garrigues-logo svg{height:20px}.tab-btn{padding:12px 14px;font-size:.82rem}.blocks-grid{grid-template-columns:1fr}.modal{margin:10px}.data-table{font-size:.8rem}.data-table th,.data-table td{padding:8px 6px}.collapsible-body .data-table th{font-size:.72rem;line-height:1.25;padding:8px 5px}.collapsible-body .data-table td{font-size:.78rem}.nav-label{display:none}}
@media(max-width:480px){.tab-btn{padding:10px 8px;font-size:.78rem}.legend{flex-direction:column;gap:6px}.header-top{flex-direction:column;gap:8px}}
@media print{
 nav,.skip-link,.search-box,.search-label,.modal-overlay{display:none!important}
 body{background:#fff;font-size:11pt}
 .tab-content{display:block!important;break-before:page}
 .tab-content:first-of-type{break-before:auto}
 .collapsible-body{display:block!important}
 .collapsible-header .arrow{display:none}
 .block-card,.timeline-item,.resource-item,.collapsible{box-shadow:none;break-inside:avoid}
 a{color:var(--g-primary)}
 .resource-item a[href^="http"]::after{content:" (" attr(href) ")";font-size:.75em;color:var(--g-olive);word-break:break-all}
 header,.data-table th,.status-badge,.header-accent,.footer-accent{-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .logo-garrigues{color-adjust:exact}
}

/* ===== Responsive móvil (≤640px): tablas como fichas apiladas ===== */
@media(max-width:640px){
  /* Objetivos táctiles WCAG 2.5.8 / Apple HIG: mínimo 44px */
  .tab-btn{min-height:44px;display:flex;align-items:center;justify-content:center}
  .collapsible-header{min-height:44px}
  .data-table a{display:inline-block;min-height:32px;line-height:32px;padding:0 4px}
  /* Evitar desbordamiento horizontal de página */
  html,body{overflow-x:hidden}
  .container{padding-left:12px;padding-right:12px}

  /* --- Tablas en formato ficha: cada fila es una tarjeta --- */
  .data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:auto}
  .data-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .data-table colgroup{display:none}
  .data-table tr{margin:0 0 14px;border:1px solid var(--g-light-gray);border-radius:8px;
                 background:#fff;padding:6px 0;box-shadow:0 1px 3px rgba(0,0,0,.05)}
  .data-table td{position:relative;padding:8px 14px 8px 42%!important;border:none;
                 border-bottom:1px solid var(--g-pale-mint);min-height:28px;text-align:left;
                 white-space:normal!important;hyphens:none!important;overflow-wrap:break-word}
  .data-table td:last-child{border-bottom:none}
  .data-table td::before{content:attr(data-label);position:absolute;left:14px;top:8px;width:34%;
                         font-weight:700;font-size:.72rem;color:var(--g-primary);
                         font-family:'Montserrat',Arial,sans-serif;line-height:1.3}
  /* la columna fija deja de serlo en ficha */
  .collapsible-body .data-table td:first-child{position:static!important;box-shadow:none!important}
  .data-table .status-badge{white-space:normal}
  /* fila TOTAL del resumen como ficha destacada */
  .total-row td{background:var(--g-pale-mint)}

  /* --- Modal a pantalla completa --- */
  .modal{max-width:100%!important;width:100%;height:100%;max-height:100%;margin:0;border-radius:0}
  .modal-overlay.open{align-items:stretch}
  .modal-header{position:sticky;top:0;z-index:5}
  #modal-body{padding:14px}
  #modal-close{min-width:44px;min-height:44px}

  /* tarjetas de bloque: una columna ya viene de 768; aseguramos toque cómodo */
  .block-card{min-height:44px}
}


/* Personalizado */
main{max-width:none !important;margin:0 !important;padding:0 !important}
.modal{ display:block; margin-top:100px; }

a {
    color: #153a31;
    text-decoration: underline;
}
.detail-panel { z-index:100}
footer { z-index:1; text-align:left; }
.footer #region-footer li.menu-item a {
    text-decoration: none;
}
.footer #region-footer-post ul.menu li.menu-item a {
    text-decoration: none;
}
.breadcrumb ol li a {
	color: #16b182 !important;
    text-decoration: none !important;
}
#block-footercontacto p a { 
	text-decoration: none;
} 
.text-white-underline-hover {
	text-decoration: none;	
}
.timeline::after {
    content: "";
    position: absolute;
    width: 2px;
    background-color:transparent !important;
	
}
.header {
  background: url("../img/imagenes/fondo-mapa.jpg") ;
  background-size: 100% auto;
  padding: 4rem 1.5rem;

}
.nav-btn:hover, .nav-btn.active {
    background: #153a31;
    color: white;
    border-color: #153a31;
}
/*
.header-contenido {
    box-sizing: border-box;
    padding: 128px 0;
}
#contenidoPrincipal {
	padding-bottom: 130px;
}
*/
#topbar {
	display:block;	
}
/*
.container-menu-cabecera-g-digital {
	margin-top:128px;
}
*/
.detail-panel {
    z-index: 1600;
	margin-top:120px;
	position:absolute;
}
.detail-overlay {
	z-index: 1600;
}
.detail-overlay.open {
	z-index: 1600;	
}
.container-menu-cabecera-g-digital {
    z-index:9;
}
.eu-flag {
	display:none;
}
.eu-flag::after {
	display:none;
}
.res-table th {
    background: #13c298;
}
nav{background:none; border:none; }
footer { padding:0; } 
footer p { color:#fff; font-size:16px; }
footer p text-white-underline-hover { font-size:16px !important; }
footer .region-footer-post p { font-size:12px }

.tab-content li::before {
    content: "";
    background: #fff;
    width: 0;
    height: 0;
    position: absolute;
    left: -60px;
    top: 4px;
}

ol, ul {
    padding-left:0;
}
.header-main {
    background: url(../img/imagenes/fondo-mapa.jpg);
    background-image: url(../img/imagenes/fondo-mapa.jpg);
    background-position-x: initial;
    background-position-y: initial;
    background-size: initial;
    background-repeat: initial;
    background-attachment: initial;
    background-origin: initial;
    background-clip: initial;
    background-color: initial;
    background-size: 100% auto;
    padding: 2rem 1.5rem;
	color:#fff;
	border:none;
	margin-bottom:10px;
}	

.header-main h1 {
    font-size: clamp(1.4rem, 3vw, 2.2rem);
    font-weight: 700;
    margin-bottom: 0.5rem;
	color: #fff;
}
.header-accent { display:none; }

.leyenda { text-align:center; margin:20px 0; }

.block-block-content89d23b0b-d1fc-46dc-adc0-5cfacfd9ad07 p { font-size:12px; }

.modal{ z-index:200; height:auto !important }

.nav-item a { text-decoration:none; }

@media(max-width:1024px){
	.modal{ max-height:88%; }
	.header-main { background-size:auto 100%; }
}

@media(max-width:1080px){
	.resumen-section { display:none; }
}