/* Lobios Rutas 1.7.3 — integración visual pública.
 * Mantiene las clases históricas para compatibilidad con templates y shortcodes.
 */
:root{
  --nk-route-ink:#111111;
  --nk-route-dark:#0B0B0B;
  --nk-route-cream:#F4F1E8;
  --nk-route-soft:#E4E4E4;
  --nk-route-muted:#6B6864;
  --nk-route-accent:#75C5DE;
  --nk-route-line:rgba(17,17,17,.18);
  --nk-route-line-strong:rgba(17,17,17,.34);
}

.lobios-routes-public{
  background:transparent;
  color:var(--nk-route-ink);
  font-family:"Inter",sans-serif;
}

.lobios-route-page,
.lobios-routes-archive{
  width:min(1600px,calc(100% - 80px));
  margin:0 auto;
  padding:64px 0 100px;
  color:var(--nk-route-ink);
  font-family:"Inter",sans-serif;
}

.lobios-route-page *,
.lobios-routes-archive *{
  box-sizing:border-box;
}

/* ==========================================================
   FICHA — CABECERA EDITORIAL
   ========================================================== */

.lobios-route-hero{
  display:block;
  margin:0 0 44px;
  padding:0;
  border-top:1px solid var(--nk-route-line);
  border-bottom:1px solid var(--nk-route-line);
  background:transparent;
}

.lobios-route-hero--with-cover{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
  align-items:stretch;
}

.lobios-route-cover{
  min-width:0;
  overflow:hidden;
  background:var(--nk-route-soft);
}

.lobios-route-cover img{
  display:block;
  width:100%;
  height:100%;
  min-height:480px;
  max-height:680px;
  object-fit:cover;
}

.lobios-route-hero__content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:clamp(32px,5vw,72px);
}

.lobios-route-hero:not(.lobios-route-hero--with-cover) .lobios-route-hero__content{
  max-width:980px;
  padding-left:0;
  padding-right:0;
}

.lobios-route-hero h2{
  margin:18px 0 18px;
  color:var(--nk-route-ink);
  font:inherit;
  font-size:clamp(36px,4.5vw,68px);
  font-weight:500;
  line-height:.96;
  letter-spacing:-.055em;
}

.lobios-route-lead{
  max-width:720px;
  margin:0;
  color:var(--nk-route-ink);
  font-size:18px;
  line-height:1.55;
}

.lobios-route-breadcrumb{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:0;
  color:var(--nk-route-muted);
  font-size:12px;
  line-height:1.4;
}

.lobios-route-breadcrumb a,
.lobios-card-link{
  color:var(--nk-route-ink);
  font-weight:500;
  text-decoration:none;
}

.lobios-route-breadcrumb a{
  border-bottom:1px solid var(--nk-route-accent);
}

/* Las antiguas badges se conservan como clases, pero dejan de ser pills. */
.lobios-route-badges{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 16px;
  margin:18px 0 0;
}

.lobios-badge{
  display:inline-block;
  padding:0 0 3px;
  border:0;
  border-bottom:1px solid var(--nk-route-accent);
  border-radius:0;
  background:transparent;
  color:var(--nk-route-muted);
  font-size:11px;
  font-weight:500;
  line-height:1.4;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.lobios-badge--difficulty{
  border-bottom-color:var(--nk-route-line-strong);
  background:transparent;
  color:var(--nk-route-ink);
}

.lobios-badge--status{
  background:transparent;
}

.lobios-status-cerrada,
.lobios-status-no-recomendable{
  border-bottom-color:var(--nk-route-ink);
  background:transparent;
  color:var(--nk-route-ink);
}

/* ==========================================================
   ACCIONES
   ========================================================== */

.lobios-route-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-top:28px;
}

.lobios-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:11px 18px;
  border:1px solid var(--nk-route-ink);
  border-radius:3px;
  background:var(--nk-route-ink);
  color:var(--nk-route-cream)!important;
  font:inherit;
  font-size:14px;
  font-weight:500;
  line-height:1;
  text-decoration:none!important;
  cursor:pointer;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,opacity .2s ease;
}

.lobios-button--secondary{
  background:transparent;
  color:var(--nk-route-ink)!important;
}

.lobios-button--ghost{
  min-height:auto;
  padding:5px 0 3px;
  border:0;
  border-bottom:1px solid var(--nk-route-accent);
  border-radius:0;
  background:transparent;
  color:var(--nk-route-ink)!important;
}

.lobios-button:focus-visible,
.lobios-card-link:focus-visible,
.lobios-route-breadcrumb a:focus-visible,
.lobios-route-card h2 a:focus-visible,
.lobios-route-card h3 a:focus-visible,
.lobios-route-card__image:focus-visible,
.lobios-route-filters input:focus-visible,
.lobios-route-filters select:focus-visible,
.lobios-routes-archive .page-numbers:focus-visible{
  outline:2px solid var(--nk-route-accent);
  outline-offset:3px;
}

@media (hover:hover) and (pointer:fine){
  .lobios-button:hover{
    background:transparent;
    color:var(--nk-route-ink)!important;
  }

  .lobios-button--secondary:hover{
    background:var(--nk-route-ink);
    color:var(--nk-route-cream)!important;
  }

  .lobios-button--ghost:hover,
  .lobios-card-link:hover,
  .lobios-route-breadcrumb a:hover{
    opacity:.65;
  }
}

/* ==========================================================
   ESTADO / CONTENIDO / RETÍCULA
   ========================================================== */

.lobios-route-alert{
  margin:0 0 36px;
  padding:10px 0 10px 18px;
  border:0;
  border-left:3px solid var(--nk-route-accent);
  border-radius:0;
  background:transparent;
  color:var(--nk-route-ink);
  line-height:1.5;
}

.lobios-route-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,340px);
  gap:clamp(36px,5vw,80px);
  align-items:start;
}

.lobios-route-main,
.lobios-route-sidebar{
  min-width:0;
}

.lobios-route-sidebar{
  position:sticky;
  top:32px;
}

.lobios-route-map{
  width:100%;
  height:min(62vh,620px);
  min-height:420px;
  border:1px solid var(--nk-route-line);
  border-radius:0;
  overflow:hidden;
  background:var(--nk-route-soft);
}

.lobios-route-map:focus-visible{
  outline:2px solid var(--nk-route-accent);
  outline-offset:3px;
}

.lobios-map-unavailable{
  margin:0;
  padding:22px 0;
  border-top:1px solid var(--nk-route-line);
  border-bottom:1px solid var(--nk-route-line);
  border-radius:0;
  background:transparent;
  color:var(--nk-route-muted);
}

.lobios-route-content,
.lobios-route-section{
  margin-top:44px;
  color:var(--nk-route-ink);
  font-size:17px;
  line-height:1.68;
}

.lobios-route-content{
  max-width:850px;
}

.lobios-route-content > *:first-child,
.lobios-route-section > *:first-child{
  margin-top:0;
}

.lobios-route-content > *:last-child,
.lobios-route-section > *:last-child{
  margin-bottom:0;
}

.lobios-route-content h2,
.lobios-route-section h2{
  margin:0 0 22px;
  font:inherit;
  font-size:clamp(30px,3vw,46px);
  font-weight:500;
  line-height:1.04;
  letter-spacing:-.04em;
}

.lobios-route-content h3,
.lobios-route-section h3{
  font:inherit;
  font-size:24px;
  font-weight:500;
  line-height:1.15;
  letter-spacing:-.025em;
}

.lobios-route-content a,
.lobios-route-section a{
  color:inherit;
  text-decoration-line:underline;
  text-decoration-color:var(--nk-route-accent);
  text-decoration-thickness:1.5px;
  text-underline-offset:4px;
}

.lobios-route-content img{
  max-width:100%;
  height:auto;
  border-radius:0;
}

/* ==========================================================
   DATOS TÉCNICOS
   ========================================================== */

.lobios-route-facts{
  margin:0;
  padding:0;
  border:0;
  border-top:1px solid var(--nk-route-line);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.lobios-route-facts h2{
  margin:0;
  padding:18px 0 16px;
  border-bottom:1px solid var(--nk-route-line);
  font:inherit;
  font-size:24px;
  font-weight:500;
  line-height:1.1;
  letter-spacing:-.025em;
}

.lobios-route-facts dl{
  margin:0;
}

.lobios-route-facts dl div{
  display:grid;
  grid-template-columns:minmax(110px,.9fr) minmax(0,1.1fr);
  gap:18px;
  padding:12px 0;
  border-bottom:1px solid var(--nk-route-line);
}

.lobios-route-facts dt{
  color:var(--nk-route-muted);
  font-size:13px;
  font-weight:400;
}

.lobios-route-facts dd{
  margin:0;
  font-size:14px;
  font-weight:500;
  text-align:right;
}

.lobios-route-reviewed{
  margin:14px 0 0;
  padding:0;
  color:var(--nk-route-muted);
  font-size:12px;
  line-height:1.5;
}

/* ==========================================================
   POI / GALERÍA / AVISO DE INDEPENDENCIA
   ========================================================== */

.lobios-poi-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:32px;
  row-gap:0;
  border-top:1px solid var(--nk-route-line);
}

.lobios-poi{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:16px 0;
  border:0;
  border-bottom:1px solid var(--nk-route-line);
  border-radius:0;
  background:transparent;
}

.lobios-poi h3,
.lobios-poi p{
  margin:0;
}

.lobios-poi h3{
  font-size:17px;
}

.lobios-poi p{
  color:var(--nk-route-muted);
  font-size:12px;
}

.lobios-route-gallery{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.lobios-route-gallery img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:0;
}

.lobios-route-disclaimer{
  margin-top:56px;
  padding:20px 0 0;
  border-top:1px solid var(--nk-route-line);
  border-radius:0;
  background:transparent;
  color:var(--nk-route-muted);
  font-size:12px;
  line-height:1.55;
}

/* ==========================================================
   ARCHIVO / FILTROS
   ========================================================== */

.lobios-archive-header{
  max-width:960px;
  margin:0 0 52px;
  text-align:left;
}

.lobios-archive-header h1{
  margin:10px 0 18px;
  color:var(--nk-route-ink);
  font:inherit;
  font-size:clamp(58px,8vw,120px);
  font-weight:500;
  line-height:.9;
  letter-spacing:-.065em;
}

.lobios-archive-header > p:last-child{
  max-width:760px;
  margin:0;
  font-size:17px;
  line-height:1.6;
}

.lobios-eyebrow{
  margin:0;
  color:var(--nk-route-muted);
  font-size:12px;
  font-weight:500;
  line-height:1.4;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.lobios-route-filters{
  display:grid;
  grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto;
  gap:14px 20px;
  align-items:end;
  margin:0 0 44px;
  padding:20px 0;
  border:0;
  border-top:1px solid var(--nk-route-line);
  border-bottom:1px solid var(--nk-route-line);
  border-radius:0;
  background:transparent;
}

.lobios-route-filters label span{
  display:block;
  margin:0 0 7px;
  color:var(--nk-route-muted);
  font-size:12px;
  font-weight:500;
  line-height:1.3;
}

.lobios-route-filters input,
.lobios-route-filters select{
  width:100%;
  min-height:42px;
  padding:8px 10px;
  border:1px solid var(--nk-route-line-strong);
  border-radius:3px;
  background:transparent;
  color:var(--nk-route-ink);
  font:inherit;
  font-size:14px;
}

/* ==========================================================
   LISTADO — RETÍCULA EDITORIAL, NO CARDS
   ========================================================== */

.lobios-route-grid{
  display:grid;
  grid-template-columns:repeat(var(--lobios-columns,3),minmax(0,1fr));
  gap:48px 24px;
}

.lobios-route-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:18px 0 0;
  border:0;
  border-top:1px solid var(--nk-route-line);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}

.lobios-route-card__image{
  display:block;
  width:100%;
  aspect-ratio:16/10;
  margin:0;
  overflow:hidden;
  background:var(--nk-route-soft);
  line-height:0;
}

.lobios-route-card__image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s ease,opacity .3s ease;
}

.lobios-route-placeholder{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  color:var(--nk-route-muted);
  font-size:52px;
}

.lobios-route-card__body{
  display:flex;
  flex:1;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
  padding:18px 0 0;
}

.lobios-route-card h2,
.lobios-route-card h3{
  margin:10px 0 10px;
  color:var(--nk-route-ink);
  font:inherit;
  font-size:clamp(22px,2vw,30px);
  font-weight:500;
  line-height:1.08;
  letter-spacing:-.03em;
}

.lobios-route-card h2 a,
.lobios-route-card h3 a{
  color:inherit;
  text-decoration:none;
}

.lobios-route-card p{
  margin:0;
  color:var(--nk-route-ink);
  font-size:15px;
  line-height:1.55;
}

.lobios-route-card__facts{
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  width:100%;
  margin:20px 0 18px;
  padding:13px 0;
  border-top:1px solid var(--nk-route-line);
  border-bottom:1px solid var(--nk-route-line);
}

.lobios-route-card__facts div{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.lobios-route-card__facts dt{
  color:var(--nk-route-muted);
  font-size:10px;
  font-weight:500;
  line-height:1.3;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.lobios-route-card__facts dd{
  margin:0;
  font-size:14px;
  font-weight:500;
}

.lobios-card-link{
  display:inline-flex;
  align-items:center;
  margin-top:auto;
  padding-bottom:3px;
  border-bottom:1px solid var(--nk-route-accent);
  font-size:14px;
}

.lobios-empty{
  margin:0;
  padding:34px 0;
  border-top:1px solid var(--nk-route-line);
  border-bottom:1px solid var(--nk-route-line);
  border-radius:0;
  background:transparent;
  text-align:left;
}

.lobios-empty h2{
  margin:0 0 8px;
  font:inherit;
  font-size:28px;
  font-weight:500;
  letter-spacing:-.03em;
}

.lobios-empty p{
  margin:0;
  color:var(--nk-route-muted);
}

.lobios-routes-archive .navigation.pagination{
  margin:44px 0 0;
}

.lobios-routes-archive .nav-links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  padding-top:16px;
  border-top:1px solid var(--nk-route-line);
}

.lobios-routes-archive .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  min-height:34px;
  padding:5px 8px;
  border:1px solid transparent;
  color:var(--nk-route-ink);
  font-size:13px;
  text-decoration:none;
}

.lobios-routes-archive .page-numbers.current{
  border-color:var(--nk-route-ink);
}

@media (hover:hover) and (pointer:fine){
  .lobios-route-card:hover .lobios-route-card__image img{
    transform:scale(1.025);
    opacity:.94;
  }

  .lobios-route-card h2 a:hover,
  .lobios-route-card h3 a:hover{
    opacity:.68;
  }
}

/* ==========================================================
   MÓVIL — BREAKPOINT PRINCIPAL DEL PROYECTO
   ========================================================== */

@media (max-width:767px){
  .lobios-route-page,
  .lobios-routes-archive{
    width:calc(100% - 40px);
    padding:38px 0 64px;
  }

  .lobios-route-hero--with-cover{
    grid-template-columns:1fr;
  }

  .lobios-route-cover img{
    min-height:0;
    max-height:none;
    aspect-ratio:16/10;
  }

  .lobios-route-hero__content,
  .lobios-route-hero:not(.lobios-route-hero--with-cover) .lobios-route-hero__content{
    padding:26px 0 30px;
  }

  .lobios-route-hero--with-cover .lobios-route-hero__content{
    padding-left:0;
    padding-right:0;
  }

  .lobios-route-hero h2{
    margin-top:14px;
    font-size:clamp(34px,10vw,48px);
  }

  .lobios-route-lead,
  .lobios-archive-header > p:last-child,
  .lobios-route-content,
  .lobios-route-section{
    font-size:16px;
  }

  .lobios-route-actions{
    align-items:stretch;
  }

  .lobios-route-actions .lobios-button:not(.lobios-button--ghost),
  .lobios-route-filters .lobios-button{
    width:100%;
  }

  .lobios-route-layout{
    grid-template-columns:1fr;
    gap:42px;
  }

  .lobios-route-sidebar{
    position:static;
  }

  .lobios-route-map{
    min-height:320px;
    height:52vh;
  }

  .lobios-route-facts dl div{
    grid-template-columns:1fr auto;
    gap:12px;
  }

  .lobios-poi-grid,
  .lobios-route-gallery,
  .lobios-route-filters,
  .lobios-route-grid{
    grid-template-columns:1fr;
  }

  .lobios-route-gallery{
    gap:8px;
  }

  .lobios-archive-header{
    margin-bottom:38px;
  }

  .lobios-archive-header h1{
    font-size:clamp(50px,16vw,74px);
  }

  .lobios-route-filters{
    gap:16px;
    margin-bottom:34px;
  }

  .lobios-route-grid{
    gap:36px;
  }

  .lobios-route-card{
    padding-top:14px;
  }
}

@media (prefers-reduced-motion:reduce){
  .lobios-routes-public *,
  .lobios-route-page *,
  .lobios-routes-archive *{
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important;
  }

  .lobios-route-card:hover .lobios-route-card__image img{
    transform:none;
  }
}
