/*
Theme Name: InfoPeñíscola Portal
Theme URI: https://infopeniscola.com
Author: Jaume Simo Guzmán
Author URI: https://infopeniscola.com
Description: Plantilla turística avanzada para InfoPeñíscola: carrusel home, páginas interiores, recetas, puntos de interés, eventos conectados a lugares y rutas generadas por puntos ordenados e historias con línea temporal, época, zona y lugares relacionados.
Version: 2.0.548
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: infopeniscola
Tags: tourism, travel, recipes, events, routes, custom-post-types, history, timeline, responsive
*/

/* v2.0.438 - selector de ruta a pie o en coche en los mapas */
.ip-map-travel-modes{
  display:none;
  align-items:center;
  gap:3px;
  padding:3px;
  border:1px solid rgba(16,97,106,.16);
  border-radius:999px;
  background:#eef7f7;
}
.ip-map-travel-modes.is-visible{
  display:flex;
}
.ip-map-route-info[hidden]{
  display:none!important;
}
@keyframes ip-directions-button-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(29,160,193,.45)}
  50%{box-shadow:0 0 0 11px rgba(29,160,193,0)}
}
.ip-single-map-shell:not(.has-active-route) [data-single-locate],
.ip-single-map-shell:not(.has-active-route) [data-pharmacy-locate]{
  animation:ip-directions-button-pulse 1.8s ease-in-out infinite;
}
@media (prefers-reduced-motion:reduce){
  .ip-single-map-shell:not(.has-active-route) [data-single-locate],
  .ip-single-map-shell:not(.has-active-route) [data-pharmacy-locate]{
    animation:none;
  }
}
.ip-page-title-line{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.ip-page-title-line .ip-title-lg{
  min-width:0;
}
.ip-page-title-info-button{
  flex:0 0 auto;
  display:inline-grid;
  place-items:center;
  width:38px;
  height:38px;
  padding:0;
  border:2px solid rgba(255,255,255,.72);
  border-radius:50%;
  background:var(--ip-lime);
  color:#fff;
  font:900 1rem/1 Georgia,serif;
  box-shadow:0 10px 28px rgba(7,19,22,.24);
  cursor:pointer;
  transition:transform .2s ease,background-color .2s ease;
}
.ip-page-title-info-button:hover,
.ip-page-title-info-button:focus-visible{
  transform:translateY(-2px);
  background:var(--ip-sea-dark);
  outline:3px solid rgba(255,255,255,.36);
  outline-offset:2px;
}
.ip-event-excerpt-modal[hidden]{display:none!important}
.ip-event-excerpt-modal{
  position:fixed;
  inset:0;
  z-index:2147483400;
  display:grid;
  place-items:center;
  padding:20px;
}
.ip-event-excerpt-backdrop{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:rgba(7,19,22,.78);
  backdrop-filter:blur(8px);
  cursor:pointer;
}
.ip-event-excerpt-dialog{
  position:relative;
  z-index:1;
  width:min(620px,100%);
  max-height:min(80vh,680px);
  overflow:auto;
  padding:clamp(24px,5vw,42px);
  border:1px solid rgba(255,255,255,.65);
  border-radius:8px;
  background:#fff;
  box-shadow:0 34px 100px rgba(0,0,0,.4);
}
.ip-event-excerpt-dialog h2{
  margin:12px 42px 16px 0;
  color:var(--ip-ink);
  font-size:clamp(1.45rem,4vw,2.25rem);
  line-height:1.05;
  letter-spacing:0;
}
.ip-event-excerpt-content{
  color:var(--ip-muted);
  font-size:1rem;
  line-height:1.7;
}
.ip-event-excerpt-content p:last-child{margin-bottom:0}
.ip-event-excerpt-close{
  position:absolute;
  top:14px;
  right:14px;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  padding:0;
  border:0;
  border-radius:50%;
  background:var(--ip-soft);
  color:var(--ip-ink);
  font-size:1.55rem;
  line-height:1;
  cursor:pointer;
}
.ip-event-excerpt-close:hover,
.ip-event-excerpt-close:focus-visible{
  background:var(--ip-lime);
  color:#fff;
  outline:none;
}
body.ip-event-excerpt-open{overflow:hidden}
.ip-event-info-excerpt{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--ip-line);
}
.ip-event-info-excerpt strong{
  display:block;
  margin-bottom:7px;
  color:var(--ip-sea-dark);
  font-size:.78rem;
  font-weight:950;
  text-transform:uppercase;
}
.ip-event-info-excerpt p{
  margin:0;
  color:var(--ip-muted);
  font-size:.9rem;
  line-height:1.55;
}
@media (max-width:640px){
  .ip-page-title-line{align-items:flex-end;gap:8px}
  .ip-page-title-info-button{width:34px;height:34px;font-size:.9rem}
  .ip-event-excerpt-modal{padding:14px}
  .ip-event-excerpt-dialog{max-height:84vh;padding:24px 20px}
}
.ip-map-travel-mode{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:36px;
  padding:7px 10px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--ip-sea-dark);
  font:inherit;
  font-size:.76rem;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
}
.ip-map-travel-mode span{
  font-size:1rem;
  line-height:1;
}
.ip-map-travel-mode.is-active{
  background:var(--ip-lime);
  color:#fff;
  box-shadow:0 5px 14px rgba(29,160,193,.25);
}
.ip-map-popup-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:10px;
}
.leaflet-popup-content .ip-map-popup-place .ip-map-popup-actions .ip-map-popup-button{
  width:100%;
  min-height:36px;
  margin:0;
  padding:8px 9px;
  border:0;
  font:inherit;
  font-size:.72rem;
  line-height:1.1;
  cursor:pointer;
}
.leaflet-popup-content .ip-map-popup-place .ip-map-popup-actions .ip-map-popup-secondary{
  background:var(--ip-sea-dark);
}
@media (max-width:640px){
  .ip-single-map-actions,
  .ip-map-page-main .ip-map-floating-controls{
    max-width:calc(100% - 20px);
    gap:5px!important;
    padding:5px!important;
  }
  .ip-map-travel-mode{
    min-width:38px;
    min-height:38px;
    padding:7px;
    font-size:0;
  }
  .ip-map-travel-mode span{
    font-size:1.05rem;
  }
  .ip-single-locate-button,
  .ip-map-page-main .ip-map-floating-controls .ip-button-lime{
    padding-right:11px!important;
    padding-left:11px!important;
    font-size:.75rem!important;
  }
}

:root{
  --ip-ink:#071316;
  --ip-ink-2:#10282d;
  --ip-muted:#668083;
  --ip-paper:#ffffff;
  --ip-soft:#f3f8f7;
  --ip-cloud:#e4f4f3;
  --ip-sea:#51b8bb;
  --ip-sea-dark:#10616a;
  --ip-aqua:#8de5dc;
  --ip-lime:#1da0c1;
  --ip-sand:#f4ead7;
  --ip-coral:#ff8d6b;
  --ip-line:rgba(7,19,22,.11);
  --ip-line-strong:rgba(7,19,22,.2);
  --ip-radius:26px;
  --ip-radius-lg:40px;
  --ip-radius-sm:16px;
  --ip-shadow:0 28px 90px rgba(7,19,22,.18);
  --ip-shadow-soft:0 14px 48px rgba(7,19,22,.10);
  --ip-container:1180px;
}

/* v2.0.376 - datos editoriales bajo la imagen de los artículos del blog */
.ip-blog-article-image-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:14px;
  padding:14px 16px;
  border:1px solid var(--ip-line);
  border-radius:8px;
  background:#fff;
}
.ip-blog-article-byline{
  display:flex;
  align-items:center;
  gap:8px 20px;
  flex-wrap:wrap;
  color:var(--ip-muted);
  font-size:.84rem;
  line-height:1.4;
}
.ip-blog-article-byline strong,
.ip-blog-article-byline time{
  color:var(--ip-ink);
  font-weight:900;
}
.ip-blog-article-share{
  flex:0 0 auto;
  min-height:40px;
  box-shadow:none;
}
@media (max-width:640px){
  .ip-blog-article-image-meta{
    align-items:stretch;
    flex-direction:column;
    gap:12px;
    padding:13px;
  }
  .ip-blog-article-byline{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
    font-size:.78rem;
  }
  .ip-blog-article-share{
    justify-content:center;
    width:100%;
  }
}

/* v2.0.406 - fullscreen real del mapa individual por encima de la cabecera movil */
html.ip-single-map-fullscreen-open .ip-site-header,
html.ip-single-map-fullscreen-open .ip-map-nearby-tab,
html.ip-single-map-fullscreen-open .ip-whatsapp-float,
html.ip-single-map-fullscreen-open .ip-scroll-top{
  visibility:hidden!important;
  pointer-events:none!important;
}
html.ip-single-map-fullscreen-open body > .ip-single-map-shell.is-fullscreen{
  position:fixed!important;
  inset:0!important;
  z-index:2147483000!important;
  width:100vw!important;
  height:100dvh!important;
  margin:0!important;
  border-radius:0!important;
  transform:none!important;
  isolation:isolate;
}
html.ip-single-map-fullscreen-open body > .ip-single-map-shell.is-fullscreen .ip-map-single{
  width:100%!important;
  height:100dvh!important;
  min-height:100dvh!important;
  margin:0!important;
  border-radius:0!important;
}
html.ip-single-map-fullscreen-open body > .ip-single-map-shell.is-fullscreen .ip-map-fullscreen-button,
html.ip-single-map-fullscreen-open body > .ip-single-map-shell.is-fullscreen .ip-single-map-actions{
  z-index:2147483001!important;
}
@supports not (height:100dvh){
  html.ip-single-map-fullscreen-open body > .ip-single-map-shell.is-fullscreen,
  html.ip-single-map-fullscreen-open body > .ip-single-map-shell.is-fullscreen .ip-map-single{
    height:100vh!important;
    min-height:100vh!important;
  }
}

/* v2.0.420 - tarjetas visuales de alojamientos en la portada */
.ip-home-accommodations .ip-home-accommodation-visual-card{
  display:block;
  aspect-ratio:1/1;
  min-height:0;
  overflow:hidden;
  border-radius:24px;
  background:var(--ip-ink);
}

/* v2.0.421 - tarjetas visuales en archivos por tipo de alojamiento */
.ip-accommodation-type-page .ip-accommodation-type-visual-card{
  display:block;
  min-height:250px;
  overflow:hidden;
  border-radius:24px;
  background:var(--ip-ink);
}
.ip-accommodation-type-page .ip-accommodation-type-visual-card .ip-accommodation-card-main{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  min-height:250px;
}
.ip-accommodation-type-page .ip-accommodation-type-visual-card .ip-accommodation-card-main:before{
  content:attr(data-curtain-label);
}
.ip-accommodation-type-page .ip-accommodation-type-visual-card .ip-card-media.ip-accommodation-card-media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:0;
  aspect-ratio:auto;
}
.ip-accommodation-type-page .ip-accommodation-type-visual-card .ip-card-media.ip-accommodation-card-media:after{
  z-index:1;
}
.ip-accommodation-type-page .ip-accommodation-type-visual-card .ip-accommodation-title-overlay{
  z-index:2;
}
@media (max-width:640px){
  .ip-accommodation-type-page .ip-accommodation-grid,
  .ip-accommodation-type-page .ip-grid.ip-grid-3.ip-accommodation-grid{
    grid-template-columns:1fr!important;
    gap:16px;
  }
  .ip-accommodation-type-page .ip-accommodation-type-visual-card{
    min-height:185px;
    border-radius:18px;
  }
  .ip-accommodation-type-page .ip-accommodation-type-visual-card .ip-accommodation-card-main{
    min-height:185px;
  }
}

/* v2.0.423 - formato rectangular y una columna movil en alojamientos */

/* v2.0.422 - nombre y categoria en tarjetas por tipo de alojamiento */
.ip-accommodation-type-page .ip-accommodation-type-visual-card .ip-accommodation-title-overlay h3{
  font-size:clamp(1.22rem,2vw,1.62rem);
}
.ip-accommodation-type-page .ip-accommodation-type-visual-card .ip-accommodation-title-category{
  display:inline;
  margin-left:.34em;
  font-size:.5em;
  line-height:1;
  vertical-align:super;
}
@media (max-width:640px){
  .ip-accommodation-type-page .ip-accommodation-type-visual-card .ip-accommodation-title-overlay h3{
    max-width:100%;
    font-size:1rem;
    font-size:clamp(.9rem,5cqi,1.08rem);
    line-height:1.08;
    overflow-wrap:anywhere;
    word-break:normal;
    text-wrap:balance;
  }
  .ip-accommodation-type-page .ip-accommodation-type-visual-card .ip-accommodation-title-overlay{
    container-type:inline-size;
    padding-right:14px;
    padding-left:14px;
  }
  .ip-accommodation-type-page .ip-accommodation-type-visual-card .ip-accommodation-title-category{
    white-space:normal;
  }
}

/* v2.0.424 - ajuste movil de nombres largos de alojamientos */

/* v2.0.426 - jerarquia semantica del indice del blog */
.ip-blog-page .ip-blog-list-title{
  margin:0 0 clamp(30px,3vw,42px);
}

/* v2.0.428 - sobre nosotros y politica editorial */
.ip-trust-page .ip-page-hero{
  padding-bottom:clamp(22px,3vw,36px);
}
.ip-trust-intro-section{
  padding-top:clamp(26px,4vw,54px);
}
.ip-trust-layout,
.ip-trust-author-layout{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);
  gap:clamp(28px,5vw,72px);
  align-items:start;
}
.ip-trust-kicker{
  display:block;
  margin-bottom:12px;
  color:var(--ip-sea-dark);
  font-size:.76rem;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ip-trust-copy h2,
.ip-trust-section-head h2,
.ip-trust-author-layout h2{
  max-width:900px;
  margin:0 0 18px;
  color:var(--ip-ink);
  font-size:clamp(1.85rem,4vw,3.6rem);
  line-height:.96;
  text-wrap:balance;
}
.ip-trust-copy p,
.ip-trust-author-layout p{
  max-width:820px;
  color:var(--ip-muted);
  line-height:1.72;
}
.ip-trust-copy .ip-trust-lead{
  color:var(--ip-ink);
  font-size:clamp(1.08rem,1.6vw,1.28rem);
  font-weight:750;
}
.ip-trust-aside,
.ip-trust-contact{
  padding:24px;
  border-left:4px solid var(--ip-lime);
  background:rgba(236,248,248,.72);
}
.ip-trust-aside strong,
.ip-trust-contact > span{
  display:block;
  margin-bottom:10px;
  color:var(--ip-ink);
  font-size:1.08rem;
  font-weight:950;
}
.ip-trust-aside p,
.ip-trust-contact p{
  margin:0;
  color:var(--ip-muted);
  line-height:1.58;
}
.ip-trust-contact a{
  display:inline-block;
  max-width:100%;
  margin-bottom:12px;
  color:var(--ip-sea-dark);
  font-weight:950;
  overflow-wrap:anywhere;
}
.ip-trust-contact .ip-trust-mail-button{
  display:inline-flex;
  width:fit-content;
  min-height:46px;
  margin:0 0 14px;
  color:#fff;
  text-decoration:none;
}
.ip-trust-principles-section,
.ip-editorial-standards-section{
  background:rgba(236,248,248,.48);
}
.ip-trust-section-head{
  margin-bottom:clamp(24px,4vw,42px);
}
.ip-trust-principles,
.ip-editorial-standards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.ip-trust-principles article,
.ip-editorial-standards article{
  min-width:0;
  padding:24px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:8px;
  background:#fff;
  box-shadow:0 14px 34px rgba(7,19,22,.06);
}
.ip-trust-principles article > span{
  display:block;
  margin-bottom:22px;
  color:var(--ip-lime);
  font-size:.78rem;
  font-weight:950;
}
.ip-trust-principles h3,
.ip-editorial-standards h3{
  margin:0 0 10px;
  color:var(--ip-ink);
  font-size:1.22rem;
}
.ip-trust-principles p,
.ip-editorial-standards p{
  margin:0;
  color:var(--ip-muted);
  line-height:1.62;
}
.ip-trust-extra-content{
  max-width:900px;
  line-height:1.72;
}
@media (max-width:900px){
  .ip-trust-layout,
  .ip-trust-author-layout{
    grid-template-columns:1fr;
  }
  .ip-trust-principles,
  .ip-editorial-standards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:640px){
  .ip-trust-principles,
  .ip-editorial-standards{
    grid-template-columns:1fr;
  }
  .ip-trust-principles article,
  .ip-editorial-standards article,
  .ip-trust-aside,
  .ip-trust-contact{
    padding:20px;
  }
}

/* v2.0.429 - columna Nosotros y Legal y contacto editorial */
.ip-footer .ip-footer-grid.ip-footer-grid-refined{
  grid-template-columns:minmax(250px,1.25fr) repeat(4,minmax(135px,.7fr));
}

/* v2.0.430 - FAQs administrables en entradas */
.ip-post-faq-section{
  margin:clamp(24px,3.5vw,38px) 0 8px;
  padding-top:clamp(20px,3vw,30px);
  border-top:1px solid var(--ip-line);
}
.ip-post-faq-section > h2{
  margin:0 0 22px;
  color:var(--ip-ink);
  font-size:clamp(1.65rem,3.2vw,2.65rem);
  line-height:1;
}
.ip-post-faq-list{
  display:grid;
  gap:10px;
}
.ip-post-faq-list details{
  overflow:hidden;
  border:1px solid rgba(16,97,106,.16);
  border-radius:8px;
  background:#fff;
}
.ip-post-faq-list summary{
  position:relative;
  padding:17px 48px 17px 18px;
  color:var(--ip-ink);
  font-weight:950;
  line-height:1.3;
  cursor:pointer;
  list-style:none;
}
.ip-post-faq-list summary::-webkit-details-marker{display:none;}
.ip-post-faq-list summary:after{
  content:"+";
  position:absolute;
  top:50%;
  right:18px;
  transform:translateY(-50%);
  color:var(--ip-sea-dark);
  font-size:1.35rem;
}
.ip-post-faq-list details[open] summary:after{content:"−";}
.ip-post-faq-list details > div{
  padding:0 18px 18px;
}
.ip-post-faq-list p{
  margin:0;
  color:var(--ip-muted);
  line-height:1.65;
}
.ip-post-faq-publication{
  margin:20px 0 0!important;
  padding-top:16px;
  border-top:1px solid var(--ip-line);
  color:var(--ip-muted)!important;
  font-size:.84rem;
  line-height:1.45!important;
}
.ip-post-faq-publication strong{
  color:var(--ip-ink);
}

/* v2.0.431 - enlaces editoriales y cierre de FAQs */
.ip-news-entry-content a{
  color:var(--ip-lime);
  font-weight:850;
  text-decoration-color:currentColor;
  text-decoration-thickness:2px;
  text-underline-offset:3px;
}

/* v2.0.432 - precios de combustible y pase correspondiente a hoy */
.ip-fuel-page .ip-fuel-prices-mini{
  gap:7px;
  margin-top:10px;
}

/* v2.0.436 - precio de POI en hero, informacion util y popup de Parking */
.single-ip_poi .ip-page-hero-card .ip-hero-bottom-right-badge{
  position:absolute;
  right:20px;
  bottom:20px;
  z-index:8;
  display:inline-flex;
  align-items:center;
  max-width:calc(100% - 40px);
  min-height:36px;
  padding:9px 13px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--ip-sea-dark);
  box-shadow:0 12px 30px rgba(7,19,22,.22);
  backdrop-filter:blur(12px);
  font-size:.78rem;
  font-weight:1000;
  line-height:1;
}

/* v2.0.437 - precio en tarjetas del archivo general de POIs */
.ip-poi-list-visual-card .ip-poi-list-price-badge{
  position:absolute;
  right:12px;
  bottom:12px;
  z-index:4;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:44%;
  min-height:30px;
  padding:7px 10px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.70);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--ip-sea-dark);
  box-shadow:0 10px 24px rgba(7,19,22,.18);
  font-size:.68rem;
  font-weight:1000;
  line-height:1;
  text-align:center;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ip-poi-list-visual-card.has-price .ip-news-mini-poi-content{
  max-width:55%;
}
@media (max-width:640px){
  .ip-poi-list-visual-card .ip-poi-list-price-badge{
    right:8px;
    bottom:8px;
    max-width:46%;
    min-height:26px;
    padding:6px 8px;
    font-size:.6rem;
  }
  .ip-poi-list-visual-card.has-price .ip-news-mini-poi-content{
    max-width:54%;
  }
}
.leaflet-popup-content .ip-map-popup-place .ip-map-popup-image{
  position:relative;
}
.leaflet-popup-content .ip-map-popup-place .ip-map-popup-price-badge{
  position:absolute;
  left:10px;
  bottom:10px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  max-width:calc(100% - 20px);
  min-height:27px;
  margin:0;
  padding:6px 9px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--ip-sea-dark);
  box-shadow:0 8px 20px rgba(7,19,22,.20);
  font-size:.68rem;
  font-weight:1000;
  line-height:1;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media (max-width:640px){
  .single-ip_poi .ip-page-hero-card .ip-hero-bottom-right-badge{
    right:14px;
    bottom:14px;
    max-width:calc(100% - 28px);
    min-height:32px;
    padding:8px 11px;
    font-size:.7rem;
  }
}
.ip-fuel-page .ip-fuel-prices-mini em{
  min-height:46px;
  align-items:center;
  padding:9px 11px;
  border:2px solid rgba(29,160,193,.30);
  border-radius:8px;
  background:#fff;
  color:var(--ip-sea-dark);
  box-shadow:0 8px 20px rgba(7,19,22,.07);
  font-size:.8rem;
}
.ip-fuel-page .ip-fuel-prices-mini b{
  padding:5px 8px;
  border-radius:6px;
  background:rgba(29,160,193,.12);
  color:var(--ip-sea-dark);
  font-size:1rem;
  line-height:1;
}
.ip-fuel-page .ip-transport-popup-prices span,
.ip-fuel-page .ip-fuel-popup-prices span,
.ip-transport-map-popup-fuel .ip-transport-popup-prices span{
  border:2px solid rgba(29,160,193,.28)!important;
  background:#fff!important;
  box-shadow:0 7px 18px rgba(7,19,22,.07);
}
.ip-fuel-page .ip-transport-popup-prices strong,
.ip-fuel-page .ip-fuel-popup-prices strong,
.ip-transport-map-popup-fuel .ip-transport-popup-prices strong{
  color:var(--ip-sea-dark)!important;
  font-size:1.08rem!important;
}
.ip-event-program-item{
  position:relative;
}
.ip-event-program-item.is-today{
  margin-top:8px;
  border:2px solid var(--ip-lime);
  background:#fff;
  box-shadow:0 14px 34px rgba(29,160,193,.18);
}
.ip-event-program-today-badge{
  position:absolute;
  top:-12px;
  left:18px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:5px 10px;
  border:2px solid #fff;
  border-radius:999px;
  background:var(--ip-lime);
  color:#fff;
  box-shadow:0 6px 16px rgba(29,160,193,.28);
  font-size:.68rem;
  font-weight:1000;
  line-height:1;
}
@media (max-width:640px){
  .ip-fuel-page .ip-fuel-prices-mini em{
    min-height:42px;
  }
  .ip-event-program-item.is-today{
    margin-top:10px;
  }
  .ip-event-program-today-badge{
    left:14px;
  }
}
.ip-news-entry-content a:hover,
.ip-news-entry-content a:focus-visible{
  color:var(--ip-sea-dark);
}
@media (max-width:1024px){
  .ip-footer .ip-footer-grid.ip-footer-grid-refined{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:640px){
  .ip-footer .ip-footer-grid.ip-footer-grid-refined{
    grid-template-columns:1fr;
  }
  .ip-trust-contact .ip-trust-mail-button{
    width:100%;
    justify-content:center;
  }
}
@media (max-width:640px){
  .ip-blog-page .ip-blog-list-title{
    margin-bottom:24px;
  }
}
.ip-home-accommodations .ip-home-accommodation-visual-card .ip-accommodation-card-main{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  min-height:0;
}
.ip-home-accommodations .ip-home-accommodation-visual-card .ip-accommodation-card-main:before{
  content:attr(data-curtain-label);
}
.ip-home-accommodations .ip-home-accommodation-visual-card .ip-card-media.ip-accommodation-card-media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:0;
  aspect-ratio:auto;
}
.ip-home-accommodations .ip-home-accommodation-visual-card .ip-card-media.ip-accommodation-card-media:after{
  z-index:1;
}
.ip-home-accommodations .ip-home-accommodation-visual-card .ip-accommodation-media-chip{
  display:inline-flex!important;
  left:auto;
  right:12px;
  top:12px;
  z-index:4;
  max-width:calc(100% - 24px);
  background:rgba(255,255,255,.94);
  color:var(--ip-ink);
}
.ip-home-accommodations .ip-home-accommodation-visual-card .ip-accommodation-title-overlay{
  z-index:2;
}
@media (max-width:640px){
  .ip-home-accommodations .ip-home-accommodation-visual-card{
    border-radius:18px;
  }
  .ip-home-accommodations .ip-home-accommodation-visual-card .ip-accommodation-media-chip{
    top:8px;
    right:8px;
    max-width:calc(100% - 16px);
  }
}

/* v2.0.411 - carrusel de portada sin esquinas inferiores redondeadas */
.home .ip-hero,
.front-page .ip-hero{
  border-radius:0!important;
}

/* v2.0.415 - elevar la solapa fija para no cubrir otros accesos flotantes */
.ip-map-nearby-tab{
  bottom:90px!important;
}
@media (max-width:640px){
  .ip-map-nearby-tab{
    bottom:calc(84px + env(safe-area-inset-bottom))!important;
  }
}

/* v2.0.416 - lugares cercanos con la estetica visual de Te puede interesar */
.ip-poi-nearby-card.ip-news-mini-poi-card{
  display:block;
  min-height:250px;
  border-radius:24px;
  background:var(--ip-ink);
}
.ip-poi-nearby-card.ip-news-mini-poi-card .ip-poi-nearby-media{
  min-height:250px;
  height:100%;
  aspect-ratio:auto;
}
.ip-poi-nearby-card.ip-news-mini-poi-card .ip-poi-nearby-distance{
  z-index:4;
}
.ip-poi-nearby-card.ip-news-mini-poi-card .ip-news-mini-poi-content{
  z-index:2;
}
@media (max-width:640px){
  .ip-poi-nearby-card.ip-news-mini-poi-card,
  .ip-poi-nearby-card.ip-news-mini-poi-card .ip-poi-nearby-media{
    min-height:185px;
  }
}

/* v2.0.417 - POIs de portada con la estetica de Te puede interesar */
.ip-home-poi-card.ip-news-mini-poi-card{
  display:block;
  min-height:0;
  aspect-ratio:1/1;
  border-radius:24px;
  background:var(--ip-ink);
}
.ip-home-poi-card.ip-news-mini-poi-card .ip-home-poi-media{
  width:100%;
  min-height:0;
  height:100%;
}
.ip-home-poi-card.ip-news-mini-poi-card .ip-home-poi-type{
  z-index:4;
}
.ip-home-poi-card.ip-news-mini-poi-card .ip-news-mini-poi-content{
  z-index:2;
}
@media (max-width:640px){
  .ip-home-poi-card.ip-news-mini-poi-card{
    min-height:0;
    border-radius:20px;
  }
  .ip-home-poi-card.ip-news-mini-poi-card .ip-home-poi-media{
    min-height:0;
  }
}

/* v2.0.418 - listado general de POIs con tarjetas visuales */
.ip-poi-list-visual-card.ip-news-mini-poi-card{
  display:block;
  min-height:250px;
  overflow:hidden;
  border-radius:24px;
  background:var(--ip-ink);
}
.ip-poi-list-visual-card .ip-poi-list-visual-link{
  position:relative;
  display:block;
  width:100%;
  min-height:250px;
  height:100%;
}
.ip-poi-list-visual-card .ip-card-media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  aspect-ratio:auto;
}
.ip-poi-list-visual-card .ip-card-media img,
.ip-poi-list-visual-card .ip-poi-card-carousel{
  width:100%;
  height:100%;
}
.ip-poi-list-type-badge{
  position:absolute;
  top:12px;
  right:12px;
  z-index:4;
  display:inline-flex;
  align-items:center;
  max-width:calc(100% - 24px);
  min-height:30px;
  padding:7px 10px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--ip-sea-dark);
  box-shadow:0 10px 24px rgba(7,19,22,.14);
  font-size:.7rem;
  font-weight:950;
  line-height:1;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media (max-width:640px){
  .ip-poi-list-visual-card.ip-news-mini-poi-card,
  .ip-poi-list-visual-card .ip-poi-list-visual-link{
    min-height:185px;
  }
  .ip-poi-list-type-badge{top:8px;right:8px;max-width:calc(100% - 16px);min-height:25px;padding:6px 8px;font-size:.58rem}
}

/* v2.0.419 - paginacion unificada y accesible para el listado de POIs */
.ip-poi-pagination-wrap{
  display:flex;
  width:max-content;
  max-width:100%;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:7px;
  margin:clamp(28px,4vw,44px) auto 0;
  padding:9px;
  border:1px solid var(--ip-line);
  border-radius:8px;
  background:#fff;
  box-shadow:0 16px 40px rgba(7,19,22,.09);
}
.ip-poi-pagination-wrap .page-numbers{
  display:inline-flex;
  min-width:42px;
  height:42px;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin:0;
  padding:0 13px;
  border:1px solid var(--ip-line);
  border-radius:6px;
  background:var(--ip-soft);
  color:var(--ip-ink);
  font-size:.86rem;
  font-weight:900;
  line-height:1;
  text-decoration:none;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.ip-poi-pagination-wrap a.page-numbers:hover,
.ip-poi-pagination-wrap a.page-numbers:focus-visible{
  transform:translateY(-2px);
  border-color:var(--ip-lime);
  background:#fff;
  outline:none;
}
.ip-poi-pagination-wrap .page-numbers.current{
  border-color:var(--ip-ink);
  background:var(--ip-ink);
  color:#fff;
}
.ip-poi-pagination-wrap .page-numbers.prev,
.ip-poi-pagination-wrap .page-numbers.next{
  background:var(--ip-lime);
  border-color:var(--ip-lime);
}
.ip-poi-pagination-wrap .page-numbers.dots{min-width:24px;padding:0 3px;border-color:transparent;background:transparent;color:var(--ip-muted)}
@media (max-width:640px){
  .ip-poi-pagination-wrap{width:100%;gap:5px;padding:7px}
  .ip-poi-pagination-wrap .page-numbers{min-width:36px;height:38px;padding:0 10px;font-size:.78rem}
  .ip-poi-pagination-wrap .page-numbers.prev,
  .ip-poi-pagination-wrap .page-numbers.next{flex:1 1 120px}
}

/* v2.0.385 - CTAs transaccionales de POI y rutas */
.ip-route-content-button.ip-route-booking-button{
  border-color:var(--ip-coral);
  background:var(--ip-coral);
  color:var(--ip-ink);
  box-shadow:0 12px 28px rgba(255,141,107,.28);
}
.ip-route-content-button.ip-route-booking-button:hover,
.ip-route-content-button.ip-route-booking-button:focus-visible{
  border-color:var(--ip-ink);
  background:var(--ip-ink);
  color:#fff;
}
.ip-poi-nearby-hotels-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.ip-poi-nearby-hotel-item{
  position:relative;
  min-width:0;
}
.ip-poi-nearby-hotel-distance{
  position:absolute;
  top:10px;
  left:10px;
  z-index:5;
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:6px 9px;
  border-radius:999px;
  background:#fff;
  color:var(--ip-sea-dark);
  font-size:.7rem;
  font-weight:950;
  line-height:1;
  box-shadow:0 8px 20px rgba(7,19,22,.2);
}
.ip-poi-nearby-hotels-footer{
  display:flex;
  justify-content:center;
  margin-top:22px;
}
@media (max-width:900px){
  .ip-poi-nearby-hotels-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
}
@media (max-width:640px){
  .ip-poi-nearby-hotel-distance{top:7px;left:7px;min-height:24px;padding:5px 7px;font-size:.62rem;}
  .ip-poi-nearby-hotels-footer .ip-button{width:100%;justify-content:center;}
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--ip-ink);
  background:
    radial-gradient(circle at 12% 0%, rgba(141,229,220,.28), transparent 28vw),
    radial-gradient(circle at 90% 8%, rgba(29,160,193,.18), transparent 30vw),
    var(--ip-soft);
  font-size:16px;
  line-height:1.52;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.no-scroll{overflow:hidden}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:none}
img{max-width:100%;height:auto;display:block}
button,input,textarea,select{font:inherit}

.ip-container{width:min(100% - 40px,var(--ip-container));margin-inline:auto}
.ip-narrow{width:min(100% - 40px,860px);margin-inline:auto}
.ip-page-main{padding:36px 0 90px}
.ip-section{padding:72px 0}
.ip-section-tight{padding:44px 0}
.ip-split{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center}
.ip-grid{display:grid;gap:22px}
.ip-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ip-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ip-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}

.ip-eyebrow,.ip-chip{
  display:inline-flex;align-items:center;gap:8px;
  min-height:30px;padding:7px 10px;border:1px solid var(--ip-line);
  border-radius:999px;background:rgba(255,255,255,.76);color:var(--ip-sea-dark);
  font-size:.76rem;font-weight:850;line-height:1;letter-spacing:-.01em;
  backdrop-filter:blur(14px)
}
.ip-eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ip-sea);box-shadow:0 0 0 4px rgba(81,184,187,.16)}
.ip-chip{background:var(--ip-cloud);color:var(--ip-ink-2)}
.ip-chip.dark{background:rgba(7,19,22,.8);color:#fff;border-color:rgba(255,255,255,.16)}
.ip-chip.lime{background:var(--ip-lime);color:var(--ip-ink)}
.ip-title-xl{font-size:clamp(3.4rem,10.6vw,10.8rem);line-height:.82;letter-spacing:-.095em;margin:0}
.ip-title-lg{font-size:clamp(2.2rem,6vw,5.8rem);line-height:.86;letter-spacing:-.085em;margin:0}
.ip-title-md{font-size:clamp(1.9rem,4.5vw,3.9rem);line-height:.95;letter-spacing:-.065em;margin:0}
.ip-lead{font-size:clamp(1.05rem,1.7vw,1.28rem);color:var(--ip-muted);max-width:720px;margin:18px 0 0}
.ip-muted{color:var(--ip-muted)}
.ip-prose{font-size:1.03rem;color:#203538}
.ip-prose p{margin:0 0 1.1rem}
.ip-prose h2,.ip-prose h3{letter-spacing:-.045em;line-height:1.05;color:var(--ip-ink);margin:2.1rem 0 .8rem}
.ip-prose ul,.ip-prose ol{padding-left:1.15rem}
.ip-prose li{margin:.35rem 0}

.ip-button,.ip-button-ghost,.ip-button-lime{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:46px;padding:13px 18px;border-radius:999px;border:1px solid rgba(7,19,22,.12);
  background:var(--ip-ink);color:#fff;font-size:.9rem;font-weight:900;letter-spacing:-.02em;
  box-shadow:0 16px 34px rgba(7,19,22,.18);cursor:pointer;transition:.22s ease;
}
.ip-button:hover,.ip-button-ghost:hover,.ip-button-lime:hover{transform:translateY(-2px);box-shadow:0 22px 48px rgba(7,19,22,.22)}
.ip-button-ghost{background:#fff;color:var(--ip-ink);box-shadow:none}
.ip-button-lime{background:var(--ip-lime);color:var(--ip-ink)}

/* Header */
.ip-site-header{position:relative;z-index:50}
.ip-header-floating{position:absolute;top:28px;left:0;right:0;color:#fff}
.ip-header-solid{position:sticky;top:0;background:rgba(243,248,247,.9);border-bottom:1px solid var(--ip-line);backdrop-filter:blur(18px)}
.ip-header-inner{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.ip-header-left{display:flex;align-items:center;gap:8px;min-width:0}
.ip-logo{font-weight:950;letter-spacing:-.055em;white-space:nowrap}
.ip-logo a,.ip-logo .custom-logo-link{display:inline-flex;align-items:center;gap:9px;min-height:42px;padding:0 14px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(18px)}
.ip-header-solid .ip-logo a,.ip-header-solid .custom-logo-link{background:#fff;border-color:var(--ip-line);box-shadow:0 10px 26px rgba(7,19,22,.06)}
.ip-logo a:before{content:"";width:18px;height:18px;border-radius:8px 13px 13px 13px;background:linear-gradient(135deg,var(--ip-lime),var(--ip-sea));box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}
.ip-logo span{color:var(--ip-lime)}.ip-header-solid .ip-logo span{color:var(--ip-sea-dark)}
.custom-logo-link img{max-height:34px;width:auto}.ip-header-floating .custom-logo-link img{filter:brightness(0) invert(1)}

.ip-nav-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid rgba(255,255,255,.22);border-radius:14px;background:rgba(255,255,255,.92);color:var(--ip-ink);box-shadow:0 12px 28px rgba(7,19,22,.12);cursor:pointer;font-weight:900;font-size:.87rem;backdrop-filter:blur(16px)}
.ip-header-solid .ip-nav-toggle{border-color:var(--ip-line)}
.ip-burger{width:15px;height:12px;display:flex;flex-direction:column;justify-content:space-between}.ip-burger span{height:2px;background:currentColor;border-radius:999px;transition:.22s ease}.ip-nav-toggle.is-open .ip-burger span:nth-child(1){transform:translateY(5px) rotate(45deg)}.ip-nav-toggle.is-open .ip-burger span:nth-child(2){opacity:0}.ip-nav-toggle.is-open .ip-burger span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.ip-main-nav{display:block;padding:4px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:rgba(255,255,255,.13);backdrop-filter:blur(18px)}
.ip-header-solid .ip-main-nav{background:#fff;border-color:var(--ip-line);box-shadow:0 10px 26px rgba(7,19,22,.06)}
.ip-main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:2px;align-items:center}.ip-main-nav a{display:flex;align-items:center;min-height:36px;padding:0 13px;border-radius:12px;font-size:.82rem;font-weight:850;letter-spacing:-.02em}.ip-main-nav a:hover{background:rgba(255,255,255,.18)}.ip-header-solid .ip-main-nav a:hover{background:var(--ip-cloud)}
.ip-header-actions{display:flex;align-items:center;gap:8px}.ip-header-cta{min-height:40px;padding:0 14px;font-size:.82rem}

/* Hero */
.ip-hero-wrap{padding:14px 0 0;min-height:86vh;display:flex;align-items:flex-start}
.ip-hero{position:relative;width:min(100% - 40px,1240px);margin:0 auto;border-radius:0 0 38px 38px;min-height:clamp(660px,86vh,880px);overflow:hidden;background:#0d2b2e;color:#fff;box-shadow:var(--ip-shadow)}
.ip-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,21,24,.2) 0%,rgba(5,21,24,.06) 30%,rgba(5,21,24,.68) 100%),linear-gradient(90deg,rgba(5,21,24,.62) 0%,rgba(5,21,24,.06) 55%,rgba(5,21,24,.34) 100%);z-index:1}
.ip-hero-slide{position:absolute;inset:0;opacity:0;transform:scale(1.08);transition:opacity 1s ease,transform 7s ease;background-size:cover;background-position:center}.ip-hero-slide.is-active{opacity:1;transform:scale(1)}
.ip-hero-content{position:relative;z-index:2;min-height:inherit;display:grid;align-content:end;padding:118px 56px 56px;gap:30px}.ip-hero-top-tags{position:absolute;top:145px;left:56px;display:flex;gap:8px;flex-wrap:wrap}.ip-hero-title{max-width:860px}.ip-hero-title .ip-title-xl{color:#fff;text-shadow:0 18px 60px rgba(0,0,0,.32)}
.ip-hero-title p{max-width:560px;color:rgba(255,255,255,.86);font-size:1.05rem;margin:22px 0 0}.ip-hero-bottom{display:grid;grid-template-columns:1fr auto;align-items:end;gap:20px;border-top:1px dashed rgba(255,255,255,.38);padding-top:18px}.ip-hero-links{display:flex;gap:22px;flex-wrap:wrap}.ip-hero-links a{color:#fff;text-decoration:underline;text-underline-offset:5px;font-weight:750;font-size:.9rem}.ip-hero-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.ip-hero-progress{position:absolute;z-index:4;left:56px;right:56px;bottom:30px;height:3px;background:rgba(255,255,255,.22);border-radius:999px;overflow:hidden}.ip-hero-progress span{display:block;height:100%;width:0;background:var(--ip-lime);border-radius:inherit}.ip-hero-progress.is-running span{animation:ipHeroProgress var(--ip-hero-interval,6.7s) linear forwards}@keyframes ipHeroProgress{from{width:0}to{width:100%}}
.ip-hero-dots{position:absolute;z-index:4;right:56px;top:145px;display:flex;gap:8px}.ip-hero-dot{width:48px;height:40px;border:1px solid rgba(255,255,255,.2);border-radius:13px;background:rgba(255,255,255,.15);background-size:cover;background-position:center;opacity:.55;cursor:pointer}.ip-hero-dot.is-active{opacity:1;outline:2px solid var(--ip-lime)}

/* Cards */
.ip-card{position:relative;background:rgba(255,255,255,.82);border:1px solid var(--ip-line);border-radius:var(--ip-radius);box-shadow:var(--ip-shadow-soft);overflow:hidden;transition:.22s ease}.ip-card:hover{transform:translateY(-4px);box-shadow:0 22px 60px rgba(7,19,22,.15)}
.ip-card-media{aspect-ratio:16/11;background:var(--ip-cloud);overflow:hidden}.ip-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.ip-card:hover .ip-card-media img{transform:scale(1.05)}
.ip-card-body{padding:20px}.ip-card-kicker{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.ip-card h3{margin:0;font-size:1.18rem;line-height:1.08;letter-spacing:-.04em}.ip-card p{margin:10px 0 0;color:var(--ip-muted);font-size:.92rem}.ip-card-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.ip-card-link{position:absolute;inset:0;z-index:2}.ip-card .ip-button-ghost{position:relative;z-index:3;margin-top:16px;min-height:38px;padding:0 13px;font-size:.78rem}
.ip-feature-card{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center;background:#fff;border:1px solid var(--ip-line);border-radius:22px;padding:14px;box-shadow:var(--ip-shadow-soft)}.ip-feature-card img{width:120px;height:92px;object-fit:cover;border-radius:16px}.ip-feature-card h3{font-size:1rem;margin:0;letter-spacing:-.03em}.ip-feature-card p{font-size:.86rem;margin:6px 0 0;color:var(--ip-muted)}

.ip-section-head{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:28px}.ip-section-head h2{max-width:760px}.ip-section-head p{margin:12px 0 0;color:var(--ip-muted);max-width:600px}.ip-section-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.ip-band{background:var(--ip-ink);color:#fff;border-radius:38px;padding:44px;overflow:hidden;position:relative}.ip-band:after{content:"";position:absolute;inset:-120px -80px auto auto;width:340px;height:340px;background:radial-gradient(circle,rgba(141,229,220,.35),transparent 70%)}.ip-band p{color:rgba(255,255,255,.72)}
.ip-metric-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.ip-metric{padding:18px;border:1px solid var(--ip-line);border-radius:22px;background:#fff}.ip-metric strong{display:block;font-size:1.85rem;line-height:1;letter-spacing:-.06em}.ip-metric span{display:block;color:var(--ip-muted);font-size:.82rem;margin-top:7px}

/* Page hero */
.ip-page-hero{padding:28px 0 18px;position:relative}
.ip-page-hero:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--ip-line),transparent)}
.ip-page-hero-card{position:relative;overflow:visible;border-radius:0;background:transparent;color:var(--ip-ink);min-height:0;display:block;padding:8px 0 26px;box-shadow:none;isolation:isolate;border-bottom:1px solid var(--ip-line)}
.ip-page-hero-card:before{content:"";position:absolute;left:0;bottom:-1px;width:min(320px,48vw);height:3px;border-radius:999px;background:linear-gradient(90deg,var(--ip-sea),var(--ip-lime));z-index:1}
.ip-page-hero-card:after{display:none}
.ip-page-hero-card.has-image{background:transparent}
.ip-page-hero-card.has-image:before{background:linear-gradient(90deg,var(--ip-sea),var(--ip-lime))}
.ip-page-hero-content{position:relative;z-index:2;display:grid;gap:16px;max-width:980px}
.ip-page-title-wrap{display:grid;gap:14px}
.ip-page-breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.78rem;font-weight:850;color:var(--ip-muted);margin-bottom:2px}
.ip-page-breadcrumbs a{color:var(--ip-sea-dark);text-decoration:none;border-bottom:1px solid rgba(16,97,106,.22);transition:.18s ease}
.ip-page-breadcrumbs a:hover{color:var(--ip-ink);border-bottom-color:var(--ip-ink)}
.ip-page-breadcrumbs span:last-child{color:var(--ip-ink-2)}
.ip-breadcrumb-sep{color:rgba(7,19,22,.28)}
.ip-page-hero .ip-title-lg{font-size:clamp(2.45rem,6.2vw,6.15rem);line-height:.88;letter-spacing:-.085em;max-width:1050px;margin:0;text-wrap:balance;color:var(--ip-ink);position:relative;text-shadow:none}
.ip-page-hero .ip-title-lg:after{content:"";display:block;width:86px;height:10px;margin-top:14px;border-radius:999px;background:linear-gradient(90deg,rgba(81,184,187,.22),rgba(29,160,193,.58))}
.ip-page-hero-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:-2px}
.ip-page-meta-chip{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:7px 11px;border:1px solid var(--ip-line);border-radius:999px;background:rgba(255,255,255,.68);color:var(--ip-muted);font-size:.77rem;font-weight:850;line-height:1;box-shadow:0 8px 26px rgba(7,19,22,.04)}
.ip-page-meta-chip:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ip-sea);opacity:.7}
a.ip-page-meta-chip:hover{color:var(--ip-ink);border-color:rgba(81,184,187,.42);background:#fff;transform:translateY(-1px)}
.ip-page-hero .ip-lead{max-width:760px;margin:0;font-size:clamp(1rem,1.4vw,1.18rem);line-height:1.52;color:var(--ip-muted)}
.ip-page-hero p{color:var(--ip-muted)}
.ip-page-hero-image-accent{position:absolute;right:0;bottom:20px;width:min(320px,26vw);aspect-ratio:16/10;border-radius:34px;background-image:linear-gradient(90deg,rgba(243,248,247,.02),rgba(243,248,247,.52)),var(--ip-page-hero-image);background-size:cover;background-position:center;opacity:.28;filter:saturate(1.08);mask-image:linear-gradient(90deg,transparent 0,#000 42%,#000 100%);pointer-events:none;z-index:1}
/* Filters */
.ip-filter-panel{display:grid;grid-template-columns:1.4fr repeat(3,minmax(130px,.5fr));gap:10px;margin:0 0 28px;padding:10px;border:1px solid var(--ip-line);border-radius:24px;background:#fff;box-shadow:0 12px 36px rgba(7,19,22,.06)}
.ip-filter-panel input,.ip-filter-panel select{width:100%;min-height:48px;border:1px solid var(--ip-line);border-radius:16px;background:var(--ip-soft);padding:0 14px;color:var(--ip-ink)}
.ip-filter-panel input:focus,.ip-filter-panel select:focus{outline:2px solid rgba(81,184,187,.28);background:#fff}

/* Single layouts */
.ip-single-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;align-items:start}.ip-single-main,.ip-single-side,.ip-box{background:#fff;border:1px solid var(--ip-line);border-radius:28px;padding:28px;box-shadow:var(--ip-shadow-soft)}.ip-single-side{position:sticky;top:90px}.ip-meta-list{display:grid;gap:10px}.ip-meta-item{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid var(--ip-line);padding:0 0 10px;color:var(--ip-muted);font-size:.92rem}.ip-meta-item strong{color:var(--ip-ink);text-align:right}.ip-hero-image{border-radius:32px;overflow:hidden;margin-bottom:28px;box-shadow:var(--ip-shadow-soft)}.ip-hero-image img{width:100%;max-height:560px;object-fit:cover}.ip-related-poi{display:flex;gap:12px;align-items:center;margin-top:18px;border:1px solid var(--ip-line);border-radius:20px;padding:10px;background:var(--ip-soft)}.ip-related-poi img{width:74px;height:64px;object-fit:cover;border-radius:14px}.ip-related-poi strong{display:block;line-height:1.1}.ip-related-poi span{font-size:.82rem;color:var(--ip-muted)}
.ip-steps{counter-reset:step;display:grid;gap:12px}.ip-step{counter-increment:step;display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start;padding:14px;border:1px solid var(--ip-line);border-radius:20px;background:var(--ip-soft)}.ip-step:before{content:counter(step);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ip-ink);color:#fff;font-weight:950}.ip-ingredient-list{display:grid;gap:8px;padding:0;list-style:none}.ip-ingredient-list li{padding:10px 12px;border:1px solid var(--ip-line);border-radius:14px;background:var(--ip-soft)}

/* Route */
.ip-route-timeline{position:relative;display:grid;gap:14px;margin-top:22px}.ip-route-timeline:before{content:"";position:absolute;left:24px;top:26px;bottom:26px;width:2px;background:var(--ip-line-strong)}.ip-route-stop{position:relative;display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:start}.ip-route-num{position:relative;z-index:1;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--ip-lime);font-weight:950;box-shadow:0 8px 20px rgba(7,19,22,.12)}.ip-route-stop-card{background:#fff;border:1px solid var(--ip-line);border-radius:22px;padding:12px;display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:center}.ip-route-stop-card img{width:96px;height:74px;object-fit:cover;border-radius:16px}.ip-route-stop-card h3{margin:0;font-size:1rem;letter-spacing:-.03em}.ip-route-stop-card p{margin:5px 0 0;color:var(--ip-muted);font-size:.86rem}

/* Map */
.ip-map-section .ip-container{display:grid;gap:18px}
.ip-map-filter-card{background:#fff;border:1px solid var(--ip-line);border-radius:28px;padding:18px;box-shadow:var(--ip-shadow-soft)}
.ip-map-filter-head{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-bottom:16px}
.ip-map-filter-head h2{font-size:clamp(1.35rem,2.6vw,2.25rem);line-height:1;letter-spacing:-.055em;margin:10px 0 0}
.ip-map-filter-panel{display:grid;grid-template-columns:1.35fr repeat(5,minmax(130px,1fr));gap:10px}
.ip-map-filter-panel label{display:grid;gap:6px;font-size:.75rem;font-weight:900;color:var(--ip-muted)}
.ip-map-filter-panel input,.ip-map-filter-panel select{width:100%;min-height:46px;border:1px solid var(--ip-line);border-radius:16px;background:var(--ip-soft);padding:0 13px;color:var(--ip-ink)}
.ip-map-filter-panel input:focus,.ip-map-filter-panel select:focus{outline:2px solid rgba(81,184,187,.28);background:#fff}
.ip-map-shell{position:relative;border-radius:30px;overflow:hidden;box-shadow:var(--ip-shadow-soft);background:var(--ip-cloud)}
.ip-map-floating-controls{position:absolute;z-index:500;right:16px;bottom:16px;left:auto;top:auto;display:flex;gap:10px;align-items:center;max-width:calc(100% - 32px);padding:8px;border:1px solid rgba(255,255,255,.65);border-radius:999px;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);box-shadow:0 14px 36px rgba(7,19,22,.16)}
.ip-map-floating-controls .ip-button-lime{min-height:42px;padding:10px 16px;box-shadow:none;white-space:nowrap}
.ip-map-floating-controls .ip-button-lime:disabled{opacity:.68;cursor:wait;transform:none}
.ip-screen-reader-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.ip-map{height:560px;border-radius:30px;border:1px solid var(--ip-line);overflow:hidden;background:var(--ip-cloud)}
.ip-map-single{height:320px;margin-top:18px}.leaflet-popup-content-wrapper{border-radius:16px}.ip-map-popup strong{display:block;margin-bottom:4px}.ip-map-popup a{display:inline-flex;margin-top:7px;font-weight:850;color:var(--ip-sea-dark)}
.ip-map-popup-rich{min-width:190px}.ip-map-popup-rich img{width:100%;height:92px;object-fit:cover;border-radius:12px;margin-bottom:8px}.ip-map-popup-rich span,.ip-map-popup-rich small{display:block;color:var(--ip-muted);font-size:.78rem;line-height:1.35;margin-top:3px}
.ip-map-summary{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 16px;border:1px solid var(--ip-line);border-radius:18px;background:#fff;color:var(--ip-muted);font-size:.9rem}.ip-map-summary strong{color:var(--ip-ink)}

/* Footer */
.ip-footer{margin-top:70px;background:#173d33;color:#fff}.ip-footer-inner{padding:48px 0 26px}.ip-footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,.65fr);gap:26px}.ip-footer h2{font-size:clamp(3rem,10vw,9rem);line-height:.8;letter-spacing:-.09em;margin:42px 0 26px;color:rgba(255,255,255,.92)}.ip-footer p,.ip-footer a{color:rgba(255,255,255,.72)}.ip-footer h3{font-size:.88rem;margin:0 0 12px}.ip-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}.ip-footer-bottom{display:flex;justify-content:space-between;gap:18px;border-top:1px solid rgba(255,255,255,.18);padding-top:18px;font-size:.8rem;color:rgba(255,255,255,.58)}

/* Utils */
.alignwide,.alignfull{width:100%}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ip-empty{padding:28px;border:1px dashed var(--ip-line-strong);border-radius:24px;background:#fff;color:var(--ip-muted)}

@media (min-width:901px){.ip-nav-toggle{display:none}}
@media (max-width:1024px){.ip-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.ip-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.ip-single-layout{grid-template-columns:1fr}.ip-single-side{position:static}.ip-filter-panel{grid-template-columns:1fr 1fr}.ip-map-filter-panel{grid-template-columns:repeat(3,1fr)}.ip-footer-grid{grid-template-columns:1fr 1fr}.ip-metric-row{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){.ip-header-floating{top:18px}.ip-main-nav{position:fixed;left:20px;right:20px;top:78px;max-height:calc(100vh - 100px);overflow:auto;padding:10px;border-radius:22px;background:rgba(255,255,255,.96);color:var(--ip-ink);box-shadow:var(--ip-shadow);opacity:0;visibility:hidden;transform:translateY(-10px);transition:.22s ease}.ip-main-nav.is-open{opacity:1;visibility:visible;transform:translateY(0)}.ip-main-nav ul{display:grid;gap:3px}.ip-main-nav a{min-height:44px}.ip-header-actions{display:none}.ip-logo{margin-left:auto}.ip-hero{width:100%;border-radius:0 0 30px 30px;min-height:760px}.ip-hero-content{padding:116px 24px 58px}.ip-hero-top-tags{left:24px;right:24px;top:102px}.ip-hero-dots{left:24px;right:auto;top:auto;bottom:82px}.ip-hero-dot{width:38px;height:34px}.ip-hero-bottom{grid-template-columns:1fr}.ip-hero-stats{justify-content:flex-start}.ip-hero-progress{left:24px;right:24px;bottom:30px}.ip-page-hero-card{padding:28px 24px;border-radius:26px;min-height:190px}.ip-page-hero{padding-top:18px}.ip-section{padding:54px 0}.ip-split{grid-template-columns:1fr}.ip-section-head{display:grid}.ip-section-actions{justify-content:flex-start}}
@media (max-width:640px){.ip-container,.ip-narrow{width:min(100% - 28px,var(--ip-container))}.ip-grid-2,.ip-grid-3,.ip-grid-4{grid-template-columns:1fr}.ip-title-xl{font-size:clamp(4.2rem,25vw,7.1rem)}.ip-hero-title p{font-size:1rem}.ip-filter-panel{grid-template-columns:1fr;padding:8px;border-radius:20px}.ip-card-body{padding:18px}.ip-feature-card{grid-template-columns:92px 1fr}.ip-feature-card img{width:92px;height:78px}.ip-single-main,.ip-single-side,.ip-box{padding:20px;border-radius:24px}.ip-route-stop-card{grid-template-columns:1fr}.ip-route-stop-card img{width:100%;height:160px}.ip-route-timeline:before{left:20px}.ip-route-stop{grid-template-columns:40px 1fr}.ip-route-num{width:40px;height:40px}.ip-metric-row{grid-template-columns:1fr}.ip-band{padding:28px;border-radius:28px}.ip-footer-grid{grid-template-columns:1fr}.ip-footer-bottom{display:grid}.ip-map-filter-card{padding:14px;border-radius:24px}.ip-map-filter-head{display:grid}.ip-map-reset{justify-self:start}.ip-map-filter-panel{grid-template-columns:1fr}.ip-map-floating-controls{right:10px;bottom:10px;left:auto;top:auto;display:flex;border-radius:999px}.ip-map-summary{display:grid}.ip-map{height:440px}.ip-page-hero{padding:14px 0 18px}.ip-page-hero-card{padding:24px 20px;min-height:170px;border-radius:24px}.ip-page-hero-top{gap:10px}.ip-page-breadcrumbs{font-size:.72rem}.ip-page-main{padding-bottom:62px}}


/* v2.0.289 ajustes solicitados */
.ip-header-inner{justify-content:space-between}
.ip-header-right{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto;min-width:0}
.ip-main-nav{order:1}
.ip-header-actions{order:2}
.ip-nav-toggle{order:3}
.home .ip-hero-wrap,.front-page .ip-hero-wrap{padding-top:0;min-height:100svh}
.home .ip-hero,.front-page .ip-hero{width:100%;max-width:none;margin:0;border-radius:0 0 38px 38px;min-height:100svh}
@supports not (height:100svh){.home .ip-hero-wrap,.front-page .ip-hero-wrap{min-height:100vh}.home .ip-hero,.front-page .ip-hero{min-height:100vh}}
@media (max-width:900px){.ip-header-right{gap:8px}.ip-nav-toggle{order:1}.ip-main-nav{order:2}.ip-header-actions{display:none}.ip-logo{margin-left:0;margin-right:auto}.home .ip-hero,.front-page .ip-hero{min-height:100svh;border-radius:0 0 30px 30px}.home .ip-hero-wrap,.front-page .ip-hero-wrap{padding-top:0}}

/* v2.0.289 carrusel home: solo contenido real de ip_slide y ajustes móviles */
.ip-hero [hidden]{display:none!important}
.ip-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ip-hero-title{display:grid;gap:0}.ip-hero-title p[hidden]{margin:0}
.home .ip-hero-slide,.front-page .ip-hero-slide{background-position:center center}
@media (max-width:900px){
  .home .ip-hero,.front-page .ip-hero{height:100svh;min-height:640px;max-height:none}
  @supports (height:100dvh){.home .ip-hero,.front-page .ip-hero{height:100dvh}}
  .home .ip-hero-content,.front-page .ip-hero-content{padding:132px 22px calc(64px + env(safe-area-inset-bottom));gap:18px;align-content:end}
  .home .ip-hero-top-tags,.front-page .ip-hero-top-tags{top:96px;left:22px;right:22px;max-width:calc(100% - 44px)}
  .home .ip-hero-dots,.front-page .ip-hero-dots{left:22px;right:22px;top:auto;bottom:34px;display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:3px 0 6px;max-width:calc(100% - 44px)}
  .home .ip-hero-dots::-webkit-scrollbar,.front-page .ip-hero-dots::-webkit-scrollbar{display:none}
  .home .ip-hero-dot,.front-page .ip-hero-dot{flex:0 0 26px;width:26px;height:7px;border-radius:999px;background-image:none!important;background:rgba(255,255,255,.48);border:0;opacity:1;outline:0}
  .home .ip-hero-dot.is-active,.front-page .ip-hero-dot.is-active{background:var(--ip-lime);outline:0}
  .home .ip-hero-progress,.front-page .ip-hero-progress{left:22px;right:22px;bottom:24px;height:2px}
  .home .ip-hero-title,.front-page .ip-hero-title{width:100%;max-width:100%}
  .home .ip-hero-title .ip-title-xl,.front-page .ip-hero-title .ip-title-xl{max-width:100%;font-size:clamp(2.45rem,13.2vw,5rem);line-height:.96;letter-spacing:0;overflow-wrap:anywhere;text-wrap:balance;hyphens:auto}
  .home .ip-hero-title p,.front-page .ip-hero-title p{font-size:clamp(.96rem,4.2vw,1.08rem);line-height:1.42;margin-top:16px;max-width:100%}
  .home .ip-hero-actions .ip-button-lime,.front-page .ip-hero-actions .ip-button-lime{width:auto;max-width:100%;min-height:44px;padding:12px 16px}
}
@media (max-width:420px){
  .home .ip-hero,.front-page .ip-hero{min-height:600px}
  .home .ip-hero-content,.front-page .ip-hero-content{padding-left:18px;padding-right:18px;gap:16px}
  .home .ip-hero-title .ip-title-xl,.front-page .ip-hero-title .ip-title-xl{font-size:clamp(2.15rem,12.4vw,3.9rem)}
  .home .ip-hero-top-tags,.front-page .ip-hero-top-tags{left:18px;right:18px;top:92px}
  .home .ip-hero-dots,.front-page .ip-hero-dots{left:18px;right:18px;max-width:calc(100% - 36px)}
  .home .ip-hero-progress,.front-page .ip-hero-progress{left:18px;right:18px}
}

/* v2.0.289 - mapa móvil e historia */
.ip-map-filter-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.ip-map-filter-toggle{display:none}

.ip-history-layout{position:relative}
.ip-history-rail{position:absolute;left:-18px;top:0;bottom:0;width:4px;border-radius:999px;background:linear-gradient(180deg,var(--ip-sea),var(--ip-lime),var(--ip-coral));opacity:.55}
.ip-history-rail span{position:sticky;top:96px;display:block;width:16px;height:16px;margin-left:-6px;border-radius:50%;background:var(--ip-lime);box-shadow:0 0 0 8px rgba(29,160,193,.22)}
.ip-history-card{overflow:hidden}
.ip-history-media{position:relative}
.ip-history-year-badge{position:absolute;left:14px;top:14px;z-index:2;display:inline-flex;align-items:center;min-height:36px;padding:0 13px;border-radius:999px;background:rgba(7,19,22,.84);color:#fff;font-weight:950;letter-spacing:-.03em;box-shadow:0 10px 24px rgba(7,19,22,.22);backdrop-filter:blur(10px)}
.ip-history-card-note{padding:10px 12px;border-left:3px solid var(--ip-lime);border-radius:12px;background:var(--ip-soft);color:var(--ip-ink)!important;font-weight:750}
.ip-history-feature-band{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:center;margin:0 0 24px;padding:28px;border:1px solid var(--ip-line);border-radius:32px;background:linear-gradient(135deg,#fff 0%,var(--ip-soft) 58%,var(--ip-cloud) 100%);box-shadow:var(--ip-shadow-soft)}
.ip-history-feature-band h3{margin:8px 0 8px;font-size:clamp(1.6rem,3vw,2.6rem);line-height:.96;letter-spacing:-.06em}
.ip-history-feature-band p{margin:0;color:var(--ip-muted)}
.ip-history-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ip-history-mini-grid span{display:grid;place-items:center;min-height:82px;padding:12px;border-radius:20px;background:#fff;border:1px solid var(--ip-line);font-weight:950;text-align:center;box-shadow:0 10px 28px rgba(7,19,22,.06)}
.ip-history-highlight{margin:0 0 24px;padding:24px;border-radius:26px;background:linear-gradient(135deg,var(--ip-soft),#fff);border:1px solid var(--ip-line);box-shadow:0 14px 36px rgba(7,19,22,.06)}
.ip-history-highlight p{margin:8px 0 0;font-size:1.12rem;line-height:1.55;color:var(--ip-ink)}
.ip-history-legacy{margin-top:28px;padding:24px;border-radius:26px;background:var(--ip-soft);border:1px solid var(--ip-line)}
.ip-history-year-panel{display:grid;gap:2px;margin:12px 0 18px;padding:22px;border-radius:24px;background:var(--ip-ink);color:#fff;box-shadow:0 18px 38px rgba(7,19,22,.16)}
.ip-history-year-panel strong{font-size:clamp(2.2rem,6vw,4rem);line-height:.9;letter-spacing:-.08em;color:var(--ip-lime)}
.ip-history-year-panel span{font-weight:850;color:rgba(255,255,255,.82)}

@media (max-width:1024px){.ip-history-feature-band{grid-template-columns:1fr}.ip-history-rail{display:none}}
@media (max-width:640px){.ip-map-filter-actions{justify-content:flex-start}.ip-map-filter-toggle{display:inline-flex}.ip-map-filter-card:not(.is-open) .ip-map-filter-panel{display:none}.ip-map-filter-card.is-open .ip-map-filter-panel{display:grid}.ip-map-filter-head{gap:14px}.ip-history-feature-band{padding:20px;border-radius:24px}.ip-history-mini-grid{grid-template-columns:1fr 1fr}.ip-history-mini-grid span{min-height:64px}.ip-history-year-badge{left:10px;top:10px}.ip-history-highlight,.ip-history-legacy{padding:18px;border-radius:22px}}

/* v2.0.289 - agenda, footer y contenido del carrusel */
.ip-footer-credit a{font-weight:950;text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(255,255,255,.35)}
.ip-footer-heart{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin:0 2px;border-radius:999px;background:var(--ip-lime);color:var(--ip-ink);font-size:.88rem;font-weight:950;box-shadow:0 8px 20px rgba(29,160,193,.22)}
.ip-filter-panel-agenda{grid-template-columns:minmax(220px,1.4fr) minmax(150px,.65fr) minmax(130px,.55fr) minmax(130px,.55fr) auto;align-items:center}
.ip-filter-panel-agenda .ip-button{white-space:nowrap}
.ip-hero-copy{display:grid;gap:18px;max-width:860px;will-change:transform,opacity,filter}
.ip-hero-copy.is-visible .ip-hero-top-tags,
.ip-hero-copy.is-visible .ip-hero-title,
.ip-hero-copy.is-visible .ip-hero-actions{animation:ipHeroCopyIn .72s cubic-bezier(.2,.78,.2,1) both}
.ip-hero-copy.is-visible .ip-hero-title{animation-delay:.06s}
.ip-hero-copy.is-visible .ip-hero-actions{animation-delay:.14s}
@keyframes ipHeroCopyIn{from{opacity:0;transform:translateY(18px);filter:blur(8px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
.ip-hero .ip-hero-top-tags,
.home .ip-hero-top-tags,
.front-page .ip-hero-top-tags{position:static!important;top:auto!important;left:auto!important;right:auto!important;max-width:100%;display:flex;gap:8px;flex-wrap:wrap}
.ip-hero .ip-hero-title{max-width:860px}
.ip-hero .ip-hero-actions{margin-top:2px}
.ip-hero .ip-chip.dark{background:rgba(7,19,22,.68);border-color:rgba(255,255,255,.24);box-shadow:0 14px 38px rgba(0,0,0,.18)}
@media (prefers-reduced-motion:reduce){.ip-hero-copy.is-visible .ip-hero-top-tags,.ip-hero-copy.is-visible .ip-hero-title,.ip-hero-copy.is-visible .ip-hero-actions{animation:none}}
@media (max-width:1024px){.ip-filter-panel-agenda{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.ip-filter-panel-agenda{grid-template-columns:1fr}.ip-hero-copy{gap:14px}.home .ip-hero-actions,.front-page .ip-hero-actions{margin-top:0}}


/* v2.0.289 - logo oficial InfoPeñíscola en cabecera */
.ip-logo-image-link{min-height:54px!important;padding:6px 16px!important;background:rgba(255,255,255,.96)!important;border-color:rgba(255,255,255,.55)!important;box-shadow:0 14px 36px rgba(7,19,22,.14)}
.ip-header-solid .ip-logo-image-link{background:#fff!important;border-color:var(--ip-line)!important;box-shadow:0 10px 26px rgba(7,19,22,.06)}
.ip-logo-image-link:before{display:none!important;content:none!important}
.ip-logo-image{display:block;width:auto;max-width:min(240px,42vw);height:auto;max-height:44px;object-fit:contain;filter:none!important;border-radius:0}
.ip-header-floating .custom-logo-link img{filter:none!important}
.custom-logo-link{min-height:54px!important;padding:6px 16px!important;background:rgba(255,255,255,.96)!important;border-color:rgba(255,255,255,.55)!important;box-shadow:0 14px 36px rgba(7,19,22,.14)}
.ip-header-solid .custom-logo-link{background:#fff!important;border-color:var(--ip-line)!important;box-shadow:0 10px 26px rgba(7,19,22,.06)}
.custom-logo-link img{display:block;max-height:44px!important;width:auto;max-width:min(240px,42vw);object-fit:contain;filter:none!important}
@media (max-width:900px){.ip-logo-image-link,.custom-logo-link{min-height:48px!important;padding:6px 12px!important}.ip-logo-image,.custom-logo-link img{max-height:36px!important;max-width:46vw}.ip-header-inner{min-height:58px}.ip-nav-toggle{min-height:42px}}
@media (max-width:390px){.ip-logo-image,.custom-logo-link img{max-height:32px!important;max-width:50vw}.ip-logo-image-link,.custom-logo-link{padding-left:10px!important;padding-right:10px!important}}


/* v2.0.289 - logo optimizado sin fondo y sin recorte visual */
.ip-logo{display:flex;align-items:center;min-width:0;line-height:1}
.ip-logo-image-link,.custom-logo-link{
  min-height:auto!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.ip-header-solid .ip-logo-image-link,.ip-header-solid .custom-logo-link{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.ip-logo-image-link:before,.custom-logo-link:before{display:none!important;content:none!important}
.ip-logo-image,.custom-logo-link img{
  display:block;
  width:auto;
  height:auto;
  max-width:min(310px,36vw);
  max-height:76px!important;
  object-fit:contain;
  filter:drop-shadow(0 10px 20px rgba(0,0,0,.18))!important;
  border-radius:0;
}
.ip-header-solid .ip-logo-image,.ip-header-solid .custom-logo-link img{filter:none!important}
.ip-header-inner{min-height:86px}
.ip-header-floating{top:20px}
@media (max-width:900px){
  .ip-header-inner{min-height:64px}
  .ip-logo-image,.custom-logo-link img{max-width:54vw;max-height:50px!important}
  .ip-nav-toggle{min-height:42px;padding-inline:12px}
  .ip-header-floating{top:14px}
}
@media (max-width:390px){
  .ip-logo-image,.custom-logo-link img{max-width:57vw;max-height:44px!important}
}

/* v2.0.289 - logo legible sobre slide, barra sticky blanca y marca del footer */
.ip-footer-brand{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:.02em;
}
.ip-footer-brand small{
  font-size:.34em;
  line-height:1;
  letter-spacing:-.075em;
  color:var(--ip-aqua);
  font-weight:950;
}
.ip-footer-coordinates{
  display:grid;
  justify-items:start;
  width:100%;
  max-width:100%;
  margin:42px 0 26px;
  color:rgba(255,255,255,.92);
  font-size:clamp(2rem,7vw,5.8rem)!important;
  line-height:.92!important;
  letter-spacing:0!important;
  text-align:left;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:normal;
}
.ip-footer-coordinates>span{
  grid-area:1/1;
  display:block;
  transform-origin:left center;
  will-change:opacity,transform;
}
.ip-footer-coordinate-value{
  animation:ipFooterCoordinateValue 4s cubic-bezier(.4,0,.2,1) infinite;
}
.ip-footer-coordinate-code{
  opacity:0;
  animation:ipFooterCoordinateCode 4s cubic-bezier(.4,0,.2,1) infinite;
}
@keyframes ipFooterCoordinateValue{
  0%,42%{opacity:1;transform:translate3d(0,0,0) scale(1)}
  50%,92%{opacity:0;transform:translate3d(0,-.18em,0) scale(.985)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
@keyframes ipFooterCoordinateCode{
  0%,42%{opacity:0;transform:translate3d(0,.18em,0) scale(.985)}
  50%,92%{opacity:1;transform:translate3d(0,0,0) scale(1)}
  100%{opacity:0;transform:translate3d(0,.18em,0) scale(.985)}
}
@media (max-width:640px){
  .ip-footer-coordinates{
    font-size:clamp(1rem,5.8vw,1.55rem)!important;
  }
}
@media (prefers-reduced-motion:reduce){
  .ip-footer-coordinate-value{animation:none;opacity:1;transform:none;will-change:auto}
  .ip-footer-coordinate-code{display:none;animation:none;will-change:auto}
}

.ip-logo-image-white{display:none!important}
.ip-header-floating:not(.ip-is-scrolled) .ip-logo-image-color{display:none!important}
.ip-header-floating:not(.ip-is-scrolled) .ip-logo-image-white{display:block!important}
.ip-header-solid .ip-logo-image-color,
.ip-header-floating.ip-is-scrolled .ip-logo-image-color{display:block!important}
.ip-header-solid .ip-logo-image-white,
.ip-header-floating.ip-is-scrolled .ip-logo-image-white{display:none!important}

.ip-site-header{transition:background-color .24s ease,box-shadow .24s ease,border-color .24s ease,top .24s ease,color .24s ease}
.ip-header-floating{transition:background-color .24s ease,box-shadow .24s ease,border-color .24s ease,top .24s ease,color .24s ease}
.ip-header-floating.ip-is-scrolled{
  position:fixed;
  top:0;
  left:0;
  right:0;
  color:var(--ip-ink);
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(7,19,22,.10);
  box-shadow:0 16px 46px rgba(7,19,22,.12);
  -webkit-backdrop-filter:blur(20px);
  backdrop-filter:blur(20px);
}
.admin-bar .ip-header-floating.ip-is-scrolled{top:32px}
.ip-header-floating.ip-is-scrolled .ip-header-inner{min-height:76px}
.ip-header-floating.ip-is-scrolled .ip-main-nav{
  background:rgba(243,248,247,.86);
  border-color:var(--ip-line);
  color:var(--ip-ink);
  box-shadow:none;
}
.ip-header-floating.ip-is-scrolled .ip-main-nav a:hover{background:var(--ip-cloud)}
.ip-header-floating.ip-is-scrolled .ip-nav-toggle{border-color:var(--ip-line);box-shadow:0 10px 24px rgba(7,19,22,.08)}

.ip-logo-image-link{position:relative;display:inline-flex;align-items:center;justify-content:flex-start;min-width:0!important}
.ip-logo-image,.custom-logo-link img{
  max-width:min(350px,36vw);
  max-height:88px!important;
  filter:drop-shadow(0 15px 30px rgba(0,0,0,.30))!important;
}
.ip-header-floating:not(.ip-is-scrolled) .ip-logo-image-white{
  filter:drop-shadow(0 16px 34px rgba(0,0,0,.42)) drop-shadow(0 0 1px rgba(0,0,0,.18))!important;
}
.ip-header-floating:not(.ip-is-scrolled) .custom-logo-link img{
  filter:brightness(0) invert(1) drop-shadow(0 16px 34px rgba(0,0,0,.42))!important;
}
.ip-header-solid .ip-logo-image,
.ip-header-solid .custom-logo-link img,
.ip-header-floating.ip-is-scrolled .ip-logo-image,
.ip-header-floating.ip-is-scrolled .custom-logo-link img{
  max-width:min(270px,29vw);
  max-height:58px!important;
  filter:none!important;
}
.ip-header-solid .ip-header-inner{min-height:76px}

@media (max-width:900px){
  .admin-bar .ip-header-floating.ip-is-scrolled{top:46px}
  .ip-header-floating.ip-is-scrolled .ip-header-inner{min-height:66px}
  .ip-header-floating:not(.ip-is-scrolled) .ip-logo-image,
  .ip-header-floating:not(.ip-is-scrolled) .custom-logo-link img{max-width:58vw;max-height:62px!important}
  .ip-header-floating.ip-is-scrolled .ip-logo-image,
  .ip-header-floating.ip-is-scrolled .custom-logo-link img,
  .ip-header-solid .ip-logo-image,
  .ip-header-solid .custom-logo-link img{max-width:52vw;max-height:46px!important}
  .ip-header-floating.ip-is-scrolled .ip-main-nav{top:76px}
}
@media (max-width:390px){
  .ip-header-floating:not(.ip-is-scrolled) .ip-logo-image,
  .ip-header-floating:not(.ip-is-scrolled) .custom-logo-link img{max-width:55vw;max-height:54px!important}
  .ip-header-floating.ip-is-scrolled .ip-logo-image,
  .ip-header-floating.ip-is-scrolled .custom-logo-link img,
  .ip-header-solid .ip-logo-image,
  .ip-header-solid .custom-logo-link img{max-width:50vw;max-height:40px!important}
}


/* v2.0.289 - logo de color sobre tarjeta gris translúcida */
.ip-logo-image-white{display:none!important}
.ip-header-floating:not(.ip-is-scrolled) .ip-logo-image-color,
.ip-header-solid .ip-logo-image-color,
.ip-header-floating.ip-is-scrolled .ip-logo-image-color{display:block!important}

.ip-logo-image-link,
.custom-logo-link{
  position:relative;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  width:auto;
  min-height:auto!important;
  padding:10px 16px!important;
  border-radius:22px!important;
  background:rgba(237,242,243,.82)!important;
  border:1px solid rgba(255,255,255,.56)!important;
  box-shadow:0 18px 46px rgba(7,19,22,.18)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.15)!important;
  backdrop-filter:blur(18px) saturate(1.15)!important;
}
.ip-logo-image-link:before,
.custom-logo-link:before{display:none!important;content:none!important}

.ip-header-floating:not(.ip-is-scrolled) .ip-logo-image,
.ip-header-floating:not(.ip-is-scrolled) .custom-logo-link img{
  display:block;
  max-width:min(330px,30vw)!important;
  max-height:74px!important;
  width:auto;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 10px 20px rgba(255,255,255,.18)) drop-shadow(0 12px 24px rgba(7,19,22,.16))!important;
}

.ip-header-floating.ip-is-scrolled .ip-logo-image-link,
.ip-header-floating.ip-is-scrolled .custom-logo-link,
.ip-header-solid .ip-logo-image-link,
.ip-header-solid .custom-logo-link{
  padding:6px 12px!important;
  border-radius:18px!important;
  background:rgba(245,249,249,.94)!important;
  border-color:rgba(7,19,22,.08)!important;
  box-shadow:0 10px 26px rgba(7,19,22,.07)!important;
}
.ip-header-floating.ip-is-scrolled .ip-logo-image,
.ip-header-floating.ip-is-scrolled .custom-logo-link img,
.ip-header-solid .ip-logo-image,
.ip-header-solid .custom-logo-link img{
  max-width:min(250px,26vw)!important;
  max-height:52px!important;
  filter:none!important;
}

.ip-header-floating.ip-is-scrolled{
  background:rgba(255,255,255,.97);
}

@media (max-width:900px){
  .ip-logo-image-link,
  .custom-logo-link{padding:7px 10px!important;border-radius:18px!important}
  .ip-header-floating:not(.ip-is-scrolled) .ip-logo-image,
  .ip-header-floating:not(.ip-is-scrolled) .custom-logo-link img{max-width:58vw!important;max-height:58px!important}
  .ip-header-floating.ip-is-scrolled .ip-logo-image,
  .ip-header-floating.ip-is-scrolled .custom-logo-link img,
  .ip-header-solid .ip-logo-image,
  .ip-header-solid .custom-logo-link img{max-width:48vw!important;max-height:42px!important}
}
@media (max-width:390px){
  .ip-logo-image-link,
  .custom-logo-link{padding:6px 8px!important;border-radius:16px!important}
  .ip-header-floating:not(.ip-is-scrolled) .ip-logo-image,
  .ip-header-floating:not(.ip-is-scrolled) .custom-logo-link img{max-width:56vw!important;max-height:50px!important}
  .ip-header-floating.ip-is-scrolled .ip-logo-image,
  .ip-header-floating.ip-is-scrolled .custom-logo-link img,
  .ip-header-solid .ip-logo-image,
  .ip-header-solid .custom-logo-link img{max-width:46vw!important;max-height:36px!important}
}

/* v2.0.289 - logo, mapa, agenda y botón volver arriba */
.ip-header-floating:not(.ip-is-scrolled) .ip-logo-image-link,
.ip-header-floating:not(.ip-is-scrolled) .custom-logo-link{
  padding:10px 16px!important;
  border-radius:22px!important;
  background:rgba(232,239,240,.86)!important;
  border:1px solid rgba(255,255,255,.62)!important;
  box-shadow:0 18px 46px rgba(7,19,22,.18)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.15)!important;
  backdrop-filter:blur(18px) saturate(1.15)!important;
}
.ip-header-floating.ip-is-scrolled .ip-logo-image-link,
.ip-header-floating.ip-is-scrolled .custom-logo-link,
.ip-header-solid .ip-logo-image-link,
.ip-header-solid .custom-logo-link{
  padding:0!important;
  border-radius:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
.ip-header-floating.ip-is-scrolled .ip-logo-image,
.ip-header-floating.ip-is-scrolled .custom-logo-link img,
.ip-header-solid .ip-logo-image,
.ip-header-solid .custom-logo-link img{
  filter:none!important;
}
.ip-header-floating.ip-is-scrolled .ip-header-inner{
  min-height:70px;
}
.ip-filter-panel-agenda{grid-template-columns:minmax(220px,1.4fr) minmax(150px,.7fr) minmax(130px,.6fr) minmax(130px,.6fr)}
.ip-map-filter-panel{grid-template-columns:1.35fr repeat(4,minmax(130px,1fr))}
.ip-scroll-top{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:800;
  width:52px;
  height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.62);
  border-radius:999px;
  background:var(--ip-lime);
  color:var(--ip-ink);
  font-size:1.45rem;
  font-weight:950;
  line-height:1;
  box-shadow:0 18px 44px rgba(7,19,22,.22);
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(14px) scale(.92);
  transition:opacity .22s ease,visibility .22s ease,transform .22s ease,box-shadow .22s ease;
}
.ip-scroll-top.is-visible{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.ip-scroll-top:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 24px 56px rgba(7,19,22,.28)}
@media (max-width:1024px){.ip-map-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.ip-filter-panel-agenda{grid-template-columns:1fr 1fr}}
@media (max-width:640px){
  .ip-map-filter-panel,.ip-filter-panel-agenda{grid-template-columns:1fr}
  .ip-scroll-top{right:16px;bottom:16px;width:48px;height:48px;font-size:1.25rem}
  .ip-header-floating:not(.ip-is-scrolled) .ip-logo-image-link,
  .ip-header-floating:not(.ip-is-scrolled) .custom-logo-link{padding:7px 10px!important;border-radius:18px!important}
  .ip-header-floating.ip-is-scrolled .ip-logo-image-link,
  .ip-header-floating.ip-is-scrolled .custom-logo-link,
  .ip-header-solid .ip-logo-image-link,
  .ip-header-solid .custom-logo-link{padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
}

/* v2.0.289 - logo transparente definitivo y tarjeta solo sobre el slider */
.ip-logo .ip-logo-image-link{
  position:relative;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:visible!important;
  line-height:0!important;
}
.ip-logo .ip-logo-image-link:before{display:none!important;content:none!important}
.ip-logo .ip-logo-image{
  display:block!important;
  width:auto!important;
  height:auto!important;
  object-fit:contain!important;
  border:0!important;
  outline:0!important;
}
.ip-header-floating:not(.ip-is-scrolled) .ip-logo-image-link{
  padding:12px 18px!important;
  border-radius:24px!important;
  background:rgba(232,239,240,.88)!important;
  border:1px solid rgba(255,255,255,.66)!important;
  box-shadow:0 18px 46px rgba(7,19,22,.18)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.12)!important;
  backdrop-filter:blur(18px) saturate(1.12)!important;
}
.ip-header-floating:not(.ip-is-scrolled) .ip-logo-image{
  max-width:min(340px,31vw)!important;
  max-height:82px!important;
  filter:none!important;
}
.ip-header-floating.ip-is-scrolled .ip-logo-image-link,
.ip-header-solid .ip-logo-image-link{
  padding:0!important;
  border-radius:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
.ip-header-floating.ip-is-scrolled .ip-logo-image,
.ip-header-solid .ip-logo-image{
  max-width:min(258px,26vw)!important;
  max-height:56px!important;
  filter:none!important;
}
@media (max-width:900px){
  .ip-header-floating:not(.ip-is-scrolled) .ip-logo-image-link{padding:8px 10px!important;border-radius:18px!important}
  .ip-header-floating:not(.ip-is-scrolled) .ip-logo-image{max-width:60vw!important;max-height:58px!important}
  .ip-header-floating.ip-is-scrolled .ip-logo-image,
  .ip-header-solid .ip-logo-image{max-width:50vw!important;max-height:42px!important}
}
@media (max-width:390px){
  .ip-header-floating:not(.ip-is-scrolled) .ip-logo-image{max-width:56vw!important;max-height:50px!important}
  .ip-header-floating.ip-is-scrolled .ip-logo-image,
  .ip-header-solid .ip-logo-image{max-width:47vw!important;max-height:36px!important}
}

/* v2.0.289 - tiempo en el slider y home por secciones */
.ip-hero-weather{
  position:absolute;
  z-index:5;
  right:56px;
  top:202px;
  display:inline-grid;
  grid-template-columns:auto auto auto;
  align-items:center;
  gap:9px;
  min-height:44px;
  padding:8px 12px 8px 9px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  background:rgba(7,19,22,.48);
  color:#fff;
  box-shadow:0 18px 42px rgba(0,0,0,.20);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);
  backdrop-filter:blur(18px) saturate(1.2);
  opacity:.96;
}
.ip-hero-weather-icon{
  display:inline-grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--ip-ink);
  font-size:1.02rem;
  line-height:1;
}
.ip-hero-weather-text{
  font-size:.76rem;
  font-weight:900;
  letter-spacing:-.02em;
  color:rgba(255,255,255,.86);
  white-space:nowrap;
}
.ip-hero-weather strong{
  font-size:1.02rem;
  line-height:1;
  letter-spacing:-.045em;
  color:var(--ip-lime);
  white-space:nowrap;
}
.ip-hero-weather.is-loaded{animation:ipWeatherIn .5s cubic-bezier(.2,.78,.2,1) both}
@keyframes ipWeatherIn{from{opacity:0;transform:translateY(10px) scale(.97);filter:blur(6px)}to{opacity:.96;transform:translateY(0) scale(1);filter:blur(0)}}
.ip-home-posts{background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.42));}
@media (max-width:900px){
  .ip-hero-weather{
    top:118px;
    right:18px;
    max-width:calc(100vw - 36px);
    min-height:40px;
    padding:6px 10px 6px 7px;
    gap:7px;
  }
  .ip-hero-weather-icon{width:28px;height:28px;font-size:.94rem}
  .ip-hero-weather-text{font-size:.72rem;max-width:34vw;overflow:hidden;text-overflow:ellipsis}
  .ip-hero-weather strong{font-size:.95rem}
}
@media (max-width:520px){
  .ip-hero-weather{top:104px;right:14px;border-radius:18px;background:rgba(7,19,22,.58)}
  .ip-hero-weather-text{display:none}
}


/* v2.0.289 - enlace del tiempo en hero y plantilla Tiempo en Peñíscola */
a.ip-hero-weather{text-decoration:none;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}
a.ip-hero-weather:hover{transform:translateY(-2px);box-shadow:0 24px 52px rgba(0,0,0,.26);background:rgba(7,19,22,.58)}
a.ip-hero-weather:focus-visible{outline:3px solid var(--ip-lime);outline-offset:4px}
.ip-title-sm{font-size:clamp(1.4rem,2.4vw,2.35rem);line-height:.98;letter-spacing:-.055em;margin:0}
.ip-section-head.compact{margin-bottom:18px}.ip-section-head.compact .ip-eyebrow{margin-bottom:10px}
.ip-weather-page .ip-container{display:grid;gap:22px}
.ip-weather-status{display:inline-flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;padding:10px 14px;border:1px solid var(--ip-line);border-radius:999px;background:#fff;color:var(--ip-muted);font-size:.88rem;font-weight:800;box-shadow:0 10px 26px rgba(7,19,22,.06)}
.ip-weather-overview{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.35fr);gap:22px;align-items:stretch}
.ip-weather-current-card{position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;min-height:330px;padding:30px;border-radius:34px;color:#fff;background:radial-gradient(circle at 85% 18%,rgba(29,160,193,.35),transparent 28%),linear-gradient(135deg,#0a3f48,#147b82 55%,#51b8bb);box-shadow:var(--ip-shadow-soft)}
.ip-weather-current-card:after{content:"";position:absolute;inset:auto -22% -38% -18%;height:210px;background:rgba(255,255,255,.14);border-radius:50%;filter:blur(1px)}
.ip-weather-current-card > *{position:relative;z-index:1}
.ip-weather-current-card h2{margin:20px 0 6px;font-size:clamp(4.6rem,10vw,8.8rem);line-height:.78;letter-spacing:-.09em}
.ip-weather-current-card h2 small{font-size:.28em;letter-spacing:-.04em;margin-left:6px;color:var(--ip-lime)}
.ip-weather-current-card p{margin:0;font-size:1.05rem;color:rgba(255,255,255,.82);font-weight:800}
.ip-weather-current-icon{display:grid;place-items:center;width:96px;height:96px;border-radius:34px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.24);font-size:3.1rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.2);backdrop-filter:blur(12px)}
.ip-weather-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ip-weather-metrics div,.ip-weather-note,.ip-weather-panel{background:#fff;border:1px solid var(--ip-line);border-radius:28px;box-shadow:var(--ip-shadow-soft)}
.ip-weather-metrics div{display:grid;align-content:end;min-height:150px;padding:20px;background:linear-gradient(180deg,#fff,var(--ip-soft))}
.ip-weather-metrics span{font-size:.78rem;color:var(--ip-muted);font-weight:850}.ip-weather-metrics strong{display:block;margin-top:8px;font-size:clamp(1.28rem,2.2vw,2rem);line-height:1;letter-spacing:-.055em;color:var(--ip-ink)}
.ip-weather-grid-2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:22px}
.ip-weather-panel{padding:24px;overflow:hidden}.ip-weather-hourly{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;max-height:455px;overflow:auto;padding-right:2px;scrollbar-width:thin}.ip-weather-hour-card{display:grid;gap:7px;min-height:150px;padding:14px;border:1px solid var(--ip-line);border-radius:20px;background:var(--ip-soft)}
.ip-weather-hour-card strong{font-size:.82rem}.ip-weather-hour-card b{font-size:1.45rem;line-height:1;letter-spacing:-.06em}.ip-weather-hour-card small{color:var(--ip-muted);font-size:.74rem;font-weight:780}.ip-weather-hour-icon{font-size:1.45rem}
.ip-weather-advice ul{margin:0;padding-left:1.1rem;display:grid;gap:12px}.ip-weather-advice li{color:#203538}.ip-weather-daily{display:grid;gap:10px}.ip-weather-day-card{display:grid;grid-template-columns:1.1fr 54px .7fr 1fr;gap:14px;align-items:center;padding:14px;border:1px solid var(--ip-line);border-radius:22px;background:var(--ip-soft)}
.ip-weather-day-card strong,.ip-weather-day-card b{display:block;letter-spacing:-.04em}.ip-weather-day-card span,.ip-weather-day-card small{display:block;color:var(--ip-muted);font-size:.82rem}.ip-weather-day-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:18px;background:#fff;font-size:1.45rem;border:1px solid var(--ip-line)}.ip-weather-day-temp{display:flex;gap:7px;align-items:baseline}.ip-weather-day-temp b{font-size:1.5rem;line-height:1;color:var(--ip-ink)}
.ip-weather-note{padding:20px}.ip-weather-note strong{display:block;margin-bottom:8px;font-size:1.05rem;letter-spacing:-.03em}.ip-weather-note p{margin:0;color:var(--ip-muted)}
.ip-weather-page.is-error .ip-weather-status{color:#8a2c1b;background:#fff4ee;border-color:rgba(255,141,107,.35)}
@media (max-width:1024px){.ip-weather-overview,.ip-weather-grid-2{grid-template-columns:1fr}.ip-weather-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ip-weather-hourly{grid-template-columns:repeat(4,minmax(120px,1fr));max-height:none}}
@media (max-width:640px){.ip-weather-status{width:100%;border-radius:18px;text-align:center}.ip-weather-current-card{min-height:280px;padding:24px;border-radius:28px}.ip-weather-current-icon{width:78px;height:78px;border-radius:26px;font-size:2.45rem}.ip-weather-metrics{grid-template-columns:1fr 1fr}.ip-weather-metrics div{min-height:112px;padding:16px;border-radius:22px}.ip-weather-panel{padding:18px;border-radius:24px}.ip-weather-hourly{display:flex;overflow-x:auto;gap:10px;max-height:none;padding-bottom:6px}.ip-weather-hour-card{flex:0 0 132px}.ip-weather-day-card{grid-template-columns:1fr auto;align-items:start}.ip-weather-day-card>div:nth-child(3),.ip-weather-day-card>div:nth-child(4){grid-column:1 / -1}.ip-weather-page-main .ip-page-hero-card{min-height:190px}}

/* v2.0.289: encabezados interiores limpios */
.ip-page-hero-clean .ip-page-hero-card,
.ip-weather-page-main .ip-page-hero-clean .ip-page-hero-card{
  min-height:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:var(--ip-ink)!important;
}
.ip-page-hero-clean .ip-page-breadcrumbs{order:0}
.ip-page-hero-clean .ip-page-title-wrap{order:1}
.ip-page-hero-clean .ip-page-hero-meta{order:2}
.ip-page-hero-clean .ip-lead{order:3}
@media (max-width:900px){
  .ip-page-hero{padding:22px 0 14px!important}
  .ip-page-hero-card{padding:6px 0 24px!important;min-height:0!important;border-radius:0!important}
  .ip-page-hero .ip-title-lg{font-size:clamp(2.25rem,9vw,4.8rem)!important;line-height:.9!important;letter-spacing:-.075em!important}
  .ip-page-hero-image-accent{width:220px;opacity:.18}
}
@media (max-width:640px){
  .ip-page-hero{padding:18px 0 10px!important}
  .ip-page-hero-card{padding:4px 0 22px!important}
  .ip-page-breadcrumbs{font-size:.74rem!important;gap:7px!important}
  .ip-page-hero .ip-title-lg{font-size:clamp(2rem,15vw,3.9rem)!important;line-height:.92!important}
  .ip-page-hero .ip-title-lg:after{width:62px;height:8px;margin-top:10px}
  .ip-page-hero-meta{gap:6px}
  .ip-page-meta-chip{min-height:28px;padding:6px 9px;font-size:.72rem}
  .ip-page-hero .ip-lead{font-size:.98rem;line-height:1.46}
  .ip-page-hero-image-accent{display:none}
}


/* v2.0.289 - ajustes tiempo y tarjetas de lugares */
.ip-weather-page .ip-weather-status{display:none!important}

.ip-poi-card{display:flex;flex-direction:column;height:100%}
.ip-poi-card .ip-card-media{flex:0 0 auto}
.ip-poi-card .ip-card-body{display:flex;flex-direction:column;gap:12px;flex:1;padding:22px}
.ip-poi-card .ip-poi-card-title{order:1;margin:0;font-size:clamp(1.35rem,2vw,1.75rem);line-height:.98;letter-spacing:-.06em;color:var(--ip-ink)}
.ip-poi-card .ip-card-kicker{order:2;margin:0;display:flex;gap:7px;flex-wrap:wrap}
.ip-poi-card .ip-card-kicker .ip-chip{background:rgba(228,244,243,.82);color:var(--ip-sea-dark);font-size:.72rem;min-height:28px;padding:6px 9px}
.ip-poi-card .ip-card-excerpt{order:3;margin:0;color:var(--ip-muted);font-size:.93rem;line-height:1.45}
.ip-poi-card .ip-card-meta{order:4;margin:0;display:flex;gap:7px;flex-wrap:wrap}
.ip-poi-card .ip-card-meta .ip-chip{background:#fff;border-color:var(--ip-line);color:var(--ip-muted);font-size:.72rem;min-height:28px;padding:6px 9px}
.ip-poi-card .ip-button-ghost{order:5;width:100%;margin:auto 0 0;min-height:48px;border-radius:0 0 22px 22px;background:var(--ip-ink);color:#fff;font-size:.88rem;font-weight:950;box-shadow:none;text-align:center}
.ip-poi-card:hover .ip-button-ghost{background:var(--ip-sea-dark);transform:none;box-shadow:none}
@media (max-width:640px){
  .ip-poi-card .ip-card-body{padding:20px;gap:11px}
  .ip-poi-card .ip-poi-card-title{font-size:1.45rem}
  .ip-poi-card .ip-button-ghost{min-height:46px;border-radius:0 0 20px 20px}
}


/* v2.0.289 - ajustes encabezados, tiempo home y tarjetas POI */
.ip-page-hero{
  padding-top:12px!important;
}
.ip-page-hero:before{
  display:none!important;
  content:none!important;
}
.ip-page-hero-card{
  padding-top:0!important;
}
.ip-page-hero-clean .ip-page-hero-card{
  border-top:0!important;
}

.ip-hero-weather{
  grid-template-columns:auto minmax(0,auto) auto;
}
.ip-hero-weather-text:empty{
  display:none;
}
@media (max-width:520px){
  .ip-hero-weather{
    grid-template-columns:auto minmax(0,1fr) auto;
    max-width:calc(100vw - 28px);
  }
  .ip-hero-weather-text{
    display:inline-block!important;
    max-width:42vw;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.68rem;
  }
  .ip-hero-weather-text:empty{display:none!important}
}

.ip-poi-card .ip-button-ghost{
  text-decoration:none;
  pointer-events:auto;
}
.ip-poi-card .ip-card-link{
  z-index:2;
}
.ip-poi-card .ip-button-ghost{
  z-index:4;
}
@media (max-width:900px){
  .ip-page-hero{padding-top:12px!important}
}
@media (max-width:640px){
  .ip-page-hero{padding-top:10px!important}
}

/* v2.0.289 - ubicación y distancia en ficha de punto de interés */
.ip-single-map-shell{
  position:relative;
  margin-top:18px;
  border-radius:30px;
  overflow:hidden;
  box-shadow:var(--ip-shadow-soft);
  background:var(--ip-cloud);
}
.ip-single-map-shell .ip-map-single{
  margin-top:0;
  box-shadow:none;
}
.ip-single-map-actions{
  position:absolute;
  right:14px;
  bottom:14px;
  z-index:500;
  display:flex;
  align-items:center;
  gap:10px;
  padding:7px;
  border:1px solid rgba(255,255,255,.68);
  border-radius:999px;
  background:rgba(255,255,255,.92);
  box-shadow:0 14px 36px rgba(7,19,22,.16);
  backdrop-filter:blur(16px);
}
.ip-single-locate-button{
  min-height:42px;
  padding:10px 16px;
  white-space:nowrap;
  box-shadow:none;
}
.ip-single-locate-button:disabled{
  opacity:.72;
  cursor:wait;
  transform:none;
}
.ip-poi-distance-box{
  display:grid;
  gap:5px;
  margin-top:12px;
  padding:15px 16px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(228,244,243,.92),rgba(255,255,255,.96));
  color:var(--ip-muted);
  font-size:.92rem;
}
.ip-poi-distance-box strong{
  color:var(--ip-ink);
  font-size:.98rem;
}
.ip-poi-distance-box b{
  color:var(--ip-sea-dark);
}
.ip-poi-distance-box small{
  display:block;
  color:var(--ip-muted);
  font-size:.78rem;
  line-height:1.35;
}
.ip-poi-distance-box.is-error{
  border-color:rgba(255,141,107,.32);
  background:linear-gradient(135deg,rgba(255,141,107,.12),rgba(255,255,255,.96));
}
@media (max-width:640px){
  .ip-single-map-actions{right:10px;bottom:10px;padding:6px}
  .ip-single-locate-button{min-height:40px;padding:9px 14px;font-size:.86rem}
  .ip-poi-distance-box{padding:14px;border-radius:16px}
}


/* v2.0.289 - ruta andando real y mapa a pantalla completa en fichas de lugares */
.ip-map-fullscreen-button{
  position:absolute;
  top:14px;
  right:14px;
  z-index:520;
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.76);
  border-radius:16px;
  background:rgba(255,255,255,.94);
  color:var(--ip-ink);
  box-shadow:0 14px 36px rgba(7,19,22,.16);
  backdrop-filter:blur(16px);
  font-size:1.18rem;
  font-weight:900;
  line-height:1;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.ip-map-fullscreen-button:hover{
  transform:translateY(-1px);
  background:#fff;
  box-shadow:0 18px 44px rgba(7,19,22,.20);
}
.ip-single-map-shell.is-fullscreen{
  position:fixed!important;
  inset:18px!important;
  z-index:99999!important;
  margin:0!important;
  border-radius:26px!important;
  box-shadow:0 30px 120px rgba(0,0,0,.38)!important;
  background:var(--ip-paper);
}
body > .ip-single-map-shell.is-fullscreen{
  z-index:100100!important;
}
.ip-single-map-shell.is-fullscreen .ip-map-single{
  height:calc(100vh - 36px)!important;
  min-height:calc(100vh - 36px)!important;
}
.ip-single-map-shell.is-fullscreen .ip-map-fullscreen-button{
  width:48px;
  height:48px;
  border-radius:18px;
  font-size:1.55rem;
}
body.ip-map-fullscreen-open{
  overflow:hidden!important;
}
body.ip-map-fullscreen-open:after{
  content:"";
  position:fixed;
  inset:0;
  z-index:99990;
  background:rgba(7,19,22,.58);
  backdrop-filter:blur(4px);
}
.ip-poi-distance-box:not(.is-error) small{
  color:rgba(16,97,106,.82);
}
@media (max-width:640px){
  .ip-map-fullscreen-button{top:10px;right:10px;width:42px;height:42px;border-radius:15px}
  body > .ip-single-map-shell.is-fullscreen{inset:8px!important;border-radius:20px!important}
  body > .ip-single-map-shell.is-fullscreen .ip-map-single{height:calc(100dvh - 16px)!important;min-height:calc(100dvh - 16px)!important}
  .ip-single-map-shell.is-fullscreen .ip-single-map-actions{right:10px;bottom:10px}
}


/* v2.0.289 - enlaces externos de mapas en la ficha de lugar */
.ip-open-maps{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--ip-line);
}
.ip-open-maps-title{
  display:block;
  margin:0 0 12px;
  color:var(--ip-ink);
  font-size:.92rem;
  font-weight:950;
  letter-spacing:-.02em;
}
.ip-open-maps-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.ip-map-link-button{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 12px;
  border:1px solid rgba(16,97,106,.16);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(228,244,243,.92),rgba(255,255,255,.98));
  color:var(--ip-ink);
  font-size:.86rem;
  font-weight:950;
  text-decoration:none;
  box-shadow:0 12px 28px rgba(7,19,22,.08);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ip-map-link-button:hover{
  transform:translateY(-1px);
  border-color:rgba(16,97,106,.30);
  box-shadow:0 18px 38px rgba(7,19,22,.13);
}
.ip-map-link-button span{
  font-size:1rem;
  line-height:1;
}
@media (max-width:420px){
  .ip-open-maps-actions{grid-template-columns:1fr}
}

/* v2.0.289 - footer refinado, páginas generales y redes configurables */
.ip-footer-grid-refined{
  grid-template-columns:minmax(260px,1.35fr) repeat(3,minmax(160px,.75fr));
  align-items:start;
}
.ip-footer-about h3{
  margin:0 0 12px;
  font-size:clamp(1.55rem,3vw,2.25rem);
  line-height:.92;
  letter-spacing:-.07em;
  color:#fff;
}
.ip-footer-about p{
  max-width:480px;
  margin:0;
  font-size:.98rem;
  line-height:1.62;
}
.ip-footer .ip-footer-grid-refined h3:not(.ip-footer-about h3){
  color:#fff;
  letter-spacing:-.035em;
}
.ip-footer .ip-footer-grid-refined a{
  display:inline-flex;
  align-items:center;
  width:fit-content;
  min-height:26px;
  transition:color .18s ease,transform .18s ease,opacity .18s ease;
}
.ip-footer .ip-footer-grid-refined a:hover{
  color:#fff;
  transform:translateX(3px);
}
.ip-footer-page-list{
  columns:1;
}
.ip-footer-social{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  margin-top:20px;
}
.ip-footer-social a{
  width:42px!important;
  height:42px;
  min-height:42px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  color:#fff!important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transform:none!important;
}
.ip-footer-social a:hover{
  background:var(--ip-lime);
  border-color:var(--ip-lime);
  color:var(--ip-ink)!important;
  transform:translateY(-2px)!important;
}
.ip-footer-social svg{
  width:20px;
  height:20px;
  display:block;
  fill:currentColor;
}
.screen-reader-text{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
@media (max-width:1024px){
  .ip-footer-grid-refined{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .ip-footer-grid-refined{grid-template-columns:1fr;gap:24px}
  .ip-footer-about h3{font-size:2rem}
  .ip-footer-social a{width:44px!important;height:44px;min-height:44px!important}
}

/* v2.0.289 - recetas interactivas y footer sin enlaces repetidos */
.ip-checkable-list{
  user-select:none;
}
.ip-check-line{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:10px;
  align-items:start;
  width:100%;
  cursor:pointer;
  color:var(--ip-ink-2);
}
.ip-check-line input{
  appearance:none;
  -webkit-appearance:none;
  width:21px;
  height:21px;
  margin:1px 0 0;
  border-radius:8px;
  border:2px solid rgba(16,97,106,.34);
  background:#fff;
  display:grid;
  place-items:center;
  transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.ip-check-line input:before{
  content:"✓";
  font-size:.8rem;
  line-height:1;
  font-weight:950;
  color:var(--ip-ink);
  opacity:0;
  transform:scale(.65);
  transition:opacity .18s ease,transform .18s ease;
}
.ip-check-line input:checked{
  background:var(--ip-lime);
  border-color:var(--ip-lime);
  box-shadow:0 8px 20px rgba(29,160,193,.30);
}
.ip-check-line input:checked:before{
  opacity:1;
  transform:scale(1);
}
.ip-check-line input:checked + span{
  text-decoration:line-through;
  text-decoration-thickness:2px;
  text-decoration-color:rgba(16,97,106,.45);
  opacity:.52;
}
.ip-ingredient-list li{
  transition:border-color .18s ease,background .18s ease,opacity .18s ease;
}
.ip-ingredient-list li:has(input:checked){
  border-color:rgba(16,97,106,.18);
  background:#f7fbfa;
}
.ip-step .ip-step-check{
  align-self:center;
  padding-top:8px;
}
.ip-step:has(input:checked){
  border-color:rgba(16,97,106,.18);
  background:#f7fbfa;
}
.ip-recipe-side-image{
  margin:12px 0 18px;
  border-radius:24px;
  overflow:hidden;
  border:1px solid var(--ip-line);
  background:var(--ip-soft);
  box-shadow:0 16px 40px rgba(7,19,22,.10);
}
.ip-recipe-side-image img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
}
@supports not selector(:has(*)){
  .ip-ingredient-list li,
  .ip-step{transition:none}
}


/* v2.0.289 - menú superior simplificado */
.ip-main-nav{padding:4px 5px}
.ip-main-nav > ul > li{position:relative}
.ip-main-nav > ul > li > a{white-space:nowrap}
.ip-main-nav .menu-item-has-children > a:after{
  content:"⌄";
  font-size:.78em;
  margin-left:6px;
  opacity:.72;
  transform:translateY(-1px);
}
.ip-main-nav .sub-menu{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  z-index:3002;
  min-width:220px;
  display:grid;
  gap:3px;
  padding:8px;
  border:1px solid var(--ip-line);
  border-radius:18px;
  background:rgba(255,255,255,.98);
  color:var(--ip-ink);
  box-shadow:0 22px 55px rgba(7,19,22,.18);
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.ip-main-nav li:hover > .sub-menu,
.ip-main-nav li:focus-within > .sub-menu{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.ip-main-nav .sub-menu a{
  min-height:38px;
  justify-content:flex-start;
  color:var(--ip-ink);
  background:transparent;
}
.ip-main-nav .sub-menu a:hover{background:var(--ip-cloud)}
.ip-header-cta{background:var(--ip-lime);color:var(--ip-ink);box-shadow:0 12px 26px rgba(7,19,22,.12)}
.ip-header-cta:before{content:"📍";font-size:1rem;line-height:1}
@media (max-width:900px){
  .ip-main-nav .menu-item-has-children > a:after{content:"";display:none}
  .ip-main-nav .sub-menu{
    position:static;
    min-width:0;
    opacity:1;
    visibility:visible;
    transform:none;
    box-shadow:none;
    border:0;
    background:var(--ip-cloud);
    margin:0 0 6px;
    padding:7px;
    border-radius:16px;
  }
  .ip-main-nav .sub-menu a{min-height:40px;font-size:.82rem;padding-left:14px}
}

/* v2.0.289 - plantilla Como llegar a Peñíscola */
.ip-arrive-page-main{padding-bottom:80px}
.ip-arrive-intro-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:22px;align-items:stretch}
.ip-arrive-intro-card,.ip-arrive-key-card,.ip-arrive-method-card,.ip-arrive-origin-card,.ip-arrive-parking-card,.ip-arrive-checklist,.ip-arrive-final-card,.ip-arrive-faq-grid details{background:#fff;border:1px solid var(--ip-line);border-radius:30px;box-shadow:var(--ip-shadow-soft)}
.ip-arrive-intro-card{padding:32px;overflow:hidden;background:radial-gradient(circle at 88% 0%,rgba(141,229,220,.32),transparent 34%),linear-gradient(180deg,#fff,var(--ip-soft))}
.ip-arrive-intro-card .ip-title-md{margin:14px 0 16px;max-width:850px}
.ip-arrive-intro-card p{max-width:760px;color:#203538;font-size:1.03rem;margin:0 0 20px}
.ip-arrive-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ip-arrive-key-card{display:grid;grid-template-columns:1fr;gap:10px;padding:14px;background:linear-gradient(180deg,#fff,var(--ip-cloud))}
.ip-arrive-key-card div{padding:18px;border-radius:22px;background:rgba(255,255,255,.72);border:1px solid rgba(7,19,22,.08)}
.ip-arrive-key-card span,.ip-arrive-origin-card span{display:block;color:var(--ip-muted);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.02em}
.ip-arrive-key-card strong{display:block;margin-top:6px;font-size:1.25rem;line-height:1;letter-spacing:-.055em;color:var(--ip-ink)}
.ip-arrive-key-card small{display:block;margin-top:6px;color:var(--ip-muted);font-weight:720}
.ip-arrive-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.ip-arrive-method-card{display:grid;grid-template-columns:66px 1fr;gap:18px;padding:24px;align-items:start;transition:.22s ease}
.ip-arrive-method-card,.ip-arrive-parking-card{scroll-margin-top:120px}
.ip-arrive-method-card:hover{transform:translateY(-3px);box-shadow:0 22px 60px rgba(7,19,22,.14)}
.ip-arrive-method-icon{display:grid;place-items:center;width:66px;height:66px;border-radius:24px;background:var(--ip-cloud);border:1px solid var(--ip-line);font-size:1.7rem}
.ip-arrive-method-card h3{margin:0 0 8px;font-size:1.65rem;line-height:.98;letter-spacing:-.06em}
.ip-arrive-method-card p{margin:0 0 12px;color:var(--ip-muted)}
.ip-arrive-method-card ul{margin:0 0 16px;padding-left:1.1rem;color:#203538}
.ip-arrive-method-card li{margin:.38rem 0}.ip-arrive-method-card .ip-button-ghost{box-shadow:none;background:var(--ip-soft)}
.ip-arrive-mini-actions{display:flex;flex-wrap:wrap;gap:8px}.ip-arrive-mini-actions a{display:inline-flex;min-height:38px;align-items:center;justify-content:center;padding:0 13px;border-radius:999px;background:var(--ip-soft);border:1px solid var(--ip-line);font-size:.84rem;font-weight:900;color:var(--ip-sea-dark)}
.ip-arrive-origin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ip-arrive-origin-card{padding:20px;display:flex;flex-direction:column;min-height:205px}
.ip-arrive-origin-card h3{margin:8px 0 8px;font-size:1.55rem;line-height:1;letter-spacing:-.055em}.ip-arrive-origin-card p{margin:0;color:var(--ip-muted);font-size:.93rem}.ip-arrive-origin-card a{margin:auto 0 0;display:inline-flex;align-items:center;width:fit-content;font-size:.88rem;font-weight:950;color:var(--ip-sea-dark);border-bottom:1px solid rgba(16,97,106,.25)}
.ip-arrive-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:22px;align-items:start}.ip-arrive-parking-card{padding:30px}.ip-arrive-parking-card .ip-title-md{margin:14px 0 14px}.ip-arrive-parking-card p{color:#203538;margin:0 0 18px}.ip-arrive-tips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.ip-arrive-tips div{padding:16px;border-radius:20px;background:var(--ip-soft);border:1px solid var(--ip-line)}.ip-arrive-tips strong{display:block;margin-bottom:6px;letter-spacing:-.025em}.ip-arrive-tips span{display:block;color:var(--ip-muted);font-size:.88rem}
.ip-arrive-checklist{padding:24px;display:grid;gap:12px;background:linear-gradient(180deg,#fff,var(--ip-soft))}.ip-arrive-checklist h2{margin:0;font-size:2rem;line-height:.95;letter-spacing:-.06em}.ip-arrive-checklist label{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:16px;background:#fff;border:1px solid var(--ip-line);color:#203538;font-weight:760}.ip-arrive-checklist input{margin-top:3px;accent-color:var(--ip-sea-dark)}
.ip-arrive-faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ip-arrive-faq-grid details{padding:18px}.ip-arrive-faq-grid summary{cursor:pointer;font-weight:950;letter-spacing:-.03em}.ip-arrive-faq-grid p{margin:12px 0 0;color:var(--ip-muted)}
.ip-arrive-final-card{display:flex;justify-content:space-between;gap:22px;align-items:center;padding:30px;background:linear-gradient(135deg,var(--ip-ink),#123f45);color:#fff;overflow:hidden}.ip-arrive-final-card .ip-title-md{color:#fff;margin:12px 0}.ip-arrive-final-card p{margin:0;color:rgba(255,255,255,.78);max-width:720px}.ip-arrive-final-card .ip-eyebrow{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);color:#fff}.ip-arrive-final-card .ip-button-ghost{background:#fff;color:var(--ip-ink)}
@media (max-width:980px){.ip-arrive-intro-grid,.ip-arrive-split,.ip-arrive-methods,.ip-arrive-origin-grid,.ip-arrive-faq-grid{grid-template-columns:1fr}.ip-arrive-tips{grid-template-columns:1fr}.ip-arrive-final-card{display:grid}}
@media (max-width:640px){.ip-arrive-intro-card,.ip-arrive-parking-card,.ip-arrive-final-card{padding:22px;border-radius:26px}.ip-arrive-key-card,.ip-arrive-method-card,.ip-arrive-origin-card,.ip-arrive-checklist,.ip-arrive-faq-grid details{border-radius:24px}.ip-arrive-method-card{grid-template-columns:1fr;padding:20px}.ip-arrive-method-icon{width:58px;height:58px;border-radius:20px}.ip-arrive-method-card h3{font-size:1.45rem}.ip-arrive-actions .ip-button,.ip-arrive-actions .ip-button-ghost,.ip-arrive-actions .ip-button-lime{width:100%}.ip-arrive-origin-card{min-height:0}.ip-arrive-page-main{padding-bottom:58px}}

/* v2.0.289 - mejoras de transporte en plantilla Como llegar */
.ip-airport-distance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 16px}
.ip-airport-distance-grid div{padding:14px;border-radius:18px;background:linear-gradient(180deg,#fff,var(--ip-soft));border:1px solid var(--ip-line);display:grid;gap:4px}
.ip-airport-distance-grid strong{font-size:1rem;letter-spacing:-.035em;color:var(--ip-ink)}
.ip-airport-distance-grid span{font-size:.85rem;color:var(--ip-muted);font-weight:750}
.ip-airport-distance-grid a{width:fit-content;margin-top:3px;font-size:.82rem;font-weight:950;color:var(--ip-sea-dark);border-bottom:1px solid rgba(16,97,106,.25)}
@media (max-width:640px){.ip-airport-distance-grid{grid-template-columns:1fr}}


/* v2.0.289 - tarjetas de recetas con la misma estética que puntos de interés */
.ip-recipe-card{
  display:flex;
  flex-direction:column;
  height:100%;
}
.ip-recipe-card .ip-card-media{
  flex:0 0 auto;
}
.ip-recipe-card .ip-card-body{
  display:flex;
  flex-direction:column;
  gap:12px;
  flex:1;
  padding:22px;
}
.ip-recipe-card .ip-recipe-card-title{
  order:1;
  margin:0;
  font-size:clamp(1.35rem,2vw,1.75rem);
  line-height:.98;
  letter-spacing:-.06em;
  color:var(--ip-ink);
}
.ip-recipe-card .ip-card-kicker{
  order:2;
  margin:0;
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.ip-recipe-card .ip-card-kicker .ip-chip{
  background:rgba(228,244,243,.82);
  color:var(--ip-sea-dark);
  font-size:.72rem;
  min-height:28px;
  padding:6px 9px;
}
.ip-recipe-card .ip-card-excerpt{
  order:3;
  margin:0;
  color:var(--ip-muted);
  font-size:.93rem;
  line-height:1.45;
}
.ip-recipe-card .ip-card-meta{
  order:4;
  margin:0;
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.ip-recipe-card .ip-card-meta .ip-chip{
  background:#fff;
  border-color:var(--ip-line);
  color:var(--ip-muted);
  font-size:.72rem;
  min-height:28px;
  padding:6px 9px;
}
.ip-recipe-card .ip-button-ghost{
  order:5;
  width:100%;
  margin:auto 0 0;
  min-height:48px;
  border-radius:0 0 22px 22px;
  background:var(--ip-ink);
  color:#fff;
  font-size:.88rem;
  font-weight:950;
  box-shadow:none;
  text-align:center;
  text-decoration:none;
  pointer-events:auto;
  z-index:4;
}
.ip-recipe-card:hover .ip-button-ghost{
  background:var(--ip-sea-dark);
  transform:none;
  box-shadow:none;
}
.ip-recipe-card .ip-card-link{
  z-index:2;
}
@media (max-width:640px){
  .ip-recipe-card .ip-card-body{padding:20px;gap:11px}
  .ip-recipe-card .ip-recipe-card-title{font-size:1.45rem}
  .ip-recipe-card .ip-button-ghost{min-height:46px;border-radius:0 0 20px 20px}
}


/* v2.0.289 - FAQS / Preguntas frecuentes */
.ip-faq-hero-panel{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:center;margin-bottom:22px;padding:28px;border:1px solid var(--ip-line);border-radius:32px;background:linear-gradient(135deg,#fff 0%,var(--ip-soft) 62%,rgba(141,229,220,.28) 100%);box-shadow:var(--ip-shadow-soft)}
.ip-faq-hero-panel h2{margin:6px 0 8px;font-size:clamp(1.8rem,3.5vw,3.2rem);line-height:.95;letter-spacing:-.065em}.ip-faq-hero-panel p{margin:0;color:var(--ip-muted);max-width:760px}.ip-faq-hero-stats{display:grid;gap:4px;place-items:center;text-align:center;min-height:176px;padding:22px;border-radius:26px;background:var(--ip-ink);color:#fff}.ip-faq-hero-stats strong{font-size:clamp(3.2rem,7vw,5.6rem);line-height:.8;letter-spacing:-.08em;color:var(--ip-lime)}.ip-faq-hero-stats span{max-width:190px;color:rgba(255,255,255,.76);font-size:.9rem;font-weight:750;line-height:1.25}
.ip-faq-category-nav{position:sticky;top:86px;z-index:8;display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;margin:0 0 28px;padding:10px;border:1px solid var(--ip-line);border-radius:999px;background:rgba(255,255,255,.86);backdrop-filter:blur(16px);box-shadow:0 10px 32px rgba(7,19,22,.08)}.ip-faq-category-nav::-webkit-scrollbar{display:none}.ip-faq-category-nav a{display:inline-flex;align-items:center;gap:9px;white-space:nowrap;padding:11px 14px;border-radius:999px;background:var(--ip-soft);color:var(--ip-ink);font-weight:900;font-size:.88rem}.ip-faq-category-nav a:hover{background:var(--ip-lime);transform:translateY(-1px)}.ip-faq-category-nav small{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#fff;color:var(--ip-sea-dark);font-weight:950}
.ip-faq-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}.ip-faq-groups{display:grid;gap:24px}.ip-faq-group{scroll-margin-top:138px;padding:24px;border:1px solid var(--ip-line);border-radius:32px;background:#fff;box-shadow:var(--ip-shadow-soft)}.ip-faq-group-head{display:flex;gap:16px;align-items:flex-start;margin-bottom:18px}.ip-faq-group-icon{flex:0 0 46px;display:grid;place-items:center;width:46px;height:46px;border-radius:16px;background:linear-gradient(135deg,var(--ip-lime),var(--ip-aqua));color:var(--ip-ink);font-weight:1000;font-size:1.4rem}.ip-faq-group h2{margin:0 0 5px;font-size:clamp(1.45rem,2.5vw,2.25rem);line-height:1;letter-spacing:-.05em}.ip-faq-group p{margin:0;color:var(--ip-muted)}.ip-faq-list{display:grid;gap:10px}.ip-faq-item{border:1px solid var(--ip-line);border-radius:20px;background:var(--ip-soft);overflow:hidden;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.ip-faq-item[open]{border-color:rgba(81,184,187,.45);background:#fff;box-shadow:0 12px 32px rgba(7,19,22,.07)}.ip-faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:62px;padding:16px 18px;cursor:pointer;list-style:none;font-weight:950;color:var(--ip-ink)}.ip-faq-item summary::-webkit-details-marker{display:none}.ip-faq-item summary span{font-size:1.02rem;line-height:1.25}.ip-faq-item summary b{flex:0 0 30px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;color:var(--ip-sea-dark);font-size:1.3rem;line-height:1;transition:transform .2s ease,background .2s ease}.ip-faq-item[open] summary b{transform:rotate(45deg);background:var(--ip-lime);color:var(--ip-ink)}.ip-faq-answer{padding:0 18px 18px;color:var(--ip-ink)}.ip-faq-answer p:first-child{margin-top:0}.ip-faq-answer p:last-child{margin-bottom:0}.ip-faq-answer a{color:var(--ip-sea-dark);font-weight:850;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.ip-faq-aside{position:sticky;top:122px}.ip-faq-help-box{background:linear-gradient(180deg,#fff 0%,var(--ip-cloud) 100%)}.ip-faq-help-box h3{margin:6px 0 8px;font-size:1.55rem;line-height:1;letter-spacing:-.05em}.ip-faq-help-box p{color:var(--ip-muted);margin:0 0 16px}.ip-faq-help-links{display:grid;gap:9px}.ip-faq-help-links a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;background:#fff;border:1px solid var(--ip-line);font-weight:900}.ip-faq-help-links a:after{content:'→';color:var(--ip-sea-dark);font-weight:1000}.ip-faq-help-links a:hover{background:var(--ip-lime);border-color:transparent}
@media (max-width:1024px){.ip-faq-layout{grid-template-columns:1fr}.ip-faq-aside{position:static}.ip-faq-hero-panel{grid-template-columns:1fr}.ip-faq-hero-stats{min-height:auto;place-items:start;text-align:left}.ip-faq-hero-stats span{max-width:none}.ip-faq-category-nav{top:74px}}
@media (max-width:640px){.ip-faq-hero-panel{padding:22px;border-radius:26px}.ip-faq-category-nav{border-radius:24px;padding:8px}.ip-faq-category-nav a{padding:10px 12px}.ip-faq-group{padding:18px;border-radius:26px;scroll-margin-top:110px}.ip-faq-group-head{display:grid;gap:12px}.ip-faq-item summary{padding:14px 15px;min-height:58px}.ip-faq-answer{padding:0 15px 16px}.ip-faq-layout{gap:22px}}


/* v2.0.289 - colaborador de recetas y checks persistentes */
.ip-recipe-provider-card{
  margin:0 0 22px;
  padding:22px;
  border:1px solid var(--ip-line);
  border-radius:28px;
  background:linear-gradient(135deg,#ffffff 0%,#f4fbfa 100%);
  box-shadow:0 18px 52px rgba(7,19,22,.10);
}
.ip-recipe-provider-card .ip-eyebrow{
  display:block;
  margin-bottom:12px;
}
.ip-recipe-provider-logo{
  margin:0 0 15px;
  border-radius:22px;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--ip-line);
  padding:14px;
  display:grid;
  place-items:center;
  min-height:104px;
}
.ip-recipe-provider-logo img{
  display:block;
  max-width:100%;
  max-height:96px;
  object-fit:contain;
}
.ip-recipe-provider-card h3{
  margin:0 0 14px;
  font-size:1.45rem;
  line-height:1.08;
  letter-spacing:-.035em;
  color:var(--ip-ink);
}
.ip-provider-details{
  display:grid;
  gap:10px;
  margin:0 0 16px;
}
.ip-provider-details p{
  margin:0;
  padding:12px 0;
  border-top:1px solid var(--ip-line);
}
.ip-provider-details span{
  display:block;
  font-size:.72rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--ip-muted);
  margin-bottom:4px;
}
.ip-provider-details strong{
  display:block;
  color:var(--ip-ink-2);
  line-height:1.35;
}
.ip-provider-details a{
  color:inherit;
  text-decoration:none;
}
.ip-provider-details a:hover{
  color:var(--ip-sea-dark);
}
.ip-button-full,
.ip-provider-web{
  width:100%;
  justify-content:center;
  text-align:center;
}
@media (max-width:720px){
  .ip-recipe-provider-card{padding:18px;border-radius:22px;}
  .ip-recipe-provider-card h3{font-size:1.25rem;}
}


/* v2.0.289 - tiempo total en cabecera de receta y badge de colaborador */
.ip-recipe-provider-jump{
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  width:fit-content;
  max-width:100%;
  margin:8px 0 18px;
  padding:10px 14px;
  border:1px solid rgba(81,184,187,.28);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(228,244,243,.95),rgba(255,255,255,.95));
  color:var(--ip-ink);
  font-weight:900;
  text-decoration:none;
  box-shadow:0 10px 26px rgba(7,19,22,.07);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.ip-recipe-provider-jump span{
  color:var(--ip-muted);
  font-size:.82rem;
  letter-spacing:.02em;
}
.ip-recipe-provider-jump strong{
  color:var(--ip-sea-dark);
  font-size:.92rem;
}
.ip-recipe-provider-jump:after{
  content:'↓';
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--ip-lime);
  color:var(--ip-ink);
  font-weight:1000;
  line-height:1;
}
.ip-recipe-provider-jump:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(7,19,22,.10);
  border-color:rgba(81,184,187,.55);
}
#receta-facilitada-por{
  scroll-margin-top:108px;
}
@media (max-width:640px){
  .ip-recipe-provider-jump{
    display:flex;
    width:100%;
    justify-content:center;
    text-align:center;
    border-radius:20px;
  }
}


/* v2.0.289 - badge de colaborador en tarjetas de recetas */
.ip-recipe-card-provider-badge{
  position:relative;
  z-index:3;
  display:inline-flex;
  align-items:center;
  gap:7px;
  width:100%;
  min-height:38px;
  margin-top:auto;
  padding:10px 12px;
  border:1px solid rgba(81,184,187,.22);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(141,229,220,.18),rgba(29,160,193,.18));
  color:var(--ip-ink-2);
  font-size:.78rem;
  font-weight:850;
  line-height:1.2;
}
.ip-recipe-card-provider-badge:before{
  content:"🍽️";
  flex:0 0 auto;
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#fff;
  box-shadow:0 6px 18px rgba(7,19,22,.08);
}
.ip-recipe-card-provider-badge span{color:var(--ip-muted);font-weight:800}
.ip-recipe-card-provider-badge strong{color:var(--ip-ink);font-weight:950}
.ip-recipe-card .ip-recipe-card-provider-badge + .ip-button-ghost{margin-top:10px}
@media (max-width:640px){
  .ip-recipe-card-provider-badge{font-size:.76rem;border-radius:14px;padding:9px 10px}
}


/* v2.0.289 - botones de mapas en colaborador de receta */
.ip-provider-open-maps{
  margin-top:18px;
}
.ip-provider-open-maps .ip-open-maps-title{
  font-size:.9rem;
}
.ip-recipe-provider-card .ip-provider-web + .ip-provider-open-maps{
  margin-top:18px;
}


/* v2.0.289 - botón de llamada en fichas de puntos de interés */
.ip-poi-call-button{
  width:100%;
  margin-top:12px;
  text-align:center;
  box-shadow:0 14px 30px rgba(7,19,22,.12);
}
.ip-poi-call-button:hover{
  text-decoration:none;
}


/* v2.0.289 - hero con imagen para fichas de lugares y teléfono enlazable */
.ip-page-hero-overlay{
  padding-top:18px!important;
  padding-bottom:22px!important;
}
.ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
  display:flex!important;
  align-items:flex-end!important;
  min-height:clamp(340px,44vw,540px)!important;
  padding:clamp(24px,4vw,46px)!important;
  border:0!important;
  border-radius:34px!important;
  overflow:hidden!important;
  color:#fff!important;
  background-image:linear-gradient(180deg,rgba(7,19,22,.12) 0%,rgba(7,19,22,.48) 52%,rgba(7,19,22,.84) 100%),var(--ip-page-hero-image)!important;
  background-size:cover!important;
  background-position:center!important;
  box-shadow:var(--ip-shadow)!important;
}
.ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero:before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  width:auto!important;
  height:auto!important;
  border-radius:inherit!important;
  background:radial-gradient(circle at 22% 12%,rgba(29,160,193,.22),transparent 28%),linear-gradient(90deg,rgba(7,19,22,.44),transparent 58%)!important;
  z-index:1!important;
}
.ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero:after{
  display:block!important;
  content:""!important;
  position:absolute!important;
  inset:auto 24px 24px 24px!important;
  height:1px!important;
  background:linear-gradient(90deg,rgba(255,255,255,.55),rgba(255,255,255,.08),transparent)!important;
  z-index:2!important;
}
.ip-page-hero-overlay .ip-page-hero-content{
  max-width:980px!important;
  position:relative!important;
  z-index:3!important;
}
.ip-page-hero-overlay .ip-page-breadcrumbs,
.ip-page-hero-overlay .ip-page-breadcrumbs a,
.ip-page-hero-overlay .ip-page-breadcrumbs span{
  color:rgba(255,255,255,.82)!important;
}
.ip-page-hero-overlay .ip-page-breadcrumbs a:hover{color:#fff!important}
.ip-page-hero-overlay .ip-page-hero .ip-title-lg,
.ip-page-hero-overlay .ip-title-lg{
  color:#fff!important;
  text-shadow:0 18px 50px rgba(0,0,0,.34)!important;
  max-width:920px!important;
}
.ip-page-hero-overlay .ip-title-lg:after{
  background:linear-gradient(90deg,var(--ip-lime),rgba(255,255,255,.5))!important;
}
.ip-page-hero-overlay .ip-page-meta-chip{
  color:#fff!important;
  background:rgba(255,255,255,.13)!important;
  border-color:rgba(255,255,255,.22)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14)!important;
  backdrop-filter:blur(12px);
}
.ip-page-hero-overlay .ip-lead{
  max-width:760px!important;
  color:rgba(255,255,255,.82)!important;
  text-shadow:0 12px 32px rgba(0,0,0,.28)!important;
}
.ip-page-hero-overlay .ip-page-hero-image-accent{display:none!important}
.ip-meta-phone-link{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid rgba(16,97,106,.28);
}
.ip-meta-phone-link:hover{color:var(--ip-sea-dark);border-bottom-color:currentColor}
.ip-poi-call-button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:48px;
  border-radius:999px;
  padding:13px 20px!important;
}
@media (max-width:900px){
  .ip-page-hero-overlay{padding-top:14px!important}
  .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
    min-height:380px!important;
    border-radius:28px!important;
    padding:28px!important;
  }
}
@media (max-width:640px){
  .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
    min-height:330px!important;
    border-radius:26px!important;
    padding:24px 20px!important;
  }
  .ip-page-hero-overlay .ip-title-lg{font-size:clamp(2.2rem,16vw,4.1rem)!important}
}


/* v2.0.289 - ajustes hero ficha de lugar: excerpt fuera, badges específicos y acceso a información útil */
.ip-poi-excerpt-outside{
  margin:0 0 22px;
  padding:18px 20px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:22px;
  background:linear-gradient(135deg,rgba(228,244,243,.88),rgba(255,255,255,.96));
  color:var(--ip-ink-2);
  font-size:clamp(1rem,1.4vw,1.14rem);
  line-height:1.55;
  font-weight:720;
}
#informacion-util{
  scroll-margin-top:112px;
}
.ip-page-hero-overlay .ip-page-meta-chip[href$="#informacion-util"],
.ip-page-hero-overlay .ip-page-meta-chip[href="#informacion-util"]{
  min-width:38px;
  justify-content:center;
  background:var(--ip-lime)!important;
  border-color:var(--ip-lime)!important;
  color:var(--ip-ink)!important;
  font-size:1.05rem;
  font-weight:1000;
  text-decoration:none;
}
.ip-page-hero-overlay .ip-page-meta-chip[href$="#informacion-util"]:hover,
.ip-page-hero-overlay .ip-page-meta-chip[href="#informacion-util"]:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 30px rgba(29,160,193,.28);
}
.ip-page-hero-overlay .ip-lead{
  display:none!important;
}
@media (max-width:640px){
  .ip-poi-excerpt-outside{padding:16px;border-radius:18px;margin-bottom:18px;font-size:.98rem}
  #informacion-util{scroll-margin-top:92px}
}

/* v2.0.289 - badges enlazables en lugares y corrección menú móvil cerrado */
@media (max-width:900px){
  .ip-main-nav{
    pointer-events:none!important;
  }
  .ip-main-nav.is-open{
    pointer-events:auto!important;
  }
  .ip-main-nav:not(.is-open) a,
  .ip-main-nav:not(.is-open) .sub-menu{
    pointer-events:none!important;
  }
}
.ip-page-hero-overlay .ip-page-meta-chip[href*="/tipo-lugar/"],
.ip-page-hero-overlay .ip-page-meta-chip[href*="/zona/"],
.ip-page-hero-overlay .ip-page-meta-chip[href*="/tipo-punto/"],
.ip-page-hero-overlay .ip-page-meta-chip[href*="ip_poi_tipo"],
.ip-page-hero-overlay .ip-page-meta-chip[href*="ip_zona"]{
  text-decoration:none;
}
.ip-page-hero-overlay .ip-page-meta-chip[href*="/tipo-lugar/"]:hover,
.ip-page-hero-overlay .ip-page-meta-chip[href*="/zona/"]:hover,
.ip-page-hero-overlay .ip-page-meta-chip[href*="/tipo-punto/"]:hover,
.ip-page-hero-overlay .ip-page-meta-chip[href*="ip_poi_tipo"]:hover,
.ip-page-hero-overlay .ip-page-meta-chip[href*="ip_zona"]:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.22)!important;
  border-color:rgba(255,255,255,.38)!important;
}

/* v2.0.289 - Folletos/Mapas en puntos de interés */
.ip-poi-brochures{
  margin:34px 0 30px;
  padding:24px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:28px;
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(228,244,243,.70));
  box-shadow:0 16px 44px rgba(7,19,22,.08);
}
.ip-poi-brochures > h2{
  margin:12px 0 18px;
  font-size:clamp(1.7rem,3vw,2.35rem);
  line-height:1;
  letter-spacing:-.055em;
}
.ip-poi-brochure-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.ip-poi-brochure-card{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:14px;
  align-items:start;
  padding:18px;
  border:1px solid rgba(7,19,22,.10);
  border-radius:22px;
  background:rgba(255,255,255,.86);
  box-shadow:0 12px 30px rgba(7,19,22,.06);
}
.ip-poi-brochure-icon{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:15px;
  background:var(--ip-cloud);
  font-size:1.22rem;
}
.ip-poi-brochure-card h3{
  margin:0;
  color:var(--ip-ink);
  font-size:1.08rem;
  line-height:1.15;
  letter-spacing:-.035em;
}
.ip-poi-brochure-card p{
  margin:8px 0 0;
  color:var(--ip-muted);
  font-size:.92rem;
  line-height:1.45;
}
.ip-poi-brochure-link{
  grid-column:1 / -1;
  width:100%;
  justify-content:center;
  min-height:44px;
  margin-top:2px;
}
.ip-poi-brochure-source{
  display:grid;
  gap:5px;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(7,19,22,.10);
  color:var(--ip-muted);
  font-size:.9rem;
}
.ip-poi-brochure-source strong{
  color:var(--ip-ink);
  font-size:.92rem;
}
.ip-poi-brochure-source a{
  color:var(--ip-sea-dark);
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:3px;
}
@media (max-width:760px){
  .ip-poi-brochures{padding:18px;border-radius:24px;margin:28px 0 26px}
  .ip-poi-brochure-grid{grid-template-columns:1fr}
  .ip-poi-brochure-card{padding:16px;border-radius:20px}
}

/* v2.0.289 admin, login y 404 personalizados */
.ip-404-page{
  padding-top:22px;
}
.ip-404-hero{
  padding:28px 0 78px;
}
.ip-404-card{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:310px 1fr;
  gap:34px;
  align-items:center;
  padding:42px;
  border:1px solid var(--ip-line);
  border-radius:42px;
  background:
    radial-gradient(circle at 16% 20%, rgba(141,229,220,.42), transparent 32%),
    radial-gradient(circle at 86% 12%, rgba(29,160,193,.30), transparent 30%),
    rgba(255,255,255,.86);
  box-shadow:var(--ip-shadow-soft);
}
.ip-404-card:after{
  content:"404";
  position:absolute;
  right:-26px;
  bottom:-44px;
  color:rgba(7,19,22,.045);
  font-size:clamp(8rem,18vw,16rem);
  line-height:.8;
  font-weight:1000;
  letter-spacing:-.12em;
  pointer-events:none;
}
.ip-404-logo-wrap{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:260px;
  padding:28px;
  border:1px solid var(--ip-line);
  border-radius:34px;
  background:rgba(255,255,255,.74);
  box-shadow:0 18px 52px rgba(7,19,22,.10);
  backdrop-filter:blur(16px);
}
.ip-404-logo{
  width:min(100%,260px);
  filter:drop-shadow(0 10px 22px rgba(7,19,22,.10));
}
.ip-404-copy{
  position:relative;
  z-index:1;
}
.ip-404-copy .ip-eyebrow{
  margin:18px 0 14px;
}
.ip-404-copy .ip-title-lg{
  max-width:780px;
}
.ip-404-search{
  display:flex;
  gap:10px;
  align-items:center;
  margin:28px 0 18px;
  padding:9px;
  border:1px solid var(--ip-line);
  border-radius:999px;
  background:rgba(255,255,255,.84);
  box-shadow:0 14px 34px rgba(7,19,22,.07);
}
.ip-404-search input{
  flex:1;
  min-width:0;
  min-height:48px;
  padding:0 18px;
  border:0;
  outline:0;
  background:transparent;
  color:var(--ip-ink);
  font-weight:750;
}
.ip-404-search input::placeholder{
  color:rgba(102,128,131,.82);
}
.ip-404-search .ip-button-lime{
  flex:0 0 auto;
  box-shadow:none;
}
.ip-404-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}
.ip-404-quick{
  margin-top:22px;
}
.ip-404-quick a{
  min-height:140px;
  padding:22px;
  border:1px solid var(--ip-line);
  border-radius:26px;
  background:rgba(255,255,255,.82);
  box-shadow:0 14px 44px rgba(7,19,22,.08);
  transition:.22s ease;
}
.ip-404-quick a:hover{
  transform:translateY(-3px);
  box-shadow:0 22px 58px rgba(7,19,22,.13);
}
.ip-404-quick strong{
  display:block;
  margin:0 0 8px;
  color:var(--ip-ink);
  font-size:1.08rem;
  letter-spacing:-.035em;
}
.ip-404-quick span{
  display:block;
  color:var(--ip-muted);
  font-size:.94rem;
  line-height:1.45;
}
@media (max-width:900px){
  .ip-404-card{grid-template-columns:1fr;padding:24px;border-radius:30px;gap:20px}
  .ip-404-logo-wrap{min-height:150px;border-radius:24px;padding:22px}
  .ip-404-logo{width:min(100%,240px)}
  .ip-404-search{border-radius:24px;display:grid;padding:10px}
  .ip-404-search .ip-button-lime{width:100%}
  .ip-404-actions .ip-button,.ip-404-actions .ip-button-ghost{width:100%}
  .ip-404-quick{grid-template-columns:1fr}
}


/* v2.0.289 - ajustes login y hero de fichas de lugares */
.single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero:after{
  display:none!important;
  content:none!important;
}


/* v2.0.289 - menú superior con bloque Prepárate */

/* v2.0.289 - tarjetas meteorológicas con iconos y color dinámico */
.ip-weather-metrics .ip-weather-metric{
  position:relative;
  overflow:hidden;
  display:grid!important;
  grid-template-columns:auto 1fr;
  grid-template-areas:"icon label" "icon value" "icon note";
  column-gap:14px;
  row-gap:3px;
  align-content:center!important;
  align-items:center;
  min-height:146px;
  padding:18px!important;
  border-radius:26px!important;
  border:1px solid rgba(7,19,22,.09)!important;
  background:linear-gradient(135deg,#fff 0%,#f3f8f7 100%)!important;
  box-shadow:0 14px 42px rgba(7,19,22,.08)!important;
  isolation:isolate;
}
.ip-weather-metrics .ip-weather-metric:after{
  content:"";
  position:absolute;
  right:-34px;
  bottom:-42px;
  width:112px;
  height:112px;
  border-radius:999px;
  background:rgba(81,184,187,.14);
  z-index:-1;
}
.ip-weather-metric-icon{
  grid-area:icon;
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(7,19,22,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 10px 24px rgba(7,19,22,.08);
  font-size:1.55rem;
}
.ip-weather-metrics .ip-weather-metric-label{
  grid-area:label;
  font-size:.76rem!important;
  line-height:1.1;
  color:rgba(7,19,22,.62)!important;
  font-weight:900!important;
  text-transform:uppercase;
  letter-spacing:.055em;
}
.ip-weather-metrics .ip-weather-metric strong{
  grid-area:value;
  margin-top:2px!important;
  font-size:clamp(1.35rem,2.15vw,2.05rem)!important;
  color:#071316!important;
}
.ip-weather-metrics .ip-weather-metric small{
  grid-area:note;
  display:block;
  min-height:1.05em;
  color:rgba(7,19,22,.55);
  font-size:.78rem;
  font-weight:850;
}
.ip-weather-metric.is-hot{background:linear-gradient(135deg,#fff1e9 0%,#ffd8c9 100%)!important;border-color:rgba(255,141,107,.34)!important}.ip-weather-metric.is-hot:after{background:rgba(255,141,107,.30)}.ip-weather-metric.is-hot .ip-weather-metric-icon{background:#fff6f1;color:#9f351e}
.ip-weather-metric.is-warm{background:linear-gradient(135deg,#fff8d7 0%,#eef7a7 100%)!important;border-color:rgba(29,160,193,.62)!important}.ip-weather-metric.is-warm:after{background:rgba(29,160,193,.36)}.ip-weather-metric.is-warm .ip-weather-metric-icon{background:#ffffee;color:#6b7313}
.ip-weather-metric.is-comfort{background:linear-gradient(135deg,#ecfffb 0%,#c8f5ef 100%)!important;border-color:rgba(81,184,187,.28)!important}.ip-weather-metric.is-comfort:after{background:rgba(81,184,187,.22)}.ip-weather-metric.is-comfort .ip-weather-metric-icon{background:#f5fffd;color:#10616a}
.ip-weather-metric.is-cool{background:linear-gradient(135deg,#f0fbff 0%,#d7eef8 100%)!important;border-color:rgba(81,184,187,.18)!important}.ip-weather-metric.is-cool:after{background:rgba(141,229,220,.24)}.ip-weather-metric.is-cool .ip-weather-metric-icon{background:#fff;color:#10616a}
.ip-weather-metric.is-dry{background:linear-gradient(135deg,#fffaf0 0%,#f4ead7 100%)!important}.ip-weather-metric.is-dry:after{background:rgba(244,234,215,.78)}.ip-weather-metric.is-dry .ip-weather-metric-icon{background:#fffdf8;color:#9a6b28}
.ip-weather-metric.is-ok{background:linear-gradient(135deg,#f8fff2 0%,#dff6c8 100%)!important;border-color:rgba(123,187,70,.28)!important}.ip-weather-metric.is-ok:after{background:rgba(123,187,70,.20)}.ip-weather-metric.is-ok .ip-weather-metric-icon{background:#fbfff7;color:#47751c}
.ip-weather-metric.is-humid{background:linear-gradient(135deg,#edfdfa 0%,#bdeee8 100%)!important;border-color:rgba(81,184,187,.34)!important}.ip-weather-metric.is-humid:after{background:rgba(81,184,187,.28)}.ip-weather-metric.is-humid .ip-weather-metric-icon{background:#f6fffe;color:#10616a}
.ip-weather-metric.is-calm{background:linear-gradient(135deg,#ffffff 0%,#eef7f6 100%)!important}.ip-weather-metric.is-calm:after{background:rgba(141,229,220,.18)}.ip-weather-metric.is-breeze{background:linear-gradient(135deg,#eefeff 0%,#c9f2f4 100%)!important;border-color:rgba(81,184,187,.25)!important}.ip-weather-metric.is-breeze:after{background:rgba(81,184,187,.18)}
.ip-weather-metric.is-windy{background:linear-gradient(135deg,#eaf8fa 0%,#aee1e5 100%)!important;border-color:rgba(16,97,106,.30)!important}.ip-weather-metric.is-windy:after{background:rgba(16,97,106,.18)}.ip-weather-metric.is-windy .ip-weather-metric-icon{background:#f8ffff;color:#0a3f48}
.ip-weather-metric.is-rain{background:linear-gradient(135deg,#edf7ff 0%,#c9e4fb 100%)!important;border-color:rgba(79,145,199,.30)!important}.ip-weather-metric.is-rain:after{background:rgba(79,145,199,.22)}.ip-weather-metric.is-rain .ip-weather-metric-icon{background:#f8fcff;color:#1a638c}
.ip-weather-metric.is-uv-low{background:linear-gradient(135deg,#f8fff1 0%,#e3f5c9 100%)!important}.ip-weather-metric.is-uv-medium{background:linear-gradient(135deg,#fffbe7 0%,#f7e8a5 100%)!important}.ip-weather-metric.is-uv-high{background:linear-gradient(135deg,#fff2df 0%,#ffc889 100%)!important}.ip-weather-metric.is-uv-very-high{background:linear-gradient(135deg,#fff0ea 0%,#ffad95 100%)!important}.ip-weather-metric.is-uv-extreme{background:linear-gradient(135deg,#fff0f6 0%,#e4bfd8 100%)!important}
.ip-weather-metric.is-sunrise{background:linear-gradient(135deg,#fff8ed 0%,#ffe2b8 100%)!important}.ip-weather-metric.is-sunset{background:linear-gradient(135deg,#f4f3ff 0%,#d8d6f3 100%)!important}.ip-weather-metric.is-updated{background:linear-gradient(135deg,#ffffff 0%,#eaf3f4 100%)!important}
@media (max-width:640px){
  .ip-weather-metrics .ip-weather-metric{min-height:118px;padding:14px!important;grid-template-columns:44px 1fr;column-gap:10px;border-radius:22px!important}
  .ip-weather-metric-icon{width:44px;height:44px;border-radius:16px;font-size:1.3rem}
  .ip-weather-metrics .ip-weather-metric strong{font-size:1.25rem!important;letter-spacing:-.04em!important}
  .ip-weather-metrics .ip-weather-metric-label{font-size:.68rem!important}
  .ip-weather-metrics .ip-weather-metric small{font-size:.72rem}
}


/* v2.0.289 - menú más corto y ajustes de home */
.ip-mobile-map-menu-item{display:none!important}
@media (max-width:900px){
  .ip-mobile-map-menu-item{display:block!important;margin-top:8px;padding-top:8px;border-top:1px solid var(--ip-line)}
  .ip-mobile-map-menu-button{
    display:flex!important;
    justify-content:center!important;
    min-height:48px!important;
    border-radius:999px!important;
    background:var(--ip-lime)!important;
    color:var(--ip-ink)!important;
    font-weight:950!important;
    box-shadow:0 12px 26px rgba(7,19,22,.12)!important;
  }
  .ip-mobile-map-menu-button:before{content:"📍";margin-right:8px}
}

/* v2.0.289 - duración configurable del carrusel desde Personalizar > Tiempo slider portada */


/* v2.0.289 - menú y botón superiores más grandes solo en portada */
@media (min-width:901px){
  .home .ip-site-header .ip-header-right,
  .front-page .ip-site-header .ip-header-right{gap:14px}
  .home .ip-site-header .ip-main-nav,
  .front-page .ip-site-header .ip-main-nav{padding:6px;border-radius:18px}
  .home .ip-site-header .ip-main-nav a,
  .front-page .ip-site-header .ip-main-nav a{min-height:42px;padding:0 17px;border-radius:14px;font-size:.9rem}
  .home .ip-site-header .ip-main-nav .sub-menu a,
  .front-page .ip-site-header .ip-main-nav .sub-menu a{min-height:40px;font-size:.88rem;padding:0 15px}
  .home .ip-site-header .ip-header-cta,
  .front-page .ip-site-header .ip-header-cta{min-height:46px;padding:0 20px;font-size:.9rem;border-radius:999px}
  .home .ip-site-header .ip-header-cta:before,
  .front-page .ip-site-header .ip-header-cta:before{font-size:1.08rem}
}

/* v2.0.289 - slugs SEO para archivos: lugares-de-interes-de-peniscola, rutas-por-peniscola, historia-de-peniscola y recetas-de-peniscola */


/* v2.0.289 - FAQs destacadas en portada */
.ip-home-faqs{padding-bottom:clamp(44px,7vw,86px)}
.ip-home-faq-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}
.ip-home-faq-list{display:grid;gap:12px}
.ip-home-faq-item{border:1px solid var(--ip-line);border-radius:22px;background:#fff;box-shadow:var(--ip-shadow-soft);overflow:hidden;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.ip-home-faq-item:hover{transform:translateY(-2px);border-color:rgba(81,184,187,.34);box-shadow:0 18px 42px rgba(7,19,22,.09)}
.ip-home-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;cursor:pointer;list-style:none;font-weight:950;color:var(--ip-ink)}
.ip-home-faq-item summary::-webkit-details-marker{display:none}
.ip-home-faq-item summary span{font-size:clamp(1rem,1.4vw,1.16rem);line-height:1.22;letter-spacing:-.02em}
.ip-home-faq-item summary b{flex:0 0 32px;display:grid;place-items:center;width:32px;height:32px;border-radius:999px;background:var(--ip-soft);color:var(--ip-sea-dark);font-size:1.28rem;line-height:1;transition:transform .2s ease,background .2s ease,color .2s ease}
.ip-home-faq-item[open]{border-color:rgba(81,184,187,.45);background:linear-gradient(180deg,#fff 0%,var(--ip-soft) 100%)}
.ip-home-faq-item[open] summary b{transform:rotate(45deg);background:var(--ip-lime);color:var(--ip-ink)}
.ip-home-faq-answer{padding:0 20px 20px;color:var(--ip-muted);font-weight:650;line-height:1.58}
.ip-home-faq-answer p:first-child{margin-top:0}.ip-home-faq-answer p:last-child{margin-bottom:0}
.ip-home-faq-answer a{color:var(--ip-sea-dark);font-weight:850;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.ip-home-faq-cta{position:sticky;top:110px;padding:24px;border-radius:30px;background:linear-gradient(135deg,var(--ip-ink) 0%,#12383e 100%);color:#fff;box-shadow:var(--ip-shadow)}
.ip-home-faq-cta .ip-eyebrow{color:var(--ip-lime)}
.ip-home-faq-cta h3{margin:8px 0 10px;font-size:clamp(1.55rem,2.6vw,2.25rem);line-height:.96;letter-spacing:-.055em;color:#fff}
.ip-home-faq-cta p{margin:0 0 18px;color:rgba(255,255,255,.74)}
.ip-home-faq-cta .ip-button-lime{width:100%;justify-content:center;text-align:center}
@media (max-width:900px){.ip-home-faq-wrap{grid-template-columns:1fr}.ip-home-faq-cta{position:static;order:-1}.ip-home-faq-cta .ip-button-lime{width:auto}}
@media (max-width:640px){.ip-home-faq-item summary{padding:16px}.ip-home-faq-answer{padding:0 16px 16px}.ip-home-faq-cta{border-radius:26px;padding:20px}}

/* v2.0.363 - Home: Blog del Papa Luna */
.ip-home-blog{
  padding-top:clamp(30px,5vw,62px);
  padding-bottom:clamp(34px,5vw,66px);
  background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(236,248,248,.52) 100%);
}
.ip-home-blog-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.ip-home-blog-card{
  display:grid;
  gap:12px;
  min-width:0;
}
.ip-home-blog-media{
  position:relative;
  isolation:isolate;
  display:block;
  aspect-ratio:1/1;
  border-radius:28px;
  overflow:hidden;
  background:var(--ip-cloud);
  box-shadow:0 18px 50px rgba(7,19,22,.1);
  color:#fff;
}
.ip-home-blog-media:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(7,19,22,.04) 0%,rgba(7,19,22,.16) 42%,rgba(7,19,22,.78) 100%);
  pointer-events:none;
}
.ip-home-blog-media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  transition:transform .55s ease;
}
.ip-home-blog-card:hover .ip-home-blog-media img{
  transform:scale(1.05);
}
.ip-home-blog-media time{
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--ip-ink);
  font-size:.74rem;
  font-weight:950;
  line-height:1;
  box-shadow:0 12px 28px rgba(0,0,0,.18);
}
.ip-home-blog-media h3{
  position:absolute;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:2;
  margin:0;
  color:#fff;
  font-size:clamp(1.08rem,1.7vw,1.42rem);
  line-height:1.02;
  letter-spacing:-.052em;
  text-wrap:balance;
  text-shadow:0 14px 34px rgba(0,0,0,.38);
}
.ip-home-blog-button{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 16px;
  border-radius:999px;
  background:var(--ip-lime);
  color:#fff;
  font-weight:950;
  text-align:center;
  box-shadow:0 14px 30px rgba(29,160,193,.22);
}
.ip-home-blog-button:hover,
.ip-home-blog-button:focus-visible{
  background:var(--ip-sea-dark);
  color:#fff;
  transform:translateY(-1px);
}
.ip-home-blog-footer{
  display:flex;
  justify-content:center;
  margin-top:24px;
}
.ip-home-blog-all{
  min-width:210px;
  justify-content:center;
  text-align:center;
}
@media (max-width:900px){
  .ip-home-blog-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:640px){
  .ip-home-blog-grid{
    grid-template-columns:1fr;
    gap:16px;
  }
  .ip-home-blog-media{
    border-radius:22px;
  }
  .ip-home-blog-button,
  .ip-home-blog-all{
    width:100%;
  }
}


/* v2.0.289 - FAQs: categorías completas y texto limpio */
.ip-faq-hero-panel p.ip-faq-admin-note{display:none!important}
.ip-faq-category-nav{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:10px;
  overflow:visible!important;
  border-radius:30px!important;
  padding:12px!important;
}
.ip-faq-category-nav a{
  width:100%;
  justify-content:space-between;
  white-space:normal!important;
  min-height:48px;
  line-height:1.15;
}
.ip-faq-category-nav a span{min-width:0}
@media (max-width:760px){
  .ip-faq-category-nav{
    position:relative;
    top:auto;
    grid-template-columns:1fr 1fr;
    margin-bottom:22px;
  }
  .ip-faq-category-nav a{font-size:.82rem;padding:10px 11px}
  .ip-faq-category-nav small{min-width:22px;height:22px;font-size:.72rem}
}
@media (max-width:430px){
  .ip-faq-category-nav{grid-template-columns:1fr}
}


/* v2.0.289 - hero de eventos y cartel ampliable */
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
  min-height:clamp(340px,42vw,520px)!important;
  background-position:center center!important;
}
.single-ip_evento .ip-page-hero-overlay .ip-page-meta-chip{
  text-decoration:none;
}
.ip-event-poster-card{
  margin:0 0 18px;
  padding:18px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:26px;
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(228,244,243,.72));
  box-shadow:0 16px 44px rgba(7,19,22,.08);
}
.ip-event-poster-card .ip-eyebrow{
  margin-bottom:14px;
}
.ip-event-poster-button{
  position:relative;
  display:block;
  width:100%;
  padding:0;
  border:0;
  border-radius:22px;
  overflow:hidden;
  background:var(--ip-cloud);
  box-shadow:0 14px 34px rgba(7,19,22,.12);
  cursor:zoom-in;
}
.ip-event-poster-image{
  width:100%;
  height:auto;
  max-height:560px;
  object-fit:cover;
  transition:transform .28s ease, filter .28s ease;
}
.ip-event-poster-button:hover .ip-event-poster-image{
  transform:scale(1.025);
  filter:saturate(1.06) contrast(1.02);
}
.ip-event-poster-zoom{
  position:absolute;
  right:12px;
  bottom:12px;
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:16px;
  background:rgba(255,255,255,.92);
  color:var(--ip-ink);
  font-size:1.05rem;
  font-weight:1000;
  box-shadow:0 14px 34px rgba(7,19,22,.20);
  backdrop-filter:blur(14px);
}
.ip-image-lightbox[hidden]{display:none!important}
.ip-image-lightbox{
  position:fixed;
  inset:0;
  z-index:100100;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}
.ip-image-lightbox.is-open{
  opacity:1;
  pointer-events:auto;
}
.ip-image-lightbox-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(7,19,22,.76);
  backdrop-filter:blur(8px);
  cursor:zoom-out;
}
.ip-image-lightbox-panel{
  position:relative;
  z-index:1;
  width:min(980px,94vw);
  max-height:92vh;
  display:flex;
  align-items:center;
  justify-content:center;
}
.ip-image-lightbox-panel img{
  width:auto;
  max-width:100%;
  max-height:92vh;
  border-radius:24px;
  box-shadow:0 28px 90px rgba(0,0,0,.42);
  background:#fff;
}
.ip-image-lightbox-close{
  position:absolute;
  top:-16px;
  right:-16px;
  z-index:2;
  width:46px;
  height:46px;
  border:0;
  border-radius:999px;
  background:var(--ip-lime);
  color:var(--ip-ink);
  font-size:1.55rem;
  line-height:1;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 18px 44px rgba(0,0,0,.26);
}
body.ip-lightbox-open{overflow:hidden}
.single-ip_evento .ip-image-lightbox{z-index:100100!important}
body > .ip-image-lightbox{z-index:100100!important}
@media (max-width:640px){
  .ip-event-poster-card{padding:16px;border-radius:22px}
  .ip-event-poster-button{border-radius:18px}
  .ip-event-poster-image{max-height:470px}
  .ip-image-lightbox{padding:14px}
  .ip-image-lightbox-panel img{border-radius:18px;max-height:88vh}
  .ip-image-lightbox-close{top:8px;right:8px;width:42px;height:42px}
}
.ip-event-other-action{margin-top:24px}
@media (max-width:640px){
  .ip-event-other-action .ip-button-lime{width:100%;text-align:center}
}
.ip-event-poster-title{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 14px;
  min-height:30px;
  padding:7px 10px;
  border:1px solid var(--ip-line);
  border-radius:999px;
  background:rgba(255,255,255,.76);
  color:var(--ip-sea-dark);
  font-size:.76rem;
  font-weight:850;
  line-height:1;
  letter-spacing:-.01em;
  backdrop-filter:blur(14px);
}
.ip-event-poster-title:before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--ip-sea);
  box-shadow:0 0 0 4px rgba(81,184,187,.16);
}


/* v2.0.289 - ajustes hero individual de eventos */
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero:after{
  display:none!important;
  content:none!important;
}
.ip-after-hero-breadcrumbs{
  padding:14px 0 0;
}
.ip-after-hero-breadcrumbs .ip-page-breadcrumbs{
  margin:0;
  padding:12px 0 0;
}
.single-ip_evento .ip-page-hero-overlay + .ip-after-hero-breadcrumbs{
  margin-top:-6px;
}
@media (max-width:640px){
  .ip-after-hero-breadcrumbs{padding-top:10px}
}


/* v2.0.289 - eventos: migas antes del hero y fechas limpias */
.ip-before-hero-breadcrumbs{
  padding:14px 0 0;
}
.ip-before-hero-breadcrumbs .ip-page-breadcrumbs{
  margin:0;
  padding:0;
}
.single-ip_evento .ip-before-hero-breadcrumbs + .ip-page-hero-overlay,
.single-ip_evento .ip-before-hero-breadcrumbs + .ip-page-hero,
.single-ip_poi .ip-before-hero-breadcrumbs + .ip-page-hero-overlay,
.single-ip_poi .ip-before-hero-breadcrumbs + .ip-page-hero{
  padding-top:10px!important;
}
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero:after{
  display:none!important;
  content:none!important;
}
@media (max-width:640px){
  .ip-before-hero-breadcrumbs{padding-top:10px}
  .single-ip_evento .ip-before-hero-breadcrumbs + .ip-page-hero-overlay,
  .single-ip_evento .ip-before-hero-breadcrumbs + .ip-page-hero,
  .single-ip_poi .ip-before-hero-breadcrumbs + .ip-page-hero-overlay,
  .single-ip_poi .ip-before-hero-breadcrumbs + .ip-page-hero{padding-top:8px!important}
}


/* v2.0.289 - tarjetas de eventos con estética unificada y precio visible */
.ip-event-card .ip-card-kicker .ip-chip.lime{
  background:rgba(29,160,193,.5);
  color:#4d5a05;
  border-color:rgba(77,90,5,.12);
}
.ip-event-card .ip-card-meta .ip-event-price-chip{
  background:rgba(255,255,255,.96);
  color:var(--ip-sea-dark);
  border-color:rgba(16,97,106,.18);
  font-weight:850;
}
.ip-event-card .ip-button-ghost{
  display:flex;
  align-items:center;
  justify-content:center;
}


/* v2.0.289 - eventos: el hero y las tarjetas muestran rango de fechas solo si existe fecha fin */

/* v2.0.289 - filtros móviles de agenda y rutas a eventos */
.ip-agenda-filter-toggle{
  display:none;
  width:100%;
  min-height:48px;
  margin:0 0 12px;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid rgba(16,97,106,.18);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(228,244,243,.96),#fff);
  color:var(--ip-ink);
  font-weight:950;
  cursor:pointer;
  box-shadow:0 12px 30px rgba(7,19,22,.07);
}
.ip-agenda-filter-toggle:after{
  content:"⌄";
  font-size:1rem;
  transition:transform .2s ease;
}
.ip-agenda-filter-toggle[aria-expanded="true"]:after{
  transform:rotate(180deg);
}
.ip-event-single-map-shell{
  margin-top:18px;
}
@media (max-width:640px){
  .ip-agenda-filter-toggle{display:inline-flex}
  .ip-filter-panel-agenda:not(.is-open){display:none!important}
  .ip-filter-panel-agenda.is-open{display:grid!important}
}


/* v2.0.289 - eventos relacionados en fichas de puntos de interés */
.ip-related-events-section{
  padding-top:18px;
  background:linear-gradient(180deg,rgba(243,248,247,.3),rgba(255,255,255,0));
}
.ip-related-events-head p{
  max-width:680px;
  margin:12px 0 0;
  color:var(--ip-muted);
}
.ip-related-events-list{
  display:grid;
  gap:16px;
  max-width:920px;
}
.ip-related-event-summary{
  position:relative;
  display:grid;
  grid-template-columns:210px 1fr;
  gap:18px;
  align-items:stretch;
  padding:14px;
  border:1px solid var(--ip-line);
  border-radius:26px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--ip-shadow-soft);
  overflow:hidden;
}
.ip-related-event-media{
  display:block;
  min-height:160px;
  border-radius:20px;
  overflow:hidden;
  background:var(--ip-cloud);
}
.ip-related-event-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.ip-related-event-summary:hover .ip-related-event-media img{transform:scale(1.04)}
.ip-related-event-content{
  display:flex;
  min-width:0;
  flex-direction:column;
  align-items:flex-start;
  padding:6px 4px 4px;
}
.ip-related-event-content h3{
  margin:8px 0 8px;
  font-size:clamp(1.25rem,2.2vw,1.75rem);
  line-height:1.05;
  letter-spacing:0;
}
.ip-related-event-content h3 a{color:inherit;text-decoration:none}
.ip-related-event-content p{
  margin:0 0 14px;
  color:var(--ip-muted);
  line-height:1.6;
}
.ip-related-event-button{
  margin-top:auto;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.ip-related-events-footer{
  margin-top:18px;
  display:flex;
  justify-content:flex-start;
}
@media (max-width:760px){
  .ip-related-event-summary{grid-template-columns:1fr;padding:12px;border-radius:22px}
  .ip-related-event-media{min-height:190px}
  .ip-related-events-footer .ip-button{width:100%;justify-content:center;text-align:center}
}


/* v2.0.289 - ajustes de hero de evento y filtros móviles de agenda */
.single-ip_evento .ip-page-hero-overlay .ip-title-lg{
  font-size:clamp(2.35rem,5.2vw,4.8rem)!important;
  line-height:.94!important;
  letter-spacing:-.065em!important;
  max-width:980px!important;
}
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
  min-height:clamp(310px,38vw,480px)!important;
}
.ip-agenda-filter-toggle{
  position:relative;
}
.ip-agenda-filter-toggle:after{
  content:"+"!important;
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(81,184,187,.14);
  color:var(--ip-sea-dark);
  font-size:1rem;
  font-weight:1000;
  line-height:1;
  transform:none!important;
}
.ip-agenda-filter-toggle[aria-expanded="true"]:after{
  content:"−"!important;
  transform:none!important;
}
@media (max-width:640px){
  .ip-agenda-filter-toggle{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
  }
  .ip-filter-panel-agenda:not(.is-open){display:none!important}
  .ip-filter-panel-agenda.is-open{display:grid!important}
}
@media (min-width:641px){
  .ip-agenda-filter-toggle{display:none!important}
  .ip-filter-panel-agenda{display:grid!important}
}
@media (max-width:640px){
  .single-ip_evento .ip-page-hero-overlay .ip-title-lg{
    font-size:clamp(2rem,10.5vw,3.35rem)!important;
    line-height:.96!important;
    letter-spacing:-.055em!important;
  }
  .single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
    min-height:300px!important;
  }
}


/* v2.0.289 - evento individual: título más equilibrado y movimiento suave del hero */
.single-ip_evento .ip-page-hero-overlay .ip-title-lg{
  font-size:clamp(1.95rem,4.25vw,3.85rem)!important;
  line-height:1!important;
  letter-spacing:-.055em!important;
  max-width:880px!important;
}
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
  min-height:clamp(310px,38vw,480px)!important;
  background-size:cover!important;
  background-position:center 50%!important;
  animation:ip-event-hero-drift 22s ease-in-out infinite alternate;
  will-change:background-position;
}
@keyframes ip-event-hero-drift{
  0%{background-position:center 42%}
  50%{background-position:center 56%}
  100%{background-position:center 48%}
}
@media (prefers-reduced-motion:reduce){
  .single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
    animation:none!important;
    background-position:center center!important;
  }
}
@media (max-width:640px){
  .single-ip_evento .ip-page-hero-overlay .ip-title-lg{
    font-size:clamp(1.72rem,8.4vw,2.72rem)!important;
    line-height:1.02!important;
    letter-spacing:-.045em!important;
  }
  .single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
    min-height:300px!important;
  }
}


/* v2.0.289 - ajustes POI/eventos */
.single-ip_evento .ip-page-hero-overlay .ip-title-lg{
  font-size:clamp(1.55rem,3.35vw,3.05rem)!important;
  line-height:1.04!important;
  letter-spacing:-.045em!important;
  max-width:820px!important;
}
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
  background-image:none!important;
  background-color:#0b2528!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image .ip-page-hero-image-accent{
  display:block!important;
  position:absolute!important;
  inset:-6% 0!important;
  width:100%!important;
  height:112%!important;
  aspect-ratio:auto!important;
  border-radius:0!important;
  background-image:var(--ip-page-hero-image)!important;
  background-size:cover!important;
  background-position:center center!important;
  opacity:1!important;
  filter:saturate(1.08) contrast(1.03)!important;
  mask-image:none!important;
  pointer-events:none!important;
  z-index:0!important;
  transform:scale(1.08) translateY(-2.25%);
  transform-origin:center center;
  animation:ip-event-hero-layer-drift 18s ease-in-out infinite alternate!important;
  will-change:transform;
}
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image:before{
  z-index:1!important;
  background:
    radial-gradient(circle at 16% 10%,rgba(29,160,193,.18),transparent 30%),
    linear-gradient(180deg,rgba(7,19,22,.10) 0%,rgba(7,19,22,.50) 54%,rgba(7,19,22,.86) 100%),
    linear-gradient(90deg,rgba(7,19,22,.50),rgba(7,19,22,.06) 62%)!important;
}
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-content{
  z-index:3!important;
}
@keyframes ip-event-hero-layer-drift{
  0%{transform:scale(1.08) translateY(-3.5%)}
  50%{transform:scale(1.105) translateY(1.5%)}
  100%{transform:scale(1.09) translateY(3.5%)}
}
@media (prefers-reduced-motion:reduce){
  .single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image .ip-page-hero-image-accent{
    animation:none!important;
    transform:scale(1.04)!important;
  }
}
@media (max-width:640px){
  .single-ip_evento .ip-page-hero-overlay .ip-title-lg{
    font-size:clamp(1.38rem,7.3vw,2.22rem)!important;
    line-height:1.08!important;
  }
}


/* v2.0.289 - evento individual: movimiento del hero más perceptible */
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image .ip-page-hero-image-accent{
  animation:ip-event-hero-layer-drift-fast 10.5s ease-in-out infinite alternate!important;
}
@keyframes ip-event-hero-layer-drift-fast{
  0%{transform:scale(1.08) translateY(-4.75%)}
  45%{transform:scale(1.12) translateY(2.25%)}
  100%{transform:scale(1.095) translateY(4.75%)}
}
@media (prefers-reduced-motion:reduce){
  .single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image .ip-page-hero-image-accent{
    animation:none!important;
    transform:scale(1.04)!important;
  }
}


/* v2.0.289 - evento individual: imagen completa con zooms y desplazamientos aleatorios */
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
  background-image:
    linear-gradient(180deg,rgba(7,19,22,.10) 0%,rgba(7,19,22,.54) 58%,rgba(7,19,22,.88) 100%),
    var(--ip-page-hero-image)!important;
  background-size:cover!important;
  background-position:center center!important;
  background-color:#0b2528!important;
}
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image .ip-page-hero-image-accent{
  inset:0!important;
  width:100%!important;
  height:100%!important;
  background-image:var(--ip-page-hero-image)!important;
  background-size:contain!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  opacity:.94!important;
  filter:saturate(1.08) contrast(1.04) drop-shadow(0 22px 52px rgba(0,0,0,.28))!important;
  transform:scale(.96) translate3d(0,0,0);
  transform-origin:center center;
  animation:ip-event-hero-roam-a var(--ip-event-hero-motion-duration,8.5s) ease-in-out infinite alternate!important;
  animation-delay:var(--ip-event-hero-motion-delay,0s)!important;
  will-change:transform;
}
.single-ip_evento .ip-event-hero-motion-1 .ip-page-hero-image-accent{animation-name:ip-event-hero-roam-a!important;transform-origin:center center!important}
.single-ip_evento .ip-event-hero-motion-2 .ip-page-hero-image-accent{animation-name:ip-event-hero-roam-b!important;transform-origin:42% 48%!important}
.single-ip_evento .ip-event-hero-motion-3 .ip-page-hero-image-accent{animation-name:ip-event-hero-roam-c!important;transform-origin:58% 44%!important}
.single-ip_evento .ip-event-hero-motion-4 .ip-page-hero-image-accent{animation-name:ip-event-hero-roam-d!important;transform-origin:50% 56%!important}
.single-ip_evento .ip-event-hero-motion-5 .ip-page-hero-image-accent{animation-name:ip-event-hero-roam-e!important;transform-origin:46% 52%!important}
@keyframes ip-event-hero-roam-a{
  0%{transform:scale(.94) translate3d(0,0,0)}
  22%{transform:scale(1.02) translate3d(-1.5%,1.8%,0)}
  48%{transform:scale(1.13) translate3d(4.5%,-3.2%,0)}
  74%{transform:scale(1.08) translate3d(-4%,3.6%,0)}
  100%{transform:scale(.98) translate3d(1.4%,-1.2%,0)}
}
@keyframes ip-event-hero-roam-b{
  0%{transform:scale(.95) translate3d(0,0,0)}
  25%{transform:scale(1.11) translate3d(-5.5%,-2%,0)}
  52%{transform:scale(1.03) translate3d(3.2%,3.8%,0)}
  78%{transform:scale(1.16) translate3d(5.2%,.8%,0)}
  100%{transform:scale(.97) translate3d(-1.8%,1%,0)}
}
@keyframes ip-event-hero-roam-c{
  0%{transform:scale(.93) translate3d(0,0,0)}
  20%{transform:scale(1.05) translate3d(2.5%,-4.2%,0)}
  50%{transform:scale(1.15) translate3d(-4.8%,2.7%,0)}
  76%{transform:scale(1.07) translate3d(4.2%,4.5%,0)}
  100%{transform:scale(.99) translate3d(-.8%,-1.2%,0)}
}
@keyframes ip-event-hero-roam-d{
  0%{transform:scale(.96) translate3d(0,0,0)}
  18%{transform:scale(1.10) translate3d(0,-5.5%,0)}
  46%{transform:scale(1.04) translate3d(-4.6%,1.6%,0)}
  72%{transform:scale(1.14) translate3d(4.6%,4%,0)}
  100%{transform:scale(.95) translate3d(0,0,0)}
}
@keyframes ip-event-hero-roam-e{
  0%{transform:scale(.94) translate3d(0,0,0)}
  24%{transform:scale(1.12) translate3d(5.2%,-2.6%,0)}
  55%{transform:scale(1.02) translate3d(-3.2%,4.8%,0)}
  80%{transform:scale(1.17) translate3d(-5.3%,-.8%,0)}
  100%{transform:scale(.98) translate3d(1.2%,1.4%,0)}
}
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image:before{
  background:
    radial-gradient(circle at 16% 10%,rgba(29,160,193,.16),transparent 30%),
    linear-gradient(180deg,rgba(7,19,22,.12) 0%,rgba(7,19,22,.36) 46%,rgba(7,19,22,.80) 100%),
    linear-gradient(90deg,rgba(7,19,22,.42),rgba(7,19,22,.08) 64%)!important;
}
@media (prefers-reduced-motion:reduce){
  .single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image .ip-page-hero-image-accent{
    animation:none!important;
    transform:scale(.96)!important;
  }
}
@media (max-width:640px){
  .single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image .ip-page-hero-image-accent{
    background-size:contain!important;
    animation-duration:var(--ip-event-hero-motion-duration,8s)!important;
  }
}


/* v2.0.289 - home: CTA de agenda bajo tarjetas y eventos compactos */
.ip-home-events .ip-section-head{
  align-items:flex-end;
}
.ip-home-events-footer{
  display:flex;
  justify-content:center;
  margin-top:22px;
}
.ip-home-events-cta{
  min-width:min(100%,260px);
  justify-content:center;
  text-align:center;
}
.ip-home-event-card .ip-card-media{
  position:relative;
  aspect-ratio:16/10;
}
.ip-home-event-date-badge{
  position:absolute;
  top:12px;
  right:12px;
  z-index:3;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:calc(100% - 24px);
  min-height:34px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.76);
  color:var(--ip-ink);
  font-size:.72rem;
  font-weight:950;
  line-height:1.08;
  letter-spacing:-.02em;
  box-shadow:0 12px 28px rgba(7,19,22,.16);
  backdrop-filter:blur(12px);
  text-align:right;
}
.ip-home-event-card .ip-card-body{
  gap:13px;
}
.ip-home-event-card .ip-card-kicker{
  order:2;
  margin:0;
}
.ip-home-event-card .ip-home-event-poi-chip{
  background:#fff;
  color:var(--ip-muted);
  border-color:var(--ip-line);
}
.ip-home-event-card .ip-card-excerpt,
.ip-home-event-card .ip-card-meta{
  display:none!important;
}
.ip-home-event-card .ip-button-ghost{
  order:5;
}
@media (max-width:640px){
  .ip-home-events-footer{margin-top:16px}
  .ip-home-events-cta{width:100%;min-width:0}
  .ip-home-event-date-badge{top:10px;right:10px;font-size:.68rem;max-width:calc(100% - 20px)}
}


/* v2.0.289 - agenda con tarjetas compactas como home y ajustes de título/CTA */
.ip-home-events .ip-title-md{
  white-space:nowrap;
  font-size:clamp(1.9rem,3.5vw,3.45rem);
}
.archive.post-type-archive-ip_evento .ip-home-event-card .ip-card-media,
.page-template-template-eventos .ip-home-event-card .ip-card-media{
  position:relative;
  aspect-ratio:16/10;
}
.archive.post-type-archive-ip_evento .ip-home-event-card .ip-card-body,
.page-template-template-eventos .ip-home-event-card .ip-card-body{
  gap:13px;
}
.archive.post-type-archive-ip_evento .ip-home-event-card .ip-card-kicker,
.page-template-template-eventos .ip-home-event-card .ip-card-kicker{
  order:2;
  margin:0;
}
.archive.post-type-archive-ip_evento .ip-home-event-card .ip-home-event-poi-chip,
.page-template-template-eventos .ip-home-event-card .ip-home-event-poi-chip{
  background:#fff;
  color:var(--ip-muted);
  border-color:var(--ip-line);
}
.archive.post-type-archive-ip_evento .ip-home-event-card .ip-button-ghost,
.page-template-template-eventos .ip-home-event-card .ip-button-ghost{
  order:5;
}
@media (max-width:760px){
  .ip-home-events .ip-title-md{
    white-space:normal;
    font-size:clamp(1.85rem,9vw,2.55rem);
  }
}

/* v2.0.289 - eventos con programación múltiple tipo cartel */
.ip-event-program-card{
  margin:0 0 18px;
  padding:20px;
  border:1px solid var(--ip-line);
  border-radius:24px;
  background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(228,244,243,.72));
  box-shadow:var(--ip-shadow-soft);
}
.ip-event-program-card h2{
  margin:0 0 2px;
  font-size:clamp(1.35rem,2.3vw,2rem);
  line-height:1.05;
  letter-spacing:-.04em;
}
.ip-event-program-list{display:grid;gap:6px}
.ip-event-program-month{
  display:inline-flex;
  width:max-content;
  margin:2px 0 2px;
  padding:7px 12px;
  border-radius:999px;
  background:var(--ip-lime);
  color:var(--ip-ink);
  font-size:.78rem;
  line-height:1;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.ip-event-program-list > .ip-event-program-month:first-child{margin-top:0}
.ip-event-program-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  padding:13px;
  border:1px solid rgba(7,19,22,.08);
  border-radius:18px;
  background:rgba(255,255,255,.86);
}
.ip-event-program-when{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  margin:0 0 7px;
  color:var(--ip-sea-dark);
  font-size:.78rem;
  font-weight:850;
  line-height:1.25;
}
.ip-event-program-when strong,
.ip-event-program-when span{display:inline}
.ip-event-program-when strong{
  color:inherit;
  font-weight:900;
}
.ip-event-program-when span{
  color:inherit;
  font-weight:850;
}
.ip-event-program-when .ip-event-program-when-separator{opacity:.55}
.ip-event-program-body h4{
  margin:0 0 5px;
  font-size:clamp(1.3rem,2vw,1.58rem);
  line-height:1.1;
  letter-spacing:0;
}
.ip-event-program-body p{margin:0;color:var(--ip-muted);font-size:.82rem;font-weight:750;line-height:1.35}
.ip-event-program-place-link{color:var(--ip-sea-dark);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.ip-event-program-place-link:hover,.ip-event-program-place-link:focus-visible{color:var(--ip-ink)}
.ip-event-program-body .ip-event-program-place{display:flex;align-items:center;gap:5px}
.ip-event-program-place svg{width:15px;height:15px;flex:0 0 15px;color:var(--ip-lime)}
.ip-event-program-body small{display:block;margin-top:5px;color:var(--ip-muted);line-height:1.35}
.ip-event-program-body .ip-event-program-note{margin:0 0 7px;font-size:.8rem}
.ip-event-program-action{
  display:flex;
  min-width:112px;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  gap:8px;
  padding-left:14px;
  border-left:1px solid var(--ip-line);
  text-align:center;
}
.ip-event-program-action strong{color:var(--ip-ink);font-size:1.05rem;line-height:1.1}
.ip-event-program-action a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:7px 12px;
  border-radius:6px;
  background:var(--ip-lime);
  color:#fff;
  font-size:.78rem;
  font-weight:900;
  text-decoration:none;
}
.ip-event-program-action a:hover,.ip-event-program-action a:focus-visible{background:var(--ip-sea-dark);color:#fff}
.ip-event-program-free{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:7px 12px;
  border:1px solid rgba(29,160,193,.32);
  border-radius:6px;
  background:var(--ip-soft);
  color:var(--ip-sea-dark);
  font-size:.78rem;
  font-weight:950;
}
@media (max-width:640px){
  .ip-event-program-card{padding:16px;border-radius:22px}
  .ip-event-program-item{grid-template-columns:1fr;gap:10px}
  .ip-event-program-body h4{font-size:1.28rem}
  .ip-event-program-when{font-size:.74rem}
  .ip-event-program-action{min-width:0;padding:10px 0 0;border-top:1px solid var(--ip-line);border-left:0}
  .ip-event-program-action a{width:100%}
}


/* v2.0.289 - el menú superior usa el mismo tamaño en portada y páginas interiores */
@media (min-width:901px){
  .ip-site-header .ip-header-right{gap:14px}
  .ip-site-header .ip-main-nav{padding:6px;border-radius:18px}
  .ip-site-header .ip-main-nav a{min-height:42px;padding:0 17px;border-radius:14px;font-size:.9rem}
  .ip-site-header .ip-main-nav .sub-menu a{min-height:40px;font-size:.88rem;padding:0 15px}
  .ip-site-header .ip-header-cta{min-height:46px;padding:0 20px;font-size:.9rem;border-radius:999px}
  .ip-site-header .ip-header-cta:before{font-size:1.08rem}
}

/* v2.0.289 - agenda por meses y filtros colapsados en todas las pantallas */
.ip-agenda-section .ip-agenda-filter-toggle{
  display:flex!important;
  width:max-content;
  min-width:0;
  min-height:46px;
  margin:0 0 18px auto;
  padding:0 18px 0 20px;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.ip-agenda-section .ip-filter-panel-agenda:not(.is-open){
  display:none!important;
}
.ip-agenda-section .ip-filter-panel-agenda.is-open{
  display:grid!important;
  margin-bottom:28px;
}
.ip-event-month-groups{
  display:grid;
  gap:42px;
}
.ip-event-month-group{
  display:block;
}
.ip-event-month-title{
  margin:0 0 18px;
  font-size:clamp(1.9rem,3.8vw,3.25rem);
  line-height:.92;
  letter-spacing:-.055em;
  color:var(--ip-ink);
}
.ip-event-month-title::after{
  content:"";
  display:block;
  width:74px;
  height:5px;
  margin-top:13px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--ip-sea),var(--ip-lime));
}
.ip-event-month-grid{
  align-items:stretch;
}
@media (max-width:640px){
  .ip-agenda-section .ip-agenda-filter-toggle{
    width:100%;
    margin:0 0 14px;
  }
  .ip-event-month-groups{
    gap:34px;
  }
  .ip-event-month-title{
    font-size:clamp(1.65rem,10vw,2.4rem);
  }
}


/* v2.0.289 - home: tiempo arriba, miniaturas abajo, CTA mapa turístico y ticker de próximos eventos */
@media (min-width:901px){
  .home .ip-hero-weather,
  .front-page .ip-hero-weather{
    top:145px!important;
    right:56px!important;
  }
  .home .ip-hero-dots,
  .front-page .ip-hero-dots{
    top:auto!important;
    right:56px!important;
    left:auto!important;
    bottom:72px!important;
    max-width:min(430px,38vw);
    justify-content:flex-end;
  }
}
@media (max-width:900px){
  .home .ip-hero-dots,
  .front-page .ip-hero-dots{
    top:auto!important;
    bottom:72px!important;
  }
}

.ip-events-ticker{
  position:relative;
  z-index:30;
  overflow:hidden;
  background:linear-gradient(90deg,var(--ip-ink) 0%,#10282d 48%,#0a3f48 100%);
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.09);
  box-shadow:0 12px 30px rgba(7,19,22,.08);
}
.ip-events-ticker .ip-container{
  min-height:46px;
  display:flex;
  align-items:center;
  gap:16px;
}
.ip-events-ticker-label{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:28px;
  padding:0 11px;
  border-radius:999px;
  background:rgba(29,160,193,.14);
  color:var(--ip-lime);
  border:1px solid rgba(29,160,193,.26);
  font-size:.78rem;
  font-weight:950;
  letter-spacing:-.015em;
  white-space:nowrap;
}
.ip-events-ticker-label:before{content:"•";font-size:1.15rem;line-height:1;color:var(--ip-lime)}
.ip-events-ticker-viewport{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 34px,#000 calc(100% - 34px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 34px,#000 calc(100% - 34px),transparent 100%);
}
.ip-events-ticker-track{
  width:max-content;
  display:inline-flex;
  align-items:center;
  gap:30px;
  white-space:nowrap;
  animation:ipEventsTicker 34s linear infinite;
  will-change:transform;
}
.ip-events-ticker:hover .ip-events-ticker-track{animation-play-state:paused}
.ip-events-ticker-track--single{
  animation:none;
  transform:none;
}
.ip-events-ticker-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:rgba(255,255,255,.88);
  text-decoration:none;
  font-size:.86rem;
  font-weight:850;
}
.ip-events-ticker-item:hover{color:#fff;text-decoration:underline;text-underline-offset:5px}
.ip-events-ticker-date{
  color:var(--ip-lime);
  font-weight:950;
}
.ip-events-ticker-sep{opacity:.36}
@keyframes ipEventsTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ip-events-ticker-track{animation:none}}
@media (max-width:700px){
  .ip-events-ticker .ip-container{
    min-height:40px;
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:8px;
    padding-top:6px;
    padding-bottom:6px;
    overflow:hidden;
  }
  .ip-events-ticker-label{
    flex:0 0 auto;
    width:auto;
    min-height:24px;
    padding:0 8px;
    gap:5px;
    font-size:.68rem;
    line-height:1;
    white-space:nowrap;
  }
  .ip-events-ticker-viewport{
    flex:1 1 auto;
    min-width:0;
    overflow:hidden;
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent 100%);
    mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent 100%);
  }
  .ip-events-ticker-track{gap:22px;animation-duration:28s;white-space:nowrap}
  .ip-events-ticker-track--single{width:100%;max-width:100%}
  .ip-events-ticker-item{
    min-width:0;
    max-width:100%;
    flex:0 1 auto;
    gap:6px;
    font-size:.76rem;
    line-height:1.1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .ip-events-ticker-item > span:last-child{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
}

/* v2.0.289 - ticker corregido y selector lista/cuadrícula en agenda */
.ip-agenda-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 22px;
}
.ip-agenda-view-switch{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:6px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:999px;
  background:rgba(255,255,255,.84);
  box-shadow:0 12px 30px rgba(7,19,22,.06);
}
.ip-agenda-view-switch > span{
  padding:0 8px 0 10px;
  color:var(--ip-muted);
  font-size:.82rem;
  font-weight:900;
  white-space:nowrap;
}
.ip-agenda-view-switch button{
  min-height:36px;
  padding:0 13px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--ip-ink);
  font-weight:950;
  font-size:.82rem;
  cursor:pointer;
}
.ip-agenda-view-switch button.is-active{
  background:linear-gradient(135deg,var(--ip-sea),var(--ip-sea-dark));
  color:#fff;
  box-shadow:0 10px 22px rgba(16,97,106,.18);
}
.ip-agenda-section .ip-agenda-toolbar .ip-agenda-filter-toggle{
  margin:0!important;
}
.ip-event-list-line-meta{display:none}
.ip-agenda-section.is-list-view .ip-event-month-grid{
  grid-template-columns:1fr!important;
  gap:10px!important;
}
.ip-agenda-section.is-list-view .ip-home-event-card{
  display:block;
  border-radius:18px;
  box-shadow:0 10px 26px rgba(7,19,22,.06);
}
.ip-agenda-section.is-list-view .ip-home-event-card .ip-card-media{
  display:none!important;
}
.ip-agenda-section.is-list-view .ip-home-event-card .ip-card-body{
  display:grid;
  grid-template-columns:minmax(160px,auto) minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  padding:14px 16px;
}
.ip-agenda-section.is-list-view .ip-home-event-card .ip-event-list-line-meta{
  display:block;
  min-width:0;
}
.ip-agenda-section.is-list-view .ip-home-event-card .ip-event-list-date{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(29,160,193,.50);
  color:#536006;
  font-weight:950;
  font-size:.78rem;
  white-space:nowrap;
}
.ip-agenda-section.is-list-view .ip-home-event-card .ip-event-card-title{
  margin:0!important;
  font-size:clamp(1rem,1.8vw,1.22rem)!important;
  line-height:1.12!important;
  letter-spacing:-.035em!important;
}
.ip-agenda-section.is-list-view .ip-home-event-card .ip-home-event-kicker{
  display:none!important;
}
.ip-agenda-section.is-list-view .ip-home-event-card .ip-button-ghost{
  width:auto!important;
  min-width:126px;
  margin:0!important;
  white-space:nowrap;
}
@media (max-width:760px){
  .ip-agenda-toolbar{
    align-items:stretch;
    flex-direction:column;
    gap:10px;
  }
  .ip-agenda-view-switch{
    width:100%;
    justify-content:space-between;
    border-radius:18px;
  }
  .ip-agenda-view-switch > span{font-size:.78rem}
  .ip-agenda-view-switch button{flex:1 1 0;min-height:40px}
  .ip-agenda-section.is-list-view .ip-home-event-card .ip-card-body{
    grid-template-columns:1fr;
    gap:9px;
    padding:15px;
  }
  .ip-agenda-section.is-list-view .ip-home-event-card .ip-button-ghost{
    width:100%!important;
  }
}


/* v2.0.289 - agenda móvil en lista por defecto y controles compactos */
@media (max-width:760px){
  .ip-agenda-toolbar{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:6px!important;
    margin-bottom:16px!important;
  }
  .ip-agenda-view-switch{
    width:auto!important;
    flex:1 1 auto!important;
    min-width:0!important;
    justify-content:flex-start!important;
    gap:4px!important;
    padding:4px!important;
    border-radius:999px!important;
  }
  .ip-agenda-view-switch > span{
    display:none!important;
  }
  .ip-agenda-view-switch button{
    flex:1 1 0!important;
    min-width:0!important;
    min-height:38px!important;
    padding:0 8px!important;
    font-size:.75rem!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  .ip-agenda-section .ip-agenda-toolbar .ip-agenda-filter-toggle{
    flex:0 0 auto!important;
    min-height:38px!important;
    padding:0 10px!important;
    border-radius:999px!important;
    font-size:.75rem!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  .ip-agenda-section.is-list-view .ip-home-event-card{
    border-radius:20px!important;
  }
  .ip-agenda-section.is-list-view .ip-home-event-card .ip-card-body{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:8px!important;
    padding:16px!important;
  }
  .ip-agenda-section.is-list-view .ip-home-event-card .ip-event-card-title{
    order:1!important;
    font-size:1.12rem!important;
    line-height:1.13!important;
    letter-spacing:-.035em!important;
  }
  .ip-agenda-section.is-list-view .ip-home-event-card .ip-event-list-line-meta{
    order:2!important;
    display:block!important;
  }
  .ip-agenda-section.is-list-view .ip-home-event-card .ip-event-list-date{
    display:inline-flex!important;
    width:max-content!important;
    max-width:100%!important;
    white-space:normal!important;
    line-height:1.15!important;
    min-height:28px!important;
    padding:6px 10px!important;
  }
  .ip-agenda-section.is-list-view .ip-home-event-card .ip-button-ghost{
    order:3!important;
    width:100%!important;
    margin-top:4px!important;
    min-height:42px!important;
  }
}


/* v2.0.289 - agenda móvil: controles Cuadrícula, Lista y Mostrar filtros en una sola línea */
@media (max-width:760px){
  .ip-agenda-section .ip-agenda-toolbar{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:6px!important;
  }
  .ip-agenda-section .ip-agenda-view-switch{
    width:100%!important;
    min-width:0!important;
    overflow:hidden!important;
  }
  .ip-agenda-section .ip-agenda-view-switch button{
    min-width:0!important;
    padding-left:7px!important;
    padding-right:7px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .ip-agenda-section .ip-agenda-toolbar .ip-agenda-filter-toggle{
    width:auto!important;
    max-width:none!important;
    flex:none!important;
    justify-self:end!important;
    margin:0!important;
    padding-left:9px!important;
    padding-right:9px!important;
  }
}
@media (max-width:360px){
  .ip-agenda-section .ip-agenda-toolbar{gap:5px!important}
  .ip-agenda-section .ip-agenda-view-switch button,
  .ip-agenda-section .ip-agenda-toolbar .ip-agenda-filter-toggle{
    font-size:.70rem!important;
  }
  .ip-agenda-section .ip-agenda-toolbar .ip-agenda-filter-toggle:after{
    width:20px!important;
    height:20px!important;
  }
}


/* v2.0.289 - ticker móvil desplazable, enlace a agenda y ajustes de cabeceras/botones */
.ip-events-ticker-label{
  text-decoration:none;
}
.ip-events-ticker-label:hover,
.ip-events-ticker-label:focus-visible{
  color:#fff;
  border-color:rgba(29,160,193,.45);
  text-decoration:none;
}
/* bloque móvil del ticker retirado en v2.0.289 para recuperar la animación móvil estable de v2.0.289 */

.ip-agenda-page-main .ip-page-hero{
  padding-bottom:0!important;
}
.ip-agenda-page-main .ip-page-hero-card{
  padding-bottom:10px!important;
  border-bottom:0!important;
}
.ip-agenda-page-main .ip-page-hero-card:before,
.ip-agenda-page-main .ip-page-hero .ip-title-lg:after{
  display:none!important;
}
.ip-agenda-page-main .ip-page-hero .ip-title-lg{
  white-space:nowrap;
  max-width:100%;
  font-size:clamp(2.2rem,7vw,5.8rem)!important;
  letter-spacing:-.08em!important;
}
.ip-agenda-page-main .ip-agenda-section{
  padding-top:8px!important;
}
@media (max-width:640px){
  .ip-agenda-page-main .ip-page-hero{
    padding-top:8px!important;
  }
  .ip-agenda-page-main .ip-page-hero-card{
    padding-top:2px!important;
    padding-bottom:6px!important;
  }
  .ip-agenda-page-main .ip-page-hero .ip-title-lg{
    font-size:clamp(1.82rem,9.4vw,3rem)!important;
    letter-spacing:-.07em!important;
  }
  .ip-agenda-page-main .ip-agenda-section{
    padding-top:4px!important;
  }
}

.ip-events-ticker-item span{white-space:nowrap;}


/* v2.0.289 - agenda móvil en 2 columnas cuando se selecciona Cuadrícula y ticker móvil animado + táctil */
@media (max-width:760px){
  .ip-agenda-section.is-grid-view .ip-event-month-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
  }
  .ip-agenda-section.is-grid-view .ip-home-event-card{
    min-width:0!important;
    border-radius:20px!important;
  }
  .ip-agenda-section.is-grid-view .ip-home-event-card .ip-card-media{
    aspect-ratio:4/3!important;
    border-radius:18px 18px 0 0!important;
  }
  .ip-agenda-section.is-grid-view .ip-home-event-card .ip-card-body{
    padding:11px!important;
    gap:8px!important;
  }
  .ip-agenda-section.is-grid-view .ip-home-event-card .ip-event-card-title{
    font-size:.96rem!important;
    line-height:1.08!important;
    letter-spacing:-.035em!important;
  }
  .ip-agenda-section.is-grid-view .ip-home-event-card .ip-home-event-kicker{
    gap:5px!important;
  }
  .ip-agenda-section.is-grid-view .ip-home-event-card .ip-chip{
    max-width:100%!important;
    padding:5px 7px!important;
    font-size:.66rem!important;
    line-height:1.05!important;
  }
  .ip-agenda-section.is-grid-view .ip-home-event-card .ip-button-ghost{
    width:100%!important;
    min-height:36px!important;
    padding:0 8px!important;
    font-size:.72rem!important;
  }
  .ip-agenda-section.is-grid-view .ip-home-event-date-badge{
    top:7px!important;
    right:7px!important;
    max-width:calc(100% - 14px)!important;
    min-height:26px!important;
    padding:5px 7px!important;
    font-size:.61rem!important;
    line-height:1.05!important;
  }
}

/* bloque móvil del ticker retirado en v2.0.289 para recuperar la animación móvil estable de v2.0.289 */



/* v2.0.289 - ticker automático igual en desktop y móvil + ticker antes del footer */
/* bloque móvil del ticker retirado en v2.0.289 para recuperar la animación móvil estable de v2.0.289 */

.ip-events-ticker--footer{
  margin-top:34px;
  border-top:1px solid rgba(255,255,255,.09);
  border-bottom:0;
}

/* v2.0.289 - ticker inferior pegado al footer */
.ip-events-ticker--footer{
  margin-top:0!important;
  margin-bottom:0!important;
}
.ip-events-ticker--footer + .ip-footer{
  margin-top:0!important;
}


/* v2.0.289 - recuperación real del ticker móvil automático estable de v2.0.289 */
.ip-events-ticker-label{
  text-decoration:none;
}
.ip-events-ticker-label:hover,
.ip-events-ticker-label:focus-visible{
  color:#fff;
  border-color:rgba(29,160,193,.45);
  text-decoration:none;
}
.ip-events-ticker--footer{
  margin-top:0!important;
  margin-bottom:0!important;
  border-top:1px solid rgba(255,255,255,.09);
  border-bottom:0;
}
.ip-events-ticker--footer + .ip-footer{
  margin-top:0!important;
}
@media (max-width:700px){
  .ip-events-ticker,
  .ip-events-ticker .ip-container{
    overflow:hidden!important;
  }
  .ip-events-ticker .ip-container{
    min-height:40px!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:8px!important;
    padding-top:6px!important;
    padding-bottom:6px!important;
  }
  .ip-events-ticker-label{
    flex:0 0 auto!important;
    width:auto!important;
    min-height:24px!important;
    padding:0 8px!important;
    gap:5px!important;
    font-size:.68rem!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  .ip-events-ticker-viewport{
    flex:1 1 auto!important;
    min-width:0!important;
    overflow:hidden!important;
    -webkit-overflow-scrolling:auto!important;
    touch-action:auto!important;
    overscroll-behavior-x:auto!important;
    scrollbar-width:auto!important;
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent 100%)!important;
    mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent 100%)!important;
  }
  .ip-events-ticker-viewport::-webkit-scrollbar{
    display:none!important;
  }
  .ip-events-ticker-track{
    width:max-content!important;
    max-width:none!important;
    display:inline-flex!important;
    align-items:center!important;
    flex-wrap:nowrap!important;
    gap:22px!important;
    padding-right:0!important;
    white-space:nowrap!important;
    animation:ipEventsTicker 28s linear infinite!important;
    animation-play-state:running!important;
    will-change:transform!important;
  }
  .ip-events-ticker:hover .ip-events-ticker-track,
  .ip-events-ticker:active .ip-events-ticker-track,
  .ip-events-ticker:focus-within .ip-events-ticker-track{
    animation-play-state:running!important;
  }
  .ip-events-ticker-track--single,
  .ip-events-ticker:hover .ip-events-ticker-track--single,
  .ip-events-ticker:active .ip-events-ticker-track--single,
  .ip-events-ticker:focus-within .ip-events-ticker-track--single{
    width:100%!important;
    max-width:100%!important;
    animation:none!important;
    transform:none!important;
    will-change:auto!important;
  }
  .ip-events-ticker-item{
    display:inline-flex!important;
    align-items:center!important;
    flex:0 1 auto!important;
    min-width:0!important;
    max-width:100%!important;
    gap:6px!important;
    font-size:.76rem!important;
    line-height:1.1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .ip-events-ticker-item--duplicate{
    display:inline-flex!important;
  }
  .ip-events-ticker-track--single .ip-events-ticker-item--duplicate{
    display:none!important;
  }
  .ip-events-ticker-item > span:last-child{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
}

/* v2.0.289 - CTA home Cómo llegar y padres del menú sin enlace */
.ip-arrive-home-card{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:22px;
  align-items:center;
  padding:30px 34px;
  border:1px solid var(--ip-line);
  border-radius:34px;
  background:
    radial-gradient(circle at 88% 0%,rgba(29,160,193,.38),transparent 34%),
    radial-gradient(circle at 10% 88%,rgba(141,229,220,.34),transparent 34%),
    linear-gradient(135deg,#fff 0%,var(--ip-soft) 100%);
  box-shadow:var(--ip-shadow-soft);
}
.ip-arrive-home-card:after{
  content:"";
  position:absolute;
  right:-42px;
  bottom:-54px;
  width:170px;
  height:170px;
  border-radius:999px;
  background:rgba(81,184,187,.12);
  pointer-events:none;
}
.ip-arrive-home-copy{position:relative;z-index:1;max-width:780px}
.ip-arrive-home-copy p{margin:12px 0 0;color:var(--ip-muted);font-weight:750;line-height:1.55;max-width:720px}
.ip-arrive-home-button{position:relative;z-index:1;white-space:nowrap}
.ip-main-nav .ip-menu-parent-toggle{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  cursor:pointer;
  font:inherit;
  display:flex;
  align-items:center;
  gap:6px;
  min-height:36px;
  padding:0 13px;
  border-radius:12px;
  font-size:.82rem;
  font-weight:850;
  letter-spacing:-.02em;
  white-space:nowrap;
}
.ip-main-nav .ip-menu-parent-toggle:hover,
.ip-main-nav li:focus-within > .ip-menu-parent-toggle{background:rgba(255,255,255,.18)}
.ip-header-solid .ip-main-nav .ip-menu-parent-toggle:hover,
.ip-header-solid .ip-main-nav li:focus-within > .ip-menu-parent-toggle{background:var(--ip-cloud)}
.ip-main-nav .menu-item-has-children > .ip-menu-parent-toggle:after{
  content:"⌄";
  font-size:.78em;
  margin-left:0;
  opacity:.72;
  transform:translateY(-1px);
}
.ip-main-nav .ip-menu-parent-arrow{display:none}
@media (min-width:901px){
  .ip-site-header .ip-main-nav .ip-menu-parent-toggle{min-height:42px;padding:0 17px;border-radius:14px;font-size:.9rem}
}
@media (max-width:900px){
  .ip-arrive-home-card{grid-template-columns:1fr;padding:24px;border-radius:28px;gap:18px}
  .ip-arrive-home-button{justify-self:start;white-space:normal;text-align:center}
  .ip-main-nav .ip-menu-parent-toggle{
    width:100%;
    justify-content:space-between;
    min-height:44px;
    padding:0 13px;
    font-size:.9rem;
    text-align:left;
  }
  .ip-main-nav .menu-item-has-children > .ip-menu-parent-toggle:after{
    content:"⌄";
    transition:transform .18s ease;
  }
  .ip-main-nav .menu-item-has-children.is-submenu-open > .ip-menu-parent-toggle:after{
    transform:rotate(180deg);
  }
  .ip-main-nav .menu-item-has-children > .sub-menu{
    display:grid!important;
    position:static!important;
    min-width:0!important;
    max-height:0!important;
    overflow:hidden!important;
    opacity:0!important;
    visibility:hidden!important;
    transform:none!important;
    box-shadow:none!important;
    border:0!important;
    background:var(--ip-cloud)!important;
    margin:0!important;
    padding:0 7px!important;
    border-radius:16px!important;
    transition:max-height .22s ease,opacity .18s ease,visibility .18s ease,padding .18s ease,margin .18s ease!important;
  }
  .ip-main-nav .menu-item-has-children.is-submenu-open > .sub-menu{
    max-height:420px!important;
    opacity:1!important;
    visibility:visible!important;
    margin:0 0 6px!important;
    padding:7px!important;
  }
}
@media (max-width:640px){
  .ip-home-arrive-cta{padding-top:28px;padding-bottom:20px}
  .ip-arrive-home-card{width:min(100% - 28px,var(--ip-container));padding:22px}
  .ip-arrive-home-button{width:100%;justify-content:center}
}


/* v2.0.289 - ajustes home CTA, POIs móvil y limpieza guías */
.ip-home-events + .ip-home-arrive-cta{
  padding-top:0;
}
.ip-home-pois-mobile-cta{
  display:none;
}
.ip-home-pois-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:22px;
}
.ip-home-pois-head p{
  margin:10px 0 0;
  max-width:720px;
  color:var(--ip-muted);
  font-weight:700;
  line-height:1.55;
}
.ip-home-pois-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.ip-home-poi-card{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  min-width:0;
  aspect-ratio:1/1;
  overflow:hidden;
  border:1px solid var(--ip-line);
  border-radius:28px;
  background:#fff;
  box-shadow:0 18px 42px rgba(7,19,22,.09);
}
.ip-home-poi-media{
  position:relative;
  display:block;
  min-width:0;
  height:100%;
  aspect-ratio:auto;
  overflow:hidden;
  background:var(--ip-cloud);
  color:#fff;
  text-decoration:none;
}
.ip-home-poi-media:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(7,19,22,.08) 0%,rgba(7,19,22,.18) 46%,rgba(7,19,22,.78) 100%);
  pointer-events:none;
}
.ip-home-poi-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}
.ip-home-poi-card:hover .ip-home-poi-media img{
  transform:scale(1.045);
}
.ip-home-poi-type{
  position:absolute;
  top:12px;
  right:12px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  max-width:calc(100% - 24px);
  min-height:30px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:var(--ip-sea-dark);
  font-size:.7rem;
  letter-spacing:0;
  line-height:1;
  font-weight:950;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  box-shadow:0 10px 24px rgba(7,19,22,.12);
}
.ip-home-poi-title{
  position:absolute;
  left:14px;
  right:14px;
  bottom:14px;
  z-index:2;
  margin:0;
  color:#fff;
  font-size:clamp(1rem,1.55vw,1.35rem);
  line-height:1.02;
  letter-spacing:0;
  text-shadow:0 10px 24px rgba(0,0,0,.38);
  overflow-wrap:anywhere;
}
.ip-home-poi-button{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:11px 14px;
  background:var(--ip-ink);
  color:#fff;
  font-size:.88rem;
  line-height:1.1;
  font-weight:950;
  text-decoration:none;
  text-align:center;
  border-radius:0 0 28px 28px;
  transition:background .2s ease;
}
.ip-home-poi-button:hover{
  background:var(--ip-sea-dark);
}
@media (max-width:640px){
  .ip-home-events + .ip-home-arrive-cta{
    padding-top:0;
  }
  .ip-home-pois .ip-home-pois-head-cta{
    display:none;
  }
  .ip-home-pois-mobile-cta{
    display:flex;
    justify-content:center;
    margin-top:18px;
  }
  .ip-home-pois-mobile-cta .ip-button-ghost{
    justify-content:center;
    min-width:150px;
    text-align:center;
  }
  .ip-home-pois-mobile-cta .ip-button-lime{
    width:100%;
    justify-content:center;
    text-align:center;
  }
  .ip-home-pois-head{
    display:grid;
    gap:16px;
    margin-bottom:16px;
  }
  .ip-home-pois-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .ip-home-poi-card{
    border-radius:20px;
  }
  .ip-home-poi-type{
    top:8px;
    right:8px;
    max-width:calc(100% - 16px);
    min-height:25px;
    padding:6px 8px;
    font-size:.58rem;
  }
  .ip-home-poi-title{
    left:10px;
    right:10px;
    bottom:10px;
    font-size:.92rem;
    line-height:1.06;
  }
  .ip-home-poi-button{
    min-height:40px;
    padding:9px 8px;
    font-size:.72rem;
    border-radius:0 0 20px 20px;
  }
}

/* v2.0.289 - plantilla Noticias y bloque de noticias en home */
.ip-home-news{
  padding-top:28px;
}

.ip-home-news-mobile-cta{
  display:none;
}
.ip-news-card .ip-card-kicker .ip-chip{
  background:rgba(228,244,243,.82);
  color:var(--ip-sea-dark);
}
.ip-news-card .ip-button-ghost{
  margin-top:18px;
}
.ip-pagination-wrap{
  margin-top:30px;
}
.ip-pagination-wrap .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  min-height:40px;
  padding:0 14px;
  margin:0 4px 8px 0;
  border:1px solid var(--ip-line);
  border-radius:999px;
  background:rgba(255,255,255,.78);
  color:var(--ip-ink);
  font-weight:800;
  font-size:.86rem;
}
.ip-pagination-wrap .page-numbers.current,
.ip-pagination-wrap .page-numbers:hover{
  background:var(--ip-lime);
  border-color:rgba(7,19,22,.12);
}
@media (max-width:640px){
  .ip-home-news .ip-section-head{
    align-items:flex-start;
  }
  .ip-home-news .ip-section-head .ip-button-ghost{
    display:none;
  }
  .ip-home-news-mobile-cta{
    display:flex;
    justify-content:center;
    margin-top:18px;
  }
  .ip-home-news-mobile-cta .ip-button-ghost{
    justify-content:center;
    min-width:170px;
    text-align:center;
  }
}


/* v2.0.289 - hero visual para noticias individuales */
.single-post .ip-news-single-page{padding-top:0}
.ip-news-single-hero{position:relative;isolation:isolate;min-height:clamp(380px,56vw,640px);display:flex;align-items:flex-end;overflow:hidden;background:var(--ip-ink);color:#fff}
.ip-news-single-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(1.04)}
.ip-news-single-hero:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,19,22,.06) 0%,rgba(7,19,22,.16) 38%,rgba(7,19,22,.82) 100%),linear-gradient(90deg,rgba(7,19,22,.62) 0%,rgba(7,19,22,.18) 58%,rgba(7,19,22,.22) 100%)}
.ip-news-single-hero-content{position:relative;z-index:2;width:100%;padding:clamp(120px,14vw,180px) 0 clamp(34px,6vw,76px)}
.ip-news-single-hero h1{max-width:980px;margin:0;color:#fff;font-size:clamp(2.35rem,6.8vw,6.25rem);line-height:.9;letter-spacing:-.075em;text-wrap:balance;text-shadow:0 18px 56px rgba(0,0,0,.34)}
.ip-news-single-body{padding-top:38px}
.ip-news-single-content{position:relative}
.ip-news-single-date{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 24px;padding:0 0 18px;border-bottom:1px solid var(--ip-line);color:var(--ip-muted);font-size:.93rem;font-weight:800}
.ip-news-single-date span{color:var(--ip-ink);font-weight:950}
.ip-news-single-date time{color:var(--ip-sea-dark)}
.ip-news-single-images{margin-top:42px;padding-top:30px;border-top:1px solid var(--ip-line)}
.ip-news-single-images h2{margin:0 0 18px;font-size:clamp(1.45rem,3vw,2.25rem);line-height:1;letter-spacing:-.055em;color:var(--ip-ink)}
.ip-news-single-images figure{margin:0;border-radius:28px;overflow:hidden;box-shadow:var(--ip-shadow-soft);background:var(--ip-cloud)}
.ip-news-single-images img{width:100%;max-height:620px;object-fit:cover}
@media (max-width:900px){.ip-news-single-hero{min-height:clamp(360px,74vw,560px)}.ip-news-single-hero-content{padding:110px 0 38px}.ip-news-single-hero h1{font-size:clamp(2.05rem,11vw,4.5rem)}}
@media (max-width:640px){.ip-news-single-body{padding-top:26px}.ip-news-single-date{display:grid;gap:4px;margin-bottom:20px}.ip-news-single-images{margin-top:34px;padding-top:24px}.ip-news-single-images figure{border-radius:22px}}


/* v2.0.289 - ajustes noticia individual, lightbox y tarjetas noticias home */
.ip-news-single-hero-content{padding:clamp(110px,12vw,160px) 0 clamp(28px,5vw,58px)}
.ip-news-single-hero h1{max-width:880px;font-size:clamp(1.85rem,4.8vw,4.15rem)!important;line-height:.96;letter-spacing:-.062em}
.ip-news-single-hero-date{display:inline-flex;align-items:center;min-height:34px;margin-top:16px;padding:8px 13px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.92);color:var(--ip-ink);font-size:.82rem;font-weight:950;line-height:1;box-shadow:0 18px 42px rgba(0,0,0,.18);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.ip-news-single-content{padding-top:clamp(24px,4vw,42px)}
.ip-news-single-images h2{font-size:clamp(1.35rem,2.4vw,2rem)}
.ip-news-single-image-link{display:block;position:relative;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;color:inherit;text-decoration:none}
.ip-news-single-image-link:after{content:"Ampliar imagen";position:absolute;right:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;min-height:34px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.94);color:var(--ip-ink);font-size:.75rem;font-weight:950;box-shadow:0 14px 34px rgba(7,19,22,.18)}
.ip-news-card{display:flex;flex-direction:column}
.ip-news-card-media{position:relative;isolation:isolate}
.ip-news-card-media:after{content:"";position:absolute;left:0;right:0;bottom:0;height:48%;z-index:1;background:linear-gradient(180deg,rgba(7,19,22,0),rgba(7,19,22,.68));pointer-events:none}
.ip-news-card-date{position:absolute;left:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;min-height:30px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.94);color:var(--ip-ink);font-size:.74rem;font-weight:950;line-height:1;box-shadow:0 12px 28px rgba(0,0,0,.18)}
.ip-news-card-body{display:flex;flex-direction:column;flex:1;gap:12px}
.ip-news-card-body h3,
.ip-news-card-body h2{margin:0}
.ip-news-card-body p{margin:0;line-height:1.45}
.ip-news-card .ip-news-card-button{align-self:center;justify-content:center;text-align:center;margin:8px auto 0;min-width:150px;box-shadow:none}
.ip-news-card:hover .ip-news-card-button{transform:none}
.ip-lightbox{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:22px;background:rgba(7,19,22,.84);opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s ease}
.ip-lightbox.is-open{opacity:1;visibility:visible}
.ip-lightbox[hidden]{display:none}
.ip-lightbox-dialog{position:relative;width:min(1100px,100%);max-height:92vh;display:grid;place-items:center}
.ip-lightbox-img{display:block;width:auto;max-width:100%;max-height:88vh;border-radius:22px;box-shadow:0 32px 90px rgba(0,0,0,.46);background:#fff}
.ip-lightbox-close{position:absolute;top:-16px;right:-10px;z-index:2;width:44px;height:44px;border:0;border-radius:999px;background:#fff;color:var(--ip-ink);font-size:1.6rem;line-height:1;cursor:pointer;box-shadow:0 18px 42px rgba(0,0,0,.28)}
.ip-lightbox-open{overflow:hidden}
@media (max-width:900px){.ip-news-single-hero h1{font-size:clamp(1.75rem,8.6vw,3.35rem)!important}.ip-news-single-hero-date{font-size:.78rem;min-height:32px;margin-top:12px}.ip-news-single-content{padding-top:24px}}
@media (max-width:640px){.ip-news-single-hero{min-height:clamp(310px,72vw,440px)}.ip-news-single-hero-content{padding:96px 0 30px}.ip-news-single-hero h1{font-size:clamp(1.55rem,8.2vw,2.6rem)!important;letter-spacing:-.055em}.ip-news-single-hero-date{font-size:.72rem;padding:7px 10px}.ip-news-single-image-link:after{right:10px;bottom:10px;min-height:30px;font-size:.68rem}.ip-news-card .ip-news-card-button{width:auto;min-width:158px}.ip-lightbox{padding:14px}.ip-lightbox-img{border-radius:16px}.ip-lightbox-close{top:8px;right:8px;width:40px;height:40px}}


/* v2.0.289 - puntos de interés relacionados en noticia */
.ip-news-related-pois{
  margin-top:clamp(34px,5vw,58px);
  padding-top:clamp(28px,4vw,42px);
  border-top:1px solid var(--ip-line);
}
.ip-news-related-pois-head{
  align-items:flex-start;
  justify-content:center;
  text-align:center;
}
.ip-news-related-pois-head .ip-eyebrow{
  margin-bottom:10px;
}
.ip-news-related-pois-head h2{
  margin-inline:auto;
}
.ip-news-related-pois-grid{
  margin-top:22px;
}
.ip-news-related-pois-footer{
  display:flex;
  justify-content:center;
  margin-top:26px;
}
.ip-news-related-pois-footer .ip-button{
  text-align:center;
}
@media (max-width:640px){
  .ip-news-related-pois{
    margin-top:30px;
    padding-top:24px;
  }
  .ip-news-related-pois-grid{
    margin-top:18px;
  }
  .ip-news-related-pois-footer .ip-button{
    width:100%;
  }
}


/* v2.0.289 - compartir noticia y 4 puntos de interés relacionados */
.ip-news-single-hero-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}
.ip-news-single-hero-meta .ip-news-single-hero-date{margin-top:0}
.ip-news-single-share{display:inline-flex;align-items:center;gap:7px;min-height:34px;margin:0;padding:8px 13px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.92);color:var(--ip-ink);font:inherit;font-size:.82rem;font-weight:950;line-height:1;box-shadow:0 18px 42px rgba(0,0,0,.18);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);cursor:pointer}
.ip-news-single-share svg{width:15px;height:15px;flex:0 0 auto}
.ip-news-single-share:hover,.ip-news-single-share:focus-visible{background:#fff;transform:translateY(-1px)}
.ip-news-related-pois-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.ip-news-single-hero-meta{margin-top:12px}.ip-news-single-share{min-height:32px;font-size:.78rem}}
@media (max-width:640px){.ip-news-single-hero-meta{gap:8px}.ip-news-single-share{font-size:.72rem;padding:7px 10px}.ip-news-related-pois-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ip-news-related-pois-footer .ip-button{width:auto;max-width:100%;justify-content:center}}


/* v2.0.289 - ajustes noticia: título, compartir y POIs mínimos */
.ip-news-single-hero h1{
  max-width:820px;
  font-size:clamp(1.45rem,3.6vw,3.15rem)!important;
  line-height:1;
  letter-spacing:-.055em;
}
.ip-news-single-share{
  border-color:rgba(29,160,193,.7);
  background:var(--ip-lime);
  color:var(--ip-ink);
  box-shadow:0 18px 42px rgba(29,160,193,.22),0 12px 32px rgba(0,0,0,.16);
}
.ip-news-single-share:hover,.ip-news-single-share:focus-visible{
  background:#eaff75;
  color:var(--ip-ink);
}
.ip-news-mini-poi-card{
  position:relative;
  min-height:250px;
  overflow:hidden;
  border-radius:24px;
  background:var(--ip-ink);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:var(--ip-shadow-soft);
}
.ip-news-mini-poi-card a{
  position:relative;
  display:block;
  min-height:250px;
  height:100%;
  color:#fff;
  text-decoration:none;
}
.ip-news-mini-poi-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}
.ip-news-mini-poi-card a:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(7,19,22,.06) 0%,rgba(7,19,22,.18) 42%,rgba(7,19,22,.84) 100%);
}
.ip-news-mini-poi-card a:before{
  content:"Descúbrelo";
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(29,160,193,.70);
  color:#fff;
  font-size:clamp(1rem,2vw,1.3rem);
  font-weight:950;
  line-height:1;
  text-align:center;
  transform:translateY(-101%);
  transition:transform .32s ease;
  pointer-events:none;
}
.ip-news-mini-poi-card:hover a:before,
.ip-news-mini-poi-card:focus-within a:before,
.ip-news-mini-poi-card a:active:before{
  transform:translateY(0);
}
.ip-news-mini-poi-card:hover img,.ip-news-mini-poi-card:focus-within img{
  transform:scale(1.045);
}
.ip-blog-adjacent-nav{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:28px;
  margin-bottom:8px;
}
.ip-blog-adjacent-nav.has-single-item{grid-template-columns:minmax(0,620px)}
.ip-blog-adjacent-card{
  position:relative;
  min-height:180px;
  overflow:hidden;
  border-radius:8px;
  background:var(--ip-ink);
  color:#fff;
  text-decoration:none;
  box-shadow:var(--ip-shadow-soft);
}
.ip-blog-adjacent-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}
.ip-blog-adjacent-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(7,19,22,.12),rgba(7,19,22,.82));
}
.ip-blog-adjacent-content{
  position:absolute;
  inset:auto 18px 18px;
  display:grid;
  gap:6px;
}
.ip-blog-adjacent-content small{
  color:var(--ip-lime);
  font-size:.72rem;
  font-weight:950;
  text-transform:uppercase;
}
.ip-blog-adjacent-content strong{font-size:clamp(1rem,2vw,1.3rem);line-height:1.12}
.ip-blog-adjacent-card:hover img,.ip-blog-adjacent-card:focus-visible img{transform:scale(1.045)}
.ip-blog-adjacent-card:focus-visible{outline:3px solid var(--ip-lime);outline-offset:3px}
@media (max-width:640px){
  .ip-blog-adjacent-nav,.ip-blog-adjacent-nav.has-single-item{grid-template-columns:1fr;gap:10px;margin-top:20px}
  .ip-blog-adjacent-card{min-height:145px}
  .ip-blog-adjacent-content{inset:auto 14px 14px}
}
.ip-news-mini-poi-content{
  position:absolute;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:2;
}
.ip-news-mini-poi-content h3{
  margin:0;
  color:#fff;
  font-size:clamp(.98rem,1.4vw,1.18rem);
  line-height:1.05;
  letter-spacing:-.035em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-shadow:0 10px 28px rgba(0,0,0,.34);
}
.ip-news-mini-poi-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  margin-top:10px;
  padding:7px 12px;
  border-radius:999px;
  background:#fff;
  color:var(--ip-ink);
  font-size:.76rem;
  font-weight:950;
  line-height:1;
  box-shadow:0 14px 32px rgba(0,0,0,.2);
}
@media (max-width:900px){
  .ip-news-single-hero h1{font-size:clamp(1.35rem,6.4vw,2.6rem)!important}
}
@media (max-width:640px){
  .ip-news-single-hero h1{font-size:clamp(1.2rem,6.4vw,2rem)!important;line-height:1.02}
  .ip-news-mini-poi-card,.ip-news-mini-poi-card a{min-height:185px}
  .ip-news-mini-poi-content{left:12px;right:12px;bottom:12px}
  .ip-news-mini-poi-content h3{font-size:.9rem}
  .ip-news-mini-poi-button{min-height:30px;padding:7px 10px;font-size:.7rem}
}


/* v2.0.289 - menú Noticias y listado turístico moderno */
.ip-news-page-listing{padding-top:clamp(22px,4vw,44px)}
.ip-news-page-toolbar{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:22px;align-items:end;margin-bottom:24px;padding:24px;border:1px solid var(--ip-line);border-radius:30px;background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(228,244,243,.72));box-shadow:0 18px 48px rgba(7,19,22,.07)}
.ip-news-page-toolbar h2{margin:8px 0 0;font-size:clamp(1.8rem,3.8vw,3.25rem);line-height:.92;letter-spacing:-.07em;color:var(--ip-ink);text-wrap:balance}
.ip-news-page-toolbar p{margin:0;color:var(--ip-muted);font-size:1rem;line-height:1.55;max-width:620px}
.ip-news-page-grid{align-items:stretch}
.ip-news-page-grid .ip-news-card{border-radius:30px;background:#fff;box-shadow:0 18px 50px rgba(7,19,22,.08)}
.ip-news-page-grid .ip-news-card .ip-card-media{aspect-ratio:16/10}
.ip-news-page-grid .ip-news-card .ip-card-body{padding:22px;gap:14px}
.ip-news-page-grid .ip-news-card .ip-card-body h3,
.ip-news-page-grid .ip-news-card .ip-card-body h2{font-size:clamp(1.12rem,1.6vw,1.38rem);line-height:1.02;letter-spacing:-.052em;text-wrap:balance}
.ip-news-page-grid .ip-news-card .ip-card-body p{font-size:.94rem;color:var(--ip-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ip-news-page-grid .ip-news-card:first-child{grid-column:span 2;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);min-height:360px;border-radius:36px;background:linear-gradient(135deg,#fff,rgba(228,244,243,.72))}
.ip-news-page-grid .ip-news-card:first-child .ip-card-media{height:100%;min-height:360px;aspect-ratio:auto;border-radius:0}
.ip-news-page-grid .ip-news-card:first-child .ip-card-body{justify-content:center;padding:clamp(24px,4vw,38px)}
.ip-news-page-grid .ip-news-card:first-child .ip-card-body h3,
.ip-news-page-grid .ip-news-card:first-child .ip-card-body h2{font-size:clamp(1.55rem,3vw,2.75rem);line-height:.94;letter-spacing:-.07em}
.ip-news-page-grid .ip-news-card:first-child .ip-card-body p{font-size:1rem;-webkit-line-clamp:4}
.ip-news-page-grid .ip-news-card:first-child .ip-news-card-button{align-self:flex-start;margin-left:0;margin-right:0}
.ip-news-pagination-wrap{margin-top:28px}
@media (max-width:1024px){
  .ip-news-page-grid .ip-news-card:first-child{grid-template-columns:1fr;grid-column:span 2;min-height:0}
  .ip-news-page-grid .ip-news-card:first-child .ip-card-media{height:auto;min-height:0;aspect-ratio:16/10}
}
@media (max-width:760px){
  .ip-news-page-toolbar{grid-template-columns:1fr;padding:20px;border-radius:26px;align-items:start}
  .ip-news-page-toolbar h2{font-size:clamp(1.7rem,9vw,2.65rem)}
  .ip-news-page-toolbar p{font-size:.96rem}
  .ip-news-page-grid{grid-template-columns:1fr!important;gap:18px}
  .ip-news-page-grid .ip-news-card:first-child{grid-column:auto}
  .ip-news-page-grid .ip-news-card:first-child .ip-card-body h3,
  .ip-news-page-grid .ip-news-card:first-child .ip-card-body h2{font-size:clamp(1.25rem,6vw,1.72rem)}
  .ip-news-page-grid .ip-news-card:first-child .ip-news-card-button{align-self:center;margin-left:auto;margin-right:auto}
}


/* v2.0.289 - cabecera simplificada en Noticias */
.ip-news-simple-header{
  max-width:900px;
  margin:0 auto clamp(24px,4vw,42px);
  text-align:center;
}
.ip-news-simple-header h1{
  margin:0;
  color:var(--ip-ink);
  font-size:clamp(2.2rem,5vw,4.4rem);
  line-height:.92;
  letter-spacing:-.08em;
  text-wrap:balance;
}
.ip-news-simple-header p{
  max-width:760px;
  margin:16px auto 0;
  color:var(--ip-muted);
  font-size:clamp(1rem,1.4vw,1.16rem);
  line-height:1.6;
}
@media (max-width:760px){
  .ip-news-page-listing{padding-top:26px}
  .ip-news-simple-header{text-align:left;margin-bottom:22px}
  .ip-news-simple-header h1{font-size:clamp(2rem,12vw,3.1rem);letter-spacing:-.075em}
  .ip-news-simple-header p{font-size:.98rem;margin-top:12px}
}

/* v2.0.289 - home: ocultar rutas y recetas cuando no hay contenido */


/* v2.0.289 - plantilla Webcam */
.ip-webcam-page .ip-section-tight{padding-top:clamp(24px,4vw,46px)}
.ip-webcam-hero-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  align-items:end;
  padding:clamp(24px,4vw,42px);
  border:1px solid var(--ip-line);
  border-radius:36px;
  background:
    radial-gradient(circle at 90% 0%,rgba(141,229,220,.42),transparent 34%),
    linear-gradient(135deg,#fff,rgba(228,244,243,.86));
  box-shadow:0 22px 60px rgba(7,19,22,.09);
  overflow:hidden;
  position:relative;
}
.ip-webcam-hero-card:after{
  content:"";
  position:absolute;
  right:-90px;
  bottom:-120px;
  width:280px;
  height:280px;
  border-radius:50%;
  background:rgba(29,160,193,.32);
  pointer-events:none;
}
.ip-webcam-hero-copy,.ip-webcam-hero-actions{position:relative;z-index:1}
.ip-webcam-hero-copy h1{
  margin:14px 0 0;
  font-size:clamp(2.35rem,6vw,5.6rem);
  line-height:.88;
  letter-spacing:-.085em;
  color:var(--ip-ink);
  text-wrap:balance;
}
.ip-webcam-hero-copy p{
  max-width:720px;
  margin:16px 0 0;
  color:var(--ip-muted);
  font-size:clamp(1rem,1.45vw,1.18rem);
  line-height:1.58;
}
.ip-webcam-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.ip-webcam-live-section{padding-top:0}
.ip-webcam-viewer{
  border:1px solid rgba(7,19,22,.13);
  border-radius:38px;
  background:#071316;
  padding:clamp(10px,1.5vw,16px);
  box-shadow:0 30px 90px rgba(7,19,22,.18);
  overflow:hidden;
}
.ip-webcam-frame-wrap{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  min-height:360px;
  border-radius:28px;
  overflow:hidden;
  background:linear-gradient(135deg,#081f24,#10282d);
}
.ip-webcam-frame{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  background:#071316;
}
.ip-webcam-fallback{
  position:absolute;
  left:18px;
  right:18px;
  bottom:18px;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:22px;
  background:linear-gradient(90deg,rgba(7,19,22,.82),rgba(7,19,22,.58));
  color:#fff;
  backdrop-filter:blur(14px);
  pointer-events:none;
}
.ip-webcam-fallback p{margin:0;color:rgba(255,255,255,.82);font-weight:750;font-size:.9rem}
.ip-webcam-fallback div{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;pointer-events:auto}
.ip-webcam-source-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:22px;
  align-items:center;
  margin-top:22px;
  padding:clamp(22px,3vw,34px);
  border:1px solid var(--ip-line);
  border-radius:32px;
  background:#fff;
  box-shadow:var(--ip-shadow-soft);
}
.ip-webcam-source-card h2{
  margin:14px 0 0;
  font-size:clamp(1.45rem,3vw,2.55rem);
  line-height:.96;
  letter-spacing:-.06em;
  color:var(--ip-ink);
}
.ip-webcam-source-card p{max-width:760px;margin:12px 0 0;color:var(--ip-muted)}
.ip-webcam-info-grid{margin-top:22px}
.ip-webcam-info-card{
  padding:22px;
  border:1px solid var(--ip-line);
  border-radius:26px;
  background:rgba(255,255,255,.82);
  box-shadow:0 14px 40px rgba(7,19,22,.07);
}
.ip-webcam-info-card strong{display:block;font-size:1.02rem;letter-spacing:-.035em;color:var(--ip-ink)}
.ip-webcam-info-card p{margin:8px 0 0;color:var(--ip-muted);font-size:.94rem}
@media (max-width:900px){
  .ip-webcam-hero-card,.ip-webcam-source-card{grid-template-columns:1fr;align-items:start}
  .ip-webcam-hero-actions{justify-content:flex-start}
  .ip-webcam-source-card .ip-button{justify-self:start}
  .ip-webcam-frame-wrap{min-height:300px}
}
@media (max-width:640px){
  .ip-webcam-hero-card{padding:22px;border-radius:28px}
  .ip-webcam-hero-copy h1{font-size:clamp(2rem,12vw,3.25rem)}
  .ip-webcam-hero-actions .ip-button-lime,.ip-webcam-hero-actions .ip-button-ghost{width:100%}
  .ip-webcam-viewer{border-radius:28px;padding:8px}
  .ip-webcam-frame-wrap{border-radius:22px;aspect-ratio:9/12;min-height:520px}
  .ip-webcam-fallback{left:10px;right:10px;bottom:10px;display:grid;padding:12px;border-radius:18px}
  .ip-webcam-fallback div{display:grid;grid-template-columns:1fr;gap:8px}
  .ip-webcam-fallback .ip-button-lime,.ip-webcam-fallback .ip-button-ghost{min-height:38px;font-size:.78rem;padding:9px 12px}
  .ip-webcam-source-card{border-radius:26px;padding:20px}
  .ip-webcam-source-card .ip-button{width:100%}
  .ip-webcam-info-grid{grid-template-columns:1fr!important}
}

/* v2.0.289 - Webcam: fuente Comunitat Valenciana y acciones de respaldo */
.ip-webcam-source-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
  align-items:center;
}
.ip-webcam-source-actions .ip-button,
.ip-webcam-source-actions .ip-button-ghost{white-space:nowrap}
@media (max-width:900px){
  .ip-webcam-source-actions{justify-content:flex-start}
}
@media (max-width:640px){
  .ip-webcam-source-actions{display:grid;grid-template-columns:1fr;width:100%}
  .ip-webcam-source-actions .ip-button,
  .ip-webcam-source-actions .ip-button-ghost{width:100%;justify-content:center}
}

/* v2.0.289 - Webcam: Windy embebido y fuentes alternativas */
.ip-webcam-official-card{
  display:grid;
  grid-template-columns:minmax(0,0.85fr) minmax(280px,1fr);
  gap:22px;
  align-items:stretch;
  margin-top:22px;
  padding:clamp(22px,3vw,34px);
  border:1px solid var(--ip-line);
  border-radius:32px;
  background:linear-gradient(135deg,rgba(228,244,243,.82),rgba(255,255,255,.96));
  box-shadow:var(--ip-shadow-soft);
}
.ip-webcam-official-card h2{
  margin:14px 0 0;
  font-size:clamp(1.35rem,2.6vw,2.25rem);
  line-height:.98;
  letter-spacing:-.055em;
  color:var(--ip-ink);
}
.ip-webcam-official-card p{margin:12px 0 0;color:var(--ip-muted);line-height:1.55}
.ip-webcam-alt-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.ip-webcam-alt-links a{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:132px;
  padding:18px;
  border:1px solid var(--ip-line);
  border-radius:24px;
  background:#fff;
  color:var(--ip-ink);
  text-decoration:none;
  box-shadow:0 14px 40px rgba(7,19,22,.07);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.ip-webcam-alt-links a:hover{
  transform:translateY(-2px);
  border-color:rgba(16,97,106,.28);
  box-shadow:0 18px 46px rgba(7,19,22,.1);
}
.ip-webcam-alt-links strong{font-size:1.02rem;letter-spacing:-.035em;line-height:1.08}
.ip-webcam-alt-links span{margin-top:12px;color:var(--ip-muted);font-size:.92rem;line-height:1.45}
@media (max-width:900px){
  .ip-webcam-official-card{grid-template-columns:1fr}
}
@media (max-width:640px){
  .ip-webcam-official-card{border-radius:26px;padding:20px}
  .ip-webcam-alt-links{grid-template-columns:1fr}
  .ip-webcam-alt-links a{min-height:unset}
}


/* v2.0.289 - aviso independiente en footer */
.ip-footer-notice-card{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:16px;
  align-items:start;
  margin-top:30px;
  padding:18px 20px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:24px;
  background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.045));
  box-shadow:0 18px 46px rgba(0,0,0,.12);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.ip-footer-notice-icon{
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:16px;
  background:var(--ip-lime);
  color:var(--ip-ink);
  font-weight:950;
  font-size:1.15rem;
  font-family:Georgia,serif;
  line-height:1;
  box-shadow:0 14px 28px rgba(29,160,193,.18);
}
.ip-footer-notice-card h3{
  margin:0 0 7px!important;
  color:#fff;
  font-size:.9rem!important;
  letter-spacing:-.025em;
}
.ip-footer-notice-card p{
  max-width:none!important;
  margin:0!important;
  color:rgba(255,255,255,.74)!important;
  font-size:.86rem!important;
  line-height:1.55!important;
}
@media (max-width:640px){
  .ip-footer-notice-card{
    grid-template-columns:1fr;
    gap:12px;
    margin-top:24px;
    padding:16px;
    border-radius:20px;
  }
  .ip-footer-notice-icon{
    width:38px;
    height:38px;
    border-radius:14px;
  }
}

/* v2.0.289 - Webcam: visor in2theBeach y textos depurados */
.ip-webcam-credit{
  margin-top:10px!important;
  font-size:.9rem;
}
.ip-webcam-credit a{
  color:var(--ip-sea-dark);
  font-weight:850;
  text-decoration:none;
}
.ip-webcam-credit a:hover{text-decoration:underline}
@media (max-width:640px){
  .ip-webcam-frame-wrap{
    aspect-ratio:16/9;
    min-height:unset;
  }
}


/* v2.0.289 - Webcam: integración Gran Hotel Peñíscola/in2theBeach ajustada a tarjeta */
.ip-webcam-viewer{
  background:#000;
}
.ip-webcam-frame-wrap{
  background:#000;
}
.ip-webcam-frame[data-ip-fit-webcam]{
  position:absolute;
  top:50%;
  left:50%;
  width:320px;
  height:180px;
  max-width:none;
  max-height:none;
  transform:translate(-50%,-50%) scale(var(--ip-webcam-scale, 1));
  transform-origin:center center;
  border:0;
  background:#000;
}
.ip-webcam-live-credit{
  margin:14px 0 0;
  padding:14px 18px;
  border:1px solid var(--ip-line);
  border-radius:22px;
  background:#fff;
  box-shadow:0 12px 34px rgba(7,19,22,.06);
  color:var(--ip-muted);
  font-size:.95rem;
  line-height:1.45;
}
.ip-webcam-live-credit a{
  color:var(--ip-sea-dark);
  font-weight:900;
  text-decoration:none;
}
.ip-webcam-live-credit a:hover{text-decoration:underline}
.ip-webcam-live-credit span{display:inline;color:var(--ip-muted)}
.ip-webcam-alt-links a{
  min-height:118px;
}
@media (max-width:640px){
  .ip-webcam-live-credit{
    padding:13px 15px;
    border-radius:18px;
    font-size:.9rem;
  }
  .ip-webcam-live-credit span{display:block;margin-top:4px}
}


/* v2.0.289 - Webcam: iconos en alternativas, CTA tiempo y enlace en menú */
.ip-webcam-alt-icon{
  width:46px;
  height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:17px;
  background:linear-gradient(135deg,var(--ip-lime),rgba(141,229,220,.88));
  color:var(--ip-ink);
  box-shadow:0 14px 30px rgba(7,19,22,.10);
  margin-bottom:14px;
}
.ip-webcam-alt-icon svg{
  width:25px;
  height:25px;
  display:block;
  fill:currentColor;
}
.ip-webcam-weather-cta{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:20px;
  align-items:center;
  margin-top:22px;
  padding:clamp(22px,3vw,34px);
  border:1px solid rgba(16,97,106,.16);
  border-radius:32px;
  background:
    radial-gradient(circle at 0% 0%,rgba(141,229,220,.38),transparent 32%),
    linear-gradient(135deg,#fff,rgba(228,244,243,.82));
  box-shadow:var(--ip-shadow-soft);
}
.ip-webcam-weather-cta h2{
  margin:14px 0 0;
  font-size:clamp(1.35rem,2.6vw,2.35rem);
  line-height:.98;
  letter-spacing:-.055em;
  color:var(--ip-ink);
}
.ip-webcam-weather-cta p{
  max-width:760px;
  margin:12px 0 0;
  color:var(--ip-muted);
  line-height:1.55;
}
.ip-webcam-weather-cta .ip-button-lime{
  white-space:nowrap;
  justify-self:end;
}
@media (max-width:900px){
  .ip-webcam-weather-cta{
    grid-template-columns:1fr;
    align-items:start;
  }
  .ip-webcam-weather-cta .ip-button-lime{
    justify-self:start;
  }
}
@media (max-width:640px){
  .ip-webcam-alt-icon{
    width:42px;
    height:42px;
    border-radius:15px;
    margin-bottom:12px;
  }
  .ip-webcam-alt-icon svg{
    width:23px;
    height:23px;
  }
  .ip-webcam-weather-cta{
    border-radius:26px;
    padding:20px;
  }
  .ip-webcam-weather-cta .ip-button-lime{
    width:100%;
    justify-content:center;
  }
}

/* v2.0.289 - Filtros de puntos de interés sincronizados con URL compartible */

/* v2.0.289 - Mapa turístico: filtros colapsados y texto bajo el mapa */
.ip-map-toolbar{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
  margin:-4px 0 0;
}
.ip-map-toolbar .ip-map-filter-toggle,
.ip-map-filter-toggle{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-height:46px;
  white-space:nowrap;
}
.ip-map-filter-card{
  display:none;
  margin:0 0 2px;
}
.ip-map-filter-card.is-open{
  display:block;
}
.ip-map-filter-card .ip-map-filter-panel{
  display:grid;
  grid-template-columns:minmax(220px,1.45fr) repeat(4,minmax(130px,1fr)) auto;
  gap:10px;
  align-items:end;
}
.ip-map-filter-panel-actions{
  display:flex;
  align-items:end;
  justify-content:flex-end;
  min-width:128px;
}
.ip-map-filter-panel-actions .ip-map-reset{
  width:100%;
  min-height:46px;
  white-space:nowrap;
}
.ip-map-filter-card:not(.is-open) .ip-map-filter-panel{
  display:none;
}
.ip-map-after-info{
  margin-top:12px;
  padding-top:14px;
  border-top:1px solid var(--ip-line);
  color:var(--ip-muted);
}
.ip-map-after-info p{
  max-width:860px;
  margin:0;
  font-size:.96rem;
  line-height:1.55;
}
@media (max-width:1024px){
  .ip-map-filter-card .ip-map-filter-panel{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .ip-map-filter-panel-actions{
    justify-content:flex-start;
  }
  .ip-map-filter-panel-actions .ip-map-reset{
    width:auto;
  }
}
@media (max-width:640px){
  .ip-map-toolbar{
    margin-top:-2px;
  }
  .ip-map-toolbar .ip-map-filter-toggle{
    width:100%;
  }
  .ip-map-filter-card .ip-map-filter-panel{
    grid-template-columns:1fr;
  }
  .ip-map-filter-panel-actions,
  .ip-map-filter-panel-actions .ip-map-reset{
    width:100%;
  }
}

/* v2.0.289 - Mapa turístico: botón superpuesto, mapa más alto y hero sin línea secundaria */
.ip-map-page-main .ip-page-hero{
  padding-bottom:6px!important;
}
.ip-map-page-main .ip-page-hero-card{
  padding-bottom:14px!important;
}
.ip-map-page-main .ip-page-hero .ip-title-lg:after{
  display:none!important;
}
.ip-map-page-main .ip-map-section{
  padding-top:12px;
}
.ip-map-page-main .ip-map-section .ip-container{
  gap:14px;
}
.ip-map-page-main .ip-map-shell{
  margin-top:0;
}
.ip-map-page-main .ip-map-toolbar{
  position:absolute;
  z-index:720;
  top:16px;
  right:16px;
  margin:0;
  pointer-events:none;
}
.ip-map-page-main .ip-map-toolbar .ip-map-filter-toggle{
  pointer-events:auto;
  box-shadow:0 14px 32px rgba(7,19,22,.18);
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(14px);
}
.ip-map-page-main .ip-map-filter-card{
  position:absolute;
  z-index:710;
  top:74px;
  left:16px;
  right:16px;
  margin:0;
  border-radius:24px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(18px);
  box-shadow:0 22px 58px rgba(7,19,22,.18);
  max-height:calc(100% - 92px);
  overflow:auto;
}
.ip-map-page-main .ip-map-filter-card.is-open{
  display:block;
}
.ip-map-page-main .ip-map-after-info{
  margin-top:14px;
}
@media (max-width:640px){
  .ip-map-page-main .ip-map-section{
    padding-top:8px;
  }
  .ip-map-page-main .ip-map-toolbar{
    top:10px;
    right:10px;
  }
  .ip-map-page-main .ip-map-toolbar .ip-map-filter-toggle{
    width:auto;
    min-height:42px;
    padding:10px 14px;
    font-size:.84rem;
  }
  .ip-map-page-main .ip-map-filter-card{
    top:62px;
    left:10px;
    right:10px;
    max-height:calc(100% - 74px);
    padding:12px;
    border-radius:20px;
  }
}

/* v2.0.289 - Mapa turístico: filtros desplegados antes del mapa */
.ip-map-page-main .ip-map-filter-card{
  position:static!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  z-index:auto!important;
  max-height:none!important;
  overflow:visible!important;
  margin:0 0 12px!important;
  border-radius:24px;
  background:rgba(255,255,255,.98);
  backdrop-filter:blur(14px);
  box-shadow:var(--ip-shadow-soft);
}
.ip-map-page-main .ip-map-filter-card:not(.is-open){
  display:none!important;
}
.ip-map-page-main .ip-map-filter-card.is-open{
  display:block!important;
}
.ip-map-page-main .ip-map-toolbar{
  position:absolute;
  z-index:720;
  top:16px;
  right:16px;
  margin:0;
  pointer-events:none;
}
.ip-map-page-main .ip-map-toolbar .ip-map-filter-toggle{
  pointer-events:auto;
}
@media (max-width:640px){
  .ip-map-page-main .ip-map-filter-card{
    margin-bottom:10px!important;
    padding:12px;
    border-radius:20px;
  }
  .ip-map-page-main .ip-map-toolbar{
    top:10px;
    right:10px;
  }
}


/* v2.0.289 - POI individual: migas entre ticker y hero */
.single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero:after{display:none!important;content:none!important;}

/* v2.0.289 - lugares: filtros móviles colapsados en archivo y plantilla */
.ip-poi-filter-mobile-head{display:none!important;margin:0 0 14px;width:100%}
.ip-poi-filter-toggle{width:auto;justify-content:center;white-space:nowrap}
@media (max-width:860px){
  .ip-poi-filter-mobile-head{display:flex!important;justify-content:stretch!important;align-items:stretch!important;width:100%!important}
  .ip-poi-filter-toggle{display:flex!important;width:100%!important;max-width:none!important;flex:1 1 100%!important;min-height:50px;padding:0 18px;border-radius:999px;font-size:.95rem;text-align:center}
  .ip-poi-filter-panel{display:none!important;margin-bottom:18px}
  .ip-poi-filter-panel.is-open{display:grid!important}
}
@media (min-width:861px){
  .ip-poi-filter-mobile-head{display:none!important}
  .ip-poi-filter-panel{display:grid!important}
}

/* v2.0.289 - botón Mostrar/Ocultar filtros al 100% en móvil */
@media (max-width:860px){
  .post-type-archive-ip_poi .ip-poi-filter-mobile-head,
  .page-template-template-puntos-interes .ip-poi-filter-mobile-head{
    display:flex!important;
    width:100%!important;
  }
  .post-type-archive-ip_poi .ip-poi-filter-toggle,
  .page-template-template-puntos-interes .ip-poi-filter-toggle{
    width:100%!important;
    max-width:none!important;
    flex:1 1 100%!important;
    justify-content:center!important;
  }
}


/* v2.0.289 - Animación de entrada para títulos y textos de apoyo, excepto home */
@keyframes ipPageTitleSlideIn{
  from{opacity:0;transform:translate3d(-48px,0,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes ipPageSupportFadeIn{
  from{opacity:0;transform:translate3d(0,14px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}
body:not(.home):not(.front-page) .ip-page-main h1{
  animation:ipPageTitleSlideIn .72s cubic-bezier(.16,1,.3,1) both;
  will-change:opacity,transform;
}
body:not(.home):not(.front-page) .ip-page-main .ip-page-title-wrap .ip-lead,
body:not(.home):not(.front-page) .ip-page-main .ip-news-simple-header > p,
body:not(.home):not(.front-page) .ip-page-main .ip-webcam-hero-copy > p,
body:not(.home):not(.front-page) .ip-page-main .ip-404-copy > .ip-lead{
  animation:ipPageSupportFadeIn .62s cubic-bezier(.16,1,.3,1) .42s both;
  will-change:opacity,transform;
}
body:not(.home):not(.front-page) .ip-page-main .ip-page-title-wrap .ip-page-hero-meta,
body:not(.home):not(.front-page) .ip-page-main .ip-news-single-hero-meta{
  animation:ipPageSupportFadeIn .58s cubic-bezier(.16,1,.3,1) .34s both;
  will-change:opacity,transform;
}
@media (prefers-reduced-motion:reduce){
  body:not(.home):not(.front-page) .ip-page-main h1,
  body:not(.home):not(.front-page) .ip-page-main .ip-page-title-wrap .ip-lead,
  body:not(.home):not(.front-page) .ip-page-main .ip-news-simple-header > p,
  body:not(.home):not(.front-page) .ip-page-main .ip-webcam-hero-copy > p,
  body:not(.home):not(.front-page) .ip-page-main .ip-404-copy > .ip-lead,
  body:not(.home):not(.front-page) .ip-page-main .ip-page-title-wrap .ip-page-hero-meta,
  body:not(.home):not(.front-page) .ip-page-main .ip-news-single-hero-meta{
    animation:none!important;
    transform:none!important;
    opacity:1!important;
  }
}

/* v2.0.289 - carrusel home: marcadores móviles al lado derecho */
@media (max-width:900px){
  .home .ip-hero-dots,
  .front-page .ip-hero-dots{
    left:auto!important;
    right:22px!important;
    justify-content:flex-end;
    max-width:min(46vw,210px)!important;
  }
}
@media (max-width:420px){
  .home .ip-hero-dots,
  .front-page .ip-hero-dots{
    right:18px!important;
    left:auto!important;
    max-width:min(48vw,180px)!important;
  }
}

/* Plantilla Playas */
.ip-playas-overview{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,1.25fr);
  gap:clamp(18px,3vw,30px);
  margin:0 0 clamp(30px,4.5vw,52px);
  align-items:stretch;
}
.ip-playas-feature{
  position:relative;
  overflow:hidden;
  min-height:100%;
  padding:clamp(26px,4vw,42px);
  border-radius:34px;
  border:1px solid rgba(81,184,187,.22);
  background:
    radial-gradient(circle at 12% 16%,rgba(29,160,193,.35),transparent 30%),
    radial-gradient(circle at 88% 8%,rgba(81,184,187,.28),transparent 34%),
    linear-gradient(135deg,#07333f,#0b5a63 58%,#13727a);
  color:#fff;
  box-shadow:var(--ip-shadow);
}
.ip-playas-feature:after{
  content:"";
  position:absolute;
  right:-70px;
  bottom:-90px;
  width:250px;
  height:250px;
  border-radius:999px;
  border:34px solid rgba(255,255,255,.12);
  pointer-events:none;
}
.ip-playas-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:18px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ip-playas-feature h2{
  position:relative;
  z-index:1;
  margin:0 0 16px;
  max-width:620px;
  font-size:clamp(1.85rem,3.2vw,3.2rem);
  line-height:.98;
  letter-spacing:-.065em;
  color:#fff;
}
.ip-playas-feature p{
  position:relative;
  z-index:1;
  margin:0;
  max-width:620px;
  color:rgba(255,255,255,.86);
  font-size:clamp(1rem,1.35vw,1.12rem);
  line-height:1.62;
}
.ip-playas-chips{
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}
.ip-playas-chips span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:var(--ip-sea-dark);
  font-size:.83rem;
  font-weight:800;
  box-shadow:0 10px 28px rgba(0,0,0,.12);
}
.ip-playas-visual-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.ip-playas-mini-card{
  position:relative;
  overflow:hidden;
  padding:22px;
  border:1px solid var(--ip-line);
  border-radius:28px;
  background:linear-gradient(180deg,#fff,rgba(243,248,247,.82));
  box-shadow:var(--ip-shadow-soft);
}
.ip-playas-mini-card:before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:4px;
  background:linear-gradient(90deg,var(--ip-sea),var(--ip-lime));
  opacity:.75;
}
.ip-playas-icon{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  margin-bottom:14px;
  border-radius:16px;
  background:rgba(81,184,187,.12);
  font-size:1.35rem;
}
.ip-playas-mini-card h3{
  margin:0 0 8px;
  color:var(--ip-ink);
  font-size:1.08rem;
  letter-spacing:-.035em;
}
.ip-playas-mini-card p{
  margin:0;
  color:var(--ip-muted);
  font-size:.94rem;
  line-height:1.55;
}

.ip-playas-more{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:max-content;
  max-width:100%;
  margin-top:18px;
  padding:10px 16px;
  border-radius:999px;
  background:var(--ip-ink);
  color:#fff;
  text-decoration:none;
  font-weight:900;
  font-size:.88rem;
  line-height:1;
  box-shadow:0 14px 30px rgba(2,18,22,.14);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.ip-playas-more:after{
  content:"↓";
  font-size:.95em;
  transform:translateY(-1px);
}
.ip-playas-more:hover,
.ip-playas-more:focus-visible{
  transform:translateY(-2px);
  background:var(--ip-sea-dark);
  box-shadow:0 18px 36px rgba(2,18,22,.18);
}
.ip-playas-more--light{
  margin-top:26px;
  background:#fff;
  color:var(--ip-sea-dark);
}
.ip-playas-more--light:hover,
.ip-playas-more--light:focus-visible{
  background:var(--ip-lime);
  color:var(--ip-ink);
}
.ip-playas-section-head{
  scroll-margin-top:120px;
}

@media (max-width:900px){
  .ip-playas-overview{grid-template-columns:1fr}
  .ip-playas-feature{min-height:0}
}
@media (max-width:640px){
  .ip-playas-overview{gap:12px;margin-bottom:34px}
  .ip-playas-feature{border-radius:28px;padding:24px}
  .ip-playas-feature h2{font-size:clamp(1.75rem,10vw,2.45rem)}
  .ip-playas-visual-grid{grid-template-columns:1fr;gap:12px}
  .ip-playas-mini-card{border-radius:24px;padding:20px}
}

/* v2.0.289 - Ensure news card CTA links are directly clickable */
.ip-news-card .ip-news-card-button{position:relative;z-index:4}

/* v2.0.289 - home: próximos eventos en 4 columnas desktop y 2 columnas móvil */
.ip-home-events .ip-home-events-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
@media (max-width:1024px){
  .ip-home-events .ip-home-events-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:640px){
  .ip-home-events .ip-home-events-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px;
  }
  .ip-home-events .ip-home-event-card .ip-card-body{
    padding:14px;
  }
  .ip-home-events .ip-home-event-card .ip-card-title{
    font-size:.98rem;
    line-height:1.08;
  }
  .ip-home-events .ip-home-event-card .ip-button-ghost{
    width:100%;
    justify-content:center;
    min-height:40px;
    padding-inline:10px;
    font-size:.82rem;
  }
}

/* v2.0.289 - agenda: los eventos con fecha de inicio y fin se agrupan en todos los meses que abarcan */


/* v2.0.289 - agenda: cabeceras mensuales con año y botón lista con esquinas completas */
.ip-agenda-section.is-list-view .ip-home-event-card .ip-button-ghost{
  border-radius:12px!important;
  overflow:hidden!important;
}
@media (max-width:760px){
  .ip-agenda-section.is-list-view .ip-home-event-card .ip-button-ghost{
    border-radius:12px!important;
  }
}


/* v2.0.289 - home: indicador animado para sugerir scroll bajo el carrusel */
.home .ip-hero-scroll-cue,
.front-page .ip-hero-scroll-cue{
  position:absolute;
  z-index:5;
  left:50%;
  bottom:54px;
  transform:translateX(-50%);
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 13px 8px 15px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(7,19,22,.36);
  color:#fff;
  font-size:.76rem;
  font-weight:850;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-decoration:none;
  box-shadow:0 18px 44px rgba(0,0,0,.22);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  animation:ipHeroScrollCueIn .75s cubic-bezier(.2,.78,.2,1) .7s both, ipHeroScrollCueFloat 1.45s ease-in-out 1.6s infinite;
}
.home .ip-hero-scroll-cue i,
.front-page .ip-hero-scroll-cue i{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:999px;
  background:var(--ip-lime);
  color:#0c2c2f;
  font-style:normal;
  font-size:1.15rem;
  line-height:1;
  box-shadow:0 8px 18px rgba(29,160,193,.24);
  animation:ipHeroScrollCueArrow 1.1s ease-in-out infinite;
}
.home .ip-hero-scroll-cue:hover,
.front-page .ip-hero-scroll-cue:hover{
  background:rgba(7,19,22,.54);
  border-color:rgba(255,255,255,.42);
}
.home .ip-hero-scroll-cue:focus-visible,
.front-page .ip-hero-scroll-cue:focus-visible{
  outline:3px solid var(--ip-lime);
  outline-offset:4px;
}
@keyframes ipHeroScrollCueIn{
  from{opacity:0;transform:translate(-50%,14px) scale(.96);filter:blur(5px)}
  to{opacity:1;transform:translate(-50%,0) scale(1);filter:blur(0)}
}
@keyframes ipHeroScrollCueFloat{
  0%,100%{transform:translate(-50%,0)}
  50%{transform:translate(-50%,7px)}
}
@keyframes ipHeroScrollCueArrow{
  0%,100%{transform:translateY(-1px)}
  50%{transform:translateY(3px)}
}
@media (max-width:900px){
  .home .ip-hero-scroll-cue,
  .front-page .ip-hero-scroll-cue{
    bottom:54px;
    padding:7px 11px 7px 13px;
    font-size:.68rem;
  }
  .home .ip-hero-scroll-cue i,
  .front-page .ip-hero-scroll-cue i{
    width:20px;
    height:20px;
    font-size:1.05rem;
  }
}
@media (max-width:420px){
  .home .ip-hero-scroll-cue,
  .front-page .ip-hero-scroll-cue{
    bottom:52px;
  }
}
@media (prefers-reduced-motion:reduce){
  .home .ip-hero-scroll-cue,
  .front-page .ip-hero-scroll-cue,
  .home .ip-hero-scroll-cue i,
  .front-page .ip-hero-scroll-cue i{
    animation:none!important;
  }
}

/* v2.0.289 - redirecciones 301 de slugs antiguos de playas a /playas-y-calas-peniscola/ */


/* v2.0.289 - Playas: subtítulo visible bajo el título principal */
.ip-playas-page .ip-playas-hero .ip-page-hero-card{
  padding-bottom:30px;
}
.ip-playas-page .ip-playas-hero-lead{
  display:grid!important;
  gap:4px;
  max-width:880px!important;
  margin-top:0!important;
  font-size:clamp(1.04rem,1.45vw,1.22rem)!important;
  line-height:1.5!important;
  color:var(--ip-muted)!important;
  opacity:1;
  visibility:visible;
}
.ip-playas-page .ip-playas-hero-lead span{
  display:block;
}
@media (max-width:760px){
  .ip-playas-page .ip-playas-hero-lead{
    gap:6px;
    font-size:1rem!important;
  }
}


/* v2.0.289 - Plantilla Gastronomía */
.ip-gastronomia-page .ip-gastro-section{
  padding-top:clamp(18px,3vw,34px);
}
.ip-gastro-intro-card{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);
  gap:clamp(18px,3vw,34px);
  align-items:center;
  padding:clamp(24px,4vw,44px);
  border:1px solid var(--ip-line);
  border-radius:var(--ip-radius-lg);
  background:
    radial-gradient(circle at 86% 12%, rgba(255,141,107,.22), transparent 28%),
    radial-gradient(circle at 8% 0%, rgba(141,229,220,.28), transparent 32%),
    rgba(255,255,255,.9);
  box-shadow:var(--ip-shadow-soft);
  margin-bottom:clamp(22px,4vw,42px);
  overflow:hidden;
  position:relative;
}
.ip-gastro-intro-card:after{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  right:-70px;
  bottom:-80px;
  border-radius:999px;
  background:rgba(29,160,193,.35);
  pointer-events:none;
}
.ip-gastro-intro-copy{position:relative;z-index:1}
.ip-gastro-intro-copy h2,
.ip-gastro-feature-block h2,
.ip-gastro-routes-band h2,
.ip-gastro-recipes-copy h2{
  margin:8px 0 12px;
  font-size:clamp(1.75rem,3.5vw,3rem);
  line-height:1.05;
  letter-spacing:-.055em;
}
.ip-gastro-intro-copy p,
.ip-gastro-feature-block p,
.ip-gastro-card p,
.ip-gastro-routes-band p,
.ip-gastro-recipes-copy p{
  margin:0;
  color:var(--ip-muted);
}
.ip-gastro-highlight-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  position:relative;
  z-index:1;
}
.ip-gastro-highlight-list span,
.ip-gastro-mini-list span{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:62px;
  padding:12px 14px;
  border-radius:20px;
  border:1px solid rgba(16,97,106,.16);
  background:rgba(255,255,255,.72);
  color:var(--ip-sea-dark);
  font-weight:850;
  text-align:center;
  box-shadow:0 10px 28px rgba(7,19,22,.06);
}
.ip-gastro-layout{
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(0,1.35fr);
  gap:clamp(18px,3vw,30px);
  align-items:stretch;
  margin-bottom:clamp(22px,4vw,42px);
}
.ip-gastro-feature-block{
  min-height:100%;
  padding:clamp(24px,4vw,38px);
  border-radius:34px;
  background:linear-gradient(135deg,var(--ip-sea-dark),#0b3f4d);
  color:#fff;
  box-shadow:var(--ip-shadow-soft);
  overflow:hidden;
  position:relative;
}
.ip-gastro-feature-block:after{
  content:"";
  position:absolute;
  inset:auto -64px -70px auto;
  width:190px;
  height:190px;
  border-radius:999px;
  background:rgba(141,229,220,.22);
}
.ip-gastro-feature-block p{color:rgba(255,255,255,.82)}
.ip-gastro-feature-block .ip-gastro-kicker{
  color:var(--ip-aqua);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:900;
}
.ip-gastro-icon{
  display:inline-flex;
  width:58px;
  height:58px;
  align-items:center;
  justify-content:center;
  border-radius:20px;
  background:rgba(255,255,255,.14);
  font-size:1.8rem;
  margin-bottom:18px;
}
.ip-gastro-card-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.ip-gastro-card{
  padding:22px;
  border-radius:26px;
  border:1px solid var(--ip-line);
  background:rgba(255,255,255,.88);
  box-shadow:0 14px 38px rgba(7,19,22,.08);
}
.ip-gastro-card > span{
  display:inline-flex;
  width:48px;
  height:48px;
  align-items:center;
  justify-content:center;
  border-radius:18px;
  background:var(--ip-soft);
  font-size:1.45rem;
  margin-bottom:14px;
}
.ip-gastro-card h3{
  margin:0 0 8px;
  font-size:1.12rem;
  letter-spacing:-.025em;
}
.ip-gastro-routes-band{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(250px,.85fr);
  gap:clamp(18px,3vw,30px);
  align-items:center;
  padding:clamp(24px,4vw,38px);
  border-radius:34px;
  background:linear-gradient(135deg,rgba(244,234,215,.9),rgba(255,255,255,.9));
  border:1px solid var(--ip-line);
  box-shadow:var(--ip-shadow-soft);
  margin-bottom:clamp(22px,4vw,42px);
}
.ip-gastro-mini-list{
  display:grid;
  gap:12px;
}
.ip-gastro-recipes-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:clamp(24px,4vw,40px);
  border-radius:34px;
  background:linear-gradient(135deg,#071316,#123d44);
  color:#fff;
  box-shadow:var(--ip-shadow);
}
.ip-gastro-recipes-cta .ip-eyebrow{color:var(--ip-aqua)}
.ip-gastro-recipes-copy p{color:rgba(255,255,255,.78)}
.ip-gastro-recipes-cta .ip-button{
  flex:0 0 auto;
  background:var(--ip-lime);
  color:var(--ip-ink);
  box-shadow:none;
}
@media (max-width:900px){
  .ip-gastro-intro-card,
  .ip-gastro-layout,
  .ip-gastro-routes-band,
  .ip-gastro-recipes-cta{
    grid-template-columns:1fr;
  }
  .ip-gastro-recipes-cta{
    display:grid;
  }
  .ip-gastro-recipes-cta .ip-button{
    width:100%;
    justify-content:center;
  }
}
@media (max-width:640px){
  .ip-gastro-highlight-list,
  .ip-gastro-card-grid{
    grid-template-columns:1fr;
  }
  .ip-gastro-intro-card,
  .ip-gastro-feature-block,
  .ip-gastro-routes-band,
  .ip-gastro-recipes-cta{
    border-radius:28px;
  }
  .ip-gastro-card{border-radius:22px;padding:20px}
}

/* v2.0.289 - Menú Descubrir: Gastronomía añadida tras Playas y Calas, Historia reubicada después. */


/* v2.0.289 - Enlace de Gastronomía actualizado a /gastronomia-de-peniscola/. */


/* v2.0.289 - Botón Mapa visible fuera del menú hamburguesa en móvil */
.ip-header-cta-icon{display:inline-flex;align-items:center;line-height:1;font-size:1rem}
.ip-header-cta-label-mobile{display:none}
.ip-header-cta:before{display:none!important;content:none!important}
@media (max-width:900px){
  .ip-site-header .ip-header-inner{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
  }
  .ip-site-header .ip-logo{
    min-width:0;
  }
  .ip-site-header .ip-header-right{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:8px!important;
    margin-left:0!important;
    min-width:0;
  }
  .ip-site-header .ip-header-actions{
    display:flex!important;
    order:1!important;
    flex:0 0 auto!important;
    align-items:center!important;
    gap:0!important;
  }
  .ip-site-header .ip-nav-toggle{
    order:2!important;
    flex:0 0 auto!important;
  }
  .ip-site-header .ip-main-nav{
    order:3!important;
  }
  .ip-site-header .ip-header-cta{
    min-height:42px!important;
    padding:0 12px!important;
    border-radius:14px!important;
    font-size:.84rem!important;
    font-weight:950!important;
    box-shadow:0 12px 28px rgba(7,19,22,.12)!important;
    gap:6px!important;
    white-space:nowrap!important;
  }
  .ip-site-header .ip-header-cta-icon,
  .ip-site-header .ip-header-cta-label-mobile{
    display:inline-flex!important;
    align-items:center!important;
  }
  .ip-site-header .ip-header-cta-label-full{
    display:none!important;
  }
  .ip-mobile-map-menu-item{
    display:none!important;
  }
}
@media (max-width:380px){
  .ip-site-header .ip-header-cta{
    padding:0 10px!important;
    font-size:.8rem!important;
  }
  .ip-site-header .ip-nav-toggle{
    padding:0 11px!important;
  }
}


/* v2.0.289 - Botón Webcam móvil solo con icono */
.ip-header-webcam-cta{display:none}
@media (max-width:900px){
  .ip-site-header .ip-header-actions{
    gap:6px!important;
  }
  .ip-site-header .ip-header-webcam-cta{
    display:inline-flex!important;
    width:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    padding:0!important;
    border-radius:14px!important;
    align-items:center!important;
    justify-content:center!important;
    gap:0!important;
    white-space:nowrap!important;
    font-size:.84rem!important;
    font-weight:950!important;
    text-decoration:none!important;
    color:var(--ip-ink)!important;
    background:rgba(255,255,255,.94)!important;
    border:1px solid rgba(255,255,255,.26)!important;
    box-shadow:0 12px 28px rgba(7,19,22,.12)!important;
    backdrop-filter:blur(16px);
  }
  .ip-header-solid .ip-header-webcam-cta{
    border-color:var(--ip-line)!important;
  }
  .ip-site-header .ip-header-webcam-icon{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    line-height:1!important;
    font-size:1.05rem!important;
  }
  .ip-site-header .ip-header-webcam-label{
    display:none!important;
  }
}
@media (max-width:380px){
  .ip-site-header .ip-header-webcam-cta{
    width:40px!important;
    min-width:40px!important;
    min-height:40px!important;
    padding:0!important;
    font-size:.8rem!important;
  }
}

/* v2.0.289 - Webcam móvil oculto en home e icono SVG específico */
.home .ip-site-header .ip-header-webcam-cta,
.front-page .ip-site-header .ip-header-webcam-cta{
  display:none!important;
}
@media (max-width:900px){
  .ip-site-header .ip-header-webcam-icon svg{
    display:block!important;
    width:22px!important;
    height:22px!important;
  }
  .ip-site-header .ip-header-webcam-cta{
    color:#0b4451!important;
  }
}
@media (max-width:380px){
  .ip-site-header .ip-header-webcam-icon svg{
    width:20px!important;
    height:20px!important;
  }
}


/* v2.0.289 - Badge del tiempo en cabecera desktop fuera de la home */
.ip-header-weather{
  display:none;
}
@media (min-width:901px){
  body:not(.home):not(.front-page) .ip-site-header .ip-header-weather{
    display:inline-grid;
    grid-template-columns:auto auto auto;
    align-items:center;
    gap:8px;
    min-height:42px;
    padding:7px 12px 7px 8px;
    border-radius:999px;
    text-decoration:none;
    white-space:nowrap;
    color:#fff;
    background:rgba(7,19,22,.48);
    border:1px solid rgba(255,255,255,.28);
    box-shadow:0 14px 34px rgba(7,19,22,.14);
    -webkit-backdrop-filter:blur(18px) saturate(1.18);
    backdrop-filter:blur(18px) saturate(1.18);
    transition:transform .22s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease;
  }
  body:not(.home):not(.front-page) .ip-header-solid .ip-header-weather,
  body:not(.home):not(.front-page) .ip-header-floating.ip-is-scrolled .ip-header-weather{
    color:var(--ip-ink);
    background:#fff;
    border-color:var(--ip-line);
    box-shadow:0 10px 26px rgba(7,19,22,.08);
  }
  body:not(.home):not(.front-page) .ip-header-weather:hover{
    transform:translateY(-2px);
    box-shadow:0 18px 42px rgba(7,19,22,.16);
  }
  body:not(.home):not(.front-page) .ip-header-weather:focus-visible{
    outline:3px solid var(--ip-lime);
    outline-offset:4px;
  }
  .ip-header-weather-icon{
    display:inline-grid;
    place-items:center;
    width:28px;
    height:28px;
    border-radius:999px;
    background:rgba(255,255,255,.94);
    color:var(--ip-ink);
    font-size:.96rem;
    line-height:1;
  }
  .ip-header-solid .ip-header-weather-icon,
  .ip-header-floating.ip-is-scrolled .ip-header-weather-icon{
    background:var(--ip-cloud);
    color:var(--ip-sea-dark);
  }
  .ip-header-weather-text{
    max-width:132px;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:.72rem;
    font-weight:900;
    letter-spacing:-.02em;
    color:rgba(255,255,255,.86);
  }
  .ip-header-solid .ip-header-weather-text,
  .ip-header-floating.ip-is-scrolled .ip-header-weather-text{
    color:var(--ip-muted);
  }
  .ip-header-weather strong{
    font-size:.96rem;
    line-height:1;
    letter-spacing:-.045em;
    color:var(--ip-lime);
  }
  .ip-header-solid .ip-header-weather strong,
  .ip-header-floating.ip-is-scrolled .ip-header-weather strong{
    color:var(--ip-sea-dark);
  }
  .ip-header-weather.is-loaded{
    animation:ipWeatherIn .5s cubic-bezier(.2,.78,.2,1) both;
  }
}
@media (max-width:1200px) and (min-width:901px){
  body:not(.home):not(.front-page) .ip-site-header .ip-header-weather{
    padding-right:10px;
  }
  .ip-header-weather-text{
    display:none;
  }
}
@media (max-width:900px){
  .ip-site-header .ip-header-weather{
    display:none!important;
  }
}


/* v2.0.289 - Home: rediseño moderno de próximos eventos */
.home .ip-home-events{
  position:relative;
  margin-top:0;
  padding:clamp(44px,6vw,78px) 0 clamp(42px,5vw,66px);
  overflow:hidden;
  background:
    radial-gradient(circle at 10% 0%, rgba(81,184,187,.18), transparent 34%),
    radial-gradient(circle at 92% 18%, rgba(29,160,193,.22), transparent 28%),
    linear-gradient(180deg, rgba(243,248,247,.92), rgba(255,255,255,0));
}
.home .ip-home-events:before{
  content:"";
  position:absolute;
  inset:18px clamp(12px,3vw,36px) auto;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(16,97,106,.22), transparent);
  pointer-events:none;
}
.home .ip-home-events .ip-section-head{
  position:relative;
  z-index:2;
  align-items:center;
  margin-bottom:22px;
}
.home .ip-home-events .ip-eyebrow{
  background:rgba(255,255,255,.78);
  border-color:rgba(16,97,106,.16);
  box-shadow:0 10px 26px rgba(7,19,22,.06);
}
.home .ip-home-events .ip-home-events-grid{
  position:relative;
  z-index:2;
  align-items:stretch;
}
.home .ip-home-events .ip-home-event-card{
  isolation:isolate;
  border:1px solid rgba(255,255,255,.74);
  border-radius:30px;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.78));
  box-shadow:0 22px 58px rgba(7,19,22,.10);
  backdrop-filter:blur(14px);
  transform:translateY(0);
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.home .ip-home-events .ip-home-event-card:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  z-index:4;
  background:linear-gradient(90deg,var(--ip-sea),var(--ip-aqua),var(--ip-lime));
  opacity:.95;
}
.home .ip-home-events .ip-home-event-card:after{
  content:"";
  position:absolute;
  inset:-35% auto auto -55%;
  width:72%;
  height:190%;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.32) 45%,transparent 70%);
  transform:rotate(10deg) translateX(-18%);
  opacity:0;
  transition:opacity .25s ease, transform .7s ease;
}
.home .ip-home-events .ip-home-event-card:hover{
  transform:translateY(-8px);
  border-color:rgba(81,184,187,.34);
  box-shadow:0 30px 82px rgba(7,19,22,.18);
}
.home .ip-home-events .ip-home-event-card:hover:after{
  opacity:1;
  transform:rotate(10deg) translateX(185%);
}
.home .ip-home-events .ip-home-event-card .ip-card-media{
  aspect-ratio:16/11;
  border-radius:0 0 26px 26px;
  position:relative;
}
.home .ip-home-events .ip-home-event-card .ip-card-media:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(180deg,rgba(7,19,22,.03),rgba(7,19,22,.36));
  pointer-events:none;
}
.home .ip-home-events .ip-home-event-date-badge{
  top:auto;
  right:auto;
  left:12px;
  bottom:12px;
  min-height:36px;
  max-width:calc(100% - 24px);
  padding:8px 11px;
  border-radius:16px;
  color:#fff;
  background:rgba(7,19,22,.68);
  border:1px solid rgba(255,255,255,.26);
  box-shadow:0 14px 34px rgba(7,19,22,.22);
  backdrop-filter:blur(14px);
  text-align:left;
}
.home .ip-home-events .ip-home-event-card .ip-card-body{
  position:relative;
  z-index:3;
  padding:18px;
  gap:12px;
}
.home .ip-home-events .ip-home-event-card .ip-event-list-line-meta{
  display:none!important;
}
.home .ip-home-events .ip-home-event-card .ip-event-card-title{
  min-height:2.15em;
  font-size:clamp(1.06rem,1.18vw,1.28rem);
  line-height:1.06;
  letter-spacing:-.055em;
}
.home .ip-home-events .ip-home-event-card .ip-home-event-kicker{
  order:3;
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.home .ip-home-events .ip-home-event-card .ip-chip{
  max-width:100%;
  min-height:28px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(228,244,243,.92);
  border-color:rgba(16,97,106,.13);
  color:var(--ip-sea-dark);
  font-size:.68rem;
  font-weight:900;
}
.home .ip-home-events .ip-home-event-card .ip-home-event-poi-chip{
  background:#fff;
  color:var(--ip-muted);
}
.home .ip-home-events .ip-home-event-card .ip-button-ghost{
  width:100%;
  min-height:42px;
  margin-top:2px;
  border-radius:16px!important;
  justify-content:center;
  background:linear-gradient(135deg,var(--ip-ink),#123f45);
  color:#fff;
  box-shadow:0 12px 28px rgba(7,19,22,.14);
}
.home .ip-home-events .ip-home-event-card:hover .ip-button-ghost{
  background:linear-gradient(135deg,var(--ip-sea-dark),var(--ip-ink));
  box-shadow:0 16px 38px rgba(7,19,22,.18);
}
.home .ip-home-events .ip-home-events-footer{
  position:relative;
  z-index:2;
  margin-top:26px;
}
.home .ip-home-events .ip-home-events-cta{
  border-radius:999px;
  box-shadow:0 18px 42px rgba(7,19,22,.14);
}
@media (min-width:901px){
  .home .ip-home-events .ip-home-events-grid .ip-home-event-card{
    animation:ip-home-event-rise .7s ease both;
  }
  .home .ip-home-events .ip-home-events-grid .ip-home-event-card:nth-child(2){animation-delay:.07s}
  .home .ip-home-events .ip-home-events-grid .ip-home-event-card:nth-child(3){animation-delay:.14s}
  .home .ip-home-events .ip-home-events-grid .ip-home-event-card:nth-child(4){animation-delay:.21s}
}
@keyframes ip-home-event-rise{
  from{opacity:0;transform:translateY(22px) scale(.98)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@media (max-width:640px){
  .home .ip-home-events{
    padding:34px 0 44px;
  }
  .home .ip-home-events .ip-section-head{
    margin-bottom:16px;
  }
  .home .ip-home-events .ip-home-events-grid{
    gap:12px!important;
  }
  .home .ip-home-events .ip-home-event-card{
    border-radius:22px;
  }
  .home .ip-home-events .ip-home-event-card .ip-card-media{
    aspect-ratio:1/1;
    border-radius:0 0 20px 20px;
  }
  .home .ip-home-events .ip-home-event-date-badge{
    left:9px;
    bottom:9px;
    max-width:calc(100% - 18px);
    min-height:30px;
    padding:6px 8px;
    border-radius:13px;
    font-size:.62rem;
  }
  .home .ip-home-events .ip-home-event-card .ip-card-body{
    padding:12px!important;
    gap:9px;
  }
  .home .ip-home-events .ip-home-event-card .ip-event-card-title{
    min-height:auto;
    font-size:.95rem!important;
    line-height:1.08;
  }
  .home .ip-home-events .ip-home-event-card .ip-home-event-kicker{
    gap:5px;
  }
  .home .ip-home-events .ip-home-event-card .ip-chip{
    min-height:24px;
    padding:5px 7px;
    font-size:.6rem;
  }
  .home .ip-home-events .ip-home-event-card .ip-button-ghost{
    min-height:36px!important;
    border-radius:13px!important;
    font-size:.76rem!important;
  }
}
@media (prefers-reduced-motion:reduce){
  .home .ip-home-events .ip-home-events-grid .ip-home-event-card{
    animation:none!important;
  }
  .home .ip-home-events .ip-home-event-card,
  .home .ip-home-events .ip-home-event-card:after,
  .home .ip-home-events .ip-home-event-card .ip-card-media img{
    transition:none!important;
  }
}


/* v2.0.289 - paginación moderna en Lugares de interés */
.post-type-archive-ip_poi .ip-poi-pagination-wrap{
  width:max-content;
  max-width:100%;
  margin:clamp(30px,4vw,46px) auto 0;
  padding:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  border:1px solid rgba(7,19,22,.09);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(228,244,243,.74));
  box-shadow:0 22px 58px rgba(7,19,22,.10);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.post-type-archive-ip_poi .ip-poi-pagination-wrap .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-width:42px;
  height:42px;
  padding:0 14px;
  margin:0;
  border:1px solid rgba(7,19,22,.10);
  border-radius:999px;
  background:rgba(255,255,255,.82);
  color:var(--ip-ink);
  font-size:.88rem;
  font-weight:950;
  line-height:1;
  letter-spacing:-.02em;
  box-shadow:none;
  transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease;
}
.post-type-archive-ip_poi .ip-poi-pagination-wrap a.page-numbers:hover,
.post-type-archive-ip_poi .ip-poi-pagination-wrap a.page-numbers:focus-visible{
  transform:translateY(-2px);
  background:#fff;
  border-color:rgba(81,184,187,.36);
  box-shadow:0 14px 30px rgba(7,19,22,.10);
  outline:none;
}
.post-type-archive-ip_poi .ip-poi-pagination-wrap .page-numbers.current{
  background:var(--ip-ink);
  color:#fff;
  border-color:var(--ip-ink);
  box-shadow:0 14px 34px rgba(7,19,22,.18);
}
.post-type-archive-ip_poi .ip-poi-pagination-wrap .page-numbers.prev,
.post-type-archive-ip_poi .ip-poi-pagination-wrap .page-numbers.next{
  min-width:0;
  padding-inline:18px;
  background:var(--ip-lime);
  color:var(--ip-ink);
  border-color:rgba(7,19,22,.08);
  box-shadow:0 14px 34px rgba(29,160,193,.22);
}
.post-type-archive-ip_poi .ip-poi-pagination-wrap .page-numbers.prev:hover,
.post-type-archive-ip_poi .ip-poi-pagination-wrap .page-numbers.next:hover,
.post-type-archive-ip_poi .ip-poi-pagination-wrap .page-numbers.prev:focus-visible,
.post-type-archive-ip_poi .ip-poi-pagination-wrap .page-numbers.next:focus-visible{
  background:#eaff75;
  border-color:rgba(7,19,22,.10);
  box-shadow:0 18px 38px rgba(29,160,193,.28);
}
.post-type-archive-ip_poi .ip-poi-pagination-wrap .page-numbers.dots{
  min-width:24px;
  padding:0 2px;
  background:transparent;
  border-color:transparent;
  color:var(--ip-muted);
  box-shadow:none;
}
@media (max-width:640px){
  .post-type-archive-ip_poi .ip-poi-pagination-wrap{
    width:100%;
    margin-top:24px;
    padding:8px;
    gap:6px;
    border-radius:24px;
  }
  .post-type-archive-ip_poi .ip-poi-pagination-wrap .page-numbers{
    min-width:38px;
    height:38px;
    padding:0 12px;
    font-size:.82rem;
  }
  .post-type-archive-ip_poi .ip-poi-pagination-wrap .page-numbers.prev,
  .post-type-archive-ip_poi .ip-poi-pagination-wrap .page-numbers.next{
    flex:1 1 auto;
    padding-inline:14px;
  }
}


/* v2.0.289 - badges de fichas POI fuera del hero cuando hay imagen */
.single-ip_poi .ip-poi-hero-badges-outside{
  margin:-2px 0 0;
  position:relative;
  z-index:4;
}
.single-ip_poi .ip-poi-hero-badges-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  width:fit-content;
  max-width:100%;
  padding:12px;
  border:1px solid rgba(7,19,22,.08);
  border-radius:999px;
  background:rgba(255,255,255,.76);
  box-shadow:0 22px 70px rgba(7,19,22,.10);
  backdrop-filter:blur(16px);
}
.single-ip_poi .ip-poi-hero-badges-outside .ip-page-meta-chip{
  min-height:38px;
  padding:10px 16px;
  border-color:rgba(7,19,22,.11);
  background:rgba(255,255,255,.92);
  color:var(--ip-ink);
  text-decoration:none;
  box-shadow:0 10px 28px rgba(7,19,22,.06);
}
.single-ip_poi .ip-poi-hero-badges-outside a.ip-page-meta-chip:hover,
.single-ip_poi .ip-poi-hero-badges-outside a.ip-page-meta-chip:focus-visible{
  transform:translateY(-2px);
  background:#fff;
  border-color:rgba(81,184,187,.36);
  box-shadow:0 16px 34px rgba(7,19,22,.11);
  outline:none;
}
.single-ip_poi .ip-poi-hero-badges-outside .ip-page-meta-chip[href$="#informacion-util"],
.single-ip_poi .ip-poi-hero-badges-outside .ip-page-meta-chip[href="#informacion-util"]{
  min-width:48px;
  justify-content:center;
  background:var(--ip-lime);
  border-color:var(--ip-lime);
  color:var(--ip-ink);
  font-size:1.08rem;
  font-weight:1000;
  box-shadow:0 16px 34px rgba(29,160,193,.25);
}
.single-ip_poi .ip-poi-hero-badges-outside .ip-page-meta-chip[href$="#informacion-util"]:before,
.single-ip_poi .ip-poi-hero-badges-outside .ip-page-meta-chip[href="#informacion-util"]:before{
  display:none;
}
.single-ip_poi .ip-poi-hero-badges-outside + .ip-section-tight{
  padding-top:28px;
}
@media (max-width:900px){
  .single-ip_poi .ip-poi-hero-badges-row{
    border-radius:28px;
  }
}
@media (max-width:640px){
  .single-ip_poi .ip-poi-hero-badges-outside{
    margin-top:-4px;
  }
  .single-ip_poi .ip-poi-hero-badges-row{
    width:100%;
    display:flex;
    overflow-x:auto;
    flex-wrap:nowrap;
    gap:8px;
    padding:10px;
    border-radius:22px;
    scrollbar-width:none;
  }
  .single-ip_poi .ip-poi-hero-badges-row::-webkit-scrollbar{display:none}
  .single-ip_poi .ip-poi-hero-badges-outside .ip-page-meta-chip{
    flex:0 0 auto;
    min-height:36px;
    padding:9px 13px;
    font-size:.78rem;
  }
  .single-ip_poi .ip-poi-hero-badges-outside + .ip-section-tight{
    padding-top:22px;
  }
}

/* v2.0.289 - botón compartir en badges de ficha POI */
.single-ip_poi .ip-poi-hero-badges-outside .ip-poi-single-share{
  min-height:38px;
  margin:0;
  padding:10px 16px;
  border-radius:999px;
  white-space:nowrap;
  box-shadow:0 16px 34px rgba(29,160,193,.22),0 10px 28px rgba(7,19,22,.08);
}
.single-ip_poi .ip-poi-hero-badges-outside .ip-poi-single-share svg{
  width:15px;
  height:15px;
}
.single-ip_poi .ip-poi-hero-badges-outside .ip-poi-single-share.is-copied{
  background:#eaff75;
}
@media (max-width:640px){
  .single-ip_poi .ip-poi-hero-badges-outside .ip-poi-single-share{
    flex:0 0 auto;
    min-height:36px;
    padding:9px 13px;
    font-size:.78rem;
  }
}

/* v2.0.289 - en móvil el botón Compartir de fichas POI muestra solo el icono */
@media (max-width:767px){
  .single-ip_poi .ip-poi-hero-badges-outside .ip-poi-single-share{
    width:40px;
    min-width:40px;
    min-height:40px;
    padding:0;
    justify-content:center;
    gap:0;
  }
  .single-ip_poi .ip-poi-hero-badges-outside .ip-poi-single-share span{
    display:none;
  }
  .single-ip_poi .ip-poi-hero-badges-outside .ip-poi-single-share svg{
    width:17px;
    height:17px;
  }
}


/* v2.0.289 - compartir en fichas POI también cuando no hay imagen destacada */
.single-ip_poi .ip-page-hero-meta .ip-poi-single-share{
  min-height:30px;
  margin:0;
  padding:7px 12px;
  border-radius:999px;
  white-space:nowrap;
  box-shadow:0 12px 30px rgba(29,160,193,.22),0 8px 22px rgba(7,19,22,.08);
}
.single-ip_poi .ip-page-hero-meta .ip-poi-single-share svg{
  width:15px;
  height:15px;
}
.single-ip_poi .ip-page-hero-meta .ip-poi-single-share.is-copied{
  background:#eaff75;
}
@media (max-width:767px){
  .single-ip_poi .ip-page-hero-meta .ip-poi-single-share,
  .single-ip_poi .ip-poi-hero-badges-outside .ip-poi-single-share{
    width:40px;
    min-width:40px;
    min-height:40px;
    padding:0;
    justify-content:center;
    gap:0;
  }
  .single-ip_poi .ip-page-hero-meta .ip-poi-single-share span,
  .single-ip_poi .ip-poi-hero-badges-outside .ip-poi-single-share span{
    display:none;
  }
  .single-ip_poi .ip-page-hero-meta .ip-poi-single-share svg,
  .single-ip_poi .ip-poi-hero-badges-outside .ip-poi-single-share svg{
    width:17px;
    height:17px;
  }
}
.single-ip_poi .ip-page-hero:not(.ip-page-hero-overlay) .ip-page-meta-chip[href$="#informacion-util"],
.single-ip_poi .ip-page-hero:not(.ip-page-hero-overlay) .ip-page-meta-chip[href="#informacion-util"]{
  min-width:38px;
  justify-content:center;
  background:var(--ip-lime);
  border-color:var(--ip-lime);
  color:var(--ip-ink);
  font-size:1.05rem;
  font-weight:1000;
  text-decoration:none;
  box-shadow:0 12px 30px rgba(29,160,193,.25);
}
.single-ip_poi .ip-page-hero:not(.ip-page-hero-overlay) .ip-page-meta-chip[href$="#informacion-util"]:before,
.single-ip_poi .ip-page-hero:not(.ip-page-hero-overlay) .ip-page-meta-chip[href="#informacion-util"]:before{
  display:none;
}


/* v2.0.289 - fichas POI: más interlineado en títulos largos */
.single-ip_poi .ip-page-hero .ip-title-lg{
  line-height:.98!important;
}
@media (max-width:640px){
  .single-ip_poi .ip-page-hero .ip-title-lg{
    line-height:1.04!important;
  }
}


/* v2.0.289 - fichas POI: lupa y lightbox para ampliar imagen destacada, con título */
.ip-hero-image-zoom-button{
  position:absolute;
  top:18px;
  right:18px;
  z-index:6;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  padding:0;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  background:rgba(255,255,255,.90);
  color:var(--ip-ink);
  box-shadow:0 18px 48px rgba(7,19,22,.24);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.ip-hero-image-zoom-button:hover,
.ip-hero-image-zoom-button:focus-visible{
  transform:translateY(-2px) scale(1.03);
  background:#fff;
  box-shadow:0 24px 60px rgba(7,19,22,.28);
  outline:none;
}
.ip-hero-image-zoom-button svg{
  width:21px;
  height:21px;
  flex:0 0 auto;
}
.ip-image-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(18px,4vw,44px);
  background:rgba(7,19,22,.78);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease, visibility .22s ease;
}
.ip-image-lightbox.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.ip-image-lightbox-panel{
  position:relative;
  width:min(1180px,100%);
  max-height:min(86vh,860px);
  border-radius:30px;
  overflow:hidden;
  background:#071316;
  box-shadow:0 34px 110px rgba(0,0,0,.46);
  transform:translateY(14px) scale(.985);
  transition:transform .22s ease;
}
.ip-image-lightbox.is-open .ip-image-lightbox-panel{
  transform:translateY(0) scale(1);
}
.ip-image-lightbox-img{
  display:block;
  width:100%;
  height:100%;
  max-height:min(86vh,860px);
  object-fit:contain;
  background:#071316;
}
.ip-image-lightbox-title{
  position:absolute;
  left:18px;
  bottom:18px;
  z-index:2;
  max-width:min(760px,calc(100% - 110px));
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:10px 16px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(7,19,22,.88),rgba(16,97,106,.78));
  color:#fff;
  box-shadow:0 18px 46px rgba(0,0,0,.28);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  font-weight:950;
  font-size:clamp(.92rem,1.8vw,1.12rem);
  line-height:1.22;
  letter-spacing:-.025em;
  text-wrap:balance;
}
.ip-image-lightbox-close{
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--ip-ink);
  font-size:1.35rem;
  line-height:1;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 16px 42px rgba(0,0,0,.22);
}
.ip-image-lightbox-close:hover,
.ip-image-lightbox-close:focus-visible{
  background:#fff;
  transform:translateY(-1px);
  outline:none;
}
body.ip-lightbox-open{
  overflow:hidden;
}
@media (max-width:640px){
  .ip-hero-image-zoom-button{
    top:12px;
    right:12px;
    width:42px;
    height:42px;
  }
  .ip-hero-image-zoom-button svg{
    width:19px;
    height:19px;
  }
  .ip-image-lightbox{
    padding:12px;
  }
  .ip-image-lightbox-panel{
    border-radius:22px;
    max-height:82vh;
  }
  .ip-image-lightbox-img{
    max-height:82vh;
  }
  .ip-image-lightbox-title{
    left:10px;
    bottom:10px;
    max-width:calc(100% - 66px);
    min-height:38px;
    padding:8px 11px;
    border-radius:14px;
    font-size:.86rem;
    line-height:1.18;
  }
  .ip-image-lightbox-close{
    top:10px;
    right:10px;
    width:40px;
    height:40px;
  }
}

/* v2.0.289 - Filtros de lugares: tipo/zona aplicados en servidor y coincidencia exacta por slug para corregir Playas y calas. */

/* v2.0.289 - Coordenadas visibles antes de Abrir en en la tarjeta Información útil del POI. */
.ip-poi-coordinates{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(228,244,243,.78),rgba(255,255,255,.96));
  box-shadow:0 10px 24px rgba(7,19,22,.06);
}
.ip-poi-coordinates span{
  color:var(--ip-muted);
  font-size:.84rem;
  font-weight:850;
}
.ip-poi-coordinates strong{
  color:var(--ip-ink);
  font-size:.86rem;
  font-weight:950;
  text-align:right;
  font-variant-numeric:tabular-nums;
}
@media (max-width:420px){
  .ip-poi-coordinates{align-items:flex-start;flex-direction:column;gap:4px}
  .ip-poi-coordinates strong{text-align:left;font-size:.82rem}
}


/* v2.0.289 - La búsqueda de lugares se sincroniza con servidor mediante ?buscar= para consultar todos los POI, no solo la página activa. */


/* v2.0.289 - ficha POI: botón de información con icono en lugar de + */
.single-ip_poi .ip-poi-info-chip{
  font-size:0!important;
}
.single-ip_poi .ip-poi-info-chip svg{
  width:18px;
  height:18px;
  display:block;
  flex:0 0 auto;
}
.single-ip_poi .ip-page-hero:not(.ip-page-hero-overlay) .ip-poi-info-chip svg{
  width:17px;
  height:17px;
}
@media (max-width:640px){
  .single-ip_poi .ip-poi-info-chip svg{
    width:17px;
    height:17px;
  }
}


/* v2.0.289 - agenda desktop: filtros desplegados y alineados con el selector de vista */
@media (min-width:761px){
  .ip-agenda-section .ip-agenda-controls{
    display:grid!important;
    grid-template-columns:max-content minmax(0,1fr)!important;
    align-items:center!important;
    gap:14px!important;
    margin:0 0 28px!important;
    padding:10px!important;
    border:1px solid rgba(16,97,106,.14)!important;
    border-radius:28px!important;
    background:rgba(255,255,255,.78)!important;
    box-shadow:0 14px 38px rgba(7,19,22,.07)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.08)!important;
    backdrop-filter:blur(16px) saturate(1.08)!important;
  }
  .ip-agenda-section .ip-agenda-toolbar{
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:10px!important;
  }
  .ip-agenda-section .ip-agenda-filter-toggle{
    display:none!important;
  }
  .ip-agenda-section .ip-filter-panel-agenda,
  .ip-agenda-section .ip-filter-panel-agenda:not(.is-open),
  .ip-agenda-section .ip-filter-panel-agenda.is-open{
    display:grid!important;
    grid-template-columns:minmax(185px,1.25fr) minmax(136px,.72fr) minmax(124px,.62fr) minmax(124px,.62fr) auto!important;
    align-items:center!important;
    gap:8px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  .ip-agenda-section .ip-filter-panel-agenda input,
  .ip-agenda-section .ip-filter-panel-agenda select{
    min-height:44px!important;
    border-radius:14px!important;
    background:#fff!important;
  }
  .ip-agenda-section .ip-filter-panel-agenda .ip-button{
    min-height:44px!important;
    padding:12px 15px!important;
    white-space:nowrap!important;
    box-shadow:0 12px 24px rgba(7,19,22,.12)!important;
  }
}
@media (min-width:761px) and (max-width:1120px){
  .ip-agenda-section .ip-agenda-controls{
    grid-template-columns:1fr!important;
    align-items:stretch!important;
  }
  .ip-agenda-section .ip-filter-panel-agenda,
  .ip-agenda-section .ip-filter-panel-agenda:not(.is-open),
  .ip-agenda-section .ip-filter-panel-agenda.is-open{
    grid-template-columns:minmax(220px,1.25fr) repeat(3,minmax(130px,.7fr)) auto!important;
  }
}
@media (max-width:760px){
  .ip-agenda-section .ip-agenda-controls{
    display:block!important;
    margin:0 0 16px!important;
  }
}

/* v2.0.289 - agenda archive: columnas equilibradas cuando no hay botón Archivo */
@media (min-width:761px){
  .ip-agenda-section .ip-filter-panel-agenda:not(.has-archive-link),
  .ip-agenda-section .ip-filter-panel-agenda:not(.has-archive-link):not(.is-open),
  .ip-agenda-section .ip-filter-panel-agenda:not(.has-archive-link).is-open{
    grid-template-columns:minmax(220px,1.35fr) minmax(145px,.72fr) minmax(135px,.65fr) minmax(135px,.65fr)!important;
  }
}
@media (min-width:761px) and (max-width:1120px){
  .ip-agenda-section .ip-filter-panel-agenda:not(.has-archive-link),
  .ip-agenda-section .ip-filter-panel-agenda:not(.has-archive-link):not(.is-open),
  .ip-agenda-section .ip-filter-panel-agenda:not(.has-archive-link).is-open{
    grid-template-columns:minmax(220px,1.25fr) repeat(3,minmax(130px,.7fr))!important;
  }
}

/* v2.0.289 - agenda: más separación inferior bajo el título principal */
.ip-agenda-page-main .ip-page-hero{
  padding-bottom:24px!important;
}
.ip-agenda-page-main .ip-page-hero-card{
  padding-bottom:38px!important;
}
.ip-agenda-page-main .ip-page-hero .ip-title-lg{
  line-height:.94!important;
}
.ip-agenda-page-main .ip-page-hero .ip-title-lg:after{
  margin-top:18px!important;
  margin-bottom:4px!important;
}
@media (max-width:640px){
  .ip-agenda-page-main .ip-page-hero{
    padding-bottom:18px!important;
  }
  .ip-agenda-page-main .ip-page-hero-card{
    padding-bottom:30px!important;
  }
  .ip-agenda-page-main .ip-page-hero .ip-title-lg{
    line-height:.98!important;
  }
  .ip-agenda-page-main .ip-page-hero .ip-title-lg:after{
    margin-top:14px!important;
  }
}


/* v2.0.289 - agenda: menor separación y raya decorativa bajo el título */
.ip-agenda-page-main .ip-page-hero{
  padding-bottom:12px!important;
}
.ip-agenda-page-main .ip-page-hero-card{
  padding-bottom:20px!important;
  border-bottom:0!important;
}
.ip-agenda-page-main .ip-page-hero-card:before{
  display:none!important;
}
.ip-agenda-page-main .ip-page-hero .ip-title-lg{
  line-height:.9!important;
}
.ip-agenda-page-main .ip-page-hero .ip-title-lg:after{
  content:""!important;
  display:block!important;
  width:86px!important;
  height:10px!important;
  margin-top:12px!important;
  margin-bottom:0!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,rgba(81,184,187,.22),rgba(29,160,193,.58))!important;
}
.ip-agenda-page-main .ip-agenda-section{
  padding-top:4px!important;
}
@media (max-width:640px){
  .ip-agenda-page-main .ip-page-hero{
    padding-bottom:10px!important;
  }
  .ip-agenda-page-main .ip-page-hero-card{
    padding-bottom:16px!important;
  }
  .ip-agenda-page-main .ip-page-hero .ip-title-lg{
    line-height:.94!important;
  }
  .ip-agenda-page-main .ip-page-hero .ip-title-lg:after{
    width:62px!important;
    height:8px!important;
    margin-top:10px!important;
  }
  .ip-agenda-page-main .ip-agenda-section{
    padding-top:2px!important;
  }
}


/* Imported GPX/TCX route map */
.ip-route-map-block{margin-top:28px;}
.ip-route-map-block h2{margin-bottom:14px;}
.ip-route-track-note{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;color:var(--ip-muted);font-size:.9rem;}
.ip-route-track-note span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ip-line);background:rgba(255,255,255,.72);border-radius:999px;padding:7px 10px;font-weight:750;color:var(--ip-ink-2);}
.ip-route-track-note b{color:var(--ip-sea-dark);}
.ip-route-single-map-shell .ip-map-single{min-height:380px;}
@media (max-width:640px){.ip-route-single-map-shell .ip-map-single{min-height:340px}.ip-route-track-note{font-size:.84rem}.ip-route-track-note span{width:100%;justify-content:space-between}}

/* v2.0.289 - rutas: archivo descargable, autor y localizaciones importadas */
.ip-route-track-note a{
  color:var(--ip-sea-dark);
  text-decoration:none;
  font-weight:900;
}
.ip-route-track-note a:hover{
  text-decoration:underline;
}
.ip-map-popup small{
  display:block;
  margin-top:3px;
  color:var(--ip-muted);
  font-weight:700;
}
.ip-map-popup p{
  margin:5px 0 0;
  color:var(--ip-ink-2);
  font-size:.9em;
}

/* v2.0.289 - ficha de ruta moderna y waypoints GPX/TCX más robustos */
.ip-route-detail-section{padding-top:28px;}
.ip-route-detail-shell{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:26px;align-items:start;}
.ip-route-detail-main{display:grid;gap:22px;min-width:0;}
.ip-route-summary-card,.ip-route-map-card,.ip-route-content-card,.ip-route-stops-card,.ip-route-side-card{position:relative;border:1px solid var(--ip-line);background:rgba(255,255,255,.82);box-shadow:var(--ip-shadow-soft);backdrop-filter:blur(18px);border-radius:32px;}
.ip-route-summary-card{display:grid;grid-template-columns:minmax(220px,.72fr) 1fr;gap:18px;align-items:center;padding:22px;overflow:hidden;}
.ip-route-summary-card:before{content:"";position:absolute;inset:auto -12% -45% auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(29,160,193,.42),transparent 70%);pointer-events:none;}
.ip-route-summary-card h2,.ip-route-map-card h2,.ip-route-content-card h2,.ip-route-stops-card h2,.ip-route-side-card h2{margin:5px 0 0;letter-spacing:-.045em;line-height:1.05;}
.ip-route-metrics-grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;z-index:1;}
.ip-route-metric-card{min-height:116px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid rgba(7,19,22,.1);background:linear-gradient(180deg,#fff,rgba(243,248,247,.82));border-radius:24px;padding:14px;}
.ip-route-metric-card span:not(.ip-route-metric-icon){font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ip-muted);font-weight:850;}
.ip-route-metric-card strong{font-size:1.08rem;line-height:1.12;color:var(--ip-ink);}
.ip-route-metric-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:14px;background:var(--ip-lime);color:var(--ip-ink);font-weight:950;box-shadow:0 10px 22px rgba(7,19,22,.12);}
.ip-route-map-card,.ip-route-content-card,.ip-route-stops-card{padding:22px;}
.ip-route-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;}
.ip-route-map-badges,.ip-route-side-tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;}
.ip-route-map-badges span,.ip-route-side-tags span{display:inline-flex;align-items:center;border:1px solid rgba(7,19,22,.11);background:rgba(29,160,193,.46);border-radius:999px;padding:8px 11px;font-weight:850;font-size:.82rem;color:var(--ip-ink-2);}
.ip-route-map-card .ip-single-map-shell{border-radius:28px;box-shadow:0 20px 60px rgba(7,19,22,.16);overflow:hidden;border:1px solid rgba(7,19,22,.11);background:#e8f2f2;}
.ip-route-map-card .ip-map-single{height:520px;min-height:520px;}
.ip-route-download-row{padding:12px;margin-top:14px;background:rgba(243,248,247,.8);border:1px solid rgba(7,19,22,.08);border-radius:22px;}
.ip-route-content-card{overflow:hidden;}
.ip-route-content-card:before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--ip-sea-dark),var(--ip-aqua),var(--ip-lime));}
.ip-route-content-card .ip-route-card-head{margin-bottom:8px;}
.ip-route-content-card.ip-prose > p:first-of-type{font-size:1.06rem;color:var(--ip-ink-2);}
.ip-route-stops-card .ip-route-timeline{margin-top:8px;}
.ip-route-detail-side{display:grid;gap:18px;min-width:0;}
.ip-route-side-card{padding:22px;}
.ip-route-side-card-sticky{position:sticky;top:96px;overflow:hidden;}
.ip-route-side-card-sticky:after{content:"";position:absolute;right:-70px;top:-70px;width:180px;height:180px;border-radius:50%;background:rgba(141,229,220,.3);pointer-events:none;}
.ip-route-side-card h2{font-size:1.35rem;margin-bottom:14px;position:relative;z-index:1;}
.ip-route-side-card .ip-meta-list{position:relative;z-index:1;margin-top:14px;}
.ip-route-facts-list .ip-meta-item{background:#fff;border-radius:18px;}
.ip-route-side-tags{justify-content:flex-start;position:relative;z-index:1;margin-bottom:12px;}
.ip-route-side-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:17px;background:var(--ip-cloud);font-weight:950;margin-bottom:12px;}
.ip-route-side-card > strong{display:block;font-size:1.03rem;margin-bottom:8px;letter-spacing:-.02em;}
.ip-route-side-card p{margin-bottom:0;}
@media (max-width:1060px){
  .ip-route-detail-shell{grid-template-columns:1fr;}
  .ip-route-detail-side{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ip-route-side-card-sticky{position:relative;top:auto;grid-column:1/-1;}
}
@media (max-width:820px){
  .ip-route-summary-card{grid-template-columns:1fr;}
  .ip-route-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ip-route-map-card .ip-map-single{height:430px;min-height:430px;}
  .ip-route-card-head{display:grid;}
  .ip-route-map-badges{justify-content:flex-start;}
}
@media (max-width:640px){
  .ip-route-detail-section{padding-top:18px;}
  .ip-route-summary-card,.ip-route-map-card,.ip-route-content-card,.ip-route-stops-card,.ip-route-side-card{border-radius:24px;padding:18px;}
  .ip-route-metrics-grid{grid-template-columns:1fr;}
  .ip-route-metric-card{min-height:96px;}
  .ip-route-map-card .ip-map-single{height:360px;min-height:360px;}
  .ip-route-detail-side{grid-template-columns:1fr;}
  .ip-route-download-row{display:grid;font-size:.84rem;}
}


/* v2.0.289 - ficha pública de rutas rediseñada, título integrado y mejor móvil */
.ip-route-page-main{
  overflow:hidden;
}
.ip-route-hero{
  position:relative;
  padding:22px 0 18px;
}
.ip-route-hero-card{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(7,19,22,.1);
  border-radius:38px;
  min-height:clamp(360px,42vw,520px);
  display:flex;
  align-items:stretch;
  background:linear-gradient(135deg,rgba(243,248,247,.98),rgba(228,244,243,.78));
  box-shadow:var(--ip-shadow-soft);
  isolation:isolate;
}
.ip-route-hero.has-image .ip-route-hero-card{
  color:#fff;
  background-image:linear-gradient(90deg,rgba(7,19,22,.82) 0%,rgba(7,19,22,.56) 48%,rgba(7,19,22,.18) 100%),var(--ip-route-hero-image);
  background-size:cover;
  background-position:center;
  box-shadow:0 28px 82px rgba(7,19,22,.22);
}
.ip-route-hero.no-image .ip-route-hero-card:before,
.ip-route-hero.has-image .ip-route-hero-card:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
}
.ip-route-hero.no-image .ip-route-hero-card:before{
  background:radial-gradient(circle at 12% 12%,rgba(141,229,220,.46),transparent 32%),radial-gradient(circle at 88% 16%,rgba(29,160,193,.5),transparent 28%);
}
.ip-route-hero.has-image .ip-route-hero-card:before{
  background:radial-gradient(circle at 16% 12%,rgba(29,160,193,.22),transparent 30%),linear-gradient(180deg,rgba(7,19,22,.08),rgba(7,19,22,.34));
}
.ip-route-hero-card:after{
  content:"";
  position:absolute;
  left:clamp(20px,3vw,34px);
  right:clamp(20px,3vw,34px);
  bottom:clamp(18px,2.4vw,28px);
  height:1px;
  background:linear-gradient(90deg,rgba(255,255,255,.48),rgba(255,255,255,.14),transparent);
  z-index:1;
  opacity:.72;
}
.ip-route-hero.no-image .ip-route-hero-card:after{
  background:linear-gradient(90deg,var(--ip-sea),var(--ip-lime),transparent);
  opacity:.7;
}
.ip-route-hero-content{
  position:relative;
  z-index:2;
  width:100%;
  display:flex;
  flex-direction:column;
  gap:clamp(18px,2.8vw,34px);
  padding:clamp(24px,4vw,46px);
}
.ip-route-breadcrumbs{
  max-width:100%;
  font-size:.8rem;
}
.ip-route-hero.has-image .ip-route-breadcrumbs,
.ip-route-hero.has-image .ip-route-breadcrumbs a,
.ip-route-hero.has-image .ip-route-breadcrumbs span{
  color:rgba(255,255,255,.84);
}
.ip-route-hero.has-image .ip-route-breadcrumbs a:hover{
  color:#fff;
}
.ip-route-hero-grid{
  flex:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,380px);
  gap:clamp(20px,4vw,52px);
  align-items:end;
}
.ip-route-hero-copy{
  min-width:0;
  max-width:980px;
}
.ip-route-hero-labels{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:16px;
}
.ip-route-hero-labels span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  border-radius:999px;
  border:1px solid rgba(7,19,22,.1);
  background:rgba(255,255,255,.7);
  color:var(--ip-ink-2);
  padding:8px 12px;
  font-size:.82rem;
  font-weight:900;
  line-height:1;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.36);
  backdrop-filter:blur(12px);
}
.ip-route-hero.has-image .ip-route-hero-labels span{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.2);
  color:#fff;
}
.ip-route-hero-title{
  margin:0;
  max-width:960px;
  font-size:clamp(2.45rem,5.1vw,5.25rem);
  line-height:1.02;
  letter-spacing:-.068em;
  text-wrap:balance;
  overflow-wrap:break-word;
  hyphens:auto;
  color:inherit;
}
.ip-route-hero-title:after{
  content:"";
  display:block;
  width:96px;
  height:10px;
  margin-top:18px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--ip-sea),var(--ip-lime));
}
.ip-route-hero.has-image .ip-route-hero-title{
  text-shadow:0 18px 48px rgba(0,0,0,.35);
}
.ip-route-hero.has-image .ip-route-hero-title:after{
  background:linear-gradient(90deg,var(--ip-lime),rgba(255,255,255,.58));
}
.ip-route-hero-lead{
  max-width:760px;
  margin:18px 0 0;
  color:var(--ip-muted);
  font-size:clamp(1rem,1.35vw,1.18rem);
  line-height:1.55;
}
.ip-route-hero.has-image .ip-route-hero-lead{
  color:rgba(255,255,255,.86);
  text-shadow:0 12px 30px rgba(0,0,0,.28);
}
.ip-route-hero-panel{
  align-self:end;
  border:1px solid rgba(7,19,22,.1);
  background:rgba(255,255,255,.84);
  color:var(--ip-ink);
  border-radius:30px;
  padding:18px;
  box-shadow:0 22px 70px rgba(7,19,22,.18);
  backdrop-filter:blur(18px);
}
.ip-route-hero.has-image .ip-route-hero-panel{
  border-color:rgba(255,255,255,.22);
  background:rgba(255,255,255,.16);
  color:#fff;
  box-shadow:0 24px 80px rgba(0,0,0,.26);
}
.ip-route-hero-panel .ip-eyebrow{
  margin-bottom:12px;
}
.ip-route-hero.has-image .ip-route-hero-panel .ip-eyebrow{
  color:rgba(255,255,255,.7);
}
.ip-route-hero-metrics{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.ip-route-hero-metric{
  min-width:0;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:2px 10px;
  align-items:center;
  padding:12px;
  border-radius:20px;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(7,19,22,.08);
}
.ip-route-hero.has-image .ip-route-hero-metric{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.17);
}
.ip-route-hero-metric-icon{
  grid-row:1 / span 2;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:14px;
  background:var(--ip-lime);
  color:var(--ip-ink);
  font-weight:950;
}
.ip-route-hero-metric span:not(.ip-route-hero-metric-icon){
  min-width:0;
  color:var(--ip-muted);
  font-size:.72rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.ip-route-hero.has-image .ip-route-hero-metric span:not(.ip-route-hero-metric-icon){
  color:rgba(255,255,255,.68);
}
.ip-route-hero-metric strong{
  min-width:0;
  color:inherit;
  font-size:.98rem;
  line-height:1.12;
  overflow-wrap:break-word;
}
.ip-route-hero-mini-facts{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.ip-route-hero-mini-facts span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:7px 10px;
  background:rgba(7,19,22,.05);
  font-size:.8rem;
  line-height:1.1;
  color:var(--ip-ink-2);
}
.ip-route-hero.has-image .ip-route-hero-mini-facts span{
  background:rgba(255,255,255,.12);
  color:rgba(255,255,255,.88);
}
.ip-route-hero-mini-facts b{
  color:inherit;
  font-weight:950;
}
.ip-route-page-main .ip-route-detail-section{
  padding-top:18px;
}
.ip-route-primary-card{
  overflow:hidden;
}
.ip-route-primary-card:before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:6px;
  background:linear-gradient(90deg,var(--ip-sea-dark),var(--ip-aqua),var(--ip-lime));
}
.ip-route-page-main .ip-route-detail-shell{
  grid-template-columns:minmax(0,1fr) 340px;
  gap:24px;
}
.ip-route-page-main .ip-route-card-head h2{
  font-size:clamp(1.45rem,2.2vw,2.1rem);
  line-height:1.08;
}
.ip-route-page-main .ip-route-content-card,
.ip-route-page-main .ip-route-map-card,
.ip-route-page-main .ip-route-stops-card,
.ip-route-page-main .ip-route-side-card{
  border-radius:30px;
}
.ip-route-page-main .ip-route-map-card .ip-map-single{
  height:clamp(420px,52vw,620px);
  min-height:420px;
}
.ip-route-page-main .ip-route-side-card h2{
  line-height:1.12;
  overflow-wrap:break-word;
  hyphens:auto;
}
.ip-route-page-main .ip-route-download-row{
  align-items:center;
}
@media (max-width:1060px){
  .ip-route-hero-grid{
    grid-template-columns:1fr;
    align-items:start;
  }
  .ip-route-hero-panel{
    width:100%;
    align-self:start;
  }
  .ip-route-page-main .ip-route-detail-shell{
    grid-template-columns:1fr;
  }
}
@media (max-width:820px){
  .ip-route-hero{
    padding-top:16px;
  }
  .ip-route-hero-card{
    border-radius:30px;
    min-height:0;
  }
  .ip-route-hero-content{
    padding:24px;
  }
  .ip-route-hero-title{
    font-size:clamp(2.25rem,10vw,3.75rem);
    line-height:1.04;
    letter-spacing:-.058em;
  }
  .ip-route-hero-title:after{
    width:76px;
    height:8px;
    margin-top:14px;
  }
  .ip-route-hero-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .ip-route-page-main .ip-route-map-card .ip-map-single{
    height:430px;
    min-height:430px;
  }
}
@media (max-width:640px){
  .ip-route-hero{
    padding:12px 0 10px;
  }
  .ip-route-hero-card{
    border-radius:26px;
  }
  .ip-route-hero-content{
    gap:18px;
    padding:20px 18px 22px;
  }
  .ip-route-breadcrumbs{
    display:flex;
    flex-wrap:nowrap;
    gap:7px;
    overflow-x:auto;
    padding-bottom:4px;
    -webkit-overflow-scrolling:touch;
  }
  .ip-route-breadcrumbs span,
  .ip-route-breadcrumbs a{
    flex:0 0 auto;
  }
  .ip-route-hero-labels{
    gap:6px;
    margin-bottom:12px;
  }
  .ip-route-hero-labels span{
    min-height:30px;
    padding:7px 10px;
    font-size:.76rem;
  }
  .ip-route-hero-title{
    font-size:clamp(2rem,11vw,3.05rem);
    line-height:1.07;
    letter-spacing:-.05em;
  }
  .ip-route-hero-lead{
    margin-top:14px;
    font-size:.98rem;
    line-height:1.48;
  }
  .ip-route-hero-panel{
    border-radius:22px;
    padding:14px;
  }
  .ip-route-hero-metrics{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .ip-route-hero-metric{
    grid-template-columns:30px minmax(0,1fr);
    padding:10px;
    border-radius:16px;
  }
  .ip-route-hero-metric-icon{
    width:30px;
    height:30px;
    border-radius:12px;
    font-size:.9rem;
  }
  .ip-route-hero-metric span:not(.ip-route-hero-metric-icon){
    font-size:.66rem;
  }
  .ip-route-hero-metric strong{
    font-size:.9rem;
  }
  .ip-route-hero-mini-facts{
    display:grid;
    grid-template-columns:1fr;
  }
  .ip-route-hero-mini-facts span{
    justify-content:space-between;
    border-radius:14px;
  }
  .ip-route-page-main .ip-route-detail-section{
    padding-top:12px;
  }
  .ip-route-page-main .ip-route-content-card,
  .ip-route-page-main .ip-route-map-card,
  .ip-route-page-main .ip-route-stops-card,
  .ip-route-page-main .ip-route-side-card{
    border-radius:22px;
    padding:16px;
  }
  .ip-route-page-main .ip-route-card-head{
    gap:10px;
    margin-bottom:12px;
  }
  .ip-route-page-main .ip-route-map-badges{
    gap:6px;
  }
  .ip-route-page-main .ip-route-map-badges span,
  .ip-route-page-main .ip-route-side-tags span{
    font-size:.75rem;
    padding:7px 9px;
  }
  .ip-route-page-main .ip-route-map-card .ip-single-map-shell{
    border-radius:20px;
  }
  .ip-route-page-main .ip-route-map-card .ip-map-single{
    height:360px;
    min-height:360px;
  }
  .ip-route-page-main .ip-route-download-row{
    display:grid;
    gap:8px;
    padding:10px;
  }
  .ip-route-page-main .ip-route-download-row span{
    width:100%;
    justify-content:space-between;
    gap:10px;
  }
  .ip-route-page-main .ip-route-stop-card{
    border-radius:20px;
  }
}
@media (max-width:420px){
  .ip-route-hero-metrics{
    grid-template-columns:1fr;
  }
  .ip-route-hero-title{
    font-size:clamp(1.9rem,12vw,2.65rem);
  }
}

/* v2.0.289 - rutas: recomendaciones pre-hero, migas fuera del hero, solapa y aviso */
.ip-route-breadcrumb-section{
  padding:18px 0 0;
}
.ip-route-breadcrumb-section .ip-page-breadcrumbs{
  margin:0;
  padding:10px 14px;
  width:max-content;
  max-width:100%;
  border:1px solid rgba(7,19,22,.08);
  background:rgba(255,255,255,.76);
  border-radius:999px;
  box-shadow:0 10px 34px rgba(7,19,22,.06);
  backdrop-filter:blur(16px);
}
.ip-route-prep-section{
  padding:18px 0 10px;
}
.ip-route-prep-card{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(230px,.34fr) minmax(0,1fr);
  gap:20px;
  align-items:stretch;
  border:1px solid rgba(7,19,22,.09);
  border-radius:32px;
  background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(228,244,243,.66));
  box-shadow:var(--ip-shadow-soft);
  padding:18px;
}
.ip-route-prep-card:before{
  content:"";
  position:absolute;
  inset:auto -80px -90px auto;
  width:230px;
  height:230px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(29,160,193,.42),transparent 68%);
  pointer-events:none;
}
.ip-route-prep-head{
  position:relative;
  z-index:1;
  padding:8px 8px 8px 4px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.ip-route-prep-head h2{
  margin:6px 0 8px;
  font-size:clamp(1.45rem,2.15vw,2.25rem);
  line-height:1.04;
  letter-spacing:-.048em;
  color:var(--ip-ink);
}
.ip-route-prep-head p{
  margin:0;
  color:var(--ip-muted);
  line-height:1.5;
  font-weight:650;
}
.ip-route-prep-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.ip-route-prep-item{
  min-width:0;
  border:1px solid rgba(7,19,22,.08);
  background:rgba(255,255,255,.78);
  border-radius:22px;
  padding:14px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.64);
}
.ip-route-prep-icon{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:14px;
  background:var(--ip-cloud);
  color:var(--ip-sea-dark);
  font-weight:950;
  margin-bottom:10px;
}
.ip-route-prep-item strong{
  display:block;
  color:var(--ip-ink);
  font-size:.96rem;
  line-height:1.15;
  letter-spacing:-.02em;
  margin-bottom:5px;
}
.ip-route-prep-item p{
  margin:0;
  color:var(--ip-muted);
  font-size:.85rem;
  line-height:1.42;
}
.ip-route-hero-card{
  min-height:clamp(360px,42vw,520px);
}
.ip-route-hero-tab{
  position:absolute;
  top:0;
  right:clamp(20px,3vw,34px);
  z-index:4;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:11px 20px 12px;
  border-radius:0 0 20px 20px;
  background:linear-gradient(135deg,var(--ip-lime),#edf79f);
  color:var(--ip-ink);
  font-size:.82rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.12em;
  box-shadow:0 18px 42px rgba(7,19,22,.18);
}
.ip-route-hero-tab:before,
.ip-route-hero-tab:after{
  content:"";
  position:absolute;
  top:0;
  width:16px;
  height:16px;
  pointer-events:none;
}
.ip-route-hero-tab:before{
  left:-16px;
  background:radial-gradient(circle at left bottom,transparent 15px,var(--ip-lime) 16px);
}
.ip-route-hero-tab:after{
  right:-16px;
  background:radial-gradient(circle at right bottom,transparent 15px,#edf79f 16px);
}
.ip-route-hero-title{
  font-size:clamp(2.05rem,4.05vw,3.95rem);
  line-height:1.06;
  letter-spacing:-.055em;
}
.ip-route-warning-card{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:38px minmax(0,1fr);
  gap:12px;
  margin-top:16px;
  padding:14px;
  border:1px solid rgba(255,141,107,.32);
  background:linear-gradient(135deg,rgba(255,141,107,.13),rgba(255,255,255,.86));
  border-radius:20px;
}
.ip-route-warning-icon{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:15px;
  background:var(--ip-coral);
  color:#fff;
  font-weight:950;
  box-shadow:0 12px 28px rgba(255,141,107,.22);
}
.ip-route-warning-card strong{
  display:block;
  color:var(--ip-ink);
  font-size:.86rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:4px;
}
.ip-route-warning-card p{
  margin:0;
  color:var(--ip-ink-2);
  font-size:.86rem;
  line-height:1.5;
}
@media (max-width:1060px){
  .ip-route-prep-card{
    grid-template-columns:1fr;
  }
  .ip-route-prep-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:820px){
  .ip-route-breadcrumb-section{
    padding-top:14px;
  }
  .ip-route-prep-section{
    padding:14px 0 8px;
  }
  .ip-route-prep-card{
    border-radius:26px;
    padding:16px;
  }
  .ip-route-hero-title{
    font-size:clamp(1.85rem,8.4vw,3rem);
    line-height:1.08;
    letter-spacing:-.048em;
  }
}
@media (max-width:640px){
  .ip-route-breadcrumb-section .ip-page-breadcrumbs{
    display:flex;
    flex-wrap:nowrap;
    gap:7px;
    width:auto;
    overflow-x:auto;
    border-radius:18px;
    padding:9px 11px;
    -webkit-overflow-scrolling:touch;
  }
  .ip-route-breadcrumb-section .ip-page-breadcrumbs span,
  .ip-route-breadcrumb-section .ip-page-breadcrumbs a{
    flex:0 0 auto;
  }
  .ip-route-prep-grid{
    display:flex;
    gap:10px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    padding-bottom:4px;
    -webkit-overflow-scrolling:touch;
  }
  .ip-route-prep-item{
    flex:0 0 78%;
    scroll-snap-align:start;
    border-radius:20px;
  }
  .ip-route-prep-head h2{
    font-size:1.5rem;
  }
  .ip-route-prep-head p{
    font-size:.92rem;
  }
  .ip-route-hero-tab{
    right:18px;
    min-height:39px;
    padding:9px 15px 10px;
    border-radius:0 0 16px 16px;
    font-size:.72rem;
  }
  .ip-route-hero-content{
    padding-top:54px;
  }
  .ip-route-hero-title{
    font-size:clamp(1.72rem,8.8vw,2.45rem);
    line-height:1.11;
    letter-spacing:-.04em;
  }
  .ip-route-warning-card{
    grid-template-columns:1fr;
    gap:10px;
    padding:13px;
    border-radius:18px;
  }
}
@media (max-width:420px){
  .ip-route-prep-item{
    flex-basis:86%;
  }
  .ip-route-hero-title{
    font-size:clamp(1.62rem,9.6vw,2.18rem);
  }
}


/* v2.0.289 - rutas: recomendaciones antes del footer y migas truncadas */
.ip-route-page-main .ip-route-prep-section,
.post-type-archive-ip_ruta .ip-route-prep-section,
.page-template-template-rutas .ip-route-prep-section{
  padding:34px 0 6px;
}
.ip-route-breadcrumb-section .ip-page-breadcrumbs{
  width:100%;
  max-width:100%;
  min-width:0;
  display:flex;
  flex-wrap:nowrap;
  overflow:hidden;
}
.ip-route-breadcrumb-section .ip-page-breadcrumbs a,
.ip-route-breadcrumb-section .ip-page-breadcrumbs .ip-breadcrumb-sep{
  flex:0 0 auto;
  white-space:nowrap;
}
.ip-route-breadcrumb-section .ip-page-breadcrumbs span:last-child{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media (max-width:640px){
  .ip-route-breadcrumb-section .ip-page-breadcrumbs{
    overflow:hidden!important;
    -webkit-overflow-scrolling:auto;
  }
  .ip-route-breadcrumb-section .ip-page-breadcrumbs a:first-child,
  .ip-route-breadcrumb-section .ip-page-breadcrumbs .ip-breadcrumb-sep:first-of-type{
    display:none;
  }
  .ip-route-page-main .ip-route-prep-section,
  .post-type-archive-ip_ruta .ip-route-prep-section,
  .page-template-template-rutas .ip-route-prep-section{
    padding:24px 0 4px;
  }
}


/* v2.0.289 - solapas de hero y recomendaciones de rutas apiladas en móvil */
.ip-hero-corner-tab,
.ip-news-single-hero-tab{
  position:absolute;
  top:0;
  right:clamp(18px,3vw,34px);
  z-index:8;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:11px 20px 12px;
  border-radius:0 0 20px 20px;
  background:linear-gradient(135deg,var(--ip-lime),#edf79f);
  color:var(--ip-ink);
  font-size:.82rem;
  font-weight:950;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.1em;
  box-shadow:0 18px 42px rgba(7,19,22,.18);
}
.ip-hero-corner-tab:before,
.ip-hero-corner-tab:after,
.ip-news-single-hero-tab:before,
.ip-news-single-hero-tab:after{
  content:"";
  position:absolute;
  top:0;
  width:16px;
  height:16px;
  pointer-events:none;
}
.ip-hero-corner-tab:before,
.ip-news-single-hero-tab:before{
  left:-16px;
  background:radial-gradient(circle at left bottom,transparent 15px,var(--ip-lime) 16px);
}
.ip-hero-corner-tab:after,
.ip-news-single-hero-tab:after{
  right:-16px;
  background:radial-gradient(circle at right bottom,transparent 15px,#edf79f 16px);
}
.single-ip_evento .ip-page-hero-overlay .ip-page-hero-content,
.single-ip_poi .ip-page-hero-overlay .ip-page-hero-content{
  padding-top:clamp(18px,2vw,30px);
}
.single-ip_poi .ip-hero-image-zoom-button{
  left:18px;
  right:auto;
}
.single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
  padding-top:62px!important;
}
.ip-news-single-hero-tab{
  right:clamp(18px,4vw,44px);
}
@media (max-width:640px){
  .ip-hero-corner-tab,
  .ip-news-single-hero-tab{
    right:18px;
    min-height:39px;
    padding:9px 14px 10px;
    border-radius:0 0 16px 16px;
    font-size:.68rem;
    letter-spacing:.08em;
  }
  .single-ip_poi .ip-hero-image-zoom-button{
    left:12px;
    right:auto;
  }
  .single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image,
  .single-ip_evento .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image{
    padding-top:56px!important;
  }
  .ip-route-prep-card{
    display:grid;
    grid-template-columns:1fr!important;
    gap:14px;
    border-radius:24px;
    padding:16px;
  }
  .ip-route-prep-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px;
    overflow:visible!important;
    scroll-snap-type:none!important;
    padding-bottom:0!important;
  }
  .ip-route-prep-item{
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    gap:2px 12px;
    align-items:start;
    width:100%!important;
    flex:none!important;
    border-radius:18px;
    padding:13px;
    scroll-snap-align:none!important;
  }
  .ip-route-prep-icon{
    grid-row:1 / span 2;
    width:36px;
    height:36px;
    margin:0;
  }
  .ip-route-prep-item strong,
  .ip-route-prep-item p{
    min-width:0;
  }
  .ip-route-prep-head{
    padding:0;
  }
}
@media (max-width:420px){
  .ip-route-prep-item{
    grid-template-columns:34px minmax(0,1fr);
    gap:2px 10px;
    padding:12px;
  }
  .ip-route-prep-icon{
    width:34px;
    height:34px;
  }
}
.single-ip_evento .ip-page-hero-card:not(.has-image),
.single-ip_poi .ip-page-hero-card:not(.has-image){
  padding-top:54px!important;
}
@media (max-width:640px){
  .single-ip_evento .ip-page-hero-card:not(.has-image),
  .single-ip_poi .ip-page-hero-card:not(.has-image){
    padding-top:50px!important;
  }
}

/* v2.0.289 - badges superiores y ajustes de fichas individuales */
.ip-page-title-badge,
.ip-route-title-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin:0 0 12px;
  padding:9px 14px;
  border:1px solid rgba(7,19,22,.10);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(29,160,193,.94),rgba(237,247,159,.88));
  color:var(--ip-ink)!important;
  font-size:.78rem;
  font-weight:950;
  line-height:1;
  letter-spacing:.095em;
  text-transform:uppercase;
  text-decoration:none!important;
  box-shadow:0 14px 34px rgba(7,19,22,.14);
}
.ip-page-title-badge:hover,
.ip-route-title-badge:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 42px rgba(7,19,22,.18);
}
.single-ip_poi .ip-page-hero,
.single-ip_evento .ip-page-hero,
.single-ip_poi .ip-page-hero-overlay,
.single-ip_evento .ip-page-hero-overlay{
  padding-top:18px!important;
}
.single-ip_poi .ip-page-hero .ip-page-title-wrap,
.single-ip_evento .ip-page-hero .ip-page-title-wrap{
  min-width:0;
}
.single-ip_poi .ip-page-hero-overlay .ip-page-title-badge,
.single-ip_evento .ip-page-hero-overlay .ip-page-title-badge{
  background:linear-gradient(135deg,var(--ip-lime),#edf79f);
  border-color:rgba(255,255,255,.24);
}
.ip-route-title-badge{
  margin-bottom:14px;
  position:relative;
  z-index:2;
}
.ip-route-quick-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 14px;
}
.ip-route-quick-badges span{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:7px 11px;
  border:1px solid rgba(7,19,22,.11);
  border-radius:999px;
  background:rgba(29,160,193,.58);
  color:var(--ip-ink);
  font-size:.8rem;
  font-weight:900;
  line-height:1;
}
.ip-route-hero.has-image .ip-route-quick-badges span{
  border-color:rgba(255,255,255,.22);
  background:rgba(255,255,255,.18);
  color:#fff;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.ip-route-hero-panel .ip-route-hero-metrics{
  margin-top:0;
}
.ip-route-side-card .ip-route-side-tags{
  display:none!important;
}
@media (max-width:640px){
  .ip-page-title-badge,
  .ip-route-title-badge{
    padding:8px 12px;
    font-size:.68rem;
    letter-spacing:.075em;
    margin-bottom:10px;
  }
  .single-ip_poi .ip-page-hero,
  .single-ip_evento .ip-page-hero,
  .single-ip_poi .ip-page-hero-overlay,
  .single-ip_evento .ip-page-hero-overlay{
    padding-top:12px!important;
  }
  .ip-route-quick-badges{
    gap:7px;
    margin-bottom:12px;
  }
  .ip-route-quick-badges span{
    min-height:30px;
    padding:7px 10px;
    font-size:.74rem;
  }
}



/* v2.0.289 - solapas enlazadas y ficha rápida uniforme en rutas */
a.ip-hero-corner-tab,
a.ip-news-single-hero-tab,
a.ip-route-hero-tab{
  text-decoration:none!important;
  color:var(--ip-ink)!important;
}
a.ip-hero-corner-tab:hover,
a.ip-news-single-hero-tab:hover,
a.ip-route-hero-tab:hover{
  transform:translateY(1px);
  box-shadow:0 14px 34px rgba(7,19,22,.16);
}
.ip-route-hero-panel .ip-route-hero-metrics{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media (min-width:1024px){
  .ip-route-hero-panel .ip-route-hero-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:640px){
  .ip-route-hero-panel .ip-route-hero-metrics{
    grid-template-columns:1fr;
  }
}

/* v2.0.289 - rutas: ficha rápida bajo hero y menor espacio tras ticker en páginas sin migas */
.single-ip_poi .ip-events-ticker--header + .ip-page-main .ip-page-hero,
.single-ip_evento .ip-events-ticker--header + .ip-page-main .ip-page-hero{
  padding-top:8px!important;
}
.single-ip_ruta .ip-events-ticker--header + .ip-route-page-main .ip-route-hero{
  padding-top:8px!important;
}
.single-post .ip-events-ticker--header + .ip-news-single-page .ip-news-single-hero{
  margin-top:0!important;
}
.single-ip_poi .ip-page-hero,
.single-ip_evento .ip-page-hero,
.single-ip_poi .ip-page-hero-overlay,
.single-ip_evento .ip-page-hero-overlay{
  padding-top:10px!important;
}
.single-ip_ruta .ip-route-hero{
  padding-top:10px!important;
}
.ip-route-hero-grid{
  grid-template-columns:minmax(0,1fr)!important;
  align-items:end;
}
.ip-route-quick-summary-section{
  position:relative;
  z-index:4;
  margin-top:-34px;
  padding:0 0 14px;
}
.ip-route-quick-summary-card{
  width:100%;
  border-radius:30px;
  border:1px solid rgba(7,19,22,.10);
  background:rgba(255,255,255,.92)!important;
  color:var(--ip-ink)!important;
  box-shadow:0 22px 70px rgba(7,19,22,.14);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.ip-route-quick-summary-card .ip-route-hero-metrics{
  grid-template-columns:repeat(6,minmax(0,1fr));
}
.ip-route-quick-summary-card .ip-route-hero-metric{
  background:linear-gradient(180deg,#fff,rgba(243,248,247,.86));
  border-color:rgba(7,19,22,.09);
}
.ip-route-quick-summary-card .ip-route-hero-metric span:not(.ip-route-hero-metric-icon){
  color:var(--ip-muted)!important;
}
.ip-route-quick-summary-card .ip-route-hero-mini-facts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.ip-route-quick-summary-card .ip-route-hero-mini-facts span{
  display:flex;
  justify-content:space-between;
  min-width:0;
  border:1px solid rgba(7,19,22,.08);
  background:rgba(243,248,247,.86)!important;
  color:var(--ip-ink-2)!important;
  border-radius:16px;
  padding:10px 12px;
}
@media (max-width:1180px){
  .ip-route-quick-summary-card .ip-route-hero-metrics{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .ip-route-quick-summary-card .ip-route-hero-mini-facts{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:640px){
  .single-ip_poi .ip-events-ticker--header + .ip-page-main .ip-page-hero,
  .single-ip_evento .ip-events-ticker--header + .ip-page-main .ip-page-hero,
  .single-ip_poi .ip-page-hero,
  .single-ip_evento .ip-page-hero,
  .single-ip_poi .ip-page-hero-overlay,
  .single-ip_evento .ip-page-hero-overlay{
    padding-top:6px!important;
  }
  .single-ip_ruta .ip-events-ticker--header + .ip-route-page-main .ip-route-hero,
  .single-ip_ruta .ip-route-hero{
    padding-top:6px!important;
  }
  .ip-route-quick-summary-section{
    margin-top:-20px;
    padding-bottom:10px;
  }
  .ip-route-quick-summary-card{
    border-radius:22px;
    padding:14px;
  }
  .ip-route-quick-summary-card .ip-route-hero-metrics,
  .ip-route-quick-summary-card .ip-route-hero-mini-facts{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px;
  }
  .ip-route-quick-summary-card .ip-route-hero-metric{
    min-height:82px;
  }
  .ip-route-quick-summary-card .ip-route-hero-mini-facts span{
    display:grid;
    gap:3px;
    justify-content:stretch;
    align-content:start;
    padding:10px;
    border-radius:15px;
    font-size:.78rem;
  }
}

/* v2.0.289 - rutas: margen superior para ficha rápida y lupa de imagen en hero */
.ip-route-quick-summary-section{
  margin-top:16px!important;
}
.single-ip_ruta .ip-route-hero-zoom-button{
  left:18px;
  right:auto;
  top:18px;
}
.single-ip_ruta .ip-route-hero.has-image .ip-route-hero-card{
  padding-top:0;
}
@media (max-width:640px){
  .ip-route-quick-summary-section{
    margin-top:12px!important;
  }
  .single-ip_ruta .ip-route-hero-zoom-button{
    left:12px;
    right:auto;
    top:12px;
  }
}

/* v2.0.289 - home: sección de rutas con enfoque catálogo */
.ip-home-routes-modern{
  position:relative;
}
.ip-home-routes-panel{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(320px,1.05fr);
  gap:28px;
  align-items:stretch;
  overflow:hidden;
  border:1px solid rgba(7,19,22,.09);
  border-radius:42px;
  padding:34px;
  background:
    radial-gradient(circle at 8% 0%,rgba(29,160,193,.42),transparent 32%),
    radial-gradient(circle at 92% 12%,rgba(141,229,220,.34),transparent 34%),
    linear-gradient(135deg,#071316 0%,#10282d 52%,#10616a 100%);
  color:#fff;
  box-shadow:0 28px 80px rgba(7,19,22,.16);
}
.ip-home-routes-panel:before{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:32px;
  pointer-events:none;
}
.ip-home-routes-copy{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:420px;
  padding:12px 8px;
}
.ip-home-routes-eyebrow{
  color:#1da0c1;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  padding:8px 12px;
  width:max-content;
}
.ip-home-routes-copy h2{
  max-width:760px;
  margin-top:14px;
  color:#fff;
  line-height:.98;
}
.ip-home-routes-copy p{
  max-width:620px;
  margin:16px 0 0;
  color:rgba(255,255,255,.78);
  font-size:1.06rem;
}
.ip-home-routes-benefits{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:24px 0 26px;
  max-width:720px;
}
.ip-home-routes-benefits span{
  display:flex;
  flex-direction:column;
  gap:7px;
  min-height:96px;
  justify-content:space-between;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  border-radius:22px;
  padding:13px;
  color:rgba(255,255,255,.9);
  font-weight:850;
  line-height:1.18;
  backdrop-filter:blur(10px);
}
.ip-home-routes-benefits b{
  color:#1da0c1;
  font-size:.78rem;
  letter-spacing:.1em;
}
.ip-home-routes-cta{
  width:max-content;
}
.ip-home-routes-preview{
  position:relative;
  z-index:1;
  display:grid;
  align-items:center;
  min-width:0;
}
.ip-home-routes-path{
  position:absolute;
  inset:20px 18px;
  border-radius:32px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.02)),
    repeating-linear-gradient(135deg,transparent 0 18px,rgba(255,255,255,.04) 18px 19px);
  overflow:hidden;
  pointer-events:none;
}
.ip-home-routes-path:before{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:50%;
  height:3px;
  transform:rotate(-8deg);
  background:linear-gradient(90deg,rgba(29,160,193,.15),#1da0c1,rgba(141,229,220,.9));
  border-radius:999px;
  box-shadow:0 0 28px rgba(29,160,193,.35);
}
.ip-home-routes-path i{
  position:absolute;
  display:block;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#1da0c1;
  box-shadow:0 0 0 8px rgba(29,160,193,.14),0 12px 22px rgba(0,0,0,.2);
}
.ip-home-routes-path i:nth-child(1){left:13%;top:52%;}
.ip-home-routes-path i:nth-child(2){left:52%;top:40%;background:#8de5dc;box-shadow:0 0 0 8px rgba(141,229,220,.14),0 12px 22px rgba(0,0,0,.2);}
.ip-home-routes-path i:nth-child(3){right:13%;top:32%;}
.ip-home-routes-list{
  position:relative;
  z-index:2;
  display:grid;
  gap:14px;
  padding:10px 0;
}
.ip-home-route-card{
  display:grid;
  grid-template-columns:142px minmax(0,1fr);
  gap:16px;
  align-items:center;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.92);
  border-radius:28px;
  padding:12px;
  color:var(--ip-ink);
  box-shadow:0 18px 50px rgba(7,19,22,.22);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.ip-home-route-card:hover{
  transform:translateY(-3px);
  box-shadow:0 24px 66px rgba(7,19,22,.28);
  border-color:rgba(29,160,193,.7);
}
.ip-home-route-card figure{
  margin:0;
  overflow:hidden;
  border-radius:22px;
  background:var(--ip-cloud);
}
.ip-home-route-card img{
  display:block;
  width:142px;
  height:110px;
  object-fit:cover;
  transition:transform .25s ease;
}
.ip-home-route-card:hover img{
  transform:scale(1.05);
}
.ip-home-route-card-body{
  display:grid;
  gap:9px;
  min-width:0;
}
.ip-home-route-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.ip-home-route-card-top small{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  border-radius:999px;
  padding:6px 9px;
  background:rgba(29,160,193,.65);
  color:var(--ip-ink-2);
  font-size:.74rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.06em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ip-home-route-card-top em{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:32px;
  height:32px;
  border-radius:999px;
  background:var(--ip-ink);
  color:#fff;
  font-style:normal;
  font-weight:950;
}
.ip-home-route-card h3{
  margin:0;
  font-size:1.08rem;
  line-height:1.08;
  letter-spacing:-.045em;
}
.ip-home-route-meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.ip-home-route-meta b{
  display:inline-flex;
  align-items:center;
  border:1px solid rgba(7,19,22,.09);
  background:rgba(243,248,247,.92);
  border-radius:999px;
  padding:6px 8px;
  color:var(--ip-ink-2);
  font-size:.78rem;
  line-height:1;
}
@media (max-width:900px){
  .ip-home-routes-panel{
    grid-template-columns:1fr;
    padding:28px;
  }
  .ip-home-routes-copy{
    min-height:auto;
    padding:4px 0 0;
  }
  .ip-home-routes-benefits{
    grid-template-columns:1fr 1fr 1fr;
  }
  .ip-home-routes-preview{
    padding-top:8px;
  }
}
@media (max-width:640px){
  .ip-home-routes-panel{
    border-radius:30px;
    padding:22px;
  }
  .ip-home-routes-panel:before{
    inset:10px;
    border-radius:24px;
  }
  .ip-home-routes-copy h2{
    font-size:clamp(2.2rem,12vw,3.2rem);
    line-height:1;
  }
  .ip-home-routes-copy p{
    font-size:.98rem;
  }
  .ip-home-routes-benefits{
    grid-template-columns:1fr;
    margin:20px 0 22px;
  }
  .ip-home-routes-benefits span{
    min-height:auto;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
  }
  .ip-home-routes-benefits b{
    flex:0 0 auto;
  }
  .ip-home-routes-cta{
    width:100%;
    justify-content:center;
  }
  .ip-home-routes-path{
    display:none;
  }
  .ip-home-route-card{
    grid-template-columns:96px minmax(0,1fr);
    gap:12px;
    border-radius:22px;
    padding:10px;
  }
  .ip-home-route-card figure{
    border-radius:17px;
  }
  .ip-home-route-card img{
    width:96px;
    height:92px;
  }
  .ip-home-route-card h3{
    font-size:.98rem;
  }
  .ip-home-route-card-top small{
    max-width:130px;
    font-size:.68rem;
    padding:5px 7px;
  }
  .ip-home-route-card-top em{
    width:28px;
    height:28px;
  }
  .ip-home-route-meta{
    gap:5px;
  }
  .ip-home-route-meta b{
    font-size:.72rem;
    padding:5px 7px;
  }
}


/* v2.0.289 - rutas: sin botón Lugares y filtros colapsados en móvil */
.ip-route-filter-toolbar{
  display:none;
  margin:0 0 12px;
}
.ip-route-filter-toggle{
  width:100%;
  justify-content:center;
}
.ip-route-filter-panel{
  grid-template-columns:minmax(220px,1.4fr) minmax(150px,.65fr) minmax(130px,.55fr);
}
@media (max-width:760px){
  .ip-route-filter-toolbar{
    display:block;
  }
  .ip-route-filter-panel{
    grid-template-columns:1fr;
    margin-top:0;
  }
  .ip-route-filter-panel:not(.is-open){
    display:none!important;
  }
  .ip-route-filter-panel.is-open{
    display:grid!important;
  }
}
@media (min-width:761px){
  .ip-route-filter-panel,
  .ip-route-filter-panel:not(.is-open),
  .ip-route-filter-panel.is-open{
    display:grid!important;
  }
}




/* v2.0.289 - Playas y calas: tarjetas destacadas con imagen, título superpuesto y CTA */
.ip-playas-featured-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(16px,2.2vw,24px);
}
.ip-playa-featured-card{
  position:relative;
  min-width:0;
  border-radius:30px;
  overflow:hidden;
  background:#0b3036;
  box-shadow:var(--ip-shadow-soft);
  isolation:isolate;
}
.ip-playa-featured-card-link{
  position:relative;
  display:block;
  min-height:clamp(260px,26vw,360px);
  color:#fff;
  text-decoration:none;
  outline:none;
}
.ip-playa-featured-card-media,
.ip-playa-featured-card-media img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
}
.ip-playa-featured-card-media img{
  object-fit:cover;
  transform:scale(1.01);
  transition:transform .45s ease, filter .45s ease;
}
.ip-playa-featured-card-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg,rgba(7,19,22,.08) 0%,rgba(7,19,22,.15) 38%,rgba(7,19,22,.82) 100%),
    radial-gradient(circle at 14% 90%,rgba(81,184,187,.34),transparent 42%);
  pointer-events:none;
}
.ip-playa-featured-card-content{
  position:absolute;
  left:clamp(16px,2.4vw,24px);
  right:clamp(16px,2.4vw,24px);
  bottom:clamp(16px,2.4vw,24px);
  z-index:2;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
}
.ip-playa-featured-card-title{
  display:block;
  max-width:min(100%,360px);
  color:#fff;
  font-size:clamp(1.18rem,2vw,1.65rem);
  line-height:1.08;
  font-weight:950;
  letter-spacing:-.045em;
  text-shadow:0 4px 18px rgba(0,0,0,.35);
}
.ip-playa-featured-card-button{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:10px 15px;
  border-radius:999px;
  background:var(--ip-lime);
  color:var(--ip-ink);
  font-size:.86rem;
  line-height:1;
  font-weight:950;
  white-space:nowrap;
  box-shadow:0 14px 32px rgba(0,0,0,.22);
  transition:transform .25s ease, background .25s ease;
}
.ip-playa-featured-card-button:after{
  content:"→";
  margin-left:8px;
}
.ip-playa-featured-card-link:hover .ip-playa-featured-card-media img,
.ip-playa-featured-card-link:focus-visible .ip-playa-featured-card-media img{
  transform:scale(1.07);
  filter:saturate(1.08) contrast(1.03);
}
.ip-playa-featured-card-link:hover .ip-playa-featured-card-button,
.ip-playa-featured-card-link:focus-visible .ip-playa-featured-card-button{
  transform:translateY(-2px);
  background:#fff;
}
.ip-playa-featured-card-link:focus-visible{
  box-shadow:0 0 0 4px rgba(29,160,193,.55) inset;
}
@media (max-width:980px){
  .ip-playas-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .ip-playas-featured-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .ip-playa-featured-card{border-radius:20px}
  .ip-playa-featured-card-link{min-height:190px}
  .ip-playa-featured-card-content{
    left:12px;
    right:12px;
    bottom:12px;
    align-items:flex-start;
    flex-direction:column;
    gap:9px;
  }
  .ip-playa-featured-card-title{
    max-width:100%;
    font-size:clamp(.98rem,4.4vw,1.18rem);
    line-height:1.08;
    letter-spacing:-.035em;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .ip-playa-featured-card-button{
    min-height:34px;
    padding:8px 11px;
    font-size:.74rem;
    box-shadow:0 10px 22px rgba(0,0,0,.2);
  }
  .ip-playa-featured-card-button:after{margin-left:6px}
}
@media (max-width:380px){
  .ip-playas-featured-grid{gap:8px}
  .ip-playa-featured-card{border-radius:18px}
  .ip-playa-featured-card-link{min-height:176px}
  .ip-playa-featured-card-content{left:10px;right:10px;bottom:10px;gap:8px}
  .ip-playa-featured-card-title{font-size:.94rem}
  .ip-playa-featured-card-button{min-height:32px;padding:7px 9px;font-size:.7rem}
}

/* v2.0.289 - móvil: el acceso rápido que usaba la webcam muestra el icono del tiempo actual y enlaza a la página del tiempo */
@media (max-width:900px){
  .ip-site-header .ip-header-mobile-weather-cta{
    color:#0b4451!important;
  }
  .ip-site-header .ip-header-mobile-weather-icon{
    width:22px!important;
    height:22px!important;
    display:inline-grid!important;
    place-items:center!important;
    font-size:1.18rem!important;
    line-height:1!important;
  }
}
@media (max-width:380px){
  .ip-site-header .ip-header-mobile-weather-icon{
    width:20px!important;
    height:20px!important;
    font-size:1.08rem!important;
  }
}


/* v2.0.289 - galería de imágenes adicionales en el hero de puntos de interés */
.ip-page-hero-card.has-gallery .ip-page-hero-content{
  position:relative;
  z-index:4;
}
.ip-hero-gallery-strip{
  position:absolute;
  right:18px;
  bottom:18px;
  z-index:6;
  display:flex;
  gap:9px;
  align-items:center;
  max-width:min(44vw,430px);
  padding:8px;
  border:1px solid rgba(255,255,255,.26);
  border-radius:22px;
  background:rgba(7,19,22,.42);
  box-shadow:0 18px 48px rgba(0,0,0,.28);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.ip-hero-gallery-thumb{
  width:72px;
  height:54px;
  flex:0 0 72px;
  padding:0;
  border:2px solid rgba(255,255,255,.32);
  border-radius:15px;
  overflow:hidden;
  background:rgba(255,255,255,.1);
  cursor:pointer;
  box-shadow:0 10px 22px rgba(0,0,0,.18);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.ip-hero-gallery-thumb.is-active{
  border-color:var(--ip-lime);
}
.ip-hero-gallery-thumb:hover,
.ip-hero-gallery-thumb:focus-visible{
  transform:translateY(-2px) scale(1.03);
  border-color:#fff;
  box-shadow:0 16px 34px rgba(0,0,0,.26);
  outline:none;
}
.ip-hero-gallery-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
@media (min-width:901px){
  .single-ip_poi .ip-page-hero-card.has-gallery .ip-page-hero-content{
    max-width:calc(100% - 360px)!important;
  }
}
@media (max-width:900px){
  .ip-hero-gallery-strip{
    right:14px;
    bottom:14px;
    max-width:calc(100% - 28px);
    overflow-x:auto;
    scrollbar-width:none;
  }
  .ip-hero-gallery-strip::-webkit-scrollbar{display:none;}
  .single-ip_poi .ip-page-hero-card.has-gallery .ip-page-hero-content{
    padding-bottom:72px!important;
  }
}
@media (max-width:640px){
  .ip-hero-gallery-strip{
    right:10px;
    bottom:10px;
    left:10px;
    justify-content:flex-start;
    gap:7px;
    padding:7px;
    border-radius:18px;
  }
  .ip-hero-gallery-thumb{
    width:58px;
    height:44px;
    flex-basis:58px;
    border-radius:12px;
  }
  .single-ip_poi .ip-page-hero-card.has-gallery .ip-page-hero-content{
    padding-bottom:64px!important;
  }
}


/* v2.0.289 - POI: carrusel automático de imágenes completas en el hero, sin miniaturas */
.ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image.has-carousel{
  background-image:none!important;
  background-color:#071316!important;
}
.ip-page-hero-card.has-carousel{
  overflow:hidden!important;
}
.ip-hero-gallery-carousel{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  border-radius:inherit;
  background:var(--ip-ink);
}
.ip-hero-gallery-carousel:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(180deg,rgba(7,19,22,.10) 0%,rgba(7,19,22,.38) 48%,rgba(7,19,22,.84) 100%);
  pointer-events:none;
}
.ip-hero-gallery-slide{
  position:absolute;
  inset:0;
  z-index:1;
  display:block;
  background-image:var(--ip-hero-slide-image);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  opacity:0;
  transform:scale(1.035);
  transition:opacity .75s ease, transform 3.2s ease;
  will-change:opacity, transform;
}
.ip-hero-gallery-slide.is-active{
  opacity:1;
  transform:scale(1);
}
.ip-page-hero-card.has-carousel .ip-page-hero-content,
.single-ip_poi .ip-page-hero-card.has-gallery.has-carousel .ip-page-hero-content{
  max-width:980px!important;
  padding-bottom:0!important;
}
.ip-page-hero-card.has-carousel .ip-page-hero-image-accent{
  display:none!important;
}
.ip-page-hero-card.has-carousel .ip-hero-image-zoom-button,
.ip-page-hero-card.has-carousel .ip-hero-corner-tab,
.ip-page-hero-card.has-carousel .ip-page-hero-content{
  z-index:6!important;
}
@media (max-width:900px){
  .single-ip_poi .ip-page-hero-card.has-gallery.has-carousel .ip-page-hero-content{
    padding-bottom:0!important;
  }
}
@media (max-width:640px){
  .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.has-image.has-carousel{
    min-height:clamp(330px,88vw,470px)!important;
  }
  .single-ip_poi .ip-page-hero-card.has-gallery.has-carousel .ip-page-hero-content{
    padding-bottom:0!important;
  }
}
@media (prefers-reduced-motion:reduce){
  .ip-hero-gallery-slide{
    transition:none!important;
    transform:none!important;
  }
}


/* v2.0.289 - carrusel automático de imágenes adicionales en las tarjetas del listado de puntos de interés */
.ip-poi-card-media-carousel{
  position:relative;
  background:#071316;
}
.ip-poi-card-media-carousel .ip-poi-card-carousel{
  position:absolute;
  inset:0;
  border-radius:0;
}
.ip-poi-card-media-carousel .ip-poi-card-carousel:after{
  background:linear-gradient(180deg,rgba(7,19,22,.03) 0%,rgba(7,19,22,.08) 52%,rgba(7,19,22,.22) 100%);
}
.ip-poi-card-media-carousel .ip-hero-gallery-slide{
  transition:opacity .7s ease,transform 3.2s ease;
}
.ip-poi-card:hover .ip-poi-card-media-carousel .ip-hero-gallery-slide.is-active{
  transform:scale(1.045);
}
@media (max-width:640px){
  .ip-poi-card-media-carousel .ip-hero-gallery-slide{
    transition:opacity .55s ease,transform 2.8s ease;
  }
}


/* v2.0.289 - Iconos por tipo de punto de interés en el mapa */
.ip-map-marker-wrap{
  background:transparent!important;
  border:0!important;
}
.ip-map-marker-pin{
  position:relative;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:2px solid rgba(255,255,255,.95);
  border-radius:16px 16px 16px 4px;
  background:linear-gradient(135deg,var(--ip-lime),var(--ip-aqua));
  box-shadow:0 14px 30px rgba(7,19,22,.25),0 0 0 5px rgba(255,255,255,.28);
  color:var(--ip-ink);
  font-size:20px;
  line-height:1;
  transform:rotate(-45deg);
  transition:transform .18s ease,box-shadow .18s ease;
}
.ip-map-marker-pin span{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  transform:rotate(45deg);
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.35));
}
.ip-map-marker-wrap:hover .ip-map-marker-pin{
  transform:rotate(-45deg) translateY(-3px) scale(1.04);
  box-shadow:0 18px 36px rgba(7,19,22,.3),0 0 0 6px rgba(29,160,193,.24);
}
.ip-map-marker-pin:after{
  content:"";
  position:absolute;
  right:5px;
  bottom:5px;
  width:7px;
  height:7px;
  border-radius:999px;
  background:rgba(7,19,22,.34);
}
@media (max-width:640px){
  .ip-map-marker-pin{width:38px;height:38px;font-size:18px;border-radius:14px 14px 14px 4px}
}


/* v2.0.289 - Mapa interactivo: botón para pantalla completa */
.ip-map-main-fullscreen-button{
  position:absolute;
  left:16px;
  bottom:16px;
  z-index:535;
  width:46px;
  height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.78);
  border-radius:16px;
  background:rgba(255,255,255,.95);
  color:var(--ip-ink);
  box-shadow:0 14px 36px rgba(7,19,22,.16);
  backdrop-filter:blur(16px);
  font-size:1.2rem;
  font-weight:950;
  line-height:1;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.ip-map-main-fullscreen-button:hover{
  transform:translateY(-1px);
  background:#fff;
  box-shadow:0 18px 44px rgba(7,19,22,.20);
}
.ip-map-shell.is-fullscreen{
  position:fixed!important;
  inset:18px!important;
  z-index:99999!important;
  margin:0!important;
  border-radius:28px!important;
  box-shadow:0 30px 120px rgba(0,0,0,.38)!important;
  background:var(--ip-paper);
  overflow:hidden!important;
}
.ip-map-shell.is-fullscreen .ip-map{
  height:calc(100vh - 36px)!important;
  min-height:calc(100vh - 36px)!important;
  border-radius:28px!important;
}
.ip-map-shell.is-fullscreen .ip-map-main-fullscreen-button{
  width:50px;
  height:50px;
  border-radius:18px;
  font-size:1.55rem;
}
.ip-map-shell.is-fullscreen .ip-map-floating-controls{
  z-index:536;
}
@media (max-width:640px){
  .ip-map-main-fullscreen-button{
    left:10px;
    bottom:10px;
    width:42px;
    height:42px;
    border-radius:15px;
    font-size:1.05rem;
  }
  .ip-map-shell.is-fullscreen{
    inset:8px!important;
    border-radius:20px!important;
  }
  .ip-map-shell.is-fullscreen .ip-map{
    height:calc(100vh - 16px)!important;
    min-height:calc(100vh - 16px)!important;
    border-radius:20px!important;
  }
  .ip-map-shell.is-fullscreen .ip-map-main-fullscreen-button{
    width:44px;
    height:44px;
    border-radius:16px;
  }
}

/* v2.0.289 - Plantilla Cerca de Mi */
.ip-nearby-page-main .ip-page-hero{
  padding-bottom:18px;
}
.ip-nearby-section{
  padding-top:18px;
}
.ip-nearby-permission-card{
  position:relative;
  display:grid;
  grid-template-columns:70px minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  padding:26px;
  border:1px solid var(--ip-line);
  border-radius:32px;
  background:radial-gradient(circle at 94% 0%,rgba(29,160,193,.26),transparent 34%),linear-gradient(135deg,#fff 0%,var(--ip-soft) 100%);
  box-shadow:var(--ip-shadow-soft);
  overflow:hidden;
}
.ip-nearby-permission-card h2{
  margin:8px 0 8px;
  font-size:clamp(1.55rem,2.8vw,2.45rem);
  line-height:.98;
  letter-spacing:-.055em;
}
.ip-nearby-permission-card p{
  margin:0;
  color:var(--ip-muted);
  max-width:760px;
}
.ip-nearby-permission-icon{
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  border-radius:22px;
  background:linear-gradient(135deg,var(--ip-lime),var(--ip-aqua));
  color:var(--ip-ink);
  font-size:1.9rem;
  box-shadow:0 16px 34px rgba(16,97,106,.16);
}
.ip-nearby-permission-button{
  white-space:nowrap;
}
.ip-nearby-status{
  grid-column:2 / -1;
  min-height:18px;
  font-weight:850;
  color:var(--ip-sea-dark)!important;
}
.ip-nearby-status.is-error{
  color:#9b2e20!important;
}
.ip-nearby-permission-card.is-compact{
  grid-template-columns:46px minmax(0,1fr) auto;
  margin-bottom:28px;
  padding:18px;
  border-radius:24px;
}
.ip-nearby-permission-card.is-compact .ip-nearby-permission-icon{
  width:46px;
  height:46px;
  border-radius:16px;
  font-size:1.35rem;
}
.ip-nearby-permission-card.is-compact h2{
  margin:5px 0 4px;
  font-size:1.25rem;
  letter-spacing:-.04em;
}
.ip-nearby-permission-card.is-compact p{
  font-size:.92rem;
}
.ip-nearby-results-head{
  margin-top:8px;
}

.ip-nearby-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.ip-nearby-view-toggle{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px;
  border:1px solid var(--ip-line);
  border-radius:999px;
  background:#fff;
  box-shadow:0 10px 28px rgba(7,19,22,.08);
}
.ip-nearby-view-toggle span{
  padding:0 8px 0 10px;
  color:var(--ip-muted);
  font-size:.82rem;
  font-weight:1000;
}
.ip-nearby-view-toggle button{
  appearance:none;
  border:0;
  border-radius:999px;
  padding:9px 13px;
  background:transparent;
  color:var(--ip-ink);
  font-weight:1000;
  cursor:pointer;
  transition:background .18s ease, transform .18s ease, color .18s ease;
}
.ip-nearby-view-toggle button:hover{
  transform:translateY(-1px);
}
.ip-nearby-view-toggle button.is-active{
  background:var(--ip-ink);
  color:#fff;
}
.ip-nearby-grid.is-list-view{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px;
}
.ip-nearby-list-item{
  display:grid;
  grid-template-columns:155px minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:14px;
  border:1px solid var(--ip-line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 10px 30px rgba(7,19,22,.07);
}
.ip-nearby-list-distance{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-align:center;
  border-radius:18px;
  padding:10px 12px;
  background:linear-gradient(135deg,var(--ip-lime),var(--ip-aqua));
  color:var(--ip-ink);
  box-shadow:0 12px 24px rgba(16,97,106,.12);
}
.ip-nearby-list-distance strong{
  font-size:.98rem;
  line-height:1.1;
  letter-spacing:-.025em;
}
.ip-nearby-list-pin{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:999px;
  background:rgba(255,255,255,.55);
  font-size:.98rem;
}
.ip-nearby-list-main h3{
  margin:0;
  font-size:1.1rem;
  line-height:1.08;
  letter-spacing:-.035em;
}
.ip-nearby-list-main p{
  margin:6px 0 0;
  color:var(--ip-muted);
  font-weight:850;
  font-size:.9rem;
}
.ip-nearby-grid{
  align-items:stretch;
}
.ip-nearby-card{
  overflow:hidden;
}
.ip-nearby-card-media{
  position:relative;
  min-height:220px;
  background:linear-gradient(135deg,var(--ip-cloud),var(--ip-soft));
}
.ip-nearby-card-media img{
  width:100%;
  height:100%;
  min-height:220px;
  object-fit:cover;
  display:block;
}
.ip-nearby-card-placeholder{
  min-height:220px;
  display:grid;
  place-items:center;
  font-size:2.4rem;
  background:linear-gradient(135deg,var(--ip-cloud),#fff);
}
.ip-nearby-distance-badge{
  position:absolute;
  top:14px;
  left:14px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:9px 12px;
  border-radius:999px;
  background:rgba(7,19,22,.82);
  color:#fff;
  font-size:.78rem;
  line-height:1;
  font-weight:1000;
  box-shadow:0 12px 28px rgba(0,0,0,.22);
  backdrop-filter:blur(12px);
}
.ip-nearby-distance-badge:before{
  content:'📍';
  font-size:.95rem;
}
.ip-nearby-map-card{
  margin-top:34px;
  padding:22px;
  border:1px solid var(--ip-line);
  border-radius:34px;
  background:#fff;
  box-shadow:var(--ip-shadow-soft);
}
.ip-nearby-map-head{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:18px;
  margin-bottom:16px;
}
.ip-nearby-map-head h2{
  margin:8px 0 0;
  font-size:clamp(1.55rem,2.8vw,2.35rem);
  line-height:.98;
  letter-spacing:-.055em;
}
.ip-nearby-map-head [data-nearby-map-count]{
  color:var(--ip-muted);
  font-weight:900;
  white-space:nowrap;
}
.ip-nearby-map-shell{
  border-radius:28px;
}
.ip-nearby-map{
  height:560px;
}
@media (max-width:900px){
  .ip-nearby-permission-card{
    grid-template-columns:54px minmax(0,1fr);
  }
  .ip-nearby-permission-button{
    grid-column:1 / -1;
    justify-self:start;
    white-space:normal;
  }
  .ip-nearby-status{
    grid-column:1 / -1;
  }
  .ip-nearby-permission-card.is-compact{
    grid-template-columns:44px minmax(0,1fr);
  }
  .ip-nearby-permission-card.is-compact .ip-nearby-permission-button{
    grid-column:1 / -1;
  }
}
@media (max-width:640px){
  .ip-nearby-section{
    padding-top:8px;
  }
  .ip-nearby-permission-card{
    padding:18px;
    border-radius:26px;
    gap:13px;
  }
  .ip-nearby-permission-icon{
    width:50px;
    height:50px;
    border-radius:18px;
    font-size:1.45rem;
  }
  .ip-nearby-permission-card h2{
    font-size:1.45rem;
    line-height:1.02;
  }
  .ip-nearby-permission-button{
    width:100%;
    justify-content:center;
    text-align:center;
  }
  .ip-nearby-permission-card.is-compact{
    margin-bottom:22px;
    padding:14px;
  }
  .ip-nearby-results-head{
    display:grid;
    gap:14px;
  }
  .ip-nearby-card-media,
  .ip-nearby-card-media img,
  .ip-nearby-card-placeholder{
    min-height:190px;
  }
  .ip-nearby-distance-badge{
    top:10px;
    left:10px;
    padding:8px 10px;
    font-size:.72rem;
  }
  .ip-nearby-map-card{
    margin-top:24px;
    padding:14px;
    border-radius:26px;
  }
  .ip-nearby-map-head{
    display:grid;
    align-items:start;
    gap:8px;
  }
  .ip-nearby-map-head h2{
    font-size:1.55rem;
  }
  .ip-nearby-map-shell{
    border-radius:22px;
  }
  .ip-nearby-map{
    height:470px;
  }
}


@media (max-width:640px){
  .ip-nearby-actions{
    justify-content:stretch;
    align-items:stretch;
    gap:10px;
  }
  .ip-nearby-view-toggle{
    width:100%;
    justify-content:space-between;
  }
  .ip-nearby-view-toggle span{
    flex:1;
  }
  .ip-nearby-view-toggle button{
    flex:1;
    padding:10px 9px;
  }
  .ip-nearby-actions .ip-button-ghost{
    width:100%;
    justify-content:center;
  }
  .ip-nearby-list-item{
    grid-template-columns:1fr;
    gap:10px;
    padding:12px;
    border-radius:20px;
  }
  .ip-nearby-list-item .ip-button-ghost{
    justify-content:center;
    width:100%;
  }
  .ip-nearby-list-distance{
    min-height:0;
    width:max-content;
    max-width:100%;
    justify-self:start;
    border-radius:999px;
    padding:8px 12px;
  }
  .ip-nearby-list-distance strong{
    font-size:.92rem;
  }
  .ip-nearby-list-pin{
    width:24px;
    height:24px;
    font-size:.84rem;
  }
  .ip-nearby-list-main h3{
    font-size:1.04rem;
    line-height:1.14;
  }
  .ip-nearby-list-main p{
    font-size:.84rem;
  }
}

/* v2.0.289 - home: acceso rápido a Qué tienes cerca desde el carrusel */
.home .ip-hero-nearby-cue,
.front-page .ip-hero-nearby-cue{
  bottom:54px;
  padding:8px 12px 8px 15px;
  gap:8px;
}
.home .ip-hero-nearby-cue i,
.front-page .ip-hero-nearby-cue i{
  font-size:1rem;
  font-weight:900;
  animation:ipHeroNearbyRadar 1.45s ease-in-out infinite;
}
.home .ip-hero-nearby-cue:hover i,
.front-page .ip-hero-nearby-cue:hover i{
  transform:scale(1.08);
}
@keyframes ipHeroNearbyRadar{
  0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(29,160,193,.32),0 8px 18px rgba(29,160,193,.24)}
  50%{transform:scale(1.08);box-shadow:0 0 0 7px rgba(29,160,193,0),0 8px 18px rgba(29,160,193,.24)}
}
@media (max-width:420px){
  .home .ip-hero-nearby-cue,
  .front-page .ip-hero-nearby-cue{
    font-size:.64rem;
    max-width:calc(100vw - 32px);
    white-space:nowrap;
  }
}

/* v2.0.289 - Cerca de mi: ocultar tarjeta de ubicación cuando no proceda y CTA minimalista */
.ip-nearby-permission-card[hidden],
.ip-nearby-results[hidden]{
  display:none!important;
}
.ip-nearby-permission-card.ip-nearby-permission-minimal{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.ip-nearby-permission-card.ip-nearby-permission-minimal .ip-nearby-status{
  grid-column:auto;
  min-height:0;
  margin:0;
}
@media (max-width:640px){
  .ip-nearby-permission-card.ip-nearby-permission-minimal{
    display:grid;
    justify-items:stretch;
  }
}


/* v2.0.289 - Cerca de mi: resultados más arriba y sin cabecera redundante */
.ip-nearby-page-main .ip-page-hero{
  padding-bottom:4px!important;
}
.ip-nearby-page-main .ip-page-hero-card{
  padding-bottom:16px!important;
}
.ip-nearby-section{
  padding-top:0!important;
}
.ip-nearby-results-toolbar{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  margin:0 0 18px;
}
.ip-nearby-results-toolbar .ip-nearby-actions{
  width:100%;
}
@media (max-width:640px){
  .ip-nearby-page-main .ip-page-hero{
    padding-bottom:0!important;
  }
  .ip-nearby-page-main .ip-page-hero-card{
    padding-bottom:14px!important;
  }
  .ip-nearby-results-toolbar{
    margin:0 0 14px;
  }
}


/* v2.0.289 - Cerca de mi: vista Lista simplificada */
.ip-nearby-grid.is-list-view{
  gap:10px;
}
.ip-nearby-list-item.ip-nearby-list-item-simple{
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:14px;
  padding:12px 14px;
  border-radius:22px;
  align-items:center;
}
.ip-nearby-list-item-simple .ip-nearby-list-distance{
  min-height:0;
  width:auto;
  justify-self:start;
  border-radius:999px;
  padding:8px 12px;
  white-space:nowrap;
}
.ip-nearby-list-item-simple .ip-nearby-list-distance strong{
  font-size:.9rem;
  letter-spacing:-.015em;
}
.ip-nearby-list-title{
  margin:0;
  min-width:0;
  font-size:1.04rem;
  line-height:1.12;
  letter-spacing:-.03em;
}
.ip-nearby-list-title a{
  color:var(--ip-ink);
  text-decoration:none;
}
.ip-nearby-list-title a:hover{
  color:var(--ip-sea-dark);
}
.ip-nearby-list-button{
  position:relative;
  z-index:2;
  white-space:nowrap;
}
@media (max-width:640px){
  .ip-nearby-list-item.ip-nearby-list-item-simple{
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px 12px;
    padding:12px;
    border-radius:20px;
  }
  .ip-nearby-list-item-simple .ip-nearby-list-distance{
    grid-column:1 / -1;
    padding:7px 11px;
  }
  .ip-nearby-list-title{
    font-size:.98rem;
    line-height:1.15;
  }
  .ip-nearby-list-button{
    width:auto!important;
    justify-content:center!important;
    padding:9px 11px;
  }
}
@media (max-width:380px){
  .ip-nearby-list-item.ip-nearby-list-item-simple{
    grid-template-columns:1fr;
  }
  .ip-nearby-list-button{
    width:100%!important;
  }
}


/* v2.0.289 - Cerca de mi: vista Lista con nombre destacado y fila inferior */
.ip-nearby-list-item.ip-nearby-list-item-featured{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  padding:16px 18px;
  border:1px solid rgba(15, 37, 48, .08);
  background:linear-gradient(135deg, rgba(255,255,255,.98), rgba(244,250,249,.94));
  box-shadow:0 14px 34px rgba(15, 37, 48, .08);
}
.ip-nearby-list-item-featured .ip-nearby-list-title{
  margin:0;
  font-size:1.18rem;
  line-height:1.18;
  font-weight:900;
  letter-spacing:-.035em;
}
.ip-nearby-list-item-featured .ip-nearby-list-meta-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.ip-nearby-list-item-featured .ip-nearby-list-distance{
  min-height:0;
  width:auto;
  justify-self:start;
  border-radius:999px;
  padding:8px 12px;
  background:rgba(207, 255, 79, .46);
  border:1px solid rgba(132, 168, 22, .22);
  color:var(--ip-ink);
  white-space:nowrap;
}
.ip-nearby-list-item-featured .ip-nearby-list-distance strong{
  font-size:.92rem;
  letter-spacing:-.015em;
}
.ip-nearby-list-item-featured .ip-nearby-list-button{
  position:relative;
  z-index:2;
  flex:0 0 auto;
  white-space:nowrap;
  padding:9px 13px;
}
@media (max-width:640px){
  .ip-nearby-list-item.ip-nearby-list-item-featured{
    padding:14px;
    gap:9px;
    border-radius:20px;
  }
  .ip-nearby-list-item-featured .ip-nearby-list-title{
    font-size:1.06rem;
    line-height:1.2;
  }
  .ip-nearby-list-item-featured .ip-nearby-list-meta-row{
    gap:10px;
  }
  .ip-nearby-list-item-featured .ip-nearby-list-distance{
    padding:7px 10px;
  }
  .ip-nearby-list-item-featured .ip-nearby-list-distance strong{
    font-size:.86rem;
  }
  .ip-nearby-list-item-featured .ip-nearby-list-button{
    width:auto!important;
    justify-content:center!important;
    padding:8px 11px;
  }
}
@media (max-width:370px){
  .ip-nearby-list-item-featured .ip-nearby-list-meta-row{
    align-items:stretch;
    flex-direction:column;
  }
  .ip-nearby-list-item-featured .ip-nearby-list-button{
    width:100%!important;
  }
}


/* v2.0.289 - Cerca de mi: vista Lista en una sola línea */
.ip-nearby-list-item.ip-nearby-list-item-inline{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:14px;
  padding:13px 15px 13px 18px;
  border:1px solid rgba(15,37,48,.08);
  border-radius:20px;
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(244,250,249,.94));
  box-shadow:0 12px 28px rgba(15,37,48,.07);
}
.ip-nearby-list-item-inline .ip-nearby-list-title{
  margin:0;
  min-width:0;
  font-size:1.05rem;
  line-height:1.16;
  font-weight:950;
  letter-spacing:-.032em;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ip-nearby-list-item-inline .ip-nearby-list-title a{
  color:var(--ip-ink);
  text-decoration:none;
}
.ip-nearby-list-item-inline .ip-nearby-list-title a:hover{
  color:var(--ip-sea-dark);
}
.ip-nearby-list-item-inline .ip-nearby-list-distance{
  min-height:0;
  width:auto;
  border-radius:999px;
  padding:8px 12px;
  background:rgba(207,255,79,.46);
  border:1px solid rgba(132,168,22,.22);
  color:var(--ip-ink);
  white-space:nowrap;
  box-shadow:none;
}
.ip-nearby-list-item-inline .ip-nearby-list-distance strong{
  font-size:.88rem;
  line-height:1;
  letter-spacing:-.012em;
}
.ip-nearby-list-item-inline .ip-nearby-list-button{
  flex:0 0 auto;
  white-space:nowrap;
  padding:8px 12px;
  border-radius:999px;
}
@media (max-width:640px){
  .ip-nearby-list-item.ip-nearby-list-item-inline{
    grid-template-columns:minmax(0,1fr) auto auto;
    gap:8px;
    padding:10px;
    border-radius:17px;
  }
  .ip-nearby-list-item-inline .ip-nearby-list-title{
    font-size:.93rem;
    line-height:1.12;
  }
  .ip-nearby-list-item-inline .ip-nearby-list-distance{
    padding:7px 9px;
  }
  .ip-nearby-list-item-inline .ip-nearby-list-distance strong{
    font-size:.75rem;
  }
  .ip-nearby-list-item-inline .ip-nearby-list-button{
    width:auto!important;
    justify-content:center!important;
    padding:7px 9px;
    font-size:.78rem;
  }
}
@media (max-width:380px){
  .ip-nearby-list-item.ip-nearby-list-item-inline{
    grid-template-columns:minmax(0,1fr) auto;
    gap:7px 8px;
  }
  .ip-nearby-list-item-inline .ip-nearby-list-title{
    grid-column:1 / -1;
  }
  .ip-nearby-list-item-inline .ip-nearby-list-distance{
    justify-self:start;
  }
}



/* v2.0.289 - Mapa turístico: solapa fija de Qué tienes cerca anclada a la ventana */
.ip-map-nearby-tab{
  position:fixed;
  left:0;
  bottom:26px;
  z-index:100000;
  display:inline-flex;
  align-items:center;
  gap:13px;
  min-height:60px;
  padding:14px 22px 14px 24px;
  border:1px solid rgba(255,255,255,.72);
  border-left:0;
  border-radius:0 999px 999px 0;
  background:linear-gradient(135deg,rgba(7,19,22,.96),rgba(23,61,51,.94));
  color:#fff;
  box-shadow:0 20px 58px rgba(7,19,22,.30);
  backdrop-filter:blur(18px);
  font-size:.98rem;
  font-weight:950;
  letter-spacing:.005em;
  text-decoration:none;
  opacity:0;
  transform:translateX(-112%) translateY(10px);
  animation:ipMapNearbyTabIn .72s cubic-bezier(.2,.85,.2,1) 3s forwards;
  will-change:transform,opacity;
}
.ip-map-nearby-tab span{
  white-space:nowrap;
  line-height:1;
}
.ip-map-nearby-tab i{
  position:relative;
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:var(--ip-lime);
  color:var(--ip-ink);
  font-style:normal;
  font-size:1.15rem;
  font-weight:950;
  line-height:1;
  box-shadow:0 0 0 0 rgba(29,160,193,.36);
  animation:ipMapNearbyRadarSpin 2.4s linear infinite;
}
.ip-map-nearby-tab i:before,
.ip-map-nearby-tab i:after{
  content:'';
  position:absolute;
  inset:-6px;
  border:2px solid rgba(29,160,193,.34);
  border-radius:999px;
  opacity:0;
  animation:ipMapNearbyRadarPulse 1.7s ease-out infinite;
}
.ip-map-nearby-tab i:after{
  animation-delay:.55s;
}
.ip-map-nearby-tab:hover{
  color:#fff;
  transform:translateX(0) translateY(-2px);
  background:linear-gradient(135deg,rgba(7,19,22,.99),rgba(23,61,51,.98));
  box-shadow:0 24px 64px rgba(7,19,22,.36);
}
.ip-map-nearby-tab:hover i{
  animation-duration:1.4s;
}
.ip-map-shell.is-fullscreen ~ .ip-map-nearby-tab,
.ip-map-shell.is-fullscreen + .ip-map-nearby-tab{
  bottom:26px;
}
@keyframes ipMapNearbyTabIn{
  from{opacity:0;transform:translateX(-112%) translateY(10px)}
  to{opacity:1;transform:translateX(0) translateY(0)}
}
@keyframes ipMapNearbyRadarPulse{
  0%{opacity:.62;transform:scale(.72)}
  70%,100%{opacity:0;transform:scale(1.45)}
}
@keyframes ipMapNearbyRadarSpin{
  0%{transform:rotate(0deg);box-shadow:0 0 0 0 rgba(29,160,193,.32)}
  50%{box-shadow:0 0 0 10px rgba(29,160,193,0)}
  100%{transform:rotate(360deg);box-shadow:0 0 0 0 rgba(29,160,193,0)}
}
@media (max-width:640px){
  .ip-map-nearby-tab{
    bottom:18px;
    min-height:54px;
    padding:12px 16px 12px 18px;
    gap:10px;
    font-size:.86rem;
    max-width:calc(100% - 18px);
  }
  .ip-map-nearby-tab i{
    width:30px;
    height:30px;
    flex-basis:30px;
    font-size:1.02rem;
  }
}


/* v2.0.289 - Playas: tarjetas siempre visibles y mapa independiente de playas y calas */
.ip-playas-section-head{
  align-items:center;
}
.ip-playas-map-head{
  align-items:flex-start;
}
.ip-playas-view-switch{
  display:inline-flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
  padding:6px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:999px;
  background:rgba(255,255,255,.9);
  box-shadow:0 12px 30px rgba(7,19,22,.06);
}
.ip-playas-view-switch > span{
  padding:0 8px 0 10px;
  color:var(--ip-muted);
  font-size:.82rem;
  font-weight:950;
  white-space:nowrap;
}
.ip-playas-view-switch button{
  appearance:none;
  min-height:36px;
  padding:0 13px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--ip-ink);
  font-size:.82rem;
  font-weight:950;
  cursor:pointer;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}
.ip-playas-view-switch button:hover{
  transform:translateY(-1px);
}
.ip-playas-view-switch button.is-active{
  background:linear-gradient(135deg,var(--ip-sea),var(--ip-sea-dark));
  color:#fff;
  box-shadow:0 10px 22px rgba(16,97,106,.18);
}
.ip-playas-map-block{
  display:grid;
  gap:14px;
  margin-top:clamp(46px,6vw,76px);
  scroll-margin-top:110px;
}
.ip-playas-map-head{
  margin-bottom:2px;
}
.ip-playas-map-eyebrow{
  display:inline-flex;
  margin-top:10px;
  scroll-margin-top:112px;
}
.ip-playas-view-switch--map{
  margin-top:8px;
}
.ip-playas-map-filter-card{
  display:none!important;
}
.ip-playas-map-shell{
  border-radius:30px;
  overflow:hidden;
}
.ip-playas-map{
  height:clamp(420px,54vw,620px);
}
.ip-playas-map-summary{
  margin-top:0;
}
@media (max-width:900px){
  .ip-playas-section-head,
  .ip-playas-map-head{
    display:grid;
    gap:16px;
    align-items:start;
  }
  .ip-playas-view-switch{
    justify-self:start;
  }
}
@media (max-width:640px){
  .ip-playas-view-switch{
    width:100%;
    justify-content:space-between;
    border-radius:20px;
  }
  .ip-playas-view-switch > span{
    font-size:.78rem;
  }
  .ip-playas-view-switch button{
    flex:1 1 0;
    min-height:40px;
    padding:0 10px;
  }
  .ip-playas-map-block{
    margin-top:44px;
    scroll-margin-top:88px;
  }
  .ip-playas-map-eyebrow{
    margin-top:8px;
    scroll-margin-top:92px;
  }
  .ip-playas-map-shell{
    border-radius:24px;
  }
  .ip-playas-map{
    height:430px;
    border-radius:24px;
  }
  .ip-playas-map-summary{
    display:grid;
    gap:4px;
  }
}


/* v2.0.289 - Cerca de mi: ventana flotante de carga */
.ip-nearby-loading-modal[hidden]{
  display:none!important;
}
.ip-nearby-loading-modal{
  position:fixed;
  inset:0;
  z-index:100002;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(7,19,22,.42);
  backdrop-filter:blur(8px);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}
.ip-nearby-loading-modal.is-visible{
  opacity:1;
  pointer-events:auto;
}
.ip-nearby-loading-box{
  width:min(430px, calc(100vw - 36px));
  display:flex;
  align-items:center;
  gap:18px;
  padding:22px 24px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:28px;
  background:linear-gradient(135deg, rgba(255,255,255,.98), rgba(242,250,249,.96));
  box-shadow:0 28px 80px rgba(7,19,22,.28);
  color:var(--ip-ink);
  transform:translateY(10px) scale(.985);
  transition:transform .22s ease;
}
.ip-nearby-loading-modal.is-visible .ip-nearby-loading-box{
  transform:translateY(0) scale(1);
}
.ip-nearby-loading-spinner{
  flex:0 0 auto;
  width:46px;
  height:46px;
  border-radius:999px;
  border:4px solid rgba(16,97,106,.15);
  border-top-color:var(--ip-sea-dark);
  border-right-color:var(--ip-lime);
  animation:ipNearbySpin .85s linear infinite;
  box-shadow:0 0 0 8px rgba(29,160,193,.14);
}
.ip-nearby-loading-box strong{
  display:block;
  font-size:1.02rem;
  line-height:1.24;
  letter-spacing:-.025em;
  margin-bottom:4px;
}
.ip-nearby-loading-box span:not(.ip-nearby-loading-spinner){
  display:block;
  color:var(--ip-muted);
  font-size:.92rem;
  font-weight:800;
}
@keyframes ipNearbySpin{
  to{ transform:rotate(360deg); }
}
@media (max-width:520px){
  .ip-nearby-loading-modal{
    padding:18px;
    align-items:end;
  }
  .ip-nearby-loading-box{
    width:100%;
    gap:14px;
    padding:18px;
    border-radius:24px;
  }
  .ip-nearby-loading-spinner{
    width:40px;
    height:40px;
    border-width:3px;
  }
  .ip-nearby-loading-box strong{
    font-size:.96rem;
  }
}


/* v2.0.289 - Servicios de puntos de interés */
.ip-poi-services-section{
  margin:34px 0 30px;
  padding:24px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:28px;
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(228,244,243,.72));
  box-shadow:0 16px 44px rgba(7,19,22,.08);
}
.ip-poi-services-section > h2{
  margin:12px 0 18px;
  font-size:clamp(1.7rem,3vw,2.35rem);
  line-height:1;
  letter-spacing:-.055em;
}
.ip-poi-services-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.ip-poi-service-card{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:72px;
  padding:14px 15px;
  border:1px solid rgba(7,19,22,.10);
  border-radius:20px;
  background:rgba(255,255,255,.88);
  box-shadow:0 10px 26px rgba(7,19,22,.055);
}
.ip-poi-service-icon{
  flex:0 0 auto;
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:16px;
  background:var(--ip-cloud);
  border:1px solid rgba(81,184,187,.22);
  font-size:1.25rem;
  line-height:1;
}
.ip-poi-service-card strong{
  color:var(--ip-ink);
  font-size:.98rem;
  line-height:1.15;
  letter-spacing:-.025em;
}
@media (max-width:980px){
  .ip-poi-services-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:560px){
  .ip-poi-services-section{padding:18px;border-radius:24px;margin:28px 0 26px;}
  .ip-poi-services-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .ip-poi-service-card{display:grid;justify-items:center;text-align:center;gap:9px;min-height:104px;padding:13px 9px;border-radius:18px;}
  .ip-poi-service-icon{width:38px;height:38px;border-radius:14px;font-size:1.12rem;}
  .ip-poi-service-card strong{font-size:.86rem;line-height:1.12;}
}


/* v2.0.289 - Buscador flotante en cabecera desktop y menú móvil */
.ip-header-search-cta{
  display:inline-grid;
  place-items:center;
  width:42px;
  min-width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.26);
  background:rgba(255,255,255,.18);
  color:#fff;
  cursor:pointer;
  font-size:1rem;
  line-height:1;
  box-shadow:0 14px 34px rgba(7,19,22,.12);
  -webkit-backdrop-filter:blur(18px) saturate(1.16);
  backdrop-filter:blur(18px) saturate(1.16);
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease,color .22s ease;
}
.ip-header-solid .ip-header-search-cta,
.ip-header-floating.ip-is-scrolled .ip-header-search-cta{
  background:#fff;
  color:var(--ip-ink);
  border-color:var(--ip-line);
  box-shadow:0 10px 26px rgba(7,19,22,.08);
}
.ip-header-search-cta:hover,
.ip-header-search-cta:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 18px 42px rgba(7,19,22,.16);
  outline:none;
}
.ip-header-search-cta:focus-visible{outline:3px solid var(--ip-lime);outline-offset:4px}
.ip-mobile-search-menu-item{display:none!important}
.ip-mobile-search-menu-button{
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  gap:10px;
  border:0;
  border-radius:16px;
  padding:0 14px;
  background:var(--ip-ink);
  color:#fff;
  font:inherit;
  font-size:.92rem;
  font-weight:950;
  letter-spacing:-.02em;
  cursor:pointer;
  text-align:left;
}
.ip-mobile-search-menu-button span[aria-hidden="true"]{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:999px;background:rgba(255,255,255,.14)}
.ip-global-search-modal[hidden]{display:none!important}
.ip-global-search-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:24px;
}
.ip-global-search-backdrop{
  position:absolute;
  inset:0;
  background:rgba(7,19,22,.64);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  opacity:0;
  animation:ipSearchFade .22s ease forwards;
}
.ip-global-search-panel{
  position:relative;
  z-index:1;
  width:min(100%,760px);
  border-radius:34px;
  background:linear-gradient(180deg,#fff,var(--ip-soft));
  border:1px solid rgba(255,255,255,.7);
  box-shadow:0 34px 110px rgba(7,19,22,.34);
  padding:34px;
  color:var(--ip-ink);
  transform:translateY(14px) scale(.98);
  opacity:0;
  animation:ipSearchPanelIn .26s cubic-bezier(.2,.78,.2,1) forwards;
}
.ip-global-search-close{
  position:absolute;
  top:18px;
  right:18px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:999px;
  background:var(--ip-cloud);
  color:var(--ip-ink);
  cursor:pointer;
  font-size:1.55rem;
  line-height:1;
  font-weight:800;
}
.ip-global-search-panel h2{
  margin:14px 56px 10px 0;
  font-size:clamp(2.1rem,5vw,4.1rem);
  line-height:.9;
  letter-spacing:-.075em;
}
.ip-global-search-panel p{
  margin:0 0 20px;
  color:var(--ip-muted);
  max-width:600px;
  font-weight:720;
}
.ip-global-search-form{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px;
  border-radius:24px;
  background:#fff;
  border:1px solid var(--ip-line);
  box-shadow:0 18px 48px rgba(7,19,22,.08);
}
.ip-global-search-form-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:999px;
  background:var(--ip-cloud);
  color:var(--ip-sea-dark);
}
.ip-global-search-form input{
  min-height:48px;
  border:0;
  outline:0;
  background:transparent;
  color:var(--ip-ink);
  font-size:1.05rem;
  font-weight:850;
  min-width:0;
}
.ip-global-search-form input::placeholder{color:rgba(102,128,131,.78)}
.ip-global-search-form .ip-button-lime{min-height:48px;box-shadow:none}
.ip-global-search-links{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:16px;
}
.ip-global-search-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 13px;
  border-radius:999px;
  background:rgba(16,97,106,.08);
  border:1px solid rgba(16,97,106,.12);
  color:var(--ip-sea-dark);
  font-size:.86rem;
  font-weight:950;
  text-decoration:none;
}
@keyframes ipSearchFade{to{opacity:1}}
@keyframes ipSearchPanelIn{to{opacity:1;transform:translateY(0) scale(1)}}
@media (max-width:900px){
  .ip-header-search-cta{display:none!important}
  .ip-mobile-search-menu-item{display:block!important;margin-top:8px;padding-top:8px;border-top:1px solid var(--ip-line)}
  .ip-global-search-modal{padding:16px;align-items:start;padding-top:88px}
  .ip-global-search-panel{border-radius:28px;padding:24px 18px 18px}
  .ip-global-search-close{top:14px;right:14px;width:38px;height:38px;font-size:1.35rem}
  .ip-global-search-panel h2{margin-right:44px;font-size:clamp(2rem,12vw,3.05rem)}
  .ip-global-search-form{grid-template-columns:auto minmax(0,1fr);gap:8px;border-radius:22px}
  .ip-global-search-form .ip-button-lime{grid-column:1 / -1;width:100%}
  .ip-global-search-form input{font-size:.98rem;min-height:44px}
  .ip-global-search-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .ip-global-search-links a{width:100%;font-size:.82rem}
}
@media (max-width:380px){
  .ip-global-search-panel{padding:22px 14px 16px;border-radius:24px}
  .ip-global-search-links{grid-template-columns:1fr}
}

/* Traffic page template */
.ip-traffic-page-main .ip-page-hero{padding-top:clamp(18px,3vw,36px)}
.ip-traffic-hero .ip-container{position:relative}
.ip-traffic-hero h1{max-width:880px}
.ip-traffic-hero p{max-width:760px}
.ip-traffic-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.ip-traffic-section{padding-top:clamp(26px,4vw,52px)}
.ip-traffic-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}
.ip-traffic-status-card,.ip-traffic-live-card,.ip-traffic-panel{border:1px solid var(--ip-line);background:rgba(255,255,255,.86);border-radius:30px;box-shadow:0 22px 58px rgba(7,19,22,.08)}
.ip-traffic-status-card{padding:18px;display:grid;gap:8px;min-height:142px;align-content:start}
.ip-traffic-status-card span{font-size:.76rem;font-weight:950;text-transform:uppercase;letter-spacing:.05em;color:var(--ip-sea-dark)}
.ip-traffic-status-card strong{font-size:clamp(1.25rem,2vw,1.8rem);line-height:1;letter-spacing:-.055em;color:var(--ip-ink)}
.ip-traffic-status-card p{margin:0;color:var(--ip-muted);font-weight:720;line-height:1.35;font-size:.92rem}
.ip-traffic-live-card{padding:clamp(16px,2vw,22px);margin-bottom:22px}
.ip-traffic-section-head{display:flex;gap:18px;align-items:flex-start;justify-content:space-between;margin:0 0 16px}
.ip-traffic-section-head>div{min-width:0;flex:1}.ip-traffic-section-head h2{margin:0;font-size:clamp(1.85rem,3.8vw,3rem);line-height:.96;letter-spacing:-.075em;color:var(--ip-ink)}
.ip-traffic-section-head p{margin:8px 0 0;color:var(--ip-muted);font-weight:720;line-height:1.45;max-width:780px}.ip-traffic-section-head--compact h2{font-size:clamp(1.65rem,3vw,2.35rem)}
.ip-traffic-google-shell{position:relative;border-radius:28px;overflow:hidden;border:1px solid rgba(7,19,22,.12);background:#dceceb;min-height:520px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.ip-traffic-google-map{height:520px;width:100%}
.ip-traffic-google-shell.is-fullscreen{position:fixed!important;inset:18px!important;z-index:99999!important;border-radius:28px;box-shadow:0 28px 100px rgba(0,0,0,.35)}
.ip-traffic-google-shell.is-fullscreen .ip-traffic-google-map{height:calc(100vh - 36px)}
.ip-traffic-fullscreen-button{z-index:500;left:16px;right:auto;bottom:16px}
.ip-traffic-map-placeholder{min-height:520px;display:grid;place-items:center;text-align:center;padding:28px;background:radial-gradient(circle at 50% 0%,rgba(29,160,193,.34),transparent 34%),linear-gradient(135deg,#e5f5f4,#f7fbfa)}
.ip-traffic-map-placeholder h3{margin:0;font-size:clamp(1.6rem,3vw,2.35rem);line-height:.98;letter-spacing:-.06em;color:var(--ip-ink);max-width:680px}
.ip-traffic-map-placeholder p{margin:10px auto 0;color:var(--ip-muted);font-weight:720;line-height:1.45;max-width:690px}.ip-traffic-placeholder-icon{font-size:3rem;margin-bottom:8px}.ip-traffic-map-placeholder pre,.ip-traffic-api-notice pre{max-width:100%;overflow:auto;margin:10px 0;padding:11px 13px;border-radius:14px;background:#071316;color:#fff;text-align:left;font-size:.82rem}.ip-traffic-map-placeholder code,.ip-traffic-api-notice code{font-weight:900}
.ip-traffic-content-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}.ip-traffic-panel{padding:clamp(16px,2vw,22px)}
.ip-traffic-api-notice{margin:0 0 14px;padding:14px 16px;border-radius:18px;background:#f3fbfb;border:1px solid rgba(16,97,106,.18);color:var(--ip-muted)}.ip-traffic-api-notice strong{display:block;color:var(--ip-ink);margin-bottom:6px}.ip-traffic-api-notice p{margin:0}.ip-traffic-api-notice--warning{background:#fff4d7;border-color:#ffe0a3;color:#705011}
.ip-traffic-street-list{display:grid;gap:10px}.ip-traffic-street-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:14px;border-radius:22px;background:#fff;border:1px solid var(--ip-line);box-shadow:0 12px 32px rgba(7,19,22,.045)}
.ip-traffic-street-main{display:flex;align-items:center;gap:12px;min-width:0}.ip-traffic-dot{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border-radius:999px;background:#eef8f7;border:1px solid #d0e8e6;font-size:1.05rem}.ip-traffic-street-main h3{margin:0;font-size:1.05rem;line-height:1.1;letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ip-traffic-street-main p{margin:4px 0 0;color:var(--ip-muted);font-size:.84rem;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ip-traffic-street-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;color:var(--ip-muted);font-size:.8rem;font-weight:850}.ip-traffic-street-meta span{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;background:#f3f8f7;border:1px solid var(--ip-line)}.ip-traffic-state-pill{color:#fff!important;border:0!important;background:var(--ip-sea-dark)!important}.ip-traffic-state-ok .ip-traffic-state-pill{background:#2f9b67!important}.ip-traffic-state-slow .ip-traffic-state-pill{background:#d6a900!important;color:#071316!important}.ip-traffic-state-heavy .ip-traffic-state-pill{background:#e46f31!important}.ip-traffic-state-closed .ip-traffic-state-pill{background:#d13d2f!important}.ip-traffic-state-ok .ip-traffic-dot{color:#2f9b67}.ip-traffic-state-slow .ip-traffic-dot{color:#d6a900}.ip-traffic-state-heavy .ip-traffic-dot{color:#e46f31}.ip-traffic-state-closed .ip-traffic-dot{color:#d13d2f}.ip-traffic-street-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:8px 12px;border-radius:999px;background:var(--ip-ink);color:#fff;text-decoration:none;font-size:.8rem;font-weight:950;white-space:nowrap}.ip-traffic-street-link:hover{transform:translateY(-1px)}
.ip-traffic-cuts{position:sticky;top:98px}.ip-traffic-cuts h2{margin:7px 0 12px;font-size:clamp(1.6rem,3vw,2.2rem);line-height:.96;letter-spacing:-.065em}.ip-traffic-cuts-list{display:grid;gap:9px}.ip-traffic-cuts-list article,.ip-traffic-no-cuts{padding:13px;border-radius:18px;background:#fff;border:1px solid var(--ip-line)}.ip-traffic-cuts-list strong,.ip-traffic-no-cuts strong{display:block;color:var(--ip-ink);font-size:1rem;line-height:1.15}.ip-traffic-cuts-list span,.ip-traffic-no-cuts p{display:block;margin:5px 0 0;color:var(--ip-muted);font-weight:720;font-size:.88rem;line-height:1.35}
.ip-traffic-legend{margin-top:14px;padding-top:14px;border-top:1px solid var(--ip-line);display:grid;gap:8px}.ip-traffic-legend h3{margin:0;font-size:1rem}.ip-traffic-legend span{display:flex;align-items:center;gap:8px;color:var(--ip-muted);font-weight:820}.ip-traffic-legend i{display:inline-block;width:12px;height:12px;border-radius:999px}.ip-traffic-legend i.ok{background:#2f9b67}.ip-traffic-legend i.slow{background:#d6a900}.ip-traffic-legend i.heavy{background:#e46f31}.ip-traffic-legend i.closed{background:#d13d2f}
@media (max-width:1100px){.ip-traffic-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ip-traffic-content-grid{grid-template-columns:1fr}.ip-traffic-cuts{position:static}.ip-traffic-street-card{grid-template-columns:minmax(0,1fr) auto}.ip-traffic-street-meta{grid-column:1 / -1;justify-content:flex-start;order:3}.ip-traffic-street-link{grid-column:2;grid-row:1}}
@media (max-width:700px){.ip-traffic-section{padding-top:22px}.ip-traffic-hero-actions{display:grid}.ip-traffic-status-grid{grid-template-columns:1fr;gap:10px}.ip-traffic-status-card,.ip-traffic-live-card,.ip-traffic-panel{border-radius:24px;padding:16px}.ip-traffic-section-head{display:grid;gap:10px}.ip-traffic-google-shell,.ip-traffic-google-map,.ip-traffic-map-placeholder{height:390px;min-height:390px;border-radius:22px}.ip-traffic-google-shell.is-fullscreen{inset:10px!important;border-radius:22px}.ip-traffic-google-shell.is-fullscreen .ip-traffic-google-map{height:calc(100vh - 20px)}.ip-traffic-street-card{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px;border-radius:18px}.ip-traffic-dot{width:32px;height:32px}.ip-traffic-street-main{gap:9px}.ip-traffic-street-main h3{font-size:.96rem}.ip-traffic-street-main p{font-size:.76rem}.ip-traffic-street-link{padding:7px 10px;min-height:32px;font-size:.76rem}.ip-traffic-street-meta span{font-size:.72rem;min-height:26px;padding:3px 8px}.ip-traffic-map-placeholder pre,.ip-traffic-api-notice pre{font-size:.7rem}}
@media (max-width:420px){.ip-traffic-street-card{grid-template-columns:1fr}.ip-traffic-street-link{grid-column:auto;grid-row:auto;justify-self:start}.ip-traffic-street-meta{grid-column:auto}.ip-traffic-google-shell,.ip-traffic-google-map,.ip-traffic-map-placeholder{height:340px;min-height:340px}}



/* v2.0.289 - Título más pequeño en buscador flotante */
.ip-global-search-panel h2{
  font-size:clamp(1.55rem,3.8vw,2.7rem);
  line-height:1.02;
  letter-spacing:-.055em;
  margin-top:10px;
  margin-bottom:8px;
  max-width:620px;
}
.ip-global-search-panel > p{
  font-size:.98rem;
  line-height:1.45;
}
@media (max-width:900px){
  .ip-global-search-panel h2{
    font-size:clamp(1.45rem,7.6vw,2.1rem);
    line-height:1.04;
    letter-spacing:-.045em;
    margin-right:44px;
  }
  .ip-global-search-panel > p{
    font-size:.92rem;
  }
}


/* v2.0.289 - Solapa fija Qué tienes cerca añadida también a Como llegar y fichas de POI. */

/* v2.0.289 - Cambio de texto visible: “Qué hay cerca” pasa a “Qué tienes cerca” en solapas y menú. */

/* v2.0.289 - Rediseño de Lugares cercanos en fichas de puntos de interés */
.ip-poi-nearby-section{
  padding-top:clamp(34px,5vw,64px);
  padding-bottom:clamp(38px,5.5vw,74px);
  background:linear-gradient(180deg,rgba(243,248,247,.78),rgba(255,255,255,.98));
}
.ip-poi-nearby-head{
  margin-bottom:clamp(18px,2.7vw,30px);
}
.ip-poi-nearby-head h2{
  margin:0;
  max-width:900px;
  color:var(--ip-ink);
  font-size:clamp(1.85rem,4vw,3.15rem);
  line-height:.98;
  letter-spacing:-.065em;
}
.ip-poi-nearby-head h2::after{
  content:"";
  display:block;
  width:96px;
  height:8px;
  margin-top:14px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--ip-sea),var(--ip-lime));
}
.ip-poi-nearby-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(12px,1.8vw,18px);
}
.ip-poi-nearby-card{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-rows:auto auto;
  border:1px solid var(--ip-line);
  border-radius:26px;
  background:#fff;
  box-shadow:0 18px 48px rgba(7,19,22,.08);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.ip-poi-nearby-card:hover{
  transform:translateY(-4px);
  box-shadow:0 26px 68px rgba(7,19,22,.13);
  border-color:rgba(16,97,106,.2);
}
.ip-poi-nearby-media{
  position:relative;
  display:block;
  aspect-ratio:4/3;
  min-height:158px;
  overflow:hidden;
  color:#fff;
  text-decoration:none;
  background:#dceceb;
}
.ip-poi-nearby-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(7,19,22,.05) 28%,rgba(7,19,22,.25) 58%,rgba(7,19,22,.76) 100%);
  pointer-events:none;
}
.ip-poi-nearby-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .32s ease;
}
.ip-poi-nearby-card:hover .ip-poi-nearby-media img{
  transform:scale(1.045);
}
.ip-poi-nearby-distance{
  position:absolute;
  right:12px;
  top:12px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:6px 10px;
  border-radius:999px;
  background:#fff;
  color:var(--ip-lime);
  font-weight:950;
  font-size:.78rem;
  letter-spacing:-.02em;
  box-shadow:0 12px 28px rgba(0,0,0,.16);
}
.ip-poi-nearby-title{
  position:absolute;
  left:14px;
  right:14px;
  bottom:14px;
  z-index:2;
  display:block;
  color:#fff;
  font-weight:950;
  font-size:clamp(1rem,1.45vw,1.2rem);
  line-height:1.04;
  letter-spacing:-.045em;
  text-shadow:0 2px 12px rgba(0,0,0,.42);
}
.ip-poi-nearby-body{
  padding:0;
  background:#fff;
}
.ip-poi-nearby-button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:48px;
  padding:13px 14px;
  border:0;
  border-top:1px solid var(--ip-line);
  background:var(--ip-lime);
  color:#fff;
  font-weight:950;
  font-size:.88rem;
  text-decoration:none;
  transition:filter .2s ease,background .2s ease;
}
.ip-poi-nearby-button:hover{
  filter:saturate(1.05) brightness(.98);
  background:var(--ip-sea-dark);
}
@media (max-width:960px){
  .ip-poi-nearby-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:560px){
  .ip-poi-nearby-section{
    padding-top:32px;
    padding-bottom:46px;
  }
  .ip-poi-nearby-head{
    margin-bottom:16px;
  }
  .ip-poi-nearby-head h2{
    font-size:clamp(1.62rem,8vw,2.15rem);
    line-height:1.02;
  }
  .ip-poi-nearby-head h2::after{
    width:76px;
    height:7px;
    margin-top:11px;
  }
  .ip-poi-nearby-grid{
    gap:10px;
  }
  .ip-poi-nearby-card{
    border-radius:20px;
  }
  .ip-poi-nearby-media{
    min-height:124px;
    aspect-ratio:1.08/1;
  }
  .ip-poi-nearby-distance{
    right:8px;
    top:8px;
    min-height:25px;
    padding:4px 7px;
    font-size:.66rem;
  }
  .ip-poi-nearby-title{
    left:10px;
    right:10px;
    bottom:10px;
    font-size:.9rem;
    line-height:1.04;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .ip-poi-nearby-button{
    min-height:42px;
    padding:10px 8px;
    font-size:.76rem;
  }
}


/* v2.0.289 - Ficha POI: badge Ubicación con icono y ancla a Cómo llegar */
.single-ip_poi .ip-poi-location-chip:before{
  display:none;
}
.single-ip_poi .ip-poi-location-chip svg{
  width:17px;
  height:17px;
  display:block;
  flex:0 0 auto;
}
.single-ip_poi .ip-poi-location-chip{
  gap:7px;
}
#como-llegar{
  scroll-margin-top:110px;
}
@media (max-width:640px){
  .single-ip_poi .ip-poi-location-chip svg{
    width:16px;
    height:16px;
  }
  #como-llegar{
    scroll-margin-top:92px;
  }
}


/* v2.0.289 - Flecha final en solapas enlazadas del hero */
.ip-hero-corner-tab,
.ip-news-single-hero-tab,
.ip-route-hero-tab{
  gap:7px;
}
.ip-hero-tab-arrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.05em;
  line-height:1;
  transform:translateY(-1px);
  transition:transform .18s ease;
}
a.ip-hero-corner-tab:hover .ip-hero-tab-arrow,
a.ip-news-single-hero-tab:hover .ip-hero-tab-arrow,
a.ip-route-hero-tab:hover .ip-hero-tab-arrow{
  transform:translate(3px,-1px);
}

/* v2.0.289 - Playas y calas: badge de distancia del usuario en tarjetas */
.ip-playa-featured-distance{
  position:absolute;
  top:clamp(12px,2vw,18px);
  right:clamp(12px,2vw,18px);
  z-index:3;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:calc(100% - 24px);
  min-height:34px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--ip-ink);
  font-size:.78rem;
  line-height:1;
  font-weight:950;
  letter-spacing:-.015em;
  white-space:nowrap;
  box-shadow:0 14px 34px rgba(0,0,0,.24);
  backdrop-filter:blur(12px);
}
.ip-playa-featured-distance:before{
  content:"📍";
  margin-right:6px;
  font-size:.9em;
}
.ip-playa-featured-distance[hidden]{
  display:none!important;
}
@media (max-width:640px){
  .ip-playa-featured-distance{
    top:9px;
    right:9px;
    min-height:28px;
    padding:6px 8px;
    font-size:.64rem;
    box-shadow:0 10px 22px rgba(0,0,0,.22);
  }
  .ip-playa-featured-distance:before{
    margin-right:4px;
  }
}


/* v2.0.289 - Datos específicos para playas y calas en POI */
.ip-admin-poi-beach-fields{
  margin-top:18px;
  padding:16px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(228,244,243,.62),rgba(255,255,255,.92));
}
.ip-admin-poi-beach-fields h4{
  margin:0 0 12px;
  font-size:14px;
  color:#0f4d55;
}
.ip-admin-poi-beach-fields__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.ip-admin-poi-beach-fields__grid .ip-admin-field{
  margin-bottom:0 !important;
}
@media (max-width:900px){
  .ip-admin-poi-beach-fields__grid{grid-template-columns:1fr;}
}

/* v2.0.289 - Subtítulo de datos específicos de playa/cala en Información útil */
.ip-meta-subtitle{margin:6px 0 2px;padding:10px 0 4px;font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--ip-sea-dark);}
.ip-meta-subtitle + .ip-meta-item{border-top:1px solid rgba(16,97,106,.12);padding-top:10px;}

/* v2.0.289 - Resultados en vivo del buscador flotante */
.ip-global-search-live{
  margin-top:14px;
  padding:12px;
  border:1px solid rgba(16,97,106,.12);
  border-radius:24px;
  background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(228,244,243,.7));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);
}
.ip-global-search-live[hidden]{display:none!important}
.ip-global-search-live-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 10px;
}
.ip-global-search-live-head strong{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--ip-sea-dark);
}
.ip-global-search-live-head span{
  color:var(--ip-muted);
  font-weight:850;
  font-size:.78rem;
  white-space:nowrap;
}
.ip-global-search-results{
  display:grid;
  gap:8px;
  max-height:min(42vh,390px);
  overflow:auto;
  padding-right:3px;
}
.ip-global-search-result{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  gap:11px;
  align-items:center;
  min-height:70px;
  padding:8px;
  border-radius:18px;
  border:1px solid rgba(7,19,22,.08);
  background:rgba(255,255,255,.86);
  color:var(--ip-ink);
  text-decoration:none;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.ip-global-search-result:hover,
.ip-global-search-result:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(16,97,106,.22);
  box-shadow:0 14px 30px rgba(7,19,22,.1);
  outline:none;
}
.ip-global-search-result-media{
  width:58px;
  height:54px;
  border-radius:15px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:#e4f4f3;
}
.ip-global-search-result-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.ip-global-search-result-fallback{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  font-size:1.25rem;
}
.ip-global-search-result-content{
  min-width:0;
  display:grid;
  gap:2px;
}
.ip-global-search-result-meta{
  color:var(--ip-sea-dark);
  font-size:.72rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.055em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ip-global-search-result-content strong{
  font-size:.98rem;
  line-height:1.13;
  letter-spacing:-.018em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ip-global-search-result-content small{
  color:var(--ip-muted);
  font-size:.78rem;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ip-global-search-loading,
.ip-global-search-empty{
  min-height:66px;
  border-radius:18px;
  background:rgba(255,255,255,.78);
  border:1px dashed rgba(16,97,106,.18);
  display:grid;
  align-content:center;
  gap:3px;
  padding:14px;
  color:var(--ip-muted);
}
.ip-global-search-loading{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--ip-ink);
}
.ip-global-search-loading span{
  width:20px;
  height:20px;
  border-radius:999px;
  border:3px solid rgba(16,97,106,.18);
  border-top-color:var(--ip-sea-dark);
  animation:ipSpin .8s linear infinite;
}
.ip-global-search-empty strong{
  color:var(--ip-ink);
}
.ip-global-search-empty span{
  font-size:.86rem;
}
.ip-global-search-all{
  margin-top:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 12px;
  border-radius:999px;
  background:var(--ip-ink);
  color:#fff;
  text-decoration:none;
  font-weight:950;
  font-size:.84rem;
}
.ip-global-search-all:hover,
.ip-global-search-all:focus-visible{
  color:#fff;
  transform:translateY(-1px);
}
@keyframes ipSpin{to{transform:rotate(360deg)}}
@media (max-width:900px){
  .ip-global-search-live{border-radius:20px;padding:10px;margin-top:12px}
  .ip-global-search-results{max-height:36vh}
  .ip-global-search-result{grid-template-columns:50px minmax(0,1fr);gap:9px;min-height:62px;padding:7px;border-radius:16px}
  .ip-global-search-result-media{width:50px;height:48px;border-radius:13px}
  .ip-global-search-result-content strong{font-size:.9rem}
  .ip-global-search-result-content small{display:none}
  .ip-global-search-live-head span{font-size:.72rem}
}
@media (max-width:420px){
  .ip-global-search-live-head{align-items:flex-start;display:grid;gap:2px}
  .ip-global-search-live-head span{white-space:normal}
}

/* v2.0.289 - Mapa turístico: ubicación del usuario destacada y vista de 2 km */
.ip-map-user-location-marker{
  background:transparent!important;
  border:0!important;
}
.ip-map-user-location-marker .ip-map-user-location-pulse{
  position:absolute;
  inset:3px;
  border-radius:999px;
  background:rgba(29,160,193,.22);
  border:2px solid rgba(29,160,193,.72);
  animation:ip-map-user-pulse 1.7s ease-out infinite;
  box-shadow:0 0 0 0 rgba(29,160,193,.42);
}
.ip-map-user-location-marker .ip-map-user-location-dot{
  position:absolute;
  left:50%;
  top:50%;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  transform:translate(-50%,-50%);
  border:2px solid rgba(255,255,255,.95);
  border-radius:999px;
  background:linear-gradient(135deg,var(--ip-lime),var(--ip-aqua));
  box-shadow:0 12px 26px rgba(7,19,22,.28),0 0 0 5px rgba(255,255,255,.28);
  color:var(--ip-ink);
  font-size:18px;
  line-height:1;
}
.ip-map-popup span{
  display:block;
  margin-top:4px;
  color:var(--ip-muted);
  font-size:.82rem;
  line-height:1.35;
}
@keyframes ip-map-user-pulse{
  0%{transform:scale(.74);opacity:.92;box-shadow:0 0 0 0 rgba(29,160,193,.36)}
  70%{transform:scale(1.32);opacity:.12;box-shadow:0 0 0 18px rgba(29,160,193,0)}
  100%{transform:scale(1.32);opacity:0;box-shadow:0 0 0 18px rgba(29,160,193,0)}
}
@media (prefers-reduced-motion:reduce){
  .ip-map-user-location-marker .ip-map-user-location-pulse{animation:none;opacity:.45}
}


/* v2.0.289 - Mapa turístico: sin solapa fija, sin popup de ubicación y marcador del usuario más visible */
.ip-map-user-location-marker .ip-map-user-location-dot{
  animation:ip-map-user-dot-breathe 1.45s ease-in-out infinite;
}
.ip-map-user-location-marker .ip-map-user-location-pulse{
  inset:0;
  border-width:3px;
  background:rgba(29,160,193,.28);
  animation:ip-map-user-pulse 1.35s ease-out infinite;
}
.ip-map-user-location-marker::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:72px;
  height:72px;
  transform:translate(-50%,-50%);
  border-radius:999px;
  border:2px solid rgba(16,97,106,.28);
  animation:ip-map-user-radar 2.05s ease-out infinite;
  pointer-events:none;
}
@keyframes ip-map-user-dot-breathe{
  0%,100%{transform:translate(-50%,-50%) scale(1)}
  50%{transform:translate(-50%,-50%) scale(1.12)}
}
@keyframes ip-map-user-radar{
  0%{opacity:.75;transform:translate(-50%,-50%) scale(.48)}
  75%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.35)}
}
@media (prefers-reduced-motion:reduce){
  .ip-map-user-location-marker .ip-map-user-location-dot,
  .ip-map-user-location-marker::after{animation:none}
}


/* v2.0.289 - mapa turístico sin migas y contenido más arriba */
.ip-map-page-main .ip-page-hero{
  padding-top:6px!important;
  padding-bottom:8px!important;
}
.ip-map-page-main .ip-page-hero-card{
  padding-bottom:16px!important;
}
.ip-map-page-main .ip-section-tight.ip-map-section{
  padding-top:8px!important;
}
@media (max-width:640px){
  .ip-map-page-main .ip-page-hero{
    padding-top:4px!important;
    padding-bottom:6px!important;
  }
  .ip-map-page-main .ip-page-hero-card{
    padding-bottom:14px!important;
  }
  .ip-map-page-main .ip-section-tight.ip-map-section{
    padding-top:6px!important;
  }
}

/* v2.0.289 - popup turístico del mapa */
.leaflet-popup-content{
  margin:0!important;
}
.leaflet-popup-content .ip-map-popup-place{
  width:230px;
  max-width:72vw;
  overflow:hidden;
  border-radius:18px;
  background:#fff;
}
.leaflet-popup-content .ip-map-popup-place .ip-map-popup-image{
  width:100%;
  height:128px;
  overflow:hidden;
  background:var(--ip-cloud);
}
.leaflet-popup-content .ip-map-popup-place .ip-map-popup-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:0;
  margin:0;
}
.leaflet-popup-content .ip-map-popup-place .ip-map-popup-body{
  padding:12px;
}
.leaflet-popup-content .ip-map-popup-place .ip-map-popup-title{
  display:block;
  margin:0 0 10px;
  color:var(--ip-ink);
  font-size:1.08rem;
  line-height:1.18;
  font-weight:950;
}
.leaflet-popup-content .ip-map-popup-place .ip-map-popup-button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:42px;
  margin:0;
  border-radius:999px;
  background:var(--ip-lime);
  color:var(--ip-ink);
  font-weight:950;
  text-decoration:none;
  box-shadow:0 12px 26px rgba(163,230,53,.28);
}
.leaflet-popup-content .ip-map-popup-place .ip-map-popup-button:hover{
  transform:translateY(-1px);
  box-shadow:0 16px 30px rgba(163,230,53,.36);
}
@media (max-width:640px){
  .leaflet-popup-content .ip-map-popup-place{width:210px;max-width:76vw}
  .leaflet-popup-content .ip-map-popup-place .ip-map-popup-image{height:112px}
  .leaflet-popup-content .ip-map-popup-place .ip-map-popup-title{font-size:1rem}
}


/* Alojamientos */
.ip-accommodation-page .ip-page-hero{padding-bottom:10px}
.ip-accommodation-intro-grid{display:grid;grid-template-columns:1.35fr repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.ip-accommodation-intro-card{position:relative;overflow:hidden;background:rgba(255,255,255,.84);border:1px solid var(--ip-line);border-radius:30px;padding:24px;box-shadow:var(--ip-shadow-soft);min-height:210px;display:flex;flex-direction:column;justify-content:flex-end}
.ip-accommodation-intro-card:after{content:"";position:absolute;inset:auto -70px -100px auto;width:220px;height:220px;border-radius:999px;background:radial-gradient(circle,rgba(81,184,187,.18),transparent 68%);pointer-events:none}
.ip-accommodation-intro-card.is-featured{background:linear-gradient(135deg,rgba(7,19,22,.94),rgba(16,97,106,.88));color:#fff;min-height:260px}
.ip-accommodation-intro-card.is-featured p{color:rgba(255,255,255,.74);max-width:720px}
.ip-accommodation-intro-card h2{font-size:clamp(2rem,4vw,4.1rem);line-height:.94;letter-spacing:-.075em;margin:18px 0 14px;max-width:760px}
.ip-accommodation-intro-card h3{font-size:1.18rem;line-height:1.05;letter-spacing:-.045em;margin:12px 0 8px}
.ip-accommodation-intro-card p{margin:0;color:var(--ip-muted);font-size:.94rem;line-height:1.45}
.ip-accommodation-intro-icon{width:52px;height:52px;border-radius:18px;display:inline-flex;align-items:center;justify-content:center;background:var(--ip-cloud);font-size:1.45rem;margin-bottom:auto}
.ip-accommodation-filter-panel{margin-bottom:24px;grid-template-columns:minmax(220px,1.4fr) minmax(180px,.8fr) minmax(180px,.8fr) auto}
.ip-accommodation-grid{align-items:stretch}
.ip-accommodation-card{height:100%;display:flex;flex-direction:column;background:#fff}
.ip-accommodation-card .ip-card-media{position:relative;aspect-ratio:16/10}
.ip-accommodation-media-chip{position:absolute;left:14px;top:14px;z-index:2;display:inline-flex;align-items:center;min-height:30px;padding:7px 10px;border-radius:999px;background:rgba(7,19,22,.74);color:#fff;font-size:.74rem;font-weight:900;backdrop-filter:blur(14px)}
.ip-accommodation-card .ip-card-body{display:flex;flex-direction:column;gap:12px;flex:1;padding:22px}
.ip-accommodation-card .ip-card-kicker{margin:0;order:1}
.ip-accommodation-card h3{order:2;font-size:1.24rem}
.ip-accommodation-card .ip-card-excerpt{order:3;margin:0;color:var(--ip-muted);line-height:1.45}
.ip-accommodation-services-preview{order:4;margin-top:auto;border:1px solid var(--ip-line);border-radius:18px;padding:11px 12px;background:var(--ip-soft);color:var(--ip-muted);font-size:.82rem;line-height:1.35}
.ip-accommodation-card .ip-button-ghost{order:5;width:fit-content;margin-top:2px}
.ip-accommodation-types-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:14px}
.ip-accommodation-type-card{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:245px;padding:20px;border:1px solid var(--ip-line);border-radius:28px;background:#fff;box-shadow:var(--ip-shadow-soft);transition:.22s ease}
.ip-accommodation-type-card:hover{transform:translateY(-4px);box-shadow:0 22px 60px rgba(7,19,22,.15)}
.ip-accommodation-type-card:before{content:"";position:absolute;right:-44px;top:-54px;width:150px;height:150px;border-radius:999px;background:radial-gradient(circle,rgba(29,160,193,.48),rgba(81,184,187,.08) 60%,transparent 72%)}
.ip-accommodation-type-count{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:18px;background:var(--ip-ink);color:#fff;font-weight:950;letter-spacing:-.04em;margin-bottom:auto}
.ip-accommodation-type-card h3{position:relative;z-index:1;margin:18px 0 8px;font-size:1.12rem;line-height:1.05;letter-spacing:-.05em}
.ip-accommodation-type-card p{position:relative;z-index:1;margin:0;color:var(--ip-muted);font-size:.86rem;line-height:1.42}
.ip-accommodation-type-card strong{position:relative;z-index:1;margin-top:18px;font-size:.83rem;color:var(--ip-sea-dark)}
.ip-accommodation-single-layout .ip-single-main{overflow:hidden}
.ip-accommodation-detail-block{margin-top:34px;padding-top:28px;border-top:1px solid var(--ip-line)}
.ip-accommodation-meta-list{margin-top:18px}
.ip-accommodation-booking-button{width:100%;margin-top:18px}
.ip-accommodation-related-section{padding-top:10px}

@media (max-width:1180px){
  .ip-accommodation-intro-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ip-accommodation-intro-card.is-featured{grid-column:1/-1}
  .ip-accommodation-types-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:900px){
  .ip-accommodation-filter-panel{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .ip-accommodation-intro-grid,.ip-accommodation-types-grid,.ip-accommodation-filter-panel{grid-template-columns:1fr}
  .ip-accommodation-intro-card{min-height:190px;border-radius:24px;padding:20px}
  .ip-accommodation-intro-card.is-featured{min-height:250px}
  .ip-accommodation-card .ip-card-body{padding:20px}
  .ip-accommodation-type-card{min-height:210px;border-radius:24px}
}

/* v2.0.289 - Landing de alojamiento SEO + tipos en /alojamiento/ */
.ip-accommodation-landing-page .ip-page-hero{
  padding-bottom:18px;
}
.ip-accommodation-seo-intro-section{
  padding-top:10px;
}
.ip-accommodation-seo-intro-card,
.ip-accommodation-type-intro-card{
  position:relative;
  overflow:hidden;
  border:1px solid var(--ip-line);
  border-radius:34px;
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(238,248,247,.86));
  box-shadow:var(--ip-shadow-soft);
  padding:clamp(24px,4vw,46px);
}
.ip-accommodation-seo-intro-card:before,
.ip-accommodation-type-intro-card:before{
  content:"";
  position:absolute;
  right:-90px;
  top:-110px;
  width:310px;
  height:310px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(81,184,187,.22),rgba(29,160,193,.18) 48%,transparent 72%);
  pointer-events:none;
}
.ip-accommodation-seo-intro-card > *,
.ip-accommodation-type-intro-card > *{
  position:relative;
  z-index:1;
}
.ip-accommodation-seo-intro-card h2,
.ip-accommodation-type-intro-card h2{
  max-width:920px;
  margin:10px 0 18px;
  color:var(--ip-ink);
  font-size:clamp(2rem,4vw,4.35rem);
  line-height:.96;
  letter-spacing:-.075em;
}
.ip-accommodation-seo-copy{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  max-width:1120px;
}
.ip-accommodation-seo-copy p,
.ip-accommodation-type-intro-card p,
.ip-accommodation-type-description{
  margin:0;
  color:var(--ip-muted);
  font-size:1.02rem;
  line-height:1.68;
}
.ip-accommodation-types-head{
  margin-bottom:20px;
}
.ip-accommodation-types-grid.ip-accommodation-types-grid--simple{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.ip-accommodation-type-card.ip-accommodation-type-card--simple{
  min-height:118px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:22px;
  border-radius:28px;
  border:1px solid rgba(16,97,106,.14);
  background:linear-gradient(135deg,#fff,rgba(238,248,247,.92));
  color:var(--ip-ink);
  box-shadow:0 16px 44px rgba(7,19,22,.08);
  text-decoration:none;
}
.ip-accommodation-type-card.ip-accommodation-type-card--simple:before{
  right:-58px;
  top:-70px;
  width:170px;
  height:170px;
  background:radial-gradient(circle,rgba(29,160,193,.5),rgba(81,184,187,.12) 60%,transparent 72%);
}
.ip-accommodation-type-card.ip-accommodation-type-card--simple span{
  position:relative;
  z-index:1;
  display:block;
  color:var(--ip-ink);
  font-size:clamp(1.12rem,2vw,1.55rem);
  font-weight:950;
  line-height:1.08;
  letter-spacing:-.055em;
}
.ip-accommodation-type-card.ip-accommodation-type-card--simple:hover{
  transform:translateY(-4px);
  border-color:rgba(16,97,106,.28);
  box-shadow:0 24px 64px rgba(7,19,22,.14);
}
.ip-accommodation-back-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
  color:var(--ip-sea-dark);
  font-weight:900;
  text-decoration:none;
}
.ip-accommodation-back-link:hover{
  color:var(--ip-ink);
}
.ip-accommodation-type-page .ip-accommodation-types-grid.ip-accommodation-types-grid--simple{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
@media (max-width:900px){
  .ip-accommodation-seo-copy{
    grid-template-columns:1fr;
    gap:14px;
  }
  .ip-accommodation-types-grid.ip-accommodation-types-grid--simple,
  .ip-accommodation-type-page .ip-accommodation-types-grid.ip-accommodation-types-grid--simple{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
}
@media (max-width:640px){
  .ip-accommodation-seo-intro-card,
  .ip-accommodation-type-intro-card{
    border-radius:26px;
    padding:22px;
  }
  .ip-accommodation-types-grid.ip-accommodation-types-grid--simple,
  .ip-accommodation-type-page .ip-accommodation-types-grid.ip-accommodation-types-grid--simple{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .ip-accommodation-type-card.ip-accommodation-type-card--simple{
    min-height:96px;
    border-radius:22px;
    padding:16px 10px;
  }
  .ip-accommodation-type-card.ip-accommodation-type-card--simple span{
    font-size:1rem;
    letter-spacing:-.04em;
  }
}


/* Alojamientos: cabecera de páginas de tipo */
.ip-accommodation-type-heading-card{
    background:linear-gradient(135deg,#ffffff 0%,#f4fbff 100%);
    border:1px solid rgba(19,72,103,.10);
    border-radius:28px;
    padding:clamp(22px,3vw,34px);
    box-shadow:0 18px 46px rgba(17,63,94,.08);
    margin-bottom:28px;
}
.ip-accommodation-type-heading-card .ip-accommodation-back-link{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-bottom:18px;
}
.ip-accommodation-type-heading-card .ip-title-md{
    margin:8px 0 10px;
}
.ip-accommodation-type-heading-card p{
    max-width:820px;
    margin:0;
    color:var(--ip-muted,#5d6f7b);
    line-height:1.7;
}
@media (max-width:640px){
    .ip-accommodation-type-heading-card{
        border-radius:22px;
        padding:20px;
        margin-bottom:22px;
    }
}

/* v2.0.289 - alojamiento tipos sin badge de contenidos */


/* v2.0.289 - boton volver a alojamientos en tipos */
.ip-accommodation-back{
    display:flex;
    justify-content:center;
    margin:32px 0 0;
}
.ip-accommodation-back .ip-button-ghost{
    min-width:220px;
    justify-content:center;
}
@media (max-width:640px){
    .ip-accommodation-back .ip-button-ghost{
        width:100%;
    }
}


/* v2.0.289 - tarjetas modernas de alojamientos */
.ip-accommodation-list-section .ip-accommodation-grid,
.ip-accommodation-type-page .ip-accommodation-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
}
.ip-accommodation-card{
    overflow:hidden;
    border-radius:28px;
    background:#fff;
    border:1px solid rgba(16,97,106,.12);
    box-shadow:0 18px 48px rgba(7,19,22,.10);
    display:flex;
    flex-direction:column;
    height:100%;
}
.ip-accommodation-card:hover{
    transform:translateY(-4px);
    box-shadow:0 26px 68px rgba(7,19,22,.15);
}
.ip-accommodation-card-main{
    display:block;
    color:inherit;
    text-decoration:none;
}
.ip-accommodation-card .ip-card-media.ip-accommodation-card-media{
    position:relative;
    aspect-ratio:16/11;
    overflow:hidden;
    background:var(--ip-cloud);
}
.ip-accommodation-card .ip-card-media.ip-accommodation-card-media:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(7,19,22,.08) 0%,rgba(7,19,22,.18) 46%,rgba(7,19,22,.78) 100%);
    pointer-events:none;
    z-index:1;
}
.ip-accommodation-card .ip-card-media.ip-accommodation-card-media img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.ip-accommodation-media-chip{
    left:auto;
    right:14px;
    top:14px;
    z-index:2;
    min-height:30px;
    padding:7px 11px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    color:var(--ip-ink);
    border:1px solid rgba(255,255,255,.55);
    box-shadow:0 10px 24px rgba(7,19,22,.16);
    font-size:.72rem;
    font-weight:950;
    letter-spacing:-.015em;
}
.ip-accommodation-title-overlay{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:2;
    padding:18px 18px 16px;
}
.ip-accommodation-title-overlay h3,
.ip-accommodation-card h3{
    margin:0;
    color:#fff;
    font-size:clamp(1.05rem,1.7vw,1.38rem);
    line-height:1.02;
    letter-spacing:-.055em;
    text-shadow:0 12px 26px rgba(0,0,0,.34);
}
.ip-accommodation-title-category{
    display:inline;
    margin-left:.32em;
    color:rgba(255,255,255,.84);
    font-size:.52em;
    line-height:1;
    font-weight:850;
    letter-spacing:0;
    text-shadow:0 10px 24px rgba(0,0,0,.32);
    vertical-align:super;
}
.ip-accommodation-card-button{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:50px;
    margin-top:auto;
    padding:0 16px;
    border-radius:0 0 28px 28px;
    background:var(--ip-ink);
    color:#fff;
    font-weight:950;
    font-size:.88rem;
    letter-spacing:-.02em;
    text-decoration:none;
    transition:.22s ease;
}
.ip-accommodation-card-button:hover{
    background:var(--ip-sea-dark);
    color:#fff;
}
.ip-accommodation-card .ip-card-body,
.ip-accommodation-card .ip-card-kicker,
.ip-accommodation-card .ip-card-excerpt,
.ip-accommodation-services-preview,
.ip-accommodation-card .ip-button-ghost,
.ip-accommodation-card > .ip-card-link{
    display:none!important;
}
@media (max-width:900px){
    .ip-accommodation-list-section .ip-accommodation-grid,
    .ip-accommodation-type-page .ip-accommodation-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:16px;
    }
}
@media (max-width:640px){
    .ip-accommodation-list-section .ip-accommodation-grid,
    .ip-accommodation-type-page .ip-accommodation-grid,
    .ip-grid.ip-grid-3.ip-accommodation-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:12px;
    }
    .ip-accommodation-card{
        border-radius:20px;
    }
    .ip-accommodation-card .ip-card-media.ip-accommodation-card-media{
        aspect-ratio:4/4.6;
    }
    .ip-accommodation-media-chip{
        top:8px;
        right:8px;
        min-height:24px;
        max-width:calc(100% - 16px);
        padding:5px 7px;
        font-size:.62rem;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
    }
    .ip-accommodation-title-overlay{
        padding:12px 10px 10px;
    }
    .ip-accommodation-title-overlay h3,
    .ip-accommodation-card h3{
        font-size:.92rem;
        line-height:1.03;
        letter-spacing:-.04em;
    }
    .ip-accommodation-title-category{
        margin-left:.24em;
        font-size:.54em;
    }
    .ip-accommodation-card-button{
        min-height:40px;
        border-radius:0 0 20px 20px;
        padding:0 8px;
        font-size:.76rem;
    }
}


/* v2.0.289 - ficha individual de alojamientos rediseñada */
.single-ip_alojamiento .ip-page-hero,
.single-ip_alojamiento .ip-page-hero-overlay{
    padding-top:clamp(18px,3vw,36px);
}
.single-ip_alojamiento .ip-page-hero-card.is-overlay-hero.has-image{
    min-height:clamp(430px,62vh,720px);
}
.ip-accommodation-single-layout-v2{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(300px,380px);
    gap:28px;
    align-items:start;
}
.ip-accommodation-single-content{
    display:grid;
    gap:22px;
}
.ip-accommodation-single-card,
.ip-accommodation-booking-card{
    position:relative;
    overflow:hidden;
    background:rgba(255,255,255,.92);
    border:1px solid rgba(16,97,106,.12);
    border-radius:32px;
    box-shadow:0 18px 54px rgba(7,19,22,.10);
    padding:clamp(22px,3vw,34px);
}
.ip-accommodation-single-card:before,
.ip-accommodation-booking-card:before{
    content:"";
    position:absolute;
    right:-90px;
    top:-100px;
    width:230px;
    height:230px;
    border-radius:999px;
    background:radial-gradient(circle,rgba(141,229,220,.25),transparent 68%);
    pointer-events:none;
}
.ip-accommodation-single-card > *,
.ip-accommodation-booking-card > *{
    position:relative;
    z-index:1;
}
.ip-accommodation-category-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0 0 24px;
}
.ip-accommodation-category-pill{
    display:inline-flex;
    align-items:center;
    gap:12px;
    min-height:54px;
    padding:9px 14px;
    border-radius:20px;
    background:var(--ip-soft);
    border:1px solid var(--ip-line);
    color:inherit;
    text-decoration:none;
}
.ip-accommodation-category-pill span{
    display:block;
    color:var(--ip-muted);
    font-size:.75rem;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.055em;
}
.ip-accommodation-category-pill strong{
    display:block;
    color:var(--ip-ink);
    font-size:1rem;
    letter-spacing:-.03em;
}
.ip-accommodation-availability-inline{
    white-space:nowrap;
}
.ip-accommodation-detail-block-v2 h2,
.ip-accommodation-map-card h2,
.ip-accommodation-booking-card h2{
    margin:8px 0 12px;
    font-size:clamp(1.55rem,2.5vw,2.35rem);
    line-height:.98;
    letter-spacing:-.06em;
}
.ip-accommodation-booking-panel{
    position:sticky;
    top:92px;
}
.ip-accommodation-booking-card{
    background:linear-gradient(180deg,#fff,rgba(246,251,251,.96));
}
.ip-accommodation-booking-button-v2,
.ip-accommodation-website-button{
    width:100%;
    margin-top:16px;
    justify-content:center;
}
.ip-accommodation-website-button{
    display:flex;
}
.ip-accommodation-type-return{
    display:flex;
    align-items:center;
    justify-content:center;
    margin-top:14px;
    font-weight:900;
    color:var(--ip-sea-dark);
    text-decoration:none;
}
.ip-accommodation-map-head{
    display:flex;
    justify-content:space-between;
    gap:18px;
    align-items:end;
    margin-bottom:18px;
}
.ip-accommodation-map-head p{
    margin:0;
    color:var(--ip-muted);
}
.ip-accommodation-single-map-shell{
    border-radius:28px;
    overflow:hidden;
    border:1px solid rgba(7,19,22,.12);
    box-shadow:0 18px 44px rgba(7,19,22,.12);
}
.ip-accommodation-single-map-shell .ip-map-single{
    height:430px;
    min-height:430px;
    margin-top:0;
}
.ip-accommodation-map-card .ip-poi-distance-box{
    margin-top:14px;
}
.single-ip_alojamiento .ip-hero-image{
    display:none!important;
}
@media (max-width:1024px){
    .ip-accommodation-single-layout-v2{
        grid-template-columns:1fr;
    }
    .ip-accommodation-booking-panel{
        position:static;
    }
}
@media (max-width:640px){
    .single-ip_alojamiento .ip-page-hero-card.is-overlay-hero.has-image{
        min-height:360px;
    }
    .ip-accommodation-single-layout-v2{
        gap:18px;
    }
    .ip-accommodation-single-card,
    .ip-accommodation-booking-card{
        border-radius:24px;
        padding:20px;
    }
    .ip-accommodation-category-row{
        display:grid;
        margin-bottom:18px;
    }
    .ip-accommodation-category-pill,
    .ip-accommodation-availability-inline{
        width:100%;
        justify-content:center;
        text-align:center;
    }
    .ip-accommodation-map-head{
        display:block;
    }
    .ip-accommodation-single-map-shell .ip-map-single{
        height:340px;
        min-height:340px;
    }
}

/* v2.0.289 - ficha individual de alojamiento estilo reserva */
.ip-accommodation-booking-page{
    background:linear-gradient(180deg,#fbfcfd 0%,#f3f8f8 54%,#ffffff 100%);
}
.ip-accommodation-booking-hero{
    padding:clamp(18px,3vw,34px) 0 0;
}
.ip-accommodation-booking-topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:14px;
}
.ip-accommodation-booking-return,
.ip-accommodation-booking-type{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:8px 13px;
    border-radius:999px;
    background:rgba(255,255,255,.86);
    border:1px solid rgba(7,19,22,.08);
    color:var(--ip-ink);
    text-decoration:none;
    font-weight:900;
    font-size:.82rem;
    box-shadow:0 10px 30px rgba(7,19,22,.06);
}
.ip-accommodation-booking-type{
    background:var(--ip-ink);
    color:#fff;
    border-color:rgba(7,19,22,.16);
}
.ip-accommodation-booking-header{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:24px;
    align-items:end;
    margin-bottom:18px;
}
.ip-accommodation-booking-header h1{
    margin:0;
    max-width:1000px;
    color:var(--ip-ink);
    font-size:clamp(2rem,4.2vw,4.2rem);
    line-height:.96;
    letter-spacing:-.075em;
}
.ip-accommodation-booking-subline{
    display:flex;
    flex-wrap:wrap;
    gap:8px 12px;
    margin-top:10px;
    color:var(--ip-muted);
    font-size:.96rem;
}
.ip-accommodation-booking-subline span{
    display:inline-flex;
    align-items:center;
    gap:7px;
}
.ip-accommodation-booking-subline span + span:before{
    content:"";
    width:5px;
    height:5px;
    border-radius:999px;
    background:rgba(7,19,22,.22);
}
.ip-accommodation-booking-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}
.ip-accommodation-mini-action,
.ip-accommodation-mini-cta{
    min-height:42px;
    padding:10px 16px;
    border-radius:999px;
    font-size:.86rem;
    font-weight:950;
    text-decoration:none;
    white-space:nowrap;
}
.ip-accommodation-mini-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    color:var(--ip-ink);
    border:1px solid rgba(7,19,22,.10);
    box-shadow:0 12px 28px rgba(7,19,22,.07);
}
.ip-accommodation-booking-gallery{
    position:relative;
    overflow:hidden;
    min-height:clamp(310px,48vw,560px);
    border-radius:30px;
    background:linear-gradient(135deg,var(--ip-ink),var(--ip-sea-dark));
    box-shadow:0 26px 70px rgba(7,19,22,.18);
    isolation:isolate;
}
.ip-accommodation-booking-gallery img{
    display:block;
    width:100%;
    height:100%;
    min-height:clamp(310px,48vw,560px);
    object-fit:cover;
}
.ip-accommodation-booking-gallery:after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg,rgba(7,19,22,.04) 0%,rgba(7,19,22,.18) 50%,rgba(7,19,22,.78) 100%);
    pointer-events:none;
}
.ip-accommodation-booking-gallery-fallback{
    min-height:clamp(310px,48vw,560px);
    display:grid;
    align-content:end;
    gap:10px;
    padding:clamp(24px,5vw,54px);
    color:#fff;
}
.ip-accommodation-booking-gallery-fallback span{
    font-weight:950;
    color:var(--ip-lime);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:.78rem;
}
.ip-accommodation-booking-gallery-fallback strong{
    max-width:760px;
    font-size:clamp(2rem,5vw,5rem);
    line-height:.9;
    letter-spacing:-.08em;
}
.ip-accommodation-gallery-overlay{
    position:absolute;
    left:clamp(18px,3vw,34px);
    bottom:clamp(18px,3vw,34px);
    z-index:2;
    max-width:min(720px,calc(100% - 36px));
    color:#fff;
    display:grid;
    gap:6px;
}
.ip-accommodation-gallery-overlay span{
    width:max-content;
    max-width:100%;
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:7px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    color:var(--ip-ink);
    font-size:.74rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.055em;
}
.ip-accommodation-gallery-overlay strong{
    font-size:clamp(1.9rem,4vw,4rem);
    line-height:.92;
    letter-spacing:-.075em;
    text-shadow:0 20px 44px rgba(0,0,0,.34);
}
.ip-accommodation-gallery-overlay small{
    max-width:680px;
    color:rgba(255,255,255,.86);
    font-size:1rem;
    line-height:1.35;
}
.ip-accommodation-booking-tabs{
    position:sticky;
    top:0;
    z-index:25;
    display:flex;
    gap:6px;
    align-items:center;
    overflow-x:auto;
    margin:18px 0 0;
    padding:10px;
    border:1px solid rgba(7,19,22,.08);
    border-radius:22px;
    background:rgba(255,255,255,.86);
    box-shadow:0 16px 44px rgba(7,19,22,.08);
    backdrop-filter:blur(14px);
    scrollbar-width:none;
}
.ip-accommodation-booking-tabs::-webkit-scrollbar{display:none}
.ip-accommodation-booking-tabs a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:9px 14px;
    border-radius:999px;
    color:var(--ip-muted);
    text-decoration:none;
    font-weight:950;
    font-size:.84rem;
    white-space:nowrap;
}
.ip-accommodation-booking-tabs a:hover,
.ip-accommodation-booking-tabs a:focus-visible{
    background:var(--ip-soft);
    color:var(--ip-ink);
}
.ip-accommodation-booking-main-section{
    padding-top:24px;
}
.ip-accommodation-booking-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,390px);
    gap:28px;
    align-items:start;
}
.ip-accommodation-booking-content{
    display:grid;
    gap:22px;
}
.ip-accommodation-booking-card,
.ip-accommodation-reserve-card{
    background:#fff;
    border:1px solid rgba(7,19,22,.08);
    border-radius:28px;
    box-shadow:0 18px 54px rgba(7,19,22,.08);
    padding:clamp(22px,3vw,34px);
}
.ip-accommodation-card-headline{
    display:grid;
    gap:8px;
    margin-bottom:20px;
}
.ip-accommodation-card-headline h2{
    margin:0;
    color:var(--ip-ink);
    font-size:clamp(1.55rem,2.8vw,2.7rem);
    line-height:.98;
    letter-spacing:-.065em;
}
.ip-accommodation-card-headline p{
    max-width:820px;
    margin:0;
    color:var(--ip-muted);
    font-size:1.02rem;
    line-height:1.65;
}
.ip-accommodation-feature-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin:0 0 22px;
}
.ip-accommodation-feature-item{
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    gap:12px;
    align-items:center;
    padding:14px;
    border-radius:20px;
    background:linear-gradient(180deg,#fbffff,#f5fbfb);
    border:1px solid rgba(16,97,106,.10);
}
.ip-accommodation-feature-item > span{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 22px rgba(7,19,22,.07);
}
.ip-accommodation-feature-item strong{
    display:block;
    color:var(--ip-ink);
    font-size:1rem;
    letter-spacing:-.025em;
}
.ip-accommodation-feature-item small{
    display:block;
    margin-top:2px;
    color:var(--ip-muted);
    font-size:.82rem;
    line-height:1.35;
}
.ip-accommodation-booking-prose{
    color:var(--ip-ink);
}
.ip-accommodation-booking-prose p:last-child{
    margin-bottom:0;
}
.ip-accommodation-amenities-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.ip-accommodation-amenity{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:48px;
    padding:12px 14px;
    border-radius:18px;
    background:var(--ip-soft);
    color:var(--ip-ink);
    font-weight:850;
}
.ip-accommodation-amenity span{
    display:grid;
    place-items:center;
    flex:0 0 26px;
    width:26px;
    height:26px;
    border-radius:999px;
    background:var(--ip-lime);
    color:var(--ip-ink);
    font-weight:950;
    font-size:.8rem;
}
.ip-accommodation-info-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.ip-accommodation-info-grid a{
    display:grid;
    gap:5px;
    min-height:86px;
    align-content:center;
    padding:14px;
    border-radius:20px;
    background:linear-gradient(180deg,#fbffff,#f7fbfb);
    border:1px solid rgba(16,97,106,.10);
    color:var(--ip-ink);
    text-decoration:none;
}
.ip-accommodation-info-grid a:hover{
    transform:translateY(-2px);
    box-shadow:0 18px 38px rgba(7,19,22,.08);
}
.ip-accommodation-info-grid span{
    color:var(--ip-muted);
    font-size:.74rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.055em;
}
.ip-accommodation-info-grid strong{
    font-size:.96rem;
    line-height:1.2;
    letter-spacing:-.03em;
}
.ip-accommodation-single-map-shell-v3{
    border-radius:24px;
    overflow:hidden;
    border:1px solid rgba(7,19,22,.10);
    box-shadow:0 16px 42px rgba(7,19,22,.11);
}
.ip-accommodation-single-map-shell-v3 .ip-map-single{
    height:430px;
    min-height:430px;
    margin:0;
}
.ip-accommodation-map-card-v3 .ip-poi-distance-box{
    margin-top:14px;
}
.ip-accommodation-reserve-panel{
    position:sticky;
    top:92px;
}
.ip-accommodation-reserve-card{
    overflow:hidden;
    padding:22px;
}
.ip-accommodation-reserve-top{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:flex-start;
    margin-bottom:18px;
}
.ip-accommodation-reserve-top span{
    display:block;
    color:var(--ip-muted);
    font-size:.78rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.ip-accommodation-reserve-top strong{
    display:block;
    margin-top:3px;
    color:var(--ip-ink);
    font-size:clamp(1.7rem,2.8vw,2.4rem);
    line-height:1;
    letter-spacing:-.07em;
}
.ip-accommodation-reserve-rating{
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border-radius:16px;
    background:var(--ip-lime);
    color:var(--ip-ink);
    box-shadow:0 12px 26px rgba(163,230,53,.25);
}
.ip-accommodation-reserve-fields{
    display:grid;
    gap:10px;
    margin:0 0 16px;
}
.ip-accommodation-reserve-fields div{
    display:grid;
    gap:5px;
    padding:14px;
    border-radius:18px;
    border:1px solid rgba(7,19,22,.08);
    background:#fbfdfd;
}
.ip-accommodation-reserve-fields span{
    color:var(--ip-muted);
    font-size:.72rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.055em;
}
.ip-accommodation-reserve-fields strong{
    color:var(--ip-ink);
    font-size:.94rem;
    line-height:1.25;
    letter-spacing:-.02em;
}
.ip-accommodation-reserve-button,
.ip-accommodation-reserve-secondary,
.ip-accommodation-reserve-link{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:52px;
    border-radius:18px;
    text-decoration:none;
    font-weight:950;
    text-align:center;
}
.ip-accommodation-reserve-button{
    background:var(--ip-lime);
    color:var(--ip-ink);
    box-shadow:0 16px 34px rgba(163,230,53,.28);
}
.ip-accommodation-reserve-button:hover{
    transform:translateY(-2px);
    box-shadow:0 22px 44px rgba(163,230,53,.34);
}
.ip-accommodation-reserve-secondary{
    margin-top:10px;
    background:var(--ip-ink);
    color:#fff;
}
.ip-accommodation-reserve-secondary:hover{
    color:#fff;
    transform:translateY(-2px);
}
.ip-accommodation-reserve-link{
    min-height:auto;
    margin-top:13px;
    color:var(--ip-sea-dark);
    font-size:.88rem;
}
@media (max-width:1024px){
    .ip-accommodation-booking-header{
        grid-template-columns:1fr;
        align-items:start;
    }
    .ip-accommodation-booking-actions{
        justify-content:flex-start;
    }
    .ip-accommodation-booking-layout{
        grid-template-columns:1fr;
    }
    .ip-accommodation-reserve-panel{
        position:static;
        order:-1;
    }
}
@media (max-width:760px){
    .ip-accommodation-booking-topbar{
        align-items:flex-start;
    }
    .ip-accommodation-booking-header h1{
        font-size:clamp(1.9rem,11vw,3.1rem);
    }
    .ip-accommodation-booking-gallery,
    .ip-accommodation-booking-gallery img,
    .ip-accommodation-booking-gallery-fallback{
        min-height:320px;
        border-radius:24px;
    }
    .ip-accommodation-gallery-overlay{
        left:18px;
        bottom:18px;
    }
    .ip-accommodation-gallery-overlay strong{
        font-size:clamp(1.5rem,9vw,2.5rem);
    }
    .ip-accommodation-booking-tabs{
        margin-top:12px;
        border-radius:18px;
        padding:8px;
    }
    .ip-accommodation-booking-tabs a{
        min-height:34px;
        padding:7px 10px;
        font-size:.78rem;
    }
    .ip-accommodation-booking-card,
    .ip-accommodation-reserve-card{
        border-radius:22px;
        padding:18px;
    }
    .ip-accommodation-feature-list,
    .ip-accommodation-amenities-grid,
    .ip-accommodation-info-grid{
        grid-template-columns:1fr;
    }
    .ip-accommodation-single-map-shell-v3 .ip-map-single{
        height:340px;
        min-height:340px;
    }
}
@media (max-width:460px){
    .ip-accommodation-booking-actions,
    .ip-accommodation-mini-action,
    .ip-accommodation-mini-cta{
        width:100%;
        justify-content:center;
    }
    .ip-accommodation-booking-subline{
        display:grid;
        gap:5px;
    }
    .ip-accommodation-booking-subline span + span:before{
        display:none;
    }
}

/* v2.0.289 - ficha de alojamiento: datos integrados dentro del hero */
.ip-accommodation-booking-hero{
    padding:clamp(16px,2.5vw,28px) 0 0;
}
.ip-accommodation-booking-gallery{
    margin-top:0;
}
.ip-accommodation-gallery-overlay{
    left:clamp(18px,4vw,52px);
    right:clamp(18px,4vw,52px);
    bottom:clamp(18px,4vw,46px);
    max-width:min(860px,calc(100% - 36px));
    gap:10px;
}
.ip-accommodation-gallery-overlay .ip-accommodation-gallery-type{
    width:max-content;
    max-width:100%;
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:7px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    color:var(--ip-ink);
    font-size:.74rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.055em;
    text-decoration:none;
    box-shadow:0 12px 26px rgba(0,0,0,.16);
}
.ip-accommodation-gallery-overlay .ip-accommodation-gallery-type:hover{
    background:var(--ip-lime);
    color:var(--ip-ink);
}
.ip-accommodation-gallery-overlay h1{
    max-width:820px;
    margin:0;
    color:#fff;
    font-size:clamp(2.2rem,5.6vw,5.6rem);
    line-height:.88;
    letter-spacing:-.085em;
    text-shadow:0 22px 54px rgba(0,0,0,.48);
}
.ip-accommodation-gallery-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 12px;
    max-width:760px;
    color:rgba(255,255,255,.9);
    font-size:clamp(.9rem,1.3vw,1.05rem);
    line-height:1.35;
    text-shadow:0 10px 24px rgba(0,0,0,.36);
}
.ip-accommodation-gallery-meta span{
    display:inline-flex;
    align-items:center;
    gap:7px;
}
.ip-accommodation-gallery-meta span + span:before{
    content:"";
    width:5px;
    height:5px;
    border-radius:999px;
    background:rgba(255,255,255,.62);
}
.ip-accommodation-gallery-actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
    margin-top:6px;
}
.ip-accommodation-gallery-actions .ip-accommodation-mini-action,
.ip-accommodation-gallery-actions .ip-accommodation-mini-cta{
    min-height:44px;
    border-radius:999px;
    box-shadow:0 16px 34px rgba(0,0,0,.22);
}
.ip-accommodation-gallery-actions .ip-accommodation-mini-action{
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(10px);
}
.ip-accommodation-booking-gallery:after{
    background:linear-gradient(180deg,rgba(7,19,22,.02) 0%,rgba(7,19,22,.14) 38%,rgba(7,19,22,.74) 100%);
}
.ip-accommodation-booking-gallery.no-image .ip-accommodation-booking-gallery-fallback span,
.ip-accommodation-booking-gallery.no-image .ip-accommodation-booking-gallery-fallback strong{
    display:none;
}
@media (max-width:760px){
    .ip-accommodation-booking-hero{
        padding-top:14px;
    }
    .ip-accommodation-gallery-overlay{
        left:18px;
        right:18px;
        bottom:18px;
        max-width:calc(100% - 36px);
    }
    .ip-accommodation-gallery-overlay h1{
        font-size:clamp(2rem,11vw,3.6rem);
    }
    .ip-accommodation-gallery-meta{
        display:grid;
        gap:5px;
    }
    .ip-accommodation-gallery-meta span + span:before{
        display:none;
    }
    .ip-accommodation-gallery-actions{
        width:100%;
    }
    .ip-accommodation-gallery-actions .ip-accommodation-mini-action,
    .ip-accommodation-gallery-actions .ip-accommodation-mini-cta{
        width:auto;
    }
}
@media (max-width:460px){
    .ip-accommodation-gallery-actions .ip-accommodation-mini-action,
    .ip-accommodation-gallery-actions .ip-accommodation-mini-cta{
        width:100%;
        justify-content:center;
    }
}


/* v2.0.289 - hero alojamiento más bajo, dirección integrada y CTA a la derecha */
.ip-accommodation-booking-gallery,
.ip-accommodation-booking-gallery img,
.ip-accommodation-booking-gallery-fallback{
    min-height:clamp(290px,36vw,460px);
}
.ip-accommodation-gallery-overlay{
    max-width:none;
    min-height:clamp(170px,21vw,270px);
    padding-right:clamp(210px,24vw,330px);
    align-content:end;
}
.ip-accommodation-gallery-meta{
    max-width:min(620px,100%);
}
.ip-accommodation-gallery-meta span,
.ip-accommodation-gallery-address{
    width:max-content;
    max-width:100%;
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:8px 14px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    color:var(--ip-ink);
    font-size:.78rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.04em;
    box-shadow:0 12px 26px rgba(0,0,0,.16);
    text-shadow:none;
}
.ip-accommodation-gallery-address:before{
    content:"📍";
    margin-right:7px;
    font-size:.9em;
}
.ip-accommodation-gallery-meta span + span:before{
    display:none;
}
.ip-accommodation-gallery-actions{
    position:absolute;
    right:0;
    bottom:0;
    justify-content:flex-end;
    margin-top:0;
}
.ip-accommodation-gallery-actions .ip-accommodation-mini-cta{
    min-width:clamp(210px,20vw,290px);
}
@media (max-width:1024px){
    .ip-accommodation-gallery-overlay{
        padding-right:0;
        min-height:auto;
    }
    .ip-accommodation-gallery-actions{
        position:static;
        justify-content:flex-start;
        margin-top:8px;
    }
    .ip-accommodation-gallery-actions .ip-accommodation-mini-cta{
        min-width:0;
    }
}
@media (max-width:760px){
    .ip-accommodation-booking-gallery,
    .ip-accommodation-booking-gallery img,
    .ip-accommodation-booking-gallery-fallback{
        min-height:300px;
    }
    .ip-accommodation-gallery-meta span,
    .ip-accommodation-gallery-address{
        width:auto;
        max-width:100%;
        font-size:.72rem;
        line-height:1.2;
        white-space:normal;
    }
}


/* v2.0.289 - hero de alojamiento más bajo y dirección sin badge */
.ip-accommodation-booking-gallery,
.ip-accommodation-booking-gallery img,
.ip-accommodation-booking-gallery-fallback{
    height:clamp(250px,30vw,390px);
    min-height:0;
}
.ip-accommodation-gallery-overlay{
    min-height:auto;
    bottom:clamp(16px,3vw,34px);
}
.ip-accommodation-gallery-meta{
    margin-top:-2px;
}
.ip-accommodation-gallery-meta span,
.ip-accommodation-gallery-address{
    width:auto;
    display:inline-flex;
    min-height:0;
    padding:0;
    border-radius:0;
    background:transparent;
    color:rgba(255,255,255,.92);
    font-size:clamp(.9rem,1.15vw,1.02rem);
    font-weight:800;
    text-transform:none;
    letter-spacing:0;
    box-shadow:none;
    text-shadow:0 10px 24px rgba(0,0,0,.38);
}
.ip-accommodation-gallery-address:before{
    content:"📍";
    margin-right:7px;
    font-size:.95em;
}
@media (max-width:760px){
    .ip-accommodation-booking-gallery,
    .ip-accommodation-booking-gallery img,
    .ip-accommodation-booking-gallery-fallback{
        height:280px;
        min-height:0;
    }
    .ip-accommodation-gallery-meta span,
    .ip-accommodation-gallery-address{
        font-size:.84rem;
        line-height:1.25;
    }
}
@media (max-width:460px){
    .ip-accommodation-booking-gallery,
    .ip-accommodation-booking-gallery img,
    .ip-accommodation-booking-gallery-fallback{
        height:260px;
    }
}

/* v2.0.289 - tipo de alojamiento como solapa superior derecha del hero */
.ip-accommodation-hero-type-tab{
    position:absolute;
    top:0;
    right:clamp(16px,3vw,32px);
    z-index:3;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:10px 18px;
    border-radius:0 0 18px 18px;
    background:rgba(255,255,255,.94);
    color:var(--ip-ink);
    font-size:.78rem;
    font-weight:950;
    line-height:1;
    letter-spacing:.06em;
    text-transform:uppercase;
    text-decoration:none;
    box-shadow:0 16px 38px rgba(0,0,0,.18);
    backdrop-filter:blur(12px);
}
.ip-accommodation-hero-type-tab:hover{
    background:var(--ip-lime);
    color:var(--ip-ink);
    transform:translateY(2px);
}
@media (max-width:760px){
    .ip-accommodation-hero-type-tab{
        top:0;
        right:12px;
        min-height:34px;
        padding:8px 12px;
        border-radius:0 0 14px 14px;
        font-size:.68rem;
    }
}


/* v2.0.289 - solapa del tipo pegada al borde superior del hero */
.ip-accommodation-booking-gallery .ip-accommodation-hero-type-tab{
    top:0;
}
@media (max-width:760px){
    .ip-accommodation-booking-gallery .ip-accommodation-hero-type-tab{
        top:0;
    }
}

/* v2.0.289 - categoría manual del alojamiento en el hero tras la dirección */


/* v2.0.289 - hero alojamiento: categoría manual antes de dirección */
.ip-accommodation-gallery-line{
    display:inline-flex;
    align-items:center;
    gap:0;
}
.ip-accommodation-gallery-line:before{
    display:none !important;
    content:none !important;
}
.ip-accommodation-gallery-overlay h1{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-start;
    gap:clamp(7px,.9vw,13px);
}
.ip-accommodation-hero-category-inline{
    display:inline-flex;
    align-items:center;
    align-self:flex-start;
    max-width:100%;
    margin:0;
    padding:.28em .58em;
    border-radius:999px;
    background:rgba(255,255,255,.18);
    border:1px solid rgba(255,255,255,.28);
    color:#fff;
    font-size:clamp(.78rem,1.35vw,1.12rem);
    line-height:1;
    font-weight:950;
    letter-spacing:0;
    text-shadow:0 8px 22px rgba(0,0,0,.26);
    transform:translateY(-.28em);
}
.ip-accommodation-gallery-address-line{
    gap:8px!important;
}
.ip-accommodation-gallery-address-line b{
    flex:0 0 auto;
    font-size:1.05em;
    line-height:1;
}
.ip-accommodation-gallery-address-line em{
    font-style:normal;
    overflow-wrap:anywhere;
}
.ip-accommodation-address-map-link{
    color:inherit;
    text-decoration:none;
    cursor:pointer;
    transition:background-color .2s ease,box-shadow .2s ease;
}
.ip-accommodation-address-map-link:hover,
.ip-accommodation-address-map-link:focus-visible{
    color:#fff;
    background:rgba(29,160,193,.7);
    box-shadow:0 0 0 3px rgba(255,255,255,.22);
    outline:none;
}
.ip-accommodation-map-card-v3{
    scroll-margin-top:140px;
}
@media (max-width:640px){
    .ip-accommodation-hero-category-inline{
        font-size:.74rem;
        padding:.25em .5em;
        transform:translateY(-.18em);
    }
    .ip-accommodation-gallery-address-line{
        align-items:flex-start!important;
    }
}

/* v2.0.289 - ficha alojamiento: otros alojamientos, contenido directo y datos laterales */
.ip-accommodation-other-section{
    padding-top:clamp(18px,3vw,34px);
    padding-bottom:clamp(12px,2vw,22px);
}
.ip-accommodation-other-head{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
}
.ip-accommodation-other-head h2{
    margin:6px 0 0;
    color:var(--ip-ink);
    font-size:clamp(1.55rem,3vw,2.45rem);
    line-height:.98;
    letter-spacing:-.065em;
}
.ip-accommodation-other-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}
.ip-accommodation-other-grid .ip-accommodation-card{
    border-radius:24px;
    box-shadow:0 14px 38px rgba(7,19,22,.09);
}
.ip-accommodation-other-grid .ip-accommodation-card .ip-card-media.ip-accommodation-card-media{
    aspect-ratio:16/12;
}
.ip-accommodation-other-grid .ip-accommodation-card-button{
    min-height:46px;
    border-radius:0 0 24px 24px;
}
.ip-accommodation-booking-hero{
    padding-top:clamp(8px,1.5vw,16px);
}
.ip-accommodation-detail-section{
    padding-top:clamp(22px,3vw,38px);
}
.ip-accommodation-detail-layout-v4{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(300px,380px);
    gap:clamp(22px,3vw,34px);
    align-items:start;
}
.ip-accommodation-detail-content-v4{
    min-width:0;
}
.ip-accommodation-main-text{
    color:var(--ip-ink);
    font-size:1.04rem;
    line-height:1.78;
}
.ip-accommodation-main-text > :first-child{
    margin-top:0;
}
.ip-accommodation-main-text > :last-child{
    margin-bottom:0;
}
.ip-accommodation-clean-block{
    margin-top:clamp(26px,3.5vw,42px);
    padding-top:clamp(22px,3vw,34px);
    border-top:1px solid rgba(16,97,106,.13);
}
.ip-accommodation-clean-block h2{
    margin:0 0 16px;
    color:var(--ip-ink);
    font-size:clamp(1.45rem,2.7vw,2.25rem);
    line-height:1;
    letter-spacing:-.06em;
}
.ip-accommodation-map-address{
    margin:-6px 0 16px;
    color:var(--ip-muted);
    line-height:1.55;
    display:flex;
    align-items:flex-start;
    gap:7px;
}
.ip-accommodation-map-title-name{
    color:var(--ip-lime);
}

/* Home-only reveal and parallax motion. */
body.home.ip-home-motion main,
body.front-page.ip-home-motion main{
    overflow-x:clip;
}
body.home.ip-home-motion [data-ip-home-reveal],
body.front-page.ip-home-motion [data-ip-home-reveal]{
    opacity:0;
    transition:opacity .82s cubic-bezier(.22,1,.36,1),transform .82s cubic-bezier(.22,1,.36,1);
}
body.home.ip-home-motion [data-ip-home-reveal-direction="left"],
body.front-page.ip-home-motion [data-ip-home-reveal-direction="left"]{
    transform:translate3d(-68px,18px,0) scale(.99);
}
body.home.ip-home-motion [data-ip-home-reveal-direction="right"],
body.front-page.ip-home-motion [data-ip-home-reveal-direction="right"]{
    transform:translate3d(68px,18px,0) scale(.99);
}
body.home.ip-home-motion [data-ip-home-reveal].is-visible,
body.front-page.ip-home-motion [data-ip-home-reveal].is-visible{
    opacity:1;
    transform:translate3d(0,0,0) scale(1);
}
body.home.ip-home-motion [data-ip-home-reveal].is-reveal-complete,
body.front-page.ip-home-motion [data-ip-home-reveal].is-reveal-complete{
    transform:none;
    transition:none;
}
body.home.ip-home-motion [data-ip-home-parallax],
body.front-page.ip-home-motion [data-ip-home-parallax]{
    transform:translate3d(0,var(--ip-home-parallax-y,0),0);
}
body.home.ip-home-motion [data-ip-home-parallax].is-parallax-active,
body.front-page.ip-home-motion [data-ip-home-parallax].is-parallax-active,
body.home.ip-home-motion .ip-hero-content,
body.front-page.ip-home-motion .ip-hero-content{
    will-change:transform;
}
body.home.ip-home-motion .ip-hero-content,
body.front-page.ip-home-motion .ip-hero-content{
    transform:translate3d(0,var(--ip-home-hero-content-shift,0),0);
}
@media (max-width:700px){
    body.home.ip-home-motion [data-ip-home-reveal-direction="left"],
    body.front-page.ip-home-motion [data-ip-home-reveal-direction="left"]{
        transform:translate3d(-36px,14px,0) scale(.996);
    }
    body.home.ip-home-motion [data-ip-home-reveal-direction="right"],
    body.front-page.ip-home-motion [data-ip-home-reveal-direction="right"]{
        transform:translate3d(36px,14px,0) scale(.996);
    }
    body.home.ip-home-motion [data-ip-home-reveal].is-visible,
    body.front-page.ip-home-motion [data-ip-home-reveal].is-visible{
        transform:translate3d(0,0,0) scale(1);
    }
}
@media (prefers-reduced-motion:reduce){
    body.home.ip-home-motion [data-ip-home-reveal],
    body.front-page.ip-home-motion [data-ip-home-reveal],
    body.home.ip-home-motion [data-ip-home-parallax],
    body.front-page.ip-home-motion [data-ip-home-parallax],
    body.home.ip-home-motion .ip-hero-content,
    body.front-page.ip-home-motion .ip-hero-content{
        opacity:1!important;
        transform:none!important;
        transition:none!important;
        will-change:auto!important;
    }
}
.ip-accommodation-data-sidebar{
    position:sticky;
    top:calc(var(--ip-header-height, 86px) + 18px);
}
.ip-accommodation-data-card{
    overflow:hidden;
    border:1px solid rgba(16,97,106,.13);
    border-radius:28px;
    background:linear-gradient(180deg,#fff 0%,rgba(238,248,247,.75) 100%);
    box-shadow:0 22px 62px rgba(7,19,22,.11);
    padding:clamp(20px,2.6vw,28px);
}
.ip-accommodation-data-card h2{
    margin:0 0 18px;
    color:var(--ip-ink);
    font-size:clamp(1.35rem,2.5vw,1.85rem);
    line-height:1.02;
    letter-spacing:-.055em;
}
.ip-accommodation-data-list{
    display:grid;
    gap:0;
    border-top:1px solid rgba(16,97,106,.12);
}
.ip-accommodation-data-list div{
    display:grid;
    gap:4px;
    padding:14px 0;
    border-bottom:1px solid rgba(16,97,106,.12);
}
.ip-accommodation-data-list span{
    color:var(--ip-muted);
    font-size:.78rem;
    font-weight:900;
    line-height:1.2;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.ip-accommodation-data-list strong{
    color:var(--ip-ink);
    font-size:.98rem;
    line-height:1.35;
}
.ip-accommodation-data-list a{
    color:var(--ip-sea-dark);
    text-decoration:none;
}
.ip-accommodation-data-list a:hover{
    color:var(--ip-ink);
}
.ip-accommodation-data-cta{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:52px;
    margin-top:18px;
    padding:0 18px;
    border-radius:18px;
    background:var(--ip-lime);
    color:var(--ip-ink);
    font-weight:950;
    text-align:center;
    text-decoration:none;
    box-shadow:0 16px 34px rgba(163,230,53,.28);
    transition:.22s ease;
}
.ip-accommodation-data-cta:hover{
    color:var(--ip-ink);
    transform:translateY(-2px);
    box-shadow:0 22px 46px rgba(163,230,53,.34);
}
.ip-accommodation-booking-tabs{
    display:none!important;
}
@media (max-width:1100px){
    .ip-accommodation-other-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .ip-accommodation-detail-layout-v4{
        grid-template-columns:1fr;
    }
    .ip-accommodation-data-sidebar{
        position:static;
    }
}
@media (max-width:640px){
    .ip-accommodation-other-head{
        display:block;
        margin-bottom:14px;
    }
    .ip-accommodation-other-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:12px;
    }
    .ip-accommodation-other-grid .ip-accommodation-card{
        border-radius:20px;
    }
    .ip-accommodation-other-grid .ip-accommodation-card-button{
        min-height:40px;
        border-radius:0 0 20px 20px;
    }
    .ip-accommodation-detail-section{
        padding-top:22px;
    }
    .ip-accommodation-data-card{
        border-radius:22px;
        padding:18px;
    }
}

/* v2.0.289 - ficha alojamiento: otros alojamientos antes del footer, más separación en hero y botón llamada */
.ip-accommodation-gallery-overlay h1{
    margin-bottom:clamp(8px,1.2vw,14px);
}
.ip-accommodation-gallery-meta{
    margin-top:0;
}
.ip-accommodation-other-section{
    padding-top:clamp(32px,5vw,64px);
    padding-bottom:clamp(42px,6vw,78px);
}
.ip-accommodation-detail-section + .ip-accommodation-other-section{
    margin-top:clamp(12px,2vw,24px);
    border-top:1px solid rgba(16,97,106,.10);
}
.ip-accommodation-data-call{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:50px;
    margin-top:10px;
    padding:0 18px;
    border:1px solid rgba(16,97,106,.18);
    border-radius:18px;
    background:#fff;
    color:var(--ip-ink);
    font-weight:950;
    text-align:center;
    text-decoration:none;
    box-shadow:0 12px 28px rgba(7,19,22,.07);
    transition:.22s ease;
}
.ip-accommodation-data-call:hover{
    color:var(--ip-sea-dark);
    transform:translateY(-2px);
    box-shadow:0 18px 38px rgba(7,19,22,.11);
}
@media (max-width:760px){
    .ip-accommodation-gallery-overlay h1{
        margin-bottom:8px;
    }
    .ip-accommodation-other-section{
        padding-top:30px;
        padding-bottom:46px;
    }
}


/* v2.0.289 - sección Alojamientos en Peñíscola en la home */
.ip-home-accommodations{
    padding-top:clamp(34px,5vw,64px);
    padding-bottom:clamp(34px,5vw,68px);
    background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(236,248,248,.72) 100%);
}
.ip-home-accommodations-head{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:22px;
}
.ip-home-accommodations-head p{
    margin:10px 0 0;
    max-width:720px;
    color:var(--ip-muted);
    font-weight:700;
    line-height:1.55;
}
.ip-home-accommodations-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}
.ip-home-accommodations-grid .ip-accommodation-card .ip-card-media.ip-accommodation-card-media{
    min-height:220px;
}
.ip-home-accommodations-grid .ip-accommodation-card-button{
    min-height:48px;
}
@media (max-width:1024px){
    .ip-home-accommodations-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
    .ip-home-accommodations{padding-top:28px;padding-bottom:42px;}
    .ip-home-accommodations-head{display:grid;gap:16px;margin-bottom:16px;}
    .ip-home-accommodations-cta{width:100%;justify-content:center;text-align:center;}
    .ip-home-accommodations-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
    .ip-home-accommodations-grid .ip-accommodation-card .ip-card-media.ip-accommodation-card-media{min-height:170px;}
    .ip-home-accommodations-grid .ip-accommodation-title-overlay{padding:0 10px 10px;}
    .ip-home-accommodations-grid .ip-accommodation-title-overlay h3{font-size:.92rem;line-height:1.08;}
    .ip-home-accommodations-grid .ip-accommodation-media-chip{top:8px;right:8px;font-size:.58rem;padding:6px 8px;max-width:calc(100% - 16px);}
    .ip-home-accommodations-grid .ip-accommodation-card-button{min-height:42px;font-size:.72rem;padding:10px 8px;}
}


/* v2.0.289 - ajustes home alojamientos y contenido ficha */
.ip-home-accommodations-mobile-cta{
    display:none;
}
.ip-accommodation-media-chip{
    box-sizing:border-box;
    max-width:calc(100% - 28px);
    white-space:normal;
    overflow-wrap:break-word;
    text-align:center;
    line-height:1.08;
}
.ip-accommodation-main-text{
    position:relative;
    overflow:hidden;
    padding:clamp(22px,3.2vw,38px);
    border:1px solid rgba(16,97,106,.12);
    border-radius:30px;
    background:linear-gradient(180deg,#fff 0%,rgba(247,252,252,.94) 100%);
    box-shadow:0 20px 56px rgba(7,19,22,.08);
}
.ip-accommodation-main-text:before{
    content:"";
    position:absolute;
    inset:0 0 auto 0;
    height:6px;
    background:linear-gradient(90deg,var(--ip-lime),var(--ip-sea));
    pointer-events:none;
}
.ip-accommodation-main-text > *{
    position:relative;
    z-index:1;
}
.ip-accommodation-main-text h2,
.ip-accommodation-main-text h3,
.ip-accommodation-main-text h4{
    margin:clamp(22px,3vw,34px) 0 12px;
    color:var(--ip-ink);
    line-height:1.04;
    letter-spacing:-.055em;
}
.ip-accommodation-main-text h2{
    font-size:clamp(1.55rem,2.7vw,2.45rem);
}
.ip-accommodation-main-text h3{
    font-size:clamp(1.28rem,2.2vw,1.8rem);
}
.ip-accommodation-main-text h4{
    font-size:1.12rem;
    letter-spacing:-.035em;
}
.ip-accommodation-main-text h2:first-child,
.ip-accommodation-main-text h3:first-child,
.ip-accommodation-main-text h4:first-child{
    margin-top:0;
}
.ip-accommodation-main-text p{
    margin:0 0 1.05em;
    color:rgba(7,19,22,.82);
}
.ip-accommodation-main-text p:first-of-type{
    font-size:clamp(1.06rem,1.5vw,1.18rem);
    line-height:1.74;
    color:var(--ip-ink);
}
.ip-accommodation-main-text a{
    color:var(--ip-sea-dark);
    font-weight:900;
    text-decoration-thickness:2px;
    text-underline-offset:4px;
}
.ip-accommodation-main-text ul,
.ip-accommodation-main-text ol{
    display:grid;
    gap:10px;
    margin:16px 0 22px;
    padding-left:1.25rem;
}
.ip-accommodation-main-text li{
    padding-left:4px;
    color:rgba(7,19,22,.84);
}
.ip-accommodation-main-text blockquote{
    margin:24px 0;
    padding:18px 20px;
    border-left:5px solid var(--ip-lime);
    border-radius:0 20px 20px 0;
    background:rgba(236,248,248,.78);
    color:var(--ip-ink);
    font-weight:800;
}
.ip-accommodation-main-text figure{
    margin:24px 0;
}
.ip-accommodation-main-text img{
    height:auto;
    border-radius:22px;
    box-shadow:0 16px 40px rgba(7,19,22,.10);
}
@media (min-width:641px){
    .ip-home-accommodations-head .ip-home-accommodations-cta{
        display:inline-flex;
    }
}
@media (max-width:640px){
    .ip-home-accommodations-head .ip-home-accommodations-cta{
        display:none!important;
    }
    .ip-home-accommodations-mobile-cta{
        display:flex;
        margin-top:16px;
    }
    .ip-home-accommodations-mobile-cta .ip-button-lime{
        width:100%;
        justify-content:center;
        text-align:center;
    }
    .ip-home-accommodations-grid .ip-accommodation-media-chip{
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
        line-height:1;
    }
    .ip-accommodation-main-text{
        border-radius:24px;
        padding:24px 18px;
        font-size:1rem;
    }
}

/* v2.0.289 - corrección badge home desktop y CTA móvil ficha alojamiento */
@media (min-width:1025px){
    .ip-home-accommodations-grid .ip-accommodation-media-chip{
        left:auto;
        right:18px;
        top:16px;
        max-width:min(68%,160px);
        min-height:28px;
        padding:7px 10px;
        border-radius:999px;
        font-size:clamp(.56rem,.62vw,.68rem);
        line-height:1.05;
        white-space:normal;
        overflow:visible;
        text-overflow:clip;
        overflow-wrap:break-word;
        word-break:normal;
        text-align:center;
        justify-content:center;
    }
}
.ip-accommodation-mobile-availability-wrap{
    display:none;
}
@media (max-width:760px){
    .ip-accommodation-gallery-actions .ip-accommodation-mini-cta{
        display:none!important;
    }
    .ip-accommodation-mobile-availability-wrap{
        display:block;
        margin-top:12px;
    }
    .ip-accommodation-mobile-availability-wrap .ip-accommodation-mobile-availability{
        display:flex;
        width:100%;
        min-height:52px;
        align-items:center;
        justify-content:center;
        border-radius:18px;
        box-shadow:0 16px 34px rgba(29,160,193,.28);
    }
}



/* v2.0.289 - home alojamientos sin badge de tipo */
.ip-home-accommodations .ip-accommodation-media-chip{
    display:none!important;
}


/* v2.0.289 - tarjetas tipos alojamiento sin degradado y logo en marca de agua */
.ip-accommodation-type-card.ip-accommodation-type-card--simple{
    position:relative;
    overflow:hidden;
    justify-content:flex-start;
    text-align:left;
    padding:24px 96px 24px 24px;
    background:#fff;
    border-color:rgba(16,97,106,.13);
}
.ip-accommodation-type-card.ip-accommodation-type-card--simple:before{
    content:none!important;
    display:none!important;
    background:none!important;
}
.ip-accommodation-type-card.ip-accommodation-type-card--simple:after{
    content:"";
    position:absolute;
    top:50%;
    right:-42%;
    width:86%;
    height:125%;
    transform:translateY(-50%);
    background-image:url('assets/img/logo-info-peniscola-icon.png');
    background-repeat:no-repeat;
    background-size:contain;
    background-position:center right;
    opacity:.055;
    pointer-events:none;
    z-index:0;
}
.ip-accommodation-type-card.ip-accommodation-type-card--simple span{
    position:relative;
    z-index:1;
    text-align:left;
}
.ip-accommodation-type-card.ip-accommodation-type-card--simple:hover{
    background:#fff;
}
@media (max-width:900px){
    .ip-accommodation-type-card.ip-accommodation-type-card--simple{
        padding:20px 58px 20px 18px;
    }
    .ip-accommodation-type-card.ip-accommodation-type-card--simple:after{
        right:-52%;
        width:105%;
        opacity:.045;
    }
}
@media (max-width:640px){
    .ip-accommodation-type-card.ip-accommodation-type-card--simple{
        padding:16px 38px 16px 14px;
    }
    .ip-accommodation-type-card.ip-accommodation-type-card--simple:after{
        right:-66%;
        width:128%;
        opacity:.04;
    }
}


/* v2.0.289 - tarjetas tipos alojamiento: solo isotipo del logo sin texto */
.ip-accommodation-type-card.ip-accommodation-type-card--simple:after{
    background-image:url('assets/img/logo-info-peniscola-icon.png')!important;
}

/* v2.0.289 - centrar texto en tarjetas de tipos de alojamiento */
.ip-accommodation-type-card.ip-accommodation-type-card--simple{
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:24px 56px;
}
.ip-accommodation-type-card.ip-accommodation-type-card--simple span{
    display:block;
    width:100%;
    max-width:100%;
    margin:0 auto;
    text-align:center;
}
@media (max-width:900px){
    .ip-accommodation-type-card.ip-accommodation-type-card--simple{
        padding:20px 36px;
    }
}
@media (max-width:640px){
    .ip-accommodation-type-card.ip-accommodation-type-card--simple{
        padding:16px 18px;
    }
}


/* POI sin imagen destacada: hero blanco con isotipo centrado a la derecha */
.ip-page-hero-card.is-poi-placeholder-hero{
    background-color:#fff;
    background-size:cover;
    background-position:center center;
    border:1px solid rgba(7,19,22,.08);
}
.ip-page-hero-card.is-poi-placeholder-hero::before{
    background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.96) 44%,rgba(255,255,255,.70) 100%);
    opacity:1;
}
.ip-page-hero-card.is-poi-placeholder-hero .ip-page-hero-image-accent{
    display:none;
}
.ip-page-hero-card.is-poi-placeholder-hero .ip-title-lg,
.ip-page-hero-card.is-poi-placeholder-hero .ip-lead{
    color:var(--ip-ink);
}
.ip-page-hero-card.is-poi-placeholder-hero .ip-page-breadcrumbs,
.ip-page-hero-card.is-poi-placeholder-hero .ip-page-breadcrumbs a{
    color:rgba(7,19,22,.62);
}
@media (max-width:700px){
    .ip-page-hero-card.is-poi-placeholder-hero{
        background-position:right center;
    }
    .ip-page-hero-card.is-poi-placeholder-hero::before{
        background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.94) 62%,rgba(255,255,255,.62) 100%);
    }
}

/* v2.0.289 - Hero visible para POIs sin imagen destacada */
.single-ip_poi .ip-page-hero-clean .ip-page-hero-card.is-poi-placeholder-hero.has-image{
  min-height:clamp(250px,32vw,390px)!important;
  padding:clamp(74px,9vw,118px) clamp(22px,4vw,58px) clamp(30px,4.5vw,54px)!important;
  border-radius:clamp(28px,4vw,44px)!important;
  overflow:hidden!important;
  background-color:#fff!important;
  background-image:var(--ip-page-hero-image)!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  background-position:center right!important;
  border:1px solid rgba(7,19,22,.08)!important;
  box-shadow:0 24px 70px rgba(7,19,22,.08)!important;
}
.single-ip_poi .ip-page-hero-clean .ip-page-hero-card.is-poi-placeholder-hero.has-image::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 42%,rgba(255,255,255,.70) 76%,rgba(255,255,255,.30) 100%)!important;
}
.single-ip_poi .ip-page-hero-clean .ip-page-hero-card.is-poi-placeholder-hero.has-image::before{
  left:clamp(22px,4vw,58px)!important;
  bottom:clamp(22px,3.5vw,42px)!important;
  width:min(190px,32vw)!important;
  height:8px!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,var(--ip-sea),var(--ip-lime))!important;
  opacity:1!important;
  z-index:2!important;
}
.single-ip_poi .ip-page-hero-clean .ip-page-hero-card.is-poi-placeholder-hero.has-image .ip-page-hero-content,
.single-ip_poi .ip-page-hero-clean .ip-page-hero-card.is-poi-placeholder-hero.has-image .ip-hero-corner-tab{
  position:relative!important;
  z-index:3!important;
}
.single-ip_poi .ip-page-hero-clean .ip-page-hero-card.is-poi-placeholder-hero.has-image .ip-page-hero-image-accent{
  display:none!important;
}
.single-ip_poi .ip-page-hero-clean .ip-page-hero-card.is-poi-placeholder-hero.has-image .ip-title-lg{
  max-width:min(720px,76%)!important;
  color:var(--ip-ink)!important;
}
@media (max-width:700px){
  .single-ip_poi .ip-page-hero-clean .ip-page-hero-card.is-poi-placeholder-hero.has-image{
    min-height:250px!important;
    padding:76px 22px 32px!important;
    border-radius:30px!important;
    background-size:cover!important;
    background-position:center right!important;
  }
  .single-ip_poi .ip-page-hero-clean .ip-page-hero-card.is-poi-placeholder-hero.has-image::after{
    background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.97) 54%,rgba(255,255,255,.58) 100%)!important;
  }
  .single-ip_poi .ip-page-hero-clean .ip-page-hero-card.is-poi-placeholder-hero.has-image .ip-title-lg{
    max-width:82%!important;
  }
}


/* v2.0.289 - POI sin imagen: mismo hero que con imagen destacada, con fondo blanco e isotipo a la derecha */
.single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image{
  display:flex!important;
  align-items:flex-end!important;
  min-height:clamp(340px,44vw,540px)!important;
  padding:clamp(74px,7vw,96px) clamp(24px,4vw,46px) clamp(24px,4vw,46px)!important;
  border:0!important;
  border-radius:34px!important;
  overflow:hidden!important;
  color:var(--ip-ink)!important;
  background-color:#fff!important;
  background-image:var(--ip-page-hero-image)!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  background-position:center right!important;
  box-shadow:var(--ip-shadow)!important;
}
.single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  width:auto!important;
  height:auto!important;
  border-radius:inherit!important;
  z-index:1!important;
  background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 48%,rgba(255,255,255,.78) 74%,rgba(255,255,255,.46) 100%)!important;
  opacity:1!important;
}
.single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:clamp(24px,4vw,46px)!important;
  right:auto!important;
  bottom:clamp(18px,3vw,28px)!important;
  width:min(190px,32vw)!important;
  height:8px!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,var(--ip-sea),var(--ip-lime))!important;
  z-index:2!important;
}
.single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image .ip-page-hero-content{
  position:relative!important;
  z-index:3!important;
  max-width:980px!important;
  padding-top:0!important;
}
.single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image .ip-title-lg{
  color:var(--ip-ink)!important;
  text-shadow:none!important;
  max-width:min(760px,78%)!important;
}
.single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image .ip-title-lg:after{
  display:none!important;
}
.single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image .ip-page-hero-image-accent{
  display:none!important;
}
.single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image .ip-hero-corner-tab{
  position:absolute!important;
  top:0!important;
  right:clamp(18px,3vw,34px)!important;
  left:auto!important;
  z-index:10!important;
  transform:none!important;
}
@media (max-width:900px){
  .single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image{
    min-height:380px!important;
    border-radius:28px!important;
    padding:72px 28px 28px!important;
  }
}
@media (max-width:640px){
  .single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image{
    min-height:330px!important;
    border-radius:26px!important;
    padding:66px 20px 24px!important;
    background-position:center right!important;
  }
  .single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image::before{
    background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 58%,rgba(255,255,255,.70) 100%)!important;
  }
  .single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image .ip-title-lg{
    max-width:82%!important;
    font-size:clamp(2.2rem,16vw,4.1rem)!important;
  }
  .single-ip_poi .ip-page-hero-overlay .ip-page-hero-card.is-overlay-hero.is-poi-placeholder-hero.has-image .ip-hero-corner-tab{
    right:18px!important;
  }
}


/* Landing Alojamientos: mapa de localización */
.ip-accommodation-location-section{
    padding-bottom: clamp(42px, 7vw, 86px);
}
.ip-accommodation-location-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:22px;
    margin-bottom:20px;
}
.ip-accommodation-location-head p{
    max-width:820px;
    margin:10px 0 0;
    color:var(--ip-muted);
    font-weight:720;
    line-height:1.55;
}
.ip-accommodation-location-filter{
    min-width:260px;
    display:grid;
    gap:8px;
    padding:12px;
    border:1px solid rgba(7,19,22,.09);
    border-radius:22px;
    background:#fff;
    box-shadow:0 16px 34px rgba(7,19,22,.08);
}
.ip-accommodation-location-filter span{
    font-size:.74rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:950;
    color:var(--ip-muted);
}
.ip-accommodation-location-filter select{
    width:100%;
    border:0;
    border-radius:16px;
    background:rgba(229,245,244,.85);
    color:var(--ip-ink);
    font-weight:900;
    min-height:44px;
    padding:0 14px;
    outline:none;
}
.ip-accommodation-location-shell{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(280px,360px);
    gap:16px;
    align-items:stretch;
}
.ip-accommodation-location-map{
    min-height:560px;
    border-radius:34px;
    overflow:hidden;
    background:#fff;
    border:1px solid rgba(7,19,22,.08);
    box-shadow:0 26px 60px rgba(7,19,22,.11);
    z-index:1;
}
.ip-accommodation-location-panel{
    border-radius:34px;
    background:#fff;
    border:1px solid rgba(7,19,22,.08);
    box-shadow:0 26px 60px rgba(7,19,22,.09);
    padding:18px;
    max-height:560px;
    overflow:auto;
}
.ip-accommodation-location-panel h3{
    margin:0 0 14px;
    font-size:1.2rem;
    letter-spacing:-.04em;
    color:var(--ip-ink);
}
.ip-accommodation-location-list{
    display:grid;
    gap:10px;
}
.ip-accommodation-location-item{
    display:grid;
    gap:4px;
    padding:13px 14px;
    border-radius:20px;
    background:linear-gradient(135deg,rgba(229,245,244,.95),#fff);
    border:1px solid rgba(7,19,22,.07);
    color:var(--ip-ink);
    text-decoration:none;
}
.ip-accommodation-location-item span{
    width:max-content;
    max-width:100%;
    padding:4px 9px;
    border-radius:999px;
    background:var(--ip-lime);
    color:#071316;
    font-size:.68rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.ip-accommodation-location-item strong{
    font-size:.98rem;
    line-height:1.12;
}
.ip-accommodation-location-item small{
    color:var(--ip-muted);
    font-weight:760;
    line-height:1.35;
}
.ip-accommodation-location-empty{
    margin:0;
    color:var(--ip-muted);
    font-weight:800;
}
.ip-accommodation-location-marker{
    background:transparent;
    border:0;
}
.ip-accommodation-location-marker span{
    display:block;
    width:34px;
    height:34px;
    border-radius:50% 50% 50% 8px;
    transform:rotate(-45deg);
    background:var(--ip-lime);
    border:4px solid #fff;
    box-shadow:0 12px 26px rgba(7,19,22,.24);
    position:relative;
}
.ip-accommodation-location-marker span::after{
    content:"";
    position:absolute;
    width:9px;
    height:9px;
    border-radius:50%;
    background:#071316;
    inset:50% auto auto 50%;
    transform:translate(-50%,-50%);
}
.ip-accommodation-location-map .leaflet-popup-content-wrapper,
.ip-accommodation-single-location-map .leaflet-popup-content-wrapper{
    overflow:hidden;
    border-radius:24px;
    padding:0;
    border:1px solid rgba(7,19,22,.08);
    box-shadow:0 22px 58px rgba(7,19,22,.22);
}
.ip-accommodation-location-map .leaflet-popup-content,
.ip-accommodation-single-location-map .leaflet-popup-content{
    margin:0;
    width:318px!important;
    max-width:calc(100vw - 62px);
}
.ip-accommodation-location-map .leaflet-popup-tip,
.ip-accommodation-single-location-map .leaflet-popup-tip{
    box-shadow:0 10px 20px rgba(7,19,22,.16);
}
.ip-accommodation-leaflet-popup .leaflet-popup-close-button{
    top:9px;
    right:9px;
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    color:var(--ip-ink)!important;
    font-size:18px;
    font-weight:950;
    box-shadow:0 8px 18px rgba(7,19,22,.10);
}
.ip-accommodation-map-popup-v2{
    display:grid;
    gap:12px;
    min-width:0;
    background:#fff;
    color:var(--ip-ink);
}
.ip-accommodation-popup-head{
    display:grid;
    grid-template-columns:46px minmax(0,1fr);
    gap:12px;
    align-items:center;
    padding:16px 48px 15px 16px;
    background:
        radial-gradient(circle at 0% 0%,rgba(29,160,193,.22),transparent 58%),
        linear-gradient(135deg,rgba(238,250,250,.98),#fff);
    border-bottom:1px solid rgba(16,97,106,.10);
}
.ip-accommodation-popup-icon{
    display:grid!important;
    place-items:center;
    width:46px;
    height:46px;
    border-radius:17px;
    background:#fff;
    color:var(--ip-logo-cyan,#1da0c1)!important;
    font-size:1.2rem!important;
    line-height:1!important;
    font-weight:1000!important;
    box-shadow:0 10px 24px rgba(7,19,22,.10);
}
.ip-accommodation-popup-title{
    display:grid!important;
    gap:4px;
    min-width:0;
}
.ip-accommodation-popup-title em{
    display:block;
    color:var(--ip-logo-cyan,#1da0c1);
    font-size:.72rem;
    line-height:1.1;
    font-style:normal;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:0;
}
.ip-accommodation-popup-title strong{
    display:block!important;
    margin:0!important;
    color:var(--ip-ink)!important;
    font-size:1.12rem!important;
    line-height:1.06!important;
    letter-spacing:0;
    overflow-wrap:anywhere;
}
.ip-accommodation-popup-tags{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    padding:0 16px;
}
.ip-accommodation-popup-tags span,
.ip-accommodation-popup-tags a{
    display:inline-flex!important;
    align-items:center;
    min-height:28px;
    padding:6px 10px;
    border-radius:999px;
    background:rgba(29,160,193,.08);
    border:1px solid rgba(29,160,193,.14);
    color:var(--ip-ink)!important;
    font-size:.78rem!important;
    line-height:1!important;
    font-weight:900!important;
    text-decoration:none!important;
}
.ip-accommodation-popup-tags a:hover{
    background:rgba(29,160,193,.14);
}
.ip-accommodation-popup-info{
    display:grid;
    gap:8px;
    padding:0 16px;
}
.ip-accommodation-popup-info span{
    display:grid!important;
    gap:4px;
    padding:11px 12px;
    border-radius:16px;
    background:var(--ip-soft);
    color:var(--ip-muted)!important;
    font-size:.86rem!important;
    line-height:1.35!important;
    font-weight:760!important;
}
.ip-accommodation-popup-info b{
    color:var(--ip-ink);
    font-size:.74rem;
    line-height:1.1;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:0;
}
.ip-accommodation-popup-info em{
    font-style:normal;
    overflow-wrap:anywhere;
}
.ip-accommodation-popup-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    padding:0 16px 16px;
}
.ip-accommodation-popup-actions-single{
    grid-template-columns:1fr;
}
.ip-accommodation-popup-action{
    display:flex!important;
    align-items:center;
    justify-content:center;
    min-height:42px;
    margin:0!important;
    padding:9px 12px!important;
    border-radius:999px!important;
    font-size:.86rem!important;
    line-height:1.1!important;
    font-weight:950!important;
    text-align:center!important;
    text-decoration:none!important;
    white-space:normal;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.ip-accommodation-popup-action-primary{
    background:var(--ip-logo-cyan,#1da0c1)!important;
    color:#fff!important;
    box-shadow:0 14px 30px rgba(29,160,193,.24);
}
.ip-accommodation-popup-action-secondary{
    background:#fff!important;
    color:var(--ip-sea-dark)!important;
    border:1px solid rgba(29,160,193,.22);
}
.ip-accommodation-popup-action:hover{
    transform:translateY(-1px);
}
@media (max-width:520px){
    .ip-accommodation-location-map .leaflet-popup-content,
    .ip-accommodation-single-location-map .leaflet-popup-content{
        width:286px!important;
        max-width:calc(100vw - 46px);
    }
    .ip-accommodation-popup-head{
        grid-template-columns:40px minmax(0,1fr);
        gap:10px;
        padding:14px 44px 13px 14px;
    }
    .ip-accommodation-popup-icon{
        width:40px;
        height:40px;
        border-radius:15px;
        font-size:1rem!important;
    }
    .ip-accommodation-popup-title strong{
        font-size:1.02rem!important;
    }
    .ip-accommodation-popup-tags,
    .ip-accommodation-popup-info{
        padding:0 14px;
    }
    .ip-accommodation-popup-actions{
        grid-template-columns:1fr;
        padding:0 14px 14px;
    }
}
@media (max-width:900px){
    .ip-accommodation-location-head{
        display:grid;
        align-items:start;
    }
    .ip-accommodation-location-filter{
        min-width:0;
        width:100%;
    }
    .ip-accommodation-location-shell{
        grid-template-columns:1fr;
    }
    .ip-accommodation-location-map{
        min-height:430px;
        border-radius:26px;
    }
    .ip-accommodation-location-panel{
        max-height:none;
        border-radius:26px;
    }
}
@media (max-width:520px){
    .ip-accommodation-location-map{
        min-height:360px;
    }
    .ip-accommodation-location-panel{
        padding:14px;
    }
}


/* Controles del mapa de alojamientos */
.ip-accommodation-location-map-wrap{
    position:relative;
    min-width:0;
}
.ip-accommodation-location-map-wrap .ip-accommodation-location-map{
    width:100%;
    height:100%;
}
.ip-accommodation-map-control{
    position:absolute;
    z-index:650;
    border:0;
    border-radius:999px;
    background:#fff;
    color:var(--ip-ink);
    font-weight:950;
    box-shadow:0 14px 32px rgba(7,19,22,.18);
    cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.ip-accommodation-map-control:hover{
    transform:translateY(-1px);
    box-shadow:0 18px 38px rgba(7,19,22,.24);
}
.ip-accommodation-map-fullscreen{
    top:16px;
    right:16px;
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    font-size:1.35rem;
    line-height:1;
}
.ip-accommodation-map-locate{
    right:16px;
    bottom:16px;
    min-height:46px;
    padding:0 18px;
    background:var(--ip-lime);
    color:#071316;
}
.ip-accommodation-map-locate:disabled{
    opacity:.78;
    cursor:wait;
}
.ip-accommodation-location-map-wrap.is-fullscreen{
    position:fixed;
    inset:18px;
    z-index:99999;
    background:#fff;
    border-radius:28px;
    box-shadow:0 28px 90px rgba(7,19,22,.36);
    overflow:hidden;
}
.ip-accommodation-location-map-wrap.is-fullscreen .ip-accommodation-location-map{
    height:100%!important;
    min-height:calc(100vh - 36px);
    border-radius:28px;
}
.ip-accommodation-location-map-wrap.is-fullscreen .ip-accommodation-map-fullscreen{
    width:54px;
    height:54px;
    font-size:2rem;
}
html.ip-accommodation-map-open,
html.ip-accommodation-map-open body{
    overflow:hidden;
}
@media (max-width:700px){
    .ip-accommodation-map-fullscreen{
        top:12px;
        right:12px;
        width:44px;
        height:44px;
        font-size:1.2rem;
    }
    .ip-accommodation-map-locate{
        right:12px;
        bottom:12px;
        min-height:42px;
        padding:0 15px;
        font-size:.86rem;
    }
    .ip-accommodation-location-map-wrap.is-fullscreen{
        inset:10px;
        border-radius:22px;
    }
    .ip-accommodation-location-map-wrap.is-fullscreen .ip-accommodation-location-map{
        min-height:calc(100vh - 20px);
        border-radius:22px;
    }
}


/* Punto rojo animado para la ubicación del usuario en mapa de alojamientos */
.ip-accommodation-user-location-marker{
    background:transparent;
    border:0;
}
.ip-accommodation-user-location-marker span{
    position:relative;
    display:block;
    width:18px;
    height:18px;
    margin:8px;
    border-radius:999px;
    background:#ff2d2d;
    border:3px solid #fff;
    box-shadow:0 0 0 1px rgba(7,19,22,.16),0 10px 26px rgba(255,45,45,.42);
}
.ip-accommodation-user-location-marker span::before,
.ip-accommodation-user-location-marker span::after{
    content:"";
    position:absolute;
    inset:-10px;
    border-radius:999px;
    border:2px solid rgba(255,45,45,.46);
    animation:ipAccommodationUserLocationPulse 1.65s ease-out infinite;
}
.ip-accommodation-user-location-marker span::after{
    animation-delay:.55s;
}
@keyframes ipAccommodationUserLocationPulse{
    0%{transform:scale(.45);opacity:.9;}
    70%{transform:scale(1.9);opacity:0;}
    100%{transform:scale(2.05);opacity:0;}
}


/* Distancia del usuario en listado del mapa de alojamientos */
.ip-accommodation-location-item em{
    width:max-content;
    max-width:100%;
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:4px 10px;
    border-radius:999px;
    background:#fff;
    border:1px solid rgba(220,38,38,.18);
    color:#dc2626;
    font-style:normal;
    font-size:.72rem;
    line-height:1;
    font-weight:950;
    box-shadow:0 8px 18px rgba(220,38,38,.10);
}


/* Distancia en la misma línea que el nombre del alojamiento */
.ip-accommodation-location-title-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.ip-accommodation-location-title-row strong{
    min-width:0;
    flex:1 1 auto;
}
.ip-accommodation-location-title-row em{
    flex:0 0 auto;
    white-space:nowrap;
}
.ip-accommodation-location-item > em{
    display:none;
}
@media (max-width:520px){
    .ip-accommodation-location-title-row{
        align-items:flex-start;
        gap:8px;
    }
    .ip-accommodation-location-title-row em{
        font-size:.68rem;
        padding:4px 8px;
    }
}


/* FAQs SEO de alojamiento */
.ip-accommodation-faq-section{
    padding-bottom:clamp(42px,7vw,88px);
}
.ip-accommodation-faq-card{
    border-radius:34px;
    background:#fff;
    border:1px solid rgba(7,19,22,.08);
    box-shadow:0 26px 60px rgba(7,19,22,.09);
    padding:clamp(20px,4vw,38px);
    overflow:hidden;
    position:relative;
}
.ip-accommodation-faq-card::before{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle at 100% 0%,rgba(29,160,193,.30),transparent 34%),
               radial-gradient(circle at 0% 100%,rgba(81,184,187,.14),transparent 32%);
    pointer-events:none;
}
.ip-accommodation-faq-card > *{
    position:relative;
    z-index:1;
}
.ip-accommodation-faq-head{
    max-width:860px;
    margin-bottom:18px;
}
.ip-accommodation-faq-head h2{
    margin:8px 0 0;
    font-size:clamp(1.75rem,3.8vw,3.25rem);
    line-height:.96;
    letter-spacing:-.07em;
    color:var(--ip-ink);
}
.ip-accommodation-faq-head p{
    margin:12px 0 0;
    color:var(--ip-muted);
    font-weight:720;
    line-height:1.55;
    max-width:780px;
}
.ip-accommodation-faq-list{
    display:grid;
    gap:10px;
}
.ip-accommodation-faq-item{
    border:1px solid rgba(7,19,22,.08);
    border-radius:22px;
    background:rgba(255,255,255,.82);
    overflow:hidden;
    box-shadow:0 12px 30px rgba(7,19,22,.05);
}
.ip-accommodation-faq-item summary{
    cursor:pointer;
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:18px 20px;
    color:var(--ip-ink);
    font-weight:950;
    line-height:1.18;
}
.ip-accommodation-faq-item summary::-webkit-details-marker{
    display:none;
}
.ip-accommodation-faq-item summary::after{
    content:"+";
    flex:0 0 auto;
    width:32px;
    height:32px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--ip-lime);
    color:#071316;
    font-weight:950;
    box-shadow:0 10px 20px rgba(7,19,22,.10);
}
.ip-accommodation-faq-item[open] summary::after{
    content:"−";
}
.ip-accommodation-faq-item div{
    padding:0 20px 18px;
}
.ip-accommodation-faq-item p{
    margin:0;
    color:var(--ip-muted);
    font-weight:700;
    line-height:1.58;
}
@media (max-width:700px){
    .ip-accommodation-faq-card{
        border-radius:28px;
        padding:20px;
    }
    .ip-accommodation-faq-item summary{
        padding:16px;
        font-size:.98rem;
    }
    .ip-accommodation-faq-item div{
        padding:0 16px 16px;
    }
}


/* v2.0.289 - alojamiento: lupa hero y enlaces a mapas */
.ip-accommodation-hero-zoom-button{
    top:18px;
    left:18px;
    right:auto;
    z-index:5;
}
.ip-accommodation-open-map-links{
    display:grid;
    gap:8px;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid rgba(16,97,106,.12);
}
.ip-accommodation-open-map-links > strong{
    color:var(--ip-ink);
    font-size:.9rem;
    font-weight:950;
    line-height:1.2;
}
.ip-accommodation-open-map-links a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:42px;
    padding:9px 12px;
    border:1px solid rgba(16,97,106,.12);
    border-radius:15px;
    background:#fff;
    color:var(--ip-ink);
    font-weight:900;
    text-decoration:none;
    box-shadow:0 10px 22px rgba(7,19,22,.05);
    transition:.2s ease;
}
.ip-accommodation-open-map-links a:after{
    content:"→";
    color:var(--ip-sea-dark);
    font-weight:950;
}
.ip-accommodation-open-map-links a:hover{
    transform:translateY(-1px);
    border-color:rgba(16,97,106,.24);
    box-shadow:0 14px 30px rgba(7,19,22,.09);
}
@media (max-width:760px){
    .ip-accommodation-hero-zoom-button{
        top:12px;
        left:12px;
        right:auto;
    }
}


/* Ajustes ficha alojamiento v2.0.289 */
.ip-accommodation-other-head{
    display:grid!important;
    justify-items:start!important;
    text-align:left!important;
    gap:8px!important;
}
.ip-accommodation-other-head .ip-eyebrow,
.ip-accommodation-other-head h2{
    justify-self:start!important;
    text-align:left!important;
}
.ip-accommodation-other-action{
    display:flex;
    justify-content:center;
    margin-top:clamp(18px,3vw,30px);
}
.ip-accommodation-other-action .ip-button-lime{
    text-align:center;
    min-height:48px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding-inline:24px;
}
.ip-accommodation-gallery-meta,
.ip-accommodation-gallery-line{
    color:#fff!important;
}
.ip-accommodation-gallery-line{
    display:inline-flex;
    align-items:center;
    animation:ipAccommodationHeroMetaUp .72s cubic-bezier(.2,.8,.2,1) .16s both;
    text-shadow:0 2px 14px rgba(7,19,22,.45);
}
@keyframes ipAccommodationHeroMetaUp{
    from{
        opacity:0;
        transform:translateY(18px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}
@media (prefers-reduced-motion:reduce){
    .ip-accommodation-gallery-line{
        animation:none!important;
    }
}


/* v2.0.289 - alojamiento: subir título del hero sin mover solapa ni botones */
.ip-accommodation-booking-gallery .ip-accommodation-gallery-overlay h1,
.ip-accommodation-booking-gallery .ip-accommodation-gallery-overlay .ip-accommodation-gallery-meta{
    transform:translateY(clamp(-34px,-3.2vw,-18px));
}
.ip-accommodation-booking-gallery .ip-accommodation-gallery-overlay h1{
    transition:transform .28s ease;
}
.ip-accommodation-booking-gallery .ip-accommodation-gallery-overlay .ip-accommodation-gallery-meta{
    transition:transform .28s ease;
}
@media (max-width:760px){
    .ip-accommodation-booking-gallery .ip-accommodation-gallery-overlay h1,
    .ip-accommodation-booking-gallery .ip-accommodation-gallery-overlay .ip-accommodation-gallery-meta{
        transform:translateY(-10px);
    }
}


/* v2.0.289 - ajustes de hero alojamiento desktop y espaciado del carrusel home */
@media (min-width:761px){
    .ip-accommodation-booking-gallery .ip-accommodation-gallery-overlay h1{
        transform:translateY(clamp(-36px,-3.2vw,-22px));
    }
    .ip-accommodation-booking-gallery .ip-accommodation-gallery-overlay .ip-accommodation-gallery-meta{
        transform:translateY(clamp(-16px,-1.45vw,-10px));
        margin-top:6px;
    }
}
.home .ip-hero-copy,
.front-page .ip-hero-copy{
    gap:clamp(20px,2.2vw,30px);
}
.home .ip-hero .ip-hero-actions,
.front-page .ip-hero .ip-hero-actions{
    margin-top:0;
}
.home .ip-hero-title,
.front-page .ip-hero-title{
    margin:0;
}
@media (min-width:761px){
    .home .ip-hero-actions,
    .front-page .ip-hero-actions{
        padding-top:2px;
    }
}


/* v2.0.289 - Home: etiqueta, título y botón del carrusel con separación correcta */
@media (min-width:901px){
    .home .ip-hero-copy,
    .front-page .ip-hero-copy{
        display:grid!important;
        row-gap:0!important;
        max-width:clamp(760px,56vw,980px);
    }

    .home .ip-hero-top-tags,
    .front-page .ip-hero-top-tags{
        margin:0 0 clamp(16px,1.35vw,24px)!important;
        transform:translateY(0)!important;
    }

    .home .ip-hero-title,
    .front-page .ip-hero-title{
        margin:0!important;
    }

    .home .ip-hero-title .ip-title-xl,
    .front-page .ip-hero-title .ip-title-xl{
        line-height:.80;
        padding-bottom:.08em;
    }

    .home .ip-hero-actions,
    .front-page .ip-hero-actions{
        margin-top:clamp(28px,2.2vw,44px)!important;
    }
}
@media (min-width:901px) and (max-height:760px){
    .home .ip-hero-actions,
    .front-page .ip-hero-actions{
        margin-top:24px!important;
    }
    .home .ip-hero-top-tags,
    .front-page .ip-hero-top-tags{
        margin-bottom:14px!important;
    }
}


/* v2.0.289 - Home: bajar más la etiqueta superior del carrusel */
@media (min-width:901px){
    .home .ip-hero-top-tags,
    .front-page .ip-hero-top-tags{
        margin-bottom:clamp(8px,.75vw,14px)!important;
        transform:translateY(clamp(18px,1.8vw,32px))!important;
    }
}
@media (min-width:901px) and (max-height:760px){
    .home .ip-hero-top-tags,
    .front-page .ip-hero-top-tags{
        transform:translateY(18px)!important;
        margin-bottom:8px!important;
    }
}


/* v2.0.289 - Datos registrales de alojamientos */
.ip-accommodation-registry-block{
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
}
.ip-accommodation-registry-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.ip-accommodation-registry-card{
    position:relative;
    overflow:hidden;
    min-height:118px;
    display:grid;
    align-content:end;
    gap:8px;
    padding:20px;
    border-radius:24px;
    background:linear-gradient(135deg,#fff,rgba(229,245,244,.92));
    border:1px solid rgba(7,19,22,.08);
    box-shadow:0 18px 40px rgba(7,19,22,.08);
}
.ip-accommodation-registry-card::before{
    content:"";
    position:absolute;
    width:92px;
    height:92px;
    right:-28px;
    top:-30px;
    border-radius:999px;
    background:rgba(29,160,193,.42);
}
.ip-accommodation-registry-card span{
    position:relative;
    z-index:1;
    display:block;
    color:var(--ip-muted);
    font-size:.72rem;
    line-height:1.1;
    font-weight:950;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.ip-accommodation-registry-card strong{
    position:relative;
    z-index:1;
    display:block;
    color:var(--ip-ink);
    font-size:clamp(1.15rem,1.8vw,1.55rem);
    line-height:1.05;
    letter-spacing:-.04em;
    word-break:break-word;
}
@media (max-width:760px){
    .ip-accommodation-registry-grid{
        grid-template-columns:1fr;
    }
    .ip-accommodation-registry-card{
        min-height:96px;
        border-radius:20px;
        padding:18px;
    }
}


/* Aviso fuente GVA en fichas de alojamiento */
.ip-accommodation-source-section{
    padding-top:clamp(10px,2vw,22px);
    padding-bottom:clamp(20px,4vw,38px);
}
.ip-accommodation-source-card{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:14px;
    align-items:flex-start;
    border-radius:26px;
    border:1px solid rgba(7,19,22,.08);
    background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(229,245,244,.72));
    box-shadow:0 18px 42px rgba(7,19,22,.07);
    padding:18px 20px;
}
.ip-accommodation-source-icon{
    width:36px;
    height:36px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--ip-lime);
    color:#071316;
    font-weight:950;
    box-shadow:0 10px 22px rgba(29,160,193,.26);
}
.ip-accommodation-source-copy{
    display:grid;
    gap:8px;
    color:var(--ip-muted);
    font-size:.92rem;
    line-height:1.55;
    font-weight:700;
}
.ip-accommodation-source-copy p{
    margin:0;
}
.ip-accommodation-source-copy strong{
    color:var(--ip-ink);
    font-weight:950;
}
.ip-accommodation-source-copy a{
    color:var(--ip-sea-dark);
    font-weight:950;
    text-decoration:underline;
    text-underline-offset:3px;
}
@media (max-width:640px){
    .ip-accommodation-source-card{
        grid-template-columns:1fr;
        border-radius:22px;
        padding:16px;
    }
}


/* v2.0.296 - Android/Chrome: mensaje de ubicación legible y sin estrecharse */
.ip-nearby-permission-card.ip-nearby-permission-minimal{
  flex-wrap:wrap;
  justify-content:flex-start;
}
.ip-nearby-permission-card.ip-nearby-permission-minimal .ip-nearby-permission-button{
  flex:0 0 auto;
}
.ip-nearby-permission-card.ip-nearby-permission-minimal .ip-nearby-status{
  flex:1 1 100%;
  width:100%;
  max-width:760px;
  line-height:1.45;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
}
@media (max-width:640px){
  .ip-nearby-permission-card.ip-nearby-permission-minimal .ip-nearby-permission-button,
  .ip-nearby-permission-card.ip-nearby-permission-minimal .ip-nearby-status{
    width:100%;
    max-width:100%;
  }
}


/* v2.0.297 - Rebranding: acento azul turquesa del logo en lugar de verde/amarillo */
:root{
    --ip-lime:#1da0c1;
    --ip-lime-rgb:29,160,193;
    --ip-logo-cyan:#1da0c1;
    --ip-logo-cyan-dark:#137f9b;
    --ip-logo-navy:#073965;
}
.ip-button-lime,
button.ip-button-lime,
a.ip-button-lime,
.ip-hero-nearby-cue i,
.ip-footer-heart,
.ip-map-fullscreen-button,
.ip-single-locate-button,
.ip-map-locate-button,
.ip-nearby-location-button,
.ip-home-accommodations-cta,
.ip-home-events-cta{
    background:var(--ip-logo-cyan)!important;
    color:#fff!important;
    border-color:rgba(29,160,193,.42)!important;
}
.ip-button-lime:hover,
button.ip-button-lime:hover,
a.ip-button-lime:hover,
.ip-map-fullscreen-button:hover,
.ip-single-locate-button:hover,
.ip-map-locate-button:hover,
.ip-nearby-location-button:hover{
    background:var(--ip-logo-cyan-dark)!important;
    color:#fff!important;
    box-shadow:0 22px 48px rgba(29,160,193,.28)!important;
}
.ip-chip.lime,
.ip-hero-dot.is-active,
.home .ip-hero-dot.is-active,
.front-page .ip-hero-dot.is-active,
.ip-hero-progress span,
.ip-accommodation-source-icon,
.ip-accommodation-open-map-links a:after{
    background:var(--ip-logo-cyan)!important;
    color:#fff!important;
}
.ip-hero-dot.is-active{
    outline-color:var(--ip-logo-cyan)!important;
}
.ip-hero-progress span{
    background:var(--ip-logo-cyan)!important;
}
.ip-scroll-top,
.scroll-to-top,
#scroll-to-top,
button[data-scroll-top],
a[data-scroll-top],
.ip-back-to-top{
    background:var(--ip-logo-cyan)!important;
    color:#fff!important;
    border-color:rgba(29,160,193,.4)!important;
    box-shadow:0 18px 36px rgba(29,160,193,.28)!important;
}
.ip-scroll-top:hover,
.scroll-to-top:hover,
#scroll-to-top:hover,
button[data-scroll-top]:hover,
a[data-scroll-top]:hover,
.ip-back-to-top:hover{
    background:var(--ip-logo-cyan-dark)!important;
    color:#fff!important;
}
.ip-hero-nearby-cue i{
    box-shadow:0 0 0 0 rgba(29,160,193,.32),0 8px 18px rgba(29,160,193,.24)!important;
}
@keyframes ipHeroNearbyRadar{
  0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(29,160,193,.32),0 8px 18px rgba(29,160,193,.24)}
  50%{transform:scale(1.08);box-shadow:0 0 0 7px rgba(29,160,193,0),0 8px 18px rgba(29,160,193,.24)}
}


/* v2.0.298 - Solapas de los hero en blanco con texto negro */
.ip-hero .ip-chip.dark,
.home .ip-hero .ip-chip.dark,
.front-page .ip-hero .ip-chip.dark,
.ip-hero-corner-tab,
a.ip-hero-corner-tab,
.ip-news-single-hero-tab,
a.ip-news-single-hero-tab,
.ip-route-hero-tab,
a.ip-route-hero-tab,
.ip-accommodation-hero-type-tab,
a.ip-accommodation-hero-type-tab,
.ip-page-hero .ip-eyebrow,
.ip-route-hero .ip-eyebrow,
.ip-playas-hero .ip-eyebrow,
.ip-faq-hero-panel .ip-eyebrow,
.ip-webcam-hero-card .ip-eyebrow,
.ip-traffic-hero .ip-eyebrow,
.ip-404-hero .ip-eyebrow{
    background:#fff!important;
    background-image:none!important;
    color:#071316!important;
    border-color:rgba(7,19,22,.12)!important;
    text-shadow:none!important;
    box-shadow:0 16px 38px rgba(7,19,22,.14)!important;
}
.ip-hero-corner-tab:hover,
a.ip-hero-corner-tab:hover,
.ip-news-single-hero-tab:hover,
a.ip-news-single-hero-tab:hover,
.ip-route-hero-tab:hover,
a.ip-route-hero-tab:hover,
.ip-accommodation-hero-type-tab:hover,
a.ip-accommodation-hero-type-tab:hover{
    background:#fff!important;
    color:#071316!important;
    border-color:rgba(7,19,22,.18)!important;
}
.ip-hero-corner-tab:before,
.ip-news-single-hero-tab:before,
.ip-route-hero-tab:before{
    background:radial-gradient(circle at left bottom,transparent 15px,#fff 16px)!important;
}
.ip-hero-corner-tab:after,
.ip-news-single-hero-tab:after,
.ip-route-hero-tab:after{
    background:radial-gradient(circle at right bottom,transparent 15px,#fff 16px)!important;
}
.ip-hero-tab-arrow,
.ip-hero-corner-tab .ip-hero-tab-arrow,
.ip-news-single-hero-tab .ip-hero-tab-arrow,
.ip-route-hero-tab .ip-hero-tab-arrow{
    color:#071316!important;
}
.ip-page-hero .ip-eyebrow:before,
.ip-route-hero .ip-eyebrow:before,
.ip-playas-hero .ip-eyebrow:before,
.ip-faq-hero-panel .ip-eyebrow:before,
.ip-webcam-hero-card .ip-eyebrow:before,
.ip-traffic-hero .ip-eyebrow:before,
.ip-404-hero .ip-eyebrow:before{
    background:#071316!important;
    box-shadow:0 0 0 4px rgba(7,19,22,.08)!important;
}


/* v2.0.299 - Plantillas: puntos de carga y gasolineras */
.ip-transport-page{
    background:linear-gradient(180deg,#f7fbfc 0%,#fff 42%,#f7fbfc 100%);
}
.ip-transport-hero{
    padding-top:clamp(28px,4vw,54px);
}
.ip-transport-hero-card{
    overflow:hidden;
}
.ip-transport-intro-grid{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);
    gap:20px;
    align-items:stretch;
}
.ip-transport-copy-card,
.ip-transport-tip-card,
.ip-transport-seo-card{
    background:rgba(255,255,255,.92);
    border:1px solid rgba(7,19,22,.08);
    border-radius:28px;
    box-shadow:0 18px 44px rgba(7,19,22,.07);
    padding:clamp(20px,3vw,32px);
}
.ip-transport-copy-card h2,
.ip-transport-map-head h2,
.ip-transport-seo-card h2{
    margin:0 0 14px;
    font-size:clamp(1.55rem,3vw,2.65rem);
    line-height:.98;
    letter-spacing:-.055em;
    color:var(--ip-ink);
}
.ip-transport-copy-card p,
.ip-transport-map-head p,
.ip-transport-seo-card p,
.ip-transport-tip-card p{
    color:var(--ip-muted);
    line-height:1.65;
    margin:0 0 12px;
}
.ip-transport-tip-card{
    background:linear-gradient(135deg,rgba(29,160,193,.1),rgba(255,255,255,.96));
}
.ip-transport-tip-card strong{
    display:block;
    margin-bottom:10px;
    color:var(--ip-ink);
    font-size:1.2rem;
    letter-spacing:-.035em;
}
.ip-transport-tip-card small{
    display:block;
    color:var(--ip-muted);
    font-weight:750;
    line-height:1.45;
}
.ip-transport-map-head{
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:flex-end;
    margin-bottom:16px;
}
.ip-transport-map-head > div:first-child{
    max-width:820px;
}
.ip-transport-map-status{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:10px 14px;
    border-radius:999px;
    background:#fff;
    border:1px solid rgba(7,19,22,.08);
    color:var(--ip-ink);
    box-shadow:0 12px 28px rgba(7,19,22,.06);
    font-weight:950;
    white-space:nowrap;
}
.ip-transport-alert,
.ip-transport-empty{
    padding:16px 18px;
    border-radius:20px;
    background:#fff4f4;
    color:#8f2f2f;
    border:1px solid rgba(143,47,47,.14);
    font-weight:850;
    margin-bottom:16px;
}
.ip-transport-empty{
    background:#fff;
    color:var(--ip-muted);
}
.ip-transport-map-shell{
    position:relative;
    min-height:clamp(420px,58vh,620px);
    border-radius:30px;
    overflow:hidden;
    border:1px solid rgba(7,19,22,.08);
    box-shadow:0 24px 60px rgba(7,19,22,.12);
    background:#dcecef;
}
.ip-transport-map-shell.is-fullscreen{
    position:fixed;
    inset:18px;
    z-index:99999;
    min-height:auto;
    height:calc(100dvh - 36px);
    border-radius:24px;
}
.admin-bar .ip-transport-map-shell.is-fullscreen{
    top:50px;
    height:calc(100dvh - 68px);
}
.ip-transport-map{
    width:100%;
    height:100%;
    min-height:inherit;
}
.ip-transport-map-buttons{
    position:absolute;
    top:16px;
    right:16px;
    z-index:600;
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
}
.ip-transport-map-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:42px;
    padding:9px 13px;
    border:1px solid rgba(255,255,255,.45);
    border-radius:999px;
    background:rgba(255,255,255,.94);
    color:var(--ip-ink);
    font-weight:950;
    box-shadow:0 14px 34px rgba(7,19,22,.16);
    cursor:pointer;
    transition:.2s ease;
}
.ip-transport-map-button:hover,
.ip-transport-map-button.is-loading{
    transform:translateY(-1px);
    background:var(--ip-logo-cyan,#1da0c1);
    color:#fff;
}
.ip-transport-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin-top:18px;
}
.ip-transport-result-card{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:flex-start;
    background:#fff;
    border:1px solid rgba(7,19,22,.08);
    border-radius:22px;
    padding:16px;
    box-shadow:0 14px 34px rgba(7,19,22,.06);
}
.ip-transport-result-card h3{
    margin:0 0 6px;
    color:var(--ip-ink);
    font-size:1.05rem;
    line-height:1.05;
    letter-spacing:-.035em;
}
.ip-transport-result-card p,
.ip-transport-result-card span,
.ip-transport-result-card small{
    display:block;
    color:var(--ip-muted);
    margin:0;
    line-height:1.38;
    font-weight:750;
}
.ip-transport-result-card > strong{
    flex:0 0 auto;
    color:#fff;
    background:var(--ip-logo-cyan,#1da0c1);
    border-radius:999px;
    padding:7px 10px;
    font-size:.82rem;
    white-space:nowrap;
}
.ip-fuel-card{
    display:grid;
    grid-template-columns:minmax(0,.85fr) minmax(220px,1fr);
}
.ip-fuel-prices,
.ip-fuel-popup-prices{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.ip-fuel-prices span,
.ip-fuel-popup-prices span{
    padding:9px 10px;
    border-radius:14px;
    background:rgba(29,160,193,.08);
    border:1px solid rgba(29,160,193,.12);
}
.ip-fuel-prices em,
.ip-fuel-popup-prices em{
    display:block;
    font-style:normal;
    color:var(--ip-muted);
    font-size:.76rem;
    font-weight:850;
}
.ip-fuel-prices strong,
.ip-fuel-popup-prices strong{
    display:block;
    color:var(--ip-ink);
    font-size:.98rem;
    font-weight:950;
}
.ip-fuel-no-price{
    color:var(--ip-muted);
    align-self:center;
}
.ip-fuel-popup-prices{
    margin:10px 0;
}
.ip-transport-source-note{
    font-weight:850;
    font-size:.94rem;
}
@media (max-width:1024px){
    .ip-transport-intro-grid{
        grid-template-columns:1fr;
    }
    .ip-transport-list{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .ip-fuel-card{
        grid-template-columns:1fr;
    }
}
@media (max-width:640px){
    .ip-transport-map-head{
        display:grid;
    }
    .ip-transport-map-status{
        justify-self:start;
        white-space:normal;
    }
    .ip-transport-map-shell{
        min-height:430px;
        border-radius:22px;
    }
    .ip-transport-map-buttons{
        top:12px;
        right:12px;
        left:12px;
    }
    .ip-transport-map-button{
        flex:1 1 auto;
    }
    .ip-transport-list{
        grid-template-columns:1fr;
    }
    .ip-fuel-prices,
    .ip-fuel-popup-prices{
        grid-template-columns:1fr;
    }
    .ip-transport-map-shell.is-fullscreen{
        inset:8px;
        border-radius:18px;
        height:calc(100dvh - 16px);
    }
    .admin-bar .ip-transport-map-shell.is-fullscreen{
        top:46px;
        height:calc(100dvh - 54px);
    }
}


/* v2.0.300 - Plantillas de movilidad: estética coherente y mapas como el resto de la web */
.ip-transport-page .ip-section-head p,
.ip-transport-section-head p{
    max-width:860px;
    margin:12px 0 0;
    color:var(--ip-muted);
    font-weight:720;
    line-height:1.6;
}
.ip-transport-info-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin-top:18px;
}
.ip-transport-info-card,
.ip-transport-seo-card-v2{
    background:#fff;
    border:1px solid rgba(7,19,22,.08);
    border-radius:28px;
    box-shadow:0 18px 44px rgba(7,19,22,.07);
    padding:clamp(18px,2.4vw,28px);
}
.ip-transport-info-card strong{
    display:block;
    color:var(--ip-ink);
    font-size:1.08rem;
    line-height:1.1;
    letter-spacing:-.035em;
    margin-bottom:8px;
}
.ip-transport-info-card p,
.ip-transport-seo-card-v2 p{
    margin:0 0 12px;
    color:var(--ip-muted);
    font-weight:720;
    line-height:1.62;
}
.ip-transport-seo-card-v2 .ip-title-md{
    margin:8px 0 14px;
}
.ip-transport-update-pill,
.ip-transport-map-status{
    display:grid;
    gap:2px;
    align-content:center;
    min-height:54px;
    padding:10px 16px;
    border-radius:20px;
    background:#fff;
    border:1px solid rgba(7,19,22,.08);
    box-shadow:0 14px 32px rgba(7,19,22,.08);
    color:var(--ip-ink);
    font-weight:950;
    white-space:nowrap;
}
.ip-transport-update-pill span{
    color:var(--ip-muted);
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.075em;
    font-weight:950;
}
.ip-transport-update-pill strong{
    color:var(--ip-ink);
    font-size:.94rem;
}
.ip-transport-map-status{
    min-height:44px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.ip-transport-alert{
    margin-bottom:16px;
    padding:14px 16px;
    border-radius:20px;
    background:#fff4f4;
    color:#8f2f2f;
    border:1px solid rgba(143,47,47,.15);
    font-weight:850;
}
.ip-transport-location-shell .ip-accommodation-location-panel h3{
    margin-bottom:14px;
}
.ip-transport-location-item{
    text-decoration:none;
}
.ip-transport-location-item .ip-accommodation-location-title-row{
    align-items:flex-start;
}
.ip-transport-distance{
    flex:0 0 auto;
    font-style:normal;
    background:#fff;
    color:var(--ip-ink);
    border:1px solid rgba(7,19,22,.08);
    border-radius:999px;
    padding:4px 8px;
    font-size:.72rem;
    font-weight:950;
    white-space:nowrap;
}
.ip-fuel-prices-mini{
    display:grid;
    grid-template-columns:1fr;
    gap:5px;
    margin-top:6px;
}
.ip-fuel-prices-mini em,
.ip-fuel-popup-prices span{
    display:flex;
    justify-content:space-between;
    gap:8px;
    padding:7px 9px;
    border-radius:13px;
    background:rgba(29,160,193,.08);
    border:1px solid rgba(29,160,193,.12);
    color:var(--ip-muted);
    font-style:normal;
    font-size:.78rem;
    font-weight:850;
}
.ip-fuel-prices-mini b,
.ip-fuel-popup-prices strong{
    color:var(--ip-ink);
    font-weight:950;
}
.ip-fuel-popup-prices{
    display:grid;
    gap:6px;
    margin:8px 0 0;
}
.ip-transport-source-note{
    font-size:.94rem;
    font-weight:850!important;
}
.ip-transport-map-popup .ip-fuel-popup-prices + a,
.ip-transport-map-popup a{
    margin-top:8px;
}
@media (max-width:1024px){
    .ip-transport-info-grid{
        grid-template-columns:1fr;
    }
    .ip-transport-update-pill,
    .ip-transport-map-status{
        justify-self:start;
        white-space:normal;
    }
}
@media (max-width:640px){
    .ip-transport-info-card,
    .ip-transport-seo-card-v2{
        border-radius:22px;
    }
    .ip-transport-map-status{
        width:100%;
    }
}


/* v2.0.302 - Gasolineras: eliminar badge duplicado del nombre en tarjetas */
.ip-transport-location-item-no-badge > span{
    display:none!important;
}
.ip-transport-location-item-no-badge .ip-accommodation-location-title-row{
    margin-top:0!important;
}


/* v2.0.303 - Puntos de carga: OpenChargeMap y conectores */
.ip-charge-connectors-mini{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:9px;
}
.ip-charge-connectors-mini em{
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:6px 9px;
    background:rgba(29,160,193,.08);
    border:1px solid rgba(29,160,193,.14);
    color:var(--ip-muted);
    font-size:.78rem;
    line-height:1.2;
    font-style:normal;
    font-weight:850;
}
.ip-transport-map-popup .ip-charge-connectors-mini{
    margin:9px 0 4px;
}


/* v2.0.307 - Transportes: alojamientos relacionados y aviso profesional de APIs */
.ip-transport-accommodations-section{
    padding-top:clamp(28px,4vw,48px);
    padding-bottom:clamp(24px,3.5vw,42px);
    background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(236,248,248,.58) 100%);
}
.ip-transport-accommodations-head{
    margin-bottom:20px;
}
.ip-transport-accommodations-head p{
    margin:10px 0 0;
    max-width:760px;
    color:var(--ip-muted);
    font-weight:700;
    line-height:1.55;
}
.ip-transport-accommodations-grid{
    margin-top:0;
}
.ip-transport-accommodations-action{
    display:flex;
    justify-content:center;
    margin-top:22px;
}
.ip-transport-api-notice-section{
    padding-top:clamp(12px,2vw,22px);
    padding-bottom:clamp(34px,5vw,64px);
}
.ip-transport-api-notice-card{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:14px;
    align-items:flex-start;
    border-radius:26px;
    border:1px solid rgba(7,19,22,.08);
    background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(229,245,244,.72));
    box-shadow:0 18px 42px rgba(7,19,22,.07);
    padding:18px 20px;
}
.ip-transport-api-notice-icon{
    width:36px;
    height:36px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--ip-logo-cyan,#1da0c1);
    color:#fff;
    font-weight:950;
    box-shadow:0 10px 22px rgba(29,160,193,.26);
}
.ip-transport-api-notice-copy{
    display:grid;
    gap:8px;
    color:var(--ip-muted);
    font-size:.92rem;
    line-height:1.55;
    font-weight:700;
}
.ip-transport-api-notice-copy p{
    margin:0;
}
.ip-transport-api-notice-copy strong{
    color:var(--ip-ink);
    font-weight:950;
}
@media (max-width:640px){
    .ip-transport-accommodations-action .ip-button-lime{
        width:100%;
        text-align:center;
    }
    .ip-transport-api-notice-card{
        grid-template-columns:1fr;
        border-radius:22px;
        padding:16px;
    }
}


/* v2.0.308 - Footer: columnas gestionables desde menús Footer 1, Footer 2 y Footer 3 */
.ip-footer-menu-column .ip-footer-menu-list,
.ip-footer .ip-footer-menu-list{
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    gap:7px;
}
.ip-footer-menu-column .ip-footer-menu-list a{
    display:inline-flex;
    align-items:center;
    width:fit-content;
    min-height:26px;
    color:rgba(255,255,255,.72);
    text-decoration:none;
    transition:color .18s ease,transform .18s ease,opacity .18s ease;
}
.ip-footer-menu-column .ip-footer-menu-list a:hover{
    color:#fff;
    transform:translateX(3px);
}
.ip-footer-menu-column .ip-footer-menu-list .current-menu-item > a,
.ip-footer-menu-column .ip-footer-menu-list .current_page_item > a{
    color:#fff;
    font-weight:900;
}


/* v2.0.311 - Tickers: quitar subrayado al pasar el ratón */
.ip-events-ticker-item,
.ip-events-ticker-item:hover,
.ip-events-ticker-item:focus,
.ip-events-ticker-item:focus-visible,
.ip-events-ticker--footer .ip-events-ticker-item,
.ip-events-ticker--footer .ip-events-ticker-item:hover,
.ip-events-ticker--footer .ip-events-ticker-item:focus,
.ip-events-ticker--footer .ip-events-ticker-item:focus-visible{
    text-decoration:none!important;
    text-underline-offset:0!important;
}


/* v2.0.313 - Ficha alojamiento: unificar tipografía del contenido principal */
.single-ip_alojamiento .ip-accommodation-main-text,
.single-ip_alojamiento .ip-accommodation-main-text p,
.single-ip_alojamiento .ip-accommodation-main-text > p:first-of-type,
.single-ip_alojamiento .ip-accommodation-main-text > p:first-child,
.single-ip_alojamiento .ip-accommodation-main-text li,
.single-ip_alojamiento .ip-accommodation-main-text span,
.single-ip_alojamiento .ip-accommodation-main-text .has-small-font-size,
.single-ip_alojamiento .ip-accommodation-main-text .has-medium-font-size,
.single-ip_alojamiento .ip-accommodation-main-text .has-large-font-size,
.single-ip_alojamiento .ip-accommodation-main-text .has-x-large-font-size{
    font-family:inherit!important;
    font-size:1.05rem!important;
    line-height:1.78!important;
    font-weight:500!important;
    letter-spacing:0!important;
    color:var(--ip-ink)!important;
}
.single-ip_alojamiento .ip-accommodation-main-text p{
    margin:0 0 1.35rem!important;
}
.single-ip_alojamiento .ip-accommodation-main-text p:last-child{
    margin-bottom:0!important;
}
.single-ip_alojamiento .ip-accommodation-main-text strong,
.single-ip_alojamiento .ip-accommodation-main-text b{
    font-weight:850!important;
}
.single-ip_alojamiento .ip-accommodation-main-text h2,
.single-ip_alojamiento .ip-accommodation-main-text h3,
.single-ip_alojamiento .ip-accommodation-main-text h4{
    font-family:inherit!important;
    color:var(--ip-ink)!important;
}


/* v2.0.314 - Home: CTA gasolineras y puntos de carga antes de FAQ */
.ip-home-transport-cta{
    padding-top:clamp(24px,4vw,48px);
    padding-bottom:clamp(24px,4vw,46px);
}
.ip-home-transport-panel{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);
    gap:clamp(22px,4vw,42px);
    align-items:center;
    border-radius:34px;
    padding:clamp(24px,4vw,42px);
    background:
        radial-gradient(circle at 0% 0%,rgba(29,160,193,.18),transparent 36%),
        radial-gradient(circle at 100% 100%,rgba(217,239,98,.20),transparent 34%),
        linear-gradient(135deg,#ffffff 0%,#eefafa 100%);
    border:1px solid rgba(16,97,106,.12);
    box-shadow:0 22px 60px rgba(7,19,22,.09);
}
.ip-home-transport-copy p{
    margin:12px 0 0;
    max-width:680px;
    color:var(--ip-muted);
    font-weight:750;
    line-height:1.56;
}
.ip-home-transport-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.ip-home-transport-card{
    display:grid;
    gap:8px;
    min-height:176px;
    align-content:start;
    padding:20px;
    border-radius:26px;
    background:#fff;
    border:1px solid rgba(16,97,106,.12);
    color:var(--ip-ink);
    text-decoration:none;
    box-shadow:0 14px 34px rgba(7,19,22,.07);
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.ip-home-transport-card:hover{
    color:var(--ip-ink);
    text-decoration:none;
    transform:translateY(-3px);
    border-color:rgba(29,160,193,.34);
    box-shadow:0 20px 46px rgba(7,19,22,.12);
}
.ip-home-transport-icon{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:18px;
    background:rgba(29,160,193,.12);
    font-size:1.45rem;
}
.ip-home-transport-card strong{
    font-size:1.18rem;
    line-height:1.05;
    letter-spacing:-.04em;
}
.ip-home-transport-card small{
    color:var(--ip-muted);
    font-weight:750;
    line-height:1.35;
}
@media (max-width:900px){
    .ip-home-transport-panel{
        grid-template-columns:1fr;
    }
}
@media (max-width:560px){
    .ip-home-transport-panel{
        border-radius:28px;
        padding:20px;
    }
    .ip-home-transport-actions{
        grid-template-columns:1fr;
    }
    .ip-home-transport-card{
        min-height:auto;
        grid-template-columns:auto minmax(0,1fr);
        align-items:center;
    }
    .ip-home-transport-card small{
        grid-column:2;
    }
}


/* v2.0.315 - Puntos de carga: mostrar coste informado por OpenChargeMap */
.ip-charge-price-mini{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:8px;
    margin-top:8px;
}
.ip-charge-price-mini span{
    display:grid;
    gap:2px;
    width:fit-content;
    max-width:100%;
    padding:9px 11px;
    border-radius:14px;
    background:rgba(29,160,193,.08);
    border:1px solid rgba(29,160,193,.14);
}
.ip-charge-price-mini em{
    display:block;
    font-style:normal;
    color:var(--ip-muted);
    font-size:.76rem;
    font-weight:850;
    line-height:1.1;
}
.ip-charge-price-mini strong{
    display:block;
    color:var(--ip-ink);
    font-size:.92rem;
    font-weight:950;
    line-height:1.22;
}
.ip-transport-map-popup .ip-charge-price-mini{
    margin:8px 0 0;
}


/* v2.0.316 - Popups modernos para gasolineras y puntos de carga */
.ip-transport-location-map .leaflet-popup-content-wrapper{
    overflow:hidden;
    border-radius:24px;
    padding:0;
    border:1px solid rgba(7,19,22,.08);
    box-shadow:0 22px 58px rgba(7,19,22,.22);
}
.ip-transport-location-map .leaflet-popup-content{
    margin:0;
    width:310px!important;
    max-width:calc(100vw - 72px);
}
.ip-transport-location-map .leaflet-popup-tip{
    box-shadow:0 10px 20px rgba(7,19,22,.16);
}
.ip-transport-map-popup-v2{
    min-width:0;
    display:grid;
    gap:12px;
    padding:0;
    background:#fff;
}
.ip-transport-map-popup-v2 .ip-transport-popup-head{
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    gap:12px;
    align-items:center;
    padding:16px 16px 14px;
    background:
        radial-gradient(circle at 0% 0%,rgba(29,160,193,.22),transparent 58%),
        linear-gradient(135deg,rgba(238,250,250,.98),#fff);
    border-bottom:1px solid rgba(16,97,106,.10);
}
.ip-transport-popup-icon{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 24px rgba(7,19,22,.10);
    font-size:1.35rem;
}
.ip-transport-popup-title{
    display:grid!important;
    gap:4px;
    min-width:0;
}
.ip-transport-popup-title em,
.ip-transport-map-popup-v2 .ip-transport-popup-block > small{
    display:block;
    margin:0;
    color:var(--ip-logo-cyan,#1da0c1);
    font-size:.72rem;
    line-height:1.1;
    font-style:normal;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.045em;
}
.ip-transport-popup-title strong{
    display:block!important;
    margin:0!important;
    color:var(--ip-ink)!important;
    font-size:1.12rem!important;
    line-height:1.04!important;
    letter-spacing:-.045em;
}
.ip-transport-popup-info{
    display:grid;
    gap:8px;
    padding:0 16px;
}
.ip-transport-popup-info span{
    display:grid!important;
    grid-template-columns:22px minmax(0,1fr);
    gap:8px;
    align-items:start;
    color:var(--ip-muted)!important;
    font-size:.86rem!important;
    line-height:1.35!important;
    font-weight:760!important;
}
.ip-transport-popup-info b{
    font-size:.95rem;
    line-height:1.2;
}
.ip-transport-popup-info em{
    font-style:normal;
}
.ip-transport-map-popup-v2 .ip-transport-popup-block{
    display:grid;
    gap:8px;
    padding:0 16px;
}
.ip-transport-popup-prices,
.ip-transport-popup-price-single{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.ip-transport-popup-price-single{
    grid-template-columns:1fr;
}
.ip-transport-popup-prices span,
.ip-transport-popup-price-single span{
    display:grid!important;
    gap:3px;
    padding:10px 11px;
    border-radius:15px;
    background:rgba(29,160,193,.08);
    border:1px solid rgba(29,160,193,.14);
}
.ip-transport-popup-prices em,
.ip-transport-popup-price-single em{
    color:var(--ip-muted);
    font-size:.72rem;
    line-height:1.1;
    font-style:normal;
    font-weight:900;
}
.ip-transport-popup-prices strong,
.ip-transport-popup-price-single strong{
    color:var(--ip-ink)!important;
    font-size:.95rem!important;
    line-height:1.12!important;
    font-weight:950!important;
}
.ip-transport-map-popup-v2 .ip-transport-popup-connectors{
    margin:0;
}
.ip-transport-map-popup-v2 .ip-transport-popup-connectors em{
    background:rgba(29,160,193,.08);
    color:var(--ip-ink);
}
.ip-transport-map-popup-v2 .ip-transport-popup-route{
    display:flex!important;
    align-items:center;
    justify-content:center;
    min-height:44px;
    margin:2px 16px 16px!important;
    border-radius:999px!important;
    background:var(--ip-logo-cyan,#1da0c1)!important;
    color:#fff!important;
    font-weight:950!important;
    text-decoration:none!important;
    box-shadow:0 14px 30px rgba(29,160,193,.24);
    transition:transform .18s ease, box-shadow .18s ease;
}
.ip-transport-map-popup-v2 .ip-transport-popup-route:hover{
    transform:translateY(-1px);
    box-shadow:0 18px 38px rgba(29,160,193,.32);
}
@media (max-width:520px){
    .ip-transport-location-map .leaflet-popup-content{
        width:286px!important;
        max-width:calc(100vw - 52px);
    }
    .ip-transport-popup-prices{
        grid-template-columns:1fr;
    }
    .ip-transport-map-popup-v2 .ip-transport-popup-head{
        grid-template-columns:42px minmax(0,1fr);
        padding:14px;
    }
    .ip-transport-popup-icon{
        width:42px;
        height:42px;
        border-radius:16px;
    }
}


/* v2.0.319 - Iconos en todos los enlaces del menú principal */
.ip-main-nav .ip-menu-label{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.ip-main-nav .ip-menu-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:1.28em;
  height:1.28em;
  font-size:1.02em;
  line-height:1;
  filter:saturate(1.08);
  transform:translateY(-.02em);
}
.ip-main-nav .ip-menu-text{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ip-main-nav .sub-menu .ip-menu-label{
  gap:9px;
}
.ip-main-nav .sub-menu .ip-menu-icon{
  width:24px;
  height:24px;
  border-radius:999px;
  background:rgba(29,160,193,.10);
  font-size:.86rem;
}
.ip-header-floating:not(.ip-is-scrolled) .ip-main-nav .sub-menu .ip-menu-icon,
.ip-header-solid .ip-main-nav .sub-menu .ip-menu-icon,
.ip-header-floating.ip-is-scrolled .ip-main-nav .sub-menu .ip-menu-icon{
  background:rgba(29,160,193,.10);
}
.ip-mobile-search-menu-button .ip-menu-icon{
  margin-right:2px;
}
@media (max-width:900px){
  .ip-main-nav .ip-menu-label{
    gap:10px;
  }
  .ip-main-nav .ip-menu-icon{
    width:25px;
    height:25px;
    border-radius:999px;
    background:rgba(29,160,193,.12);
    font-size:.9rem;
  }
  .ip-main-nav .ip-menu-text{
    white-space:normal;
  }
}


/* v2.0.319 - Popups de gasolineras/puntos de carga y menú móvil lateral */
@media (max-width:600px){
  .ip-transport-location-map .leaflet-popup{
    max-width:calc(100vw - 28px)!important;
  }
  .ip-transport-location-map .leaflet-popup-content-wrapper{
    border-radius:19px!important;
    max-height:min(68svh,390px)!important;
    overflow:hidden!important;
    box-shadow:0 16px 44px rgba(7,19,22,.22)!important;
  }
  .ip-transport-location-map .leaflet-popup-content{
    width:254px!important;
    max-width:calc(100vw - 48px)!important;
    margin:0!important;
    max-height:min(68svh,390px)!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }
  .ip-transport-map-popup-v2{
    gap:7px!important;
  }
  .ip-transport-map-popup-v2 .ip-transport-popup-head{
    grid-template-columns:34px minmax(0,1fr)!important;
    gap:8px!important;
    padding:10px 10px 9px!important;
    border-bottom-color:rgba(16,97,106,.08)!important;
  }
  .ip-transport-popup-icon{
    width:34px!important;
    height:34px!important;
    border-radius:13px!important;
    font-size:1rem!important;
    box-shadow:0 6px 16px rgba(7,19,22,.10)!important;
  }
  .ip-transport-popup-title{
    gap:2px!important;
  }
  .ip-transport-popup-title em,
  .ip-transport-map-popup-v2 .ip-transport-popup-block > small{
    font-size:.58rem!important;
    letter-spacing:.055em!important;
  }
  .ip-transport-popup-title strong{
    font-size:.9rem!important;
    line-height:1.05!important;
    letter-spacing:-.035em!important;
    display:-webkit-box!important;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .ip-transport-popup-info{
    gap:4px!important;
    padding:0 10px!important;
  }
  .ip-transport-popup-info span{
    grid-template-columns:17px minmax(0,1fr)!important;
    gap:6px!important;
    font-size:.72rem!important;
    line-height:1.22!important;
  }
  .ip-transport-popup-info b{
    font-size:.78rem!important;
    line-height:1.1!important;
  }
  .ip-transport-popup-info em{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .ip-transport-map-popup-v2 .ip-transport-popup-block{
    gap:5px!important;
    padding:0 10px!important;
  }
  .ip-transport-popup-prices{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:5px!important;
  }
  .ip-transport-popup-price-single{
    grid-template-columns:1fr!important;
    gap:5px!important;
  }
  .ip-transport-popup-prices span,
  .ip-transport-popup-price-single span{
    padding:7px 8px!important;
    border-radius:12px!important;
    gap:2px!important;
  }
  .ip-transport-popup-prices em,
  .ip-transport-popup-price-single em{
    font-size:.58rem!important;
  }
  .ip-transport-popup-prices strong,
  .ip-transport-popup-price-single strong{
    font-size:.78rem!important;
    line-height:1.08!important;
  }
  .ip-transport-map-popup-v2 .ip-transport-popup-connectors{
    display:flex!important;
    gap:5px!important;
    flex-wrap:wrap!important;
  }
  .ip-transport-map-popup-v2 .ip-transport-popup-connectors em{
    padding:5px 7px!important;
    border-radius:999px!important;
    font-size:.66rem!important;
    line-height:1!important;
  }
  .ip-transport-map-popup-v2 .ip-transport-popup-route{
    min-height:38px!important;
    margin:2px 10px 10px!important;
    border-radius:14px!important;
    font-size:.8rem!important;
    box-shadow:0 10px 24px rgba(29,160,193,.20)!important;
  }
  .ip-transport-location-map .leaflet-popup-close-button{
    width:30px!important;
    height:30px!important;
    font-size:18px!important;
    line-height:30px!important;
    top:5px!important;
    right:5px!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.88)!important;
    color:var(--ip-ink)!important;
    box-shadow:0 6px 16px rgba(7,19,22,.12)!important;
  }
}
@media (max-width:380px){
  .ip-transport-location-map .leaflet-popup-content{
    width:236px!important;
    max-width:calc(100vw - 42px)!important;
  }
  .ip-transport-popup-prices strong,
  .ip-transport-popup-price-single strong{
    font-size:.74rem!important;
  }
}

@media (max-width:900px){
  .ip-site-header .ip-main-nav,
  .home .ip-site-header .ip-main-nav,
  .front-page .ip-site-header .ip-main-nav,
  .ip-header-floating.ip-is-scrolled .ip-main-nav{
    position:fixed!important;
    top:76px!important;
    right:10px!important;
    bottom:10px!important;
    left:auto!important;
    width:min(88vw,390px)!important;
    max-width:390px!important;
    max-height:none!important;
    height:auto!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    padding:14px!important;
    border-radius:28px!important;
    border:1px solid rgba(255,255,255,.72)!important;
    background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(243,248,247,.98))!important;
    color:var(--ip-ink)!important;
    box-shadow:-18px 20px 80px rgba(7,19,22,.26)!important;
    -webkit-backdrop-filter:blur(22px) saturate(1.08)!important;
    backdrop-filter:blur(22px) saturate(1.08)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateX(calc(100% + 28px))!important;
    transition:transform .32s cubic-bezier(.2,.82,.2,1),opacity .22s ease,visibility .22s ease!important;
    z-index:999!important;
  }
  .admin-bar .ip-site-header .ip-main-nav,
  .admin-bar .ip-header-floating.ip-is-scrolled .ip-main-nav{
    top:112px!important;
  }
  .ip-site-header .ip-main-nav.is-open,
  .home .ip-site-header .ip-main-nav.is-open,
  .front-page .ip-site-header .ip-main-nav.is-open,
  .ip-header-floating.ip-is-scrolled .ip-main-nav.is-open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateX(0)!important;
  }
  .ip-site-header .ip-main-nav::before{
    content:"Menú";
    display:flex;
    align-items:center;
    min-height:36px;
    margin:0 2px 10px;
    padding:0 2px;
    color:var(--ip-sea-dark);
    font-size:.78rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.08em;
  }
  .ip-site-header .ip-main-nav ul,
  .ip-site-header .ip-main-nav .ip-compact-menu{
    display:grid!important;
    gap:8px!important;
    align-items:stretch!important;
  }
  .ip-site-header .ip-main-nav > ul > li,
  .ip-site-header .ip-main-nav .ip-compact-menu > li{
    width:100%!important;
  }
  .ip-site-header .ip-main-nav a,
  .ip-site-header .ip-main-nav .ip-menu-parent-toggle{
    width:100%!important;
    min-height:52px!important;
    justify-content:space-between!important;
    padding:0 12px!important;
    border-radius:18px!important;
    background:#fff!important;
    border:1px solid rgba(7,19,22,.07)!important;
    box-shadow:0 8px 24px rgba(7,19,22,.06)!important;
    color:var(--ip-ink)!important;
    font-size:.95rem!important;
    font-weight:950!important;
    text-decoration:none!important;
  }
  .ip-site-header .ip-main-nav a:hover,
  .ip-site-header .ip-main-nav a:focus-visible,
  .ip-site-header .ip-main-nav .ip-menu-parent-toggle:hover,
  .ip-site-header .ip-main-nav .ip-menu-parent-toggle:focus-visible{
    background:var(--ip-cloud)!important;
    outline:none!important;
  }
  .ip-site-header .ip-main-nav .ip-menu-label{
    display:flex!important;
    align-items:center!important;
    gap:11px!important;
    min-width:0!important;
  }
  .ip-site-header .ip-main-nav .ip-menu-icon,
  .ip-mobile-search-menu-button .ip-menu-icon{
    width:34px!important;
    height:34px!important;
    flex:0 0 34px!important;
    display:grid!important;
    place-items:center!important;
    border-radius:13px!important;
    background:rgba(29,160,193,.11)!important;
    color:var(--ip-sea-dark)!important;
    font-size:1rem!important;
  }
  .ip-site-header .ip-main-nav .ip-menu-text{
    white-space:normal!important;
    line-height:1.12!important;
  }
  .ip-site-header .ip-main-nav .menu-item-has-children > .ip-menu-parent-toggle:after{
    content:""!important;
    width:9px!important;
    height:9px!important;
    margin-left:10px!important;
    border-right:2px solid currentColor!important;
    border-bottom:2px solid currentColor!important;
    transform:rotate(45deg)!important;
    opacity:.65!important;
    transition:transform .2s ease!important;
  }
  .ip-site-header .ip-main-nav .menu-item-has-children.is-submenu-open > .ip-menu-parent-toggle:after{
    transform:rotate(225deg)!important;
  }
  .ip-site-header .ip-main-nav .menu-item-has-children > .sub-menu{
    display:grid!important;
    gap:6px!important;
    margin:0!important;
    padding:0 4px!important;
    border-radius:18px!important;
    background:transparent!important;
    max-height:0!important;
    overflow:hidden!important;
    opacity:0!important;
    visibility:hidden!important;
    transition:max-height .25s ease,opacity .18s ease,visibility .18s ease,margin .18s ease,padding .18s ease!important;
  }
  .ip-site-header .ip-main-nav .menu-item-has-children.is-submenu-open > .sub-menu{
    max-height:520px!important;
    margin:7px 0 2px!important;
    padding:0 4px!important;
    opacity:1!important;
    visibility:visible!important;
  }
  .ip-site-header .ip-main-nav .sub-menu a{
    min-height:44px!important;
    padding:0 10px!important;
    border-radius:15px!important;
    background:rgba(255,255,255,.74)!important;
    box-shadow:none!important;
    font-size:.84rem!important;
    font-weight:900!important;
  }
  .ip-site-header .ip-main-nav .sub-menu .ip-menu-icon{
    width:28px!important;
    height:28px!important;
    flex-basis:28px!important;
    border-radius:11px!important;
    font-size:.86rem!important;
  }
  .ip-site-header .ip-mobile-search-menu-item{
    display:block!important;
    margin-top:4px!important;
    padding-top:10px!important;
    border-top:1px solid rgba(7,19,22,.08)!important;
  }
  .ip-site-header .ip-mobile-search-menu-button{
    min-height:52px!important;
    border-radius:18px!important;
    padding:0 12px!important;
    background:linear-gradient(135deg,var(--ip-ink),var(--ip-sea-dark))!important;
    color:#fff!important;
    box-shadow:0 12px 28px rgba(7,19,22,.15)!important;
  }
  .ip-site-header .ip-mobile-search-menu-button .ip-menu-icon{
    background:rgba(255,255,255,.16)!important;
    color:#fff!important;
  }
}
@media (max-width:380px){
  .ip-site-header .ip-main-nav,
  .home .ip-site-header .ip-main-nav,
  .front-page .ip-site-header .ip-main-nav,
  .ip-header-floating.ip-is-scrolled .ip-main-nav{
    top:70px!important;
    right:8px!important;
    bottom:8px!important;
    width:min(90vw,350px)!important;
    padding:12px!important;
    border-radius:24px!important;
  }
  .admin-bar .ip-site-header .ip-main-nav,
  .admin-bar .ip-header-floating.ip-is-scrolled .ip-main-nav{
    top:106px!important;
  }
  .ip-site-header .ip-main-nav a,
  .ip-site-header .ip-main-nav .ip-menu-parent-toggle,
  .ip-site-header .ip-mobile-search-menu-button{
    min-height:48px!important;
    font-size:.9rem!important;
  }
}


/* v2.0.320 - asegurar que el menú móvil quede siempre por encima del contenido en páginas internas */
@media (max-width:900px){
  .ip-site-header{
    z-index:2147483000!important;
    isolation:isolate!important;
  }
  body.ip-mobile-menu-open .ip-site-header,
  body.ip-mobile-menu-open .ip-header-solid,
  body.ip-mobile-menu-open .ip-header-floating{
    z-index:2147483000!important;
  }
  body.ip-mobile-menu-open:before{
    content:"";
    position:fixed;
    inset:0;
    background:rgba(7,19,22,.34);
    -webkit-backdrop-filter:blur(2px);
    backdrop-filter:blur(2px);
    z-index:2147482990;
    pointer-events:auto;
  }
  body.ip-mobile-menu-open .ip-site-header .ip-main-nav,
  body.ip-mobile-menu-open .ip-site-header .ip-main-nav.is-open,
  .ip-site-header .ip-main-nav.is-open{
    z-index:2147483640!important;
  }
  body.ip-mobile-menu-open .ip-site-header .ip-header-inner,
  body.ip-mobile-menu-open .ip-site-header .ip-nav-toggle{
    position:relative!important;
    z-index:2147483641!important;
  }
}


/* v2.0.322 - menú móvil como portal fijo para que no quede atrapado detrás del contenido en páginas internas */
@media (max-width:900px){
  body > .ip-main-nav.ip-mobile-nav-portal,
  body > .ip-main-nav.ip-mobile-nav-portal.is-open{
    position:fixed!important;
    top:var(--ip-mobile-menu-top,86px)!important;
    right:max(10px,env(safe-area-inset-right))!important;
    bottom:max(10px,env(safe-area-inset-bottom))!important;
    left:auto!important;
    width:min(88vw,390px)!important;
    max-width:390px!important;
    min-width:0!important;
    height:auto!important;
    max-height:none!important;
    display:block!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    padding:14px!important;
    margin:0!important;
    border-radius:28px!important;
    border:1px solid rgba(255,255,255,.72)!important;
    background:linear-gradient(180deg,rgba(255,255,255,.99),rgba(243,248,247,.99))!important;
    color:var(--ip-ink)!important;
    box-shadow:-18px 20px 80px rgba(7,19,22,.30)!important;
    -webkit-backdrop-filter:blur(22px) saturate(1.08)!important;
    backdrop-filter:blur(22px) saturate(1.08)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translate3d(calc(100% + 28px),0,0)!important;
    transition:transform .32s cubic-bezier(.2,.82,.2,1),opacity .22s ease,visibility .22s ease!important;
    z-index:2147483647!important;
    isolation:isolate!important;
    contain:none!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal.is-open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translate3d(0,0,0)!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal::before{
    content:"Menú";
    display:flex;
    align-items:center;
    min-height:36px;
    margin:0 2px 10px;
    padding:0 2px;
    color:var(--ip-sea-dark);
    font-size:.78rem;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.08em;
  }
  body > .ip-main-nav.ip-mobile-nav-portal ul,
  body > .ip-main-nav.ip-mobile-nav-portal .ip-compact-menu{
    display:grid!important;
    gap:8px!important;
    align-items:stretch!important;
    list-style:none!important;
    margin:0!important;
    padding:0!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal > ul > li,
  body > .ip-main-nav.ip-mobile-nav-portal .ip-compact-menu > li{
    width:100%!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal a,
  body > .ip-main-nav.ip-mobile-nav-portal .ip-menu-parent-toggle{
    width:100%!important;
    min-height:52px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    padding:0 12px!important;
    border-radius:18px!important;
    background:#fff!important;
    border:1px solid rgba(7,19,22,.07)!important;
    box-shadow:0 8px 24px rgba(7,19,22,.06)!important;
    color:var(--ip-ink)!important;
    font-size:.95rem!important;
    font-weight:950!important;
    line-height:1.12!important;
    text-decoration:none!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal a:hover,
  body > .ip-main-nav.ip-mobile-nav-portal a:focus-visible,
  body > .ip-main-nav.ip-mobile-nav-portal .ip-menu-parent-toggle:hover,
  body > .ip-main-nav.ip-mobile-nav-portal .ip-menu-parent-toggle:focus-visible{
    background:var(--ip-cloud)!important;
    outline:none!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal .ip-menu-label{
    display:flex!important;
    align-items:center!important;
    gap:11px!important;
    min-width:0!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal .ip-menu-icon,
  body > .ip-main-nav.ip-mobile-nav-portal .ip-mobile-search-menu-button .ip-menu-icon{
    width:34px!important;
    height:34px!important;
    flex:0 0 34px!important;
    display:grid!important;
    place-items:center!important;
    border-radius:13px!important;
    background:rgba(29,160,193,.11)!important;
    color:var(--ip-sea-dark)!important;
    font-size:1rem!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal .ip-menu-text{
    white-space:normal!important;
    line-height:1.12!important;
    overflow-wrap:anywhere!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal .menu-item-has-children > .ip-menu-parent-toggle:after{
    content:""!important;
    width:9px!important;
    height:9px!important;
    margin-left:10px!important;
    border-right:2px solid currentColor!important;
    border-bottom:2px solid currentColor!important;
    transform:rotate(45deg)!important;
    opacity:.65!important;
    transition:transform .2s ease!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal .menu-item-has-children.is-submenu-open > .ip-menu-parent-toggle:after{
    transform:rotate(225deg)!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal .menu-item-has-children > .sub-menu{
    display:grid!important;
    gap:6px!important;
    margin:0!important;
    padding:0 4px!important;
    border-radius:18px!important;
    background:transparent!important;
    max-height:0!important;
    overflow:hidden!important;
    opacity:0!important;
    visibility:hidden!important;
    box-shadow:none!important;
    border:0!important;
    position:static!important;
    transform:none!important;
    transition:max-height .25s ease,opacity .18s ease,visibility .18s ease,margin .18s ease,padding .18s ease!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal .menu-item-has-children.is-submenu-open > .sub-menu{
    max-height:520px!important;
    margin:7px 0 2px!important;
    padding:0 4px!important;
    opacity:1!important;
    visibility:visible!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal .sub-menu a{
    min-height:44px!important;
    padding:0 10px!important;
    border-radius:15px!important;
    background:rgba(255,255,255,.74)!important;
    box-shadow:none!important;
    font-size:.84rem!important;
    font-weight:900!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal .sub-menu .ip-menu-icon{
    width:28px!important;
    height:28px!important;
    flex-basis:28px!important;
    border-radius:11px!important;
    font-size:.86rem!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal .ip-mobile-search-menu-item{
    display:block!important;
    margin-top:4px!important;
    padding-top:10px!important;
    border-top:1px solid rgba(7,19,22,.08)!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal .ip-mobile-search-menu-button{
    width:100%!important;
    min-height:52px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:11px!important;
    border:0!important;
    border-radius:18px!important;
    padding:0 12px!important;
    background:linear-gradient(135deg,var(--ip-ink),var(--ip-sea-dark))!important;
    color:#fff!important;
    box-shadow:0 12px 28px rgba(7,19,22,.15)!important;
    font-size:.95rem!important;
    font-weight:950!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal .ip-mobile-search-menu-button .ip-menu-icon{
    background:rgba(255,255,255,.16)!important;
    color:#fff!important;
  }
  body.ip-mobile-menu-open:before{
    z-index:2147483600!important;
  }
  body.ip-mobile-menu-open .ip-site-header,
  body.ip-mobile-menu-open .ip-header-solid,
  body.ip-mobile-menu-open .ip-header-floating{
    z-index:2147483630!important;
  }
  body.ip-mobile-menu-open .ip-site-header .ip-header-inner,
  body.ip-mobile-menu-open .ip-site-header .ip-nav-toggle{
    z-index:2147483635!important;
  }
}
@media (max-width:380px){
  body > .ip-main-nav.ip-mobile-nav-portal,
  body > .ip-main-nav.ip-mobile-nav-portal.is-open{
    right:max(8px,env(safe-area-inset-right))!important;
    bottom:max(8px,env(safe-area-inset-bottom))!important;
    width:min(90vw,350px)!important;
    padding:12px!important;
    border-radius:24px!important;
  }
  body > .ip-main-nav.ip-mobile-nav-portal a,
  body > .ip-main-nav.ip-mobile-nav-portal .ip-menu-parent-toggle,
  body > .ip-main-nav.ip-mobile-nav-portal .ip-mobile-search-menu-button{
    min-height:48px!important;
    font-size:.9rem!important;
  }
}


/* v2.0.322 - buscador flotante por encima del header y del menú móvil */
.ip-global-search-modal,
body > .ip-global-search-modal{
  z-index:2147483647!important;
  isolation:isolate!important;
  overscroll-behavior:contain!important;
}
body.ip-search-modal-open .ip-global-search-modal{
  display:grid!important;
}
body.ip-search-modal-open .ip-site-header,
body.ip-search-modal-open .ip-header-solid,
body.ip-search-modal-open .ip-header-floating{
  z-index:1!important;
}
body.ip-search-modal-open > .ip-main-nav.ip-mobile-nav-portal{
  z-index:1!important;
}
@supports (height:100dvh){
  .ip-global-search-modal{
    min-height:100dvh!important;
  }
}
@media (max-width:900px){
  body > .ip-global-search-modal.ip-global-search-modal{
    inset:0!important;
    width:100vw!important;
    min-height:100vh!important;
    height:100vh!important;
    padding:max(14px,env(safe-area-inset-top)) 12px max(14px,env(safe-area-inset-bottom))!important;
    align-items:start!important;
    justify-items:center!important;
    place-items:start center!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
  @supports (height:100dvh){
    body > .ip-global-search-modal.ip-global-search-modal{
      min-height:100dvh!important;
      height:100dvh!important;
    }
  }
  body > .ip-global-search-modal .ip-global-search-backdrop{
    position:fixed!important;
    z-index:0!important;
  }
  body > .ip-global-search-modal .ip-global-search-panel{
    z-index:1!important;
    width:min(100%,720px)!important;
    max-height:calc(100vh - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    overflow-y:auto!important;
    margin:0!important;
  }
  @supports (height:100dvh){
    body > .ip-global-search-modal .ip-global-search-panel{
      max-height:calc(100dvh - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;
    }
  }
}

/* v2.0.326 - pantalla de bienvenida inicial */
.ip-welcome-screen{
  position:fixed!important;
  inset:0!important;
  z-index:2147483647!important;
  display:grid!important;
  place-items:center!important;
  min-width:100vw!important;
  min-height:100vh!important;
  padding:24px!important;
  background:#fff!important;
  color:var(--ip-ink,#071316)!important;
  opacity:0!important;
  visibility:hidden!important;
  transform:none!important;
  overflow:hidden!important;
  isolation:isolate!important;
  transition:opacity 1.05s ease,visibility 1.05s ease!important;
}
@supports (height:100dvh){
  .ip-welcome-screen{
    min-height:100dvh!important;
  }
}
.ip-welcome-screen[hidden]{
  display:none!important;
}
.ip-welcome-screen.is-open{
  opacity:1!important;
  visibility:visible!important;
}
.ip-welcome-screen.is-leaving{
  opacity:0!important;
  visibility:hidden!important;
}
body.ip-welcome-open{
  overflow:hidden!important;
  touch-action:none!important;
}
body.ip-welcome-open .ip-site-header,
body.ip-welcome-open .ip-header-solid,
body.ip-welcome-open .ip-header-floating,
body.ip-welcome-open > .ip-main-nav.ip-mobile-nav-portal,
body.ip-welcome-open .ip-global-search-modal{
  z-index:1!important;
}
.ip-welcome-close{
  position:fixed!important;
  top:max(16px,env(safe-area-inset-top))!important;
  right:max(16px,env(safe-area-inset-right))!important;
  z-index:2!important;
  width:48px!important;
  height:48px!important;
  display:grid!important;
  place-items:center!important;
  border:0!important;
  border-radius:999px!important;
  background:rgba(7,19,22,.06)!important;
  color:var(--ip-ink,#071316)!important;
  box-shadow:0 12px 30px rgba(7,19,22,.08)!important;
  font-size:2rem!important;
  line-height:1!important;
  font-weight:850!important;
  cursor:pointer!important;
  transition:transform .2s ease,background .2s ease,box-shadow .2s ease!important;
}
.ip-welcome-close:hover,
.ip-welcome-close:focus-visible{
  transform:scale(1.05)!important;
  background:rgba(12,166,198,.11)!important;
  box-shadow:0 14px 34px rgba(12,166,198,.16)!important;
  outline:2px solid rgba(12,166,198,.35)!important;
  outline-offset:3px!important;
}
.ip-welcome-content{
  width:min(92vw,620px)!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  gap:24px!important;
  transform:translateY(8px) scale(.98)!important;
  opacity:0!important;
  transition:opacity .55s ease,transform .55s cubic-bezier(.2,.85,.2,1)!important;
}
.ip-welcome-screen.is-open .ip-welcome-content{
  opacity:1!important;
  transform:translateY(0) scale(1)!important;
}
.ip-welcome-screen.is-leaving .ip-welcome-content{
  opacity:0!important;
  transform:translateY(-4px) scale(.985)!important;
}
.ip-welcome-logo{
  display:block!important;
  width:min(64vw,300px)!important;
  height:auto!important;
  max-height:170px!important;
  object-fit:contain!important;
  filter:drop-shadow(0 20px 34px rgba(7,19,22,.08))!important;
  animation:ipWelcomeHeartbeat 1.35s ease-in-out infinite!important;
  transform-origin:center!important;
}
.ip-welcome-type{
  min-height:2.8em!important;
  margin:0!important;
  color:var(--ip-ink,#071316)!important;
  font-size:clamp(1.55rem,4.8vw,3rem)!important;
  line-height:1.12!important;
  font-weight:950!important;
  letter-spacing:-.045em!important;
  text-wrap:balance!important;
  opacity:1!important;
  transform:translateY(0)!important;
  transition:opacity .48s ease,transform .48s ease!important;
}
.ip-welcome-screen.is-text-hiding .ip-welcome-type{
  opacity:0!important;
  transform:translateY(-8px)!important;
}
.ip-welcome-type:after{
  content:''!important;
  display:inline-block!important;
  width:.08em!important;
  height:.9em!important;
  margin-left:.1em!important;
  transform:translateY(.12em)!important;
  border-radius:2px!important;
  background:var(--ip-aqua,#0ca6c6)!important;
  animation:ipWelcomeCursor .9s steps(2,end) infinite!important;
}
.ip-welcome-screen.is-ready .ip-welcome-type:after{
  opacity:0!important;
  animation:none!important;
}
.ip-welcome-action{
  min-height:1.2em!important;
  margin:0!important;
  color:var(--ip-lime,#1da0c1)!important;
  font-size:clamp(2.25rem,7vw,5rem)!important;
  line-height:1!important;
  font-weight:1000!important;
  letter-spacing:.02em!important;
  opacity:0!important;
  transform:translateY(18px) scale(.9)!important;
  filter:blur(8px)!important;
  transition:opacity .72s ease,transform .72s cubic-bezier(.16,1,.3,1),filter .72s ease!important;
  text-wrap:balance!important;
}
.ip-welcome-screen.is-blanking .ip-welcome-content{
  opacity:0!important;
  transform:translateY(-8px) scale(.985)!important;
  transition:opacity .65s ease,transform .65s ease!important;
}
.ip-welcome-screen.is-blanking .ip-welcome-close{
  opacity:0!important;
  pointer-events:none!important;
  transform:scale(.96)!important;
}

.ip-welcome-action[hidden]{
  display:none!important;
}
.ip-welcome-screen.is-action-visible .ip-welcome-action{
  opacity:1!important;
  transform:translateY(0) scale(1)!important;
  filter:blur(0)!important;
  text-shadow:0 12px 34px rgba(29,160,193,.20)!important;
}
@keyframes ipWelcomeHeartbeat{
  0%,100%{transform:scale(1);}
  14%{transform:scale(1.055);}
  28%{transform:scale(1);}
  42%{transform:scale(1.04);}
  70%{transform:scale(1);}
}
@keyframes ipWelcomeCursor{
  0%,45%{opacity:1;}
  46%,100%{opacity:0;}
}
@media (max-width:600px){
  .ip-welcome-screen{
    padding:18px!important;
  }
  .ip-welcome-close{
    width:44px!important;
    height:44px!important;
    font-size:1.8rem!important;
  }
  .ip-welcome-content{
    gap:20px!important;
  }
  .ip-welcome-logo{
    width:min(72vw,250px)!important;
    max-height:145px!important;
  }
  .ip-welcome-type{
    min-height:3.35em!important;
    font-size:clamp(1.72rem,8vw,2.55rem)!important;
    line-height:1.08!important;
  }
  .ip-welcome-action{
    font-size:clamp(2.3rem,12vw,4.4rem)!important;
  }
}
@media (prefers-reduced-motion:reduce){
  .ip-welcome-screen,
  .ip-welcome-content,
  .ip-welcome-action,
  .ip-welcome-logo,
  .ip-welcome-type,
  .ip-welcome-type:after{
    animation:none!important;
    transition:none!important;
  }
}

/* v2.0.511 - bienvenida azul configurable con cuenta atras */
.ip-welcome-screen{
  place-items:center start!important;
  padding:clamp(32px,8vw,120px)!important;
  background:var(--ip-lime,#1da0c1)!important;
  color:#fff!important;
  transition:opacity .72s ease,visibility .72s ease!important;
}
.ip-welcome-screen:before{
  display:none!important;
}
.ip-welcome-exit{
  position:fixed!important;
  top:max(18px,env(safe-area-inset-top))!important;
  right:max(18px,env(safe-area-inset-right))!important;
  z-index:3!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  transition:opacity .25s ease,transform .25s ease!important;
}
.ip-welcome-countdown{
  display:inline-flex!important;
  min-height:42px!important;
  align-items:center!important;
  gap:5px!important;
  padding:9px 13px!important;
  border:1px solid rgba(255,255,255,.32)!important;
  border-radius:4px!important;
  background:var(--ip-ink,#071316)!important;
  color:rgba(255,255,255,.84)!important;
  font-size:.78rem!important;
  font-weight:800!important;
  font-variant-numeric:tabular-nums!important;
  line-height:1!important;
  backdrop-filter:blur(12px)!important;
}
.ip-welcome-countdown strong{
  min-width:1ch!important;
  color:#fff!important;
  font-size:.96rem!important;
  font-weight:1000!important;
  text-align:center!important;
}
.ip-welcome-close{
  position:relative!important;
  top:auto!important;
  right:auto!important;
  width:44px!important;
  height:44px!important;
  flex:0 0 44px!important;
  border:1px solid rgba(255,255,255,.42)!important;
  background:#fff!important;
  color:var(--ip-ink,#071316)!important;
  box-shadow:0 12px 30px rgba(0,0,0,.22)!important;
  font-size:1.75rem!important;
}
.ip-welcome-close:hover,
.ip-welcome-close:focus-visible{
  transform:translateY(-2px)!important;
  background:var(--ip-ink,#071316)!important;
  color:#fff!important;
  box-shadow:0 16px 36px rgba(0,0,0,.28)!important;
}
.ip-welcome-content{
  position:relative!important;
  z-index:1!important;
  width:min(760px,calc(100vw - 64px))!important;
  align-items:flex-start!important;
  gap:18px!important;
  padding-left:30px!important;
  border-left:5px solid var(--ip-ink,#071316)!important;
  text-align:left!important;
  transform:translateY(18px)!important;
  transition:opacity .55s ease,transform .7s cubic-bezier(.16,1,.3,1)!important;
}
.ip-welcome-screen.is-open .ip-welcome-content{
  transform:translateY(0)!important;
}
.ip-welcome-logo{
  width:250px!important;
  max-width:70vw!important;
  max-height:110px!important;
  filter:drop-shadow(2px 0 0 #fff) drop-shadow(-2px 0 0 #fff) drop-shadow(0 2px 0 #fff) drop-shadow(0 -2px 0 #fff) drop-shadow(0 14px 30px rgba(0,0,0,.22))!important;
  animation:ipWelcomeLogoIn .9s cubic-bezier(.16,1,.3,1) both!important;
}
.ip-welcome-kicker{
  display:inline-flex!important;
  align-items:center!important;
  min-height:30px!important;
  padding:6px 10px!important;
  border:1px solid var(--ip-ink,#071316)!important;
  border-radius:4px!important;
  background:var(--ip-ink,#071316)!important;
  color:#fff!important;
  font-size:.75rem!important;
  font-weight:950!important;
  line-height:1!important;
  text-transform:uppercase!important;
  backdrop-filter:blur(10px)!important;
}
.ip-welcome-type{
  min-height:2.25em!important;
  max-width:720px!important;
  color:#fff!important;
  font-size:3.4rem!important;
  line-height:1.04!important;
  letter-spacing:0!important;
  text-shadow:0 10px 34px rgba(0,0,0,.28)!important;
}
.ip-welcome-type:after{
  background:var(--ip-ink,#071316)!important;
}
.ip-welcome-action{
  color:var(--ip-ink,#071316)!important;
  font-size:5rem!important;
  line-height:.95!important;
  letter-spacing:0!important;
  text-shadow:0 12px 36px rgba(0,0,0,.34)!important;
}
.ip-welcome-screen.is-action-visible .ip-welcome-action{
  text-shadow:0 12px 36px rgba(0,0,0,.34)!important;
}
.ip-welcome-caption{
  margin:0!important;
  color:var(--ip-ink,#071316)!important;
  font-size:1rem!important;
  font-weight:750!important;
  line-height:1.45!important;
}
.ip-welcome-screen.is-blanking .ip-welcome-exit,
.ip-welcome-screen.is-leaving .ip-welcome-exit{
  opacity:0!important;
  pointer-events:none!important;
  transform:translateY(-6px)!important;
}
@keyframes ipWelcomeLogoIn{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}
@media (max-width:600px){
  .ip-welcome-screen{
    place-items:center!important;
    padding:84px 22px 36px!important;
  }
  .ip-welcome-exit{
    top:max(12px,env(safe-area-inset-top))!important;
    right:max(12px,env(safe-area-inset-right))!important;
  }
  .ip-welcome-countdown{
    min-height:40px!important;
    padding:8px 10px!important;
    font-size:.7rem!important;
  }
  .ip-welcome-close{
    width:40px!important;
    height:40px!important;
    flex-basis:40px!important;
    font-size:1.55rem!important;
  }
  .ip-welcome-content{
    width:100%!important;
    align-items:center!important;
    gap:15px!important;
    padding:22px 0 0!important;
    border-left:0!important;
    border-top:4px solid var(--ip-ink,#071316)!important;
    text-align:center!important;
  }
  .ip-welcome-logo{
    width:210px!important;
    max-height:92px!important;
  }
  .ip-welcome-type{
    min-height:3em!important;
    font-size:2rem!important;
    line-height:1.08!important;
  }
  .ip-welcome-action{
    font-size:3.2rem!important;
  }
  .ip-welcome-caption{
    font-size:.9rem!important;
  }
}
@media (prefers-reduced-motion:reduce){
  .ip-welcome-logo,
  .ip-welcome-exit{
    animation:none!important;
    transition:none!important;
  }
}

/* v2.0.328 - mantener el menu desktop por encima del mapa turistico */
@media (min-width:901px){
  .ip-site-header{
    z-index:3000;
  }
  .ip-site-header .ip-main-nav,
  .ip-site-header .ip-main-nav > ul > li{
    position:relative;
    z-index:3001;
  }
  .ip-site-header .ip-main-nav .sub-menu{
    z-index:3002;
  }
}
/* Rutas - editor manual y ficha publica de rutas */
.ip-route-itinerary-page .ip-route-new-hero{
  position:relative;
  overflow:hidden;
  padding:104px 0 76px;
  background:#e9f6f5;
  color:var(--ip-ink);
}
.ip-route-itinerary-page .ip-route-new-hero.has-image{
  background-image:linear-gradient(90deg,rgba(7,19,22,.72),rgba(7,19,22,.28)),var(--ip-route-new-hero-image);
  background-size:cover;
  background-position:center;
  color:#fff;
}
.ip-route-new-back{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:8px 12px;
  border:1px solid rgba(7,19,22,.14);
  border-radius:999px;
  background:rgba(255,255,255,.86);
  color:var(--ip-sea-dark);
  font-weight:900;
  font-size:.82rem;
}
.ip-route-new-hero.has-image .ip-route-new-back{
  border-color:rgba(255,255,255,.42);
  background:rgba(255,255,255,.16);
  color:#fff;
}
.ip-route-new-hero h1{
  max-width:1040px;
  margin:20px 0 0;
  font-size:5.4rem;
  line-height:.96;
  letter-spacing:0;
}
.ip-route-new-metrics{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:24px;
}
.ip-route-new-metrics span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:42px;
  padding:9px 13px;
  border:1px solid rgba(7,19,22,.12);
  border-radius:999px;
  background:#fff;
  color:var(--ip-ink);
  font-size:.9rem;
  font-weight:800;
}
.ip-route-new-hero.has-image .ip-route-new-metrics span{
  border-color:rgba(255,255,255,.32);
  background:rgba(255,255,255,.2);
  color:#fff;
}
.ip-route-new-metrics b{
  color:var(--ip-sea-dark);
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.ip-route-new-hero.has-image .ip-route-new-metrics b{
  color:#dff6f5;
}
.ip-route-new-flow{
  padding-top:34px;
}
.ip-route-new-stack{
  display:grid;
  gap:24px;
}
.ip-route-new-card{
  position:relative;
  overflow:hidden;
  border:1px solid var(--ip-line);
  border-radius:30px;
  background:#fff;
  box-shadow:var(--ip-shadow-soft);
  padding:26px;
}
.ip-route-new-content{
  font-size:1.04rem;
}
.ip-route-before-card{
  display:grid;
  gap:8px;
  background:linear-gradient(180deg,#fff,#f3f8f7);
}
.ip-route-before-card h2,
.ip-route-new-section-head h2{
  margin:0;
  color:var(--ip-ink);
  font-size:2rem;
  line-height:1.08;
  letter-spacing:0;
}
.ip-route-before-card p{
  margin:0;
  max-width:880px;
  color:var(--ip-ink-2);
  font-size:1.08rem;
  line-height:1.65;
}
.ip-route-new-section-head{
  display:grid;
  gap:5px;
  margin-bottom:18px;
}
.ip-route-point-list{
  display:grid;
  gap:16px;
}
.ip-route-point-card{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:18px;
  align-items:stretch;
  border:1px solid rgba(7,19,22,.1);
  border-radius:24px;
  background:#f8fbfa;
  padding:12px;
}
.ip-route-point-media{
  position:relative;
  min-height:172px;
  overflow:hidden;
  border-radius:18px;
  background:#dceceb;
}
.ip-route-point-media a,
.ip-route-point-media img{
  display:block;
  width:100%;
  height:100%;
}
.ip-route-point-media img{
  object-fit:cover;
}
.ip-route-point-number{
  position:absolute;
  top:10px;
  left:10px;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:999px;
  background:var(--ip-lime);
  color:#fff;
  font-weight:950;
  box-shadow:0 10px 22px rgba(7,19,22,.22);
}
.ip-route-point-body{
  display:grid;
  align-content:center;
  gap:10px;
  min-width:0;
  padding:8px 8px 8px 0;
}
.ip-route-point-title-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.ip-route-point-title-row h3{
  margin:0;
  color:var(--ip-ink);
  font-size:1.35rem;
  line-height:1.12;
  letter-spacing:0;
}
.ip-route-point-title-row span{
  flex:0 0 auto;
  border:1px solid rgba(29,160,193,.22);
  border-radius:999px;
  background:#fff;
  color:var(--ip-sea-dark);
  padding:6px 10px;
  font-size:.78rem;
  font-weight:900;
}
.ip-route-point-body p{
  margin:0;
  color:var(--ip-muted);
  line-height:1.58;
}
.ip-route-point-link{
  justify-self:start;
  color:var(--ip-sea-dark);
  font-weight:900;
}
.ip-route-itinerary-page .ip-route-map-card .ip-single-map-shell{
  margin-top:0;
}
.ip-route-itinerary-page .ip-route-map-card .ip-map-single{
  height:560px;
  min-height:560px;
}
.ip-route-faq-list{
  display:grid;
  gap:10px;
}
.ip-route-faq-list details{
  border:1px solid rgba(7,19,22,.1);
  border-radius:18px;
  background:#f8fbfa;
  padding:0;
}
.ip-route-faq-list summary{
  cursor:pointer;
  padding:16px 18px;
  color:var(--ip-ink);
  font-weight:900;
}
.ip-route-faq-list p{
  margin:0;
  padding:0 18px 18px;
  color:var(--ip-muted);
  line-height:1.62;
}
@media (max-width:900px){
  .ip-route-new-hero h1{
    font-size:4rem;
  }
  .ip-route-point-card{
    grid-template-columns:180px minmax(0,1fr);
  }
}
@media (max-width:640px){
  .ip-route-itinerary-page .ip-route-new-hero{
    padding:72px 0 48px;
  }
  .ip-route-new-hero h1{
    font-size:2.75rem;
    line-height:1;
  }
  .ip-route-new-metrics{
    display:grid;
    grid-template-columns:1fr;
  }
  .ip-route-new-metrics span{
    width:100%;
    justify-content:space-between;
  }
  .ip-route-new-card{
    border-radius:22px;
    padding:18px;
  }
  .ip-route-before-card h2,
  .ip-route-new-section-head h2{
    font-size:1.55rem;
  }
  .ip-route-before-card p{
    font-size:1rem;
  }
  .ip-route-point-card{
    grid-template-columns:1fr;
    gap:12px;
    border-radius:20px;
  }
  .ip-route-point-media{
    min-height:220px;
  }
  .ip-route-point-body{
    padding:0 2px 4px;
  }
  .ip-route-point-title-row{
    display:grid;
  }
  .ip-route-point-title-row span{
    justify-self:start;
  }
  .ip-route-itinerary-page .ip-route-map-card .ip-map-single{
    height:380px;
    min-height:380px;
  }
}

/* Rutas - ajustes de ficha publica */
.ip-route-itinerary-page .ip-route-new-hero{
  display:flex;
  align-items:flex-end;
  min-height:clamp(320px,44vw,560px);
  padding:clamp(108px,12vw,156px) 0 clamp(34px,5vw,62px);
}
.ip-route-itinerary-page .ip-route-new-hero .ip-container{
  position:relative;
  z-index:2;
}
.ip-route-itinerary-page .ip-route-new-hero .ip-news-single-hero-tab{
  z-index:4;
}
.ip-route-new-hero h1{
  max-width:960px;
  margin:0;
  font-size:clamp(2.05rem,5vw,4.55rem);
  line-height:.98;
  letter-spacing:0;
}
.ip-route-new-meta-line{
  display:block;
  max-width:100%;
  margin:14px 0 0;
  color:inherit;
  font-size:clamp(.82rem,2.2vw,1rem);
  font-weight:950;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ip-route-new-hero.has-image .ip-route-new-meta-line{
  color:#fff;
  text-shadow:0 10px 28px rgba(0,0,0,.28);
}
.ip-route-before-card,
.ip-route-itinerary-card,
.ip-route-map-card{
  padding-top:24px;
}
.ip-route-before-card h2,
.ip-route-itinerary-card .ip-route-new-section-head h2,
.ip-route-map-card .ip-route-new-section-head h2{
  display:none;
}
.ip-route-before-card .ip-eyebrow,
.ip-route-itinerary-card .ip-eyebrow,
.ip-route-map-card .ip-eyebrow{
  justify-self:start;
  max-width:100%;
  white-space:normal;
}
.ip-route-itinerary-card .ip-route-new-section-head,
.ip-route-map-card .ip-route-new-section-head{
  margin-bottom:14px;
}
.ip-route-point-card{
  grid-template-columns:190px minmax(0,1fr);
  align-items:center;
}
.ip-route-point-media{
  aspect-ratio:1/1;
  min-height:0;
  align-self:start;
}
.ip-route-point-media a,
.ip-route-point-media img{
  height:100%;
}
@media (max-width:900px){
  .ip-route-point-card{
    grid-template-columns:160px minmax(0,1fr);
  }
}
@media (max-width:640px){
  .ip-route-itinerary-page .ip-route-new-hero{
    min-height:clamp(280px,78vw,430px);
    padding:96px 0 30px;
  }
  .ip-route-new-hero h1{
    font-size:clamp(1.55rem,7.2vw,2.35rem);
    line-height:1.03;
  }
  .ip-route-new-meta-line{
    font-size:clamp(.68rem,3.15vw,.82rem);
  }
  .ip-route-point-card{
    grid-template-columns:1fr;
  }
  .ip-route-point-media{
    width:100%;
    min-height:0;
  }
}

/* Rutas - hero, botones y marcadores */
.single-ip_ruta .ip-route-page-main.ip-route-itinerary-page,
.single-ip_ruta .ip-events-ticker--header + .ip-route-page-main.ip-route-itinerary-page{
  padding-top:0;
  margin-top:0;
}
.single-ip_ruta .ip-route-itinerary-page .ip-route-new-hero{
  margin-top:0;
}
.ip-route-content-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid var(--ip-line);
}
.ip-route-content-button,
.ip-route-point-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  border-radius:999px;
  border:1px solid rgba(7,19,22,.1);
  background:var(--ip-lime);
  color:#fff;
  padding:10px 16px;
  font-size:.86rem;
  font-weight:950;
  line-height:1.15;
  text-align:center;
  box-shadow:0 12px 28px rgba(29,160,193,.22);
}
.ip-route-content-button:hover,
.ip-route-content-button:focus-visible,
.ip-route-point-link:hover,
.ip-route-point-link:focus-visible{
  background:var(--ip-sea-dark);
  color:#fff;
  transform:translateY(-1px);
}
.ip-route-itinerary-card,
.ip-route-map-card{
  scroll-margin-top:96px;
}
.ip-route-number-marker{
  background:transparent;
  border:0;
}
.ip-route-number-marker span{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:2px solid #fff;
  border-radius:999px;
  background:var(--ip-lime);
  color:#fff;
  font-size:.92rem;
  font-weight:950;
  line-height:1;
  box-shadow:0 10px 24px rgba(7,19,22,.28);
}
@media (max-width:640px){
  .ip-route-content-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .ip-route-content-button,
  .ip-route-point-link{
    width:100%;
  }
  .ip-route-itinerary-card,
  .ip-route-map-card{
    scroll-margin-top:72px;
  }
}

/* Rutas - compartir y popup de puntos */
.ip-route-new-hero-meta{
  display:flex;
  align-items:center;
  gap:10px;
  max-width:100%;
  margin-top:14px;
}
.ip-route-new-hero-meta .ip-route-new-meta-line{
  flex:0 1 auto;
  min-width:0;
  max-width:100%;
  margin:0;
}
.ip-route-new-share{
  flex:0 0 auto;
  margin:0;
}
.leaflet-popup-content .ip-route-map-popup{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:10px;
  align-items:center;
  min-width:236px;
  max-width:286px;
}
.ip-route-map-popup-media{
  display:block;
  width:76px;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:14px;
  background:var(--ip-cloud);
}
.ip-route-map-popup-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.ip-route-map-popup-body{
  display:grid;
  gap:6px;
  min-width:0;
}
.ip-route-map-popup-number{
  justify-self:start;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  border-radius:999px;
  background:#eef8f7;
  color:var(--ip-sea-dark);
  padding:5px 8px;
  font-size:.68rem;
  font-weight:950;
  line-height:1;
}
.ip-route-map-popup strong{
  display:block;
  color:var(--ip-ink);
  font-size:.95rem;
  line-height:1.12;
}
.ip-route-map-popup-button{
  justify-self:start;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  border-radius:999px;
  background:var(--ip-lime);
  color:#fff;
  padding:7px 12px;
  font-size:.76rem;
  font-weight:950;
  line-height:1;
  box-shadow:0 10px 22px rgba(29,160,193,.22);
}
.ip-route-map-popup-button:hover,
.ip-route-map-popup-button:focus-visible{
  background:var(--ip-sea-dark);
  color:#fff;
}
@media (max-width:640px){
  .ip-route-new-hero-meta{
    flex-wrap:nowrap;
  }
  .ip-route-new-share{
    min-height:32px;
    padding:7px 10px;
    font-size:.72rem;
  }
  .leaflet-popup-content .ip-route-map-popup{
    min-width:218px;
    grid-template-columns:68px minmax(0,1fr);
  }
  .ip-route-map-popup-media{
    width:68px;
  }
}

/* v2.0.355 - popup de ruta, fullscreen y schema FAQ */
.single-ip_ruta .ip-route-single-map-shell.is-fullscreen{
  position:fixed!important;
  inset:18px!important;
  z-index:100010!important;
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  border-radius:28px!important;
  overflow:hidden!important;
  background:var(--ip-paper)!important;
  box-shadow:0 30px 120px rgba(0,0,0,.42)!important;
}
.single-ip_ruta .ip-route-single-map-shell.is-fullscreen .ip-map-single{
  height:calc(100vh - 36px)!important;
  min-height:calc(100vh - 36px)!important;
}
.single-ip_ruta .ip-route-single-map-shell.is-fullscreen .ip-map-fullscreen-button{
  z-index:100020;
}
.leaflet-popup-content .ip-route-map-popup.ip-map-popup-place{
  display:block;
  width:244px;
  max-width:78vw;
  border-radius:20px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 18px 48px rgba(7,19,22,.16);
}
.leaflet-popup-content .ip-route-map-popup.ip-map-popup-place .ip-route-map-popup-image{
  display:block;
  width:100%;
  height:132px;
  overflow:hidden;
  background:var(--ip-cloud);
}
.leaflet-popup-content .ip-route-map-popup.ip-map-popup-place .ip-route-map-popup-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  margin:0;
  border-radius:0;
}
.leaflet-popup-content .ip-route-map-popup.ip-map-popup-place .ip-route-map-popup-body{
  display:grid;
  gap:8px;
  padding:12px;
}
.leaflet-popup-content .ip-route-map-popup .ip-route-map-popup-number{
  justify-self:start;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  border-radius:999px;
  background:#eef8f7;
  color:var(--ip-sea-dark);
  padding:5px 9px;
  font-size:.68rem;
  font-weight:950;
  line-height:1;
}
.leaflet-popup-content .ip-route-map-popup.ip-map-popup-place .ip-map-popup-title{
  margin:0;
  font-size:1.05rem;
  line-height:1.16;
}
.leaflet-popup-content .ip-route-map-popup.ip-map-popup-place .ip-route-map-popup-button{
  width:100%;
  min-height:40px;
  margin:2px 0 0;
  color:#fff;
  background:var(--ip-lime);
  box-shadow:0 12px 26px rgba(29,160,193,.24);
}
.leaflet-popup-content .ip-route-map-popup.ip-map-popup-place .ip-route-map-popup-button:hover{
  background:var(--ip-sea-dark);
  color:#fff;
}
.ip-route-leaflet-popup .leaflet-popup-content-wrapper{
  border-radius:22px;
  overflow:hidden;
}
@media (max-width:640px){
  .single-ip_ruta .ip-route-single-map-shell.is-fullscreen{
    inset:8px!important;
    border-radius:20px!important;
  }
  .single-ip_ruta .ip-route-single-map-shell.is-fullscreen .ip-map-single{
    height:calc(100vh - 16px)!important;
    min-height:calc(100vh - 16px)!important;
  }
  .leaflet-popup-content .ip-route-map-popup.ip-map-popup-place{
    width:216px;
    max-width:76vw;
  }
  .leaflet-popup-content .ip-route-map-popup.ip-map-popup-place .ip-route-map-popup-image{
    height:116px;
  }
}

/* v2.0.356 - rutas: ubicacion del usuario en mapa y alojamientos finales */
.single-ip_ruta .ip-route-location-controls{
  z-index:530;
}
.single-ip_ruta .ip-route-location-button{
  min-height:42px;
  padding:10px 16px;
  box-shadow:none;
  white-space:nowrap;
}
.single-ip_ruta .ip-route-location-button:disabled{
  opacity:.72;
  cursor:wait;
  transform:none;
}
.single-ip_ruta .ip-route-location-clear{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  flex:0 0 42px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:999px;
  background:#fff;
  color:var(--ip-sea-dark);
  box-shadow:none;
  font-size:.9rem;
  font-weight:950;
  line-height:1;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease, color .2s ease;
}
.single-ip_ruta .ip-route-location-clear:hover,
.single-ip_ruta .ip-route-location-clear:focus-visible{
  transform:translateY(-1px);
  background:var(--ip-sea-dark);
  color:#fff;
}
.single-ip_ruta .ip-route-location-clear[hidden]{
  display:none!important;
}
.single-ip_ruta .ip-route-single-map-shell.is-fullscreen .ip-route-location-controls{
  z-index:100020;
}
.single-ip_ruta .ip-route-accommodations-section{
  margin-top:clamp(18px,3vw,34px);
}
@media (max-width:640px){
  .single-ip_ruta .ip-route-location-controls{
    right:10px;
    bottom:10px;
    gap:8px;
    padding:6px;
  }
  .single-ip_ruta .ip-route-location-button{
    min-height:40px;
    padding:9px 12px;
    font-size:.84rem;
  }
  .single-ip_ruta .ip-route-location-clear{
    width:40px;
    height:40px;
    flex-basis:40px;
  }
}

/* v2.0.357 - mapa interactivo: actualizar y borrar ubicacion */
.ip-map-page-main .ip-map-floating-controls .ip-button-lime{
  min-height:42px;
  padding:10px 16px;
  box-shadow:none;
  white-space:nowrap;
}
.ip-map-page-main .ip-map-floating-controls .ip-button-lime:disabled{
  opacity:.72;
  cursor:wait;
  transform:none;
}
.ip-map-page-main .ip-map-location-clear{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  flex:0 0 42px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:999px;
  background:#fff;
  color:var(--ip-sea-dark);
  box-shadow:none;
  font-size:.9rem;
  font-weight:950;
  line-height:1;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease, color .2s ease;
}
.ip-map-page-main .ip-map-location-clear:hover,
.ip-map-page-main .ip-map-location-clear:focus-visible{
  transform:translateY(-1px);
  background:var(--ip-sea-dark);
  color:#fff;
}
.ip-map-page-main .ip-map-location-clear[hidden]{
  display:none!important;
}
.ip-map-page-main .ip-map-shell.is-fullscreen .ip-map-floating-controls{
  z-index:100020;
}
@media (max-width:640px){
  .ip-map-page-main .ip-map-floating-controls{
    right:10px;
    bottom:10px;
    gap:8px;
    padding:6px;
  }
  .ip-map-page-main .ip-map-floating-controls .ip-button-lime{
    min-height:40px;
    padding:9px 12px;
    font-size:.84rem;
  }
  .ip-map-page-main .ip-map-location-clear{
    width:40px;
    height:40px;
    flex-basis:40px;
  }
}

/* v2.0.358 - POI: como llegar, actualizar ubicacion y borrar ruta */
.ip-single-location-clear{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  flex:0 0 42px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:999px;
  background:#fff;
  color:var(--ip-sea-dark);
  box-shadow:none;
  font-size:.9rem;
  font-weight:950;
  line-height:1;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease, color .2s ease;
}
.ip-single-location-clear:hover,
.ip-single-location-clear:focus-visible{
  transform:translateY(-1px);
  background:var(--ip-sea-dark);
  color:#fff;
}
.ip-single-location-clear[hidden]{
  display:none!important;
}
.ip-single-map-shell.is-fullscreen .ip-single-map-actions{
  z-index:100020;
}
@media (max-width:640px){
  .ip-single-map-actions{
    max-width:calc(100% - 20px);
    gap:8px;
  }
  .ip-single-location-clear{
    width:40px;
    height:40px;
    flex-basis:40px;
  }
}

/* v2.0.361 - plantilla Blog */
.ip-blog-page-listing{
  padding-top:clamp(24px,4vw,46px);
}
.ip-blog-card-kicker{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color:var(--ip-muted);
  font-size:.74rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.ip-blog-card-kicker span{
  color:var(--ip-sea-dark);
}
.ip-blog-card-kicker time{
  font-size:.72rem;
  text-transform:none;
  letter-spacing:0;
  color:var(--ip-muted);
}
.ip-blog-card .ip-blog-card-button{
  min-width:160px;
}
@media (max-width:640px){
  .ip-blog-card-kicker{
    display:grid;
    justify-items:start;
    gap:4px;
  }
}

/* v2.0.364 - Plantilla Farmacias 2026 */
.ip-pharmacy-page{
  background:
    radial-gradient(circle at 8% 12%,rgba(29,160,193,.13),transparent 26vw),
    radial-gradient(circle at 92% 38%,rgba(255,141,107,.12),transparent 24vw),
    var(--ip-soft);
}
.ip-pharmacy-color-yolanda-castell{--ip-pharmacy-color:#ff2028;--ip-pharmacy-ink:#fff}
.ip-pharmacy-color-carmen-pitarch{--ip-pharmacy-color:#55c83f;--ip-pharmacy-ink:#071316}
.ip-pharmacy-color-maria-jose-sales{--ip-pharmacy-color:#58c9ee;--ip-pharmacy-ink:#071316}
.ip-pharmacy-color-ana-salvador{--ip-pharmacy-color:#e8f719;--ip-pharmacy-ink:#071316}
.ip-pharmacy-today-section{
  padding-top:20px;
}
.ip-pharmacy-today-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);
  gap:22px;
  align-items:center;
  overflow:hidden;
  padding:clamp(24px,4vw,38px);
  border-radius:34px;
  background:linear-gradient(135deg,var(--ip-ink) 0%,#123f45 100%);
  color:#fff;
  box-shadow:var(--ip-shadow-soft);
}
.ip-pharmacy-today-card:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:10px;
  background:var(--ip-pharmacy-color,var(--ip-lime));
}
.ip-pharmacy-today-copy,
.ip-pharmacy-today-info{
  position:relative;
  z-index:1;
}
.ip-pharmacy-today-copy .ip-eyebrow{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.18);
  color:#fff;
}
.ip-pharmacy-today-copy h2{
  margin:12px 0 6px;
  color:#fff;
  font-size:clamp(2rem,5vw,4.5rem);
  line-height:.9;
  letter-spacing:-.065em;
}
.ip-pharmacy-today-copy p{
  margin:0;
  color:rgba(255,255,255,.76);
  font-weight:800;
}
.ip-pharmacy-today-info{
  display:grid;
  gap:8px;
  padding:22px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:26px;
  background:rgba(255,255,255,.11);
  backdrop-filter:blur(16px);
}
.ip-pharmacy-today-info strong{
  color:#fff;
  font-size:clamp(1.35rem,2.3vw,2rem);
  line-height:1;
  letter-spacing:-.045em;
}
.ip-pharmacy-today-info span{
  color:rgba(255,255,255,.78);
}
.ip-pharmacy-today-info a{
  justify-self:start;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:9px 14px;
  border-radius:999px;
  background:#fff;
  color:var(--ip-sea-dark);
  font-weight:950;
}
.ip-pharmacy-calendar-head{
  align-items:flex-end;
  margin-bottom:18px;
}
.ip-pharmacy-calendar-navigation{
  display:grid;
  justify-items:end;
  gap:9px;
  flex:0 0 auto;
}
.ip-pharmacy-calendar-period{
  color:var(--ip-sea-dark);
  font-size:.84rem;
  font-weight:950;
}
.ip-pharmacy-calendar-buttons{
  display:flex;
  gap:9px;
}
.ip-pharmacy-calendar-buttons button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:42px;
  margin:0;
  cursor:pointer;
}
.ip-pharmacy-calendar-buttons button:disabled{
  opacity:.42;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}
.ip-pharmacy-legend{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:22px;
}
.ip-pharmacy-legend-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  padding:8px 12px;
  border-radius:999px;
  background:#fff;
  color:var(--ip-ink);
  border:1px solid var(--ip-line);
  font-size:.84rem;
  font-weight:950;
  box-shadow:0 10px 26px rgba(7,19,22,.07);
}
.ip-pharmacy-legend-item i{
  width:12px;
  height:12px;
  border-radius:999px;
  background:var(--ip-pharmacy-color);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--ip-pharmacy-color) 18%,transparent);
}
.ip-pharmacy-months-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  align-items:start;
}
.ip-pharmacy-month-card{
  min-width:0;
  padding:20px;
  border:1px solid var(--ip-line);
  border-radius:30px;
  background:rgba(255,255,255,.86);
  box-shadow:var(--ip-shadow-soft);
}
.ip-pharmacy-month-card[hidden]{
  display:none!important;
}
.ip-pharmacy-month-card header{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.ip-pharmacy-month-card header span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:54px;
  min-height:36px;
  border-radius:999px;
  background:var(--ip-ink);
  color:#fff;
  font-size:.82rem;
  font-weight:950;
}
.ip-pharmacy-month-card h3{
  margin:0;
  font-size:clamp(1.55rem,3vw,2.45rem);
  line-height:.95;
  letter-spacing:-.055em;
}
.ip-pharmacy-month-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:7px;
}
.ip-pharmacy-weekday{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:26px;
  color:var(--ip-muted);
  font-size:.72rem;
  font-weight:950;
}
.ip-pharmacy-day{
  position:relative;
  display:grid;
  place-items:center;
  gap:2px;
  min-width:0;
  aspect-ratio:1/1;
  border-radius:14px;
  background:var(--ip-pharmacy-color);
  color:var(--ip-pharmacy-ink);
  box-shadow:0 10px 22px rgba(7,19,22,.08);
}
.ip-pharmacy-day b{
  font-size:.96rem;
  line-height:1;
}
.ip-pharmacy-day small{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  padding-inline:4px;
  font-size:.58rem;
  font-weight:950;
  line-height:1;
}
.ip-pharmacy-day.is-empty{
  background:transparent;
  box-shadow:none;
}
.ip-pharmacy-day.is-today{
  outline:3px solid var(--ip-ink);
  outline-offset:2px;
}
.ip-pharmacy-day.is-today:after{
  content:"Hoy";
  position:absolute;
  left:50%;
  bottom:-9px;
  transform:translateX(-50%);
  padding:3px 6px;
  border-radius:999px;
  background:var(--ip-ink);
  color:#fff;
  font-size:.56rem;
  font-weight:950;
  line-height:1;
}
.ip-pharmacy-seo-grid{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:22px;
  align-items:start;
}
.ip-pharmacy-seo-card{
  padding:28px;
  border-radius:32px;
  background:#fff;
  border:1px solid var(--ip-line);
  box-shadow:var(--ip-shadow-soft);
}
.ip-pharmacy-seo-card h2{
  margin:12px 0 14px;
}
.ip-pharmacy-seo-card p{
  margin:0 0 12px;
  color:var(--ip-muted);
}
.ip-pharmacy-seo-card p:last-child{
  margin-bottom:0;
}
.ip-pharmacy-directory{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.ip-pharmacy-directory-card{
  position:relative;
  min-width:0;
  overflow:hidden;
  padding:20px;
  border-radius:26px;
  background:#fff;
  border:1px solid var(--ip-line);
  box-shadow:0 14px 36px rgba(7,19,22,.08);
}
.ip-pharmacy-directory-card > span{
  display:block;
  width:42px;
  height:8px;
  margin-bottom:16px;
  border-radius:999px;
  background:var(--ip-pharmacy-color);
}
.ip-pharmacy-directory-card h3{
  margin:0 0 8px;
  font-size:1.05rem;
  line-height:1.05;
  letter-spacing:-.035em;
}
.ip-pharmacy-directory-card p{
  margin:0 0 12px;
  color:var(--ip-muted);
  font-size:.92rem;
}
.ip-pharmacy-directory-card a{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 11px;
  border-radius:999px;
  background:var(--ip-cloud);
  color:var(--ip-sea-dark);
  font-size:.85rem;
  font-weight:950;
}
@media (max-width:900px){
  .ip-pharmacy-calendar-head{
    align-items:stretch;
  }
  .ip-pharmacy-calendar-navigation{
    justify-items:start;
  }
  .ip-pharmacy-today-card,
  .ip-pharmacy-months-grid,
  .ip-pharmacy-seo-grid{
    grid-template-columns:1fr;
  }
  .ip-pharmacy-today-card{
    border-radius:28px;
  }
}
@media (max-width:640px){
  .ip-pharmacy-calendar-buttons{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .ip-pharmacy-calendar-buttons button{
    width:100%;
    min-width:0;
    padding-inline:10px;
    font-size:.78rem;
  }
  .ip-pharmacy-calendar-navigation{
    width:100%;
  }
  .ip-pharmacy-today-section{
    padding-top:12px;
  }
  .ip-pharmacy-today-card,
  .ip-pharmacy-month-card,
  .ip-pharmacy-seo-card{
    border-radius:24px;
  }
  .ip-pharmacy-today-info{
    padding:18px;
    border-radius:20px;
  }
  .ip-pharmacy-legend{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .ip-pharmacy-legend-item{
    justify-content:flex-start;
    font-size:.76rem;
    padding-inline:10px;
  }
  .ip-pharmacy-month-card{
    padding:14px;
  }
  .ip-pharmacy-month-card header{
    align-items:start;
    display:grid;
    gap:10px;
  }
  .ip-pharmacy-month-grid{
    gap:5px;
  }
  .ip-pharmacy-day{
    border-radius:10px;
  }
  .ip-pharmacy-day b{
    font-size:.82rem;
  }
  .ip-pharmacy-day small{
    display:none;
  }
  .ip-pharmacy-directory{
    grid-template-columns:1fr;
  }
  .ip-pharmacy-today-info a,
  .ip-pharmacy-directory-card a{
    width:100%;
    justify-content:center;
  }
}

/* v2.0.370 - Eventos destacados de hoy */
.ip-today-events-section{
  margin:8px 0 44px;
  padding:clamp(20px,3vw,28px) 0 36px;
  border-bottom:1px solid var(--ip-line);
}
.ip-today-events-head{
  margin-bottom:18px;
}
.ip-today-events-head h2{
  margin:10px 0 0;
  color:var(--ip-ink);
  font-size:clamp(1.65rem,3.5vw,2.8rem);
  line-height:1;
  letter-spacing:0;
}
.ip-today-events-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  align-items:stretch;
}
.ip-today-event-card{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  min-width:0;
  overflow:hidden;
  border:1px solid var(--ip-line);
  border-radius:8px;
  background:#fff;
  box-shadow:0 14px 34px rgba(7,19,22,.08);
  transition:transform .2s ease,box-shadow .2s ease;
}
.ip-today-event-card:hover{
  transform:translateY(-2px);
  box-shadow:0 20px 42px rgba(7,19,22,.12);
}
.ip-today-event-media{
  position:relative;
  display:block;
  min-width:0;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--ip-cloud);
}
.ip-today-event-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}
.ip-today-event-card:hover .ip-today-event-media img{
  transform:scale(1.035);
}
.ip-today-event-date,
.ip-today-event-type,
.ip-agenda-event-date-badge,
.ip-agenda-event-type-badge,
.ip-agenda-event-repeat-badge,
.ip-agenda-event-month-badge{
  position:absolute;
  z-index:2;
  display:inline-flex;
  max-width:calc(100% - 20px);
  padding:7px 9px;
  border-radius:6px;
  font-size:.68rem;
  font-weight:950;
  line-height:1.2;
  box-shadow:0 8px 20px rgba(7,19,22,.2);
}
.ip-today-event-type,
.ip-agenda-event-type-badge{
  top:10px;
  right:10px;
  justify-content:flex-end;
  background:var(--ip-sea-dark);
  color:#fff;
  text-align:right;
}
.ip-today-event-date,
.ip-agenda-event-date-badge{
  left:10px;
  bottom:10px;
  background:rgba(255,255,255,.94);
  color:var(--ip-ink);
}
.ip-agenda-event-repeat-badge{
  top:10px;
  left:10px;
  background:rgba(255,255,255,.94);
  color:var(--ip-sea-dark);
}
.ip-agenda-event-month-badge{
  right:10px;
  bottom:10px;
  justify-content:flex-end;
  background:var(--ip-lime);
  color:#fff;
  text-align:right;
}
.page-template-template-eventos .ip-today-event-date,
.page-template-template-eventos .ip-today-event-type,
.page-template-template-eventos .ip-agenda-event-date-badge,
.page-template-template-eventos .ip-agenda-event-type-badge,
.page-template-template-eventos .ip-agenda-event-repeat-badge,
.page-template-template-eventos .ip-agenda-event-month-badge{
  max-width:48%;
}
.page-template-template-eventos .ip-event-month-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.page-template-template-eventos .ip-event-month-grid .ip-home-event-card,
.ip-home-events .ip-home-events-grid .ip-home-event-card{
  min-width:0;
  overflow:hidden;
  border-radius:8px;
}
.ip-home-events .ip-home-events-grid .ip-home-event-card{
  border:1px solid var(--ip-line);
  background:#fff;
  box-shadow:0 14px 34px rgba(7,19,22,.08);
  backdrop-filter:none;
}
.ip-home-events .ip-home-events-grid .ip-home-event-card:before,
.ip-home-events .ip-home-events-grid .ip-home-event-card:after,
.ip-home-events .ip-home-events-grid .ip-home-event-card .ip-card-media:after{
  display:none;
}
.ip-home-events .ip-home-events-grid .ip-home-event-card:hover{
  transform:translateY(-2px);
  border-color:var(--ip-line);
  box-shadow:0 20px 42px rgba(7,19,22,.12);
}
.page-template-template-eventos .ip-event-month-grid .ip-home-event-card .ip-card-media,
.ip-home-events .ip-home-events-grid .ip-home-event-card .ip-card-media{
  position:relative;
  aspect-ratio:4/3;
  border-radius:0;
}
.page-template-template-eventos .ip-event-month-grid .ip-home-event-card .ip-card-body,
.ip-home-events .ip-home-events-grid .ip-home-event-card .ip-card-body{
  padding:14px!important;
}
.page-template-template-eventos .ip-event-month-grid .ip-home-event-card .ip-event-card-title,
.ip-home-events .ip-home-events-grid .ip-home-event-card .ip-event-card-title{
  min-height:0;
  font-size:1rem!important;
  line-height:1.2;
  letter-spacing:0!important;
}
.page-template-template-eventos .ip-event-month-grid .ip-home-event-card .ip-button-ghost,
.ip-home-events .ip-home-events-grid .ip-home-event-card .ip-button-ghost{
  width:100%;
  min-height:42px;
  margin-top:auto;
  border-radius:6px!important;
  background:var(--ip-lime)!important;
  color:#fff;
  box-shadow:none;
}
.page-template-template-eventos .ip-event-month-grid .ip-home-event-card .ip-button-ghost:hover,
.page-template-template-eventos .ip-event-month-grid .ip-home-event-card .ip-button-ghost:focus-visible,
.ip-home-events .ip-home-events-grid .ip-home-event-card .ip-button-ghost:hover,
.ip-home-events .ip-home-events-grid .ip-home-event-card .ip-button-ghost:focus-visible{
  background:var(--ip-sea-dark)!important;
  color:#fff;
}
.ip-today-event-body{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:14px;
}
.ip-today-event-body h3{
  margin:0 0 14px;
  color:var(--ip-ink);
  font-size:1rem;
  line-height:1.2;
  letter-spacing:0;
}
.ip-today-event-body h3 a{
  color:inherit;
}
.ip-today-event-button{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:42px;
  margin-top:auto;
  padding:9px 12px;
  border-radius:6px;
  background:var(--ip-lime);
  color:#fff;
  font-size:.82rem;
  font-weight:950;
  text-align:center;
}
.ip-today-event-button:hover,
.ip-today-event-button:focus-visible{
  background:var(--ip-sea-dark);
  color:#fff;
}
.ip-today-event-list-meta{
  display:none;
}
.ip-agenda-section.is-list-view .ip-today-events-grid{
  grid-template-columns:1fr;
  gap:10px;
}
.ip-agenda-section.is-list-view .ip-today-event-card{
  display:block;
  border-radius:18px;
  box-shadow:0 10px 26px rgba(7,19,22,.06);
}
.ip-agenda-section.is-list-view .ip-today-event-media{
  display:none;
}
.ip-agenda-section.is-list-view .ip-today-event-body{
  display:grid;
  grid-template-columns:minmax(160px,auto) minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  padding:14px 16px;
}
.ip-agenda-section.is-list-view .ip-today-event-list-meta{
  display:block;
  min-width:0;
}
.ip-agenda-section.is-list-view .ip-today-event-list-date{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(29,160,193,.5);
  color:var(--ip-sea-dark);
  font-size:.78rem;
  font-weight:950;
  white-space:nowrap;
}
.ip-agenda-section.is-list-view .ip-today-event-body h3{
  margin:0;
  font-size:clamp(1rem,1.8vw,1.22rem);
  line-height:1.12;
}
.ip-agenda-section.is-list-view .ip-today-event-button{
  width:auto;
  min-width:126px;
  margin:0;
  white-space:nowrap;
}
@media (max-width:760px){
  .ip-agenda-section.is-list-view .ip-today-event-body{
    grid-template-columns:1fr;
    gap:9px;
    padding:15px;
  }
  .ip-agenda-section.is-list-view .ip-today-event-button{
    width:100%;
  }
}
.ip-today-events-empty{
  margin:0;
}
@media (max-width:900px){
  .ip-today-events-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .page-template-template-eventos .ip-event-month-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:640px){
  .ip-today-events-section{
    margin-bottom:32px;
    padding-bottom:28px;
  }
  .ip-today-events-grid{
    gap:10px;
  }
  .ip-today-event-body{
    padding:10px;
  }
  .ip-today-event-body h3{
    margin-bottom:10px;
    font-size:.86rem;
    line-height:1.18;
  }
  .ip-today-event-date,
  .ip-today-event-type,
  .ip-agenda-event-date-badge,
  .ip-agenda-event-type-badge,
  .ip-agenda-event-repeat-badge,
  .ip-agenda-event-month-badge{
    max-width:calc(100% - 14px);
    padding:5px 7px;
    font-size:.6rem;
  }
  .ip-today-event-type,
  .ip-agenda-event-type-badge{
    top:7px;
    right:7px;
  }
  .ip-today-event-date,
  .ip-agenda-event-date-badge{
    left:7px;
    bottom:7px;
  }
  .ip-agenda-event-repeat-badge{top:7px;left:7px}
  .ip-agenda-event-month-badge{right:7px;bottom:7px}
  .ip-today-event-button{
    min-height:38px;
    padding:7px 8px;
    font-size:.74rem;
  }
  .page-template-template-eventos .ip-event-month-grid{
    gap:10px;
  }
  .page-template-template-eventos .ip-event-month-grid .ip-home-event-card .ip-card-body,
  .ip-home-events .ip-home-events-grid .ip-home-event-card .ip-card-body{
    padding:10px!important;
  }
  .page-template-template-eventos .ip-event-month-grid .ip-home-event-card .ip-event-card-title,
  .ip-home-events .ip-home-events-grid .ip-home-event-card .ip-event-card-title{
    font-size:.86rem!important;
    line-height:1.18;
  }
  .page-template-template-eventos .ip-event-month-grid .ip-home-event-card .ip-button-ghost,
  .ip-home-events .ip-home-events-grid .ip-home-event-card .ip-button-ghost{
    min-height:38px!important;
    padding:7px 8px;
    border-radius:6px!important;
    font-size:.74rem!important;
  }
}

/* v2.0.365 - Mapa de farmacias */
.ip-pharmacy-map-section{
  padding-top:18px;
}
.ip-pharmacy-map-layout{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);
  gap:18px;
  align-items:start;
}
.ip-pharmacy-map-shell{
  margin-top:0;
  border:1px solid var(--ip-line);
}
.ip-pharmacy-map-shell .ip-pharmacy-map{
  height:500px;
  min-height:500px;
}
.ip-pharmacy-map-actions{
  z-index:540;
}
.ip-pharmacy-distance-box{
  margin-top:12px;
}
.ip-pharmacy-map-list{
  display:grid;
  gap:10px;
}
.ip-pharmacy-map-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:12px;
  width:100%;
  min-width:0;
  padding:14px;
  border:1px solid var(--ip-line);
  border-radius:22px;
  background:rgba(255,255,255,.9);
  color:var(--ip-ink);
  text-align:left;
  box-shadow:0 12px 32px rgba(7,19,22,.07);
  cursor:pointer;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.ip-pharmacy-map-card:hover,
.ip-pharmacy-map-card:focus-visible,
.ip-pharmacy-map-card.is-active{
  transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--ip-pharmacy-color) 58%,var(--ip-line));
  box-shadow:0 18px 42px rgba(7,19,22,.1);
}
.ip-pharmacy-map-card i{
  width:18px;
  height:18px;
  border-radius:999px;
  background:var(--ip-pharmacy-color);
  box-shadow:0 0 0 5px color-mix(in srgb,var(--ip-pharmacy-color) 18%,transparent);
  margin-top:4px;
}
.ip-pharmacy-map-card strong{
  display:block;
  margin-bottom:4px;
  font-size:.98rem;
  line-height:1.08;
  letter-spacing:-.03em;
}
.ip-pharmacy-map-card span,
.ip-pharmacy-map-card small{
  display:block;
  color:var(--ip-muted);
  font-size:.82rem;
  line-height:1.32;
}
.ip-pharmacy-map-marker-wrap{
  background:transparent;
  border:0;
}
.ip-pharmacy-map-marker-pin{
  position:relative;
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border:3px solid #fff;
  border-radius:18px 18px 18px 4px;
  background:var(--ip-marker-color,var(--ip-lime));
  color:#071316;
  box-shadow:0 14px 28px rgba(7,19,22,.22);
  transform:rotate(-45deg);
}
.ip-pharmacy-map-marker-pin span{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  transform:rotate(45deg);
  color:#071316;
  font-size:.8rem;
  font-weight:950;
  line-height:1;
}
.ip-pharmacy-map-marker-wrap.is-selected .ip-pharmacy-map-marker-pin{
  width:46px;
  height:46px;
  border-width:4px;
  box-shadow:0 18px 34px rgba(7,19,22,.3);
}
.ip-pharmacy-leaflet-popup .leaflet-popup-content-wrapper{
  overflow:hidden;
  padding:0;
  border:1px solid rgba(7,19,22,.1);
  border-radius:8px;
  background:#fff;
  box-shadow:0 20px 55px rgba(7,19,22,.22);
}
.ip-pharmacy-leaflet-popup .leaflet-popup-content{
  width:min(320px,calc(100vw - 76px))!important;
  margin:0;
}
.ip-pharmacy-leaflet-popup .leaflet-popup-tip{
  background:#fff;
  box-shadow:4px 4px 12px rgba(7,19,22,.1);
}
.ip-pharmacy-leaflet-popup .leaflet-popup-close-button{
  top:10px;
  right:10px;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  padding:0!important;
  border:1px solid rgba(255,255,255,.62);
  border-radius:50%;
  background:rgba(255,255,255,.92);
  color:var(--ip-ink)!important;
  font-size:21px;
  line-height:1;
  box-shadow:0 5px 15px rgba(7,19,22,.13);
  z-index:2;
}
.ip-pharmacy-popup{
  position:relative;
  overflow:hidden;
  min-width:0;
  color:var(--ip-ink);
}
.ip-pharmacy-popup-accent{
  height:10px;
  background:var(--ip-popup-color,var(--ip-lime));
}
.ip-pharmacy-popup-body{
  display:grid;
  gap:12px;
  padding:18px;
}
.ip-pharmacy-popup-kicker{
  display:inline-flex;
  align-items:center;
  gap:7px;
  width:max-content;
  max-width:calc(100% - 34px);
  color:var(--ip-sea-dark);
  font-size:.68rem;
  font-weight:950;
  line-height:1.2;
  text-transform:uppercase;
}
.ip-pharmacy-popup-kicker i{
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  flex:0 0 20px;
  border-radius:50%;
  background:var(--ip-popup-color,var(--ip-lime));
  color:#071316;
  font-size:1rem;
  font-style:normal;
  line-height:1;
}
.ip-pharmacy-popup-title{
  display:block;
  margin:0;
  color:var(--ip-ink);
  padding-right:18px;
  font-size:1.18rem;
  line-height:1.12;
  letter-spacing:0;
}
.ip-pharmacy-popup-details{
  display:grid;
  gap:8px;
  padding:11px 12px;
  border-radius:7px;
  background:var(--ip-cloud);
}
.ip-pharmacy-popup-detail{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:7px;
  align-items:start;
  color:var(--ip-muted);
  font-size:.82rem;
  line-height:1.4;
}
.ip-pharmacy-popup-detail i{
  color:var(--ip-sea-dark);
  font-size:.92rem;
  font-style:normal;
  font-weight:950;
  text-align:center;
}
.ip-pharmacy-popup-actions{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);
  gap:8px;
}
.ip-pharmacy-popup-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-width:0;
  min-height:40px;
  padding:9px 12px;
  border:1px solid rgba(16,97,106,.18);
  border-radius:6px;
  background:#fff;
  color:var(--ip-sea-dark);
  font-size:.8rem;
  font-weight:950;
  line-height:1.15;
  text-align:center;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.ip-pharmacy-popup-actions a:hover,
.ip-pharmacy-popup-actions a:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(7,19,22,.11);
}
.ip-pharmacy-popup-actions .ip-pharmacy-popup-directions{
  border-color:var(--ip-sea-dark);
  background:var(--ip-sea-dark);
  color:#fff;
}
@media (max-width:900px){
  .ip-pharmacy-map-layout{
    grid-template-columns:1fr;
  }
  .ip-pharmacy-map-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:640px){
  .ip-pharmacy-map-shell .ip-pharmacy-map{
    height:390px;
    min-height:390px;
  }
  .ip-pharmacy-map-list{
    grid-template-columns:1fr;
  }
  .ip-pharmacy-map-card{
    border-radius:18px;
  }
  .ip-pharmacy-map-shell.is-fullscreen .ip-pharmacy-map{
    height:calc(100vh - 16px)!important;
    min-height:calc(100vh - 16px)!important;
  }
  .ip-pharmacy-leaflet-popup .leaflet-popup-content{
    width:min(280px,calc(100vw - 70px))!important;
  }
  .ip-pharmacy-popup-body{
    gap:10px;
    padding:15px;
  }
  .ip-pharmacy-popup-actions{
    grid-template-columns:1fr;
  }
  .ip-pharmacy-popup-actions a{
    width:100%;
  }
}

/* v2.0.374 - Tarjetas de la plantilla Cerca de mi */
.ip-nearby-page-main .ip-nearby-grid:not(.is-list-view){
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.ip-nearby-page-main .ip-nearby-card{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  min-width:0;
  border-radius:8px;
  background:#fff;
  box-shadow:0 14px 34px rgba(7,19,22,.08);
}
.ip-nearby-page-main .ip-nearby-card-media{
  min-height:0;
  aspect-ratio:4/3;
}
.ip-nearby-page-main .ip-nearby-card-media img,
.ip-nearby-page-main .ip-nearby-card-placeholder{
  width:100%;
  height:100%;
  min-height:0;
}
.ip-nearby-type-badge{
  position:absolute;
  right:10px;
  bottom:10px;
  z-index:3;
  display:inline-flex;
  align-items:center;
  max-width:calc(100% - 20px);
  min-height:28px;
  padding:6px 9px;
  border-radius:6px;
  background:var(--ip-sea-dark);
  color:#fff;
  font-size:.68rem;
  font-weight:950;
  line-height:1.15;
  box-shadow:0 8px 20px rgba(7,19,22,.2);
  text-align:right;
}
.ip-nearby-page-main .ip-nearby-card .ip-card-body{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:14px;
}
.ip-nearby-page-main .ip-nearby-card .ip-poi-card-title{
  margin:0 0 10px;
  font-size:1rem;
  line-height:1.2;
  letter-spacing:0;
}
.ip-nearby-page-main .ip-nearby-card .ip-card-excerpt{
  display:-webkit-box;
  overflow:hidden;
  margin:0 0 12px;
  color:var(--ip-muted);
  font-size:.84rem;
  line-height:1.4;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.ip-nearby-page-main .ip-nearby-card-button{
  position:relative;
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:42px;
  margin-top:auto;
  padding:9px 12px;
  border-radius:6px;
  background:var(--ip-lime);
  color:#fff;
  font-size:.82rem;
  font-weight:950;
  text-align:center;
}
.ip-nearby-page-main .ip-nearby-card-button:hover,
.ip-nearby-page-main .ip-nearby-card-button:focus-visible{
  background:var(--ip-sea-dark);
  color:#fff;
}
@media (max-width:900px){
  .ip-nearby-page-main .ip-nearby-grid:not(.is-list-view){
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px;
  }
}
@media (max-width:640px){
  .ip-nearby-page-main .ip-nearby-card .ip-card-body{
    padding:10px;
  }
  .ip-nearby-page-main .ip-nearby-card .ip-poi-card-title{
    margin-bottom:8px;
    font-size:.86rem;
    line-height:1.18;
  }
  .ip-nearby-page-main .ip-nearby-card .ip-card-excerpt{
    margin-bottom:9px;
    font-size:.72rem;
    line-height:1.32;
  }
  .ip-nearby-type-badge{
    right:7px;
    bottom:7px;
    max-width:calc(100% - 14px);
    min-height:24px;
    padding:5px 7px;
    font-size:.6rem;
  }
  .ip-nearby-page-main .ip-nearby-distance-badge{
    top:7px;
    left:7px;
    padding:6px 8px;
    font-size:.62rem;
  }
  .ip-nearby-page-main .ip-nearby-card-button{
    min-height:38px;
    padding:7px 8px;
    font-size:.74rem;
  }
}

/* v2.0.387 - reserva como primera acción bajo el hero del POI */
.single-ip_poi .ip-poi-hero-badges-outside .ip-page-meta-chip.ip-poi-booking-chip{
  gap:8px;
  border-color:var(--ip-coral);
  background:var(--ip-coral);
  color:var(--ip-ink);
  font-weight:950;
  box-shadow:0 12px 28px rgba(255,141,107,.28);
}
.single-ip_poi .ip-poi-hero-badges-outside .ip-page-meta-chip.ip-poi-booking-chip:before{
  display:none;
}
.single-ip_poi .ip-poi-hero-badges-outside .ip-page-meta-chip.ip-poi-booking-chip:hover,
.single-ip_poi .ip-poi-hero-badges-outside .ip-page-meta-chip.ip-poi-booking-chip:focus-visible{
  border-color:var(--ip-ink);
  background:var(--ip-ink);
  color:#fff;
}
.single-ip_poi .ip-poi-booking-chip svg{
  width:18px;
  height:18px;
  flex:0 0 auto;
}
.single-ip_poi .ip-poi-booking-text-mobile{
  display:none;
}
.single-ip_poi .ip-poi-info-booking-button{
  width:100%;
  margin-top:18px;
  border-color:var(--ip-coral);
  background:var(--ip-coral);
  color:var(--ip-ink);
  box-shadow:0 12px 28px rgba(255,141,107,.28);
}
.single-ip_poi .ip-poi-info-booking-button:hover,
.single-ip_poi .ip-poi-info-booking-button:focus-visible{
  border-color:var(--ip-ink);
  background:var(--ip-ink);
  color:#fff;
}
@media (max-width:767px){
  .single-ip_poi .ip-poi-hero-badges-outside .ip-poi-type-chip{
    display:none;
  }
  .single-ip_poi .ip-poi-hero-badges-outside .ip-page-meta-chip.ip-poi-booking-chip{
    width:auto;
    min-width:0;
    min-height:40px;
    padding:9px 12px;
    justify-content:center;
    gap:7px;
  }
  .single-ip_poi .ip-poi-booking-text-desktop{
    display:none;
  }
  .single-ip_poi .ip-poi-booking-text-mobile{
    display:inline;
  }
  .single-ip_poi .ip-poi-hero-badges-outside .ip-page-meta-chip.ip-poi-location-chip{
    width:40px;
    min-width:40px;
    min-height:40px;
    padding:0;
    justify-content:center;
    gap:0;
  }
  .single-ip_poi .ip-poi-hero-badges-outside .ip-poi-location-chip span{
    display:none;
  }
}

/* v2.0.390 - señales editoriales de experiencia y primera mano */
.ip-experience-card{
  position:relative;
  margin-top:26px;
  padding:20px;
  border:1px solid rgba(29,160,193,.24);
  border-left:5px solid var(--ip-lime);
  border-radius:8px;
  background:linear-gradient(135deg,#fff,var(--ip-soft));
  box-shadow:0 12px 34px rgba(7,19,22,.07);
}
.ip-experience-card h2{
  margin:8px 0 14px;
  font-size:clamp(1.25rem,2.2vw,1.7rem);
  line-height:1.1;
  letter-spacing:0;
}
.ip-experience-card p{
  margin:14px 0 0;
  color:var(--ip-ink-2);
  line-height:1.65;
}
.ip-experience-facts{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.ip-experience-facts span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:8px 11px;
  border:1px solid var(--ip-line);
  border-radius:999px;
  background:#fff;
  color:var(--ip-muted);
  font-size:.8rem;
  line-height:1.25;
}
.ip-experience-facts strong{color:var(--ip-ink);}
.ip-poi-author-section{
  padding-top:16px;
  padding-bottom:24px;
}
.ip-poi-author-card{
  max-width:820px;
  margin:0;
  padding:14px 16px;
  border:1px solid var(--ip-line);
  border-left:3px solid var(--ip-lime);
  background:#fff;
  box-shadow:0 8px 22px rgba(7,19,22,.05);
}
.ip-poi-author-card .ip-eyebrow{
  min-height:24px;
  padding:4px 8px;
  font-size:.65rem;
}
.ip-poi-author-card h2{
  margin:6px 0 9px;
  font-size:1rem;
  line-height:1.2;
}
.ip-poi-author-card .ip-experience-facts{
  gap:6px;
}
.ip-poi-author-card .ip-experience-facts span{
  min-height:28px;
  padding:5px 8px;
  border-radius:5px;
  font-size:.76rem;
  line-height:1.25;
}
.ip-poi-author-card p{
  margin:9px 0 0;
  font-size:.82rem;
  line-height:1.45;
}
.ip-route-experience-card{margin-top:0;}
@media (max-width:640px){
  .ip-experience-card{padding:16px;}
  .ip-experience-facts{display:grid;}
  .ip-experience-facts span{width:100%;border-radius:6px;}
  .ip-poi-author-section{padding-top:10px;padding-bottom:18px;}
  .ip-poi-author-card{padding:12px;}
}

/* v2.0.394 - descripción colapsable de evento individual */
.ip-event-description-accordion{
  margin:0 0 26px;
  border:1px solid rgba(29,160,193,.28);
  border-radius:8px;
  background:#fff;
  box-shadow:0 12px 32px rgba(7,19,22,.07);
  overflow:hidden;
}
.ip-event-description-accordion summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:58px;
  padding:15px 18px;
  background:var(--ip-soft);
  color:var(--ip-ink);
  font-size:1rem;
  font-weight:950;
  line-height:1.2;
  cursor:pointer;
  list-style:none;
}
.ip-event-description-accordion summary::-webkit-details-marker{display:none;}
.ip-event-description-accordion summary svg{flex:0 0 auto;transition:transform .2s ease;}
.ip-event-description-accordion[open] summary svg{transform:rotate(180deg);}
.ip-event-description-content{padding:18px;}
.ip-event-description-content > :first-child{margin-top:0;}
.ip-event-description-content > :last-child{margin-bottom:0;}
@media (max-width:640px){
  .ip-event-description-accordion{margin-bottom:20px;}
  .ip-event-description-accordion summary{min-height:52px;padding:13px 14px;font-size:.92rem;}
  .ip-event-description-content{padding:14px;}
}

/* v2.0.406 - override final para superar la cabecera y el portal del menu movil */
html.ip-single-map-fullscreen-open body > .ip-single-map-shell.is-fullscreen{
  z-index:2147483647!important;
}
html.ip-single-map-fullscreen-open .ip-site-header,
html.ip-single-map-fullscreen-open body > .ip-main-nav.ip-mobile-nav-portal,
html.ip-single-map-fullscreen-open body > .ip-main-nav.ip-mobile-nav-portal.is-open,
html.ip-single-map-fullscreen-open .ip-map-nearby-tab,
html.ip-single-map-fullscreen-open .ip-whatsapp-float,
html.ip-single-map-fullscreen-open .ip-scroll-top{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
html.ip-single-map-fullscreen-open body.ip-mobile-menu-open:before{
  display:none!important;
  content:none!important;
}

/* v2.0.410 - mapa turistico maximizado por encima de toda la interfaz */
html.ip-tourist-map-fullscreen-open body > .ip-map-shell.is-fullscreen{
  position:fixed!important;
  inset:0!important;
  z-index:2147483647!important;
  width:100vw!important;
  height:100dvh!important;
  margin:0!important;
  border-radius:0!important;
  transform:none!important;
  isolation:isolate;
}
html.ip-tourist-map-fullscreen-open body > .ip-map-shell.is-fullscreen .ip-map{
  width:100%!important;
  height:100dvh!important;
  min-height:100dvh!important;
  margin:0!important;
  border-radius:0!important;
}
html.ip-tourist-map-fullscreen-open body > .ip-map-shell.is-fullscreen .ip-map-main-fullscreen-button,
html.ip-tourist-map-fullscreen-open body > .ip-map-shell.is-fullscreen .ip-map-floating-controls{
  z-index:2147483647!important;
}
html.ip-tourist-map-fullscreen-open .ip-site-header,
html.ip-tourist-map-fullscreen-open body > .ip-main-nav.ip-mobile-nav-portal,
html.ip-tourist-map-fullscreen-open body > .ip-main-nav.ip-mobile-nav-portal.is-open,
html.ip-tourist-map-fullscreen-open .ip-map-nearby-tab,
html.ip-tourist-map-fullscreen-open .ip-whatsapp-float,
html.ip-tourist-map-fullscreen-open .ip-scroll-top{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
html.ip-tourist-map-fullscreen-open body.ip-mobile-menu-open:before{
  display:none!important;
  content:none!important;
}
@supports not (height:100dvh){
  html.ip-tourist-map-fullscreen-open body > .ip-map-shell.is-fullscreen,
  html.ip-tourist-map-fullscreen-open body > .ip-map-shell.is-fullscreen .ip-map{
    height:100vh!important;
    min-height:100vh!important;
  }
}

/* v2.0.453 - tipo y datos principales en el hero del evento */
.single-ip_evento .ip-hero-top-left-badge{
  position:absolute;
  top:18px;
  left:clamp(18px,4vw,44px);
  z-index:6;
  display:inline-flex;
  align-items:center;
  max-width:calc(100% - 150px);
  min-height:34px;
  padding:8px 13px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  background:var(--ip-lime);
  color:#fff!important;
  font-size:.74rem;
  font-weight:950;
  line-height:1.1;
  text-decoration:none!important;
  box-shadow:0 12px 30px rgba(7,19,22,.24);
}
.single-ip_evento a.ip-hero-top-left-badge:hover{
  background:var(--ip-sea-dark);
  transform:translateY(-1px);
}
.single-ip_evento .ip-page-hero-meta{
  align-items:center;
}
@media (max-width:640px){
  .single-ip_evento .ip-hero-top-left-badge{
    top:12px;
    left:12px;
    max-width:calc(100% - 122px);
    min-height:30px;
    padding:7px 10px;
    font-size:.64rem;
  }
  .single-ip_evento .ip-page-hero-meta{
    gap:6px;
  }
  .single-ip_evento .ip-page-hero-meta .ip-page-meta-chip{
    padding:6px 9px;
    font-size:.66rem;
  }
}

/* v2.0.454 - recurrencia en vista lista y boton de informacion compacto */
.ip-agenda-section.is-list-view .ip-home-event-card .ip-event-list-line-meta,
.ip-agenda-section.is-list-view .ip-today-event-list-meta{
  display:flex!important;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}
.ip-agenda-section.is-list-view .ip-event-list-repeat,
.ip-agenda-section.is-list-view .ip-event-list-month{
  width:max-content;
  max-width:100%;
  white-space:normal;
  line-height:1.15;
}
.ip-agenda-section.is-list-view .ip-event-list-repeat{
  background:rgba(255,255,255,.96);
  color:var(--ip-sea-dark);
  border:1px solid rgba(16,97,106,.15);
}
.ip-agenda-section.is-list-view .ip-event-list-month{
  background:var(--ip-lime);
  color:#fff;
}
.single-ip_evento .ip-page-title-line{
  align-items:flex-start;
  gap:8px;
}
.single-ip_evento .ip-page-title-info-button{
  width:28px;
  height:28px;
  margin-top:4px;
  border-width:1px;
  font-size:.72rem;
  box-shadow:0 8px 20px rgba(7,19,22,.22);
}
@media (max-width:640px){
  .single-ip_evento .ip-page-title-line{
    align-items:flex-start;
    gap:6px;
  }
  .single-ip_evento .ip-page-title-info-button{
    width:24px;
    height:24px;
    margin-top:3px;
    font-size:.64rem;
  }
}

/* v2.0.456 - limpiar filtros de la agenda */
.ip-agenda-section .ip-agenda-filter-reset{
  min-height:44px;
  padding:11px 15px;
  border:1px solid rgba(16,97,106,.22);
  border-radius:14px;
  background:#fff;
  color:var(--ip-sea-dark);
  font-size:.78rem;
  font-weight:950;
  white-space:nowrap;
  box-shadow:none;
}
.ip-agenda-section .ip-agenda-filter-reset:hover,
.ip-agenda-section .ip-agenda-filter-reset:focus-visible{
  border-color:var(--ip-lime);
  background:var(--ip-lime);
  color:#fff;
}
@media (min-width:761px){
  .ip-agenda-section .ip-filter-panel-agenda.has-filter-reset,
  .ip-agenda-section .ip-filter-panel-agenda.has-filter-reset:not(.is-open),
  .ip-agenda-section .ip-filter-panel-agenda.has-filter-reset.is-open{
    grid-template-columns:minmax(185px,1.25fr) minmax(136px,.72fr) minmax(124px,.62fr) minmax(124px,.62fr) auto!important;
  }
}
@media (min-width:761px) and (max-width:1120px){
  .ip-agenda-section .ip-filter-panel-agenda.has-filter-reset,
  .ip-agenda-section .ip-filter-panel-agenda.has-filter-reset:not(.is-open),
  .ip-agenda-section .ip-filter-panel-agenda.has-filter-reset.is-open{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .ip-agenda-section .ip-filter-panel-agenda.has-filter-reset input[data-filter-search]{
    grid-column:1 / -1;
  }
}
@media (max-width:760px){
  .ip-agenda-section .ip-agenda-filter-reset{
    width:100%;
  }
}

/* v2.0.458 - pases anteriores diferenciados en la agenda individual */
.single-ip_evento .ip-event-program-archive-title{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  margin:24px 0 8px;
  color:#596366;
  font-size:1rem;
  font-weight:1000;
  line-height:1.2;
}
.single-ip_evento .ip-event-program-archive-title:after{
  content:"";
  flex:1 1 auto;
  height:1px;
  background:#cfd5d7;
}
.single-ip_evento .ip-event-program-item.is-past{
  position:relative;
  margin-top:8px;
  border-color:#cfd5d7;
  background:#eef0f1;
  box-shadow:none;
}
.single-ip_evento .ip-event-program-past-badge{
  position:absolute;
  top:-11px;
  left:18px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:4px 9px;
  border:2px solid #fff;
  border-radius:999px;
  background:#778184;
  color:#fff;
  font-size:.64rem;
  font-weight:1000;
  line-height:1;
}
.single-ip_evento .ip-event-program-item.is-past .ip-event-program-body h4,
.single-ip_evento .ip-event-program-item.is-past .ip-event-program-action strong{
  color:#596366;
}
.single-ip_evento .ip-event-program-item.is-past .ip-event-program-when,
.single-ip_evento .ip-event-program-item.is-past .ip-event-program-note,
.single-ip_evento .ip-event-program-item.is-past .ip-event-program-place,
.single-ip_evento .ip-event-program-item.is-past .ip-event-program-place-link{
  color:#747d80;
}
.single-ip_evento .ip-event-program-item.is-past .ip-event-program-place svg{
  color:#8b9497;
}
.single-ip_evento .ip-event-program-item.is-past .ip-event-program-action{
  border-color:#cfd5d7;
}
.single-ip_evento .ip-event-program-item.is-past .ip-event-program-action a{
  background:#7a8487;
  color:#fff;
}
.single-ip_evento .ip-event-program-item.is-past .ip-event-program-action a:hover,
.single-ip_evento .ip-event-program-item.is-past .ip-event-program-action a:focus-visible{
  background:#596366;
}
.single-ip_evento .ip-event-program-item.is-past .ip-event-program-free{
  border-color:#c5cbcd;
  background:#e1e4e5;
  color:#667073;
}
@media (max-width:640px){
  .single-ip_evento .ip-event-program-past-badge{
    left:14px;
  }
}

/* v2.0.461 - recurrencia junto al tipo en archivos por tipo de evento */
.tax-ip_evento_tipo .ip-event-card .ip-event-archive-schedule-badge{
  background:var(--ip-lime);
  border-color:var(--ip-lime);
  color:#fff;
  font-weight:900;
  line-height:1.2;
}

/* v2.0.466 - proximidad y hora en eventos de la home */
.home .ip-home-events .ip-home-event-occurrence-badge{
  top:10px;
  bottom:auto;
  left:10px;
  min-height:30px;
  padding:7px 11px;
  border:1px solid rgba(255,255,255,.7);
  color:#fff;
  font-size:.7rem;
  font-weight:1000;
  text-transform:uppercase;
  box-shadow:0 10px 24px rgba(7,19,22,.25);
  backdrop-filter:blur(12px);
}
.home .ip-home-events .ip-home-event-occurrence-badge.is-today{
  background:#d9474f;
}
.home .ip-home-events .ip-home-event-occurrence-badge.is-tomorrow{
  background:#f1c84b;
  border-color:rgba(255,255,255,.85);
  color:#27363a;
}
.home .ip-home-events .ip-home-event-occurrence-badge.is-upcoming{
  background:var(--ip-lime);
  color:#fff;
}
.home .ip-home-events .ip-home-event-time-badge{
  position:absolute;
  z-index:2;
  left:10px;
  bottom:10px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:30px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.5);
  border-radius:999px;
  background:rgba(7,19,22,.82);
  color:#fff;
  font-size:.68rem;
  font-weight:900;
  line-height:1;
  box-shadow:0 8px 20px rgba(7,19,22,.24);
  backdrop-filter:blur(12px);
}
@media (max-width:640px){
  .home .ip-home-events .ip-home-event-occurrence-badge{
    top:7px;
    bottom:auto;
    left:7px;
    min-height:25px;
    padding:5px 8px;
    font-size:.58rem;
  }
  .home .ip-home-events .ip-home-event-time-badge{
    left:7px;
    bottom:7px;
    min-height:25px;
    padding:5px 8px;
    font-size:.58rem;
  }
}

/* v2.0.467 - paginacion de archivos por tipo de punto */
.tax-ip_poi_tipo .ip-poi-type-pagination-wrap{
  display:flex;
  width:max-content;
  max-width:calc(100% - 28px);
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:7px;
  margin:clamp(30px,4vw,46px) auto 0;
  padding:9px;
  border:1px solid rgba(16,97,106,.14);
  border-radius:8px;
  background:#fff;
  box-shadow:0 18px 44px rgba(7,19,22,.1);
}
.tax-ip_poi_tipo .ip-poi-type-pagination-wrap .page-numbers{
  display:inline-flex;
  min-width:42px;
  height:42px;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin:0;
  padding:0 13px;
  border:1px solid var(--ip-line);
  border-radius:6px;
  background:var(--ip-soft);
  color:var(--ip-ink);
  font-size:.86rem;
  font-weight:900;
  line-height:1;
  text-decoration:none;
  transition:transform .2s ease,background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.tax-ip_poi_tipo .ip-poi-type-pagination-wrap a.page-numbers:hover,
.tax-ip_poi_tipo .ip-poi-type-pagination-wrap a.page-numbers:focus-visible{
  transform:translateY(-2px);
  border-color:var(--ip-lime);
  background:#fff;
  box-shadow:0 10px 24px rgba(7,19,22,.1);
  outline:none;
}
.tax-ip_poi_tipo .ip-poi-type-pagination-wrap .page-numbers.current{
  border-color:var(--ip-lime);
  background:var(--ip-lime);
  color:#fff;
  box-shadow:0 10px 24px rgba(29,160,193,.25);
}
.tax-ip_poi_tipo .ip-poi-type-pagination-wrap .page-numbers.prev,
.tax-ip_poi_tipo .ip-poi-type-pagination-wrap .page-numbers.next{
  min-width:116px;
  border-color:var(--ip-sea-dark);
  background:var(--ip-sea-dark);
  color:#fff;
}
.tax-ip_poi_tipo .ip-poi-type-pagination-wrap .page-numbers.prev:hover,
.tax-ip_poi_tipo .ip-poi-type-pagination-wrap .page-numbers.next:hover,
.tax-ip_poi_tipo .ip-poi-type-pagination-wrap .page-numbers.prev:focus-visible,
.tax-ip_poi_tipo .ip-poi-type-pagination-wrap .page-numbers.next:focus-visible{
  border-color:var(--ip-lime);
  background:var(--ip-lime);
  color:#fff;
}
.tax-ip_poi_tipo .ip-poi-type-pagination-wrap .page-numbers.dots{
  min-width:24px;
  padding:0 3px;
  border-color:transparent;
  background:transparent;
  color:var(--ip-muted);
  box-shadow:none;
}
@media (max-width:640px){
  .tax-ip_poi_tipo .ip-poi-type-pagination-wrap{
    width:calc(100% - 28px);
    gap:5px;
    margin-top:24px;
    padding:7px;
  }
  .tax-ip_poi_tipo .ip-poi-type-pagination-wrap .page-numbers{
    min-width:36px;
    height:38px;
    padding:0 10px;
    font-size:.78rem;
  }
  .tax-ip_poi_tipo .ip-poi-type-pagination-wrap .page-numbers.prev,
  .tax-ip_poi_tipo .ip-poi-type-pagination-wrap .page-numbers.next{
    flex:1 1 120px;
    min-width:0;
  }
}

/* v2.0.469 - enlaces de tipos dentro de Informacion util del POI */
.single-ip_poi .ip-poi-type-links a{
  color:var(--ip-lime);
  font-weight:900;
  text-decoration:underline;
  text-decoration-color:rgba(29,160,193,.32);
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.single-ip_poi .ip-poi-type-links a:hover,
.single-ip_poi .ip-poi-type-links a:focus-visible{
  color:var(--ip-sea-dark);
  text-decoration-color:currentColor;
}

/* v2.0.471 - aviso compacto de derechos de imagen en alojamientos */
.single-ip_alojamiento .ip-accommodation-image-notice-trigger{
  display:flex;
  width:100%;
  min-height:42px;
  align-items:center;
  gap:9px;
  margin-top:12px;
  padding:9px 12px;
  border:1px solid rgba(29,160,193,.24);
  border-radius:6px;
  background:#f7fbfc;
  color:var(--ip-sea-dark);
  font:inherit;
  font-size:.8rem;
  font-weight:900;
  text-align:left;
  cursor:pointer;
}
.single-ip_alojamiento .ip-accommodation-image-notice-trigger span{
  display:grid;
  width:22px;
  height:22px;
  flex:0 0 22px;
  place-items:center;
  border-radius:50%;
  background:var(--ip-lime);
  color:#fff;
  font-size:.72rem;
}
.single-ip_alojamiento .ip-accommodation-image-notice-trigger:hover,
.single-ip_alojamiento .ip-accommodation-image-notice-trigger:focus-visible{
  border-color:var(--ip-lime);
  background:#fff;
}
.ip-accommodation-image-notice-modal[hidden]{display:none!important}
.ip-accommodation-image-notice-modal{
  position:fixed;
  inset:0;
  z-index:100500;
  display:grid;
  place-items:center;
  padding:20px;
}
.ip-accommodation-image-notice-backdrop{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  background:rgba(4,22,28,.76);
  cursor:pointer;
}
.ip-accommodation-image-notice-dialog{
  position:relative;
  z-index:1;
  width:min(620px,100%);
  max-height:min(82vh,680px);
  overflow:auto;
  padding:30px;
  border-top:5px solid var(--ip-lime);
  border-radius:8px;
  background:#fff;
  box-shadow:0 28px 80px rgba(0,0,0,.34);
}
.ip-accommodation-image-notice-close{
  position:absolute;
  top:12px;
  right:12px;
  display:grid;
  width:38px;
  height:38px;
  place-items:center;
  border:0;
  border-radius:50%;
  background:#edf6f7;
  color:var(--ip-ink);
  font-size:1.5rem;
  line-height:1;
  cursor:pointer;
}
.ip-accommodation-image-notice-label{
  display:block;
  margin:0 48px 7px 0;
  color:var(--ip-lime);
  font-size:.7rem;
  font-weight:900;
  text-transform:uppercase;
}
.ip-accommodation-image-notice-dialog h2{
  margin:0 44px 14px 0;
  font-size:clamp(1.35rem,3vw,1.8rem);
  line-height:1.15;
}
.ip-accommodation-image-notice-dialog p{
  margin:0;
  color:var(--ip-muted);
  font-size:.94rem;
  line-height:1.7;
}
.ip-accommodation-image-notice-contact{
  display:inline-flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  margin-top:20px;
  padding:10px 16px;
  border-radius:6px;
  background:var(--ip-lime);
  color:#fff;
  font-size:.84rem;
  font-weight:900;
  text-align:center;
  text-decoration:none;
}
.ip-accommodation-image-notice-contact:hover,
.ip-accommodation-image-notice-contact:focus-visible{
  background:var(--ip-sea-dark);
  color:#fff;
}
body.ip-accommodation-image-notice-open{overflow:hidden}
@media (max-width:640px){
  .ip-accommodation-image-notice-modal{padding:14px}
  .ip-accommodation-image-notice-dialog{max-height:86vh;padding:24px 20px 20px}
  .ip-accommodation-image-notice-contact{width:100%}
}

/* v2.0.477 - ficha de ruta con itinerario importado y panel lateral */
.single-ip_ruta .ip-route-public-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,340px);
  gap:24px;
  align-items:start;
}
.single-ip_ruta .ip-route-public-sidebar{
  position:sticky;
  top:96px;
  min-width:0;
}
.single-ip_ruta .ip-route-public-info-card{
  padding:22px;
  overflow:visible;
}
.single-ip_ruta .ip-route-public-info-card h2{
  margin:7px 0 18px;
  font-size:1.45rem;
  line-height:1.15;
}
.single-ip_ruta .ip-route-public-facts{
  display:grid;
  gap:0;
  margin:0;
}
.single-ip_ruta .ip-route-public-facts div{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:start;
  padding:11px 0;
  border-bottom:1px solid var(--ip-line);
}
.single-ip_ruta .ip-route-public-facts div:first-child{padding-top:0}
.single-ip_ruta .ip-route-public-facts dt{
  color:var(--ip-muted);
  font-size:.78rem;
  font-weight:850;
}
.single-ip_ruta .ip-route-public-facts dd{
  margin:0;
  color:var(--ip-ink);
  font-size:.84rem;
  font-weight:950;
  text-align:right;
}
.single-ip_ruta .ip-route-public-info-note{padding-top:16px}
.single-ip_ruta .ip-route-public-info-note strong{
  display:block;
  margin-bottom:5px;
  color:var(--ip-ink);
  font-size:.84rem;
}
.single-ip_ruta .ip-route-public-info-note p{
  margin:0;
  color:var(--ip-muted);
  font-size:.82rem;
  line-height:1.55;
}
.single-ip_ruta .ip-route-public-side-actions{
  display:grid;
  gap:8px;
  margin-top:18px;
}
.single-ip_ruta .ip-route-public-side-actions a{
  display:flex;
  min-height:42px;
  align-items:center;
  justify-content:center;
  padding:9px 12px;
  border:1px solid var(--ip-lime);
  border-radius:6px;
  color:var(--ip-lime);
  font-size:.8rem;
  font-weight:950;
  text-align:center;
  text-decoration:none;
}
.single-ip_ruta .ip-route-public-side-actions a:hover,
.single-ip_ruta .ip-route-public-side-actions a:focus-visible,
.single-ip_ruta .ip-route-public-side-actions a.is-booking{
  background:var(--ip-lime);
  color:#fff;
}
.single-ip_ruta .ip-route-public-side-actions a.is-booking:hover,
.single-ip_ruta .ip-route-public-side-actions a.is-booking:focus-visible{
  background:var(--ip-sea-dark);
  border-color:var(--ip-sea-dark);
}
@media (max-width:1040px){
  .single-ip_ruta .ip-route-public-layout{grid-template-columns:1fr}
  .single-ip_ruta .ip-route-public-sidebar{position:relative;top:auto}
}
@media (max-width:640px){
  .single-ip_ruta .ip-route-public-info-card{padding:18px}
}

/* v2.0.478 - puntos GPX bajo el mapa y tarjetas sin imagen cuando no hay POI */
.single-ip_ruta .ip-route-new-stack.is-imported-route .ip-route-map-card{order:10}
.single-ip_ruta .ip-route-new-stack.is-imported-route .ip-route-itinerary-card{order:20}
.single-ip_ruta .ip-route-new-stack.is-imported-route .ip-route-faqs-card{order:30}
.single-ip_ruta .ip-route-new-stack.is-imported-route .ip-route-experience-card{order:40}
.single-ip_ruta .ip-route-itinerary-card .ip-eyebrow{
  max-width:100%;
  white-space:normal;
  line-height:1.35;
}
.single-ip_ruta .ip-route-point-card.has-no-poi{
  grid-template-columns:1fr;
  padding:18px 20px;
}
.single-ip_ruta .ip-route-point-card.has-no-poi .ip-route-point-body{
  padding:0;
}
.single-ip_ruta .ip-route-point-inline-number{
  display:inline-flex;
  width:max-content;
  min-height:28px;
  align-items:center;
  padding:5px 10px;
  border-radius:999px;
  background:var(--ip-lime);
  color:#fff;
  font-size:.72rem;
  font-weight:950;
}
.single-ip_ruta .ip-route-itinerary-end{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:16px;
  padding:14px 16px;
  border:1px solid rgba(29,160,193,.2);
  border-radius:8px;
  background:#f3f8f7;
}
.single-ip_ruta .ip-route-itinerary-end span{
  color:var(--ip-muted);
  font-size:.76rem;
  font-weight:850;
  text-transform:uppercase;
}
.single-ip_ruta .ip-route-itinerary-end strong{
  color:var(--ip-ink);
  text-align:right;
}
@media (max-width:640px){
  .single-ip_ruta .ip-route-point-card.has-no-poi{padding:16px}
  .single-ip_ruta .ip-route-itinerary-end{display:grid;gap:4px}
  .single-ip_ruta .ip-route-itinerary-end strong{text-align:left}
}

/* v2.0.479 - acceso directo a recomendaciones de la ruta */
.single-ip_ruta #recomendaciones-ruta{scroll-margin-top:130px}

/* v2.0.480 - inicio, fin y sentido del recorrido en mapas de rutas */
.ip-route-terminal-marker,
.ip-route-direction-marker{
  background:transparent;
  border:0;
}
.ip-route-terminal-marker > span{
  position:relative;
  display:block;
  width:34px;
  height:34px;
  border:3px solid #fff;
  border-radius:50% 50% 50% 8px;
  background:#199653;
  box-shadow:0 8px 20px rgba(7,19,22,.3);
  transform:rotate(-45deg);
}
.ip-route-terminal-marker > span::after{
  content:'';
  position:absolute;
  inset:9px;
  border-radius:50%;
  background:#fff;
}
.ip-route-terminal-marker.is-end > span{background:#d9363e}
.ip-route-terminal-marker.is-circular > span{background:linear-gradient(135deg,#199653 0 50%,#d9363e 50% 100%)}
.ip-route-direction-marker{
  pointer-events:none;
}
.ip-route-direction-marker > span{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  color:var(--ip-sea-dark);
  font-size:20px;
  line-height:1;
  text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff,0 2px 5px rgba(7,19,22,.28);
  transform-origin:center;
}

/* v2.0.481 - tarjetas de todas las localizaciones del mapa de rutas */
.ip-route-leaflet-popup .leaflet-popup-content{
  width:auto!important;
  margin:0;
}
.ip-route-leaflet-popup .leaflet-popup-content-wrapper{
  padding:0;
  border:1px solid rgba(7,19,22,.08);
  background:#fff;
  box-shadow:0 20px 54px rgba(7,19,22,.22);
}
.ip-route-leaflet-popup .leaflet-popup-close-button{
  top:7px!important;
  right:7px!important;
  z-index:5;
  display:grid!important;
  place-items:center;
  width:28px!important;
  height:28px!important;
  padding:0!important;
  border-radius:50%;
  background:rgba(255,255,255,.94)!important;
  color:var(--ip-ink)!important;
  font-size:20px!important;
  box-shadow:0 4px 12px rgba(7,19,22,.14);
}
.leaflet-popup-content .ip-route-map-popup.ip-route-map-popup-location{
  position:relative;
  display:block;
  width:258px;
  max-width:76vw;
  min-width:0;
  overflow:hidden;
  border-radius:20px;
  background:#fff;
}
.leaflet-popup-content .ip-route-map-popup-location::before{
  content:'';
  display:block;
  width:100%;
  height:6px;
  background:var(--ip-lime);
}
.leaflet-popup-content .ip-route-map-popup-location.is-start::before{background:#199653}
.leaflet-popup-content .ip-route-map-popup-location.is-end::before{background:#d9363e}
.leaflet-popup-content .ip-route-map-popup-location.is-circular::before{background:linear-gradient(90deg,#199653 0 50%,#d9363e 50% 100%)}
.leaflet-popup-content .ip-route-map-popup-location .ip-route-map-popup-body{
  display:grid;
  gap:8px;
  padding:15px 16px 16px;
}
.leaflet-popup-content .ip-route-map-popup-location .ip-route-map-popup-number{
  margin:0;
  padding:6px 9px;
  background:#eaf7f9;
  color:var(--ip-sea-dark);
}
.leaflet-popup-content .ip-route-map-popup-location.is-start .ip-route-map-popup-number{
  background:#e8f7ee;
  color:#137541;
}
.leaflet-popup-content .ip-route-map-popup-location.is-end .ip-route-map-popup-number{
  background:#fff0f1;
  color:#ad252d;
}
.leaflet-popup-content .ip-route-map-popup-location .ip-route-map-popup-type{
  color:var(--ip-sea-dark);
  font-size:.72rem;
  font-weight:900;
  line-height:1.2;
  text-transform:uppercase;
}
.leaflet-popup-content .ip-route-map-popup-location .ip-map-popup-title{
  margin:0;
  padding-right:20px;
  color:var(--ip-ink);
  font-size:1.08rem;
  line-height:1.15;
}
.leaflet-popup-content .ip-route-map-popup-location p{
  margin:0;
  color:var(--ip-muted);
  font-size:.84rem;
  line-height:1.42;
}
@media (max-width:640px){
  .leaflet-popup-content .ip-route-map-popup.ip-route-map-popup-location{width:224px;max-width:72vw}
  .leaflet-popup-content .ip-route-map-popup-location .ip-route-map-popup-body{padding:13px 14px 14px}
}

/* v2.0.485 - Leer mas superpuesto sobre el texto difuminado */
.ip-route-content-collapsible{
  scroll-margin-top:110px;
}
.ip-route-content-collapsible [hidden]{display:none!important}
.ip-route-content-preview-text{
  margin:0!important;
  color:var(--ip-ink-2);
  font-size:1.06rem;
  line-height:1.65;
}
.ip-route-content-fade{
  position:relative;
  display:grid;
  margin-top:10px;
}
.ip-route-content-fade > *{
  grid-area:1/1;
}
.ip-route-content-blur{
  position:relative;
  max-height:76px;
  overflow:hidden;
  color:var(--ip-muted);
  filter:blur(4px);
  opacity:.62;
  user-select:none;
  pointer-events:none;
}
.ip-route-content-blur::after{
  content:'';
  position:absolute;
  inset:auto 0 0;
  height:54px;
  background:linear-gradient(180deg,rgba(255,255,255,0),#fff 88%);
}
.ip-route-content-blur p{
  margin:0!important;
  line-height:1.55;
}
.ip-route-content-read-more{
  display:flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:100%;
  min-height:42px;
  margin:12px auto 0;
  padding:10px 18px;
  border:0;
  border-radius:8px;
  background:var(--ip-lime);
  color:#fff;
  font:inherit;
  font-size:.88rem;
  font-weight:950;
  cursor:pointer;
  transition:background .2s ease,transform .2s ease;
}
.ip-route-content-fade .ip-route-content-read-more{
  position:relative;
  z-index:2;
  align-self:center;
  justify-self:center;
  margin:0;
  box-shadow:0 10px 24px rgba(7,19,22,.2);
}
.ip-route-content-read-more:hover,
.ip-route-content-read-more:focus-visible{
  background:var(--ip-sea-dark);
  color:#fff;
  transform:translateY(-1px);
}
.ip-route-content-read-more.is-collapse{
  margin:16px auto 0;
  background:#eef8f7;
  color:var(--ip-sea-dark);
}
.ip-route-content-full > :first-child{margin-top:0}
@media (max-width:640px){
  .ip-route-content-preview-text{font-size:1rem;line-height:1.58}
  .ip-route-content-read-more{min-width:140px}
}

/* v2.0.488 - multiples codigos embebidos ordenables en fichas POI */
.single-ip_poi .ip-poi-embed-section{
  margin-top:28px;
  padding-top:4px;
  scroll-margin-top:110px;
}
.single-ip_poi .ip-poi-embed-section h2{
  margin:8px 0 16px;
}
.single-ip_poi .ip-poi-embed-list{
  display:grid;
  gap:24px;
}
.single-ip_poi .ip-poi-embed-item{
  min-width:0;
}
.single-ip_poi .ip-poi-embed-item h3{
  margin:0 0 12px;
  color:var(--ip-ink);
  font-size:1.25rem;
  line-height:1.2;
}
.single-ip_poi .ip-poi-embed-content{
  width:100%;
  overflow:hidden;
  border:1px solid rgba(7,19,22,.12);
  border-radius:8px;
  background:#eaf3f3;
  box-shadow:0 18px 44px rgba(7,19,22,.13);
}
.single-ip_poi .ip-poi-embed-content iframe,
.single-ip_poi .ip-poi-embed-content video,
.single-ip_poi .ip-poi-embed-content embed,
.single-ip_poi .ip-poi-embed-content object{
  display:block;
  width:100%!important;
  max-width:100%!important;
  min-height:420px;
  margin:0;
  border:0;
  aspect-ratio:16/9;
}
.single-ip_poi .ip-poi-embed-content img{
  max-width:100%;
  height:auto;
}
.single-ip_poi .ip-poi-embed-content > :first-child{margin-top:0}
.single-ip_poi .ip-poi-embed-content > :last-child{margin-bottom:0}
@media (max-width:640px){
  .single-ip_poi .ip-poi-embed-section{margin-top:22px;scroll-margin-top:82px}
  .single-ip_poi .ip-poi-embed-list{gap:20px}
  .single-ip_poi .ip-poi-embed-item h3{font-size:1.1rem}
  .single-ip_poi .ip-poi-embed-content iframe,
  .single-ip_poi .ip-poi-embed-content video,
  .single-ip_poi .ip-poi-embed-content embed,
  .single-ip_poi .ip-poi-embed-content object{min-height:240px}
}

/* v2.0.489 - codigo embebido como fondo y visor ampliado en el hero de POI */
.single-ip_poi .ip-page-hero-card.has-embed .ip-page-hero-embed{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  border-radius:inherit;
  background:#071316;
  pointer-events:none;
}
.single-ip_poi .ip-page-hero-card.has-embed .ip-page-hero-embed iframe,
.single-ip_poi .ip-page-hero-card.has-embed .ip-page-hero-embed video,
.single-ip_poi .ip-page-hero-card.has-embed .ip-page-hero-embed embed,
.single-ip_poi .ip-page-hero-card.has-embed .ip-page-hero-embed object{
  display:block;
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  min-height:100%!important;
  margin:0!important;
  border:0!important;
  pointer-events:none!important;
}
.single-ip_poi .ip-page-hero-card.has-embed .ip-page-hero-embed video,
.single-ip_poi .ip-page-hero-card.has-embed .ip-page-hero-embed img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.single-ip_poi .ip-page-hero-card.has-embed:before{
  background:linear-gradient(180deg,rgba(7,19,22,.14) 0%,rgba(7,19,22,.5) 54%,rgba(7,19,22,.88) 100%),linear-gradient(90deg,rgba(7,19,22,.38),transparent 64%)!important;
}
.ip-embed-lightbox{
  position:fixed;
  inset:0;
  z-index:100200;
  display:grid;
  place-items:center;
  padding:clamp(14px,3vw,36px);
  background:rgba(3,13,16,.92);
  opacity:0;
  visibility:hidden;
  transition:opacity .22s ease,visibility .22s ease;
}
.ip-embed-lightbox.is-open{opacity:1;visibility:visible}
.ip-embed-lightbox-panel{
  position:relative;
  width:min(1180px,100%);
  max-height:calc(100dvh - 28px);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  border-radius:24px;
  background:#071316;
  box-shadow:0 28px 90px rgba(0,0,0,.48);
  transform:translateY(12px) scale(.985);
  transition:transform .22s ease;
}
.ip-embed-lightbox.is-open .ip-embed-lightbox-panel{transform:none}
.ip-embed-lightbox-content{width:100%;min-height:min(76vh,760px);background:#eaf3f3}
.ip-embed-lightbox-content iframe,
.ip-embed-lightbox-content video,
.ip-embed-lightbox-content embed,
.ip-embed-lightbox-content object{
  display:block;
  width:100%!important;
  max-width:100%!important;
  height:min(76vh,760px)!important;
  min-height:min(76vh,760px)!important;
  margin:0!important;
  border:0!important;
}
.ip-embed-lightbox-content img{display:block;max-width:100%;max-height:76vh;margin:auto}
.ip-embed-lightbox-title{
  position:absolute;
  left:18px;
  bottom:18px;
  max-width:calc(100% - 110px);
  padding:10px 14px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  background:rgba(7,19,22,.78);
  color:#fff;
  font-size:.9rem;
  font-weight:850;
  backdrop-filter:blur(12px);
}
.ip-embed-lightbox-close{
  position:absolute;
  top:14px;
  right:14px;
  z-index:3;
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  padding:0;
  border:1px solid rgba(255,255,255,.24);
  border-radius:50%;
  background:#fff;
  color:var(--ip-ink);
  font-size:1.8rem;
  line-height:1;
  cursor:pointer;
  box-shadow:0 12px 34px rgba(0,0,0,.28);
}
.ip-embed-lightbox-close:hover,
.ip-embed-lightbox-close:focus-visible{background:var(--ip-lime);color:#fff}
@media (max-width:640px){
  .ip-embed-lightbox{padding:8px}
  .ip-embed-lightbox-panel{width:100%;max-height:calc(100dvh - 16px);border-radius:18px}
  .ip-embed-lightbox-content{min-height:calc(100dvh - 16px)}
  .ip-embed-lightbox-content iframe,
  .ip-embed-lightbox-content video,
  .ip-embed-lightbox-content embed,
  .ip-embed-lightbox-content object{height:calc(100dvh - 16px)!important;min-height:calc(100dvh - 16px)!important}
  .ip-embed-lightbox-close{top:10px;right:10px;width:42px;height:42px}
  .ip-embed-lightbox-title{left:12px;bottom:12px;max-width:calc(100% - 78px);font-size:.78rem}
}

/* v2.0.490 - contenido informativo y enlaces internos al final de la agenda */
.ip-agenda-seo-section{
  padding:clamp(52px,7vw,88px) 0;
  border-top:1px solid rgba(7,19,22,.09);
  background:#f3f8f8;
}
.ip-agenda-seo-layout{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);
  gap:clamp(34px,6vw,82px);
  align-items:start;
}
.ip-agenda-seo-copy{max-width:800px}
.ip-agenda-seo-copy h2{
  margin:14px 0 20px;
  max-width:780px;
  color:var(--ip-ink);
  font-size:clamp(2rem,4vw,3.7rem);
  line-height:1.03;
}
.ip-agenda-seo-copy h3{
  margin:30px 0 10px;
  color:var(--ip-ink);
  font-size:1.35rem;
}
.ip-agenda-seo-copy p{
  margin:0 0 16px;
  color:var(--ip-ink-2);
  font-size:1.04rem;
  line-height:1.72;
}
.ip-agenda-seo-copy a{
  color:var(--ip-sea-dark);
  font-weight:850;
  text-decoration:underline;
  text-decoration-color:rgba(29,160,193,.38);
  text-underline-offset:3px;
}
.ip-agenda-seo-links{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.ip-agenda-seo-links a{
  display:grid;
  grid-template-columns:38px 1fr;
  align-content:start;
  min-width:0;
  min-height:150px;
  padding:20px 18px;
  border:1px solid rgba(7,19,22,.1);
  border-radius:8px;
  background:#fff;
  color:var(--ip-ink);
  text-decoration:none;
  box-shadow:0 14px 34px rgba(7,19,22,.07);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.ip-agenda-seo-links a:hover,
.ip-agenda-seo-links a:focus-visible{
  transform:translateY(-3px);
  border-color:rgba(29,160,193,.48);
  box-shadow:0 18px 42px rgba(7,19,22,.12);
}
.ip-agenda-seo-links a > span{
  grid-row:1 / span 2;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:50%;
  background:var(--ip-lime);
  color:#fff;
  font-size:1.05rem;
  font-weight:900;
}
.ip-agenda-seo-links strong{
  align-self:center;
  font-size:1rem;
  line-height:1.2;
}
.ip-agenda-seo-links small{
  grid-column:1 / -1;
  align-self:end;
  margin-top:24px;
  color:var(--ip-ink-2);
  font-size:.82rem;
  line-height:1.45;
}
@media (max-width:900px){
  .ip-agenda-seo-layout{grid-template-columns:1fr}
  .ip-agenda-seo-copy{max-width:none}
}
@media (max-width:640px){
  .ip-agenda-seo-section{padding:46px 0}
  .ip-agenda-seo-copy h2{font-size:2rem;line-height:1.08}
  .ip-agenda-seo-copy p{font-size:.98rem;line-height:1.65}
  .ip-agenda-seo-links{grid-template-columns:1fr}
  .ip-agenda-seo-links a{min-height:116px;padding:17px}
  .ip-agenda-seo-links small{margin-top:14px}
}

/* v2.0.491 - proximos eventos de la agenda con la misma seleccion y tarjetas de la home */
.page-template-template-eventos .ip-agenda-upcoming-events{margin-top:8px}
.page-template-template-eventos .ip-agenda-upcoming-events-head{margin-bottom:20px}
.page-template-template-eventos .ip-agenda-upcoming-events-head .ip-title-md{
  margin:0;
  max-width:900px;
}
.page-template-template-eventos .ip-agenda-section:not(.is-list-view) .ip-agenda-upcoming-events .ip-event-list-line-meta{
  display:none!important;
}
.page-template-template-eventos .ip-agenda-upcoming-events .ip-home-event-occurrence-badge{
  top:10px;
  bottom:auto;
  left:10px;
  min-height:30px;
  padding:7px 11px;
  border:1px solid rgba(255,255,255,.7);
  color:#fff;
  font-size:.7rem;
  font-weight:1000;
  text-transform:uppercase;
  box-shadow:0 10px 24px rgba(7,19,22,.25);
  backdrop-filter:blur(12px);
}
.page-template-template-eventos .ip-agenda-upcoming-events .ip-home-event-occurrence-badge.is-today{background:#d9474f}
.page-template-template-eventos .ip-agenda-upcoming-events .ip-home-event-occurrence-badge.is-tomorrow{
  border-color:rgba(255,255,255,.85);
  background:#f1c84b;
  color:#27363a;
}
.page-template-template-eventos .ip-agenda-upcoming-events .ip-home-event-occurrence-badge.is-upcoming{
  background:var(--ip-lime);
  color:#fff;
}
.page-template-template-eventos .ip-agenda-upcoming-events .ip-home-event-time-badge{
  position:absolute;
  z-index:2;
  left:10px;
  bottom:10px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:30px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.5);
  border-radius:999px;
  background:rgba(7,19,22,.82);
  color:#fff;
  font-size:.68rem;
  font-weight:900;
  line-height:1;
  box-shadow:0 8px 20px rgba(7,19,22,.24);
  backdrop-filter:blur(12px);
}
@media (max-width:640px){
  .page-template-template-eventos .ip-agenda-upcoming-events-head{margin-bottom:16px}
  .page-template-template-eventos .ip-agenda-upcoming-events .ip-home-event-occurrence-badge{
    top:7px;
    left:7px;
    min-height:25px;
    padding:5px 8px;
    font-size:.58rem;
  }
  .page-template-template-eventos .ip-agenda-upcoming-events .ip-home-event-time-badge{
    left:7px;
    bottom:7px;
    min-height:25px;
    padding:5px 8px;
    font-size:.58rem;
  }
}

/* v2.0.495 - tarjetas de POI reutilizables mediante shortcode */
.ip-poi-shortcode-wrap{
  width:100%;
  margin:clamp(24px,4vw,38px) 0;
}
.ip-poi-shortcode-card{
  display:grid;
  grid-template-columns:minmax(220px,42%) minmax(0,1fr);
  width:100%;
  max-width:880px;
  min-height:260px;
  overflow:hidden;
  border:1px solid rgba(7,19,22,.12);
  border-radius:8px;
  background:#fff;
  box-shadow:0 18px 46px rgba(7,19,22,.11);
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.ip-poi-shortcode-card:hover{
  transform:translateY(-3px);
  border-color:rgba(29,160,193,.42);
  box-shadow:0 24px 58px rgba(7,19,22,.16);
}
.ip-poi-shortcode-media{
  position:relative;
  display:block;
  min-width:0;
  min-height:260px;
  overflow:hidden;
  background:#eaf3f3;
}
.ip-poi-shortcode-media:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(7,19,22,.34));
  pointer-events:none;
}
.ip-poi-shortcode-media img{
  display:block;
  width:100%;
  height:100%;
  min-height:260px;
  object-fit:cover;
  transition:transform .38s ease;
}
.ip-poi-shortcode-card:hover .ip-poi-shortcode-media img{transform:scale(1.035)}
.ip-poi-shortcode-type{
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  max-width:calc(100% - 28px);
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--ip-sea-dark);
  font-size:.7rem;
  font-weight:950;
  line-height:1.15;
  box-shadow:0 9px 22px rgba(7,19,22,.2);
}
.ip-poi-shortcode-body{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-width:0;
  padding:clamp(24px,4vw,42px);
}
.ip-poi-shortcode-label{
  margin-bottom:12px;
  color:var(--ip-lime);
  font-size:.72rem;
  font-weight:950;
  text-transform:uppercase;
}
.ip-poi-shortcode-body h3{
  margin:0 0 24px;
  color:var(--ip-ink);
  font-size:clamp(1.55rem,3vw,2.45rem);
  line-height:1.02;
}
.ip-poi-shortcode-body h3 a{color:inherit;text-decoration:none}
.ip-poi-shortcode-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  min-height:48px;
  margin-top:auto;
  padding:12px 18px;
  border-radius:6px;
  background:var(--ip-lime);
  color:#fff!important;
  font-size:.88rem;
  font-weight:950;
  line-height:1.2;
  text-align:center;
  text-decoration:none!important;
  transition:background .2s ease,transform .2s ease;
}
.ip-poi-shortcode-button:hover,
.ip-poi-shortcode-button:focus-visible{
  background:var(--ip-sea-dark);
  color:#fff;
  transform:translateY(-1px);
}
@media (max-width:640px){
  .ip-poi-shortcode-card{grid-template-columns:1fr;min-height:0}
  .ip-poi-shortcode-media{min-height:0;aspect-ratio:16/10}
  .ip-poi-shortcode-media img{min-height:0;aspect-ratio:16/10}
  .ip-poi-shortcode-body{padding:20px}
  .ip-poi-shortcode-body h3{margin-bottom:20px;font-size:1.55rem}
  .ip-poi-shortcode-button{width:100%}
}

/* v2.0.496 - tarjeta POI incrustable compacta y horizontal */
.ip-poi-shortcode-wrap{
  margin:22px 0;
}
.ip-poi-shortcode-card{
  grid-template-columns:180px minmax(0,1fr);
  max-width:680px;
  min-height:172px;
  border:2px solid rgba(29,160,193,.38);
  border-radius:8px;
  box-shadow:0 12px 30px rgba(7,19,22,.1);
}
.ip-poi-shortcode-card:hover{
  transform:translateY(-2px);
  border-color:var(--ip-lime);
  box-shadow:0 17px 38px rgba(7,19,22,.14);
}
.ip-poi-shortcode-media{
  min-height:172px;
  aspect-ratio:auto;
}
.ip-poi-shortcode-media:after{display:none}
.ip-poi-shortcode-media img{
  min-height:172px;
  aspect-ratio:auto;
}
.ip-poi-shortcode-body{
  justify-content:flex-start;
  padding:18px 20px;
}
.ip-poi-shortcode-body h3{
  margin:0 0 8px;
  font-size:clamp(1.2rem,2.2vw,1.65rem);
  line-height:1.08;
}
.ip-poi-shortcode-label{display:none}
.ip-poi-shortcode-type{
  position:static;
  display:inline-flex;
  align-self:flex-start;
  max-width:100%;
  margin:0 0 14px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--ip-sea-dark);
  font-size:.72rem;
  font-weight:900;
  box-shadow:none;
}
.ip-poi-shortcode-button{
  width:auto;
  min-height:40px;
  margin-top:auto;
  padding:9px 14px;
  font-size:.76rem;
}
@media (max-width:480px){
  .ip-poi-shortcode-card{
    grid-template-columns:108px minmax(0,1fr);
    min-height:154px;
  }
  .ip-poi-shortcode-media{
    min-height:154px;
    aspect-ratio:auto;
  }
  .ip-poi-shortcode-media img{
    min-height:154px;
    aspect-ratio:auto;
  }
  .ip-poi-shortcode-body{padding:14px 12px}
  .ip-poi-shortcode-body h3{margin-bottom:6px;font-size:1.02rem;line-height:1.08}
  .ip-poi-shortcode-type{margin-bottom:10px;font-size:.64rem}
  .ip-poi-shortcode-button{
    width:100%;
    min-height:38px;
    padding:8px 9px;
    font-size:.68rem;
  }
  .ip-poi-shortcode-button span:last-child{display:none}
}

/* v2.0.513 - resumen del directorio de lugares de interes */
.ip-poi-directory-summary{
  margin-top:42px;
  padding:30px;
  overflow:hidden;
  border:1px solid rgba(29,160,193,.25);
  border-left:5px solid var(--ip-lime);
  border-radius:8px;
  background:#fff;
  box-shadow:0 18px 46px rgba(7,19,22,.09);
}
.ip-poi-directory-summary-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px;
  gap:30px;
  align-items:center;
  padding-bottom:26px;
  border-bottom:1px solid rgba(7,19,22,.1);
}
.ip-poi-directory-summary-kicker{
  display:block;
  margin-bottom:8px;
  color:var(--ip-sea-dark);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:0;
  text-transform:uppercase;
}
.ip-poi-directory-summary-copy h2{
  margin:0 0 8px;
  font-size:2rem;
  line-height:1.08;
  letter-spacing:0;
}
.ip-poi-directory-summary-copy p{
  max-width:680px;
  margin:0;
  color:var(--ip-muted);
}
.ip-poi-directory-total{
  min-width:0;
  padding-left:28px;
  border-left:1px solid rgba(7,19,22,.12);
}
.ip-poi-directory-total strong{
  display:block;
  color:var(--ip-lime);
  font-size:3rem;
  line-height:1;
  letter-spacing:0;
}
.ip-poi-directory-total span{
  display:block;
  margin-top:7px;
  color:var(--ip-ink);
  font-size:.82rem;
  font-weight:800;
  line-height:1.3;
}
.ip-poi-directory-types-head{
  display:flex;
  gap:16px;
  align-items:center;
  justify-content:space-between;
  margin-top:24px;
  margin-bottom:10px;
}
.ip-poi-directory-types-head h3{
  margin:0;
  font-size:1.15rem;
  letter-spacing:0;
}
.ip-poi-directory-types-head > span{
  color:var(--ip-muted);
  font-size:.76rem;
  font-weight:800;
}
.ip-poi-directory-types{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:28px;
}
.ip-poi-directory-type{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  min-width:0;
  padding:13px 0;
  border-bottom:1px solid rgba(7,19,22,.09);
  color:inherit;
  text-decoration:none;
  transition:border-color .2s ease,color .2s ease,transform .2s ease;
}
.ip-poi-directory-type:hover,
.ip-poi-directory-type:focus-visible{
  border-color:var(--ip-lime);
  color:var(--ip-sea-dark);
  transform:translateX(3px);
  outline:none;
}
.ip-poi-directory-type-icon{
  display:flex;
  width:30px;
  height:30px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(29,160,193,.1);
  font-size:.95rem;
}
.ip-poi-directory-type-name{
  min-width:0;
  overflow-wrap:anywhere;
  color:var(--ip-ink);
  font-size:.86rem;
  font-weight:800;
}
.ip-poi-directory-type strong{
  color:var(--ip-sea-dark);
  font-size:1rem;
  letter-spacing:0;
}
.ip-poi-directory-type strong span{color:var(--ip-lime)}
.ip-poi-directory-seo{
  margin-top:24px;
  padding:30px;
  border:1px solid rgba(7,19,22,.1);
  border-radius:8px;
  background:#f7fbfc;
  box-shadow:0 16px 42px rgba(7,19,22,.07);
}
.ip-poi-directory-seo-intro{
  max-width:880px;
}
.ip-poi-directory-seo h2{
  margin:0 0 12px;
  font-size:2rem;
  line-height:1.08;
  letter-spacing:0;
}
.ip-poi-directory-seo h3{
  margin:0 0 8px;
  font-size:1.08rem;
  letter-spacing:0;
}
.ip-poi-directory-seo p{
  margin:0;
  color:var(--ip-muted);
  line-height:1.75;
}
.ip-poi-directory-seo-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:30px;
  margin-top:26px;
  padding-top:24px;
  border-top:1px solid rgba(7,19,22,.1);
}
.ip-poi-directory-seo a{
  color:var(--ip-sea-dark);
  font-weight:800;
  text-decoration:underline;
  text-decoration-color:rgba(29,160,193,.4);
  text-underline-offset:3px;
}
.ip-poi-directory-seo a:hover,
.ip-poi-directory-seo a:focus-visible{
  color:var(--ip-lime);
  text-decoration-color:currentColor;
}
@media (max-width:800px){
  .ip-poi-directory-summary{margin-top:32px;padding:22px}
  .ip-poi-directory-summary-head{grid-template-columns:1fr;gap:20px}
  .ip-poi-directory-total{display:flex;gap:14px;align-items:center;padding-left:0;border-left:0}
  .ip-poi-directory-total strong{font-size:2.5rem}
  .ip-poi-directory-total span{max-width:150px;margin-top:0}
  .ip-poi-directory-types{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}
  .ip-poi-directory-seo{padding:22px}
}
@media (max-width:520px){
  .ip-poi-directory-summary{padding:19px 17px}
  .ip-poi-directory-summary-copy h2{font-size:1.55rem}
  .ip-poi-directory-types{grid-template-columns:1fr}
  .ip-poi-directory-type{padding:11px 0}
  .ip-poi-directory-seo{padding:20px 17px}
  .ip-poi-directory-seo h2{font-size:1.55rem}
  .ip-poi-directory-seo-columns{grid-template-columns:1fr;gap:22px}
}

/* v2.0.516 - contenido editorial del archivo de Historia */
.ip-history-archive-seo{
  margin-top:38px;
  padding:30px;
  border:1px solid rgba(29,160,193,.24);
  border-left:5px solid var(--ip-lime);
  border-radius:8px;
  background:#fff;
  box-shadow:0 18px 46px rgba(7,19,22,.09);
}
.ip-history-archive-seo-intro{
  max-width:900px;
}
.ip-history-archive-seo h2{
  max-width:850px;
  margin:10px 0 12px;
  font-size:2rem;
  line-height:1.1;
  letter-spacing:0;
}
.ip-history-archive-seo h3{
  margin:0 0 8px;
  font-size:1.08rem;
  letter-spacing:0;
}
.ip-history-archive-seo p{
  margin:0;
  color:var(--ip-muted);
  line-height:1.75;
}
.ip-history-archive-seo-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:30px;
  margin-top:26px;
  padding-top:24px;
  border-top:1px solid rgba(7,19,22,.1);
}
.ip-history-archive-seo a{
  color:var(--ip-sea-dark);
  font-weight:800;
  text-decoration:underline;
  text-decoration-color:rgba(29,160,193,.42);
  text-underline-offset:3px;
}
.ip-history-archive-seo a:hover,
.ip-history-archive-seo a:focus-visible{
  color:var(--ip-lime);
  text-decoration-color:currentColor;
}
@media (max-width:700px){
  .ip-history-archive-seo{margin-top:30px;padding:21px 18px}
  .ip-history-archive-seo h2{font-size:1.55rem}
  .ip-history-archive-seo-grid{grid-template-columns:1fr;gap:22px}
}

/* v2.0.517 - cronologia de Historia agrupada por año */
.ip-history-timeline{
  position:relative;
  display:grid;
  gap:34px;
  margin-top:10px;
}
.ip-history-timeline::before{
  content:"";
  position:absolute;
  top:22px;
  bottom:22px;
  left:108px;
  width:4px;
  border-radius:4px;
  background:linear-gradient(180deg,var(--ip-sea),var(--ip-lime),var(--ip-coral));
  opacity:.65;
}
.ip-history-year-row{
  position:relative;
  display:grid;
  grid-template-columns:118px minmax(0,1fr);
  gap:26px;
  align-items:start;
}
.ip-history-year-marker{
  position:sticky;
  top:100px;
  z-index:2;
  display:flex;
  min-height:48px;
  align-items:center;
  justify-content:flex-start;
}
.ip-history-year-marker span{
  position:absolute;
  right:-1px;
  width:18px;
  height:18px;
  border:4px solid #fff;
  border-radius:50%;
  background:var(--ip-lime);
  box-shadow:0 0 0 4px rgba(29,160,193,.2),0 8px 20px rgba(7,19,22,.16);
}
.ip-history-year-marker strong{
  display:inline-flex;
  min-height:42px;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  border:1px solid rgba(7,19,22,.1);
  border-radius:6px;
  background:var(--ip-ink);
  color:#fff;
  font-size:1rem;
  line-height:1;
  letter-spacing:0;
  box-shadow:0 10px 26px rgba(7,19,22,.15);
}
.ip-history-year-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:22px;
  min-width:0;
}
.post-type-archive-ip_historia .ip-history-year-cards .ip-history-card{
  height:100%;
}
.post-type-archive-ip_historia .ip-history-year-badge{
  display:none;
}
@media (max-width:760px){
  .ip-history-timeline{gap:26px}
  .ip-history-timeline::before{left:61px}
  .ip-history-year-row{grid-template-columns:70px minmax(0,1fr);gap:14px}
  .ip-history-year-marker{top:88px;justify-content:flex-start}
  .ip-history-year-marker span{right:-1px;left:auto;width:16px;height:16px}
  .ip-history-year-marker strong{
    min-height:36px;
    max-width:56px;
    padding:0 8px;
    font-size:.72rem;
  }
  .ip-history-year-cards{grid-template-columns:1fr;gap:18px}
}

/* v2.0.518 - tarjetas compactas para la cronologia de Historia */
.post-type-archive-ip_historia .ip-history-year-cards{
  grid-template-columns:repeat(auto-fit,minmax(420px,1fr));
}
.post-type-archive-ip_historia .ip-history-year-cards .ip-history-card{
  display:grid;
  grid-template-columns:170px minmax(0,1fr);
  min-height:190px;
  overflow:hidden;
  border:1px solid rgba(7,19,22,.12);
  border-radius:8px;
  background:#fff;
  box-shadow:0 12px 30px rgba(7,19,22,.08);
}
.post-type-archive-ip_historia .ip-history-year-cards .ip-history-media{
  height:100%;
  min-height:190px;
  aspect-ratio:auto;
}
.post-type-archive-ip_historia .ip-history-year-cards .ip-history-media img{
  width:100%;
  height:100%;
  min-height:190px;
  object-fit:cover;
}
.post-type-archive-ip_historia .ip-history-year-cards .ip-card-body{
  display:flex;
  min-width:0;
  padding:17px 18px;
  flex-direction:column;
  align-items:flex-start;
}
.post-type-archive-ip_historia .ip-history-year-cards .ip-card-kicker{
  gap:6px;
  margin-bottom:7px;
}
.post-type-archive-ip_historia .ip-history-year-cards .ip-card-kicker .ip-chip,
.post-type-archive-ip_historia .ip-history-year-cards .ip-card-meta .ip-chip{
  min-height:25px;
  padding:4px 8px;
  font-size:.62rem;
}
.post-type-archive-ip_historia .ip-history-year-cards h3{
  margin:0 0 7px;
  color:var(--ip-sea-dark);
  font-size:1.22rem;
  line-height:1.08;
  letter-spacing:0;
  overflow-wrap:anywhere;
}
.post-type-archive-ip_historia .ip-history-year-cards .ip-card-body > p:not(.ip-history-card-note){
  display:-webkit-box;
  margin:0 0 10px;
  overflow:hidden;
  color:var(--ip-muted);
  font-size:.8rem;
  line-height:1.45;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.post-type-archive-ip_historia .ip-history-year-cards .ip-card-meta{
  display:none;
}
.post-type-archive-ip_historia .ip-history-year-cards .ip-history-card-note{
  display:none;
}
.post-type-archive-ip_historia .ip-history-year-cards .ip-button-ghost{
  display:inline-flex;
  width:auto;
  min-height:38px;
  margin-top:auto;
  align-items:center;
  justify-content:center;
  padding:9px 14px;
  border:1px solid var(--ip-lime);
  border-radius:6px;
  background:var(--ip-lime);
  color:#fff;
  font-size:.74rem;
  font-weight:900;
  line-height:1;
  box-shadow:0 9px 22px rgba(29,160,193,.22);
}
.post-type-archive-ip_historia .ip-history-year-cards .ip-history-card:hover .ip-button-ghost,
.post-type-archive-ip_historia .ip-history-year-cards .ip-history-card:focus-within .ip-button-ghost{
  background:var(--ip-sea-dark);
  border-color:var(--ip-sea-dark);
}
@media (max-width:620px){
  .post-type-archive-ip_historia .ip-history-year-cards{grid-template-columns:1fr}
  .post-type-archive-ip_historia .ip-history-year-cards .ip-history-card{
    grid-template-columns:112px minmax(0,1fr);
    min-height:168px;
  }
  .post-type-archive-ip_historia .ip-history-year-cards .ip-history-media,
  .post-type-archive-ip_historia .ip-history-year-cards .ip-history-media img{min-height:168px}
  .post-type-archive-ip_historia .ip-history-year-cards .ip-card-body{padding:13px 11px}
  .post-type-archive-ip_historia .ip-history-year-cards h3{font-size:1rem}
  .post-type-archive-ip_historia .ip-history-year-cards .ip-card-kicker .ip-chip:nth-child(n+2){display:none}
  .post-type-archive-ip_historia .ip-history-year-cards .ip-card-body > p:not(.ip-history-card-note){font-size:.72rem;-webkit-line-clamp:2}
  .post-type-archive-ip_historia .ip-history-year-cards .ip-button-ghost{width:100%;min-height:34px;padding:7px 9px;font-size:.68rem}
}

/* v2.0.519 - hero editorial y cronologia antigua en historias individuales */
.single-ip_historia .ip-history-single-page{padding-top:0}
.ip-history-single-hero{
  min-height:clamp(420px,58vw,680px);
}
.ip-history-single-hero::after{
  background:linear-gradient(180deg,rgba(7,19,22,.05) 0%,rgba(7,19,22,.22) 42%,rgba(7,19,22,.9) 100%),linear-gradient(90deg,rgba(7,19,22,.68) 0%,rgba(7,19,22,.18) 68%,rgba(7,19,22,.2) 100%);
}
.ip-history-single-hero .ip-news-single-hero-content{
  padding:clamp(120px,14vw,180px) 0 clamp(34px,6vw,72px);
}
.ip-history-single-hero h1{
  max-width:940px;
  font-size:clamp(2rem,4.6vw,4.35rem)!important;
  line-height:1;
  letter-spacing:0;
}
.ip-history-single-period{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  min-height:31px;
  margin:0 0 13px;
  align-items:center;
  padding:7px 11px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  background:rgba(7,19,22,.62);
  color:#fff;
  font-size:.76rem;
  font-weight:900;
  line-height:1;
  letter-spacing:0;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.ip-history-single-hero .ip-news-single-hero-meta{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.single-ip_historia .ip-history-year-panel strong{
  font-size:clamp(1.55rem,3vw,2.35rem);
  line-height:1.05;
  letter-spacing:0;
}
@media (max-width:640px){
  .ip-history-single-hero{min-height:clamp(390px,112vw,540px)}
  .ip-history-single-hero .ip-news-single-hero-content{padding:104px 0 32px}
  .ip-history-single-hero h1{font-size:clamp(1.65rem,8.4vw,2.8rem)!important;line-height:1.04}
  .ip-history-single-period{font-size:.7rem;margin-bottom:10px}
}

/* v2.0.521 - filtros de Historia colapsados en dispositivos moviles */
.ip-history-filter-mobile-head{display:none}
.ip-history-filter-toggle{width:100%;justify-content:center;text-align:center}
@media (max-width:860px){
  .post-type-archive-ip_historia .ip-history-filter-mobile-head{
    display:flex;
    width:100%;
    margin:0 0 14px;
  }
  .post-type-archive-ip_historia .ip-history-filter-toggle{
    display:flex;
    width:100%;
    min-height:50px;
    align-items:center;
    justify-content:center;
  }
  .post-type-archive-ip_historia .ip-history-filter-panel{
    display:none!important;
    grid-template-columns:1fr;
    margin-bottom:20px;
  }
  .post-type-archive-ip_historia .ip-history-filter-panel.is-open{
    display:grid!important;
  }
}
@media (min-width:861px){
  .post-type-archive-ip_historia .ip-history-filter-panel{display:grid!important}
}

/* v2.0.523 - imagen destacada ampliable y alojamiento en historias */
.ip-history-featured-image{
  margin-top:30px;
  padding-top:26px;
  border-top:1px solid var(--ip-line);
}
.ip-history-featured-image h2{
  margin:0 0 15px;
  color:var(--ip-ink);
  font-size:clamp(1.35rem,2.4vw,1.9rem);
  line-height:1.08;
  letter-spacing:0;
}
.ip-history-featured-image-button{
  position:relative;
  display:block;
  width:100%;
  padding:0;
  overflow:hidden;
  border:1px solid var(--ip-line);
  border-radius:8px;
  background:var(--ip-cloud);
  cursor:zoom-in;
  box-shadow:0 14px 34px rgba(7,19,22,.1);
}
.ip-history-featured-image-preview{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
  transition:transform .25s ease;
}
.ip-history-featured-image-button:hover .ip-history-featured-image-preview,
.ip-history-featured-image-button:focus-visible .ip-history-featured-image-preview{transform:scale(1.025)}
.ip-history-featured-image-zoom{
  position:absolute;
  right:14px;
  bottom:14px;
  display:grid;
  width:46px;
  height:46px;
  place-items:center;
  border:1px solid rgba(255,255,255,.78);
  border-radius:50%;
  background:rgba(255,255,255,.94);
  color:var(--ip-sea-dark);
  font-size:1.15rem;
  line-height:1;
  box-shadow:0 12px 30px rgba(7,19,22,.2);
}
.ip-history-accommodations-section{padding-top:clamp(28px,5vw,58px)}
@media (max-width:640px){
  .ip-history-featured-image{margin-top:24px;padding-top:21px}
  .ip-history-featured-image-preview{aspect-ratio:4/3}
  .ip-history-featured-image-zoom{right:10px;bottom:10px;width:42px;height:42px}
}

/* v2.0.524 - cronologia horizontal de Historia en la home */
.ip-home-history-timeline{
  overflow:hidden;
  border-top:1px solid rgba(7,19,22,.08);
  border-bottom:1px solid rgba(7,19,22,.08);
  background:linear-gradient(180deg,#f4fbfb 0%,#e9f5f6 100%);
}
.ip-home-history-head{
  display:flex;
  gap:24px;
  align-items:flex-end;
  justify-content:space-between;
  margin-bottom:8px;
}
.ip-home-history-head>div:first-child{max-width:760px}
.ip-home-history-head h2{margin:10px 0 10px}
.ip-home-history-head p{margin:0;color:var(--ip-muted);font-size:1rem;line-height:1.55}
.ip-home-history-actions{display:flex;gap:12px;align-items:center;flex:0 0 auto}
.ip-home-history-scroll-controls{display:flex;gap:8px}
.ip-home-history-scroll-controls button{
  display:grid;
  width:46px;
  height:46px;
  padding:0;
  place-items:center;
  border:1px solid var(--ip-line);
  border-radius:50%;
  background:#fff;
  color:var(--ip-ink);
  font-size:1.7rem;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(7,19,22,.09);
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.ip-home-history-scroll-controls button:hover:not(:disabled),
.ip-home-history-scroll-controls button:focus-visible:not(:disabled){background:var(--ip-lime);border-color:var(--ip-lime);color:#fff;transform:translateY(-2px)}
.ip-home-history-scroll-controls button:disabled{opacity:.34;cursor:default;box-shadow:none}
.ip-home-history-viewport{width:100%;overflow:hidden}
.ip-home-history-track{
  position:relative;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(300px,350px);
  gap:20px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  padding:42px max(20px,calc((100vw - var(--ip-container))/2)) 24px;
  scroll-behavior:smooth;
  scroll-padding-inline:max(20px,calc((100vw - var(--ip-container))/2));
  scroll-snap-type:x mandatory;
  scrollbar-color:var(--ip-lime) rgba(7,19,22,.1);
  scrollbar-width:thin;
}
.ip-home-history-track::before{
  content:"";
  position:absolute;
  top:22px;
  left:max(20px,calc((100vw - var(--ip-container))/2));
  width:max(calc(100% - 40px),var(--ip-container));
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--ip-lime),var(--ip-sea-dark),var(--ip-coral));
  opacity:.56;
}
.ip-home-history-track::-webkit-scrollbar{height:8px}
.ip-home-history-track::-webkit-scrollbar-track{background:rgba(7,19,22,.08);border-radius:999px}
.ip-home-history-track::-webkit-scrollbar-thumb{background:var(--ip-lime);border-radius:999px}
.ip-home-history-event{
  position:relative;
  min-width:0;
  scroll-snap-align:start;
}
.ip-home-history-event::before{
  content:"";
  position:absolute;
  z-index:3;
  top:-27px;
  left:20px;
  width:14px;
  height:14px;
  border:4px solid #fff;
  border-radius:50%;
  background:var(--ip-lime);
  box-shadow:0 0 0 2px var(--ip-sea-dark);
}
.ip-home-history-event::after{
  content:"";
  position:absolute;
  z-index:1;
  top:-20px;
  left:27px;
  width:calc(100% + 20px);
  height:3px;
  background:var(--ip-sea-dark);
  opacity:.42;
}
.ip-home-history-event>a{
  display:flex;
  height:100%;
  min-height:430px;
  overflow:hidden;
  flex-direction:column;
  border:1px solid rgba(7,19,22,.12);
  border-radius:8px;
  background:#fff;
  color:var(--ip-ink);
  text-decoration:none;
  box-shadow:0 16px 38px rgba(7,19,22,.1);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.ip-home-history-event>a:hover,
.ip-home-history-event>a:focus-visible{transform:translateY(-5px);border-color:rgba(29,160,193,.55);box-shadow:0 24px 50px rgba(7,19,22,.16)}
.ip-home-history-event-media{position:relative;display:block;height:190px;overflow:hidden;background:var(--ip-cloud)}
.ip-home-history-event-media::after{content:"";position:absolute;inset:auto 0 0;height:45%;background:linear-gradient(180deg,transparent,rgba(7,19,22,.62));pointer-events:none}
.ip-home-history-event-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.ip-home-history-event>a:hover .ip-home-history-event-media img{transform:scale(1.04)}
.ip-home-history-event-media strong{
  position:absolute;
  z-index:2;
  right:13px;
  bottom:13px;
  max-width:calc(100% - 26px);
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--ip-sea-dark);
  font-size:.78rem;
  font-weight:950;
  line-height:1;
  text-align:center;
  box-shadow:0 10px 24px rgba(7,19,22,.18);
}
.ip-home-history-event-body{display:flex;min-height:240px;padding:19px;flex:1;flex-direction:column;align-items:flex-start}
.ip-home-history-event-body small{color:var(--ip-sea-dark);font-size:.68rem;font-weight:950;line-height:1;text-transform:uppercase}
.ip-home-history-event-body h3{margin:10px 0 9px;font-size:1.2rem;line-height:1.12;letter-spacing:0}
.ip-home-history-event-excerpt{display:-webkit-box;overflow:hidden;color:var(--ip-muted);font-size:.84rem;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.ip-home-history-event-body>b{display:inline-flex;margin-top:auto;padding-top:15px;gap:7px;align-items:center;color:var(--ip-lime);font-size:.78rem;font-weight:950}
.ip-home-history-event-body>b i{font-style:normal;font-size:1rem}
@media (max-width:760px){
  .ip-home-history-head{display:grid;align-items:start}
  .ip-home-history-actions{width:100%;justify-content:space-between}
  .ip-home-history-actions>.ip-button-ghost{min-height:44px;padding:10px 14px;font-size:.78rem}
  .ip-home-history-scroll-controls button{width:42px;height:42px}
  .ip-home-history-track{grid-auto-columns:minmax(270px,82vw);gap:14px;padding-inline:14px;scroll-padding-inline:14px}
  .ip-home-history-track::before{left:14px;width:max(calc(100% - 28px),1000px)}
  .ip-home-history-event>a{min-height:408px}
  .ip-home-history-event-media{height:174px}
  .ip-home-history-event-body{min-height:234px;padding:17px}
}

/* v2.0.534 - carrusel de playas y calas en la home */
.ip-home-beaches{
  overflow:hidden;
  padding-top:clamp(38px,5vw,70px);
  padding-bottom:clamp(40px,5vw,72px);
  background:#eef8f8;
}
.ip-home-beaches-head{
  display:flex;
  margin-bottom:24px;
  gap:28px;
  align-items:flex-end;
  justify-content:space-between;
}
.ip-home-beaches-head>div{max-width:780px}
.ip-home-beaches-head p{
  max-width:730px;
  margin:10px 0 0;
  color:var(--ip-muted);
  line-height:1.65;
}
.ip-home-beaches-cta{flex:0 0 auto}
.ip-home-beaches-marquee{
  width:100%;
  overflow:hidden;
  padding:4px 0 14px;
}
.ip-home-beaches-track{
  display:flex;
  width:max-content;
  gap:16px;
  animation:ip-home-beaches-scroll 42s linear infinite;
  will-change:transform;
}
.ip-home-beaches-group{
  display:flex;
  gap:16px;
}
.ip-home-beaches-marquee:hover .ip-home-beaches-track,
.ip-home-beaches-marquee:focus-within .ip-home-beaches-track{
  animation-play-state:paused;
}
.ip-home-beach-card{
  width:clamp(260px,28vw,390px);
  aspect-ratio:4/3;
  flex:0 0 auto;
}
.ip-home-beach-card>a{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  overflow:hidden;
  border:1px solid rgba(7,19,22,.14);
  border-radius:8px;
  background:var(--ip-cloud);
  color:#fff;
  text-decoration:none;
  box-shadow:0 14px 34px rgba(7,19,22,.13);
}
.ip-home-beach-card>a::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(7,19,22,.04) 36%,rgba(7,19,22,.88) 100%);
  pointer-events:none;
}
.ip-home-beach-card img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}
.ip-home-beach-card a:hover img,
.ip-home-beach-card a:focus-visible img{transform:scale(1.045)}
.ip-home-beach-card a:focus-visible{
  outline:3px solid var(--ip-lime);
  outline-offset:3px;
}
.ip-home-beach-type{
  position:absolute;
  z-index:2;
  top:14px;
  right:14px;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.75);
  border-radius:999px;
  background:rgba(255,255,255,.95);
  color:var(--ip-sea-dark);
  font-size:.7rem;
  font-weight:900;
  line-height:1;
}
.ip-home-beach-title{
  position:absolute;
  z-index:2;
  right:18px;
  bottom:17px;
  left:18px;
  color:#fff;
  font-size:clamp(1.05rem,1.55vw,1.38rem);
  font-weight:950;
  line-height:1.12;
  text-shadow:0 2px 12px rgba(0,0,0,.42);
}
.ip-home-beaches-mobile-cta{display:none}
@keyframes ip-home-beaches-scroll{
  to{transform:translate3d(calc(-50% - 8px),0,0)}
}
@media (max-width:640px){
  .ip-home-beaches{padding-top:32px;padding-bottom:40px}
  .ip-home-beaches-head{display:block;margin-bottom:18px}
  .ip-home-beaches-head .ip-home-beaches-cta{display:none}
  .ip-home-beaches-marquee{padding-bottom:10px}
  .ip-home-beaches-track,
  .ip-home-beaches-group{gap:12px}
  .ip-home-beaches-track{animation-duration:34s}
  .ip-home-beach-card{width:min(78vw,310px)}
  .ip-home-beach-type{top:10px;right:10px;padding:7px 9px;font-size:.64rem}
  .ip-home-beach-title{right:14px;bottom:14px;left:14px;font-size:1.08rem}
  .ip-home-beaches-mobile-cta{display:flex;margin-top:14px}
  .ip-home-beaches-mobile-cta .ip-button-lime{width:100%;justify-content:center;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  .ip-home-beaches-marquee{overflow-x:auto;scroll-snap-type:x mandatory}
  .ip-home-beaches-track{animation:none!important;will-change:auto}
  .ip-home-beaches-group[aria-hidden="true"]{display:none}
  .ip-home-beach-card{scroll-snap-align:start}
  .ip-home-beach-card img{transition:none}
}

/* v2.0.535 - plantillas de aparcamiento y parking gratis */
.ip-parking-page{
  padding-bottom:0;
  background:#f5fafa;
}
.ip-parking-hero .ip-page-hero-card{
  border-bottom:1px solid rgba(29,160,193,.16);
  background:
    linear-gradient(110deg,rgba(255,255,255,.97),rgba(235,249,249,.9)),
    #fff;
}
.ip-parking-hero .ip-page-title-wrap{max-width:940px}
.ip-parking-hero .ip-lead{
  display:grid;
  max-width:850px;
  gap:4px;
}
.ip-parking-intro{
  padding-top:clamp(28px,4vw,54px);
  padding-bottom:clamp(28px,4vw,52px);
}
.ip-parking-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);
  gap:clamp(24px,4vw,54px);
  align-items:start;
}
.ip-parking-intro-copy h2,
.ip-parking-map-head h2,
.ip-parking-guide-head h2,
.ip-parking-faq-head h2{
  margin:8px 0 12px;
  letter-spacing:0;
}
.ip-parking-intro-copy p{
  margin:0 0 15px;
  color:var(--ip-muted);
  font-size:1rem;
  line-height:1.72;
}
.ip-parking-intro-copy p:last-child{margin-bottom:0}
.ip-parking-primary-cta{
  position:relative;
  overflow:hidden;
  padding:26px;
  border:1px solid rgba(7,19,22,.12);
  border-radius:8px;
  background:var(--ip-sea-dark);
  color:#fff;
  box-shadow:0 18px 44px rgba(7,19,22,.14);
}
.ip-parking-primary-cta::before{
  content:"P";
  position:absolute;
  top:-34px;
  right:10px;
  color:rgba(255,255,255,.08);
  font-size:9rem;
  font-weight:950;
  line-height:1;
}
.ip-parking-primary-cta>*{position:relative;z-index:1}
.ip-parking-primary-cta span{
  display:block;
  color:var(--ip-lime);
  font-size:.72rem;
  font-weight:950;
  text-transform:uppercase;
}
.ip-parking-primary-cta h2{
  margin:9px 0 10px;
  color:#fff;
  font-size:clamp(1.45rem,2.3vw,2rem);
  line-height:1.08;
  letter-spacing:0;
}
.ip-parking-primary-cta p{
  margin:0 0 20px;
  color:rgba(255,255,255,.8);
  line-height:1.58;
}
.ip-parking-primary-cta .ip-button-lime{
  width:100%;
  justify-content:center;
  text-align:center;
}
.ip-parking-map-section{
  padding-top:clamp(34px,5vw,68px);
  padding-bottom:clamp(36px,5vw,72px);
  background:#fff;
}
.ip-parking-map-head{
  display:flex;
  margin-bottom:4px;
  gap:24px;
  align-items:end;
  justify-content:space-between;
}
.ip-parking-map-head>div{max-width:780px}
.ip-parking-map-head p{
  max-width:720px;
  margin:0;
  color:var(--ip-muted);
  line-height:1.62;
}
.ip-parking-map-link{flex:0 0 auto}
.ip-parking-map-link-mobile{display:none}
.ip-parking-map-section .ip-map-shell{
  margin-top:4px;
  border-radius:8px;
}
.ip-parking-map-section .ip-map{height:clamp(470px,62vh,680px)}
.ip-parking-map-section .ip-map-summary{border-radius:8px}
.ip-parking-map-note{
  display:flex;
  padding:15px 17px;
  gap:11px;
  border-left:4px solid var(--ip-lime);
  background:#eef8f8;
  color:var(--ip-muted);
  font-size:.88rem;
  line-height:1.55;
}
.ip-parking-map-note strong{color:var(--ip-ink)}
.ip-parking-guide{
  padding-top:clamp(38px,5vw,72px);
  padding-bottom:clamp(38px,5vw,72px);
}
.ip-parking-guide-head{max-width:790px;margin-bottom:24px}
.ip-parking-guide-head p{margin:0;color:var(--ip-muted);line-height:1.65}
.ip-parking-guide-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.ip-parking-guide-card{
  min-height:230px;
  padding:23px;
  border:1px solid rgba(7,19,22,.12);
  border-radius:8px;
  background:#fff;
  box-shadow:0 12px 30px rgba(7,19,22,.07);
}
.ip-parking-guide-card>span{
  display:grid;
  width:42px;
  height:42px;
  border-radius:50%;
  place-items:center;
  background:#e1f5f3;
  font-size:1.15rem;
}
.ip-parking-guide-card h3{
  margin:17px 0 9px;
  font-size:1.14rem;
  line-height:1.18;
  letter-spacing:0;
}
.ip-parking-guide-card p{
  margin:0;
  color:var(--ip-muted);
  font-size:.9rem;
  line-height:1.62;
}
.ip-parking-official-note{
  display:flex;
  margin-top:20px;
  padding:20px 22px;
  gap:18px;
  align-items:center;
  justify-content:space-between;
  border:1px solid rgba(29,160,193,.24);
  border-radius:8px;
  background:#eaf7f7;
}
.ip-parking-official-note p{margin:0;color:var(--ip-muted);line-height:1.55}
.ip-parking-official-note strong{color:var(--ip-ink)}
.ip-parking-official-note a{flex:0 0 auto;color:var(--ip-lime);font-weight:900}
.ip-parking-faq-section{
  padding-top:clamp(38px,5vw,68px);
  padding-bottom:clamp(42px,5vw,76px);
  background:#fff;
}
.ip-parking-faq-head{max-width:790px;margin-bottom:22px}
.ip-parking-faq-head p{margin:0;color:var(--ip-muted);line-height:1.62}
.ip-parking-faq-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.ip-parking-faq-list details{
  align-self:start;
  border:1px solid rgba(7,19,22,.13);
  border-radius:8px;
  background:#f8fbfb;
}
.ip-parking-faq-list summary{
  position:relative;
  padding:18px 48px 18px 18px;
  cursor:pointer;
  color:var(--ip-ink);
  font-weight:900;
  line-height:1.35;
  list-style:none;
}
.ip-parking-faq-list summary::-webkit-details-marker{display:none}
.ip-parking-faq-list summary::after{
  content:"+";
  position:absolute;
  top:15px;
  right:17px;
  color:var(--ip-lime);
  font-size:1.35rem;
  font-weight:900;
}
.ip-parking-faq-list details[open] summary::after{content:"−"}
.ip-parking-faq-list details p{
  margin:0;
  padding:0 18px 19px;
  color:var(--ip-muted);
  line-height:1.62;
}
.ip-parking-bottom-cta{
  padding-top:clamp(36px,5vw,64px);
  padding-bottom:clamp(38px,5vw,68px);
  background:var(--ip-sea-dark);
}
.ip-parking-bottom-inner{
  display:flex;
  gap:30px;
  align-items:center;
  justify-content:space-between;
}
.ip-parking-bottom-copy{max-width:760px}
.ip-parking-bottom-copy .ip-eyebrow{color:var(--ip-lime)}
.ip-parking-bottom-copy h2{margin:8px 0;color:#fff;letter-spacing:0}
.ip-parking-bottom-copy p{margin:0;color:rgba(255,255,255,.76);line-height:1.6}
.ip-parking-bottom-actions{display:flex;gap:10px;flex:0 0 auto}
.ip-parking-bottom-actions .ip-button-ghost{border-color:rgba(255,255,255,.55);color:#fff}
@media (max-width:900px){
  .ip-parking-intro-grid{grid-template-columns:1fr}
  .ip-parking-guide-grid{grid-template-columns:1fr}
  .ip-parking-guide-card{min-height:0}
  .ip-parking-bottom-inner{display:grid}
  .ip-parking-bottom-actions{flex-wrap:wrap}
}
@media (max-width:640px){
  .ip-parking-hero .ip-lead{display:block}
  .ip-parking-hero .ip-lead span{display:block;margin-bottom:5px}
  .ip-parking-primary-cta{padding:22px}
  .ip-parking-map-head{display:grid;align-items:start}
  .ip-parking-map-head .ip-parking-map-link{display:none}
  .ip-parking-map-link-mobile{
    display:flex;
    width:100%;
    min-height:48px;
    justify-content:center;
    text-align:center;
  }
  .ip-parking-map-section .ip-map{height:500px}
  .ip-parking-map-section .ip-map-floating-controls{max-width:calc(100% - 20px)}
  .ip-parking-official-note{display:grid}
  .ip-parking-faq-list{grid-template-columns:1fr}
  .ip-parking-bottom-actions{display:grid;width:100%}
  .ip-parking-bottom-actions a{width:100%;justify-content:center;text-align:center}
}

/* v2.0.536 - listado bajo el mapa y CTAs de aparcamiento */
.ip-parking-map-section .ip-map-summary{
  display:block;
  padding:0;
  overflow:hidden;
}
.ip-parking-map-summary-head{
  display:flex;
  padding:15px 17px;
  gap:14px;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--ip-line);
}
.ip-parking-visible-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:var(--ip-line);
}
.ip-parking-visible-item{
  display:grid;
  min-height:84px;
  padding:15px;
  grid-template-columns:36px minmax(0,1fr) auto;
  gap:11px;
  align-items:center;
  background:#fff;
  color:var(--ip-ink);
  text-decoration:none;
  transition:background .18s ease,color .18s ease;
}
.ip-parking-visible-item:hover,
.ip-parking-visible-item:focus-visible{
  background:#eef8f8;
  color:var(--ip-sea-dark);
}
.ip-parking-visible-item:focus-visible{
  position:relative;
  z-index:2;
  outline:3px solid var(--ip-lime);
  outline-offset:-3px;
}
.ip-parking-visible-icon{
  display:grid;
  width:36px;
  height:36px;
  border-radius:50%;
  place-items:center;
  background:var(--ip-lime);
  color:#fff;
  font-size:.88rem;
  font-weight:950;
}
.ip-parking-visible-copy{
  display:grid;
  min-width:0;
  gap:4px;
}
.ip-parking-visible-copy strong{
  overflow:hidden;
  color:var(--ip-ink);
  font-size:.86rem;
  line-height:1.22;
  text-overflow:ellipsis;
}
.ip-parking-visible-copy small{
  display:block;
  overflow:hidden;
  color:var(--ip-muted);
  font-size:.7rem;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ip-parking-visible-arrow{
  color:var(--ip-lime);
  font-size:1.05rem;
  font-weight:950;
}
.ip-parking-visible-empty{
  grid-column:1/-1;
  padding:18px;
  background:#fff;
  color:var(--ip-muted);
  text-align:center;
}
.ip-parking-nearby-button{
  border-color:#fff!important;
  background:#fff!important;
  color:var(--ip-sea-dark)!important;
}
.ip-parking-nearby-button:hover,
.ip-parking-nearby-button:focus-visible{
  background:#eaf7f7!important;
  color:#071316!important;
}
.ip-parking-accommodation-button{
  border-color:#8de5dc!important;
  background:#8de5dc!important;
  color:#071316!important;
}
.ip-parking-accommodation-button:hover,
.ip-parking-accommodation-button:focus-visible{
  border-color:#fff!important;
  background:#fff!important;
  color:var(--ip-sea-dark)!important;
}
@media (max-width:900px){
  .ip-parking-visible-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .ip-parking-map-summary-head{display:grid;gap:5px}
  .ip-parking-visible-list{grid-template-columns:1fr}
  .ip-parking-visible-item{min-height:76px}
}

/* v2.0.537 - accesos a las guías de parking desde Cómo llegar */
.ip-arrive-parking-actions{
  display:flex;
  margin-top:22px;
  gap:10px;
  flex-wrap:wrap;
}
.ip-arrive-parking-actions .ip-button-lime,
.ip-arrive-parking-actions .ip-button-ghost{
  min-height:48px;
  justify-content:center;
  text-align:center;
}
.ip-arrive-parking-actions .ip-button-ghost{
  border-color:var(--ip-sea-dark);
  color:var(--ip-sea-dark);
}
.ip-arrive-parking-actions .ip-button-ghost:hover,
.ip-arrive-parking-actions .ip-button-ghost:focus-visible{
  background:var(--ip-sea-dark);
  color:#fff;
}
@media (max-width:640px){
  .ip-arrive-parking-actions{display:grid}
  .ip-arrive-parking-actions a{width:100%}
}

/* v2.0.541 - barra de desplazamiento global */
html{
  scrollbar-width:thin;
  scrollbar-color:var(--ip-lime) #e7f2f3;
}
::-webkit-scrollbar{
  width:12px;
  height:12px;
}
::-webkit-scrollbar-track{
  background:#e7f2f3;
}
::-webkit-scrollbar-thumb{
  min-height:42px;
  border:3px solid #e7f2f3;
  border-radius:999px;
  background:var(--ip-lime);
}
::-webkit-scrollbar-thumb:hover{
  background:var(--ip-sea-dark);
}
::-webkit-scrollbar-corner{
  background:#e7f2f3;
}

/* v2.0.542 - contenido SEO y alojamientos en el mapa interactivo */
.ip-map-seo-section{
  padding:clamp(54px,7vw,92px) 0;
  border-top:1px solid rgba(7,19,22,.08);
  background:#f3f8f8;
}
.ip-map-seo-layout{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);
  gap:clamp(34px,6vw,76px);
  align-items:start;
}
.ip-map-seo-copy{max-width:790px}
.ip-map-seo-copy h2{
  max-width:760px;
  margin:14px 0 20px;
  color:var(--ip-ink);
  font-size:clamp(2rem,4vw,3.7rem);
  line-height:1.02;
}
.ip-map-seo-copy h3{
  margin:30px 0 10px;
  color:var(--ip-ink);
  font-size:1.35rem;
}
.ip-map-seo-copy p{
  margin:0 0 16px;
  color:var(--ip-ink-2);
  font-size:1.04rem;
  line-height:1.72;
}
.ip-map-seo-copy a{
  color:var(--ip-sea-dark);
  font-weight:850;
  text-decoration:underline;
  text-decoration-color:rgba(29,160,193,.38);
  text-underline-offset:3px;
}
.ip-map-seo-links{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.ip-map-seo-links a{
  display:grid;
  grid-template-columns:38px 1fr;
  align-content:start;
  min-width:0;
  min-height:148px;
  padding:20px 18px;
  border:1px solid rgba(7,19,22,.1);
  border-radius:8px;
  background:#fff;
  color:var(--ip-ink);
  text-decoration:none;
  box-shadow:0 14px 34px rgba(7,19,22,.07);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.ip-map-seo-links a:focus-visible,
.ip-map-seo-links a:hover{
  transform:translateY(-3px);
  border-color:rgba(29,160,193,.48);
  box-shadow:0 18px 42px rgba(7,19,22,.12);
}
.ip-map-seo-links a>span{
  grid-row:1/span 2;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:50%;
  background:var(--ip-lime);
  color:#fff;
  font-size:1.05rem;
  font-weight:900;
}
.ip-map-seo-links strong{
  align-self:center;
  font-size:1rem;
  line-height:1.2;
}
.ip-map-seo-links small{
  grid-column:1/-1;
  align-self:end;
  margin-top:24px;
  color:var(--ip-ink-2);
  font-size:.82rem;
  line-height:1.45;
}
.ip-map-accommodations{
  padding-top:clamp(46px,6vw,76px);
  padding-bottom:clamp(54px,7vw,88px);
  background:#fff;
}
.ip-map-accommodations-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:24px;
}
.ip-map-accommodations-head p{
  max-width:720px;
  margin:10px 0 0;
  color:var(--ip-muted);
  font-weight:700;
  line-height:1.55;
}
.ip-map-accommodations-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.ip-map-accommodation-card{
  min-width:0;
  margin:0;
  overflow:hidden;
  border:1px solid rgba(7,19,22,.12);
  border-radius:8px;
  background:var(--ip-ink);
  box-shadow:0 14px 36px rgba(7,19,22,.1);
}
.ip-map-accommodation-card>a{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:1/1;
  overflow:hidden;
  color:#fff;
  text-decoration:none;
}
.ip-map-accommodation-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s ease;
}
.ip-map-accommodation-card>a::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(7,19,22,.05) 28%,rgba(7,19,22,.84) 100%);
  transition:background .25s ease;
}
.ip-map-accommodation-card h3{
  position:absolute;
  z-index:2;
  right:16px;
  bottom:16px;
  left:16px;
  margin:0;
  color:#fff;
  font-size:clamp(1rem,1.45vw,1.3rem);
  line-height:1.08;
  text-wrap:balance;
}
.ip-map-accommodation-type{
  position:absolute;
  z-index:3;
  top:12px;
  right:12px;
  max-width:calc(100% - 24px);
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--ip-sea-dark);
  font-size:.68rem;
  font-weight:950;
  line-height:1;
  text-align:center;
}
.ip-map-accommodation-curtain{
  position:absolute;
  z-index:4;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(29,160,193,.72);
  color:#fff;
  font-size:.95rem;
  font-weight:950;
  text-align:center;
  opacity:0;
  transition:opacity .25s ease;
}
.ip-map-accommodation-card>a:focus-visible .ip-map-accommodation-curtain,
.ip-map-accommodation-card>a:hover .ip-map-accommodation-curtain{opacity:1}
.ip-map-accommodation-card>a:focus-visible img,
.ip-map-accommodation-card>a:hover img{transform:scale(1.04)}
.ip-map-accommodations-mobile-cta{display:none}
@media (max-width:1024px){
  .ip-map-seo-layout{grid-template-columns:1fr}
  .ip-map-seo-copy{max-width:none}
  .ip-map-accommodations-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .ip-map-seo-section{padding:44px 0}
  .ip-map-seo-copy h2{
    font-size:2rem;
    line-height:1.08;
  }
  .ip-map-seo-copy p{
    font-size:.98rem;
    line-height:1.65;
  }
  .ip-map-seo-links{grid-template-columns:1fr}
  .ip-map-seo-links a{
    min-height:112px;
    padding:17px;
  }
  .ip-map-seo-links small{margin-top:14px}
  .ip-map-accommodations{
    padding-top:40px;
    padding-bottom:48px;
  }
  .ip-map-accommodations-head{
    display:block;
    margin-bottom:18px;
  }
  .ip-map-accommodations-head>.ip-map-accommodations-cta{display:none}
  .ip-map-accommodations-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .ip-map-accommodation-card h3{
    right:10px;
    bottom:10px;
    left:10px;
    font-size:.92rem;
    overflow-wrap:anywhere;
  }
  .ip-map-accommodation-type{
    top:8px;
    right:8px;
    max-width:calc(100% - 16px);
    padding:6px 8px;
    font-size:.58rem;
  }
  .ip-map-accommodation-curtain{display:none}
  .ip-map-accommodations-mobile-cta{
    display:block;
    margin-top:16px;
  }
  .ip-map-accommodations-mobile-cta .ip-button-lime{
    width:100%;
    justify-content:center;
    text-align:center;
  }
}

/* v2.0.543 - fuente de las noticias */
.ip-news-single-images .ip-news-source{
  display:flex;
  align-items:center;
  gap:8px;
  margin:32px 0 0;
  padding:11px 14px;
  border-left:3px solid var(--ip-lime);
  background:#f3f8f8;
  color:var(--ip-muted);
  font-size:.84rem;
  font-weight:750;
  line-height:1.4;
}
.ip-news-single-images .ip-news-source a{
  color:var(--ip-sea-dark);
  font-weight:950;
  text-decoration:none;
}
.ip-news-single-images .ip-news-source a:focus-visible,
.ip-news-single-images .ip-news-source a:hover{
  color:var(--ip-lime);
  text-decoration:underline;
  text-underline-offset:3px;
}
@media (max-width:640px){
  .ip-news-single-images .ip-news-source{
    margin-top:24px;
    padding:10px 12px;
    font-size:.78rem;
  }
}
