.class-detail-header{margin-bottom:30px}.btn-back{background:var(--color-text-light);color:white;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;margin-bottom:20px;font-weight:500;transition:background .3s}.btn-back:hover{background:var(--color-primary)}.class-header-content{display:flex;gap:30px;background:white;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(78,53,36,.1)}.class-header-image{width:280px;min-height:200px;flex-shrink:0;overflow:hidden}.class-header-image img{width:100%;height:100%;object-fit:cover}.class-header-info{padding:25px;flex:1 1}.class-header-info h1{color:var(--color-primary);margin:0 0 10px;font-size:1.8rem}.class-description-wrapper{margin-bottom:20px}.class-detail-description{color:var(--color-text-light);font-size:1rem;line-height:1.6;margin-bottom:8px;white-space:pre-line;display:block;overflow:visible}.class-detail-description.truncated{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.btn-toggle-description{background:none;border:none;color:var(--color-accent,#C4A77D);cursor:pointer;font-weight:600;font-size:.9rem;padding:0;text-decoration:underline}.btn-toggle-description:hover{color:var(--color-primary,#4E3524)}.class-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:20px;gap:20px;margin-top:20px}.info-item{display:flex;flex-direction:column;gap:5px}.info-item .label{color:var(--color-text-light);font-size:14px;display:flex;align-items:center;gap:6px}.info-item .value{font-size:18px;font-weight:600;color:var(--color-primary)}.class-detail-header .icon-clock:before,.class-detail-header .icon-price:before,.class-detail-header .icon-users:before{content:"";display:inline-block;width:16px;height:16px;background-size:contain;background-repeat:no-repeat;vertical-align:middle}.class-detail-header .icon-clock:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23C4A77D' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm.5-13H11v6l5.2 3.2.8-1.3-4.5-2.7V7z'/%3E%3C/svg%3E")}.class-detail-header .icon-price:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23C4A77D' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z'/%3E%3Cpath d='M13.5 7c-1.93 0-3.5 1.57-3.5 3.5h-2V12h2c0 1.93 1.57 3.5 3.5 3.5.5 0 .97-.11 1.4-.29l-.7-1.21c-.22.07-.46.11-.7.11-.97 0-1.75-.78-1.75-1.75h3v-1.5h-3c0-.97.78-1.75 1.75-1.75.24 0 .48.04.7.11l.7-1.21c-.43-.18-.9-.29-1.4-.29z'/%3E%3C/svg%3E")}.class-detail-header .icon-users:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23C4A77D' viewBox='0 0 24 24'%3E%3Cpath d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z'/%3E%3C/svg%3E")}@media (max-width:768px){.class-header-content{flex-direction:column}.class-header-image{width:100%;height:200px}}.booking-type-selector{background:white;padding:25px;border-radius:12px;margin-bottom:30px;box-shadow:0 2px 8px rgba(78,53,36,.08)}.booking-type-selector h2{color:var(--templo-text-primary,#3B2803);margin-bottom:20px;font-size:1.3rem}.booking-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:20px;gap:20px}.booking-option-card{display:flex;align-items:center;gap:16px;padding:20px;border:2px solid var(--templo-border,#d4c4b3);border-radius:12px;background:var(--templo-bg-card,#FFFFFF);cursor:pointer;transition:all .3s ease}.booking-option-card:hover{border-color:var(--templo-brown-medium,#664D3C);box-shadow:0 4px 12px rgba(78,53,36,.12);transform:translateY(-2px)}.booking-option-card.selected{border-color:var(--templo-brown-dark,#4E3524);background:linear-gradient(135deg,var(--templo-beige,#E4D7C5) 0,#F5EDE3 100%);box-shadow:0 4px 16px rgba(78,53,36,.15)}.option-content{flex:1 1}.option-content h3{margin:0 0 4px;color:var(--templo-text-primary,#3B2803);font-size:1.1rem;font-weight:600}.option-description{color:var(--templo-text-muted,#9B8778);font-size:.9rem;margin:0 0 8px}.option-price{font-size:1.5rem;font-weight:700;color:var(--templo-brown-dark,#4E3524)}.option-voucher-info{margin-top:4px}.voucher-sessions-badge{display:inline-block;background:var(--templo-brown-dark,#4E3524);color:white;padding:4px 12px;border-radius:20px;font-size:.85rem;font-weight:500}.option-check{width:32px;height:32px;flex-shrink:0}.check-icon,.option-check{display:flex;align-items:center;justify-content:center}.check-icon{width:28px;height:28px;background:var(--templo-brown-dark,#4E3524);color:white;border-radius:50%;font-weight:700;font-size:1rem}.voucher-selector-section{background:white;padding:25px;border-radius:12px;margin-bottom:30px;box-shadow:0 2px 8px rgba(78,53,36,.08)}.voucher-selector-section h3{color:var(--templo-text-primary,#3B2803);margin-bottom:20px}.voucher-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:16px;gap:16px}.voucher-select-card{border:2px solid var(--templo-border,#d4c4b3);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .3s ease;background:white}.voucher-select-card:hover{border-color:var(--templo-brown-medium,#664D3C);box-shadow:0 4px 12px rgba(78,53,36,.12)}.voucher-select-card.selected{border-color:var(--templo-brown-dark,#4E3524);box-shadow:0 4px 16px rgba(78,53,36,.15)}.voucher-card-header{background:linear-gradient(135deg,var(--templo-brown-dark,#4E3524) 0,var(--templo-brown-medium,#664D3C) 100%);color:white;padding:12px 16px;display:flex;justify-content:space-between;align-items:center}.voucher-name{font-weight:600;font-size:1rem}.voucher-check{width:24px;height:24px;background:white;color:var(--templo-brown-dark,#4E3524);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}.voucher-card-body{padding:16px}.sessions-remaining{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.sessions-number{font-size:2.5rem;font-weight:700;color:var(--templo-brown-dark,#4E3524);line-height:1}.sessions-label{color:var(--templo-text-secondary,#664D3C);font-size:.95rem}.voucher-expiry{color:var(--templo-text-muted,#9B8778);font-size:.85rem;padding-top:8px;border-top:1px solid var(--templo-border-light,#e8ded2)}.calendar-section{background:white;padding:25px;border-radius:12px;margin-bottom:30px;box-shadow:0 2px 8px rgba(78,53,36,.08)}.calendar-section h2{color:var(--color-primary);margin-bottom:20px}.react-calendar{width:100%;border:none;font-family:inherit;background:transparent}.react-calendar__navigation{margin-bottom:10px}.react-calendar__navigation button{color:var(--color-primary);font-weight:600;font-size:1rem;background:transparent;border-radius:8px}.react-calendar__navigation button:focus,.react-calendar__navigation button:hover{background:var(--color-background)}.react-calendar__navigation button:disabled{background:transparent;color:var(--color-text-light)}.react-calendar__month-view__weekdays{text-transform:uppercase;font-weight:600;font-size:.75rem;color:var(--color-text-light)}.react-calendar__month-view__weekdays abbr{text-decoration:none}.react-calendar__tile{padding:12px 8px;font-size:.9rem;border-radius:8px;transition:all .2s}.react-calendar__tile:enabled:focus,.react-calendar__tile:enabled:hover{background:var(--color-background)}.react-calendar__tile--now{background:var(--color-accent)!important;font-weight:600}.react-calendar__tile--active,.react-calendar__tile--now:enabled:focus,.react-calendar__tile--now:enabled:hover{background:var(--color-primary)!important}.react-calendar__tile--active{color:white!important;font-weight:600}.react-calendar__tile--active:enabled:focus,.react-calendar__tile--active:enabled:hover{background:var(--color-primary)!important}.react-calendar__tile.available-date{background:rgba(196,167,125,.3)!important;color:var(--color-primary,#8B5A2B)!important;font-weight:500}.react-calendar__tile.available-date:enabled:hover{background:rgba(196,167,125,.5)!important}.react-calendar__tile--active,.react-calendar__tile--active.available-date{background:var(--color-primary,#8B5A2B)!important;color:white!important}.react-calendar__tile--hasActive{background:var(--color-primary,#8B5A2B)!important}.react-calendar__tile--now{background:var(--color-accent,#C4A77D)!important;color:white!important}.react-calendar__month-view__days__day--weekend{color:var(--color-accent)}.react-calendar__month-view__days__day--neighboringMonth{color:#ccc}.sessions-section{background:white;padding:25px;border-radius:12px;margin-bottom:30px;box-shadow:0 2px 8px rgba(78,53,36,.08)}.sessions-section h3{color:var(--color-primary);margin-bottom:15px}.sessions-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:15px;gap:15px;margin-top:15px}.session-item{padding:18px;border:2px solid var(--color-border);border-radius:10px;cursor:pointer;transition:all .3s;text-align:center;background:white}.session-item:hover:not(.unavailable){border-color:var(--color-accent);box-shadow:0 4px 12px rgba(78,53,36,.12)}.session-item.selected{border-color:var(--color-primary);background:var(--color-background)}.session-item.unavailable{opacity:.5;cursor:not-allowed;background:#f5f5f5}.session-item.already-booked{opacity:.6;cursor:not-allowed;background:rgba(123,156,109,.1);border-color:var(--templo-success,#7B9C6D)}.session-item.already-booked .session-capacity{color:var(--templo-success,#7B9C6D);font-weight:600}.session-time{font-size:18px;font-weight:600;margin-bottom:8px;color:var(--color-primary)}.session-capacity{font-size:14px;color:var(--color-text-light)}.full-badge,.selected-badge{display:inline-block;margin-top:8px;padding:4px 12px;border-radius:20px;font-size:12px}.full-badge{background:#d4a5a5;color:#8b3a3a}.selected-badge{background:var(--color-accent);color:white}.booking-summary{position:fixed;bottom:0;left:0;right:0;background:white;padding:20px 30px;box-shadow:0 -4px 20px rgba(78,53,36,.15);display:flex;justify-content:space-between;align-items:center;z-index:100}.booking-summary h3{color:var(--color-primary);margin:0 0 5px}.booking-summary p{color:var(--color-text-light);margin:0}.summary-info{flex:1 1}.total-price{font-size:24px;font-weight:700}.total-price,.voucher-info{color:var(--color-accent);margin-top:5px}.voucher-info{font-size:14px}.booking-summary .btn-primary{margin-left:20px;min-width:200px;background:var(--color-primary,#8B5A2B)!important;color:white!important;border:none;padding:14px 28px;border-radius:8px;font-weight:600;cursor:pointer}.booking-summary .btn-primary:hover{background:var(--color-accent,#C4A77D)!important}.info-box{background:linear-gradient(135deg,#667eea,#764ba2);color:white;padding:1.5rem;border-radius:12px;margin-top:1.5rem;text-align:center;box-shadow:0 4px 15px rgba(102,126,234,.3)}.info-box p{margin:.5rem 0;line-height:1.6}.info-box p:first-child{margin-top:0}.info-box strong{font-size:1.1rem;display:block;margin-bottom:.3rem}.info-box .btn-secondary{margin-top:1rem;background:white;color:#667eea;font-weight:600;border:none;padding:.8rem 1.5rem;transition:all .3s ease}.info-box .btn-secondary:hover{background:rgba(255,255,255,.9);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}@media (max-width:768px){.info-box{padding:1rem}.info-box strong{font-size:1rem}.info-box p{font-size:.9rem}}