/* Home composition from Borrador Micrositio_Celebra_la_Musica.pdf.
   The parchment and illustrations are original supplied artwork. */
.clm-home .filter-date-container { position: relative; }
.clm-home .calendar-trigger { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-width: 0; min-height: 48px; padding: 12px 16px; background: #f6dbb8; color: #09153c; border: 1px solid #4b3c8c66; border-radius: 12px; text-align: left; font: 700 1rem/1.4 'Nunito Sans', sans-serif; }
.clm-home .calendar-trigger:hover, .clm-home .calendar-trigger[aria-expanded='true'] { border-color: #4b3c8c; box-shadow: 0 0 0 3px #4b3c8c18; }
.clm-home .calendar-icon { color: #4b3c8c; font-size: 1.6rem; line-height: 1; }
.clm-home .calendar-panel { position: absolute; z-index: 20; top: calc(100% + 10px); left: 0; width: 350px; max-width: calc(100vw - 78px); padding: 16px; border: 1px solid #4b3c8c33; border-radius: 18px; background: #fff9ef; color: #09153c; box-shadow: 0 12px 35px #09153c30; font: 600 .95rem/1.4 'Nunito Sans', sans-serif; }
.clm-home .calendar-panel[hidden] { display: none; }
.clm-home .calendar-header, .clm-home .calendar-selectors { display: flex; align-items: center; justify-content: space-between; gap: 4px; }
.clm-home .calendar-selectors { flex: 1; min-width: 0; }
.clm-home .calendar-selectors select { min-width: 0; max-width: 65%; padding: 8px 2px; min-height: 44px; border: 0; border-radius: 8px; background: transparent; color: #4b3c8c; font: 800 .95rem 'Nunito Sans', sans-serif; }
.clm-home .calendar-nav { flex-shrink: 0; width: 36px; height: 44px; border-radius: 10px; color: #4b3c8c; background: #4b3c8c0d; font-size: 1.8rem; }
.clm-home .calendar-nav:disabled { opacity: .25; }
.clm-home .calendar-weekdays, .clm-home .calendar-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 3px; text-align: center; }
.clm-home .calendar-weekdays { margin: 16px 0 6px; color: #4b3c8c; font-size: .75rem; }
.clm-home .calendar-day { position: relative; height: 42px; padding: 0 0 3px; border-radius: 10px; color: #09153c; background: transparent; font: 700 .95rem 'Nunito Sans', sans-serif; }
.clm-home .calendar-day.has-events::after, .clm-home .calendar-legend::before { content: ''; width: 4px; height: 4px; border-radius: 50%; background: #d8175a; }
.clm-home .calendar-day.has-events::after { position: absolute; bottom: 5px; left: calc(50% - 2px); }
.clm-home .calendar-day:hover:not(:disabled) { background: #4b3c8c14; }
.clm-home .calendar-day[aria-current='date'] { box-shadow: inset 0 0 0 1px #4b3c8c; }
.clm-home .calendar-day[aria-pressed='true'], .clm-home .calendar-day[aria-pressed='true']:hover { background: #4b3c8c; color: white; }
.clm-home .calendar-day[aria-pressed='true']::after { background: white; }
.clm-home .calendar-day:disabled { opacity: .25; }
.clm-home .calendar-legend { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 12px 0; font-size: .75rem; }
.clm-home .calendar-actions { display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid #4b3c8c20; padding-top: 10px; }
.clm-home .calendar-actions button { min-height: 44px; padding: 8px 10px; border-radius: 10px; background: transparent; color: #4b3c8c; font: 800 .85rem 'Nunito Sans', sans-serif; }
.clm-home .calendar-actions button:hover { background: #4b3c8c14; }
@media(max-width: 360px) { .clm-home .calendar-panel { padding: 10px; } .clm-home .calendar-nav { width: 28px; } .clm-home .calendar-selectors select { font-size: .8rem; } }
.clm-home { background: #f2cc9d url('../assets/images/clm-2026-fondo.jpg') center top / 100% auto repeat-y; }
.clm-home main { overflow: hidden; }
.clm-home main > section { position: relative; background: transparent; border: 0; }
.clm-home main .container { position: relative; z-index: 1; width: min(1000px, 74%); }
.clm-home .draft-art { position: absolute; pointer-events: none; z-index: 0; object-fit: contain; }
.clm-home .hero { padding: 30px 0 30px; }
.clm-home .hero-banner { display: block; padding: 0; width: min(700px, 74%); margin: auto; background: none; overflow: visible; }
.clm-home .hero-wordmark { position: relative; width: 66%; margin: 0 auto; z-index: 1; }
.clm-home .hero-principal { width: 90%; margin: -8% auto 0; }
.clm-home .hero-buttons { position: relative; display: flex; width: min(920px, 86%); margin: 25px auto 0; gap: 28px; padding: 0; border: 0; background: none; }
.clm-home .hero-btn, .clm-home .cta-button-primary, .clm-home .btn-primary,
.clm-home .evento-details-btn, .clm-home .clear-filters-btn, .clm-home .clear-date-btn {
  background: #e7b67c; color: var(--color-fucsia); border: 0; border-radius: 999px;
  font-family: 'Lance', sans-serif; font-weight: 400; text-transform: uppercase;
  letter-spacing: .07em; padding: 14px 24px; box-shadow: none; text-align: center;
}
.clm-home .hero-btn { flex: 1 0 auto; justify-content: center; font-size: clamp(.95rem, 1.6vw, 1.5rem); padding: 8px 20px; }
.clm-home .hero-btn:hover, .clm-home .cta-button-primary:hover,
.clm-home .btn-primary:hover, .clm-home .evento-details-btn:hover { background: var(--color-fucsia); color: white; }
.clm-home .celebration { padding: 55px 0 65px; }
.clm-home .celebration-intro { padding: 50px 70px; border-block: 3px dotted var(--color-fucsia); }
.clm-home .celebration h1 img { width: min(400px, 75%); margin: auto; }
.clm-home .celebration h1 span { font-size: .65em; margin-top: 12px; letter-spacing: 0; color: var(--color-fucsia); }
.clm-home .intro-text { font-weight: 800; font-size: clamp(1rem, 1.55vw, 1.4rem); max-width: 740px; }
.clm-home .intro-speaker { width: 16%; top: 10%; }
.clm-home .intro-speaker-left { left: -6%; transform: rotate(15deg) scaleX(-1); }
.clm-home .intro-speaker-right { right: -6%; transform: rotate(-15deg); }
.clm-home .edition-2026 { padding: 35px 0 85px; }
.clm-home main .mission-grid { width: min(1250px, 82%); grid-template-columns: 1fr 1fr; gap: 45px; }
.clm-home .mission-copy { position: relative; }
.clm-home .mission-copy h2 { text-shadow: 2px 2px #48b9cc; }
.clm-home .mission-notes { width: 100px; left: -110px; top: 0; }
.clm-home .mission-art { transform: none; border: 0; padding: 0; max-width: none; }
.clm-home .cta-button-primary { font-size: 1.05rem; }
.clm-home .gallery-section { padding: 60px 0 80px; color: var(--color-principal); }
.clm-home main .gallery-section .container { width: min(850px, 64%); padding-bottom: 60px; border-bottom: 3px dotted var(--color-fucsia); }
.clm-home .gallery-section h2 { color: var(--color-fucsia); }
.clm-home .section-decoration { display: none; }
/* Ilustraciones laterales en columna: se reparten el alto disponible y no se superponen. */
.clm-home .art-column { position: absolute; z-index: 0; top: 40px; bottom: 40px; left: 1%; display: flex; flex-direction: column; justify-content: space-between; align-items: center; gap: 24px; pointer-events: none; }
.clm-home .art-column .draft-art { position: static; min-height: 0; max-width: 100%; }
.clm-home .gallery-art { width: 16%; }
.clm-home .gallery-poster { width: 78%; transform: rotate(-8deg); }
.clm-home .gallery-bike { width: 100%; }
.clm-home .gallery-speaker { width: 16%; right: 0; bottom: 40px; }
.clm-home .carousel-container { overflow: visible; padding-bottom: 35px; }
.clm-home .carousel-track { aspect-ratio: 1.7; }
.clm-home .carousel-btn { border-radius: 0; color: white; background: var(--color-fucsia); top: 43%; }
.clm-home .carousel-prev { left: -24px; }
.clm-home .carousel-next { right: -24px; }
.clm-home .carousel-dots { position: relative; margin: -50px 0 0; padding: 0 8%; gap: 12px; }
.clm-home .carousel-dot { display: none; padding: 0; width: 30%; height: auto; aspect-ratio: 1.45; border: 4px solid white; }
.clm-home .carousel-dot.preview-visible { display: block; }
.clm-home .carousel-dot::before { display: none; }
.clm-home .carousel-dot img { width: 100%; height: 100%; object-fit: cover; }
.clm-home .carousel-dot.active { outline: 2px solid var(--color-fucsia); }
.clm-home .carousel-pause { color: var(--color-principal); }
.clm-home .categories { padding: 30px 0 70px; }
.clm-home main .categories .container, .clm-home main .foundations-layout { width: min(900px, 66%); margin-left: 24%; margin-right: auto; }
.clm-home .categories-grid { display: block; }
.clm-home .category-card { position: relative; border: 0; padding: 0 0 26px 55px; }
.clm-home .category-card::before, .clm-home .symbol-heading::before { content: ''; position: absolute; width: 38px; height: 48px; left: 0; top: 20px; background: url('../assets/logos/clm-2026-simbolo.png') center / contain no-repeat; }
.clm-home .category-content { padding: 20px 0 0; }
.clm-home .category-content p { margin-bottom: 8px; }
.clm-home .category-photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 30%; margin-top: 16px; }
.clm-home .category-art { width: 20%; }
.clm-home .category-speaker { width: 100%; }
.clm-home .category-waves { width: 75%; }
.clm-home .stats-grid { border: 0; margin-top: 35px; padding-top: 10px; align-items: end; }
.clm-home .stat-prefix { display: block; font-size: .3em; line-height: 1.2; }
.clm-home .fundamentos { padding: 50px 0 65px; }
.clm-home .foundations-layout { display: block; border-block: 3px dotted var(--color-fucsia); padding-block: 55px; }
.clm-home .fundamento-card, .clm-home .fundamento-card:last-child { border: 0; padding: 18px 0; }
.clm-home .foundation-art { width: 20%; }
.clm-home .foundation-art .draft-art { width: 100%; flex: 0 1 auto; }
.clm-home .programacion, .clm-home .noticias { padding: 55px 0; }
.clm-home .program-speaker, .clm-home .news-speaker { width: 15%; left: -5%; top: 40px; }
.clm-home .programacion-filters { background: #f2cc9d99; border: 1px solid #09153c33; }
.clm-home .filter-date, .clm-home .filter-select { background: #f6dbb8; }
.clm-home .evento-card { background: #f6dbb855; }
.clm-home .noticias .container { padding-block: 45px; border-block: 3px dotted var(--color-fucsia); }
.clm-home .faq { padding: 50px 0; }
.clm-home main .faq .container { width: min(900px, 66%); margin-left: 24%; }
.clm-home .faq-speaker { left: -6%; top: 30%; width: 25%; }
.clm-home .faq-category { border-bottom: 3px dotted var(--color-fucsia); padding-bottom: 30px; margin-bottom: 45px; }
.clm-home .faq-category-title { position: relative; padding: 0 0 10px; background: none; color: var(--color-principal); }
.clm-home .faq-category-title::before { content: ''; position: absolute; width: 55px; height: 55px; left: -75px; top: -10px; background: url('../assets/images/clm-2026-flor.png') center / contain no-repeat; }
.clm-home .faq-item { border: 0; background: none; }
.clm-home .faq-question { padding: 18px 0 8px; background: none; font-size: 1.1rem; }
.clm-home .faq-answer { padding-inline: 0; }
.clm-home .faq-introduction { margin-bottom: 40px; }
.clm-home .faq-introduction .faq-question-text { font-family: 'Lance', sans-serif; font-size: 1.8rem; color: var(--color-fucsia); text-transform: uppercase; font-weight: 400; }
.clm-home .draft-contact { min-height: 650px; padding: 50px 0 170px; }
.clm-home .draft-contact-copy { padding-left: 12%; }
.clm-home .symbol-heading { position: relative; color: var(--color-fucsia); }
.clm-home .symbol-heading::before { left: -55px; top: 0; }
.clm-home .draft-contact-copy p { max-width: 52%; overflow-wrap: anywhere; }
.clm-home .contact-wordmark { width: 280px; margin-top: 45px; }
.clm-home .contact-bus { width: 48%; right: -5%; bottom: 20px; }
.clm-home .contact-speaker { width: 16%; left: 1%; bottom: 20px; }
@media (max-width: 900px) {
  .clm-home .mission-grid { gap: 25px; }
  .clm-home .hero-buttons { gap: 12px; }
  .clm-home .hero-btn { padding: 12px 18px; }
  .clm-home .celebration-intro { padding: 40px 20px; }
  .clm-home .draft-contact { min-height: 550px; }
}
@media (max-width: 600px) {
  .clm-home { background-size: auto 800px; }
  .clm-home main .container, .clm-home main .faq .container, .clm-home main .categories .container,
  .clm-home main .foundations-layout, .clm-home main .mission-grid, .clm-home main .gallery-section .container { width: calc(100% - 40px); margin-inline: auto; }
  .clm-home .hero { padding: 40px 0; }
  .clm-home .hero-banner { width: 94%; }
  .clm-home .hero-wordmark { width: 74%; }
  .clm-home .hero-principal { width: 100%; }
  .clm-home .hero-buttons { width: calc(100% - 40px); flex-wrap: wrap; justify-content: center; }
  .clm-home .hero-btn { flex: 1 1 100%; font-size: 1.1rem; }
  .clm-home .celebration { padding: 10px 0 35px; }
  .clm-home .celebration-intro { padding: 30px 10px; }
  .clm-home .mission-grid { display: flex; flex-direction: column; }
  .clm-home .mission-art { max-width: 380px; }
  .clm-home .draft-art { opacity: .8; }
  .clm-home .intro-speaker, .clm-home .mission-notes, .clm-home .art-column,
  .clm-home .gallery-speaker, .clm-home .program-speaker, .clm-home .news-speaker,
  .clm-home .faq-speaker { display: none; }
  .clm-home .edition-2026, .clm-home .gallery-section { padding: 25px 0 35px; }
  .clm-home .carousel-prev { left: -10px; }
  .clm-home .carousel-next { right: -10px; }
  .clm-home .carousel-btn { width: 36px; height: 44px; }
  .clm-home .carousel-dots { margin-top: -20px; gap: 6px; padding-inline: 7%; }
  .clm-home .carousel-dot { border-width: 2px; }
  .clm-home .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .clm-home .category-card { padding-left: 45px; }
  .clm-home .category-card::before { width: 30px; }
  .clm-home .faq-category-title { padding-left: 45px; }
  .clm-home .faq-category-title::before { left: 0; width: 32px; height: 40px; top: -4px; }
  .clm-home .draft-contact { padding: 30px 0 280px; min-height: 740px; }
  .clm-home .draft-contact-copy { padding-left: 40px; }
  .clm-home .draft-contact-copy p { max-width: 100%; font-size: .9rem; }
  .clm-home .symbol-heading::before { left: -40px; width: 28px; }
  .clm-home .contact-wordmark { width: 210px; }
  .clm-home .contact-bus { width: 80%; bottom: 0; }
  .clm-home .contact-speaker { width: 32%; left: -8%; bottom: 0; }
}
