@font-face{font-family:Unbounded;src:url(/fonts/unbounded-700.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Epilogue;src:url(/fonts/epilogue-400.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Epilogue;src:url(/fonts/epilogue-300.woff2)format("woff2");font-weight:300;font-display:swap}:root{--purple:#3a135f;--navy:#171c3b;--lavender:#eceef7;--lavender-mid:#d4c4e8;--font-heading:"Unbounded", system-ui, sans-serif;--font-body:"Epilogue", system-ui, sans-serif;--radius-pill:2em;--radius-card:12px;--shadow-card:0 2px 12px #0000001a}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:#1a1a1a;-webkit-font-smoothing:antialiased;background:#fff;margin:0;font-size:16px;line-height:1.6}h1,h2,h3{font-family:var(--font-heading);margin:0 0 .5em;line-height:1.2}a{color:var(--purple)}button{font-family:var(--font-body);cursor:pointer;border:none}.btn-primary{background:var(--purple);color:#fff;border-radius:var(--radius-pill);border:2px solid var(--purple);padding:.75em 1.75em;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-block}.btn-primary:hover{background:var(--navy);border-color:var(--navy)}.btn-primary:disabled{cursor:not-allowed;pointer-events:none;background:#9ca3af;border-color:#9ca3af}.btn-secondary{color:var(--purple);border-radius:var(--radius-pill);border:2px solid var(--purple);background:0 0;padding:.75em 1.75em;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}.btn-secondary:hover{background:var(--lavender)}.availability-badge{border-radius:99px;align-items:center;gap:4px;padding:2px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.badge-available{color:#166534;background:#dcfce7}.badge-few_left{color:#92400e;background:#fef3c7}.badge-sold_out{color:#4b5563;background:#f3f4f6}.container{max-width:960px;margin:0 auto;padding:0 20px}.site-header{background:var(--purple);z-index:100;padding:14px 0;position:sticky;top:0}.site-header .inner{justify-content:space-between;align-items:center;display:flex}.site-header .logo{color:#fff;font-family:var(--font-heading);font-size:1.1rem;font-weight:700;text-decoration:none}.site-header .back-link{color:var(--lavender-mid);font-size:.9rem;text-decoration:none}.site-header .back-link:hover{color:#fff}.hero{background:linear-gradient(135deg, var(--navy) 0%, var(--purple) 100%);align-items:center;min-height:340px;padding:48px 0;display:flex}.hero-glass{-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-card);background:#ffffff1f;border:1px solid #fff3;max-width:560px;padding:32px 36px}.hero-glass h1{color:#fff;margin-bottom:.4em;font-size:clamp(1.4rem,4vw,2rem)}.hero-glass p{color:#ffffffd9;margin:0;font-size:1rem}.trust-strip{background:var(--navy);color:var(--lavender);text-align:center;flex-wrap:wrap;justify-content:center;gap:24px;padding:10px 20px;font-size:.82rem;display:flex}.trust-strip span:before{content:"✓ "}.section{padding:48px 0}.section-title{color:var(--navy);margin-bottom:24px;font-size:1.4rem}.product-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;display:grid}.product-card{border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:1px solid #e5e7eb;flex-direction:column;transition:box-shadow .2s,transform .2s;display:flex;overflow:hidden}.product-card:hover{transform:translateY(-2px);box-shadow:0 6px 24px #3a135f26}.product-card-image{background:linear-gradient(135deg, var(--purple) 0%, var(--navy) 100%);background-position:50%;background-size:cover;height:180px}.product-card-body{flex-direction:column;flex:1;gap:8px;padding:20px;display:flex}.product-card-title{font-family:var(--font-heading);color:var(--navy);margin:0;font-size:.95rem}.product-card-meta{color:#6b7280;flex-direction:column;gap:2px;font-size:.83rem;display:flex}.product-card-actions{flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:12px;display:flex}.product-card-actions .btn-primary,.product-card-actions .btn-secondary{padding:.55em 1.2em;font-size:.85rem}.tfc-explainer{background:var(--lavender);border-radius:var(--radius-card);margin-top:40px;padding:28px 32px}.tfc-explainer h2{color:var(--navy);margin-bottom:12px;font-size:1.05rem}.tfc-steps{counter-reset:step;margin:0 0 16px;padding:0;list-style:none}.tfc-steps li{counter-increment:step;color:#374151;align-items:flex-start;gap:12px;margin-bottom:10px;font-size:.92rem;display:flex}.tfc-steps li:before{content:counter(step);background:var(--purple);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;min-width:22px;height:22px;margin-top:3px;font-size:.72rem;font-weight:700;display:flex}.card-redirect{color:#4b5563;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:14px 18px;font-size:.88rem}.card-redirect a{font-weight:600}.page-content{padding:32px 0 64px}.product-detail-header{grid-template-columns:200px 1fr;align-items:start;gap:24px;margin-bottom:28px;display:grid}@media (width<=600px){.product-detail-header{grid-template-columns:1fr}}.product-detail-image{aspect-ratio:4/3;border-radius:var(--radius-card);background:linear-gradient(135deg, var(--purple) 0%, var(--navy) 100%);background-position:50%;background-size:cover;width:100%}.product-detail-meta h2{color:var(--navy);font-size:1.2rem}.product-detail-meta p{color:#6b7280;margin:0 0 5px;font-size:.88rem}.product-detail-meta .product-description{color:#374151;margin-top:8px;font-size:.92rem}.session-picker{border-radius:var(--radius-card);border:1px solid #e5e7eb;margin-bottom:16px;overflow:hidden}.session-picker-label{text-transform:uppercase;letter-spacing:.5px;color:var(--purple);padding:10px 16px 4px;font-size:.72rem;font-weight:700}.session-row{cursor:pointer;border-top:1px solid #f3f4f6;grid-template-columns:20px 1fr auto auto;align-items:center;gap:12px;padding:12px 16px;transition:background .1s;display:grid}.session-row:hover:not(.sold-out){background:var(--lavender)}.session-row.sold-out{opacity:.65;cursor:not-allowed}.session-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--purple);cursor:inherit;flex-shrink:0}.session-row-label{color:#1f2937;font-size:.92rem}.session-row-price{color:#374151;white-space:nowrap;font-size:.88rem}.running-total{border-top:2px solid var(--lavender);color:#374151;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-size:.88rem;display:flex}.running-total strong{color:var(--navy)}.running-total .btn-primary{padding:.55em 1.2em;font-size:.88rem}.key-info{background:var(--lavender);border-radius:var(--radius-card);margin-top:20px;padding:20px}.key-info h3{text-transform:uppercase;letter-spacing:.5px;color:var(--purple);margin-bottom:10px;font-size:.78rem;font-weight:700}.key-info ul{color:#374151;margin:0;padding-left:18px;font-size:.88rem}.key-info li{margin-bottom:5px}.progress-bar{align-items:center;gap:8px;margin-bottom:28px;display:flex}.progress-dot{background:#d1d5db;border-radius:50%;width:10px;height:10px}.progress-dot.active{background:var(--purple);transform:scale(1.3)}.progress-dot.done{background:var(--purple)}.progress-label{color:#6b7280;margin-left:6px;font-size:.82rem}.form-section{margin-bottom:28px}.form-section-title{color:var(--navy);border-bottom:2px solid var(--lavender);margin-bottom:14px;padding-bottom:6px;font-size:.95rem;font-weight:700}.form-field{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.form-field label{color:#374151;font-size:.82rem;font-weight:600}.form-field input{font-family:var(--font-body);color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:10px 12px;font-size:.92rem;transition:border-color .15s}.form-field input:focus{border-color:var(--purple);outline:none;box-shadow:0 0 0 3px #3a135f1a}.form-field.has-error input{border-color:#dc2626}.form-field .hint{color:#9ca3af;font-size:.78rem}.form-field .error-msg{color:#dc2626;font-size:.78rem}.field-website{display:none!important}.booking-summary-box{background:var(--lavender);border-radius:var(--radius-card);margin-bottom:24px;padding:20px}.booking-summary-box h3{text-transform:uppercase;letter-spacing:.5px;color:var(--purple);margin-bottom:12px;font-size:.78rem;font-weight:700}.summary-line{color:#374151;border-bottom:1px solid #0000000f;justify-content:space-between;padding:4px 0;font-size:.88rem;display:flex}.summary-total{color:var(--navy);justify-content:space-between;margin-top:10px;font-size:1rem;font-weight:700;display:flex}.form-error-banner{color:#dc2626;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:.88rem}.confirmation-card{border-radius:var(--radius-card);background:#f0fdf4;border:2px solid #86efac;margin-bottom:28px;padding:28px 32px}.confirmation-card h2{color:#166534;margin-bottom:10px;font-size:1.3rem}.confirmation-card ul{color:#1f2937;margin:8px 0 0;padding-left:20px;font-size:.92rem}.next-steps{flex-direction:column;gap:20px;margin-bottom:32px;display:flex}.next-step-card{border-radius:var(--radius-card);border:1px solid #e5e7eb;padding:20px 24px}.next-step-card h3{color:var(--navy);margin-bottom:8px;font-size:.95rem}.next-step-card p{color:#4b5563;margin:0 0 4px;font-size:.88rem}.next-step-card .highlight{color:var(--navy);font-weight:700}.confirmation-actions{flex-wrap:wrap;gap:16px;display:flex}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 50%,#e5e7eb 75%) 0 0/600px 100%;border-radius:4px;animation:1.4s linear infinite shimmer}.product-card-skeleton .product-card-image{background:#e5e7eb 0 0/600px 100%;animation:1.4s linear infinite shimmer}.skeleton-title{width:70%;height:16px;margin-bottom:10px}.skeleton-meta{width:50%;height:12px;margin-bottom:6px}.skeleton-meta-sm{width:35%;height:12px;margin-bottom:6px}.skeleton-btn{border-radius:var(--radius-btn);width:120px;height:34px;margin-top:16px}.loading-state,.error-state{text-align:center;color:#6b7280;padding:64px 20px}.error-state{color:#dc2626}.site-footer{background:var(--navy);color:#9ca3af;text-align:center;padding:20px 0;font-size:.82rem}.site-footer a{color:#9ca3af}
