/* ====== Anti-CLS: reservar espacio para header + buscador ====== */
.header-agenda{
  min-height: 220px; /* ajusta si te queda mucho aire */
}

.global-search-bar{
  min-height: 110px; /* reserva el espacio del buscador */
}

.artist-name-big,
.artist-name{
  font-family: "Permanent Marker","Permanent Marker Fallback",cursive;
}


/* Anti-CLS: el contenido principal no debe “encoger/crecer” raro al cargar */
main{
  display:block;
  min-height: 60vh;          /* reserva espacio visible */
  contain: layout paint;     /* reduce reflows que afectan fuera */
}


/* ====== Base ====== */
body{
  background-image:url('https://agendaconcerts.cat/images/agenda-background.webp');
  background-size:contain;
  background-repeat:repeat;
  background-position:center top;
  background-attachment:scroll;
  background-color:#f5f5f0;

  /* MÓVIL: sin webfonts */
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  line-height: 1.25;
}

/* DESKTOP: permitimos estética */
@media (min-width:900px){
  body{
    font-family:"Patrick Hand", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  }

  .artist-name-big,
  .artist-name{
    font-family:"Permanent Marker", cursive;
  }

  body{
    background-attachment:fixed;
  }
}


/* Slot fijo para el banner de cabecera (anti-CLS) */
.ad-slot-header{
  display:block;            /* más simple que flex */
  width:100%;
  overflow:hidden;

  min-height: 100px;        /* móvil: 320x100 */
}

/* Tablet/desktop: reserva más porque "auto" a menudo mete 250px */
@media (min-width: 768px){
  .ad-slot-header{
    min-height: 250px;      /* evita salto si AdSense decide 970x250 / 728x90+variantes */
  }
}

/* Evita que el <ins> colapse antes de que AdSense pinte */
.ad-slot-header ins.adsbygoogle{
  display:block !important;
  width:100% !important;
  min-height: inherit;      /* hereda 100/250 */
}

.ad-slot.ad-slot--top{
  display:block;
  width:100%;
  overflow:hidden;
  min-height: 100px; /* móvil */
}

@media (min-width:768px){
  .ad-slot.ad-slot--top{
    min-height: 250px; /* desktop/tablet */
  }
}

/* Evita colapso del <ins> antes de pintar */
.ad-slot.ad-slot--top ins.adsbygoogle{
  display:block !important;
  width:100% !important;
  min-height: inherit;
}



/* ====== Titulares / tipografía ====== */
.artist-name-big{
  font-family:'Permanent Marker','Trebuchet MS','Segoe UI',system-ui,sans-serif;
  font-size:2rem;
  margin-bottom:.8rem;
  line-height:1.1;
  color:#000;
}
@media (min-width:600px){
  .artist-name-big{ font-size:2.5rem; }
}
.artist-name{
  font-family:'Permanent Marker','Trebuchet MS','Segoe UI',system-ui,sans-serif;
  font-weight:bold;
  font-size:1.2rem;
  font-family:'Permanent Marker',cursive;
}

/* ——— CTA Vuelos: mismo look que hoteles (centrado + “post-it”) ——— */
.booking-cta{ display:flex; justify-content:center; }
.booking-cta__card{
  position:relative;
  max-width: 920px;
  width: 100%;
  margin: 0 1rem;
  padding: 1.25rem 1.25rem 1.5rem;
  border-radius: 14px;

  /* “post-it” como hoteles */
  background: #fffcef;
  border: 2px dashed #f1c40f;
  box-shadow: 6px 6px 16px rgba(0,0,0,.08);
}

/* chincheta & pegatina para vuelos */
.booking-cta__card::before{
  content:"";
  position:absolute; top:-12px; left:24px;
  width:18px; height:18px; border-radius:50%;
  background:#e74c3c; box-shadow: 0 2px 0 rgba(0,0,0,.2);
}
.booking-cta__icon{
  position:absolute; right:16px; top:-10px;
  font-size: 1.6rem; transform: rotate(6deg);
  filter: drop-shadow(0 2px 0 rgba(0,0,0,.15));
}

/* textos */
.booking-cta__title{
  margin: 0 0 .5rem 0;
  font-size: clamp(1.2rem, 2.4vw, 1.6rem);
}
.booking-cta__text{ margin:0 0 1rem 0; color:#444; line-height:1.45; }

/* botón */
.booking-cta__actions{ display:flex; align-items:center; gap:.75rem; }
.booking-cta__btn{
  display:inline-block; font-weight:700; text-decoration:none;
  padding:.7rem 1.1rem; border-radius:999px; border:none;
  color:#fff !important; background:#2ecc71;
  box-shadow: 0 2px 0 rgba(0,0,0,.15);
  transition: transform .05s ease, box-shadow .05s ease, filter .2s ease;
}
.booking-cta__btn:hover{ transform: translateY(-1px); box-shadow: 0 3px 0 rgba(0,0,0,.18); filter:saturate(1.05); }

/* modo oscuro amistoso */
@media (prefers-color-scheme: dark){
  .booking-cta__card{ background:#3a3727; border-color:#d4ac0d; }
  .booking-cta__title, .booking-cta__text{ color:#f2f2f2; }
}

/* por si Bootstrap intenta alinear a la izquierda en algunos layouts */
.booking-cta section, .booking-cta .booking-cta__card { margin-left:auto; margin-right:auto; }

/* ====== Tarjeta cartel (vintage) ====== */
.concert-poster{
  background:linear-gradient(to bottom right,#fceabb,#f8b500);
  border:3px solid #b8860b;
  border-radius:12px;
  box-shadow:4px 4px 10px rgba(0,0,0,.2);
  font-family:'Impact','Arial Black',sans-serif;
  color:#333;
}
.concert-poster h2{
  font-size:1.5rem;
  text-transform:uppercase;
  border-bottom:2px dashed #b8860b;
  padding-bottom:8px;
}
.concert-poster a{ color:#8b0000; text-decoration:none; }
.concert-poster a:hover{ text-decoration:underline; }

/* ====== Info concierto ====== */
.concert-info{
  font-family:'Patrick Hand',cursive;
  font-size:1.1rem;
  color:#333;
  margin-bottom:1rem;
}
.ticket-box{
  border:2px dashed #333;
  background:#fdfaf4;
  font-family:'Courier New',Courier,monospace;
  border-radius:10px;
  box-shadow:2px 2px 8px rgba(0,0,0,.1);
  position:relative;
}
.ticket-link{
  display:inline-block;
  margin-top:10px;
  padding:8px 12px;
  background-color:#333;
  color:#fff;
  text-decoration:none;
  font-weight:bold;
  border-radius:5px;
}
.ticket-link:hover{ background-color:#555; }

/* ====== Post-it / notas ====== */
.post-it{
  background:#fffc8a;
  padding:1.5rem;
  transform:rotate(-2deg);
  box-shadow:3px 3px 10px rgba(0,0,0,.2);
  border-left:5px solid #f3c623;
}
.sticky-note{
  background:#e1f7d5;
  padding:1.5rem;
  transform:rotate(1deg);
  box-shadow:3px 3px 10px rgba(0,0,0,.2);
  border-left:5px solid #77dd77;
}
.sticky-tape{
  background:#ffe5b4;
  border-left:5px solid #f8b195;
  box-shadow:2px 2px 5px rgba(0,0,0,.15);
}

/* ====== Caja cuaderno ====== */
.notebook-page{
  background:#fefefe;
  border:1px solid #ccc;
  padding:2rem;
  border-radius:8px;
  line-height:1.6;
  font-family:'Comic Sans MS',cursive,sans-serif;
}
.notebook-box{
  border:1px dashed #aaa;
  padding:1rem 1.5rem;
  background-color:#f9f9f9;
  margin-bottom:1rem;
}

/* ====== Línea de agenda ====== */
.concert-card.agenda-line{
  background-color:transparent;
  border-left:5px solid #7e57c2;
  padding:1rem 1.5rem;
  margin-bottom:1.5rem;
  position:relative;
  font-family:'Segoe UI',sans-serif;
  box-shadow:none;
  border-radius:0;
}

/* ====== Tarjeta post-it de conciertos ====== */
.concert-card.post-it{
  background-color:#fff59d;
  padding:1rem;
  margin-bottom:2rem;
  width:fit-content;
  max-width:100%;
  position:relative;
  transform:rotate(-1.5deg);
  box-shadow:5px 5px 15px rgba(0,0,0,.2);
  font-family:'Permanent Marker',cursive;
  border-radius:6px;
}
.concert-card.post-it::before{
  content:"";
  position:absolute;
  width:60px; height:20px;
  background:#dcdcdc;
  top:-10px; left:20px;
  border-radius:3px;
  box-shadow:inset 0 0 3px rgba(0,0,0,.3);
  transform:rotate(-5deg);
}
.concert-card.post-it::after{
  content:"";
  position:absolute;
  width:60px; height:20px;
  background:#dcdcdc;
  top:-10px; right:20px;
  border-radius:3px;
  box-shadow:inset 0 0 3px rgba(0,0,0,.3);
  transform:rotate(5deg);
}

/* Pasados (desaturado) */
.concert-card.post-it.past{
  position:relative;
  padding:1rem 1.1rem;
  background:#f3f4f6;
  border-left:5px solid #9e9e9e;
  color:#555;
  filter:saturate(.25) contrast(.96);
  box-shadow:3px 3px 8px rgba(0,0,0,.12);
}
.concert-card.post-it.past .artist-name{ color:#444; }
.badge-past{
  position:absolute;
  top:8px; right:-10px;
  transform:rotate(8deg);
  background:#424242; color:#fff;
  padding:.2rem .55rem;
  border-radius:.25rem;
  font-size:.8rem; font-weight:700;
  box-shadow:0 2px 4px rgba(0,0,0,.15);
}
.btn-outline-past{
  display:inline-block;
  font-weight:700;
  padding:.45rem .75rem;
  border-radius:.55rem;
  text-decoration:none;
  border:2px solid #6b7280;
  color:#374151; background:#fff;
}
.btn-outline-past:hover{
  background:#f3f4f6;
  border-color:#4b5563;
}

/* ====== Responsive pequeños (post-it / poster-card) ====== */
@media (max-width:480px){
  .poster-card,
  .concert-card.post-it.past{ padding:.85rem .9rem; }
  .poster-card .head{ padding:.35rem .5rem; }
}

/* ====== Chips de estilo ====== */
.style-badge{
  background-color:#efefef;
  border-radius:4px;
  padding:.2rem .5rem;
  margin-right:.3rem;
  display:inline-block;
  font-size:.8rem;
  font-style:italic;
  color:#333;
}

/* ====== Sección noticias / clipping ====== */
.news-section{
  display:flex; flex-wrap:wrap;
  gap:1.5rem; margin-top:3rem;
}
.news-clipping{
  padding:1.5rem;
  border:2px dashed #ccc;
  background-color:#fafafa;
  background-image:url('https://agendaconcerts.cat/images/paper-texture.webp');
  box-shadow:2px 2px 10px rgba(0,0,0,.2);
  clip-path:polygon(2% 0%,98% 1%,100% 98%,0% 100%);
  font-family:'Georgia',serif;
}
.newspaper-frontpage{
  font-family:'Times New Roman',Times,serif;
  background-color:#fefdf9;
  font-size:1.2rem;
  border:2px solid #000;
}
.newspaper-secondary{
  font-family:'Courier New',Courier,monospace;
  background-color:#f9f6f1;
  border:2px double #666;
}
.newspaper-tertiary{
  font-family:'Garamond',serif;
  background-color:#fdf7e3;
  border:2px dotted #999;
}
.newspaper-brief{
  font-family:'Arial Narrow',sans-serif;
  background-color:#fffefa;
  border:1px solid #ccc;
  font-size:.9rem;
}
.news-title{ margin-bottom:.5rem; font-weight:bold; text-transform:uppercase; }
.news-subtitle{ font-style:italic; color:#444; }

/* Enlaces en negro como en la home */
.news-clipping a,
.news-clipping a:visited{ color:#222; text-decoration:none; }
.news-clipping .news-title a,
.news-clipping .news-title a:visited{ color:#222; text-decoration:none; }
.news-clipping a:hover,
.news-clipping a:focus{ color:#000; text-decoration:underline; }

.newspaper-section a,
.newspaper-section a:visited{ color:#222; text-decoration:none; }
.newspaper-section a:hover,
.newspaper-section a:focus{ color:#000; text-decoration:underline; }

/* ====== Card “Amazon” ====== */
.card-amazon{
  background-color:#fffef5;
  border-left:4px solid #ffbb33;
  border-radius:1rem;
  box-shadow:1px 1px 8px rgba(0,0,0,.05);
  padding:1.5rem; height:100%;
  transition:transform .2s ease;
  font-size:.95rem;
}
.card-amazon:hover{
  transform:translateY(-4px);
  box-shadow:2px 2px 12px rgba(0,0,0,.08);
}
.card-amazon p{ margin-bottom:1rem; }
.card-amazon .amazon-link{
  display:inline-block;
  background-color:#ff9900;
  color:#fff; font-weight:bold;
  padding:.5rem 1rem;
  border-radius:.5rem;
  text-decoration:none;
  transition:background-color .2s ease;
}
.card-amazon .amazon-link:hover{ background-color:#e68a00; }

/* ====== Galería Polaroid ====== */
.polaroid-gallery{
  display:flex; flex-wrap:wrap; gap:2rem; justify-content:center;
}
.polaroid-card{
  position:relative; width:260px; background:#fff;
  border:1px solid #ccc; box-shadow:4px 4px 10px rgba(0,0,0,.3);
  padding:.5rem .5rem 1rem; margin-bottom:2rem;
  transition:transform .3s ease;
}
.polaroid-card:nth-child(even){ transform:rotate(4deg); }
.polaroid-card:nth-child(odd){ transform:rotate(-4deg); }
.polaroid-card:hover{ transform:rotate(0) scale(1.02); z-index:2; }
.polaroid-img{
  width:100%; height:auto; display:block;
  margin-bottom:.5rem; border:4px solid #fff;
  box-shadow:inset 0 0 3px rgba(0,0,0,.2);
}
.polaroid-caption{ text-align:center; font-size:.9rem; }
.handwriting-font{ font-family:'Patrick Hand',cursive; font-size:1rem; }

/* Chincheta */
.pin{
  position:absolute; top:-10px; left:-10px;
  width:32px; height:32px;
  background-image:url('https://upload.wikimedia.org/wikipedia/commons/thumb/4/4f/Push_pin_icon.svg/240px-Push_pin_icon.svg.png');
  background-size:contain; background-repeat:no-repeat; z-index:3;
  filter:drop-shadow(1px 2px 2px rgba(0,0,0,.4));
}

/* ====== Header Agenda ====== */
.header-agenda{
  background:#fffdfa !important;
  border-bottom:4px dashed #c0392b;
  padding-top:1.5rem; padding-bottom:1.5rem;
  position:relative;
}
.header-agenda h1{
  font-family:'Permanent Marker',cursive;
  font-size:2.2rem; color:#2c3e50; margin:0;
}
.nav-tabs-agenda .nav-link{
  font-family:'Patrick Hand',cursive;
  font-size:1.1rem; color:#2c3e50 !important;
  padding:.5rem 1rem;
  border-radius:10px 10px 0 0;
  margin-right:5px;
  background-color:#f4e1d2;
  border:2px solid #c0392b;
  border-bottom:none;
}
.nav-tabs-agenda .nav-link:hover,
.nav-tabs-agenda .nav-link.active{
  background-color:#fff;
  color:#c0392b !important;
}
.logo-sticker{
  position:absolute; top:-30px; left:20px;
  width:80px; height:80px; background-color:#fff;
  border:3px solid #2c3e50; border-radius:50%;
  box-shadow:3px 3px 6px rgba(0,0,0,.2);
  background-size:cover; background-repeat:no-repeat; background-position:center;
  z-index:5; margin-top:2.3rem;
}
.gato-sticker{
  width:70px; height:70px;
  background-image:url('https://agendaconcerts.cat/logo-cabecera-agenda-concerts.webp');
  background-size:contain; background-repeat:no-repeat;
  position:absolute; z-index:10; transform:rotate(-15deg); opacity:.85;
}
.gato-sticker.fixed-bottom-right{
  position:fixed; bottom:10px; right:10px;
}

/* ====== Titulares de secciones ====== */
.agenda-section-title{
  font-family:'Permanent Marker',cursive;
  font-size:2rem; margin-bottom:1.5rem; color:#2c3e50;
  text-shadow:1px 1px 0 #fff;
  border-left:8px solid #c0392b; padding-left:.75rem;
  display:flex; align-items:center; gap:.5rem;
}
.agenda-section-title span{ font-size:1.8rem; }


/* ====== Anti-CLS: bloque claim/café/bitcoin ====== */
.site-claim{
  /* Reserva altura para que NO empuje el main cuando cargan fuentes */
  min-height: 200px;                 /* ajusta 180–240 si quieres */
}

.site-claim__card{
  background: #fffcef;
  border: 2px dashed #f1c40f;
  border-radius: 14px;
  box-shadow: 6px 6px 16px rgba(0,0,0,.08);

  padding: 1rem 1.1rem;
  /* Tipografía estable (evita cursive genérico) */
  font-family: 'Patrick Hand','Segoe UI',system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
  line-height: 1.25;
}

.site-claim__line{
  margin: 0 0 .45rem 0;
  font-size: 1.05rem;
}

.site-claim__sep{
  height: 1px;
  background: rgba(0,0,0,.12);
  margin: .7rem 0 .6rem;
}

.site-claim__link{
  text-decoration: underline;
}

.site-claim__code{
  margin: 0;
  font-size: 1rem;
}

.site-claim__code code{
  display: inline-block;
  padding: .35rem .5rem;
  border-radius: 10px;
  background: rgba(0,0,0,.06);

  /* Evita saltos por cortes raros */
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Móvil: un pelín más compacto, pero igual de estable */
@media (max-width:600px){
  .site-claim{ min-height: 210px; }      /* en móvil a veces ocupa más líneas */
  .site-claim__line{ font-size: 1.02rem; }
}




/* ====== Footer recorte ====== */
.news-footer{
  margin-top:5rem; padding:2rem;
  background-color:#fefdf9;
  background-image:url('https://agendaconcerts.cat/images/paper-texture.webp');
  background-size:cover; background-repeat:repeat;
  font-family:'Georgia',serif; color:#222;
  clip-path:polygon(0% 3%,3% 0%,97% 0%,100% 3%,100% 97%,97% 100%,3% 100%,0% 97%);
  box-shadow:4px 4px 10px rgba(0,0,0,.15);
  border:1px dashed rgba(0,0,0,.1);
}
.news-footer .nav-link{
  color:#333; font-weight:bold; font-size:.95rem;
  text-transform:uppercase; letter-spacing:.5px;
  transition:color .2s ease;
}
.news-footer .nav-link:hover{ color:#555; text-decoration:underline; }
.news-footer p{ font-size:.9rem; color:#666; margin-bottom:1rem; }

/* ====== Responsive header/nav ====== */
@media (max-width:768px){
  body{ background-size:auto; font-size:1rem; }
  .concert-card.post-it{ width:90%; transform:rotate(-1deg); padding:.8rem; }
  .concert-card.post-it::before,
  .concert-card.post-it::after{ width:40px; height:15px; top:-8px; }
  .artist-name{ font-size:1rem; }
  .style-badge{ font-size:.75rem; padding:.1rem .4rem; }
  .news-section{ flex-direction:column; gap:1rem; }
  .news-clipping{ font-size:1rem; padding:1rem; }
  .card-amazon{ padding:1rem; font-size:.9rem; }
  .card-amazon .amazon-link{ font-size:.9rem; padding:.4rem .8rem; }
  .polaroid-gallery{ gap:1rem; }
  .polaroid-card{ width:90%; transform:rotate(0); }
  .header-agenda h1{ font-size:1.6rem; text-align:center; }
  .nav-tabs-agenda .nav-link{ font-size:1rem; padding:.4rem .8rem; }
}

/* ====== Ajustes muy pequeños ====== */
@media (max-width:480px){
  .concert-card.post-it{ font-size:.95rem; }
  .polaroid-caption{ font-size:.9rem; }
  .handwriting-font{ font-size:1rem; }
  .pin{ width:24px; height:24px; top:-6px; left:-6px; }
  .header-agenda h1{ font-size:1.4rem; }
}

/* ====== Hero artista / meta ====== */
.artist-hero{
  background:#fffdfa;
  background:#fffdfa !important;
  border:3px dashed #c0392b; border-radius:14px;
  padding:1.25rem 1.25rem .85rem;
  box-shadow:4px 4px 10px rgba(0,0,0,.15);
}
.artist-hero .artist-name-big{
  font-family:'Permanent Marker',cursive;
  font-size:2.4rem; margin:0 0 .25rem 0; line-height:1.05;
}
.artist-meta{ color:#555; font-size:1rem; }
.badges{ margin-top:.35rem; }
.badges .style-badge{ margin-bottom:.3rem; }

/* ====== Grid de tarjetas (única definición) ====== */
.poster-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.25rem;
  align-items:stretch;
}

/* ====== Tarjeta “próximos conciertos” alegre ====== */
.poster-card{
  position:relative;
  padding:1rem 1.1rem;
  border:2px solid #2c3e50;
  border-radius:12px;
  box-shadow:4px 4px 10px rgba(0,0,0,.15);
  background:linear-gradient(135deg,#fffde7 0%,#e1f5fe 45%,#e8f5e9 100%);
}
.poster-card .head{
  display:flex; justify-content:space-between; gap:.5rem;
  font-weight:700; background:rgba(255,255,255,.85);
  padding:.4rem .6rem; border-radius:.6rem;
  margin-bottom:.6rem; border:1px dashed #c0392b;
}
.poster-card .place{ margin-bottom:.8rem; line-height:1.3; }
.poster-card a.btn,
.poster-card a.btn-cta{ color:#fff !important; }
.btn-cta{
  display:inline-block; font-weight:700;
  padding:.45rem .75rem; border-radius:.55rem;
  text-decoration:none; background:#2c3e50;
  border:2px solid #2c3e50; color:#fff !important;
}
.btn-cta:hover{ background:#1f2d3a; border-color:#1f2d3a; }

/* ====== Social chips ====== */
.soc-list{ display:flex; flex-wrap:wrap; gap:.5rem .6rem; list-style:none; padding:0; margin:0; align-items:flex-start; }
.soc-list a{ display:inline-flex; align-items:center; gap:.35rem; margin:.25rem .5rem .25rem 0; text-decoration:none; }
.soc-link{
  display:flex; align-items:center; justify-content:center;
  padding:.45rem .75rem; min-height:38px; line-height:1;
  border:2px solid #c0392b; border-radius:.6rem; background:#fff;
  color:#2c3e50 !important; font-weight:600; text-decoration:none;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.soc-link:hover{ background:#fff8f3; }
.soc-link:focus{ outline:2px dashed #c0392b; outline-offset:2px; }
@media (max-width:380px){ .soc-link{ white-space:normal; } }

/* Botón “Ver más” — versión a prueba de todo */
button.btn-loadmore,
.btn-loadmore {
  -webkit-appearance: none;
  appearance: none;
  border: 0 !important;

  /* tamaño + layout */
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: .6rem;

  padding: 1rem 1.4rem !important;
  border-radius: 999px !important;
  font-weight: 800 !important;
  font-size: 1.05rem !important;
  letter-spacing: .2px;

  /* colores/gradiente (con !important para ganar a UA defaults) */
  background: linear-gradient(135deg, #ff9a9e, #fad0c4) !important;
  color: #2c2c2c !important;
  box-shadow: 0 8px 18px rgba(0,0,0,.18) !important;
  text-decoration: none !important;
  transition: transform .08s ease, box-shadow .12s ease, filter .15s ease;
  cursor: pointer;
}

button.btn-loadmore::before,
.btn-loadmore::before {
  content: "✨";
  font-size: 1.1rem;
  transform: translateY(-1px);
}

button.btn-loadmore:hover,
.btn-loadmore:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0,0,0,.22);
  filter: saturate(1.1);
}

button.btn-loadmore:active,
.btn-loadmore:active {
  transform: translateY(0);
  box-shadow: 0 6px 14px rgba(0,0,0,.18);
}

button.btn-loadmore:disabled,
.btn-loadmore:disabled {
  opacity: .65;
  cursor: not-allowed;
}

/* Respeta usuarios con reduce motion */
@media (prefers-reduced-motion: reduce) {
  .btn-loadmore { transition: none; }
  .load-spinner:before { animation: none; }
}

/* ====== Estilos de booking en conciertos ====== */
/* ——— CTA Vuelos: mismo look que hoteles (centrado + “post-it”) ——— */
.booking-cta{ display:flex; justify-content:center; }
.booking-cta__card{
  position:relative;
  max-width: 920px;
  width: 100%;
  margin: 0 1rem;
  padding: 1.25rem 1.25rem 1.5rem;
  border-radius: 14px;

  /* “post-it” como hoteles */
  background: #fffcef;
  border: 2px dashed #f1c40f;
  box-shadow: 6px 6px 16px rgba(0,0,0,.08);
}

/* chincheta & pegatina para vuelos */
.booking-cta__card::before{
  content:"";
  position:absolute; top:-12px; left:24px;
  width:18px; height:18px; border-radius:50%;
  background:#e74c3c; box-shadow: 0 2px 0 rgba(0,0,0,.2);
}
.booking-cta__icon{
  position:absolute; right:16px; top:-10px;
  font-size: 1.6rem; transform: rotate(6deg);
  filter: drop-shadow(0 2px 0 rgba(0,0,0,.15));
}

/* textos */
.booking-cta__title{
  margin: 0 0 .5rem 0;
  font-size: clamp(1.2rem, 2.4vw, 1.6rem);
}
.booking-cta__text{ margin:0 0 1rem 0; color:#444; line-height:1.45; }

/* botón */
.booking-cta__actions{ display:flex; align-items:center; gap:.75rem; }
.booking-cta__btn{
  display:inline-block; font-weight:700; text-decoration:none;
  padding:.7rem 1.1rem; border-radius:999px; border:none;
  color:#fff !important; background:#2ecc71;
  box-shadow: 0 2px 0 rgba(0,0,0,.15);
  transition: transform .05s ease, box-shadow .05s ease, filter .2s ease;
}
.booking-cta__btn:hover{ transform: translateY(-1px); box-shadow: 0 3px 0 rgba(0,0,0,.18); filter:saturate(1.05); }

/* modo oscuro amistoso */
@media (prefers-color-scheme: dark){
  .booking-cta__card{ background:#3a3727; border-color:#d4ac0d; }
  .booking-cta__title, .booking-cta__text{ color:#f2f2f2; }
}

/* por si Bootstrap intenta alinear a la izquierda en algunos layouts */
.booking-cta section, .booking-cta .booking-cta__card { margin-left:auto; margin-right:auto; }

/* =========================================================
   AGENDA CALENDAR
   ========================================================= */

.agenda-calendar {
    max-width: 1180px;
    margin: 2rem auto 3rem;
    padding: 0 1rem;
}


.agenda-calendar-paper {
    position: relative;

    padding: 1.5rem;

    background:
        repeating-linear-gradient(
            to bottom,
            #fffef8 0,
            #fffef8 31px,
            #dbe9eb 32px
        );

    border: 1px solid #d6d0c4;

    box-shadow:
        5px 7px 14px rgba(0,0,0,.13);

    transform: rotate(-0.15deg);
}


/* =========================================================
   HEADER
   ========================================================= */

.agenda-calendar-header {
    display: grid;
    grid-template-columns: 50px 1fr 50px;

    align-items: center;

    margin-bottom: 1.3rem;
}


.agenda-calendar-title-wrap {
    position: relative;

    text-align: center;
}


.agenda-calendar-title {
    margin: 0;

    font-family:
        "Permanent Marker",
        cursive;

    font-size: 2rem;

    color: #252525;
}


.agenda-calendar-subtitle {
    margin-top: .25rem;

    font-family:
        "Patrick Hand",
        cursive;

    font-size: 1.2rem;

    color: #666;
}


/* cinta adhesiva */

.agenda-calendar-tape {
    position: absolute;

    width: 95px;
    height: 24px;

    top: -28px;
    left: 50%;

    transform:
        translateX(-50%)
        rotate(-2deg);

    background:
        rgba(239, 217, 160, .65);

    box-shadow:
        0 1px 2px rgba(0,0,0,.08);
}

.agenda-calendar-title a {
    color: inherit;
    text-decoration: none;
}

.agenda-calendar-title a:hover {
    color: #c0392b;
    text-decoration: none;
}

.agenda-calendar-month-link {
    position: relative;
}

.agenda-calendar-month-link:hover::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -4px;

    height: 3px;

    background: #c0392b;

    border-radius: 50%;

    transform: rotate(-1deg);
}

.agenda-calendar-year-link {
    margin-left: .25rem;

    padding: 0 .2rem;

    border: 1px dashed transparent;

    font-size: .9em;
}

.agenda-calendar-year-link:hover {
    border-color: #c0392b;
    background: rgba(255,255,255,.55);
}

/* =========================================================
   FLECHAS
   ========================================================= */

.agenda-calendar-arrow {
    display: flex;

    width: 42px;
    height: 42px;

    align-items: center;
    justify-content: center;

    border: 2px dashed #c0392b;
    border-radius: 50%;

    color: #c0392b;

    font-size: 1.5rem;
    font-weight: bold;

    text-decoration: none;

    background: #fffef8;

    transition:
        transform .15s ease,
        background .15s ease;
}


.agenda-calendar-arrow:hover {
    color: #fff;

    background: #c0392b;

    text-decoration: none;

    transform:
        rotate(-5deg)
        scale(1.08);
}


/* =========================================================
   DÍAS DE LA SEMANA
   ========================================================= */

.agenda-calendar-weekdays {
    display: grid;

    grid-template-columns:
        repeat(7, 1fr);

    gap: 6px;

    margin-bottom: 6px;

    font-family:
        "Patrick Hand",
        cursive;

    font-size: 1.15rem;

    text-align: center;

    color: #555;
}


/* =========================================================
   GRID
   ========================================================= */

.agenda-calendar-grid {
    display: grid;

    grid-template-columns:
        repeat(7, 1fr);

    gap: 6px;
}


/* =========================================================
   DÍA
   ========================================================= */

.agenda-calendar-day {
    position: relative;

    min-height: 76px;

    padding: .55rem;

    border:
        1px dashed
        rgba(80,80,80,.35);

    background:
        rgba(255,255,255,.72);

    color: #333;

    text-decoration: none;

    transition:
        transform .12s ease,
        box-shadow .12s ease,
        background .12s ease;
}


.agenda-calendar-day:hover {
    z-index: 2;

    color: #111;

    text-decoration: none;

    background: #fff;

    transform:
        rotate(-1deg)
        scale(1.04);

    box-shadow:
        3px 4px 8px
        rgba(0,0,0,.15);
}


.agenda-calendar-empty {
    background:
        rgba(255,255,255,.20);

    border-color:
        rgba(0,0,0,.08);
}


/* número */

.agenda-calendar-number {
    font-family:
        "Patrick Hand",
        cursive;

    font-size: 1.45rem;

    font-weight: bold;
}


/* =========================================================
   DÍA CON CONCIERTOS
   ========================================================= */

.agenda-calendar-day.has-concerts {
    background: #fff9d8;

    border:
        2px solid
        rgba(221, 173, 25, .55);
}


.agenda-calendar-concerts {
    position: absolute;

    right: 8px;
    bottom: 7px;

    display: flex;

    align-items: center;

    gap: 5px;

    font-size: .82rem;

    color: #555;
}


.agenda-calendar-dot,
.agenda-calendar-legend-dot {
    display: inline-block;

    width: 9px;
    height: 9px;

    border-radius: 50%;

    background: #c0392b;
}


.agenda-calendar-count {
    font-family:
        "Patrick Hand",
        cursive;

    font-size: 1rem;

    font-weight: bold;
}


/* =========================================================
   HOY
   ========================================================= */

.agenda-calendar-day.is-today::after {
    content: "";

    position: absolute;

    inset: 5px;

    border:
        2px solid
        #2d6cdf;

    border-radius:
        48% 52% 46% 54%;

    transform:
        rotate(-2deg);

    pointer-events: none;
}


/* =========================================================
   FOOTER
   ========================================================= */

.agenda-calendar-footer {
    display: flex;

    align-items: center;
    justify-content: center;

    gap: 7px;

    margin-top: 1rem;

    font-family:
        "Patrick Hand",
        cursive;

    font-size: 1rem;

    color: #666;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .agenda-calendar {
        padding: 0 .45rem;
    }


    .agenda-calendar-paper {
        padding:
            1.25rem
            .55rem
            1rem;
    }


    .agenda-calendar-title {
        font-size: 1.45rem;
    }


    .agenda-calendar-subtitle {
        font-size: 1rem;
    }


    .agenda-calendar-header {
        grid-template-columns:
            38px
            1fr
            38px;
    }


    .agenda-calendar-arrow {
        width: 34px;
        height: 34px;

        font-size: 1.2rem;
    }


    .agenda-calendar-grid,
    .agenda-calendar-weekdays {
        gap: 3px;
    }


    .agenda-calendar-day {
        min-height: 53px;

        padding: .3rem;
    }


    .agenda-calendar-number {
        font-size: 1.15rem;
    }


    .agenda-calendar-concerts {
        right: 4px;
        bottom: 3px;
    }


    .agenda-calendar-count {
        font-size: .85rem;
    }


    .agenda-calendar-dot {
        width: 6px;
        height: 6px;
    }
}

/* ====== BUSCADOR GLOBAL (full-width ‘grande’) ====== */
.global-search-bar{
  width:100%;
  padding:1rem 0;
  background:transparent;
  position:relative;
  z-index:50;
}
.global-search-inner{
  max-width:1280px;
  margin:0 auto;
  padding:0 1.25rem;
  position:relative;
}
.global-search-form{ max-width:none !important; }

/* Input enorme y legible */
.global-search-input,
.global-search-input.form-control{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;

  -webkit-appearance:none !important;
  appearance:none !important;

  height:78px !important;
  min-height:68px !important;
  padding:1.1rem 1.25rem !important;
  font-size:2rem !important;
  line-height:1.2 !important;

  border:4px dashed #c0392b !important;
  border-radius:18px !important;
  background:#fffdfa !important;
  color:#111 !important;
  box-shadow:6px 6px 16px rgba(0,0,0,.18) !important;
}
.global-search-input::placeholder{ color:#666; }
.global-search-input::-webkit-search-cancel-button,
.global-search-input::-webkit-search-decoration{ -webkit-appearance:none; }

/* Sugerencias debajo, mismo ancho visual */
.global-search-suggest{
  position:absolute;
  left:1.25rem; right:1.25rem;
  top:calc(100% + .5rem);
  max-height:70vh; overflow:auto;
  display:none;
  background:#fefdf9 url('https://agendaconcerts.cat/images/paper-texture.webp');
  border:2px dashed #ccc; border-radius:14px;
  padding:.6rem;
  box-shadow:6px 6px 16px rgba(0,0,0,.18);
  clip-path:polygon(2% 0%,98% 1%,100% 98%,0% 100%);
  z-index:60;
}
.global-search-suggest.open{ display:block; }
.global-search-suggest a{ color:#111 !important; text-decoration:none; }
.global-search-suggest a:hover{ text-decoration:underline; }

/* Asegura que nada tape el dropdown */
.header-agenda, header, .navbar, .site-header{ overflow:visible !important; }

/* Responsive buscador */
@media (max-width:600px){
  .global-search-input{
    height:64px !important;
    font-size:1.6rem !important;
    padding:.9rem 1rem !important;
    border-width:3px !important;
  }
}
