:root {
  --pd-ink: #17342e;
  --pd-green: #126b5b;
  --pd-green-dark: #0a4c42;
  --pd-blue: #244f78;
  --pd-gold: #e6a53a;
  --pd-coral: #d96d4a;
  --pd-paper: #fffdf8;
  --pd-line: #d7e4df;
  --pd-shadow: 0 24px 68px rgba(21, 51, 45, .13);
}

body.pagina-destacada {
  color: #253a35;
  background:
    radial-gradient(circle at 5% 5%, rgba(230, 165, 58, .19), transparent 25rem),
    radial-gradient(circle at 96% 24%, rgba(36, 79, 120, .14), transparent 31rem),
    linear-gradient(180deg, #eef8f4 0, #faf7f0 40rem, #edf3f1 100%);
  text-align: left;
}

body.pagina-destacada .menu-arriba {
  border-bottom: 1px solid rgba(10, 76, 66, .18);
  color: var(--pd-ink);
  background: rgba(249, 253, 251, .94);
  box-shadow: 0 8px 24px rgba(23, 52, 46, .09);
  backdrop-filter: blur(12px);
}

body.pagina-destacada .menu-arriba a {
  color: var(--pd-green-dark);
  font-weight: 800;
}

body.pagina-destacada .layout {
  display: block;
  width: min(100% - 40px, 1180px);
  max-width: none;
  margin: 0 auto;
  padding: 28px 0 64px;
}

body.pagina-destacada .layout > main {
  width: 100%;
  min-width: 0;
}

body.pagina-destacada .buscador-carpetaia {
  width: min(100%, 930px);
  margin: 0 auto 24px;
  padding: 14px 16px;
  border: 1px solid rgba(18, 107, 91, .2);
  border-radius: 18px;
  color: var(--pd-ink);
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 12px 32px rgba(23, 52, 46, .08);
}

body.pagina-destacada .buscador-carpetaia label {
  font-weight: 800;
}

body.pagina-destacada .buscador-carpetaia input,
body.pagina-destacada .buscador-carpetaia select {
  min-height: 42px;
  border: 1px solid #b8d4cb;
  border-radius: 10px;
  background: #fff;
}

body.pagina-destacada main > article,
body.pagina-destacada main.pd-panel,
body.pagina-destacada .layout > main:not(:has(> article)) {
  position: relative;
  padding: clamp(24px, 4vw, 56px);
  overflow: hidden;
  border: 1px solid rgba(18, 107, 91, .13);
  border-radius: 30px;
  background: rgba(255, 253, 248, .97);
  box-shadow: var(--pd-shadow);
}

body.pagina-destacada main > article::before,
body.pagina-destacada .layout > main:not(:has(> article))::before {
  display: inline-flex;
  margin-bottom: 14px;
  padding: 7px 12px;
  border: 1px solid rgba(18, 107, 91, .2);
  border-radius: 999px;
  color: var(--pd-green-dark);
  background: #dff4ea;
  content: "Carpeta Electrónica";
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}

body.pagina-destacada main > article > h1:first-of-type,
body.pagina-destacada .layout > main:not(:has(> article)) > h1:first-of-type {
  max-width: 960px;
  margin: 0 0 20px;
  color: var(--pd-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.25rem, 5.4vw, 4.8rem);
  line-height: 1.02;
  letter-spacing: -.038em;
  text-wrap: balance;
}

body.pagina-destacada main > article > h1:first-of-type::after,
body.pagina-destacada .layout > main:not(:has(> article)) > h1:first-of-type::after {
  display: block;
  width: 92px;
  height: 7px;
  margin-top: 22px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--pd-green), var(--pd-gold));
  content: "";
}

body.pagina-destacada h2,
body.pagina-destacada h3 {
  color: var(--pd-ink);
  text-wrap: balance;
}

body.pagina-destacada a {
  color: #0c6175;
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

body.pagina-destacada a:hover {
  color: #8a4e08;
}

body.pagina-destacada .highlight,
body.pagina-destacada blockquote {
  margin: 28px 0;
  padding: 22px 26px;
  border: 0;
  border-radius: 20px;
  color: #fff;
  background:
    radial-gradient(circle at 100% 0, rgba(230, 165, 58, .32), transparent 38%),
    linear-gradient(125deg, var(--pd-green-dark), var(--pd-blue));
  box-shadow: 0 16px 38px rgba(10, 76, 66, .18);
}

body.pagina-destacada .highlight a,
body.pagina-destacada blockquote a {
  color: #fff1b6;
  font-weight: 800;
}

body.pagina-destacada footer {
  margin-top: 0;
  padding: 24px;
  border: 0;
  background: #142d28;
  font-size: .82rem;
}

body.pagina-destacada :focus-visible {
  outline: 3px solid var(--pd-gold);
  outline-offset: 3px;
}

/* Oposiciones: tablón vivo y archivo diferenciado */
body.pagina-oposiciones header {
  padding: 18px 20px;
  text-align: center;
  background: #132f2a;
}

body.pagina-oposiciones header img {
  display: block;
  width: min(100%, 440px);
  height: auto;
  margin: auto;
  border-radius: 14px;
}

body.pagina-oposiciones .layout > main::before {
  content: "Empleo público · selección informativa";
}

body.pagina-oposiciones main > p:first-of-type {
  max-width: 880px;
  margin-bottom: 34px;
  color: #49605a;
  font-size: 1.1rem;
}

body.pagina-oposiciones main > section {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 36px 0 0;
}

body.pagina-oposiciones main > section > h2,
body.pagina-oposiciones main > section > p {
  grid-column: 1 / -1;
}

body.pagina-oposiciones main > section > h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.7rem, 3.5vw, 2.7rem);
}

body.pagina-oposiciones main > section > article {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--pd-line);
  border-top: 6px solid var(--pd-green);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(23, 52, 46, .08);
}

body.pagina-oposiciones main > section > article h3 {
  margin: 0 0 12px;
  font-size: 1.28rem;
}

body.pagina-oposiciones main > section > article p {
  margin: 5px 0;
}

body.pagina-oposiciones main > section > article p:last-child {
  margin-top: auto;
  padding-top: 15px;
}

body.pagina-oposiciones main > section > article p:last-child a {
  display: inline-block;
  padding: 9px 12px;
  border-radius: 10px;
  color: #fff;
  background: var(--pd-green);
  font-weight: 800;
}

body.pagina-oposiciones #oposiciones-cerradas {
  padding: 26px;
  border-radius: 22px;
  background: #f0f1ef;
}

body.pagina-oposiciones #oposiciones-cerradas > article {
  border-top-color: #87928e;
  background: #fafafa;
  filter: saturate(.55);
}

body.pagina-oposiciones #oposiciones-cerradas > article p:last-child a {
  background: #5d6965;
}

/* Quejas: guía y formulario en dos planos */
body.pagina-quejas main > article::before {
  content: "Orientación administrativa";
}

body.pagina-quejas .bloque-superior {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  gap: 24px;
  margin: 34px 0 0;
  padding: 0;
  background: transparent;
}

body.pagina-quejas .bloque-superior > section {
  padding: clamp(22px, 3vw, 32px);
  border: 1px solid var(--pd-line);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 13px 34px rgba(23, 52, 46, .08);
}

body.pagina-quejas .bloque-superior > section:first-child {
  border-top: 7px solid var(--pd-green);
  background: linear-gradient(180deg, #fff, #f1f8f5);
}

body.pagina-quejas .bloque-superior > section:last-child {
  border-top: 7px solid var(--pd-gold);
}

body.pagina-quejas label {
  color: var(--pd-ink);
  font-weight: 800;
}

body.pagina-quejas input,
body.pagina-quejas select,
body.pagina-quejas textarea {
  padding: 11px 12px;
  border: 1px solid #b8d4cb;
  border-radius: 10px;
  background: #fbfdfc;
}

body.pagina-quejas button {
  padding: 12px 18px;
  border: 0;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(120deg, var(--pd-green), var(--pd-blue));
  font-weight: 900;
  cursor: pointer;
}

/* Servicios corporativos e inmobiliarios */
body.pagina-servicios main > article::before {
  content: "Interservit · servicios especializados";
}

body.pagina-servicios main > article {
  font-size: 1.03rem;
}

body.pagina-servicios main > article > h1:not(:first-of-type) {
  margin: 42px 0 16px;
  padding: 18px 20px;
  border-left: 7px solid var(--pd-green);
  border-radius: 6px 18px 18px 6px;
  color: var(--pd-ink);
  background: linear-gradient(90deg, #e7f5ef, #fffdf8);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.45rem, 3vw, 2.15rem);
  line-height: 1.15;
}

body.pagina-servicios main > article > h1:nth-of-type(3n) {
  border-left-color: var(--pd-gold);
  background: linear-gradient(90deg, #fff3dc, #fffdf8);
}

body.pagina-servicios .servicios {
  margin: 25px 0 34px;
  padding: 26px;
  border: 0;
  border-radius: 22px;
  color: #fff;
  background:
    radial-gradient(circle at 90% 0, rgba(230, 165, 58, .35), transparent 35%),
    linear-gradient(130deg, var(--pd-green-dark), var(--pd-blue));
  box-shadow: 0 18px 44px rgba(10, 76, 66, .2);
}

body.pagina-servicios .servicios a {
  color: #fff1b6;
}

body.pagina-servicios .curso-anuncio,
body.pagina-servicios .newsletter,
body.pagina-servicios article > section {
  margin: 28px 0;
  padding: 24px;
  border: 1px solid var(--pd-line);
  border-radius: 20px;
  background: #f4faf7;
}

/* Directorio de capitales */
body.pagina-capitales main > article::before {
  content: "Mapa administrativo de España";
}

body.pagina-capitales main > article > ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 28px 0 36px;
  padding: 0;
  list-style: none;
}

body.pagina-capitales main > article > ul > li {
  padding: 16px 17px;
  border: 1px solid var(--pd-line);
  border-left: 5px solid var(--pd-green);
  border-radius: 6px 15px 15px 6px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(23, 52, 46, .06);
}

body.pagina-capitales main > article > ul > li:nth-child(3n + 2) {
  border-left-color: var(--pd-gold);
}

body.pagina-capitales main > article > ul > li:nth-child(3n) {
  border-left-color: var(--pd-blue);
}

body.pagina-capitales main > article > section {
  padding: 24px;
  border-radius: 20px;
  background: #eaf6f1;
}

/* Directorio general de comunidades */
body.pagina-directorio-autonomias main > article::before {
  content: "Directorio territorial de España";
}

body.pagina-directorio-autonomias main > article {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

body.pagina-directorio-autonomias main > article > h1,
body.pagina-directorio-autonomias main > article > h2,
body.pagina-directorio-autonomias main > article > p,
body.pagina-directorio-autonomias main > article > .highlight,
body.pagina-directorio-autonomias main > article > blockquote,
body.pagina-directorio-autonomias main > article > ul {
  grid-column: 1 / -1;
}

body.pagina-directorio-autonomias main > article > section {
  min-width: 0;
  margin: 0;
  padding: 24px;
  border: 1px solid var(--pd-line);
  border-top: 7px solid var(--pd-green);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(23, 52, 46, .07);
}

body.pagina-directorio-autonomias main > article > section:nth-of-type(3n + 2) {
  border-top-color: var(--pd-gold);
  background: #fffaf0;
}

body.pagina-directorio-autonomias main > article > section:nth-of-type(3n) {
  border-top-color: var(--pd-blue);
  background: #f5f9fd;
}

body.pagina-directorio-autonomias main > article > section h3 {
  margin-top: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
}

@media (max-width: 900px) {
  body.pagina-oposiciones main > section,
  body.pagina-capitales main > article > ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.pagina-quejas .bloque-superior,
  body.pagina-directorio-autonomias main > article {
    grid-template-columns: 1fr;
  }

  body.pagina-directorio-autonomias main > article > * {
    grid-column: 1;
  }
}

@media (max-width: 620px) {
  body.pagina-destacada .layout {
    width: min(100% - 20px, 1180px);
    padding-top: 16px;
  }

  body.pagina-destacada main > article,
  body.pagina-destacada .layout > main:not(:has(> article)) {
    padding: 22px 18px;
    border-radius: 18px;
  }

  body.pagina-destacada main > article > h1:first-of-type,
  body.pagina-destacada .layout > main:not(:has(> article)) > h1:first-of-type {
    font-size: clamp(2rem, 11vw, 3rem);
  }

  body.pagina-oposiciones main > section,
  body.pagina-capitales main > article > ul {
    grid-template-columns: 1fr;
  }

  body.pagina-oposiciones #oposiciones-cerradas {
    padding: 18px;
  }

  body.pagina-quejas .bloque-superior {
    display: block;
  }

  body.pagina-quejas .bloque-superior > section + section {
    margin-top: 18px;
  }
}
