/* ===========================================
     DESIGN SYSTEM — CPPA · Versión B (estilo ICAM)
     Limpio institucional · bordes redondeados · sombras sutiles
     Nexopro v0.4
  =========================================== */
  :root {
    --c-olive: #9DBE54;
    --c-olive-mid: #7C9132;
    --c-olive-dark: #5C7026;
    --c-olive-darker: #2E3E10;
    --c-olive-soft: #F1F6E1;
    --c-olive-cream: #FAFCEC;
    --c-amber: #D4A41C;
    --c-amber-dark: #B8870E;
    --c-text: #1F2516;
    --c-text-soft: #404740;
    --c-muted: #6B7363;
    --c-line: #E5E8DC;
    --c-line-soft: #F0F2EA;
    --c-bg: #F7F8F2;
    --c-white: #FFFFFF;
    --shadow-card: 0 1px 3px rgba(46,62,16,0.06), 0 1px 2px rgba(46,62,16,0.04);
    --shadow-hover: 0 4px 12px rgba(46,62,16,0.10), 0 2px 4px rgba(46,62,16,0.06);
    --radius: 8px;
    --radius-lg: 12px;
    --maxw: 1280px;
  }
  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body {
    margin: 0;
    font-family: 'Inter', 'Open Sans', -apple-system, 'Segoe UI', system-ui, sans-serif;
    color: var(--c-text);
    background: var(--c-white);
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }
  a { color: var(--c-olive-dark); text-decoration: none; transition: color .15s; }
  a:hover { color: var(--c-amber-dark); }
  img { max-width: 100%; display: block; }
  .container { max-width: var(--maxw); margin: 0 auto; padding: 0 28px; }
  svg.ic { width: 1.2em; height: 1.2em; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; display: inline-block; vertical-align: middle; }

  /* ============== PROTOTYPE NOTICE ============== */
  .prototype-banner {
    background: #FFF8E1;
    border-bottom: 1px solid #F0D88A;
    color: #5C4500;
    padding: 8px 0;
    text-align: center;
    font-size: 13px;
  }
  .prototype-banner strong { font-weight: 700; }

  /* ============== TOP BAR ============== */
  .topbar {
    background: var(--c-olive-darker);
    color: rgba(255,255,255,0.9);
    font-size: 13px;
    padding: 9px 0;
  }
  .topbar .wrap { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
  .topbar a { color: rgba(255,255,255,0.85); display: inline-flex; align-items: center; gap: 6px; transition: color .15s; }
  .topbar a:hover { color: #fff; }
  .topbar .left, .topbar .right { display: flex; gap: 14px; align-items: center; }
  .topbar .sep { opacity: .3; }
  .topbar .social { display: flex; gap: 6px; }
  .topbar .social a {
    width: 26px; height: 26px;
    border-radius: 50%;
    background: rgba(255,255,255,0.1);
    align-items: center; justify-content: center;
  }
  .topbar .social a:hover { background: var(--c-amber); color: var(--c-olive-darker); }
  .topbar .lang { font-weight: 600; letter-spacing: 0.05em; }
  .topbar .lang.active { color: #fff; }
  .topbar .colegia-cta {
    background: var(--c-amber);
    color: var(--c-olive-darker);
    padding: 5px 14px;
    border-radius: 4px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 11px;
  }
  .topbar .colegia-cta:hover { background: #fff; color: var(--c-olive-darker); }

  /* ============== HEADER ============== */
  header.site {
    background: #fff;
    border-bottom: 1px solid var(--c-line);
    position: sticky;
    top: 0;
    z-index: 50;
  }
  .header-inner {
    display: flex;
    align-items: center;
    gap: 28px;
    padding: 14px 0;
  }
  .brand { flex-shrink: 0; }
  .brand img { height: 56px; width: auto; }
  nav.primary {
    display: flex;
    gap: 2px;
    flex: 1;
    justify-content: center;
  }
  nav.primary > a, nav.primary .nav-item > a {
    padding: 10px 16px;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--c-text);
    border-radius: var(--radius);
    transition: background .15s, color .15s;
    cursor: pointer;
  }
  nav.primary > a:hover, nav.primary .nav-item:hover > a, nav.primary .nav-item:focus-within > a {
    background: var(--c-olive-soft);
    color: var(--c-olive-dark);
  }
  nav.primary .has-sub::after {
    content: '';
    display: inline-block;
    margin-left: 6px;
    border: 4px solid transparent;
    border-top-color: var(--c-muted);
    border-bottom: 0;
    vertical-align: middle;
  }
  .header-tools { display: flex; align-items: center; gap: 10px; }
  .header-search {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--c-bg);
    padding: 9px 14px;
    border-radius: 999px;
    width: 220px;
  }
  .header-search svg { width: 15px; height: 15px; color: var(--c-muted); flex-shrink: 0; }
  .header-search input {
    border: 0;
    background: transparent;
    outline: none;
    font-family: inherit;
    font-size: 13px;
    color: var(--c-text);
    width: 100%;
  }
  .header-search input::placeholder { color: var(--c-muted); }
  .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border-radius: var(--radius);
    font-weight: 600;
    font-size: 14px;
    transition: background .15s, color .15s;
    cursor: pointer;
    border: 0;
    text-decoration: none;
  }
  .btn-primary { background: var(--c-olive-dark); color: #fff; }
  .btn-primary:hover { background: var(--c-olive-darker); color: #fff; }
  .btn-amber { background: var(--c-amber); color: var(--c-olive-darker); }
  .btn-amber:hover { background: var(--c-amber-dark); color: var(--c-olive-darker); }
  .btn-outline { background: transparent; color: var(--c-olive-dark); border: 1px solid var(--c-line); }
  .btn-outline:hover { background: var(--c-olive-soft); }
  .btn-white { background: #fff; color: var(--c-olive-dark); border: 1px solid #fff; font-weight: 700; }
  .btn-white:hover { background: var(--c-olive-soft); color: var(--c-olive-darker); border-color: var(--c-olive-soft); }
  .btn-text { background: transparent; color: var(--c-olive-dark); padding: 0; }
  .btn-text:hover { color: var(--c-amber-dark); }

  /* ============== SECTIONS ============== */
  section.block { padding: 70px 0; }
  section.block.alt { background: var(--c-bg); }
  .section-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
    margin-bottom: 32px;
    flex-wrap: wrap;
  }
  .section-head .title-group { flex: 1; min-width: 280px; }
  .section-head .eyebrow {
    font-size: 12px;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--c-olive-mid);
    font-weight: 700;
    margin-bottom: 6px;
  }
  .section-head h2 {
    font-size: 32px;
    font-weight: 800;
    margin: 0;
    color: var(--c-text);
    letter-spacing: -0.02em;
    line-height: 1.15;
  }
  .section-head .link-all {
    font-weight: 600;
    font-size: 14px;
    color: var(--c-olive-dark);
    display: inline-flex;
    align-items: center;
    gap: 6px;
  }
  .section-head .link-all:hover { color: var(--c-amber-dark); }

  /* ============== HERO BAR (institucional, sin foto) ============== */
  .hero-bar {
    background: linear-gradient(to right, var(--c-olive-darker) 0%, var(--c-olive-dark) 100%);
    color: #fff;
    padding: 50px 0;
  }
  .hero-bar-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 60px;
    align-items: center;
  }
  .hero-bar .eyebrow {
    display: inline-block;
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--c-amber);
    font-weight: 700;
    margin-bottom: 14px;
  }
  .hero-bar h1 {
    font-size: clamp(28px, 3.2vw, 40px);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    margin: 0 0 14px;
  }
  .hero-bar p {
    font-size: 16px;
    color: rgba(255,255,255,0.85);
    margin: 0;
    max-width: 600px;
  }
  .hero-bar .ctas { display: flex; flex-direction: column; gap: 10px; }
  .hero-bar .ctas .btn { justify-content: center; }

  /* ============== NEWS DESTACADAS (entrada directa, estilo ICAM) ============== */
  .news-feature-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 24px;
  }
  .nfeat {
    background: #fff;
    border-radius: var(--radius);
    overflow: hidden;
    transition: transform .15s, box-shadow .15s;
    box-shadow: var(--shadow-card);
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: var(--c-text);
    border: 1px solid var(--c-line-soft);
  }
  .nfeat:hover {
    box-shadow: var(--shadow-hover);
    transform: translateY(-2px);
    color: var(--c-text);
  }
  .nfeat .img {
    aspect-ratio: 16/10;
    background-size: cover;
    background-position: center;
    background-color: var(--c-olive-soft);
  }
  .nfeat.big .img { aspect-ratio: 4/3; }
  .nfeat .body { padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
  .nfeat .meta {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    color: var(--c-muted);
  }
  .nfeat .cat {
    background: var(--c-olive-dark);
    color: #fff;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 4px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 10.5px;
  }
  .nfeat .date {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: 600;
  }
  .nfeat .date svg { width: 12px; height: 12px; }
  .nfeat h3 {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
    margin: 0;
    color: var(--c-text);
  }
  .nfeat.big h3 { font-size: 21px; }
  .nfeat:hover h3 { color: var(--c-olive-dark); }
  .nfeat p { font-size: 13.5px; color: var(--c-muted); margin: 0; line-height: 1.5; }

  /* ============== ACCESO RÁPIDO SERVICIOS (estilo ICAM 6 bloques) ============== */
  .services-icam {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 20px;
  }
  .srv {
    background: #fff;
    border: 1px solid var(--c-line);
    border-radius: var(--radius);
    padding: 28px 18px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    text-decoration: none;
    color: var(--c-text);
    transition: border-color .15s, transform .15s, box-shadow .15s;
    box-shadow: var(--shadow-card);
  }
  .srv:hover {
    border-color: var(--c-olive);
    box-shadow: var(--shadow-hover);
    transform: translateY(-2px);
    color: var(--c-text);
  }
  .srv .ic {
    width: 56px; height: 56px;
    background: var(--c-olive-soft);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: var(--c-olive-dark);
  }
  .srv .ic svg { width: 28px; height: 28px; }
  .srv h4 {
    font-size: 13px;
    font-weight: 700;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.3;
    color: var(--c-text);
  }

  /* ============== AGENDA ICAM-STYLE ============== */
  .agenda-wrap {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 36px;
    background: #fff;
    padding: 36px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-card);
    border: 1px solid var(--c-line-soft);
  }
  .agenda-cal { background: var(--c-olive-soft); border-radius: var(--radius); padding: 22px; }
  .agenda-cal .month-head {
    display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px;
  }
  .agenda-cal .month-head h4 { margin: 0; font-size: 15px; font-weight: 800; color: var(--c-olive-darker); }
  .agenda-cal .month-head button {
    background: #fff; border: 0; width: 28px; height: 28px; border-radius: 50%;
    color: var(--c-olive-dark); cursor: pointer; font-size: 14px; font-weight: 700;
  }
  .agenda-cal .dow {
    display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px;
    font-size: 10.5px; color: var(--c-olive-dark); font-weight: 700; text-transform: uppercase;
    text-align: center; margin-bottom: 6px;
  }
  .agenda-cal .days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
  .agenda-cal .day {
    aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
    font-size: 12.5px; color: var(--c-text); border-radius: 50%; position: relative;
  }
  .agenda-cal .day.muted { color: var(--c-line); }
  .agenda-cal .day.has-event { font-weight: 800; color: var(--c-olive-darker); }
  .agenda-cal .day.has-event::after {
    content: ''; position: absolute; bottom: 1px;
    width: 4px; height: 4px; background: var(--c-amber); border-radius: 50%;
  }
  .agenda-cal .day.selected {
    background: var(--c-olive-dark); color: #fff;
  }

  .agenda-list-icam { display: flex; flex-direction: column; }
  .agenda-row-icam {
    display: grid; grid-template-columns: 64px 1fr auto; gap: 22px; align-items: center;
    padding: 16px 0; border-bottom: 1px solid var(--c-line-soft);
  }
  .agenda-row-icam:first-child { padding-top: 0; }
  .agenda-row-icam:last-child { border-bottom: 0; }
  .agenda-row-icam .dt {
    background: var(--c-olive-soft); border-radius: var(--radius); text-align: center; padding: 8px;
  }
  .agenda-row-icam .dt .d {
    font-size: 22px; font-weight: 800; color: var(--c-olive-darker); line-height: 1;
  }
  .agenda-row-icam .dt .m {
    font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-olive-dark); font-weight: 700; margin-top: 4px;
  }
  .agenda-row-icam h5 { margin: 0 0 4px; font-size: 15px; font-weight: 700; line-height: 1.3; }
  .agenda-row-icam .info { font-size: 12.5px; color: var(--c-muted); display: flex; gap: 10px; }
  .agenda-row-icam .tag {
    background: var(--c-olive-darker); color: #fff;
    font-size: 10px; font-weight: 700; padding: 4px 10px; border-radius: 4px;
    text-transform: uppercase; letter-spacing: 0.08em;
  }

  /* ============== TE PUEDE INTERESAR (Colegiado/Ciudadano) ============== */
  .interest-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px;
  }
  .interest-card {
    background: #fff;
    border: 1px solid var(--c-line);
    border-radius: var(--radius-lg);
    padding: 36px;
    box-shadow: var(--shadow-card);
  }
  .interest-card.col { border-top: 4px solid var(--c-olive); }
  .interest-card.ciu { border-top: 4px solid var(--c-amber); }
  .interest-card h3 {
    font-size: 22px; font-weight: 800; margin: 0 0 6px; letter-spacing: -0.01em;
  }
  .interest-card > p { color: var(--c-muted); margin: 0 0 22px; font-size: 14.5px; }
  .interest-card .links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .interest-card .links a {
    padding: 10px 12px; background: var(--c-olive-soft); border-radius: 6px;
    font-size: 13px; font-weight: 600; color: var(--c-olive-dark);
    display: inline-flex; align-items: center; gap: 8px;
  }
  .interest-card .links a:hover { background: var(--c-olive); color: #fff; }
  .interest-card .links a svg { width: 14px; height: 14px; }

  /* ============== CONVOCATORIAS ============== */
  .convoc-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
  }
  .convoc {
    background: #fff;
    border: 1px solid var(--c-line);
    border-radius: var(--radius);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-shadow: var(--shadow-card);
  }
  .convoc .head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
  .convoc .type {
    display: inline-block;
    font-size: 11px;
    color: var(--c-olive-dark);
    background: var(--c-olive-soft);
    padding: 3px 10px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
  }
  .convoc .deadline { text-align: right; }
  .convoc .deadline .days { font-size: 24px; font-weight: 800; color: var(--c-amber-dark); line-height: 1; }
  .convoc .deadline .lbl { font-size: 10px; color: var(--c-muted); text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; }
  .convoc h4 { font-size: 16px; font-weight: 700; margin: 0; line-height: 1.3; }
  .convoc .dates { font-size: 12.5px; color: var(--c-muted); display: flex; gap: 14px; }
  .convoc .dates strong { color: var(--c-text); }

  /* ============== DEMARCACIONES ============== */
  .demarc-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);   /* nueve páginas de demarcación: 3 x 3 */
    gap: 14px;
  }
  .demarc {
    background: #fff;
    border: 1px solid var(--c-line);
    border-radius: var(--radius);
    padding: 18px 20px;
    display: flex; align-items: center; gap: 14px;
    color: var(--c-text);
    transition: background .15s, border-color .15s;
    box-shadow: var(--shadow-card);
  }
  .demarc:hover { background: var(--c-olive-soft); border-color: var(--c-olive); color: var(--c-text); }
  .demarc-pin {
    width: 36px; height: 36px; background: var(--c-olive-soft); border-radius: 50%;
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  }
  .demarc-pin svg { width: 16px; height: 16px; color: var(--c-olive-dark); }
  .demarc h5 { font-size: 15px; font-weight: 700; margin: 0 0 2px; }
  .demarc small { font-size: 11px; color: var(--c-muted); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; }

  /* ============== PARTNERS / CONVENIOS ============== */
  .partners-icam {
    background: #fff;
    padding: 50px 0;
    border-top: 1px solid var(--c-line);
    border-bottom: 1px solid var(--c-line);
  }
  .partners-icam .container { text-align: center; }
  .partners-icam .title {
    font-size: 12px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--c-muted);
    font-weight: 700;
    margin-bottom: 28px;
  }
  .partners-row-icam {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 24px;
    align-items: center;
  }
  .partner-block {
    height: 60px;
    display: flex; align-items: center; justify-content: center;
    color: var(--c-muted);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.04em;
    border-radius: var(--radius);
    background: var(--c-bg);
    opacity: 0.75;
    transition: opacity .15s;
    text-align: center;
    padding: 8px;
    line-height: 1.2;
  }
  .partner-block:hover { opacity: 1; }
  .partner-block img { max-height: 40px; width: auto; filter: grayscale(1); }
  .partner-block:hover img { filter: none; }

  /* ============== FOOTER ============== */
  footer.site {
    background: var(--c-olive-darker);
    color: rgba(255,255,255,0.75);
    padding: 60px 0 0;
  }
  footer.site a { color: rgba(255,255,255,0.75); }
  footer.site a:hover { color: var(--c-amber); }
  .footer-top {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
    gap: 36px;
    padding-bottom: 40px;
  }
  .footer-col h4 {
    color: #fff;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin: 0 0 16px;
    font-weight: 700;
  }
  .footer-col ul { list-style: none; padding: 0; margin: 0; }
  .footer-col li { margin-bottom: 9px; font-size: 13.5px; }
  .footer-about img { height: 50px; filter: brightness(0) invert(1); opacity: 0.95; margin-bottom: 18px; }
  .footer-about p { font-size: 13.5px; margin: 0 0 16px; }
  .footer-about .addr { font-size: 13px; line-height: 1.7; opacity: 0.85; }
  .footer-social { display: flex; gap: 8px; margin-top: 16px; }
  .footer-social a {
    width: 34px; height: 34px; border-radius: 50%;
    background: rgba(255,255,255,0.08);
    display: inline-flex; align-items: center; justify-content: center;
  }
  .footer-social a:hover { background: var(--c-amber); color: var(--c-olive-darker); }
  .footer-social svg { width: 14px; height: 14px; }
  .footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.1);
    padding: 22px 0;
    display: flex; justify-content: space-between; align-items: center;
    flex-wrap: wrap; gap: 16px; font-size: 12.5px;
  }
  .footer-bottom .legal { display: flex; gap: 16px; flex-wrap: wrap; }
  .footer-bottom .dev .nx { color: var(--c-amber); font-weight: 700; }

  /* ============== RESPONSIVE ============== */
  @media (max-width: 1024px) {
    nav.primary { display: none; }
    .vb-burger { display: flex; }
    .header-inner { justify-content: space-between; }
    .header-search { width: 150px; }
    .hero-bar-grid { grid-template-columns: 1fr; }
    .news-feature-grid { grid-template-columns: 1fr 1fr; }
    .nfeat.big { grid-column: 1 / -1; }
    .services-icam { grid-template-columns: repeat(3, 1fr); }
    .agenda-wrap { grid-template-columns: 1fr; }
    .interest-grid { grid-template-columns: 1fr; }
    .convoc-grid { grid-template-columns: 1fr 1fr; }
    .demarc-grid { grid-template-columns: repeat(2, 1fr); }
    .partners-row-icam { grid-template-columns: repeat(3, 1fr); }
    .footer-top { grid-template-columns: 1fr 1fr; }
  }
  @media (max-width: 640px) {
    .header-search { display: none; }
    .news-feature-grid { grid-template-columns: 1fr; }
    .services-icam { grid-template-columns: repeat(2, 1fr); }
    .convoc-grid { grid-template-columns: 1fr; }
    .demarc-grid { grid-template-columns: 1fr; }
    .partners-row-icam { grid-template-columns: repeat(2, 1fr); }
    .footer-top { grid-template-columns: 1fr; }
    .topbar .left { display: none; }
    section.block { padding: 50px 0; }
    .section-head h2 { font-size: 26px; }
    .interest-card .links { grid-template-columns: 1fr; }
  }

  /* ===== Menú móvil (Versión B) ===== */
  .vb-burger { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; background: transparent; border: 1px solid var(--c-line); border-radius: var(--radius); cursor: pointer; padding: 0 11px; flex-shrink: 0; }
  .vb-burger span { display: block; height: 2.5px; width: 100%; background: var(--c-olive-darker); border-radius: 2px; transition: transform .25s, opacity .2s; }
  .vb-burger.active span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
  .vb-burger.active span:nth-child(2) { opacity: 0; }
  .vb-burger.active span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
  .vb-mobile { display: none; flex-direction: column; background: #fff; border-top: 1px solid var(--c-line); padding: 14px 28px 24px; max-height: calc(100vh - 120px); overflow-y: auto; }
  .vb-mobile.open { display: flex; }
  body.vb-open { overflow: hidden; }
  .vb-mobile a.mm-link { padding: 15px 4px; font-size: 16px; font-weight: 700; color: var(--c-text); border-bottom: 1px solid var(--c-line-soft); }
  .vb-mobile a.mm-link small { display: block; font-weight: 500; color: var(--c-muted); font-size: 12.5px; margin-top: 2px; }
  .vb-mobile a.mm-link:hover { color: var(--c-olive-dark); }
  .vb-mobile .vb-ctas { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; }
  .vb-mobile .vb-ctas a { text-align: center; padding: 14px; border-radius: var(--radius); font-weight: 700; font-size: 14px; }
  .vb-mobile .vb-ctas .vb-prim { background: var(--c-amber); color: var(--c-olive-darker); }
  .vb-mobile .vb-ctas .vb-out { border: 1px solid var(--c-line); color: var(--c-olive-dark); }
  /* Mostrar hamburguesa en móvil/tablet (debe ir al final para ganar al display:none base) */
  @media (max-width: 1024px) { .vb-burger { display: flex; } }
  @media (max-width: 640px) {
    .topbar .right { gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
    .topbar .lang { display: none; }
    .topbar .social { gap: 6px; }
  }

  /* ===== Multimedia / vídeos ===== */
  .vb-mm-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 22px; }
  .vb-mm { border-radius: var(--radius); overflow: hidden; position: relative; aspect-ratio: 16/11; background-size: cover; background-position: center; color: #fff; padding: 28px; display: flex; flex-direction: column; justify-content: space-between; box-shadow: var(--shadow-card); }
  .vb-mm::before { content: ''; position: absolute; inset: 0; background: rgba(46,62,16,0.72); }
  .vb-mm:hover::before { background: rgba(46,62,16,0.55); }
  .vb-mm > * { position: relative; z-index: 2; }
  .vb-mm .kind { display: inline-flex; align-items: center; gap: 8px; background: var(--c-olive-darker); padding: 7px 14px; border-radius: var(--radius); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; align-self: flex-start; }
  .vb-mm.video .kind { background: var(--c-amber); color: var(--c-olive-darker); }
  .vb-mm h3 { font-size: 21px; font-weight: 700; margin: 0 0 6px; line-height: 1.25; color: #fff; }
  .vb-mm.small h3 { font-size: 17px; }
  .vb-mm .desc { font-size: 13px; color: rgba(255,255,255,0.82); margin: 0; }
  .vb-mm.video { background-image: url('news-libertad-prensa.jpg'); }
  .vb-mm.podcast { background-image: url('news-tsja.jpg'); }
  .vb-mm.revista { background-image: url('news-acto.jpeg'); }
  @media (max-width: 1024px) { .vb-mm-grid { grid-template-columns: 1fr 1fr; } .vb-mm { aspect-ratio: 16/9; } }
  @media (max-width: 640px) { .vb-mm-grid { grid-template-columns: 1fr; } }
.page-head { background: var(--c-olive-soft); border-bottom: 1px solid var(--c-line); padding: 30px 0 34px; }
.breadcrumb { font-size: 13px; color: var(--c-muted); margin-bottom: 14px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.breadcrumb a { color: var(--c-olive-dark); }
.breadcrumb .sep { opacity: .45; }
.page-head h1 { font-size: 36px; font-weight: 800; margin: 0; color: var(--c-text); letter-spacing: -0.02em; line-height: 1.1; }
.page-head .intro { color: var(--c-muted); font-size: 17px; margin: 12px 0 0; max-width: 720px; }
.svc-group { margin-bottom: 46px; }
.svc-group > h2 { font-size: 22px; font-weight: 800; color: var(--c-text); margin: 0 0 20px; padding-bottom: 10px; border-bottom: 2px solid var(--c-olive); display: inline-block; }
.svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.svc-card { display: flex; gap: 16px; align-items: flex-start; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 22px; text-decoration: none; color: var(--c-text); box-shadow: var(--shadow-card); transition: box-shadow .2s, transform .2s, border-color .2s; }
.svc-card:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); border-color: var(--c-olive); color: var(--c-text); }
.svc-card .sc-ic { width: 44px; height: 44px; flex-shrink: 0; border-radius: 10px; background: var(--c-olive-soft); color: var(--c-olive-dark); display: flex; align-items: center; justify-content: center; }
.svc-card .sc-ic svg { width: 22px; height: 22px; }
.svc-card h3 { font-size: 16px; font-weight: 700; margin: 0 0 4px; color: var(--c-text); }
.svc-card p { font-size: 13.5px; color: var(--c-muted); margin: 0; line-height: 1.45; }
@media (max-width: 1024px) { .svc-grid { grid-template-columns: 1fr 1fr; } .page-head h1 { font-size: 30px; } }
@media (max-width: 640px) { .svc-grid { grid-template-columns: 1fr; } }
.cta-box { background: var(--c-olive-darker); color: #fff; border-radius: var(--radius); padding: 28px 32px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 40px; }
.cta-box .cta-txt h2 { font-size: 21px; margin: 0 0 6px; color: #fff; font-weight: 800; letter-spacing: -0.01em; }
.cta-box .cta-txt p { margin: 0; color: rgba(255,255,255,0.85); font-size: 14.5px; max-width: 560px; }
.cta-box .cta-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.cta-box .btn-amber { white-space: nowrap; }
.cta-box .btn-ghost { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.45); white-space: nowrap; }
.cta-box .btn-ghost:hover { background: rgba(255,255,255,0.12); color: #fff; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 8px; }
.step { display: flex; gap: 14px; align-items: flex-start; }
.step .num { flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--c-olive); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 15px; }
.step h3 { font-size: 16px; font-weight: 700; margin: 4px 0 4px; color: var(--c-text); }
.step p { font-size: 13.5px; color: var(--c-muted); margin: 0; line-height: 1.5; }
@media (max-width: 1024px) { .steps { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .cta-box { flex-direction: column; align-items: flex-start; } }
.form-wrap { max-width: 880px; }
.fset { border: 1px solid var(--c-line); border-radius: var(--radius); padding: 24px 26px; margin-bottom: 22px; background: #fff; box-shadow: var(--shadow-card); }
.fset .fset-h { font-size: 16px; font-weight: 800; color: var(--c-text); margin: 0 0 18px; display: flex; align-items: center; gap: 10px; }
.fset .fset-h .n { width: 26px; height: 26px; border-radius: 50%; background: var(--c-olive); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 800; flex-shrink: 0; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: 13.5px; font-weight: 600; color: var(--c-text-soft); }
.field label .req { color: #C0392B; margin-left: 2px; }
.field input, .field select, .field textarea { padding: 11px 13px; border: 1px solid var(--c-line); border-radius: 6px; font-family: inherit; font-size: 14.5px; color: var(--c-text); background: #fff; width: 100%; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--c-olive-dark); box-shadow: 0 0 0 3px rgba(157,190,84,0.28); }
.field .help { font-size: 12px; color: var(--c-muted); }
.radio-row { display: flex; gap: 14px; flex-wrap: wrap; }
.radio-opt { flex: 1; min-width: 220px; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 14px 16px; cursor: pointer; display: flex; gap: 10px; align-items: flex-start; }
.radio-opt:hover { border-color: var(--c-olive); background: var(--c-olive-soft); }
.radio-opt input { margin-top: 3px; }
.radio-opt strong { display: block; font-size: 14.5px; color: var(--c-text); }
.radio-opt span { font-size: 12.5px; color: var(--c-muted); }
.check-row { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; font-size: 13.5px; color: var(--c-text-soft); line-height: 1.5; }
.check-row input { margin-top: 3px; flex-shrink: 0; }
.form-actions { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
.form-actions .note { font-size: 12.5px; color: var(--c-muted); }
@media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } }
.filterbar { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 18px 20px; display: grid; grid-template-columns: 2fr 1fr 1fr auto; gap: 12px; align-items: end; margin-bottom: 24px; box-shadow: var(--shadow-card); }
.filterbar .field label { font-size: 12px; font-weight: 600; color: var(--c-text-soft); }
.filterbar .btn { height: 42px; }
.result-count { font-size: 13.5px; color: var(--c-muted); margin: 0 0 16px; }
.result-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.res-card { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 18px; box-shadow: var(--shadow-card); text-decoration: none; color: var(--c-text); transition: box-shadow .2s, border-color .2s, transform .2s; }
.res-card:hover { box-shadow: var(--shadow-hover); border-color: var(--c-olive); transform: translateY(-2px); color: var(--c-text); }
.res-card .avatar { width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0; background: var(--c-olive-soft); color: var(--c-olive-dark); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 18px; }
.res-card .avatar svg { width: 24px; height: 24px; }
.res-card h3 { font-size: 16px; margin: 0 0 2px; font-weight: 700; color: var(--c-text); }
.res-card .meta { font-size: 13px; color: var(--c-muted); }
.res-card .tags { margin-top: 8px; display: flex; gap: 6px; flex-wrap: wrap; }
.tag-chip { font-size: 11px; background: var(--c-olive-soft); color: var(--c-olive-dark); padding: 3px 9px; border-radius: 999px; font-weight: 600; }
.tag-chip.amber { background: #FBF1D6; color: var(--c-amber-dark); }
.pager { display: flex; gap: 6px; justify-content: center; margin-top: 34px; }
.pager a { min-width: 38px; height: 38px; border: 1px solid var(--c-line); border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; color: var(--c-text); font-weight: 600; text-decoration: none; }
.pager a:hover { border-color: var(--c-olive); color: var(--c-olive-dark); }
.pager a.active { background: var(--c-olive-dark); color: #fff; border-color: var(--c-olive-dark); }
@media (max-width: 900px) { .filterbar { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .filterbar { grid-template-columns: 1fr; } .result-grid { grid-template-columns: 1fr; } }

/* ============== FORMACIÓN · tarjetas de curso ============== */
.curso-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.curso-card { display: flex; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow-card); overflow: hidden; transition: box-shadow .2s, border-color .2s, transform .2s; }
.curso-card:hover { box-shadow: var(--shadow-hover); border-color: var(--c-olive); transform: translateY(-2px); }
.curso-card .cc-date { flex-shrink: 0; width: 88px; background: var(--c-olive-soft); color: var(--c-olive-dark); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; border-right: 1px solid var(--c-line); }
.curso-card .cc-date .d { font-size: 30px; font-weight: 800; line-height: 1; }
.curso-card .cc-date .m { font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.curso-card .cc-date .y { font-size: 11px; color: var(--c-muted); margin-top: 2px; }
.curso-card .cc-body { padding: 18px 20px; flex: 1; display: flex; flex-direction: column; }
.cc-mode { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: 3px 9px; border-radius: 999px; background: var(--c-olive-soft); color: var(--c-olive-dark); align-self: flex-start; margin-bottom: 9px; }
.cc-mode.presencial { background: #FBF1D6; color: var(--c-amber-dark); }
.cc-mode.mixta { background: var(--c-line-soft); color: var(--c-text-soft); }
.curso-card h3 { font-size: 16.5px; font-weight: 700; margin: 0 0 9px; color: var(--c-text); line-height: 1.3; }
.curso-card .cc-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; color: var(--c-muted); margin-bottom: 14px; }
.curso-card .cc-meta span { display: inline-flex; align-items: center; gap: 5px; }
.curso-card .cc-meta svg { width: 15px; height: 15px; opacity: .8; }
.curso-card .cc-foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 12px; border-top: 1px solid var(--c-line-soft); }
.curso-card .cc-price { font-size: 13px; color: var(--c-muted); }
.curso-card .cc-price strong { color: var(--c-text); font-size: 15px; }
.curso-card .cc-price .free { color: var(--c-olive-dark); font-weight: 800; }
.curso-card .cc-foot .btn-text { font-weight: 700; font-size: 14px; white-space: nowrap; }
@media (max-width: 880px) { .curso-grid { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .curso-card { flex-direction: column; } .curso-card .cc-date { width: 100%; flex-direction: row; gap: 8px; padding: 8px 0; border-right: 0; border-bottom: 1px solid var(--c-line); } .curso-card .cc-date .d { font-size: 22px; } }

/* ============== NOTICIAS · listado ============== */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 8px; }
@media (max-width: 980px) { .news-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .news-grid { grid-template-columns: 1fr; } }

/* ============== NOTICIA · ficha de artículo ============== */
.article-figure { max-width: 1000px; margin: 0 auto 30px; }
/* Imagen principal de la noticia: entera y con su proporción (los carteles no se recortan); si es muy alta, se limita y se centra */
.article-figure img { display: block; width: 100%; height: auto; max-height: 680px; object-fit: contain; background: var(--c-olive-soft); border-radius: var(--radius-lg); }
.article-figure figcaption { font-size: 12.5px; color: var(--c-muted); padding: 9px 4px 0; line-height: 1.4; }
.article-wrap { max-width: 740px; margin: 0 auto; }
.article-lead { font-size: 19px; line-height: 1.6; color: var(--c-text); font-weight: 500; margin: 0 0 24px; }
.article-body p { margin: 0 0 18px; font-size: 16.5px; line-height: 1.78; color: var(--c-text-soft); }
.article-body h2 { font-size: 22px; font-weight: 800; margin: 34px 0 14px; color: var(--c-text); letter-spacing: -0.01em; }
.article-body ul, .article-body ol { margin: 0 0 18px; padding-left: 22px; color: var(--c-text-soft); }
.article-body li { margin-bottom: 8px; line-height: 1.7; }
.article-body blockquote { margin: 26px 0; padding: 16px 24px; border-left: 4px solid var(--c-olive); background: var(--c-olive-soft); font-size: 18px; font-style: italic; color: var(--c-text); border-radius: 0 var(--radius) var(--radius) 0; }
.article-body blockquote p { margin: 0; }
.article-body a { text-decoration: underline; }
.article-cat { background: var(--c-olive-dark); color: #fff; font-weight: 700; padding: 4px 11px; border-radius: 4px; letter-spacing: 0.06em; text-transform: uppercase; font-size: 11px; display: inline-block; }
.article-meta-top { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 16px; font-size: 13.5px; color: var(--c-muted); }
.article-author { display: flex; align-items: center; gap: 9px; color: var(--c-text-soft); font-weight: 600; }
.article-author .av { width: 34px; height: 34px; border-radius: 50%; background: #fff; color: var(--c-olive-dark); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 13px; border: 1px solid var(--c-line); }
.article-date { display: inline-flex; align-items: center; gap: 6px; }
.article-date svg { width: 15px; height: 15px; }
.share-row { display: flex; align-items: center; gap: 10px; margin: 30px 0; padding: 16px 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); flex-wrap: wrap; }
.share-row .lbl { font-size: 13px; font-weight: 700; color: var(--c-text); margin-right: 4px; }
.share-btn { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--c-line); display: inline-flex; align-items: center; justify-content: center; color: var(--c-text-soft); }
.share-btn svg { width: 18px; height: 18px; }
.share-btn:hover { border-color: var(--c-olive); color: var(--c-olive-dark); background: var(--c-olive-soft); }
.article-tags { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 10px; }

/* ============== BLOQUE IMAGEN + TEXTO ============== */
.feature-split { display: grid; grid-template-columns: 280px 1fr; gap: 36px; align-items: center; margin-bottom: 46px; }
.feature-split .fs-media { display: flex; align-items: center; justify-content: center; background: var(--c-olive-soft); border: 1px solid var(--c-line); border-radius: var(--radius-lg); padding: 28px; }
.feature-split .fs-media img { max-width: 200px; }
.feature-split h2 { font-size: 24px; font-weight: 800; margin: 0 0 12px; color: var(--c-text); letter-spacing: -0.01em; }
.feature-split p { color: var(--c-text-soft); margin: 0 0 12px; line-height: 1.7; font-size: 16px; }
@media (max-width: 760px) { .feature-split { grid-template-columns: 1fr; gap: 22px; } .feature-split .fs-media { padding: 22px; } .feature-split .fs-media img { max-width: 150px; } }

/* ============== LISTA DE CRITERIOS (check) ============== */
.check-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 26px; }
.check-list li { display: flex; gap: 11px; align-items: flex-start; font-size: 14.5px; color: var(--c-text-soft); line-height: 1.5; }
.check-list li::before { content: ""; flex-shrink: 0; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: var(--c-olive-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235C7026' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 13px no-repeat; }
@media (max-width: 640px) { .check-list { grid-template-columns: 1fr; } }

/* ============== MENÚ DESPLEGABLE (escritorio) ============== */
.nav-item { position: relative; display: flex; align-items: center; }
.subnav { position: absolute; top: 100%; left: 0; min-width: 252px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow-hover); padding: 8px; display: flex; flex-direction: column; gap: 1px; opacity: 0; visibility: hidden; transform: translateY(7px); transition: opacity .16s, transform .16s, visibility .16s; z-index: 60; }
.nav-item:hover .subnav, .nav-item:focus-within .subnav { opacity: 1; visibility: visible; transform: translateY(0); }
.subnav a { padding: 9px 12px; border-radius: 6px; font-size: 13.5px; font-weight: 600; color: var(--c-text-soft); white-space: nowrap; }
.subnav a:hover { background: var(--c-olive-soft); color: var(--c-olive-dark); }

/* ============== SECCIONES DEL MENÚ MÓVIL ============== */
.vb-mobile .mm-sec { display: flex; flex-direction: column; border-bottom: 1px solid var(--c-line-soft); padding: 8px 0; }
.vb-mobile .mm-head { font-size: 16px; font-weight: 800; color: var(--c-text); padding: 8px 4px 4px; }
.vb-mobile .mm-sec a { padding: 9px 4px 9px 16px; font-size: 14.5px; font-weight: 600; color: var(--c-text-soft); }
.vb-mobile .mm-sec a:hover { color: var(--c-olive-dark); }

/* ============== CUERPO DIRECTIVO · tarjetas con foto ============== */
.team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.member-card { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-card); transition: box-shadow .2s, transform .2s, border-color .2s; }
.member-card:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); border-color: var(--c-olive); }
.member-card .photo { aspect-ratio: 16/9; background-size: cover; background-position: center; background-color: #fff; border-bottom: 1px solid var(--c-line-soft); }
.member-card .info { padding: 14px 16px 16px; }
.member-card h3 { font-size: 15px; font-weight: 700; margin: 0 0 4px; color: var(--c-text); line-height: 1.3; }
.member-card .role { font-size: 12.5px; font-weight: 700; color: var(--c-olive-dark); text-transform: uppercase; letter-spacing: .03em; }
.member-card.lead .role { color: var(--c-amber-dark); }
@media (max-width: 1080px) { .team-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px) { .team-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 440px) { .team-grid { grid-template-columns: 1fr; } }

/* ============== ACCESO RÁPIDO EN DOS GRUPOS ============== */
.srv-block + .srv-block { margin-top: 30px; }
.srv-block-label { display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--c-olive-dark); margin: 0 0 16px; }
.srv-block-label::after { content: ''; flex: 1; height: 1px; background: var(--c-line); }
.srv-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.srv .srv-txt { display: flex; flex-direction: column; gap: 5px; }
.srv .srv-txt p { margin: 0; font-size: 12px; font-weight: 500; color: var(--c-muted); text-transform: none; letter-spacing: 0; line-height: 1.45; }

/* ============== HOME · MÁS COLOR (reversible: quitar class="home-tint" del body) ============== */
.home-tint .block.alt { background: var(--c-olive-soft); }
.home-tint .section-head .eyebrow { color: var(--c-amber-dark); }
.home-tint .srv-block-label { color: var(--c-olive-dark); }
.home-tint .srv .ic { background: var(--c-olive); color: #fff; }
.home-tint .srv:hover .ic { background: var(--c-olive-dark); }
.home-tint .section-head h2 { color: var(--c-olive-darker); }

/* ============== BANNER DE COOKIES (RGPD) ============== */
.cookie-bar { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 9998; max-width: 1100px; margin: 0 auto; background: var(--c-olive-darker); color: #fff; border-radius: var(--radius); padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; box-shadow: 0 8px 30px rgba(0,0,0,.3); }
.cookie-bar .cookie-txt { font-size: 13.5px; color: rgba(255,255,255,.9); flex: 1; min-width: 240px; line-height: 1.5; }
.cookie-bar a { color: #fff; text-decoration: underline; }
.cookie-bar .cookie-btns { display: flex; gap: 10px; flex-shrink: 0; }
.cookie-bar button { font-family: inherit; font-size: 13.5px; font-weight: 700; padding: 9px 18px; border-radius: var(--radius); cursor: pointer; border: 1px solid rgba(255,255,255,.45); background: transparent; color: #fff; }
.cookie-bar .ck-acc { background: var(--c-amber); border-color: var(--c-amber); color: var(--c-olive-darker); }
.cookie-bar .ck-acc:hover { background: var(--c-amber-dark); }
.cookie-bar .ck-rej:hover { background: rgba(255,255,255,.12); }
@media (max-width: 560px) { .cookie-bar { padding: 14px; } .cookie-bar .cookie-btns { width: 100%; } .cookie-bar .cookie-btns button { flex: 1; } }
@media (max-width: 760px) { .srv-grid-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .srv-grid-3 { grid-template-columns: 1fr; } }

/* ============== BOTÓN PLAY EN VÍDEOS ============== */
.vb-mm.video .play-btn { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 64px; height: 64px; border-radius: 50%; background: rgba(255,255,255,0.92); display: flex; align-items: center; justify-content: center; z-index: 3; transition: transform .18s, background .18s; box-shadow: 0 4px 14px rgba(0,0,0,0.25); }
.vb-mm.video .play-btn svg { width: 26px; height: 26px; margin-left: 3px; color: var(--c-olive-darker); }
.vb-mm.video:hover .play-btn { transform: translate(-50%, -50%) scale(1.08); background: #fff; }

/* ============== MEDIATECA · módulo de vídeos ============== */
.media-section { margin-bottom: 50px; }
.media-section:last-child { margin-bottom: 0; }
.video-hero { position: relative; aspect-ratio: 16/9; border-radius: var(--radius-lg); overflow: hidden; background-size: cover; background-position: center; background-color: var(--c-olive-darker); display: flex; align-items: flex-end; box-shadow: var(--shadow-card); }
.video-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(46,62,16,0.88), rgba(46,62,16,0.15) 55%, rgba(46,62,16,0.05)); }
.video-hero .vh-body { position: relative; z-index: 2; padding: 30px 34px; color: #fff; max-width: 720px; }
.video-hero .vh-cat { display: inline-block; background: var(--c-amber); color: var(--c-olive-darker); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; padding: 5px 12px; border-radius: 5px; margin-bottom: 12px; }
.video-hero h2 { color: #fff; font-size: 28px; font-weight: 800; margin: 0 0 8px; line-height: 1.2; letter-spacing: -0.01em; }
.video-hero p { color: rgba(255,255,255,0.85); margin: 0; font-size: 14.5px; }
.big-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 2; width: 84px; height: 84px; border-radius: 50%; background: rgba(255,255,255,0.92); display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 20px rgba(0,0,0,0.3); transition: transform .18s, background .18s; }
.video-hero:hover .big-play { transform: translate(-50%, -50%) scale(1.08); background: #fff; }
.big-play svg { width: 34px; height: 34px; margin-left: 5px; color: var(--c-olive-darker); }
.video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.vid-card { display: block; text-decoration: none; color: var(--c-text); }
.vid-thumb { position: relative; aspect-ratio: 16/9; border-radius: var(--radius); overflow: hidden; background-size: cover; background-position: center; background-color: var(--c-olive-soft); box-shadow: var(--shadow-card); }
.vid-thumb::before { content: ''; position: absolute; inset: 0; background: rgba(46,62,16,0.28); transition: background .18s; }
.vid-card:hover .vid-thumb::before { background: rgba(46,62,16,0.1); }
.vid-thumb .play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 2; width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,0.92); display: flex; align-items: center; justify-content: center; transition: transform .18s; }
.vid-card:hover .vid-thumb .play { transform: translate(-50%, -50%) scale(1.1); }
.vid-thumb .play svg { width: 20px; height: 20px; margin-left: 2px; color: var(--c-olive-darker); }
.vid-thumb .dur { position: absolute; bottom: 8px; right: 8px; z-index: 2; background: rgba(0,0,0,0.75); color: #fff; font-size: 11px; font-weight: 600; padding: 2px 7px; border-radius: 4px; }
.vid-card h3 { font-size: 15px; font-weight: 700; margin: 12px 0 4px; line-height: 1.3; color: var(--c-text); }
.vid-card .meta { font-size: 12.5px; color: var(--c-muted); }
@media (max-width: 880px) { .video-grid { grid-template-columns: 1fr 1fr; } .video-hero h2 { font-size: 22px; } }
@media (max-width: 560px) { .video-grid { grid-template-columns: 1fr; } .big-play { width: 64px; height: 64px; } .big-play svg { width: 26px; height: 26px; } }

/* ===========================================================
   REVISIONES JUN 2026 (feedback Colegio) — Nexopro v0.5
   1) Agenda/calendario responsive  2) Más color en los fondos
   3) Accesibilidad  4) Rendimiento  5) Banner de Formación
   =========================================================== */

/* ---- 1) AGENDA / CALENDARIO RESPONSIVE (que la cuadrícula no se corte) ---- */
.agenda-cal .dow,
.agenda-cal .days { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.agenda-cal .day { font-size: clamp(11px, 3.2vw, 13px); }
@media (max-width: 640px) {
  .agenda-wrap { padding: 16px; gap: 18px; border-radius: var(--radius); }
  .agenda-cal { padding: 14px; }
  .agenda-cal .month-head h4 { font-size: 14px; }
  .agenda-cal .dow { font-size: 9.5px; }
  .agenda-row-icam { grid-template-columns: 46px 1fr; gap: 12px; }
  .agenda-row-icam .dt .d { font-size: 18px; }
  .agenda-row-icam .info { flex-wrap: wrap; gap: 4px 10px; }
  .agenda-row-icam .tag { grid-column: 2; justify-self: start; margin-top: 2px; }
}

/* ---- 2) MÁS COLOR / FONDOS AMIGABLES (distinguen secciones, accesibles) ---- */
/* Utilidades suaves: texto oscuro sobre fondos muy claros (alto contraste) */
section.block.tint-cream { background: var(--c-olive-cream); }
section.block.tint-soft  { background: var(--c-olive-soft); }
section.block.tint-amber { background: #FCF6E6; }
/* La franja de colaboradores cierra con un tono cálido en lugar de blanco plano */
.partners-icam { background: var(--c-olive-cream); }

/* ---- 3) ACCESIBILIDAD ---- */
/* Foco visible y claro para navegación por teclado */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--c-amber-dark);
  outline-offset: 2px;
  border-radius: 4px;
}
/* Eyebrows con contraste suficiente (el olive-mid no llegaba a AA sobre blanco) */
.section-head .eyebrow,
.home-tint .section-head .eyebrow { color: var(--c-olive-dark); }
/* Enlace "saltar al contenido" (lo inyecta cppa-b.js como primer elemento) */
.skip-link {
  position: absolute; left: 12px; top: -56px; z-index: 10000;
  background: var(--c-olive-darker); color: #fff; padding: 10px 16px;
  border-radius: var(--radius); font-weight: 700; transition: top .15s;
}
.skip-link:focus { top: 12px; color: #fff; outline: 3px solid var(--c-amber); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important; animation-iteration-count: 1 !important;
    transition-duration: .001ms !important; scroll-behavior: auto !important;
  }
}

/* ---- 4) RENDIMIENTO (zonas con muchas tarjetas/imágenes) ---- */
/* El navegador aplaza el pintado de lo que está fuera de pantalla */
.team-grid, .partners-row-icam, .result-grid, .demarc-grid {
  content-visibility: auto;
  contain-intrinsic-size: 1px 520px;
}

/* ---- 5) BANNER DE FORMACIÓN ---- */
.formacion-banner { background: linear-gradient(100deg, var(--c-olive-darker), var(--c-olive-dark)); color: #fff; }
.formacion-banner .inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 36px 0; flex-wrap: wrap; }
.formacion-banner .fb-txt { flex: 1; min-width: 280px; }
.formacion-banner .eyebrow { font-size: 12px; letter-spacing: .15em; text-transform: uppercase; font-weight: 700; color: var(--c-amber); margin-bottom: 6px; }
.formacion-banner h2 { color: #fff; font-size: 27px; font-weight: 800; margin: 0 0 8px; letter-spacing: -0.01em; }
.formacion-banner p { color: rgba(255,255,255,0.88); margin: 0; max-width: 640px; line-height: 1.55; }
.formacion-banner .fb-actions { flex-shrink: 0; }
@media (max-width: 640px) { .formacion-banner .inner { padding: 28px 0; } .formacion-banner h2 { font-size: 23px; } .formacion-banner .fb-actions .btn { width: 100%; justify-content: center; } }

/* ---- Tarjetas de "Acceso rápido" rellenas de color (2 tonos por grupo) ---- */
/* Grupo "Utilidades y trámites" -> familia verde */
.home-tint .grp-util .srv { background: var(--c-olive-soft); border-color: #D7E4B6; }
.home-tint .grp-util .srv:hover { background: #E7F0D1; border-color: var(--c-olive); }
/* Grupo "Servicios clave" -> familia ámbar (cálido), icono ámbar a juego */
.home-tint .grp-clave .srv { background: #FCF6E6; border-color: #ECDDB2; }
.home-tint .grp-clave .srv:hover { background: #FAEFCF; border-color: var(--c-amber); }
.home-tint .grp-clave .srv .ic { background: var(--c-amber); color: var(--c-olive-darker); }
.home-tint .grp-clave .srv:hover .ic { background: var(--c-amber-dark); color: #fff; }

/* ---- Acordeones (Transparencia y documentación) ---- */
.acc { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow-card); margin-bottom: 12px; overflow: hidden; }
.acc summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 14px; padding: 18px 20px; font-weight: 700; font-size: 15.5px; color: var(--c-olive-darker); }
.acc summary::-webkit-details-marker { display: none; }
.acc summary .acc-ic { width: 40px; height: 40px; border-radius: 10px; background: var(--c-olive-soft); color: var(--c-olive-dark); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.acc summary .acc-ic svg { width: 20px; height: 20px; }
.acc summary .acc-count { margin-left: auto; font-size: 12px; font-weight: 700; color: var(--c-muted); background: var(--c-line-soft); padding: 3px 10px; border-radius: 999px; flex-shrink: 0; }
.acc summary .acc-caret { flex-shrink: 0; border: 5px solid transparent; border-top-color: var(--c-olive-dark); margin-top: 5px; transition: transform .18s; }
.acc[open] summary .acc-caret { transform: rotate(180deg); margin-top: -5px; }
.acc[open] summary { border-bottom: 1px solid var(--c-line-soft); }
.acc .acc-body { padding: 6px 20px 16px; }
.acc .doc-row { display: flex; align-items: center; gap: 12px; padding: 12px 4px; border-bottom: 1px solid var(--c-line-soft); color: var(--c-text); }
.acc .doc-row:last-child { border-bottom: 0; }
.acc .doc-row svg { width: 18px; height: 18px; color: var(--c-olive-dark); flex-shrink: 0; }
.acc .doc-row .doc-txt { flex: 1; min-width: 0; }
.acc .doc-row .doc-txt strong { display: block; font-size: 14px; font-weight: 600; }
.acc .doc-row .doc-txt small { color: var(--c-muted); font-size: 12px; }
.acc .doc-row .doc-dl { font-size: 12px; font-weight: 700; color: var(--c-olive-dark); background: var(--c-olive-soft); padding: 6px 12px; border-radius: 6px; white-space: nowrap; }
.acc .doc-row:hover .doc-dl { background: var(--c-olive); color: #fff; }
.acc .acc-note { font-size: 13px; color: var(--c-muted); padding: 10px 4px 4px; line-height: 1.5; }

/* ---- Pestañas rápidas de Actualidad (Noticias / Comunicados / Posicionamientos) ---- */
.news-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 22px; }
.news-tabs a { padding: 9px 16px; border-radius: 999px; font-size: 13.5px; font-weight: 700; border: 1px solid var(--c-line); color: var(--c-text-soft); background: #fff; cursor: pointer; }
.news-tabs a:hover { border-color: var(--c-olive); color: var(--c-olive-dark); }
.news-tabs a.active { background: var(--c-olive-dark); border-color: var(--c-olive-dark); color: #fff; }
.nfeat .cat.tipo-comunicado { background: var(--c-olive-darker); color: #fff; }
.nfeat .cat.tipo-posicionamiento { background: var(--c-amber); color: var(--c-olive-darker); }

/* ---- Mediateca: reproductor de YouTube incrustado ---- */
.yt-hero { position: relative; aspect-ratio: 16/9; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-card); background: #000; }
.yt-hero iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.yt-note { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; color: var(--c-olive-dark); background: var(--c-olive-soft); padding: 6px 12px; border-radius: 999px; margin-top: 10px; }
.yt-note svg { width: 15px; height: 15px; }

/* ---- Agenda: filas alternas verde / ámbar para diferenciar cada línea ---- */
.agenda-list-icam { gap: 8px; }
.agenda-row-icam { border-bottom: 0; border-radius: var(--radius); padding: 14px 16px; }
.agenda-row-icam:first-child { padding-top: 14px; }
.agenda-row-icam:nth-child(odd)  { background: var(--c-olive-soft); }
.agenda-row-icam:nth-child(even) { background: #FCF6E6; }
/* el recuadro de la fecha en blanco con borde para que resalte sobre ambos tonos */
.agenda-row-icam .dt { background: #fff; border: 1px solid var(--c-line); }
/* ===== DIRECTORIO DE EMPRESAS COLEGIADAS (mapa + lista) ===== */
.dir-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:20px;align-items:start;margin-top:8px}
.dir-count{font-size:13px;color:var(--c-muted);margin:0 0 14px}
.dir-count strong{color:var(--c-olive-darker)}
.dir-list{display:flex;flex-direction:column;gap:12px;max-height:640px;overflow-y:auto;padding-right:4px}
.dir-map{height:640px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card);border:1px solid var(--c-line);position:sticky;top:105px;background:var(--c-olive-soft);isolation:isolate}
/* isolation: las capas de Leaflet (z-index 400-1000) quedan dentro del mapa y no pasan por encima de la cabecera fija (z-index 50); top = altura de la cabecera + margen */
.dir-card{border:1px solid var(--c-line);border-radius:var(--radius);padding:14px 16px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s;display:block;color:var(--c-text);text-align:left;font:inherit;width:100%}
.dir-card:hover,.dir-card.active{border-color:var(--c-olive);box-shadow:var(--shadow-hover)}
.dir-card.active{background:var(--c-olive-soft)}
.dir-card h3{margin:0 0 2px;font-size:16px;font-weight:700;color:var(--c-olive-darker)}
.dir-card .dc-meta{font-size:12.5px;color:var(--c-muted);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.dir-card .dc-serv{display:flex;flex-wrap:wrap;gap:6px}
.dir-card .dc-serv .tag-chip{font-size:11px}
.dir-map .leaflet-popup-content-wrapper{border-radius:10px}
.dir-map .leaflet-popup-content{font-family:inherit;margin:12px 14px}
.dir-pop h4{margin:0 0 2px;font-size:14.5px;color:var(--c-olive-darker)}
.dir-pop .pm{font-size:12px;color:var(--c-muted);margin:0 0 8px}
.dir-pop a.pf{font-weight:700;color:var(--c-olive-dark);font-size:12.5px}
@media(max-width:900px){.dir-layout{grid-template-columns:1fr}.dir-map{height:360px;position:static;order:-1}.dir-list{max-height:none}}

/* ===== Encabezado de demarcación con foto de la provincia (verde arriba) ===== */
.page-head.demarc-hero{ position:relative; background-color:var(--c-olive-darker); background-size:cover; background-position:center 40%; border-bottom:0; padding:0; overflow:hidden; }
.page-head.demarc-hero::before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(46,62,16,.96) 0%, rgba(46,62,16,.80) 24%, rgba(46,62,16,.45) 60%, rgba(46,62,16,.12) 100%); }
.page-head.demarc-hero .container{ position:relative; z-index:1; padding-top:40px; padding-bottom:120px; }
.page-head.demarc-hero .breadcrumb, .page-head.demarc-hero .breadcrumb .sep{ color:rgba(255,255,255,.78); }
.page-head.demarc-hero .breadcrumb a{ color:rgba(255,255,255,.92); }
.page-head.demarc-hero h1{ color:#fff; text-shadow:0 1px 12px rgba(0,0,0,.25); }
.page-head.demarc-hero .intro{ color:rgba(255,255,255,.92); }
.page-head.demarc-hero .intro a{ color:#fff; text-decoration:underline; text-underline-offset:2px; }
.page-head.demarc-hero .intro.demarc-vecina{ margin-top:10px; font-size:.95em; }
/* sin foto de la zona (aún): solo el verde, sin el hueco que deja sitio a la foto */
.page-head.demarc-hero:not([style]) .container{ padding-bottom:48px; }
@media(max-width:640px){ .page-head.demarc-hero .container{ padding-bottom:80px; } }
/* Crédito de la foto de cabecera (Wikimedia Commons) */
.page-head.demarc-hero .foto-credito{ position:absolute; right:12px; bottom:10px; z-index:1; margin:0; max-width:calc(100% - 24px); font-size:11px; line-height:1.4; text-align:right; color:rgba(255,255,255,.88); background:rgba(0,0,0,.38); padding:3px 9px; border-radius:6px; }
.page-head.demarc-hero .foto-credito a{ color:#fff; text-decoration:underline; text-underline-offset:2px; }
@media(max-width:640px){ .page-head.demarc-hero .foto-credito{ font-size:10.5px; right:8px; bottom:8px; max-width:calc(100% - 16px); } }

/* ===== Ficha de empresa / profesional: texto + mapa =====
   (.feature-split es para una imagen fija de 280px a la izquierda; aquí el texto va primero y necesita ancho) */
.ficha-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: start; margin-bottom: 46px; }
.ficha-layout.sin-mapa { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
.ficha-layout h2 { font-size: 24px; font-weight: 800; margin: 0 0 12px; color: var(--c-text); letter-spacing: -0.01em; }
.ficha-layout .ficha-desc { color: var(--c-text-soft); margin: 0 0 12px; line-height: 1.7; font-size: 16px; }
.ficha-layout .svc-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.ficha-layout .svc-card { padding: 16px 18px; }
.ficha-layout .svc-card:hover { transform: none; }
.ficha-layout .svc-card p { font-size: 14.5px; overflow-wrap: anywhere; }
.ficha-mapa { height: 420px; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--c-line); box-shadow: var(--shadow-card); background: var(--c-olive-soft); position: sticky; top: 105px; isolation: isolate; }
.ficha-mapa .leaflet-popup-content-wrapper { border-radius: 10px; }
.ficha-mapa .leaflet-popup-content { font-family: inherit; margin: 12px 14px; }
@media (max-width: 860px) {
  .ficha-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ficha-mapa { position: static; height: 300px; }
}

/* ===== Noticia estilo periódico: columna principal + columna lateral con más contenido de la web ===== */
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 52px; align-items: start; }
.article-layout .article-figure { max-width: none; margin: 0 0 28px; }
.article-layout .article-wrap { max-width: none; margin: 0; }
.article-aside { display: flex; flex-direction: column; gap: 32px; min-width: 0; }
.aside-title { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0 0 4px; padding-bottom: 9px; border-bottom: 3px solid var(--c-olive-dark); font-size: 13px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--c-olive-darker); }
.aside-title a { font-size: 12.5px; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--c-olive-dark); white-space: nowrap; }
.aside-sub { margin: 8px 0 0; font-size: 13px; color: var(--c-muted); }
.aside-news { list-style: none; margin: 0; padding: 0; }
.aside-news li + li { border-top: 1px solid var(--c-line); }
.aside-news a { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 12px; align-items: start; padding: 12px 0; color: inherit; text-decoration: none; }
.aside-news .th { aspect-ratio: 4/3; border-radius: 6px; background: var(--c-olive-soft) center/cover no-repeat; }
.aside-news h3 { margin: 0 0 5px; font-size: 14px; line-height: 1.35; font-weight: 700; color: var(--c-text); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.aside-news a:hover h3 { color: var(--c-olive-dark); text-decoration: underline; }
.aside-news .when { font-size: 12px; color: var(--c-muted); }
.aside-news .when b { color: var(--c-olive-dark); font-weight: 800; text-transform: uppercase; font-size: 10.5px; letter-spacing: .05em; margin-right: 6px; }
/* "Lo último", numerado como los rankings de los periódicos */
.aside-news.numerada { counter-reset: puesto; }
.aside-news.numerada a { grid-template-columns: 30px minmax(0, 1fr); }
.aside-news.numerada a::before { counter-increment: puesto; content: counter(puesto); font: 700 30px/1 Georgia, 'Times New Roman', serif; color: var(--c-olive); }
.aside-promo { border-radius: var(--radius-lg); padding: 20px 20px 22px; background: var(--c-olive-darker); color: #fff; }
.aside-promo .kicker { font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--c-amber); }
.aside-promo h3 { margin: 6px 0 8px; font-size: 17px; line-height: 1.3; color: #fff; }
.aside-promo h3 a { color: inherit; text-decoration: none; }
.aside-promo h3 a:hover { text-decoration: underline; }
.aside-promo p { margin: 0 0 16px; font-size: 13.5px; line-height: 1.5; color: rgba(255, 255, 255, .86); }
.aside-promo .btn { width: 100%; justify-content: center; }
.aside-promo.claro { background: var(--c-olive-cream); color: var(--c-text); border: 1px solid var(--c-line); }
.aside-promo.claro .kicker { color: var(--c-amber-dark); }
.aside-promo.claro h3 { color: var(--c-olive-darker); }
.aside-promo.claro p { color: var(--c-text-soft); }
.aside-books { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.aside-books a { color: var(--c-text); text-decoration: none; font-size: 12px; line-height: 1.3; font-weight: 600; }
.aside-books a:hover { color: var(--c-olive-dark); }
.aside-books .cv { aspect-ratio: 2/3; border-radius: 5px; background: var(--c-olive-soft) center/cover no-repeat; box-shadow: 0 2px 8px rgba(46, 62, 16, .18); margin-bottom: 7px; }
.aside-books span { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.aside-links { list-style: none; margin: 0; padding: 0; }
.aside-links a { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--c-line); color: var(--c-text); font-weight: 700; font-size: 14px; text-decoration: none; }
.aside-links a:hover { color: var(--c-olive-dark); }
.aside-links .ic { width: 36px; height: 36px; border-radius: 9px; background: var(--c-olive-soft); color: var(--c-olive-dark); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.aside-links .ic svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.aside-links small { display: block; font-weight: 500; font-size: 12px; color: var(--c-muted); }
.aside-social { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.aside-social a { width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--c-olive-soft); color: var(--c-olive-dark); }
.aside-social a:hover { background: var(--c-olive-dark); color: #fff; }
.aside-social svg { width: 18px; height: 18px; }
/* Bloques extra de la columna: se van mostrando solos mientras el texto de la noticia siga (sólo en escritorio) */
.article-aside .aside-extra[hidden] { display: none !important; }
.aside-form { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.aside-form input { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid var(--c-line); border-radius: 8px; font: inherit; font-size: 14px; background: #fff; color: var(--c-text); }
.aside-form input:focus { outline: 2px solid var(--c-olive); outline-offset: 1px; border-color: var(--c-olive); }
.aside-form .btn { justify-content: center; }
.aside-list { list-style: none; margin: 8px 0 0; padding: 0; }
.aside-list li + li { border-top: 1px solid var(--c-line); }
.aside-list a { display: block; padding: 10px 0; color: var(--c-text); text-decoration: none; }
.aside-list strong { display: block; font-size: 14px; line-height: 1.3; }
.aside-list span { display: block; font-size: 12px; color: var(--c-muted); margin-top: 2px; }
.aside-list a:hover strong { color: var(--c-olive-dark); text-decoration: underline; }
.aside-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.aside-chips a { padding: 7px 13px; border-radius: 999px; border: 1px solid var(--c-line); background: #fff; font-size: 13px; font-weight: 700; color: var(--c-olive-dark); text-decoration: none; }
.aside-chips a:hover { background: var(--c-olive-dark); border-color: var(--c-olive-dark); color: #fff; }
@media (max-width: 1020px) { .article-aside .aside-extra { display: none !important; } }

/* Consulta de colegiados: resultado y avisos bien visibles */
.consulta-aviso { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 18px; padding: 14px 16px; border-radius: var(--radius); border: 1px solid; font-size: 14.5px; line-height: 1.5; }
.consulta-aviso svg { width: 20px; height: 20px; flex-shrink: 0; margin-top: 1px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.consulta-aviso.ok { background: #EEF6E2; border-color: #BFD88F; color: var(--c-olive-darker); }
.consulta-aviso.aviso { background: #FCF3E0; border-color: #EBC873; color: #6B4E06; }
.consulta-aviso.info { background: var(--c-olive-cream); border-color: var(--c-line); color: var(--c-text); }

/* "Lee también", dentro del texto de la noticia */
.lee-tambien { margin: 28px 0; padding: 14px 18px; border-left: 4px solid var(--c-amber); background: var(--c-olive-cream); border-radius: 0 var(--radius) var(--radius) 0; }
.lee-tambien span { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--c-amber-dark); margin-bottom: 4px; }
.lee-tambien a { font-weight: 700; font-size: 16.5px; line-height: 1.4; color: var(--c-olive-darker); text-decoration: none; }
.lee-tambien a:hover { text-decoration: underline; }
@media (max-width: 1020px) {
  .article-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .article-aside { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 32px 28px; }
}

/* ===== Catálogo de obras de colegiados (portadas verticales) ===== */
.obra-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 22px; margin: 22px 0 30px; }
.obra-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-card); color: inherit; text-decoration: none; transition: box-shadow .2s, transform .2s, border-color .2s; }
.obra-card:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); border-color: var(--c-olive); }
.obra-card .cover { aspect-ratio: 2/3; background: var(--c-olive-soft) center/cover no-repeat; border-bottom: 1px solid var(--c-line-soft); }
.obra-card .body { padding: 12px 14px 14px; }
.obra-card .cat { font-size: 11.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--c-olive-dark); }
.obra-card h3 { font-size: 14.5px; line-height: 1.3; margin: 4px 0; color: var(--c-text); }
.obra-card p { font-size: 13px; color: var(--c-muted); margin: 0; }
.obra-ficha { display: grid; grid-template-columns: minmax(0, 280px) 1fr; gap: 36px; align-items: start; }
.obra-ficha .cover-big { width: 100%; height: auto; border-radius: var(--radius); box-shadow: var(--shadow-card); background: var(--c-olive-soft); }
@media (max-width: 720px) {
  .obra-ficha { grid-template-columns: 1fr; }
  .obra-ficha .cover-big { max-width: 240px; }
  .obra-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}

/* ===== Contenido migrado del WordPress antiguo (cuerpos de noticias y fichas) ===== */
.article-body h3 { font-size: 19px; font-weight: 800; margin: 28px 0 12px; color: var(--c-text); }
.article-body h4 { font-size: 16.5px; font-weight: 800; margin: 22px 0 10px; color: var(--c-text); }
.article-body img { max-width: 100%; height: auto; border-radius: 8px; }
.article-body figure { margin: 24px 0; }
.article-body figure img { display: block; margin: 0 auto; }
.article-body figcaption { font-size: 12.5px; color: var(--c-muted); padding: 8px 4px 0; line-height: 1.4; text-align: center; }
.article-body img.alignleft { float: left; margin: 4px 20px 12px 0; max-width: 45%; }
.article-body img.alignright { float: right; margin: 4px 0 12px 20px; max-width: 45%; }
.article-body img.aligncenter { display: block; margin: 12px auto; }
.article-body::after { content: ""; display: table; clear: both; }
.article-body figure.video { position: relative; aspect-ratio: 16/9; background: #000; border-radius: var(--radius); overflow: hidden; }
.article-body figure.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.article-body figure.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.article-body table { width: 100%; border-collapse: collapse; margin: 0 0 20px; font-size: 14.5px; display: block; overflow-x: auto; }
.article-body td, .article-body th { border: 1px solid var(--c-line); padding: 8px 10px; vertical-align: top; }
.article-body video, .article-body audio { width: 100%; margin: 0 0 18px; }
.article-body details.acc > summary ~ * { margin-left: 20px; margin-right: 20px; }
.article-body details.acc[open] > :last-child { margin-bottom: 16px; }
@media (max-width: 560px) {
  .article-body img.alignleft, .article-body img.alignright { float: none; display: block; margin: 12px auto; max-width: 100%; }
}

/* ===== ROMDA: registro por provincias y ficha de medio ===== */
.romda-hero .fs-media { background: #fff; }
.romda-hero .fs-media img { max-width: 100%; width: 220px; height: auto; }
.romda-hero h2 { font-size: 24px; font-weight: 800; margin: 0 0 10px; color: var(--c-text); letter-spacing: -0.01em; }
.romda-hero p { color: var(--c-text-soft); line-height: 1.65; margin: 0; }
.romda-cifras { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.romda-cifras span { background: var(--c-olive-soft); border-radius: 999px; padding: 6px 14px; font-size: 13px; color: var(--c-olive-dark); }
.romda-cifras strong { color: var(--c-olive-darker); }
.romda-filtros { grid-template-columns: 2fr 1fr 1fr 1fr; }
.romda-grupo { display: flex; align-items: baseline; gap: 10px; margin: 34px 0 14px; padding-bottom: 8px; border-bottom: 2px solid var(--c-line); font-size: 20px; font-weight: 800; color: var(--c-olive-darker); letter-spacing: -0.01em; }
.romda-grupo small { font-size: 12.5px; font-weight: 700; color: var(--c-muted); letter-spacing: 0; }
#rLista > .romda-grupo:first-child { margin-top: 8px; }
.res-card .meta + .meta { margin-top: 1px; }
.romda-bases { margin-top: 50px; display: block; }
.acc-texto { font-size: 14.5px; color: var(--c-text-soft); line-height: 1.65; }
.acc-texto p { margin: 10px 0; }
.acc-texto > ul:not(.check-list) { margin: 8px 0 12px; padding-left: 20px; }
.acc-texto > ul:not(.check-list) li { margin: 4px 0; }
.acc-texto .check-list { margin: 12px 0; }
.romda-cats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 12px 0 8px; }
.romda-cat { border: 1px solid var(--c-line); border-radius: var(--radius); padding: 14px 16px; background: var(--c-olive-cream); }
.romda-cat b { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 8px; background: var(--c-olive-dark); color: #fff; font-size: 17px; margin-bottom: 8px; }
.romda-cat p { margin: 0; font-size: 13.5px; line-height: 1.5; }
.ficha-medio { grid-template-columns: minmax(0, 1fr) 340px; }
.ficha-medio .svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ficha-medio .svc-card p a { font-weight: 600; }
.sello-card { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); padding: 24px 24px 20px; text-align: center; position: sticky; top: 105px; }
.sello-card img { width: 220px; max-width: 100%; height: auto; }
.sello-card .sc-estado { display: inline-flex; align-items: center; gap: 6px; margin: 12px 0 4px; font-size: 11.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--c-olive-dark); background: var(--c-olive-soft); padding: 5px 12px; border-radius: 999px; }
.sello-card .sc-estado svg { width: 14px; height: 14px; }
.sello-card h3 { font-size: 19px; font-weight: 800; margin: 8px 0 2px; color: var(--c-text); }
.sello-card .sc-num { display: inline-block; margin: 8px 0 4px; padding: 6px 12px; border-radius: 6px; background: var(--c-line-soft); font-family: ui-monospace, Consolas, monospace; font-size: 14.5px; letter-spacing: .08em; color: var(--c-text); }
.sello-card .sc-num[hidden] { display: none; }
.sello-card .sc-desde { font-size: 13px; color: var(--c-muted); }
.sello-card .sc-otros { text-align: left; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--c-line-soft); }
.sello-card .sc-otros h4 { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--c-muted); margin: 0 0 6px; }
.sello-card .sc-otros a { display: block; padding: 7px 0; border-bottom: 1px dashed var(--c-line); font-size: 14px; font-weight: 600; color: var(--c-text); }
.sello-card .sc-otros a:last-child { border-bottom: 0; }
.sello-card .sc-otros a:hover { color: var(--c-olive-dark); }
.sello-card .sc-otros a.sc-mas { color: var(--c-olive-dark); font-size: 13px; }
@media (max-width: 1020px) {
  .ficha-medio { grid-template-columns: minmax(0, 1fr); }
  .sello-card { position: static; }
}
@media (max-width: 900px) { .romda-filtros { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) {
  .romda-filtros { grid-template-columns: 1fr; }
  .romda-cats, .ficha-medio .svc-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ===== Formación: plan vigente, programas, ficha de curso y agenda ===== */
.plan-resumen { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); align-items: center; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); overflow: hidden; margin-bottom: 22px; }
.plan-resumen .pr-banner { display: block; }
.plan-resumen .pr-banner { align-self: stretch; background: #C5F77A; display: flex; align-items: center; }
.plan-resumen .pr-banner img { display: block; width: 100%; height: auto; }
.plan-resumen .pr-txt { padding: 24px 28px 26px; }
.plan-resumen .eyebrow { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--c-amber-dark); margin-bottom: 4px; }
.plan-resumen h2 { font-size: 24px; font-weight: 800; margin: 0 0 10px; color: var(--c-text); letter-spacing: -0.01em; }
.plan-resumen p { color: var(--c-text-soft); line-height: 1.65; margin: 0; max-width: 900px; }
.plazo-aviso { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; background: #FBF1D6; color: #5E4708; border: 1px solid #F0DC9E; border-radius: var(--radius); padding: 14px 18px; margin-bottom: 18px; font-size: 14.5px; line-height: 1.5; }
.plazo-aviso.abierto { background: var(--c-olive-soft); color: var(--c-olive-darker); border-color: #D8E6B4; }
.plazo-aviso[hidden] { display: none; }
.prog-nav { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 8px; }
.prog-nav a { display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--c-line); font-size: 13.5px; font-weight: 700; color: var(--c-text); }
.prog-nav a:hover { border-color: var(--c-olive); color: var(--c-olive-dark); }
.pn-est { width: 8px; height: 8px; border-radius: 50%; background: var(--c-line); }
.pn-est.abierta { background: #3F9A3A; } .pn-est.proxima { background: var(--c-amber); } .pn-est.cerrada { background: #B9BDB2; }
.prog { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 18px 28px; padding: 34px 0; border-bottom: 1px solid var(--c-line); scroll-margin-top: 110px; }
.prog:last-child { border-bottom: 0; }
.prog .prog-img { grid-row: span 2; align-self: start; display: block; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--c-line); box-shadow: var(--shadow-card); }
.prog .prog-img img { display: block; width: 100%; height: auto; }
.prog-num { font-size: 12.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--c-olive-dark); }
.prog h2 { font-size: 22px; font-weight: 800; margin: 4px 0 10px; color: var(--c-text); letter-spacing: -0.01em; line-height: 1.25; }
.prog-plazo { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; padding: 6px 12px; border-radius: 999px; background: var(--c-line-soft); color: var(--c-text-soft); }
.prog-plazo::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #B9BDB2; }
.prog-plazo.abierta { background: #E3F2DC; color: #2D6A28; } .prog-plazo.abierta::before { background: #3F9A3A; }
.prog-plazo.proxima { background: #FBF1D6; color: var(--c-amber-dark); } .prog-plazo.proxima::before { background: var(--c-amber); }
.prog-acc { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.prog .curso-grid { grid-column: 2; }
.curso-card h3 a { color: inherit; }
.curso-card h3 a:hover { color: var(--c-olive-dark); }
.curso-card.terminado { opacity: .62; }
.cc-mode.fin { background: var(--c-line-soft); color: var(--c-muted); margin-left: 4px; }
.curso-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 36px; align-items: start; margin-bottom: 46px; }
.curso-layout .article-body h2 { font-size: 21px; margin: 0 0 12px; }
.curso-layout .article-body h2 ~ h2 { margin-top: 28px; }
.curso-precios { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); padding: 20px 22px; position: sticky; top: 105px; }
.curso-precios h3 { font-size: 17px; font-weight: 800; margin: 0 0 10px; }
.curso-precios table { width: 100%; border-collapse: collapse; font-size: 13.5px; margin-bottom: 12px; }
.curso-precios th { text-align: left; font-weight: 500; color: var(--c-text-soft); padding: 9px 10px 9px 0; border-bottom: 1px solid var(--c-line-soft); line-height: 1.4; }
.curso-precios td { text-align: right; font-weight: 800; white-space: nowrap; padding: 9px 0; border-bottom: 1px solid var(--c-line-soft); color: var(--c-text); }
.curso-precios td.free { color: var(--c-olive-dark); }
.curso-precios p { font-size: 13px; color: var(--c-muted); margin: 0 0 10px; line-height: 1.5; }
.curso-datos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.curso-datos .svc-card:hover { transform: none; }
/* agenda */
.agenda-cal button.day { border: 0; background: transparent; font: inherit; cursor: pointer; padding: 0; }
.agenda-cal button.day:hover { background: #fff; }
.agenda-cal .day.hoy { box-shadow: inset 0 0 0 1.5px var(--c-olive); }
.agenda-cal .day.selected { background: var(--c-olive-dark); color: #fff; }
a.agenda-row-icam { color: var(--c-text); text-decoration: none; }
a.agenda-row-icam:hover h5 { color: var(--c-olive-dark); }

.agenda-row-icam .tag.amber { background: var(--c-amber-dark); }
.agenda-row-icam .info { flex-wrap: wrap; }
.agenda-mes { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: var(--c-muted); padding: 14px 0 6px; }
.agenda-mes:first-child { padding-top: 0; }
.agenda-filtros { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.agenda-filtros button { border: 1px solid var(--c-line); background: #fff; border-radius: 999px; padding: 7px 14px; font: inherit; font-size: 13px; font-weight: 700; color: var(--c-text-soft); cursor: pointer; }
.agenda-filtros button.on { background: var(--c-olive-darker); border-color: var(--c-olive-darker); color: #fff; }
.agenda-archivo { margin-top: 46px; }
.agenda-archivo .agenda-row-icam .dt .m { letter-spacing: .04em; }
.convoc.abierta { border-color: #BFDDB0; box-shadow: inset 0 3px 0 #3F9A3A, var(--shadow-card); }
.convoc.abierta .type { background: #E3F2DC; color: #2D6A28; }
.convoc-sub { font-size: 13px; color: var(--c-muted); margin: -4px 0 0; line-height: 1.45; }
@media (max-width: 1020px) {
  .plan-resumen { grid-template-columns: minmax(0, 1fr); }
  .curso-layout { grid-template-columns: minmax(0, 1fr); }
  .curso-precios { position: static; }
  .curso-datos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .prog { grid-template-columns: minmax(0, 1fr); }
  .prog .prog-img { grid-row: auto; max-width: 420px; }
  .prog .curso-grid { grid-column: 1; }
}
@media (max-width: 640px) {
  .curso-datos { grid-template-columns: minmax(0, 1fr); }
  .plan-resumen .pr-txt { padding: 18px 18px 20px; }
}
/* agenda con rótulos de mes: la alternancia verde/ámbar cuenta sólo las filas */
.agenda-list-icam > a.agenda-row-icam:nth-of-type(odd) { background: var(--c-olive-soft); }
.agenda-list-icam > a.agenda-row-icam:nth-of-type(even) { background: #FCF6E6; }
.agenda-list-icam > .agenda-row-icam.hl { background: #fff; box-shadow: 0 0 0 2px var(--c-amber-dark), var(--shadow-hover); }

/* ===== Páginas de provincia: juntas reales, formación y medios del ROMDA ===== */
.svc-group > .svc-intro { color: var(--c-text-soft); margin: -8px 0 16px; max-width: 820px; line-height: 1.6; font-size: 15px; }
.junta-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.junta-grid + .junta-dem { margin-top: 30px; }
.junta-m { padding: 14px 16px; align-items: center; }
.junta-m:hover { transform: none; box-shadow: var(--shadow-card); border-color: var(--c-line); }
.junta-m .avatar { width: 44px; height: 44px; font-size: 15px; }
.junta-m h3 { font-size: 15px; line-height: 1.3; }
.junta-m.lead { border-color: #EAD9A4; background: #FFFBF0; }
.junta-m.lead .avatar { background: #FBF1D6; color: var(--c-amber-dark); }
.junta-m.lead .meta { color: var(--c-amber-dark); font-weight: 700; }
.junta-dem { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; font-size: 18px; font-weight: 800; color: var(--c-olive-darker); margin: 0 0 12px; }
.junta-dem small { font-size: 12.5px; font-weight: 600; color: var(--c-muted); }
.svc-card p a { overflow-wrap: anywhere; }
.dem-cursos { max-width: none; }
.dem-medios { display: flex; flex-wrap: wrap; gap: 8px; }
.dem-medios a { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--c-line); font-size: 14px; font-weight: 600; color: var(--c-text); box-shadow: var(--shadow-card); }
.dem-medios a:hover { border-color: var(--c-olive); color: var(--c-olive-dark); }
.dem-medios svg { width: 15px; height: 15px; color: var(--c-olive-dark); }
@media (max-width: 1020px) { .junta-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .junta-grid { grid-template-columns: minmax(0, 1fr); } }
/* Sello de Comunicación Responsable: compromisos en dos columnas con listas */
.sello-compromisos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sello-compromisos .svc-card:hover { transform: none; }
.sello-compromisos ul { margin: 6px 0 0; padding-left: 18px; font-size: 14px; color: var(--c-text-soft); line-height: 1.55; }
.sello-compromisos li { margin: 3px 0; }
@media (max-width: 760px) { .sello-compromisos { grid-template-columns: minmax(0, 1fr); } }
/* textos largos (correos, nombres de dominio) sin desbordar en móvil */
.svc-card > div, .res-card > div, .agenda-row-icam > div { min-width: 0; }
.svc-card p, .res-card h3, .agenda-row-icam h5 { overflow-wrap: anywhere; }
.agenda-row-icam { grid-template-columns: 64px minmax(0, 1fr) auto; }
@media (max-width: 640px) {
  .agenda-row-icam { grid-template-columns: 46px minmax(0, 1fr); gap: 12px; }
  .agenda-row-icam .tag { grid-column: 2; justify-self: start; }
}
.agenda-row-icam .info span { min-width: 0; overflow-wrap: anywhere; }
.page-head h1, .sello-card h3, .breadcrumb span { overflow-wrap: break-word; }

/* ===== Páginas institucionales con el texto real (gen-paginas-estatico.js) ===== */
.inst-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 44px; align-items: start; }
.inst-main { min-width: 0; }
.inst-main > .article-body, .inst-sec .article-body { max-width: 820px; }
.inst-sec { scroll-margin-top: 110px; }
.inst-sec + .inst-sec { margin-top: 40px; padding-top: 34px; border-top: 1px solid var(--c-line); }
.inst-h { font-size: 26px; font-weight: 800; margin: 0 0 16px; color: var(--c-text); letter-spacing: -0.015em; }
.inst-sec .article-body > :first-child, .inst-intro > :first-child, .inst-acc .acc-body > :first-child { margin-top: 0; }
.inst-intro { margin-bottom: 22px; max-width: 820px; }
.inst-acc { scroll-margin-top: 110px; }
.inst-acc summary { font-size: 16px; }
.inst-acc .acc-body { padding: 18px 22px 8px; }
.inst-acc .acc-body.article-body p { font-size: 15.5px; }
.article-body figure img { display: block; }
.article-body table { font-size: 14px; }
.inst-noticias { list-style: none; padding: 0 !important; margin: 16px 0 22px !important; border-top: 1px solid var(--c-line-soft); }
.inst-noticias li { display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 10px 0; border-bottom: 1px solid var(--c-line-soft); margin: 0 !important; }
.inst-noticias li a { font-weight: 600; text-decoration: none; color: var(--c-text); }
.inst-noticias li a:hover { color: var(--c-olive-dark); text-decoration: underline; }
.inst-noticias li span { font-size: 13px; color: var(--c-muted); white-space: nowrap; }
.inst-fuente { font-size: 13px !important; color: var(--c-muted) !important; }
.inst-actualizada { margin-top: 30px; }
.inst-aside { position: sticky; top: 105px; display: flex; flex-direction: column; gap: 16px; }
.inst-caja { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); padding: 18px 20px; }
.inst-caja h3 { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--c-muted); margin: 0 0 10px; }
.inst-caja ul { list-style: none; margin: 0; padding: 0; }
.inst-caja li a { display: block; padding: 7px 0; border-bottom: 1px dashed var(--c-line); font-size: 14px; font-weight: 600; color: var(--c-text); line-height: 1.35; }
.inst-caja li:last-child a { border-bottom: 0; }
.inst-caja li a:hover { color: var(--c-olive-dark); }
.inst-toc li a { font-weight: 500; }
.inst-contacto p { margin: 0; font-size: 14px; color: var(--c-text-soft); line-height: 1.55; overflow-wrap: normal; }
/* el correo de administración, en una sola línea (antes se partía en dos dentro de la columna de 300px) */
.inst-contacto a[href^="mailto:"] { white-space: nowrap; font-size: 12.5px; letter-spacing: -.01em; }
/* desplegables con enlace propio (#manuales, #asesoria-juridica…): que la cabecera fija no tape su título */
details.acc[id] { scroll-margin-top: 110px; }
.inst-contacto { background: var(--c-olive-soft); border-color: #D8E6B4; }
@media (max-width: 1020px) {
  .inst-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .inst-aside { position: static; }
  .inst-toc { display: none; }
}
/* Solicitud de ingreso: tabla de cuotas */
.tabla-cuotas { width: 100%; max-width: 760px; border-collapse: collapse; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-card); font-size: 14.5px; }
.tabla-cuotas th { text-align: left; background: var(--c-olive-soft); color: var(--c-olive-darker); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; padding: 10px 16px; }
.tabla-cuotas td { padding: 11px 16px; border-top: 1px solid var(--c-line-soft); color: var(--c-text-soft); }
.tabla-cuotas td:last-child, .tabla-cuotas th:last-child { text-align: right; white-space: nowrap; font-weight: 800; color: var(--c-text); }
.tabla-cuotas td.free { color: var(--c-olive-dark); }
.tramites-grupo { font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--c-muted); margin: 22px 0 12px; }

/* ===== Buscador real (busqueda.html) ===== */
.busca-form { grid-template-columns: minmax(0, 1fr) auto; }
.busca-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; }
.busca-tabs button { border: 1px solid var(--c-line); background: #fff; border-radius: 999px; padding: 7px 14px; font: inherit; font-size: 13px; font-weight: 700; color: var(--c-text-soft); cursor: pointer; }
.busca-tabs button span { font-weight: 600; color: var(--c-muted); margin-left: 3px; }
.busca-tabs button.on { background: var(--c-olive-darker); border-color: var(--c-olive-darker); color: #fff; }
.busca-tabs button.on span { color: rgba(255,255,255,.75); }
.busca-grupo { margin: 26px 0 8px; }
.busca-grupo h2 { font-size: 19px; font-weight: 800; color: var(--c-olive-darker); margin: 0 0 10px; padding-bottom: 8px; border-bottom: 2px solid var(--c-line); }
.busca-grupo h2 span { font-size: 13px; color: var(--c-muted); font-weight: 700; }
.busca-lista { list-style: none; margin: 0 0 14px; padding: 0; }
.busca-lista li { padding: 12px 0; border-bottom: 1px solid var(--c-line-soft); }
.busca-lista li a { font-size: 16px; font-weight: 700; color: var(--c-text); line-height: 1.35; }
.busca-lista li a:hover { color: var(--c-olive-dark); }
.busca-lista .bm { font-size: 12.5px; color: var(--c-muted); margin-top: 3px; }
.busca-lista p { margin: 5px 0 0; font-size: 14px; color: var(--c-text-soft); line-height: 1.5; max-width: 860px; }
.busca-lista mark { background: #FBF1D6; color: inherit; padding: 0 1px; border-radius: 2px; }
.busca-mas { margin-top: 4px; }
@media (max-width: 640px) { .busca-form { grid-template-columns: minmax(0, 1fr); } }

/* Documentos que ya no se publican (censos, listados de personas…): queda el texto con esta nota */
.doc-retirado { color: var(--c-muted); font-size: .88em; font-style: italic; white-space: nowrap; }

/* Ventanilla Única: formularios de trámites (panel Laravel, /ventanilla-unica/{tramite}) */
fieldset.fset { min-width: 0; }
fieldset.fset > legend.fset-h { padding: 0; float: left; width: 100%; }
fieldset.fset > legend.fset-h + * { clear: both; }
.form-grid.g12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.form-grid.g12 > .w-completo { grid-column: 1 / -1; }
.form-grid.g12 > .w-mitad { grid-column: span 6; }
.form-grid.g12 > .w-tercio { grid-column: span 4; }
.form-grid.g12 > .w-cuarto { grid-column: span 3; }
.form-grid.g12 > [hidden] { display: none; }
@media (max-width: 900px) { .form-grid.g12 > .w-cuarto { grid-column: span 6; } .form-grid.g12 > .w-tercio { grid-column: span 6; } }
@media (max-width: 640px) { .form-grid.g12 { grid-template-columns: minmax(0, 1fr); } .form-grid.g12 > .field { grid-column: 1 / -1; } }
.field .lbl { font-size: 13.5px; font-weight: 600; color: var(--c-text-soft); }
.field .lbl .req, .check-row .req, .form-actions .req { color: #C0392B; margin-left: 2px; }
.opt-row { display: flex; flex-wrap: wrap; gap: 8px 20px; padding-top: 2px; }
.opt-row .opt { display: inline-flex; gap: 8px; align-items: center; font-size: 14.5px; color: var(--c-text); cursor: pointer; }
.field.invalid input, .field.invalid select, .field.invalid textarea { border-color: #C0392B; }
.field-error { font-size: 12.5px; color: #A93226; }
.check-row.invalid { color: #A93226; }
.doc-field input[type=file] { padding: 9px; background: var(--c-bg); }
.form-ok, .form-err { border-radius: var(--radius); padding: 14px 16px; margin-bottom: 18px; font-size: 14.5px; line-height: 1.55; max-width: 880px; }
.form-ok { background: #E7F0D8; color: #2E3E10; border: 1px solid #C5D89C; }
.form-err { background: #FBEAE7; color: #7A2419; border: 1px solid #EDB5AC; }
.form-err ul { margin: 6px 0 0; padding-left: 18px; }
.hp-campo { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rgpd-info { font-size: 12.5px; color: var(--c-muted); line-height: 1.5; margin: 10px 0 0; }

/* Documentos subidos desde el panel (Transparencia, Asambleas, Deontología, Normativa) */
.docs-recientes h3 { font-size: 15px; font-weight: 700; color: var(--c-text); margin: 18px 0 8px; }
.doc-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.doc-lista a { display: grid; grid-template-columns: 22px 1fr auto; gap: 10px; align-items: center; padding: 11px 14px; border: 1px solid var(--c-line); border-radius: var(--radius); background: #fff; color: var(--c-text); text-decoration: none; }
.doc-lista a:hover { border-color: var(--c-olive); background: var(--c-olive-soft); }
.doc-lista .ic { width: 20px; height: 20px; stroke: var(--c-olive-dark); fill: none; stroke-width: 2; }
.doc-lista .dl-t { font-size: 14.5px; font-weight: 600; line-height: 1.35; }
.doc-lista .dl-m { font-size: 12.5px; color: var(--c-muted); white-space: nowrap; }
@media (max-width: 640px) { .doc-lista a { grid-template-columns: 22px 1fr; } .doc-lista .dl-m { grid-column: 2; white-space: normal; } }

/* Inscripción en la formación (/formacion/inscripcion) */
.insc-prog { margin: 0 0 18px; }
.insc-prog h3 { font-size: 15px; margin: 0 0 2px; color: var(--c-olive-darker); }
.insc-plazo { font-size: 12.5px; color: var(--c-muted); margin: 0 0 10px; }
.insc-curso { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--c-line); border-radius: 8px; margin: 0 0 8px; cursor: pointer; background: #fff; transition: border-color .15s, background .15s; }
.insc-curso:hover { border-color: var(--c-olive); }
.insc-curso.on { border-color: var(--c-olive-dark); background: var(--c-olive-soft); }
.insc-curso input { margin-top: 3px; flex-shrink: 0; width: 18px; height: 18px; accent-color: var(--c-olive-dark); }
.insc-txt { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.insc-txt strong { font-size: 14.5px; color: var(--c-text); }
.insc-meta { font-size: 13px; color: var(--c-text-soft); }
.insc-lleno { font-size: 12.5px; color: #8a5a00; font-weight: 600; }
.insc-precio { font-size: 13px; font-weight: 700; color: var(--c-olive-darker); white-space: nowrap; }
.insc-total { margin: 14px 0 0; font-size: 14px; font-weight: 700; color: var(--c-olive-darker); }
.insc-normas { border: 1px solid var(--c-line); border-radius: 8px; padding: 10px 14px; margin: 0 0 14px; background: #fff; }
.insc-normas summary { cursor: pointer; font-weight: 700; font-size: 14px; color: var(--c-olive-darker); }
.insc-normas ul { margin: 10px 0 6px; padding-left: 18px; font-size: 13.5px; line-height: 1.55; color: var(--c-text-soft); }
.insc-normas p { margin: 0; font-size: 13px; }
.insc-ok { margin: 8px 0 0; padding-left: 18px; }
@media (max-width: 640px) { .insc-curso { flex-wrap: wrap; } .insc-precio { width: 100%; padding-left: 30px; white-space: normal; } }
/* /Inscripción */

/* ===== Portal de transparencia: tarjetas con dibujo (presupuestos, cuentas, memorias, normativa…) ===== */
.transp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 4px 0 26px; }
.transp-card { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); padding: 20px 22px; scroll-margin-top: 110px; }
.transp-card .tc-ic { width: 46px; height: 46px; border-radius: 12px; background: var(--c-olive-soft); color: var(--c-olive-dark); display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.transp-card .tc-ic svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.transp-card h3 { margin: 0 0 6px; font-size: 17px; line-height: 1.3; color: var(--c-text); }
.transp-card p { margin: 0 0 12px; font-size: 14px; line-height: 1.5; color: var(--c-text-soft); }
.transp-card p:last-child { margin-bottom: 0; }
.transp-card .tc-sub { margin: 12px 0 6px; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--c-muted); }
.tc-anios { display: flex; flex-wrap: wrap; gap: 6px; }
.tc-anios a, .tc-anios span { font-size: 13px; font-weight: 700; padding: 4px 10px; border-radius: 999px; border: 1px solid #D8E6B4; background: var(--c-olive-soft); color: var(--c-olive-dark); line-height: 1.3; }
.tc-anios a:hover { background: var(--c-olive-dark); border-color: var(--c-olive-dark); color: #fff; }
.tc-anios span { background: #fff; color: var(--c-muted); font-weight: 600; border-style: dashed; }
.tc-lista { list-style: none; margin: 0; padding: 0; }
.tc-lista li a { display: block; padding: 6px 0; border-bottom: 1px dashed var(--c-line); font-size: 14px; font-weight: 600; color: var(--c-olive-dark); }
.tc-lista li:last-child a { border-bottom: 0; }
@media (max-width: 760px) { .transp-grid { grid-template-columns: 1fr; } }

/* Enlaces de interés (pie de todas las páginas y lateral de las noticias): Red de Colegios, Expertas del Estrecho
   y Pacto Digital, como en el lateral de la web antigua (Colegio, oct 2026) */
.footer-enlaces { display: flex; align-items: center; gap: 14px 22px; flex-wrap: wrap; padding: 22px 0; border-top: 1px solid rgba(255,255,255,0.1); }
.footer-enlaces .fe-tit { color: #fff; font-size: 13px; text-transform: uppercase; letter-spacing: 0.12em; font-weight: 700; }
.fe-logos { display: flex; gap: 12px; flex-wrap: wrap; }
.fe-logos a { display: block; line-height: 0; border-radius: 8px; overflow: hidden; background: #fff; transition: transform .15s ease; }
.fe-logos a:hover { transform: translateY(-2px); }
.fe-logos img { height: 64px; width: auto; }
.aside-enlaces { display: grid; gap: 12px; margin-top: 12px; }
.aside-enlaces a { display: block; line-height: 0; border-radius: 10px; overflow: hidden; border: 1px solid var(--c-line); }
.aside-enlaces img { width: 100%; height: auto; }
/* Ventanilla Única: los trámites más frecuentes, arriba */
.svc-group.frecuentes .svc-card { border-color: var(--c-amber); }

/* Ventanilla Única: acuse de recibo tras enviar una solicitud (Colegio, oct 2026) */
.form-ok.acuse { padding: 18px 20px; }
.form-ok.acuse p { margin: 0 0 8px; }
.form-ok.acuse p:last-child { margin-bottom: 0; }
.form-ok.acuse .acuse-tit { font-size: 19px; font-weight: 800; color: #2E3E10; margin-bottom: 10px; }

/* Área reservada (Mi cuenta): votaciones en las que está convocada y sus datos (oct 2026) */
.mc-votaciones { display: grid; gap: 12px; }
.mc-votacion { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 16px 18px; }
.mc-votacion.abierta { border-color: #C9A227; box-shadow: 0 0 0 1px #C9A227 inset; }
.mc-votacion.cerrada { opacity: .8; }
.mc-vot-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.mc-vot-cab h3 { margin: 0; font-size: 17px; }
.mc-votacion .meta { margin: 6px 0 0; color: var(--c-text-soft); font-size: 14px; }
.mc-votacion p:not(.meta) { margin: 8px 0 0; font-size: 15px; }
.mc-datos { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0 24px; margin: 0; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 6px 18px; }
.mc-datos > div { padding: 10px 0; border-bottom: 1px solid var(--c-line-soft); min-width: 0; }
.mc-datos dt { font-size: 12.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--c-text-soft); }
.mc-datos dd { margin: 2px 0 0; font-weight: 600; overflow-wrap: anywhere; }
.mc-nota { margin: 10px 0 0; font-size: 14px; color: var(--c-text-soft); }
@media (max-width: 560px) { .mc-vot-cab { flex-direction: column; gap: 6px; } }
.mc-servicios { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.mc-servicio { background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 14px 18px; }
.mc-servicio h3 { margin: 0 0 8px; font-size: 16px; display: flex; justify-content: space-between; gap: 10px; }
.mc-servicio h3 span { font-size: 13px; font-weight: 600; color: var(--c-text-soft); white-space: nowrap; }
.mc-servicio ul { margin: 0; padding-left: 18px; line-height: 1.7; }
.mc-servicio .meta { color: var(--c-text-soft); font-size: 13px; }
/* Opciones largas de la Ventanilla: la casilla a su tamaño, el texto a la izquierda; 'apilado' = una opción por línea */
.opt-row .opt input { width: auto; flex: 0 0 auto; margin: 0; }
.opt-row .opt { text-align: left; }
.opt-row.apilado { flex-direction: column; gap: 8px; }
.opt-row.apilado .opt { align-items: flex-start; }
.opt-row.apilado .opt input { margin-top: 3px; }

/* Calculadora de presupuestos (/calculadora, oct 2026) */
.calc-como { background: var(--c-olive-soft); border: 1px solid #D8E6B4; border-radius: var(--radius-lg); padding: 18px 22px; margin-bottom: 26px; }
.calc-como h2 { font-size: 17px; margin: 0 0 8px; }
.calc-como p { margin: 0 0 8px; line-height: 1.6; font-size: 15px; }
.calc-como .calc-aviso { margin: 0; font-size: 13.5px; color: var(--c-text-soft); }
.calc-paso { font-size: 21px; font-weight: 800; margin: 30px 0 14px; letter-spacing: -0.01em; }
.calc-paso:first-of-type { margin-top: 0; }
.calc .calc-help { font-size: 13.5px; color: var(--c-muted); margin: -8px 0 16px; }
.calc-gastos { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px 18px; }
.calc-gasto { display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; font-weight: 600; color: var(--c-text-soft); }
.calc-euros { display: flex; align-items: center; gap: 8px; font-weight: 500; color: var(--c-muted); white-space: nowrap; }
.calc input[type=number] { width: 100%; min-width: 0; padding: 9px 11px; border: 1px solid var(--c-line); border-radius: 6px; font: inherit; font-size: 15px; color: var(--c-text); background: #fff; }
.calc-euros input[type=number] { max-width: 120px; }
.calc input[type=number]:focus { outline: none; border-color: var(--c-olive-dark); box-shadow: 0 0 0 3px rgba(157,190,84,0.28); }
.calc-servicios { display: grid; gap: 12px; }
.calc-servicio { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 16px 24px; padding: 14px 0; border-top: 1px solid var(--c-line-soft); }
.calc-servicio:first-child { border-top: 0; padding-top: 0; }
.calc-serv-txt h3 { font-size: 15.5px; margin: 0 0 4px; }
.calc-unidad { font-weight: 500; font-size: 13px; color: var(--c-muted); }
.calc-serv-txt p { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--c-text-soft); }
.calc-serv-cant { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; align-content: start; }
.calc-idiomas { grid-column: 1 / -1; background: var(--c-line-soft); border-radius: 6px; }
.calc-idiomas summary { cursor: pointer; padding: 8px 12px; font-size: 13px; font-weight: 700; color: var(--c-olive-dark); }
.calc-idiomas[open] summary { padding-bottom: 4px; }
.calc-idiomas-cant { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; padding: 4px 12px 12px; }
.calc-cant { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--c-text-soft); }
.calc-acciones { margin-top: 8px; }
.calc-resultado { margin-top: 22px; border-radius: var(--radius-lg); padding: 20px 22px; border: 1px solid var(--c-line); background: #fff; box-shadow: var(--shadow-card); outline: none; }
.calc-resultado.bien { border-color: #9DBE54; background: #F4F9E8; }
.calc-resultado.mal { border-color: #E3A8A0; background: #FCF1EF; }
.calc-resultado.aviso { border-color: #E8D08A; background: #FDF8E8; }
.calc-res-tit { font-size: 18px; font-weight: 800; margin: 0 0 12px; }
.calc-resultado dl, .calc-resumen dl { margin: 0; }
.calc-resultado dl > div, .calc-resumen dl > div { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px dashed var(--c-line); }
.calc-resultado dd, .calc-resumen dd { margin: 0; font-weight: 800; font-variant-numeric: tabular-nums; }
.calc-resultado .dif, .calc-resumen .dif { border-bottom: 0; font-size: 16px; }
.calc-resultado .calc-nota { margin: 10px 0 0; font-size: 13px; color: var(--c-text-soft); }
.calc-resumen dd.pos { color: #3E6B12; }
.calc-resumen dd.neg { color: #B23A2B; }
.calc-resumen .btn { width: 100%; justify-content: center; margin-top: 12px; }
@media (max-width: 1020px) {
  /* en el móvil, el resumen va fijo abajo mientras se rellena */
  .calc-layout { padding-bottom: 70px; }
  .calc-resumen { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; border-radius: 0; padding: 10px 16px; display: flex; align-items: center; gap: 12px; box-shadow: 0 -4px 16px rgba(0,0,0,.08); }
  .calc-resumen h3 { display: none; }
  .calc-resumen dl { flex: 1; display: flex; gap: 14px; }
  .calc-resumen dl > div { flex-direction: column; gap: 0; border: 0; padding: 0; font-size: 12px; }
  .calc-resumen .dif { font-size: 12px; }
  .calc-resumen dd { font-size: 14px; }
  .calc-resumen .btn { width: auto; margin: 0; padding: 9px 14px; }
}
@media (max-width: 700px) {
  .calc-servicio { grid-template-columns: minmax(0, 1fr); }
  .calc-resumen dl > div:nth-child(2) { display: none; }
}
.calc-resultado:focus, .calc-resultado:focus-visible { outline: none; }

/* Elecciones (oct 2026): aviso en toda la web (se activa en el panel) y página del área reservada */
.aviso-elecciones { background: #2E3E10; color: #fff; border-top: 3px solid #C9A227; }
.aviso-elecciones .container { display: flex; align-items: center; gap: 14px; padding-top: 10px; padding-bottom: 10px; }
.aviso-elecciones p { margin: 0; flex: 1; font-size: 14.5px; line-height: 1.4; }
.aviso-elecciones .ae-txt { color: #dfe8c6; }
.aviso-elecciones .ae-ic .ic { width: 22px; height: 22px; stroke: #C9A227; fill: none; stroke-width: 2; }
.aviso-elecciones .ae-acc { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.aviso-elecciones .ae-mas { color: #fff; text-decoration: underline; font-size: 14px; font-weight: 600; }
.aviso-elecciones .ae-vota { padding: 8px 16px; font-size: 14px; }
@media (max-width: 700px) {
  .aviso-elecciones .container { flex-wrap: wrap; gap: 8px 12px; }
  .aviso-elecciones .ae-txt { display: none; }
  .aviso-elecciones .ae-acc { width: 100%; justify-content: space-between; }
}
.mc-elecciones { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; background: #FDF8E8; border: 1px solid #E8D08A; border-left: 5px solid #C9A227; border-radius: var(--radius); padding: 14px 18px; margin-bottom: 26px; color: var(--c-text); text-decoration: none; }
.mc-elecciones span { color: var(--c-olive-dark); font-weight: 600; font-size: 14.5px; }
.elec .elec-plazo { font-size: 15px; }
.elec-docs { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; max-width: 760px; }
.elec-docs a { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 12px 16px; color: var(--c-text); font-weight: 600; text-decoration: none; }
.elec-docs a:hover { border-color: var(--c-olive); }
.elec-docs small { font-weight: 600; color: var(--c-muted); margin-left: 6px; }
.elec-doc-ic .ic { width: 22px; height: 22px; stroke: var(--c-olive-dark); fill: none; stroke-width: 1.8; }
/* Calculadora con precios de cada persona (oct 2026) */
.calc-serv-cant .calc-euros input[type=number] { max-width: none; }
.calc-subtotal { grid-column: 1 / -1; font-size: 13.5px; font-weight: 700; color: var(--c-olive-dark); min-height: 1em; }
.calc-subtotal:empty { display: none; }
.calc-res-aviso { margin: 10px 0 0; font-size: 13px; color: #7a5a00; }
.calc-res-aviso[hidden] { display: none; }
@media (max-width: 1020px) { .calc-res-aviso { display: none; } }
/* Calculadora: presupuesto para el cliente en PDF o Excel (solo personas colegiadas) */
.calc-presupuesto { margin-top: 30px; background: #fff; border: 1px solid var(--c-line); border-top: 4px solid #C9A227; border-radius: var(--radius-lg); padding: 22px 24px; box-shadow: var(--shadow-card); scroll-margin-top: 110px; }
.calc-presupuesto h2 { font-size: 21px; margin: 0 0 8px; }
.calc-pres-intro { margin: 0 0 16px; color: var(--c-text-soft); font-size: 15px; }
.calc-pres-campos { margin-bottom: 14px; }
.calc-pres-campos .w-completo { grid-column: 1 / -1; }
.calc-presupuesto .form-err { margin-bottom: 14px; }
.calc-gancho { margin-top: 16px; background: #FDF8E8; border: 1px solid #E8D08A; border-radius: var(--radius); padding: 16px 18px; }
.calc-gancho p { margin: 0 0 10px; }
.calc-gancho[hidden] { display: none; }
@media (max-width: 700px) { .calc-pres-campos { grid-template-columns: minmax(0, 1fr); } }
/* Contenido de otras webs en noticias antiguas: enlace en lugar del marco (sin cookies de terceros) */
.incrustado-ext { background: #f7f8f2; border: 1px solid var(--c-line); border-left: 4px solid var(--c-olive); border-radius: var(--radius); padding: 12px 16px; }
.incrustado-ext a { font-weight: 700; }
.incrustado-ext span { color: var(--c-muted); font-size: 13px; }
