.calendar-section{padding:3rem 0 5rem;min-height:60vh}.calendar-filters{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;align-items:center}.filter-group{flex:1;min-width:200px}.search-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:1rem;color:var(--gray-500);pointer-events:none}.search-wrapper input{width:100%;padding:.875rem 1rem .875rem 2.75rem;border:1px solid var(--gray-300);border-radius:var(--radius);font-family:inherit;font-size:1rem;transition:var(--transition);background:var(--white)}.search-wrapper input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #efa73e26}.search-wrapper input::placeholder{color:var(--gray-500)}.filter-group select{width:100%;padding:.875rem 2.5rem .875rem 1rem;border:1px solid var(--gray-300);border-radius:var(--radius);font-family:inherit;font-size:1rem;transition:var(--transition);background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 1rem center;appearance:none;cursor:pointer}.filter-group select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #efa73e26}.calendar-filters .btn{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;flex-shrink:0}.calendar-filters .btn svg{flex-shrink:0}.calendar-info-note{display:flex;align-items:flex-start;gap:.875rem;margin-bottom:1.5rem;padding:1rem 1.25rem;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-left:4px solid var(--primary);border-radius:var(--radius)}.calendar-info-note svg{flex-shrink:0;margin-top:.125rem;color:var(--primary)}.calendar-info-note p{margin:0;color:var(--gray-700);font-size:.9375rem;line-height:1.6}.calendar-info-note a{color:var(--primary);font-weight:600;text-decoration:none;transition:var(--transition)}.calendar-info-note a:hover{color:var(--accent);text-decoration:underline}.calendar-status{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding:.75rem 1rem;background:var(--gray-100);border-radius:var(--radius);font-size:.875rem;color:var(--gray-600)}.calendar-status span{display:flex;align-items:center;gap:.5rem}.calendar-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--gray-600)}.calendar-state svg{margin-bottom:1rem;color:var(--gray-400)}.calendar-state p{margin-bottom:.5rem;font-size:1.125rem}.calendar-state .empty-subtitle{font-size:.9375rem;color:var(--gray-500)}.calendar-state .btn{margin-top:1rem}.loading-spinner{width:48px;height:48px;border:4px solid var(--gray-200);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.course-list{display:flex;flex-direction:column;gap:2.5rem}.month-group{display:flex;flex-direction:column;gap:1rem}.month-header{display:flex;align-items:center;gap:1rem;padding-bottom:.75rem;border-bottom:2px solid var(--accent)}.month-header h2{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0}.month-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 .5rem;background:var(--accent);color:var(--white);font-size:.8125rem;font-weight:700;border-radius:999px}.course-cards{display:flex;flex-direction:column;gap:1rem}.course-card{background:var(--gray-200);border-radius:var(--radius-lg);box-shadow:0 2px 8px #00000014;overflow:hidden;transition:all .3s ease;border:1px solid var(--gray-400);display:grid;grid-template-columns:auto 1fr auto;align-items:stretch}.course-card:hover{transform:translateY(-3px);box-shadow:0 8px 25px #0000001f;border-color:var(--accent)}.course-card-date{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:var(--white);padding:1.25rem 1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:90px}.course-card-date .date-day{font-size:2rem;font-weight:800;line-height:1;margin-bottom:.25rem}.course-card-date .date-month{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.9}.course-card-date .date-year{font-size:.75rem;opacity:.7;margin-top:.125rem}.course-card-main{padding:1.25rem 1.5rem;display:flex;flex-direction:column;justify-content:center;gap:.75rem}.course-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.course-info{flex:1;min-width:0}.course-name{font-size:1.125rem;font-weight:700;color:var(--gray-900);margin:0 0 .375rem;line-height:1.3}.course-description{margin:0;color:var(--gray-600);font-size:.875rem;line-height:1.5}.category-badge{display:inline-flex;align-items:center;padding:.375rem .75rem;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);color:var(--white);font-size:.6875rem;font-weight:700;border-radius:var(--radius);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;flex-shrink:0;box-shadow:0 2px 4px #efa73e4d}.course-meta{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding-top:.75rem;border-top:1px solid var(--gray-100)}.course-meta-item{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--gray-600)}.course-meta-item svg{width:16px;height:16px;color:var(--gray-400);flex-shrink:0}.course-dates{font-weight:500;line-height:1.4}.course-dates .date-to{display:block;font-weight:400;color:var(--gray-500);font-size:.8125rem;margin-top:.125rem}.course-duration{color:var(--gray-500)}.course-price{font-weight:700;color:var(--gray-900);font-size:1rem}.course-spaces{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;background:#10b9811a;color:#059669;font-size:.8125rem;font-weight:600;border-radius:var(--radius)}.course-spaces.sold-out{background:#dc26261a;color:#dc2626}.course-spaces.low-stock{background:#f59e0b1a;color:#d97706}.course-card-footer{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:.5rem;padding:1.25rem;background:var(--gray-300);border-left:1px solid var(--gray-400);min-width:200px;flex-shrink:0}.course-card-footer .book-btn{display:inline-flex;align-items:center;width:100%;justify-content:center;gap:.5rem;padding:.75rem 1rem;font-size:.9rem;font-weight:600;border:none;border-radius:var(--radius);background-color:var(--accent);color:var(--white);cursor:pointer;transition:var(--transition);white-space:nowrap}.course-card-footer .book-btn:hover{background-color:var(--accent-dark)}.course-card-footer .call-btn{display:inline-flex;align-items:center;width:100%;justify-content:center;gap:.5rem;padding:.75rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none;border-radius:var(--radius);background-color:var(--primary);color:var(--white);transition:var(--transition)}.course-card-footer .call-btn:hover{background-color:var(--primary-dark)}.course-card-footer .whatsapp-btn{display:inline-flex;align-items:center;width:100%;justify-content:center;gap:.5rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:600;text-decoration:none;border-radius:var(--radius);background-color:#111827;border:2px solid #25D366;color:#25d366;transition:var(--transition)}.course-card-footer .whatsapp-btn:hover{background-color:#1f2937;border-color:#4ade80;color:#4ade80}.sold-out-badge{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:#fee2e2;color:#dc2626;font-size:.875rem;font-weight:600;border-radius:var(--radius);text-align:center}.started-badge{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:#dbeafe;color:#1d4ed8;font-size:.875rem;font-weight:600;border-radius:var(--radius);text-align:center}@media (max-width: 900px){.course-card{grid-template-columns:1fr;grid-template-rows:auto auto auto}.course-card-date{flex-direction:row;justify-content:flex-start;gap:.75rem;padding:.875rem 1.25rem;min-width:auto}.course-card-date .date-day{font-size:1.5rem}.course-card-date .date-month,.course-card-date .date-year{display:inline}.course-card-date .date-info{display:flex;flex-direction:column;align-items:flex-start}.course-card-main{padding:1.25rem}.course-card-footer{flex-direction:row;flex-wrap:wrap;border-left:none;border-top:1px solid var(--gray-100);min-width:auto}.course-card-footer .book-btn,.course-card-footer .call-btn{flex:1;min-width:140px}.course-card-footer .whatsapp-btn{flex:0 0 auto}}@media (max-width: 600px){.calendar-filters{flex-direction:column}.filter-group{width:100%}.calendar-filters .btn{width:100%;justify-content:center}.course-card-header{flex-direction:column;gap:.5rem}.category-badge{align-self:flex-start}.course-meta{flex-direction:column;align-items:flex-start;gap:.5rem}.course-card-footer{flex-direction:column}.course-card-footer .book-btn,.course-card-footer .call-btn,.course-card-footer .whatsapp-btn{width:100%}}@media (max-width: 480px){.calendar-section{padding:2rem 0 4rem}.calendar-info-note{gap:.625rem;padding:.75rem .875rem}.course-name{font-size:1rem}.month-header h2{font-size:1.25rem}}.type-filter-notice{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border-left:4px solid var(--accent);border-radius:var(--radius);flex-wrap:wrap;width:100%}.type-filter-notice p{margin:0;color:var(--gray-700);font-size:1rem}.type-filter-notice strong{color:var(--gray-900);font-weight:700}.type-filter-notice .btn{flex-shrink:0}@media (max-width: 480px){.type-filter-notice{flex-direction:column;align-items:stretch;text-align:center}.type-filter-notice .btn{width:100%;justify-content:center}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media print{.calendar-filters,.calendar-status button,.cta,.header,.footer{display:none!important}.calendar-section{padding:0}.course-card{break-inside:avoid;box-shadow:none;border:1px solid var(--gray-300)}}@media (prefers-reduced-motion: reduce){.loading-spinner{animation:none}.course-card{transition:none}}@media (max-width: 600px){.course-card-date .mobile-duration{width:auto;display:flex;align-items:center;gap:.375rem;font-size:.75rem;opacity:.85;margin-top:.25rem}.course-card-date .mobile-duration svg{width:14px;height:14px}.course-meta .course-duration{display:none}.course-meta{display:none;flex-direction:column;align-items:flex-start;gap:.5rem}.course-meta.expanded{display:flex}.course-meta-toggle{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.625rem 1rem;margin-top:.5rem;background:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--radius);color:var(--gray-600);font-size:.8125rem;font-weight:500;cursor:pointer;transition:var(--transition)}.course-meta-toggle:hover{background:var(--gray-200);color:var(--gray-700)}.course-meta-toggle svg{width:16px;height:16px;transition:transform .2s ease}.course-meta-toggle.expanded svg{transform:rotate(180deg)}}@media (min-width: 601px){.course-card-date .mobile-duration{width:auto;display:none}.course-meta-toggle{display:none}}@media (max-width: 600px){.course-card-date{flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem}.course-card-date .date-day-name,.course-card-date .date-day,.course-card-date .date-month{display:inline;margin-bottom:0}.course-card-date .date-year{display:none}.course-card-date .mobile-duration{margin-left:auto;margin-top:0;padding-top:0;border-top:none;font-size:.7rem;white-space:nowrap}.course-card-header .course-description,.course-card-header .category-badge{display:none}.course-card-main.expanded .course-card-header .course-description,.course-card-main.expanded .course-card-header .category-badge{display:block}.course-card-main.expanded .course-card-header .category-badge{display:inline-flex;margin-top:.5rem}}.course-card-date .date-day-name{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;opacity:.8;margin-bottom:.125rem}@media (max-width: 900px){.course-card-date .date-day-name{margin-bottom:0;margin-right:.25rem}}.course-card.nvq-card .course-card-date{background:linear-gradient(135deg,#0d9488,#0f766e)}.course-card.nvq-card .category-badge{background:linear-gradient(135deg,#14b8a6,#0d9488);box-shadow:0 2px 4px #14b8a64d}.course-card.nvq-card .call-btn{background:linear-gradient(135deg,#0d9488,#0f766e);border-color:#0d9488}.course-card.nvq-card .call-btn:hover{background:linear-gradient(135deg,#0f766e,#115e59);border-color:#0f766e}.course-card.nvq-card .whatsapp-btn{border-color:#0d9488}.course-card.nvq-card .whatsapp-btn:hover{border-color:#14b8a6;background:#14b8a61a}.course-card.nvq-card .course-spaces{color:#0f766e}.course-card.nvq-card .course-spaces.low-stock{color:#b45309;background:#fef3c7}
