﻿/*
 * Asturias en Im-genes - Fase 6
 * Consolidaci-n conservadora del CSS extra-do.
 *
 * Las clases legacy-s-* se mantienen temporalmente para preservar
 * el aspecto de la Fase 5. Se ir-n sustituyendo por componentes
 * sem-nticos en fases posteriores, despu-s de auditar las tablas.
 */
:root {
  --site-border-light: #FFFFFF;
  --site-border-medium: #CCCCCC;
  --site-border-dark: #666666;
}
/* Asturias en Im-genes - Fase 5 reparada */
/* Solo extracci-n de estilos existentes; sin cambios visuales deliberados. */

/* legacy-s-0001: margin:0px; margin-top:4px; */
.legacy-s-0001 {
  margin:0px !important; margin-top:4px !important;
}

/* legacy-s-0002: text-decoration:none; color:gray; */
.legacy-s-0002 {
  text-decoration:none !important; color:gray !important;
}

/* legacy-s-0003: text-decoration: none */
.legacy-s-0003 {
  text-decoration: none !important;
}

/* legacy-s-0004: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; text-align: right;vertical-align: middle; padding: 5px;border-color: #FFFFFF; */
.legacy-s-0004 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; text-align: right !important;vertical-align: middle !important; padding: 5px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0005: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; padding: 5px;border-color: #FFFFFF; */
.legacy-s-0005 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; padding: 5px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0006: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; text-align: center; padding: 5px;border-color: #FFFFFF; */
.legacy-s-0006 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; text-align: center !important; padding: 5px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0007: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; padding: 2px;border-color: #FFFFFF; */
.legacy-s-0007 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; padding: 2px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0008: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; text-align: center; padding: 2px;border-color: #FFFFFF; */
.legacy-s-0008 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; text-align: center !important; padding: 2px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0009: border-collapse: collapse border-color: #CCCCCC; width: 100%; */
.legacy-s-0009 {
  border-collapse: collapse !important;
  border-color: #CCCCCC !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* legacy-s-0010: border-collapse: collapse;border-color: #666666; width: 90%; */
.legacy-s-0010 {
  border-collapse: collapse !important;border-color: #666666 !important; width: 90% !important;
}

/* legacy-s-0011: color: blue; text-decoration: underline; text-underline: single */
.legacy-s-0011 {
  color: blue !important; text-decoration: underline !important; text-underline: single !important;
}

/* legacy-s-0012: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; padding: 9px;border-color: #FFFFFF; */
.legacy-s-0012 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; padding: 9px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0013: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; text-align: center; padding: 9px;border-color: #FFFFFF; */
.legacy-s-0013 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; text-align: center !important; padding: 9px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0014: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium;padding: 0;border-color: #FFFFFF; */
.legacy-s-0014 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important;padding: 0 !important;border-color: #FFFFFF !important;
}

/* legacy-s-0015: height: 292px; border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; text-align: center; padding: 2px;border-color: #FFFFFF; */
.legacy-s-0015 {
  height: 292px !important; border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; text-align: center !important; padding: 2px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0016: border-collapse: collapse;border-color: #666666; width: 95%; */
.legacy-s-0016 {
  border-collapse: collapse !important;border-color: #666666 !important; width: 95% !important;
}

/* legacy-s-0017: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; text-align: right;vertical-align: middle; padding: 2px;border-color: #FFFFFF; */
.legacy-s-0017 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; text-align: right !important;vertical-align: middle !important; padding: 2px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0018: color: blue; text-decoration: underline; text-underline: single; */
/* legacy-s-0019: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; text-align: center;padding: 0;border-color: #FFFFFF; */
.legacy-s-0019 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; text-align: center !important;padding: 0 !important;border-color: #FFFFFF !important;
}

/* legacy-s-0020: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; text-align: left; padding: 2px;border-color: #FFFFFF; */
.legacy-s-0020 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; text-align: left !important; padding: 2px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0021: box-sizing: border-box; color: rgb(0, 56, 145); cursor: pointer; background-color: transparent; text-decoration: none; */
.legacy-s-0021 {
  box-sizing: border-box !important; color: rgb(0, 56, 145) !important; cursor: pointer !important; background-color: transparent !important; text-decoration: none !important;
}

/* legacy-s-0022: -webkit-font-smoothing: antialiased; margin: 0px; padding: 0px; border: 0px none; font-style: italic; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; font-size: 12pt; line-height: inherit; font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; vertical-align: baseline; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255) */
.legacy-s-0022 {
  -webkit-font-smoothing: antialiased !important; margin: 0px !important; padding: 0px !important; border: 0px none !important; font-style: italic !important; font-variant-ligatures: normal !important; font-variant-caps: normal !important; font-variant-numeric: inherit !important; font-variant-east-asian: inherit !important; font-stretch: inherit !important; font-size: 12pt !important; line-height: inherit !important; font-family: &quot !important;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; vertical-align: baseline !important; letter-spacing: normal !important; orphans: 2 !important; text-align: start !important; text-indent: 0px !important; text-transform: none !important; white-space: normal !important; widows: 2 !important; word-spacing: 0px !important; -webkit-text-stroke-width: 0px !important; background-color: rgb(255, 255, 255) !important;
}

/* legacy-s-0023: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; text-align: center;vertical-align: middle; padding: 5px;border-color: #FFFFFF; */
.legacy-s-0023 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; text-align: center !important;vertical-align: middle !important; padding: 5px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0024: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; text-align: center;vertical-align: middle; padding: 9px;border-color: #FFFFFF; */
.legacy-s-0024 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; text-align: center !important;vertical-align: middle !important; padding: 9px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0025: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; padding: 1px;border-color: #FFFFFF; */
.legacy-s-0025 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; padding: 1px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0026: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium; text-align: center; padding: 1px;border-color: #FFFFFF; */
.legacy-s-0026 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important; text-align: center !important; padding: 1px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0027: color: #000099; text-decoration: underline; text-underline: single */
.legacy-s-0027 {
  color: #000099 !important; text-decoration: underline !important; text-underline: single !important;
}

/* legacy-s-0028: text-decoration: none; letter-spacing:1px; font-weight:700 */
.legacy-s-0028 {
  text-decoration: none !important; letter-spacing:1px !important; font-weight:700 !important;
}

/* legacy-s-0029: color: blue; text-decoration: none; text-underline: single */
.legacy-s-0029 {
  color: blue !important; text-decoration: none !important; text-underline: single !important;
}

/* legacy-s-0030: color: blue; text-underline: single */
.legacy-s-0030 {
  color: blue !important; text-underline: single !important;
}

/* legacy-s-0031: line-height: 20px; font-weight: inherit; text-decoration: none; color: purple; cursor: pointer; font-style:italic */
.legacy-s-0031 {
  line-height: 20px !important; font-weight: inherit !important; text-decoration: none !important; color: purple !important; cursor: pointer !important; font-style:italic !important;
}

/* legacy-s-0032: font-size:11px; color: #d0d0d0; */
.legacy-s-0032 {
  font-size:11px !important; color: #d0d0d0 !important;
}

/* legacy-s-0033: border: 0px solid #000000 */
.legacy-s-0033 {
  border: 0px solid #000000 !important;
}

/* legacy-s-0034: text-decoration: none; display:block; text-align:center; */
.legacy-s-0034 {
  text-decoration: none !important; display:block !important; text-align:center !important;
}

/* legacy-s-0035: width:200px; max-width:200px; height:auto; display:block; margin:0 auto; box-sizing:border-box;border: 1px solid currentColor; */
.legacy-s-0035 {
  width:200px !important; max-width:200px !important; height:auto !important; display:block !important; margin:0 auto !important; box-sizing:border-box !important;border: 1px solid currentColor !important;
}

/* legacy-s-0036: text-decoration: none; font-weight:700 */
.legacy-s-0036 {
  text-decoration: none !important; font-weight:700 !important;
}

/* legacy-s-0037: border: 1px solid #000000;border: 1px solid currentColor; */
.legacy-s-0037 {
  border: 1px solid currentColor !important;
}

/* legacy-s-0038: border-bottom-style: none; border-bottom-width: medium; border-top-style:none; border-top-width:medium;background-color: #F3F3F3; text-align: justify; padding: 2px; */
.legacy-s-0038 {
  border-bottom-style: none !important; border-bottom-width: medium !important; border-top-style:none !important; border-top-width:medium !important;background-color: #F3F3F3 !important; text-align: justify !important; padding: 2px !important;
}

/* legacy-s-0039: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium;vertical-align: middle; text-align: right; padding: 2px;border-color: #FFFFFF; */
.legacy-s-0039 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important;vertical-align: middle !important; text-align: right !important; padding: 2px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0040: border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium;vertical-align: middle; text-align: center; padding: 2px;border-color: #FFFFFF; */
.legacy-s-0040 {
  border-top-style: none !important; border-top-width: medium !important; border-bottom-style: none !important; border-bottom-width: medium !important;vertical-align: middle !important; text-align: center !important; padding: 2px !important;border-color: #FFFFFF !important;
}

/* legacy-s-0041: border-collapse:collapse;border:none;mso-border-alt:solid #CCCCCC .75pt; mso-yfti-tbllook:1696;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;border-spacing: 0; width: 416px; */
.legacy-s-0041 {
  border-collapse:collapse !important;border:none !important;border-spacing: 0 !important; width: 416px !important;
}

/* legacy-s-0042: mso-spacerun:yes; line-height:107%; font-family:Georgia,serif; mso-fareast-font-family:Georgia; mso-bidi-font-family:Georgia; color:#333333 */
.legacy-s-0042 { line-height:107% !important; font-family:Georgia,serif !important; color:#333333 !important;
}

/* legacy-s-0043: -webkit-font-smoothing: antialiased; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: 'unit regular'; vertical-align: baseline; color: black; touch-action: manipulation; cursor: pointer; */
.legacy-s-0043 {
  -webkit-font-smoothing: antialiased !important; margin: 0px !important; padding: 0px !important; border: 0px !important; font-style: inherit !important; font-variant: inherit !important; font-weight: inherit !important; font-stretch: inherit !important; font-size: inherit !important; line-height: inherit !important; font-family: 'unit regular' !important; vertical-align: baseline !important; color: black !important; touch-action: manipulation !important; cursor: pointer !important;
}

/* legacy-s-0044: -webkit-font-smoothing: antialiased; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; touch-action: manipulation; cursor: pointer; transition: 0.5s; display: inline-block; */
.legacy-s-0044 {
  -webkit-font-smoothing: antialiased !important; margin: 0px !important; padding: 0px !important; border: 0px !important; font-style: inherit !important; font-variant: inherit !important; font-weight: inherit !important; font-stretch: inherit !important; font-size: inherit !important; line-height: inherit !important; font-family: inherit !important; vertical-align: baseline !important; touch-action: manipulation !important; cursor: pointer !important; transition: 0.5s !important; display: inline-block !important;
}

/* legacy-s-0045: -webkit-font-smoothing: antialiased; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; color: rgb(155, 0, 0); text-decoration: underline; touch-action: manipulation; cursor: pointer; */
.legacy-s-0045 {
  -webkit-font-smoothing: antialiased !important; margin: 0px !important; padding: 0px !important; border: 0px !important; font-style: inherit !important; font-variant: inherit !important; font-weight: inherit !important; font-stretch: inherit !important; font-size: inherit !important; line-height: inherit !important; font-family: inherit !important; vertical-align: baseline !important; color: rgb(155, 0, 0) !important; text-decoration: underline !important; touch-action: manipulation !important; cursor: pointer !important;
}

/* legacy-s-0046: text-decoration: none; font-style:italic */
.legacy-s-0046 {
  text-decoration: none !important; font-style:italic !important;
}

/* legacy-s-0047: border-collapse: collapse;border-spacing: 0;border-color: #C0C0C0; width: 90%; */
.legacy-s-0047 {
  border-collapse: collapse !important;border-spacing: 0 !important;border-color: #C0C0C0 !important; width: 90% !important;
}

/* FASE 8: semantic component hooks (no visual overrides yet) */
.site-header-grid, .site-primary-nav, .site-contact, .site-shell, .site-banner, .site-main { /* reserved for later component refactor */ }

/* Fase 10: contenedores de contenido que ya no dependen de table */
.site-main { width: 100%; box-sizing: border-box; }

/* Fase 10: restaurar alineaci-n izquierda de los enlaces Inicio en indice_rest */
.rest-index-links td:first-child { text-align: left; }


/* FASE 12: sustituci-n sem-ntica de center */
.legacy-center { text-align: center; }


/* FASE 13: antiguos contenedores de una sola celda */
.legacy-layout-box { box-sizing: border-box; margin-left: auto; margin-right: auto; }


/* FASE 13 CORRECCION 3: centrar grupos de miniaturas */
.photo-thumb-grid { width: max-content !important; margin-left: auto !important; margin-right: auto !important; }
.photo-thumb-grid td { text-align: center; }


/* FASE 14: iframes embebidos sin atributos HTML heredados */
.legacy-embedded-media { border: 0; max-width: 100%; }

/* FASE 15: base responsive para componentes ya identificados */
@media (max-width: 760px) {
  .site-shell,
  .site-main,
  .site-contact { max-width: 100%; box-sizing: border-box; }
  .site-banner img { max-width: 100%; height: auto; }
  .site-primary-nav { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .site-main { overflow-x: auto; }
  .modern-video-embed { max-width: 100%; }
}


/* FASE 16: contenedores de maquetaci-n de una sola celda */
.legacy-layout-cell { box-sizing: border-box; }


/* FASE 18: album-data responsive hooks */
.album-responsive-image {
  max-width: 100% !important;
  height: auto !important;
  box-sizing: border-box;
}
.album-responsive-table {
  max-width: 100% !important;
  box-sizing: border-box;
}
@media (max-width: 760px) {
  .album-responsive-table {
    width: 100% !important;
  }
}


/* FASE 19: base responsive layer */
html { box-sizing: border-box; }
*, *::before, *::after { box-sizing: inherit; }
body { margin: 0; overflow-x: hidden; }
img { max-width: 100%; }
iframe, video { max-width: 100%; }

/* Galerias: mantienen su tama-o en escritorio y se adaptan en pantallas peque-as. */
.album-responsive-image {
  max-width: 100% !important;
  height: auto !important;
  box-sizing: border-box;
}

/* Evita que una tabla antigua provoque scroll de toda la p-gina. */
.site-main .index-modern-table, .site-shell table, .site-header-grid table, .site-contact table {
  max-width: 100%;
}

@media (max-width: 900px) {
  .site-shell, .site-main, .site-header-grid, .site-contact, .site-banner {
    max-width: 100%;
    overflow-x: auto;
  }
  .site-banner img { max-width: 100%; height: auto; }
  .embedded-video { width: 100% !important; height: auto; min-height: 220px; }
}

@media (max-width: 640px) {
  body { font-size: 16px; }
  .site-shell, .site-main, .site-contact { padding-left: 8px; padding-right: 8px; }
  .site-primary-nav { width: 100% !important; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .site-primary-nav table { width: max-content !important; min-width: 100%; }
  .site-banner { width: 100% !important; }
  .site-banner img { width: 100% !important; height: auto !important; }
  .album-responsive-image { width: auto !important; max-width: 100% !important; }
  table { max-width: 100%; }
  td, th { max-width: 100%; }
}
@media (max-width: 900px) {
  .index-feature-grid { grid-template-columns: 1fr; max-width: 620px; }
  .index-feature-card__body { padding: 16px; }
  .index-feature-gallery img { max-height: 150px; }
}
@media (max-width: 480px) {
  .index-feature-grid { gap: 12px; }
  .index-feature-row > td { padding-left: 8px !important; padding-right: 8px !important; }
  .index-feature-card__text { font-size: 15px; }
  .index-feature-gallery--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .index-feature-gallery img { max-height: 105px; }
}

/* FASE 24: cabecera basada en el banner panor-mico original y fondo1. */
.aif-site-header { width: 100%; background: #fff; border-bottom: 1px solid #b9c8bd; box-shadow: 0 2px 12px rgba(0,0,0,.08); position: relative; z-index: 5; }
.aif-header-banner {
  width: 100%; height: 104px; min-height: 104px;
  background: #8cc9df url("pix/banner_astu2.webp") center center / cover no-repeat;
}
.aif-header-identity {
  background: #0d2f1d url("pix/fondo1.webp") center / 128px 128px repeat;
  border-top: 1px solid rgba(255,255,255,.18);
  border-bottom: 1px solid rgba(0,0,0,.28);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.aif-header-identity-inner { width: min(1180px, calc(100% - 32px)); margin: 0 auto; display: flex; align-items: center; min-height: 64px; }
.aif-brand { color: #fff; text-decoration: none; display: flex; flex-direction: column; align-items: flex-start; padding: 10px 0; text-shadow: 0 2px 5px rgba(0,0,0,.55); }
.aif-brand-title { font: 700 clamp(25px, 3.7vw, 43px)/.98 Arial, sans-serif; letter-spacing: .035em; }
.aif-brand-subtitle { margin-top: 5px; font: 400 clamp(13px, 1.55vw, 18px)/1.25 Arial, sans-serif; color: #edf7ef; }
.aif-header-tools {
  width: min(1180px, calc(100% - 32px)); margin: 0 auto; display: grid;
  grid-template-columns: minmax(240px, 330px) 1fr; align-items: center; gap: 18px; padding: 12px 0;
}
.aif-search { display: grid; grid-template-columns: 1fr auto; gap: 7px; align-items: center; font: 600 12px/1 Arial, sans-serif; }
.aif-search label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.aif-search input[type="search"] { min-width: 0; width: 100%; padding: 9px 11px; border: 1px solid #aebfb3; border-radius: 7px; font: 14px/1.2 Arial, sans-serif; background: #fff; }
.aif-search button { border: 0; border-radius: 7px; padding: 9px 13px; background: #155d3a; color: #fff; font: 700 13px/1 Arial, sans-serif; cursor: pointer; }
.aif-search button:hover, .aif-search button:focus { background: #0d4329; }
.aif-primary-nav { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.aif-primary-nav a { color: #155d3a; text-decoration: none; font: 700 14px/1.2 Arial, sans-serif; padding: 9px 12px; border-radius: 7px; }
.aif-primary-nav a:hover, .aif-primary-nav a:focus { background: #e9f2ed; text-decoration: underline; }
.aif-site-footer {
  margin-top: 28px; color: #fff;
  background: #0d2f1d url("pix/fondo1.webp") center / 128px 128px repeat;
  border-top: 4px solid #d4a936; box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
}
.aif-footer-inner {
  width: min(1180px, calc(100% - 32px)); margin: 0 auto; display: grid;
  grid-template-columns: 1.2fr 1fr 1.6fr; gap: 24px; padding: 24px 0 22px;
}
.aif-footer-brand, .aif-footer-contact { display: flex; flex-direction: column; gap: 6px; }
.aif-footer-brand strong { font: 700 20px/1.2 Arial, sans-serif; }
.aif-footer-brand span, .aif-footer-contact span { font: 13px/1.45 Arial, sans-serif; opacity: .9; }
.aif-footer-nav { display: flex; flex-direction: column; gap: 7px; }
.aif-footer-nav a, .aif-footer-contact a { color: #fff4a6; text-decoration: none; font: 700 13px/1.3 Arial, sans-serif; }
.aif-footer-nav a:hover, .aif-footer-nav a:focus, .aif-footer-contact a:hover, .aif-footer-contact a:focus { text-decoration: underline; }
@media (max-width: 850px) {
  .aif-header-banner { height: 96px; min-height: 96px; }
  .aif-header-identity-inner { min-height: 58px; }
  .aif-header-tools { grid-template-columns: 1fr; }
  .aif-primary-nav { justify-content: center; }
  .aif-footer-inner { grid-template-columns: 1fr 1fr; }
  .aif-footer-contact { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .aif-header-banner { height: 92px; min-height: 92px; background-size: auto 104px; }
  .aif-header-identity-inner, .aif-header-tools, .aif-footer-inner { width: min(100% - 20px, 1180px); }
  .aif-brand-title { font-size: clamp(22px, 8vw, 32px); }
  .aif-brand-subtitle { font-size: 12px; }
  .aif-search { grid-template-columns: 1fr auto; }
  .aif-search input[type="search"] { grid-column: 1; }
  .aif-search button { grid-column: 2; grid-row: 1; }
  .aif-primary-nav { display: grid; grid-template-columns: 1fr; gap: 3px; }
  .aif-primary-nav a { text-align: center; padding: 8px; }
  .aif-footer-inner { grid-template-columns: 1fr; gap: 16px; padding: 20px 0; }
  .aif-footer-contact { grid-column: auto; }
}

/* Enlaces externos destacados del footer: mismo fondo que la portada para que destaquen sobre el verde del pie. */
.aif-footer-external-links {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 4px;
}
.aif-footer-external-card {
  min-height: 88px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  box-sizing: border-box;
  padding: 12px 10px;
  border-radius: 10px;
  background: #FEFDE2;
  color: #174f36 !important;
  text-decoration: none;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0,0,0,.18);
}
.aif-footer-external-card strong { font: 700 18px/1.15 Arial, sans-serif; }
.aif-footer-external-card span { font: 700 12px/1.25 Arial, sans-serif; }
.aif-footer-external-card img { display: block; width: min(180px, 100%); height: auto; }
.aif-footer-external-card:hover, .aif-footer-external-card:focus { background: #fffdf7; text-decoration: none; }
@media (max-width: 700px) { .aif-footer-external-links { grid-template-columns: 1fr; } }

/* FASE 25: footer fuera de la tabla legacy y sin franjas residuales */
[data-site-footer] { margin: 0; padding: 0; min-height: 0; }

/* FASE 44 — index.html: maquetación moderna con div/grid.
   Las únicas tablas que se conservan en la portada son las dos del mapa de Asturias,
   porque su cuadrícula y posicionamiento de los números dependen de ellas. */
.index-page {
  background-color: #f2f5f2 !important;
  color: #24352b;
  font-family: Arial, Helvetica, sans-serif;
}
/* Contenedores principales: ya no dependen de table/tr/td. */
.index-page > .index-modern-table {
  width: 100% !important;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  background: #fffdf7 !important;
}
.index-page .index-modern-table {
  width: 100% !important;
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
}
.index-page .index-modern-row {
  width: 100%;
  box-sizing: border-box;
}
.index-page .index-modern-cell {
  box-sizing: border-box;
  min-width: 0;
}
.index-page .index-modern-table.site-main {
  width: min(1180px, 100%) !important;
  margin: 0 auto !important;
}
.index-page .index-modern-table.site-main > .index-modern-row > .index-modern-cell {
  padding: 0 !important;
}
.index-page .index-modern-table.index-intro-table {
  width: 100% !important;
}
.index-page .index-modern-table.index-full-width {
  width: 100% !important;
}

/* Filas que antes usaban tres celdas de 3% / 94% / 3%. */
.index-page .index-modern-row:has(> .index-inline-06:nth-child(1)) {
  display: grid;
  grid-template-columns: 3% minmax(0, 94%) 3%;
  align-items: stretch;
}
.index-page .index-modern-row:has(> .index-inline-08:nth-child(1)) {
  display: grid;
  grid-template-columns: 3% minmax(0, 94%) 3%;
  align-items: stretch;
}
.index-page .index-modern-row:has(> .index-inline-08:nth-child(1)) > .index-inline-08,
.index-page .index-modern-row:has(> .index-inline-06:nth-child(1)) > .index-inline-06 {
  width: auto !important;
}
.index-page .index-modern-row > .index-inline-08 + .index-inline-11 {
  min-width: 0;
}


/* Imagen panorámica principal: misma ubicación, mejor adaptación */
.index-page img[src*="fotgij_005/pic_11k-A.webp"] {
  display: block !important;
  width: min(790px, 94vw) !important;
  height: auto !important;
  margin: 8px auto !important;
  border-radius: 10px;
  box-shadow: 0 7px 20px rgba(30,55,40,.12);
}

/* Mapa: se conserva íntegramente la cuadrícula y todos sus enlaces */
.index-page #map_menu_ast {
  width: 680px !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  border: 1px solid #89936c !important;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(35,55,30,.12);
}
.index-page #map_menu_ast2 {
  width: 100% !important;
  max-width: none !important;
  background-position: center top !important;
}
.index-page #map_menu_ast a {
  text-decoration: none !important;
}
.index-page #map_menu_ast a:hover,
.index-page #map_menu_ast a:focus {
  filter: brightness(.92);
}


/* Tarjetas de enlaces inferiores: mantienen exactamente los tres bloques existentes */
.index-page #table61 {
  width: calc(100% - 30px) !important;
  margin: 18px auto 12px !important;
  border-spacing: 8px !important;
  table-layout: fixed !important;
}
.index-page #table61 > tbody > tr > td {
  width: 33.333% !important;
  padding: 8px !important;
  text-align: center !important;
  vertical-align: top !important;
}
.index-page #table62,
.index-page #table64 {
  width: min(222px, 100%) !important;
  margin: 0 auto !important;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 5px 16px rgba(31,62,43,.08);
}
.index-page #table62 {
  border: 2px solid #e1e1e1 !important;
}
.index-page #table64 {
  border: 2px solid #a9c6e2 !important;
}
.index-page #table63,
.index-page #table65 {
  width: 100% !important;
  border-spacing: 2px !important;
}
.index-page #table61 img {
  max-width: 100% !important;
  height: auto !important;
  border-radius: 8px;
}
.index-page #table61 a {
  text-decoration: none !important;
}
.index-page #table61 a:hover,
.index-page #table61 a:focus {
  text-decoration: underline !important;
}

/* Evita que las viejas reglas de ancho obliguen al contenido a salir del viewport */
.index-page img,
.index-page iframe,
.index-page video {
  max-width: 100%;
}
.index-page p {
  max-width: 100%;
}

@media (max-width: 900px) {
  .index-page table[id="table1"] {
    width: calc(100% - 20px) !important;
  }
  .index-page #table61 {
    width: calc(100% - 20px) !important;
  }
  .index-page #table61 > tbody > tr > td {
    padding: 5px !important;
  }
}

@media (max-width: 700px) {
  /* El mapa mantiene sus 680 px para no desplazar los puntos; el usuario puede desplazarlo horizontalmente. */
  .index-page #map_menu_ast {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .index-page #map_menu_ast2 {
    min-width: 680px !important;
  }
  .index-page #table61 {
    border-spacing: 5px !important;
  }
  .index-page #table61 > tbody > tr > td {
    width: 33.333% !important;
  }
  .index-page #table62,
  .index-page #table64 {
    width: 100% !important;
    max-width: 222px !important;
  }
}

@media (max-width: 560px) {
  .index-page table[id="table1"] {
    width: calc(100% - 12px) !important;
  }
  .index-page table[id="table1"] td {
    padding: 8px 6px !important;
  }
  .index-page #table61 {
    width: calc(100% - 10px) !important;
    border-spacing: 3px !important;
  }
  .index-page #table61 > tbody > tr > td {
    display: block !important;
    width: auto !important;
    padding: 5px !important;
  }
  .index-page #table62,
  .index-page #table64 {
    max-width: 300px !important;
  }
}

/* ================================================================
   FASE 31 - Estructura moderna de index.html
   Las tablas utilizadas solo para maquetar se sustituyen progresivamente
   por elementos semánticos. El mapa de Asturias queda protegido en esta fase.
   ================================================================ */
.index-page-shell {
  width: 100%;
  margin: 0;
  padding: 0;
  background: #FEFDE2;
}

.index-page .site-main {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
}

.index-page .index-intro {
  display: block;
  width: 100%;
  margin: 0;
  padding: 8px;
  box-sizing: border-box;
}

.index-page .index-intro-grid {
  width: 100%;
  box-sizing: border-box;
}

/* Lista de rutas: sustituye la tabla de maquetación por una lista semántica. */
.index-page .gijon-routes-list {
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  box-sizing: border-box;
}

.index-page .gijon-route-item {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 5px;
  box-sizing: border-box;
  text-align: justify;
  color: #003300;
  font-family: Arial, sans-serif;
  font-size: small;
}

.index-page .gijon-route-item::before {
  content: attr(data-route-number) ".";
  color: #003300;
  text-align: center;
  font-weight: normal;
}

.index-page .gijon-route-item > a {
  min-width: 0;
  display: block;
  line-height: 1.5;
}

/* El mapa conserva deliberadamente su estructura histórica en esta fase. */
.index-page .asturias-map-section {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 700px) {
  .index-page .index-intro {
    padding: 5px;
  }

  .index-page .gijon-route-item {
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 5px;
    padding: 7px 4px;
  }
}

/* FASE 31 - enlaces destacados integrados en el pie com-n. */
.aif-footer-featured {
  grid-column: 1 / -1;
  padding: 14px 0 2px;
  border-top: 1px solid rgba(255,255,255,.22);
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.aif-footer-featured-title {
  margin-bottom: 10px;
  color: #fff4a6;
  text-align: center;
  font: 700 16px/1.2 Arial, sans-serif;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.aif-footer-featured-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
}
.aif-footer-featured-card {
  min-width: 0;
  min-height: 82px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 12px;
  box-sizing: border-box;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 8px;
  background: rgba(255,255,255,.08);
  color: #fff;
  text-align: center;
  text-decoration: none;
  transition: background .15s ease, transform .15s ease;
}
.aif-footer-featured-card:hover, .aif-footer-featured-card:focus {
  background: rgba(255,255,255,.16);
  transform: translateY(-1px);
  text-decoration: none;
}
.aif-footer-featured-card strong { font: 700 16px/1.2 Arial, sans-serif; color: #fff4a6; }
.aif-footer-featured-card span { font: 700 12px/1.3 Arial, sans-serif; color: #fff; }
.aif-footer-featured-trip img { width: min(150px, 100%); max-height: 46px; object-fit: contain; display: block; }
@media (max-width: 700px) {
  .aif-footer-featured-grid { grid-template-columns: 1fr; }
}

/* Reducción ligera de los números del mapa para evitar solapamientos entre rutas. */
#map_menu_ast2 a span span {
  font-size: 8pt !important;
  position: relative;
  top: -16px;
}


/*
 * Estilos reutilizados de la portada:
 * Se extraen de los atributos style repetidos para evitar duplicaciones.
 * Los nombres index-inline-* son internos de index.html; no modifican
 * la estructura, los enlaces ni la cuadrícula del mapa de Asturias.
 */
.index-page {
  /* Contenedor de especificidad para que estos estilos sustituyan a los antiguos inline. */
}
.index-page .index-inline-01 { border-spacing: 0 !important; width: 100% !important; }
.index-page .index-inline-02 { text-align: center !important; }
.index-page .index-inline-03 { text-align: center !important; vertical-align: middle !important; }
.index-page .index-inline-04 { font-size: 17pt !important; }
.index-page .index-inline-05 { width: 3% !important; }
.index-page .index-inline-06 { padding: 0 !important; width: 3% !important; }
.index-page .index-inline-07 { text-align: center !important; vertical-align: middle !important; padding: 0 !important; }
.index-page .index-inline-08 { vertical-align: top !important; padding: 0 !important; width: 3% !important; }
.index-page .index-inline-09 { color: #FFFFFF !important; }
.index-page .index-inline-10 { font-size: 1pt !important; }
.index-page .index-inline-11 { text-align: center !important; padding: 0 !important; }
.index-page .index-inline-12 { text-align: center !important; vertical-align: middle !important; padding: 0 !important; width: 17px !important; }
.index-page .index-inline-13 { text-decoration: none !important; font-weight:400 !important; }
.index-page .index-inline-14 { color: #0000CC !important; font-size: 9pt !important; }
.index-page .index-inline-16 { padding: 0 !important; }
.index-page .index-inline-20 { font-family: Arial !important; color: #003300 !important; font-size: small !important; }
.index-page .index-inline-21 { text-decoration: none !important; line-height: 150% !important; font-weight:400 !important; }

/* Estilos que antes estaban repetidos como atributos inline en la portada.
   Se centralizan aquí para facilitar el mantenimiento sin alterar la disposición visual. */
.index-page {
  background-color: #ffffff;
  margin: 0;
}
.index-content-cell {
  background-color: #FEFDE2;
  vertical-align: top;
}
.index-content-center {
  text-align: center;
  vertical-align: top;
  padding: 0;
}
.index-full-width {
  width: 100% !important;
}
.index-highlight {
  text-decoration: none;
  background-color: #FFFF00;
  font-weight: 700;
}
.index-legacy-text {
  font-family: Arial, sans-serif;
  font-size: 10pt;
}
.index-email {
  color: #000099;
}

/* FASE 38 — Reglas responsive específicas de index.html. */
/* Ajustes modernos y responsive de la portada.
   En esta fase no se altera la estructura de las tablas históricas:
   algunas de ellas controlan posiciones precisas del mapa y de los bloques. */
html, body { max-width: 100%; overflow-x: hidden; }
.index-page > .index-modern-table { width: 100% !important; }
.index-page img { max-width: 100%; height: auto; }

/* Los bloques de enlaces finales permanecen centrados. */
.index-footer-links {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 760px) {
  .index-feature-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .index-feature-card {
    width: min(100%, 360px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  #map_menu_ast {
    min-height: 0 !important;
  }
  /* Las columnas laterales históricas pasan a ocupar todo el ancho. */
  .index-page table[width="100%"] {
    max-width: 100%;
  }
}

/* Listas principales de rutas y excursiones: sustituyen tablas usadas solo para maquetar.
   Se mantiene una columna estrecha para el número y otra flexible para el texto/enlace. */
.index-link-list {
  width: 100%;
  box-sizing: border-box;
  margin: 0 auto;
}
.index-link-item {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 0;
  align-items: start;
  padding: 5px;
  box-sizing: border-box;
}
.index-link-number {
  width: 30px;
  box-sizing: border-box;
  padding-right: 5px;
  font-family: Arial, sans-serif;
  color: #003300;
  font-size: small;
  line-height: 1.5;
}
.index-link-text {
  min-width: 0;
  text-align: justify;
  font-family: Arial, sans-serif;
  color: #003300;
  font-size: small;
  line-height: 1.5;
}
.index-link-text a {
  color: inherit;
}
@media (max-width: 600px) {
  .index-link-item {
    grid-template-columns: 28px minmax(0, 1fr);
    padding: 4px 2px;
  }
  .index-link-number { width: 28px; }
  .index-link-text { text-align: left; }
}

/* Bloques finales: tres columnas independientes que no interfieren con el contenido principal. */
.index-final-grid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  align-items: center;
  justify-items: center;
  margin: 18px auto 10px;
  box-sizing: border-box;
}
.index-final-card {
  width: 100%;
  min-width: 0;
  min-height: 92px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  text-align: center;
}
.index-final-blog {
  max-width: 222px;
  border: 6px double #E1E1E1;
  background: #fff;
  padding: 8px;
}
.index-final-blog-title {
  font-weight: 700;
  background: #FF9900;
  padding: 2px 8px;
  line-height: 1.15;
}
.index-final-blog-title a { text-decoration: none; color: #333; }
.index-final-blog-b { font-family: Arial Black, Arial, sans-serif; font-size: 20px; }
.index-final-blog-rest { font-family: Arial, sans-serif; font-size: 15px; }
.index-final-blog-author { margin: 10px 0 0; font-family: Arial, sans-serif; font-size: 15px; }
.index-final-blog-author a { color: #333; text-decoration: none; }
.index-final-tripadvisor img { display: block; width: min(200px, 100%); height: auto; margin: 0 auto; }
.index-final-magicos {
  max-width: 210px;
  border: 3px dashed #A9C6E2;
  background: #F3F3F3;
  padding: 12px 8px;
  gap: 8px;
  font-family: Arial, sans-serif;
  letter-spacing: 1px;
}
.index-final-magicos a { color: #000; text-decoration: none; }
.index-final-magicos a:first-child { font-size: 17px; }
.index-final-magicos a:last-child { font-size: 13px; }
@media (max-width: 700px) {
  .index-final-grid { grid-template-columns: 1fr; gap: 12px; }
  .index-final-card { max-width: 100%; }
}

/* FASE 31 — continuidad visual de las últimas rutas. */
@media (max-width: 600px) {
   /* Las rutas finales utilizan exactamente el mismo tratamiento visual que las listas anteriores.
   No se usa fondo blanco: el bloque queda integrado en el fondo de la portada. */
.index-page .index-link-list {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.index-page .index-link-item {
  background: transparent !important;
}
}

/* FASE 44 — Equivalente del antiguo cellpadding="8" de la zona introductoria. */
.index-page .index-intro-table > .index-modern-row > .index-inline-03 { padding: 8px; }

/* FASE 38 — Estilos de títulos de sección extraídos del documento. */
/* Títulos de sección: sustituyen las tablas que solo se usaban para enmarcar
   estos encabezados. El aspecto visual se mantiene mediante CSS. El mapa no se modifica. */
.index-page .index-modern-cell.index-inline-11:has(> .index-section-heading) {
  background: #FFFFFF !important;
  border: 1px solid #006600 !important;
  padding: 0 !important;
  box-sizing: border-box;
}
.index-page .index-section-heading {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #FFFFFF !important;
}
.index-page .index-section-heading h2 {
  margin: 0 !important;
  padding: 4px !important;
  text-align: center;
  font-family: Arial, sans-serif;
  font-size: 18pt;
  font-weight: 700;
  line-height: 1.2;
}
@media (max-width: 600px) {
  .index-page .index-section-heading h2 {
    font-size: clamp(16px, 4.5vw, 18pt);
  }
}


/* Ajustes visuales del mapa y de los títulos de sección.
   Los números mantienen su posición, pero ya no llevan el fondo amarillo. */
.index-page #map_menu_ast td,
.index-page #map_menu_ast2 td {
  background-color: transparent !important;
}

/* Los títulos de sección quedan claramente recuadrados, independientes
   de la estructura antigua de tablas. */
.index-page .index-section-heading {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  background: #fff !important;
  border: 2px solid #006600 !important;
  border-radius: 4px !important;
  margin: 10px 0 14px !important;
  padding: 7px 12px !important;
  text-align: center !important;
}

.index-page .index-section-heading h2 {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  text-align: center !important;
}

/* FASE 42 — Los números del mapa no llevan ya ningún recuadro de fondo. */
.index-page #map_menu_ast .index-inline-13,
.index-page #map_menu_ast2 .index-inline-13 {
  display: inline !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* FASE 42 — Encabezados de sección claramente visibles.
   El recuadro se aplica directamente al bloque del título para que no
   dependa de la tabla antigua que lo contenía. */
.index-page .index-section-heading {
  display: block !important;
  width: calc(100% - 8px) !important;
  margin: 8px auto 14px !important;
  padding: 9px 14px !important;
  box-sizing: border-box !important;
  background: #FFFFFF !important;
  border: 2px solid #006600 !important;
  border-radius: 6px !important;
  box-shadow: 0 2px 7px rgba(0,0,0,.16) !important;
  text-align: center !important;
}

.index-page .index-section-heading h2 {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  font-family: Arial, sans-serif !important;
  font-size: clamp(16px, 2.4vw, 24px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  color: #004d00 !important;
}


/* FASE 43 — Regla final y explícita para evitar conflictos de estilos antiguos. */
.index-page .index-section-heading {
  display: block !important;
  width: calc(100% - 24px) !important;
  margin: 10px auto 16px !important;
  padding: 0 !important;
  background: #ffffff !important;
  border: 2px solid #006600 !important;
  border-radius: 5px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.15) !important;
}
.index-page .index-section-heading h2 {
  display: block !important;
  width: auto !important;
  margin: 0 !important;
  padding: 9px 12px !important;
  background: #ffffff !important;
  border: 0 !important;
  color: #004d00 !important;
  text-align: center !important;
  font-family: Arial, sans-serif !important;
  font-size: clamp(17px, 2.5vw, 24px) !important;
  line-height: 1.25 !important;
}
.index-page #map_menu_ast a,
.index-page #map_menu_ast span,
.index-page #map_menu_ast td,
.index-page #map_menu_ast2 a,
.index-page #map_menu_ast2 span,
.index-page #map_menu_ast2 td {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}
.index-page #map_menu_ast a:hover,
.index-page #map_menu_ast a:focus,
.index-page #map_menu_ast a:active,
.index-page #map_menu_ast2 a:hover,
.index-page #map_menu_ast2 a:focus,
.index-page #map_menu_ast2 a:active {
  background: transparent !important;
  filter: none !important;
  outline: none !important;
}


/* FASE 44 — Los títulos de sección ya no necesitan una fila/celda de tabla. */
.index-page .index-section-heading {
  display: block !important;
  width: calc(100% - 24px) !important;
  margin: 10px auto 16px !important;
  padding: 0 !important;
  box-sizing: border-box;
  background: #ffffff !important;
  border: 2px solid #006600 !important;
  border-radius: 6px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.12) !important;
}
.index-page .index-section-heading h2 {
  display: block !important;
  margin: 0 !important;
  padding: 9px 12px !important;
  background: #ffffff !important;
  color: #004d00 !important;
  text-align: center !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: clamp(17px, 2.5vw, 24px) !important;
  line-height: 1.25 !important;
}

@media (max-width: 700px) {
  .index-page .index-modern-row:has(> .index-inline-06:nth-child(1)),
  .index-page .index-modern-row:has(> .index-inline-08:nth-child(1)) {
    grid-template-columns: 2% minmax(0, 96%) 2%;
  }
}

/* FASE 44.1 — Corrección de la zona superior Hotel / Blog / AVE.
   Al sustituir la antigua fila de tabla por elementos modernos, el contenedor
   debe ocupar todo el ancho disponible para conservar las tres columnas. */
.index-page .index-feature-row {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
}
.index-page .index-feature-cell {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
  padding: 12px 3% !important;
}
.index-page .index-feature-cell .index-feature-grid {
  width: 100% !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
}
@media (max-width: 900px) {
  .index-page .index-feature-cell .index-feature-grid {
    grid-template-columns: 1fr !important;
    max-width: 620px !important;
  }
}

/* FASE 44.2 — Ajuste definitivo de Hotel / Blog / AVE.
   La zona superior usa exclusivamente Grid para las tres tarjetas.
   No se modifica ninguna de las tablas del mapa de Asturias. */
.index-page .index-feature-row {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
.index-page .index-feature-cell {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 3% 12px !important;
  box-sizing: border-box !important;
}
.index-page .index-feature-grid {
  display: grid !important;
  width: 100% !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
  align-items: start !important;
}
.index-page .index-feature-card {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  align-self: start !important;
}
.index-page .index-feature-card__body {
  width: 100% !important;
  box-sizing: border-box !important;
}
@media (max-width: 900px) {
  .index-page .index-feature-grid {
    grid-template-columns: 1fr !important;
    max-width: 620px !important;
  }
}
@media (max-width: 600px) {
  .index-page .index-feature-cell {
    padding-left: 2% !important;
    padding-right: 2% !important;
  }
}


/* FASE 44.3 — Hotel Hernán Cortés, Blog y Tren AVE en una sola fila de escritorio. */
.index-page .index-feature-grid--top {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  width:min(1180px,96%) !important;
  max-width:1180px !important;
  margin:0 auto !important;
  padding:12px 0 !important;
  gap:18px !important;
  align-items:stretch !important;
  box-sizing:border-box !important;
}
.index-page .index-feature-grid--top > .index-feature-card {
  grid-column:auto !important; grid-row:auto !important; width:auto !important;
  max-width:none !important; min-width:0 !important; margin:0 !important;
}
@media (max-width:760px) {
 .index-page .index-feature-grid--top { grid-template-columns:1fr !important; width:min(620px,94%) !important; }
}


/* FASE 44.4 — Refuerzo final de la fila superior.
   El navegador debe cargar esta hoja con una versión nueva para evitar CSS en caché.
   En escritorio los tres artículos son exactamente tres columnas; en móvil se apilan. */
.index-page section.index-feature-grid--top {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  grid-auto-flow: row !important;
  width: 96% !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 12px 0 !important;
  gap: 18px !important;
  box-sizing: border-box !important;
}
.index-page section.index-feature-grid--top > article.index-feature-card {
  display: block !important;
  grid-column: auto !important;
  grid-row: auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
}
@media (max-width: 760px) {
  .index-page section.index-feature-grid--top {
    grid-template-columns: 1fr !important;
    width: 94% !important;
    max-width: 620px !important;
  }
}


/* FASE 45 — Fila superior rehecha con FLEX para evitar cualquier auto-colocación heredada. */
.index-page .index-inline-03 > .index-full-width {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
.index-page section.index-feature-grid--top {
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  justify-content:stretch !important;
  width:96% !important;
  max-width:1180px !important;
  margin:0 auto !important;
  padding:12px 0 !important;
  gap:18px !important;
  box-sizing:border-box !important;
}
.index-page section.index-feature-grid--top::before,
.index-page section.index-feature-grid--top::after {
  content:none !important;
  display:none !important;
}
.index-page section.index-feature-grid--top > article.index-feature-card {
  display:block !important;
  flex:1 1 0 !important;
  width:0 !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  grid-column:auto !important;
  grid-row:auto !important;
  box-sizing:border-box !important;
}
@media (max-width:700px) {
  .index-page section.index-feature-grid--top {
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    width:94% !important;
    max-width:620px !important;
  }
  .index-page section.index-feature-grid--top > article.index-feature-card {
    flex:0 0 auto !important;
    width:100% !important;
  }
}


/* Zona superior de la portada: tres bloques independientes, sin contenedores de maquetación heredados. */
.index-page .index-top-features {
  display:flex;
  flex-flow:row nowrap;
  align-items:stretch;
  gap:18px;
  width:min(1180px,96%);
  margin:12px auto 18px;
  padding:0;
  box-sizing:border-box;
}
.index-page .index-top-card {
  flex:1 1 0;
  width:0;
  min-width:0;
  margin:0;
  padding:0;
  box-sizing:border-box;
  background:#fff;
  border:1px solid #c8d0c0;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 3px 12px rgba(35,55,30,.10);
}
.index-page .index-top-card__body { padding:14px; box-sizing:border-box; }
.index-page .index-top-card__title { margin:0 0 10px; padding:8px 10px; text-align:center; font:700 20px/1.2 Arial,sans-serif; background:#fff; color:#004d00; }
.index-page .index-top-card__title a { color:inherit; text-decoration:none; }
.index-page .index-top-card__title a:hover { text-decoration:underline; }
.index-page .index-top-card__text { margin:0; font:15px/1.5 Arial,sans-serif; }
.index-page .index-top-card__text a { color:#005e00; font-weight:700; }
.index-page .index-top-card__subtitle,
.index-page .index-top-card__meta,
.index-page .index-top-card__date { text-align:center; }
.index-page .index-top-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px; }
.index-page .index-top-card--3 .index-top-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }
.index-page .index-top-gallery a { display:block; text-align:center; }
.index-page .index-top-gallery img { display:block; width:100%; height:auto; max-height:150px; object-fit:cover; margin:0 auto; }
.index-page .index-top-portrait { display:block; width:100%; margin:8px auto; text-align:center; }
.index-page .index-top-portrait img { display:block; width:84%; max-width:300px; height:auto; margin:0 auto; }
.index-page .index-top-video { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; }
.index-page .index-top-video iframe { display:block; width:100%; height:100%; border:0; }
.index-page .index-top-new { display:inline-block; margin-right:5px; color:#d40000; font-size:.75em; font-style:italic; }
@media (max-width:700px) {
  .index-page .index-top-features { flex-direction:column; width:94%; }
  .index-page .index-top-card { width:100%; flex:0 0 auto; }
}

/* FASE 46 — Aislamiento total de la zona superior. Los contenedores históricos que la rodean no participan en su maquetación. */
.index-page .site-main > .index-modern-row,
.index-page .site-main > .index-modern-row > .index-content-center,
.index-page .site-main > .index-modern-row > .index-content-center > .index-inline-02,
.index-page .site-main > .index-modern-row > .index-content-center > .index-inline-02 > .index-inline-01 {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
.index-page .index-top-features {
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  justify-content:stretch !important;
  width:96% !important;
  max-width:1180px !important;
  margin:12px auto 18px !important;
  padding:0 !important;
  gap:18px !important;
  box-sizing:border-box !important;
}
.index-page .index-top-card {
  display:block !important;
  flex:1 1 0 !important;
  width:0 !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  box-sizing:border-box !important;
}
@media (max-width:700px) {
  .index-page .index-top-features { flex-direction:column !important; width:94% !important; }
  .index-page .index-top-card { flex:0 0 auto !important; width:100% !important; }
}


/* FASE 47 — Recuperación visual de la cabecera y de la fila superior.
   La cabecera queda embebida en index.html para que la portada funcione también
   al abrirla directamente en local. Los tres destacados usan una cuadrícula
   independiente de cualquier maquetación heredada. */
.index-page .index-top-features {
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  grid-auto-flow:row !important;
  align-items:stretch !important;
  width:min(1180px, 96%) !important;
  max-width:1180px !important;
  margin:12px auto 18px !important;
  padding:0 !important;
  gap:18px !important;
  box-sizing:border-box !important;
  clear:both !important;
}
.index-page .index-top-features > .index-top-card {
  display:flex !important;
  flex-direction:column !important;
  grid-column:auto !important;
  grid-row:auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  float:none !important;
  box-sizing:border-box !important;
}
.index-page .index-top-card__body { flex:1 1 auto !important; box-sizing:border-box !important; }
@media (max-width:600px) {
  .index-page .index-top-features {
    grid-template-columns:1fr !important;
    width:94% !important;
    max-width:620px !important;
  }
}
/* La cabecera debe ocupar todo el ancho y quedar fuera de cualquier alineación heredada. */
.index-page .aif-site-header {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
  clear:both !important;
}


/* FASE 49 — Ajuste final de los tres destacados y de los títulos de sección.
   Los destacados usan el mismo ancho útil que la cabecera y un espaciado más compacto.
   Los títulos tienen un único recuadro: el borde pertenece al propio encabezado,
   no a la celda contenedora heredada. */
.index-page .index-top-features {
  width:min(1180px, calc(100% - 32px)) !important;
  max-width:1180px !important;
  margin:10px auto 16px !important;
  gap:16px !important;
  align-items:start !important;
}
.index-page .index-top-features > .index-top-card {
  height:auto !important;
  align-self:start !important;
}
.index-page .index-top-card__body {
  padding:10px !important;
}
.index-page .index-top-card__title {
  margin:0 0 7px !important;
  padding:6px 8px !important;
  font-size:18px !important;
}
.index-page .index-top-gallery {
  gap:6px !important;
  margin-top:8px !important;
}
.index-page .index-top-gallery img {
  max-height:120px !important;
}
.index-page .index-top-portrait {
  margin:6px auto !important;
}
.index-page .index-top-portrait img {
  max-width:250px !important;
}

/* Un solo recuadro en cada título de sección. */
.index-page .index-modern-cell.index-inline-11:has(> .index-section-heading) {
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
}
.index-page .index-modern-cell.index-inline-11:has(> .index-section-heading) > .index-section-heading {
  width:calc(100% - 24px) !important;
  margin:10px auto 16px !important;
  background:#fff !important;
  border:2px solid #006600 !important;
  border-radius:6px !important;
  box-shadow:0 2px 8px rgba(0,0,0,.12) !important;
  box-sizing:border-box !important;
}
.index-page .index-modern-cell.index-inline-11:has(> .index-section-heading) > .index-section-heading h2 {
  margin:0 !important;
  padding:9px 12px !important;
  background:transparent !important;
  border:0 !important;
}
@media (max-width:600px) {
  .index-page .index-top-features {
    width:calc(100% - 20px) !important;
  }
}


/* FASE 52 · Blog reconstruido desde el contenido original */
body.blog-rebuilt{background:#f3f5f1;}
.blog-rebuilt-main{width:min(1180px,96%);margin:0 auto;padding:22px 0 42px;}
.blog-rebuilt-intro{margin:0 0 22px;padding:18px 22px;background:#fff;border:1px solid #d7dfd2;border-radius:10px;box-shadow:0 4px 16px rgba(20,50,20,.06);}
.blog-rebuilt-intro h1{margin:0;color:#174d17;font-size:clamp(20px,2.3vw,29px);line-height:1.2;}
.blog-rebuilt-intro p{margin:7px 0 0;color:#687568;font-size:14px;}
.blog-article-rebuilt{background:#fff;border:1px solid #d7dfd2;border-radius:10px;box-shadow:0 4px 18px rgba(20,50,20,.07);margin:0 0 24px;padding:20px clamp(16px,3vw,32px) 30px;overflow:visible;}
.blog-article-flow{max-width:100%;font-family:Arial,Helvetica,sans-serif;font-style:italic;color:#3f403b;line-height:1.48;font-size:13px;}
.blog-article-flow > div{max-width:100%;}
.blog-article-flow .article-number{margin:0 0 2px;}
.blog-article-flow .article-number a{color:#174d17;text-decoration:none;font-weight:700;font-size:15px;}
.blog-article-flow .article-number span{background:#fff4b8 !important;color:#174d17 !important;padding:2px 7px;border-radius:5px;}
.blog-article-flow .article-date{margin:0 0 8px;padding:0 !important;background:transparent !important;border:0 !important;}
.blog-article-flow .article-date span{font-family:Arial,Helvetica,sans-serif !important;color:#707a70 !important;font-size:14px !important;}
.blog-article-flow .article-title{margin:0 0 18px;padding:0 0 16px !important;background:transparent !important;border-bottom:1px solid #dfe6dc !important;}
.blog-article-flow .article-title a{color:#174d17;text-decoration:none;}
.blog-article-flow .article-title span{font-family:Arial,Helvetica,sans-serif !important;font-size:clamp(18px,2vw,23px) !important;line-height:1.4 !important;font-style:normal !important;color:#174d17 !important;}
.blog-article-flow p{margin:0 0 17px;text-align:justify;}
.blog-article-flow em{font-style:italic;}
.blog-article-flow strong{font-weight:700;}
.blog-article-flow .recuadro{width:min(860px,92%);margin:20px auto;padding:20px 22px;border:1px solid #cbd7c8;border-radius:9px;background:#fafbf8;box-sizing:border-box;}
.blog-article-flow .recuadro p{margin:0 0 16px;}
.blog-article-flow .recuadro p:last-child{margin-bottom:0;}
.blog-article-flow img{display:block;width:auto;height:auto;max-width:min(100%,740px);max-height:740px;margin:20px auto 6px;object-fit:contain;}
.blog-article-flow a[name]{scroll-margin-top:20px;}
.blog-article-flow .article-title + div{border-top:0;}
/* Los saltos y contenedores heredados siguen el orden original; solo se eliminan espacios vacíos. */
.blog-article-flow div:empty{display:none;}
@media (max-width:760px){
 .blog-rebuilt-main{width:94%;padding-top:14px;}
 .blog-article-rebuilt{padding:15px 12px 22px;border-radius:8px;}
 .blog-rebuilt-intro{padding:15px 16px;}
 .blog-article-flow{font-size:15px;line-height:1.55;}
 .blog-article-flow .recuadro{width:100%;padding:15px 14px;}
 .blog-article-flow img{max-width:100%;max-height:740px;margin:16px auto 5px;}
 .blog-article-flow .article-title span{font-size:18px !important;}
}


/* FASE 53 · ajustes finales de la reconstrucción del blog */
.blog-rebuilt-main{
  width:min(1180px, calc(100% - 32px));
  max-width:1180px;
  margin:0 auto;
}
.blog-article-rebuilt{
  margin:0 0 16px;
  padding:16px clamp(14px,2.4vw,26px) 22px;
}
.blog-article-flow{
  line-height:1.52;
}
.blog-article-flow p{
  margin:0 0 10px;
}
.blog-article-flow .recuadro{
  margin:10px auto;
  padding:12px 16px;
}
.blog-article-flow img{
  display:block;
  max-width:740px;
  max-height:740px;
  width:auto;
  height:auto;
  margin:14px auto 14px;
}
.blog-photo-sequence{
  width:100%;
  margin:10px auto 0;
}
.blog-photo-item{
  margin:0 auto 2.5em;
  padding:0;
  text-align:center;
}
.blog-photo-item img{
  margin:2.5em auto !important;
  max-width:740px !important;
  max-height:740px !important;
  width:auto !important;
  height:auto !important;
}
.blog-pagination{
  width:min(1180px, calc(100% - 32px));
  max-width:1180px;
  margin:4px auto 20px;
  padding:14px 18px;
  box-sizing:border-box;
  background:#fff;
  border:1px solid #d7dfd2;
  border-radius:10px;
  box-shadow:0 3px 12px rgba(20,50,20,.05);
  text-align:center;
}
.blog-pagination h2{
  margin:0 0 10px;
  color:#174d17;
  font-size:18px;
}
.blog-pagination-group{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:5px;
  margin:5px 0;
}
.blog-pagination-group strong{
  margin-right:5px;
  color:#394539;
  font-size:13px;
}
.blog-pagination-group a{
  display:inline-block;
  min-width:24px;
  padding:3px 6px;
  box-sizing:border-box;
  border:1px solid #cbd7c8;
  border-radius:4px;
  background:#f7faf5;
  color:#174d17;
  text-decoration:none;
  font-size:13px;
}
.blog-pagination-group a:hover{
  background:#eaf1e7;
}
@media(max-width:760px){
  .blog-rebuilt-main,
  .blog-pagination{
    width:94%;
  }
  .blog-article-rebuilt{
    padding:13px 10px 18px;
  }
  .blog-article-flow p{
    margin-bottom:8px;
  }
  .blog-photo-item{
    margin-bottom:5px;
  }
}

/* FASE 55 - flujo visual reconstruido siguiendo literalmente el orden del HTML original */
body.blog-page{background:#f3f5f1;}
.blog-main-modern{width:min(1180px,96%);max-width:1180px;margin:0 auto;padding:22px 0 28px;}
.blog-article-rebuilt{background:#fff;border:1px solid #d7dfd2;border-radius:10px;box-shadow:0 6px 18px rgba(20,50,20,.07);margin:0 0 20px;overflow:hidden;}
.blog-article-head{display:flex;align-items:baseline;gap:14px;padding:12px 18px 10px;border-bottom:1px solid #e5e9e3;background:#fafbf9;}
.blog-article-number{font-weight:800;color:#174d17;font-size:20px;}
.blog-article-date{font-size:13px;color:#7b827b;}
.blog-article-body{padding:14px 18px 16px;}
.blog-article-body h2{margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid #e1e6df;color:#174d17;font-size:clamp(18px,2vw,23px);line-height:1.3;}
.blog-article-body p{margin:4px 0 7px;line-height:1.46;text-align:justify;}
.blog-photo-block{margin:0!important;padding:0!important;}
.blog-article-body img.blog-photo{display:block;width:auto;max-width:100%;height:auto;max-height:740px;margin:3px auto 2px;}
.blog-article-body a[id]{display:block;height:0;scroll-margin-top:15px;}
.blog-recuadro{margin:7px 0 10px;padding:11px 13px;border:1px solid #bfcfc0;border-radius:8px;background:#fafbf8;}
.blog-recuadro p{margin:4px 0 7px;}
.blog-recuadro img.blog-photo{max-width:100%;max-height:740px;margin:3px auto 3px;}
.blog-nav-modern{width:min(1180px,96%);max-width:1180px;margin:0 auto 28px;padding:18px 20px;background:#fff;border:1px solid #d7dfd2;border-radius:10px;box-shadow:0 4px 14px rgba(20,50,20,.05);text-align:center;}
.blog-nav-modern h2{margin:0 0 10px;color:#174d17;font-size:19px;}
.blog-nav-modern p{margin:7px 0;line-height:1.8;}
.blog-nav-modern a{display:inline-block;margin:0 2px;padding:1px 5px;color:#1766b1;font-weight:700;text-decoration:none;border-radius:4px;}
.blog-nav-modern a:hover{background:#edf3ea;text-decoration:underline;}
@media(max-width:760px){.blog-main-modern,.blog-nav-modern{width:94%;}.blog-article-head{padding:10px 13px;}.blog-article-body{padding:12px 13px;}.blog-article-body p{text-align:left;}.blog-article-body img.blog-photo{max-height:none;max-width:100%;}.blog-nav-modern{padding:15px 12px;}}

/* FASE 57 - ajuste de lectura, separación de fotografías y límite horizontal */
.blog-article-flow p{
  text-indent:1.6em;
}
.blog-article-flow p.blog-single-line{
  text-align:center !important;
  text-indent:0 !important;
}
.blog-article-flow img{
  width:auto !important;
  height:auto !important;
  max-width:740px !important;
  max-height:740px !important;
  margin:24px auto 16px !important;
}
.blog-photo-item{
  margin-bottom:18px !important;
}
.blog-photo-item img{
  width:auto !important;
  height:auto !important;
  max-width:740px !important;
  max-height:740px !important;
  margin:0 auto !important;
}
@media(max-width:760px){
  .blog-article-flow img,
  .blog-photo-item img{
    max-width:100% !important;
    max-height:none !important;
    margin:20px auto 14px !important;
  }
}

/* FASE 57.1 - fotografías horizontales fijadas a 740px */
.blog-article-flow img.blog-horizontal-photo,
.blog-photo-item img.blog-horizontal-photo{width:740px !important;max-width:740px !important;height:auto !important;max-height:none !important;}
@media(max-width:760px){.blog-article-flow img.blog-horizontal-photo, .blog-photo-item img.blog-horizontal-photo{width:100% !important;max-width:100% !important;height:auto !important;}}

/* FASE 57.1 - fotografías horizontales fijadas a 740px */
.blog-article-flow img.blog-horizontal-photo, .blog-photo-item img.blog-horizontal-photo{width:740px !important;max-width:740px !important;height:auto !important;max-height:none !important;}
@media(max-width:760px){.blog-article-flow img.blog-horizontal-photo, .blog-photo-item img.blog-horizontal-photo{width:100% !important;max-width:100% !important;height:auto !important;}}
/* FASE 57.2 - límite absoluto para fotografías horizontales */
body.blog-page .blog-article-flow img,
body.blog-page .blog-photo-item img,
body.blog-page .blog-article-body img.blog-photo{
  max-width:740px !important;
  box-sizing:border-box !important;
}
body.blog-page .blog-article-flow img[width],
body.blog-page .blog-photo-item img[width]{
  max-width:740px !important;
}
@media(min-width:761px){
  body.blog-page .blog-article-flow img.blog-horizontal-photo,
  body.blog-page .blog-photo-item img.blog-horizontal-photo{
    width:740px !important;
    max-width:740px !important;
    height:auto !important;
  }
}


/* FASE 58 - ajuste estructural real del flujo de fotografias de denuncia_politica.html */
body.blog-page .blog-article-body .blog-photo-block{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 0 30px !important;
  text-align:center !important;
  box-sizing:border-box !important;
}
body.blog-page .blog-article-body .blog-photo-block img.blog-photo{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:740px !important;
  max-height:740px !important;
  margin:0 auto !important;
  object-fit:contain !important;
}
body.blog-page .blog-article-body p.blog-short-caption{
  margin:0 auto 18px !important;
  padding:0 10px !important;
  text-align:center !important;
  text-indent:0 !important;
  line-height:1.45 !important;
  max-width:900px !important;
}
/* When a caption is followed by the next photograph, give it its own breathing room. */
body.blog-page .blog-article-body p.blog-short-caption + a + .blog-photo-block,
body.blog-page .blog-article-body p.blog-short-caption + .blog-photo-block{
  padding-top:10px !important;
}
body.blog-page .blog-article-body .blog-recuadro img.blog-photo{
  max-width:740px !important;
  max-height:740px !important;
  margin:8px auto !important;
}
@media(max-width:760px){
  body.blog-page .blog-article-body .blog-photo-block{
    padding-bottom:22px !important;
  }
  body.blog-page .blog-article-body .blog-photo-block img.blog-photo,
  body.blog-page .blog-article-body .blog-recuadro img.blog-photo{
    max-width:100% !important;
    max-height:none !important;
  }
  body.blog-page .blog-article-body p.blog-short-caption{
    margin-bottom:14px !important;
    padding:0 4px !important;
  }
}


/* FASE 59 - lectura, separacion texto/foto y cabeceras de restaurantes */
body.blog-page .blog-article-flow{
  font-size: 15px !important;
}
body.blog-page .blog-article-body p{
  font-size:15px !important;
}
body.blog-page .blog-article-flow p{
  font-size:15px !important;
}
/* La distancia entre un texto y la foto siguiente debe ser igual a la de dos fotos. */
body.blog-page .blog-article-body p + a + .blog-photo-block,
body.blog-page .blog-article-body p + .blog-photo-block{
  padding-top:30px !important;
}
body.blog-page .blog-article-body p + a + .blog-photo-block + a + .blog-photo-block,
body.blog-page .blog-article-body p + .blog-photo-block + a + .blog-photo-block{
  padding-top:30px !important;
}
/* Nombres de restaurante: una cabecera clara para cada grupo. */
body.blog-page .blog-article-body p.blog-restaurant-heading{
  margin:32px auto 24px !important;
  padding:0 10px !important;
  text-align:center !important;
  text-indent:0 !important;
  font-weight:700 !important;
  text-decoration:underline !important;
  font-size:15px !important;
  line-height:1.35 !important;
}
/* Si hay una frase corta inmediatamente antes del restaurante, queda separada y centrada. */
body.blog-page .blog-article-body p.blog-before-restaurant{
  margin:0 auto 2.2em !important;
  padding:0 10px !important;
  text-align:center !important;
  text-indent:0 !important;
  line-height:1.45 !important;
}

/* Fase 60: tramo GASTRONOMÍA DE GIJÓN */
.blog-gijon-centred{
  text-align:center !important;
}
.blog-gijon-centred strong{
  font-weight:700;
}

/* Fase 62: vídeos con el mismo tamaño y separación que las fotos */
.blog-video-block{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:30px 0 !important;
  text-align:center !important;
  box-sizing:border-box !important;
}
.blog-video-block video{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:740px !important;
  max-height:740px !important;
  margin:0 auto !important;
  background:#000;
}
@media (max-width:760px){
  .blog-video-block video{
    width:100% !important;
    max-width:740px !important;
    height:auto !important;
    max-height:740px !important;
  }
}

/* FASE 65 · corrección del selector real del blog
   El HTML actual usa .blog-article-body, no .blog-article-flow.
   Estas reglas quedan deliberadamente limitadas a body.blog-page para no afectar al index. */
body.blog-page .blog-article-body{
  font-family:Arial,Helvetica,sans-serif !important;
  font-style:italic !important;
  font-size:13px !important;
}
body.blog-page .blog-article-body p{
  font-family:Arial,Helvetica,sans-serif !important;
  font-style:italic !important;
  font-size:13px !important;
}
body.blog-page .blog-article-body li,
body.blog-page .blog-article-body blockquote,
body.blog-page .blog-article-body figcaption{
  font-family:Arial,Helvetica,sans-serif !important;
  font-style:italic !important;
  font-size:13px !important;
}

/* FASE 66 - ajuste tipográfico exclusivo del blog.
   No afecta al index ni al resto de páginas. */
body.blog-page .blog-article-body,
body.blog-page .blog-article-body p,
body.blog-page .blog-article-body li,
body.blog-page .blog-article-body blockquote,
body.blog-page .blog-article-body figcaption{
  font-size:14px !important;
}

/* Títulos de los artículos: un punto menos que antes. */
body.blog-page .blog-article-body h2{
  font-size:clamp(17px, calc(2vw - 1px), 22px) !important;
}

/* Sangría inicial para los párrafos normales. */
body.blog-page .blog-article-body p{
  text-indent:1.5em !important;
}

/* Mantener sin sangría los textos que ya tienen un tratamiento especial. */
body.blog-page .blog-article-body p.blog-short-caption,
body.blog-page .blog-article-body p.blog-restaurant-heading,
body.blog-page .blog-article-body p.blog-before-restaurant,
body.blog-page .blog-article-body p.blog-gijon-centred{
  text-indent:0 !important;
}

/* FASE 67 - títulos de artículos un punto menos y en negro. */
body.blog-page .blog-article-body h2{
  font-size:clamp(16px, calc(2vw - 1px), 21px) !important;
  color:#000 !important;
}

/* FASE 68 - títulos de artículos un punto más pequeños. */
body.blog-page .blog-article-body h2{
  font-size:clamp(15px, calc(2vw - 1px), 20px) !important;
}

/* FASE 69 - separación de los tres párrafos originales del artículo 677. */
body.blog-page .blog-article-body p.blog-677-paragraph{
  margin-top:0.9em !important;
  margin-bottom:0.9em !important;
}

/* FASE 70 - tamaños independientes de los títulos 676 y 677. */
body.blog-page .blog-article-body h2{
  font-size:16px !important;
}
body.blog-page .blog-article-body h2.blog-title-677{
  font-size:14px !important;
}

/* FASE 71 - el título 677 queda al mismo tamaño que el 676. */
body.blog-page .blog-article-body h2.blog-title-677{
  font-size:16px !important;
}
/* Fotografías grandes específicas de denuncia_politica_24: 740px de ancho y altura libre. */
body.blog-page .blog-photo-large-free-height { width: 740px !important; max-width: 100%; height: auto !important; max-height: none !important; }

/* FASE 103 · Fotografías específicas 588/591/596: 740px de ancho y altura completamente libre.
   El selector incluye .blog-photo-block porque esa regla histórica tiene mayor especificidad y usa !important. */
body.blog-page .blog-article-body .blog-photo-block img.blog-photo-large-free-height {
  width: 740px !important;
  max-width: 740px !important;
  height: auto !important;
  max-height: none !important;
}

/* FASE 105: vídeos de YouTube recuperados de los artículos históricos 626 y 629. */
.blog-youtube-block {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 22px 0;
}
.blog-youtube {
  display: block;
  width: min(740px, 100%);
  aspect-ratio: 16 / 9;
  height: auto;
  border: 0;
}


/* FASE 108: mosaicos históricos de los posts 286-289. */
body.blog-page .blog-article-body .legacy-thumb-grid{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(120px,170px)) !important;justify-content:center !important;gap:8px !important;width:100% !important;margin:12px auto 24px !important;padding:0 !important;text-align:center !important;}
body.blog-page .blog-article-body .legacy-thumb-grid a{display:block !important;width:170px !important;max-width:170px !important;margin:0 !important;padding:0 !important;}
body.blog-page .blog-article-body .legacy-thumb-grid img{display:block !important;width:170px !important;height:113px !important;max-width:170px !important;max-height:113px !important;object-fit:cover !important;margin:0 !important;}
body.blog-page .blog-article-body strong.legacy-internal-subtitle{display:block !important;width:100% !important;text-align:center !important;text-indent:0 !important;margin:18px auto 12px !important;}


/* Mosaico histórico del post 287: miniaturas de 170px en cuatro columnas. */
body.blog-page .blog-article-287 .blog-mosaic-subtitle {
  width: 100%;
  margin: 18px 0 12px;
  text-align: center !important;
  font-weight: 700;
  line-height: 1.35;
}
body.blog-page .blog-article-287 .blog-mosaic-4cols {
  display: grid;
  grid-template-columns: repeat(4, 170px);
  gap: 10px;
  justify-content: center;
  align-items: start;
  width: 100%;
  margin: 0 auto 20px;
}
body.blog-page .blog-article-287 .blog-mosaic-4cols > a {
  display: block;
  width: 170px;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center;
}
body.blog-page .blog-article-287 .blog-mosaic-4cols > a img {
  display: block;
  width: 170px !important;
  height: 113px !important;
  max-width: 170px !important;
  max-height: 113px !important;
  object-fit: cover;
  margin: 0 !important;
}
@media (max-width: 780px) {
  body.blog-page .blog-article-287 .blog-mosaic-4cols {
    grid-template-columns: repeat(2, 170px);
  }
}
@media (max-width: 390px) {
  body.blog-page .blog-article-287 .blog-mosaic-4cols {
    grid-template-columns: 170px;
  }
}


/* Fase 111: mosaico 4 columnas para post 288 */
body.blog-page .blog-photo-grid-288 { display:grid; grid-template-columns:repeat(4,170px); gap:10px; justify-content:center; align-items:start; margin:18px auto; }
body.blog-page .blog-photo-grid-288 .blog-photo-block { width:170px; margin:0; text-align:center; }
body.blog-page .blog-photo-grid-288 .blog-photo { width:170px !important; height:113px !important; max-width:170px !important; max-height:113px !important; object-fit:cover; }
body.blog-page .blog-photo-grid-288 + .blog-photo-block { width:100%; margin:24px auto; text-align:center; }
body.blog-page .blog-photo-grid-288 + .blog-photo-block .blog-photo { width:740px !important; max-width:740px !important; height:auto !important; max-height:none !important; }
@media (max-width:760px){ body.blog-page .blog-photo-grid-288{grid-template-columns:repeat(2,170px);} }
@media (max-width:390px){ body.blog-page .blog-photo-grid-288{grid-template-columns:170px;} }

/* Post 289: mosaico de fotografías en 4 columnas. */
body.blog-page .blog-mosaic-289 { display:grid; grid-template-columns:repeat(4,170px); gap:10px; justify-content:center; align-items:start; margin:1.25rem auto; }
body.blog-page .blog-mosaic-289 .blog-photo-block { width:170px; margin:0; }
body.blog-page .blog-mosaic-289 .blog-photo { width:170px; height:113px; max-width:170px; max-height:113px; object-fit:cover; }
@media (max-width:800px){body.blog-page .blog-mosaic-289{grid-template-columns:repeat(2,170px)}}
@media (max-width:390px){body.blog-page .blog-mosaic-289{grid-template-columns:170px}}


/* 286 gallery: mixed 4-column thumbnails and full-width panoramas */
body.blog-page .blog-article-286 .blog-286-section{margin:22px 0 30px;}
body.blog-page .blog-article-286 .blog-286-subtitle{width:100%;margin:0 0 12px;text-align:center !important;text-indent:0 !important;}
body.blog-page .blog-article-286 .blog-286-subtitle strong{display:inline-block;text-align:center !important;}
body.blog-page .blog-article-286 .blog-286-gallery{width:100%;max-width:740px;margin:0 auto;display:grid;grid-template-columns:repeat(4,170px);gap:10px;justify-content:center;align-items:center;}
body.blog-page .blog-article-286 .blog-286-gallery a{display:block;margin:0 !important;padding:0 !important;line-height:0;text-align:center;}
body.blog-page .blog-article-286 .blog-286-gallery-thumb{grid-column:span 1;}
body.blog-page .blog-article-286 .blog-286-gallery-wide{grid-column:1/-1;width:100%;}
body.blog-page .blog-article-286 .blog-286-gallery img{display:block !important;margin:0 auto !important;max-height:none !important;object-fit:contain;}
body.blog-page .blog-article-286 .blog-286-gallery-thumb img{width:170px !important;height:auto !important;max-width:170px !important;}
body.blog-page .blog-article-286 .blog-286-gallery-wide img{width:auto !important;max-width:100% !important;height:auto !important;}
@media (max-width:780px){body.blog-page .blog-article-286 .blog-286-gallery{grid-template-columns:repeat(2,170px);max-width:360px;}body.blog-page .blog-article-286 .blog-286-gallery-wide{grid-column:1/-1;}}
@media (max-width:390px){body.blog-page .blog-article-286 .blog-286-gallery{grid-template-columns:170px;max-width:170px;}}

