.public-hero{text-align:center;padding:var(--spacing-xxl) 0 var(--spacing-xl)}.public-hero h1{font-size:2.2rem;color:var(--green);margin-bottom:var(--spacing-sm);font-weight:300}.public-hero p{font-size:1.1rem;color:var(--gray-dark);max-width:600px;margin:0 auto}.public-hero.small{padding:var(--spacing-lg) 0 var(--spacing-md)}.public-hero.small h1{font-size:1.8rem}.category-filter{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);justify-content:center;margin-bottom:var(--spacing-xl)}.filter-tag{display:inline-block;padding:8px 20px;border:2px solid var(--green);border-radius:25px;color:var(--green);text-decoration:none;font-size:.9rem;font-weight:600;transition:all 0.2s}.filter-tag:hover,.filter-tag.active{background:var(--green);color:var(--white)}.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xxl)}.event-card{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);text-decoration:none;color:var(--dark);transition:transform 0.2s,box-shadow 0.2s;display:flex;flex-direction:column}.event-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.event-card-image{position:relative;height:200px;overflow:hidden;background:var(--gray-light)}.event-card-image img{width:100%;height:100%;object-fit:cover}.event-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--green) 0%,var(--darkgreen) 100%);color:rgb(255 255 255 / .3);font-size:4rem}.event-card-category{position:absolute;top:var(--spacing-sm);left:var(--spacing-sm);background:var(--green);color:var(--white);padding:4px 12px;border-radius:15px;font-size:.8rem;font-weight:600}.event-card-body{padding:var(--spacing-md);flex:1;display:flex;flex-direction:column}.event-card-title{font-size:1.2rem;margin:0 0 var(--spacing-xs);color:var(--dark);font-weight:700}.event-card-desc{font-size:.9rem;color:var(--gray-dark);margin:0 0 var(--spacing-md);flex:1;line-height:1.5}.event-card-meta{display:flex;justify-content:space-between;align-items:center;padding-top:var(--spacing-sm);border-top:1px solid var(--gray);font-size:.85rem}.event-card-date{color:var(--gray-dark)}.event-card-date i{color:var(--green);margin-right:4px}.event-card-price{font-weight:700;color:var(--green)}.event-card-price.free{color:var(--green)}.breadcrumb{padding:var(--spacing-md) 0;font-size:.9rem;color:var(--gray-dark)}.breadcrumb a{color:var(--green);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb-sep{margin:0 8px;color:var(--gray-medium)}.event-detail{display:grid;grid-template-columns:45% 1fr;gap:var(--spacing-xl);margin-bottom:var(--spacing-lg)}.event-gallery{align-self:start}.event-gallery-main{border-radius:var(--radius);overflow:hidden;margin-bottom:var(--spacing-sm)}.event-gallery-main img{width:100%;height:auto;aspect-ratio:3 / 2;object-fit:cover}.event-gallery-main a{display:block;cursor:pointer}.event-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xs)}.event-gallery-grid-item{display:block;border-radius:var(--radius-sm,4px);overflow:hidden;transition:opacity 0.2s,transform 0.2s}.event-gallery-grid-item img{width:100%;height:80px;object-fit:cover;display:block}.event-gallery-grid-item:hover{opacity:.85;transform:scale(1.03)}.event-info h1{font-size:2rem;color:var(--dark);margin:var(--spacing-sm) 0 var(--spacing-md);font-weight:700}.event-lead{font-size:1.1rem;color:var(--gray-dark);line-height:1.6;margin-bottom:var(--spacing-lg)}.event-price-box{background:var(--cream);border:1px solid var(--gray);border-radius:var(--radius);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.event-price-box .price-main{display:flex;align-items:baseline;gap:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.event-price-box .price-label{font-size:.85rem;color:var(--gray-dark)}.event-price-box .price-amount{font-size:1.8rem;font-weight:700;color:var(--green)}.event-price-box .price-amount-secondary{font-size:1.2rem;font-weight:600;color:var(--dark)}.event-price-box .price-unit{font-size:.85rem;color:var(--gray-dark)}.event-price-box .price-info{display:flex;align-items:baseline;gap:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px dashed var(--gray)}.event-price-box .price-note{margin-top:var(--spacing-sm);font-size:.85rem;color:var(--gray-dark);line-height:1.5}.event-price-box .price-note i{color:var(--green);margin-right:4px}.event-price-box.free .price-amount{font-size:1.4rem}.event-description{line-height:1.7;color:var(--dark);margin-bottom:var(--spacing-xl)}.event-description p{margin-bottom:.8em}.event-description p:last-child{margin-bottom:0}.event-description ul,.event-description ol{margin:.5em 0 .8em 1.5em}.event-description blockquote{border-left:3px solid var(--green);padding-left:var(--spacing-md);margin:.8em 0;color:var(--gray-dark);font-style:italic}.event-description table{width:100%;border-collapse:collapse;margin:.8em 0}.event-description th,.event-description td{border:1px solid var(--gray);padding:6px 10px;text-align:left}.event-description th{background:var(--cream);font-weight:700}.event-dates-section{margin-bottom:var(--spacing-xxl)}.event-dates-section h2{font-size:1.5rem;color:var(--green);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--gray)}.dates-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.date-card{display:flex;align-items:center;gap:var(--spacing-lg);background:var(--white);border:1px solid var(--gray);border-radius:var(--radius);padding:var(--spacing-md) var(--spacing-lg);transition:border-color 0.2s}.date-card:hover{border-color:var(--green)}.date-card-date{display:flex;flex-direction:column;align-items:center;min-width:80px;text-align:center}.date-day{font-size:2rem;font-weight:700;color:var(--green);line-height:1}.date-month{font-size:.85rem;color:var(--gray-dark);text-transform:uppercase;font-weight:600}.date-weekday{font-size:.8rem;color:var(--gray-medium)}.date-card-info{flex:1;display:flex;flex-direction:column;gap:4px}.date-time,.date-capacity{font-size:.9rem;color:var(--gray-dark)}.date-time i,.date-capacity i{width:18px;color:var(--green)}.btn-book{white-space:nowrap}.calendar-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.calendar-current{font-size:1.4rem;color:var(--green);margin:0}.calendar-day-group{margin-bottom:var(--spacing-md)}.calendar-day-header{display:flex;align-items:baseline;gap:var(--spacing-sm);padding:var(--spacing-sm) 0;border-bottom:2px solid var(--green);margin-bottom:var(--spacing-sm)}.calendar-day-number{font-size:1.8rem;font-weight:700;color:var(--green)}.calendar-day-name{font-size:1rem;color:var(--gray-dark)}.calendar-event-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius);text-decoration:none;color:var(--dark);transition:background 0.2s;margin-bottom:4px}.calendar-event-item:hover{background:var(--cream)}.calendar-event-img{width:60px;height:45px;object-fit:cover;border-radius:var(--radius-sm)}.calendar-event-info{flex:1;display:flex;flex-direction:column;gap:2px}.calendar-event-info strong{font-size:1rem}.calendar-event-info .text-muted{font-size:.85rem}.calendar-event-price{font-weight:700;color:var(--green);font-size:.9rem;white-space:nowrap}.badge-sm{font-size:.7rem;padding:1px 8px}.empty-state{text-align:center;padding:var(--spacing-xxl) var(--spacing-lg);color:var(--gray-dark)}.empty-state>i{font-size:3rem;color:var(--gray-medium);margin-bottom:var(--spacing-md);display:block}.empty-state h2{color:var(--dark);margin-bottom:var(--spacing-sm)}.empty-state.small{padding:var(--spacing-xl) var(--spacing-md)}.empty-state.small>i{font-size:2rem}.empty-state.large{padding:var(--spacing-xxl) * 2 var(--spacing-lg)}.empty-state.large>i{font-size:4rem}.admin-toolbar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);margin-bottom:var(--spacing-sm);background:var(--gray-light);border:1px solid var(--gray-medium);border-radius:var(--radius);font-size:.85rem}.admin-toolbar-label{color:var(--gray-dark);font-weight:600;margin-right:var(--spacing-xs)}.event-card-admin-link{position:absolute;top:var(--spacing-xs);right:var(--spacing-xs);width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:rgb(255 255 255 / .9);border-radius:var(--radius);color:var(--dark);font-size:.8rem;cursor:pointer;opacity:0;transition:opacity 0.2s;z-index:2}.event-card:hover .event-card-admin-link{opacity:1}.event-card-admin-link:hover{background:var(--white);color:var(--red)}.mt-3{margin-top:var(--spacing-lg)}.mb-3{margin-bottom:var(--spacing-lg)}@media (max-width:768px){.public-hero h1{font-size:1.6rem}.event-grid{grid-template-columns:1fr}.event-detail{grid-template-columns:1fr}.event-gallery-main img{max-height:250px}.event-gallery-grid-item img{height:65px}.event-info h1{font-size:1.5rem}.date-card{flex-direction:column;align-items:stretch;text-align:center;gap:var(--spacing-sm)}.date-card-date{flex-direction:row;justify-content:center;gap:var(--spacing-sm)}.date-card-info{align-items:center}.date-card-action{text-align:center}.calendar-nav{flex-direction:column;gap:var(--spacing-sm)}.category-filter{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.filter-tag{flex-shrink:0}}@media (max-width:480px){.event-card-image{height:160px}.event-gallery-main img{height:200px}}.booking-page-title{font-size:1.8rem;color:var(--green);margin-bottom:var(--spacing-lg);font-weight:300}.booking-layout{display:grid;grid-template-columns:1fr 360px;gap:var(--spacing-xl);align-items:start;margin-bottom:var(--spacing-xxl)}.booking-form-section h3{font-size:1.2rem;color:var(--green);margin-bottom:var(--spacing-md);margin-top:var(--spacing-lg);font-weight:700}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.form-group-sm{max-width:140px}.form-error{color:var(--error);font-size:13px;margin-top:var(--spacing-xs)}.required{color:var(--error)}.booking-sidebar{position:sticky;top:100px}.booking-summary{background:var(--white);border:1px solid var(--gray);border-radius:var(--border-radius);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.booking-summary h3{font-size:1.1rem;font-weight:700;color:var(--dark);margin-bottom:var(--spacing-md)}.summary-event{padding-bottom:var(--spacing-md);border-bottom:1px solid var(--gray);margin-bottom:var(--spacing-md)}.summary-event strong{display:block;font-size:1rem;margin-bottom:var(--spacing-sm)}.summary-date,.summary-time{font-size:.9rem;color:var(--gray-dark);margin-bottom:4px}.summary-date i,.summary-time i{width:18px;color:var(--green)}.summary-pricing{margin-bottom:var(--spacing-md)}.summary-line{display:flex;justify-content:space-between;font-size:.9rem;padding:6px 0;color:var(--gray-dark)}.summary-total{border-top:2px solid var(--dark);margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);font-weight:700;font-size:1.1rem;color:var(--dark)}.summary-note{display:flex;gap:var(--spacing-sm);font-size:.85rem;color:var(--gray-dark);padding:var(--spacing-sm);background:var(--cream);border-radius:var(--border-radius);margin-bottom:var(--spacing-sm);line-height:1.5}.summary-note i{color:var(--green);margin-top:2px;flex-shrink:0}.summary-availability{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.9rem;color:var(--green);font-weight:600;padding-top:var(--spacing-sm);border-top:1px solid var(--gray)}.btn-disabled{background-color:var(--gray-medium);color:var(--white);cursor:not-allowed;opacity:.7}.alternative-dates{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem}.alternative-dates .btn{font-size:.8rem;padding:.25rem .5rem}.date-card.sold-out{opacity:.6}.date-capacity .sold-out-text{color:var(--error);font-weight:600}.almost-full-hint{display:block;color:#e67e22;font-size:.85rem;font-weight:700;margin-bottom:6px}.confirmation-header{text-align:center;padding:var(--spacing-xl) 0}.confirmation-header i{font-size:4rem;color:var(--success);margin-bottom:var(--spacing-md)}.confirmation-header h1{font-size:2rem;color:var(--dark);margin-bottom:var(--spacing-sm);font-weight:700}.confirmation-header p{font-size:1.1rem;color:var(--gray-dark)}.confirmation-header p strong{color:var(--dark);font-family:monospace;font-size:1.2rem}.confirmation-header.cancelled i{color:var(--error)}.confirmation-layout{display:grid;grid-template-columns:1fr 360px;gap:var(--spacing-xl);align-items:start;margin-bottom:var(--spacing-xl)}.detail-card{background:var(--white);border:1px solid var(--gray);border-radius:var(--border-radius);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);box-shadow:var(--shadow-sm)}.detail-card h3{font-size:1rem;font-weight:700;color:var(--green);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--gray)}.detail-card h3 i{margin-right:var(--spacing-xs)}.detail-row{display:flex;justify-content:space-between;padding:8px 0;font-size:.9rem;border-bottom:1px solid var(--gray-light)}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--gray-dark);font-weight:400}.detail-value{color:var(--dark);font-weight:600;text-align:right}.detail-value a{color:var(--green)}.detail-total{border-top:2px solid var(--dark);font-size:1rem}.detail-total .detail-value{font-size:1.1rem;color:var(--green)}.action-card{background:var(--white);border:1px solid var(--gray);border-radius:var(--border-radius);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);box-shadow:var(--shadow-sm)}.action-card h3{font-size:1rem;font-weight:700;color:var(--dark);margin-bottom:var(--spacing-md)}.action-card hr{border:none;border-top:1px solid var(--gray);margin:var(--spacing-md) 0}.quantity-row{display:flex;gap:var(--spacing-sm);align-items:center}.quantity-row select{flex:1}.refund-note{font-size:.85rem;color:var(--success);margin-top:var(--spacing-md);line-height:1.5}.refund-note i{margin-right:var(--spacing-xs)}.refund-note-warning{color:var(--warning)}.info-text{font-size:.9rem;color:var(--gray-dark);line-height:1.5}.badge-success{background-color:var(--success-light);color:var(--success);padding:3px 10px;border-radius:12px;font-size:.8rem;font-weight:600}.badge-warning{background-color:var(--warning-light);color:#856404;padding:3px 10px;border-radius:12px;font-size:.8rem;font-weight:600}.badge-danger{background-color:var(--error-light);color:var(--error);padding:3px 10px;border-radius:12px;font-size:.8rem;font-weight:600}.badge-waitlist{background-color:#fff3e0;color:#e65100;padding:4px 12px;border-radius:12px;font-size:.8rem;font-weight:600;display:inline-block}.btn-waitlist{background-color:#e65100;color:#fff;border:none;cursor:pointer}.btn-waitlist:hover{background-color:#bf360c;color:#fff}@media (max-width:768px){.booking-layout{grid-template-columns:1fr}.booking-sidebar{position:static;order:-1}.form-row{grid-template-columns:1fr}.form-group-sm{max-width:none}.confirmation-layout{grid-template-columns:1fr}.confirmation-header i{font-size:3rem}.confirmation-header h1{font-size:1.5rem}}@media (max-width:480px){.booking-page-title{font-size:1.4rem}.quantity-row{flex-direction:column}.quantity-row select,.quantity-row button{width:100%}}.footer-extra{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid rgb(255 255 255 / .15);font-size:.85rem;line-height:1.6;opacity:.8}.multi-date-hint{background:#f0f7f4;border:1px solid #c3e6cb;border-radius:var(--radius);padding:var(--spacing-sm) var(--spacing-md);color:var(--green-dark);font-size:.9rem;margin-bottom:var(--spacing-md)}.date-card-check{display:flex;align-items:center;justify-content:center;min-width:40px}.multi-date-check input[type="checkbox"]{width:22px;height:22px;accent-color:var(--green);cursor:pointer}.multi-date-disabled{color:var(--gray-medium);font-size:1.2rem;min-width:40px;text-align:center}.date-card-soldout{opacity:.5}.multi-date-summary{position:sticky;bottom:0;background:var(--white);border:2px solid var(--green);border-radius:var(--radius);padding:var(--spacing-md) var(--spacing-lg);margin-top:var(--spacing-md);box-shadow:0 -4px 12px rgb(0 0 0 / .1);z-index:10}.multi-date-summary-inner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md)}.multi-date-qty{display:flex;align-items:center;gap:var(--spacing-sm)}.multi-date-qty label{font-weight:600;white-space:nowrap;margin:0}.multi-date-qty .qty-input{width:40px;text-align:center;border:1px solid var(--gray);border-radius:var(--radius);padding:4px;font-weight:700}.multi-date-total{display:flex;align-items:center;gap:6px;font-size:.95rem;flex:1}.multi-date-sep{color:var(--gray-medium)}.multi-date-total strong{font-size:1.1rem;color:var(--green-dark)}.multi-date-fallback{width:100%;text-align:center;margin-top:4px}.multi-date-fallback a{color:var(--green);text-decoration:underline}@media (max-width:768px){.multi-date-summary-inner{flex-direction:column;align-items:stretch}.multi-date-total{justify-content:center;flex-wrap:wrap}.multi-date-qty{justify-content:center}#multi-date-submit{width:100%}}.summary-multi-badge{display:inline-block;background:#f0f7f4;color:var(--green-dark);padding:4px 10px;border-radius:var(--radius);font-size:.85rem;font-weight:600;margin-top:6px}.summary-dates-list{margin-top:var(--spacing-sm);display:flex;flex-direction:column;gap:6px}.summary-date-item{display:flex;align-items:center;gap:8px;font-size:.9rem;padding:4px 0}.group-dates-list{display:flex;flex-direction:column;gap:8px}.group-date-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--white);border:1px solid var(--gray);border-radius:var(--radius)}.group-date-item.group-date-cancelled{opacity:.5;background:var(--gray-light)}.group-date-status{font-size:1.2rem;min-width:24px;text-align:center}.group-date-info{flex:1;display:flex;flex-direction:column;gap:2px}.group-date-meta{min-width:80px;text-align:right}.group-date-action{min-width:100px;text-align:right}.btn-outline-danger{color:var(--error);border:1px solid var(--error);background:#fff0;padding:4px 10px;border-radius:var(--radius);font-size:.8rem;cursor:pointer;transition:all 0.2s}.btn-outline-danger:hover{background:var(--error);color:var(--white)}.confirmation-dates h2,.confirmation-guest h2{font-size:1.1rem;margin-bottom:var(--spacing-sm)}@media (max-width:768px){.group-date-item{flex-wrap:wrap;gap:var(--spacing-sm)}.group-date-action{width:100%;text-align:left}}.related-events h2{font-size:1.3rem;margin-bottom:var(--spacing-md);color:var(--dark)}.related-events h2 i{color:var(--green);margin-right:6px}.related-events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--spacing-md)}.related-event-card{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);text-decoration:none;color:var(--dark);transition:transform 0.2s,box-shadow 0.2s;display:flex;flex-direction:column}.related-event-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.related-event-image{position:relative;height:140px;overflow:hidden;background:var(--gray-light)}.related-event-image img{width:100%;height:100%;object-fit:cover}.related-event-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--green) 0%,var(--darkgreen) 100%);color:rgb(255 255 255 / .3);font-size:3rem}.related-event-category{position:absolute;top:var(--spacing-xs);left:var(--spacing-xs);background:var(--green);color:var(--white);padding:2px 10px;border-radius:12px;font-size:.75rem;font-weight:600}.related-event-body{padding:var(--spacing-sm) var(--spacing-md);flex:1;display:flex;flex-direction:column}.related-event-title{font-size:1rem;margin:0 0 var(--spacing-xs);color:var(--dark);font-weight:700;line-height:1.3}.related-event-desc{font-size:.82rem;color:var(--gray-dark);margin:0 0 var(--spacing-sm);flex:1;line-height:1.4}.related-event-meta{display:flex;justify-content:space-between;align-items:center;padding-top:var(--spacing-xs);border-top:1px solid var(--gray);font-size:.8rem}.related-event-date{color:var(--gray-dark)}.related-event-date i{color:var(--green);margin-right:3px}.related-event-price{font-weight:700;color:var(--green)}.related-event-price.free{color:var(--green)}@media (max-width:480px){.related-events-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.related-event-image{height:100px}.related-event-title{font-size:.9rem}.related-event-desc{display:none}}