*,*:before,*:after{box-sizing:border-box}:root{--font-heading: "Playfair Display", Georgia, serif;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fs-hero: clamp(2.5rem, 6vw, 4.5rem);--fs-h1: clamp(1.75rem, 4vw, 2.5rem);--fs-h2: clamp(1.25rem, 3vw, 1.75rem);--fs-body: 1rem;--fs-small: .875rem;--fs-caption: .75rem;--lh-heading: 1.15;--lh-body: 1.625;--bg-primary: #faf8f5;--bg-surface: #ffffff;--bg-brand-soft: #fdf2f0;--fg-heading: #1a1410;--fg-body: #3d322b;--fg-muted: #7a6f66;--fg-brand: #c0392b;--fg-brand-strong: #8b251c;--fg-brand-hover: #a83227;--border-default: #e0d8cf;--border-brand-subtle: #e0bcb8;--radius-lg: 32px;--radius-md: 16px;--radius-sm: 10px;--radius-pill: 9999px;--shadow-card: 0 8px 32px rgba(26, 20, 16, .08);--shadow-button: 0 4px 14px rgba(192, 57, 43, .25);--shadow-button-hover: 0 6px 20px rgba(192, 57, 43, .35)}@media(prefers-color-scheme:dark){:root{--bg-primary: #14110d;--bg-surface: #1e1a16;--bg-brand-soft: #2a1e1c;--fg-heading: #f0ece7;--fg-body: #c8bfb5;--fg-muted: #8a8078;--fg-brand: #d9534f;--fg-brand-strong: #e0655f;--fg-brand-hover: #b33a2a;--border-default: #2e2923;--border-brand-subtle: #3d2a28;--shadow-card: 0 8px 32px rgba(0, 0, 0, .3);--shadow-button: 0 4px 14px rgba(217, 83, 79, .2);--shadow-button-hover: 0 6px 20px rgba(217, 83, 79, .3)}}html{font-size:100%;-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--fg-body);background:var(--bg-primary);min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-heading);line-height:var(--lh-heading);color:var(--fg-heading);margin:0 0 .5em}h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}a{color:var(--fg-brand);text-decoration:none}a:hover{color:var(--fg-brand-hover)}img{max-width:100%;height:auto}.page-shell{min-height:100vh;display:flex;flex-direction:column}.site-header{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand-mark{font-family:var(--font-heading);font-size:1.25rem;font-weight:600;color:var(--fg-heading);text-decoration:none;letter-spacing:.02em;display:inline-flex;align-items:center}.brand-mark img{max-height:65px;width:auto;display:block}.site-main{flex:1;padding:0 24px 80px;max-width:720px;width:100%;margin:0 auto}.hero{text-align:center;padding:40px 0 24px}.hero-eyebrow{font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.2em;color:var(--fg-brand);margin:0 0 8px}.hero-heading{font-family:var(--font-heading);font-size:var(--fs-hero);line-height:var(--lh-heading);color:var(--fg-heading);margin:0 0 12px}.hero-subtitle{font-family:var(--font-body);font-size:clamp(1.25rem,3vw,2.25rem);font-style:italic;color:var(--fg-muted);margin:0 0 12px}.hero-sub{font-size:var(--fs-body);color:var(--fg-muted);max-width:480px;margin:0 auto}.event-panel{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-card);margin-top:32px;overflow:hidden}.event-title{font-family:var(--font-heading);font-size:var(--fs-h2);color:var(--fg-heading);margin:0 0 16px}.event-meta{display:grid;gap:8px;margin-bottom:24px;font-size:var(--fs-small);color:var(--fg-muted)}.event-meta-row{display:flex;align-items:center;gap:8px}.event-meta-icon{width:18px;height:18px;opacity:.6;flex-shrink:0}.event-description{color:var(--fg-body);line-height:var(--lh-body);margin-bottom:24px;word-break:break-word}.event-description p{margin:0 0 1em}.event-description p:last-child{margin-bottom:0}.event-description strong,.event-description b{font-weight:700;color:var(--fg-heading)}.event-description em,.event-description i{font-style:italic}.event-description a{color:var(--fg-brand);text-decoration:underline}.event-description ul,.event-description ol{margin:0 0 1em;padding-left:1.5em}.event-description li{margin-bottom:.25em}.event-description h1,.event-description h2,.event-description h3,.event-description h4,.event-description h5,.event-description h6{font-family:var(--font-heading);color:var(--fg-heading);margin:1.25em 0 .5em;line-height:var(--lh-heading)}.event-description h1:first-child,.event-description h2:first-child,.event-description h3:first-child{margin-top:0}.event-description blockquote{border-left:3px solid var(--fg-brand);margin:1em 0;padding:.5em 1em;color:var(--fg-muted);font-style:italic}.event-description code{background:var(--bg-primary);padding:.15em .4em;border-radius:4px;font-size:.9em;border:1px solid var(--border-default)}.event-description hr{border:none;border-top:1px solid var(--border-default);margin:1.5em 0}.event-header-image{width:calc(100% + 64px);max-height:400px;object-fit:cover;margin:-32px -32px 24px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.event-capacity{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:var(--radius-md);background:var(--bg-brand-soft);border:1px solid var(--border-brand-subtle);font-size:var(--fs-small);color:var(--fg-brand-strong);margin-bottom:24px}.event-price{font-family:var(--font-heading);font-size:var(--fs-h2);color:var(--fg-brand-strong);text-align:center;margin-bottom:24px}.booking-form{display:grid;gap:20px}.form-field{display:grid;gap:6px}.form-field label{font-size:var(--fs-small);color:var(--fg-heading);font-weight:600}.form-field .muted-label{font-size:var(--fs-caption);color:var(--fg-muted);font-weight:500}.form-field input,.form-field textarea,.form-field select{padding:12px 16px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--fg-heading);font-family:var(--font-body);font-size:var(--fs-body);min-height:48px;transition:border-color .2s ease,box-shadow .2s ease}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;border-color:var(--fg-brand);box-shadow:0 0 0 3px #c0392b26}.form-field input:user-invalid:not(:placeholder-shown),.form-field textarea:user-invalid:not(:placeholder-shown){border-color:#c44}.form-field textarea{resize:vertical;min-height:80px}.form-field .hint{font-size:var(--fs-caption);color:var(--fg-muted)}.form-field .error{font-size:var(--fs-caption);color:#c44}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:480px){.form-row{grid-template-columns:1fr}.site-header{padding:16px}.brand-mark img{max-height:50px}.site-main{padding:0 16px 60px}.hero{padding:32px 0 16px}.event-panel{padding:20px;border-radius:var(--radius-md);margin-top:24px}.event-header-image{width:calc(100% + 40px);max-height:250px;margin:-20px -20px 16px;border-radius:var(--radius-md) var(--radius-md) 0 0}.confirmation-card{padding:24px 16px}.button-primary{padding:12px 20px;font-size:var(--fs-small)}}.button-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;border-radius:var(--radius-pill);border:none;background:var(--fg-brand);color:#fff;font-family:var(--font-body);font-size:var(--fs-body);font-weight:600;cursor:pointer;transition:background .2s ease,box-shadow .2s ease,transform .15s ease;box-shadow:var(--shadow-button);min-height:48px}.button-primary:hover{background:var(--fg-brand-hover);box-shadow:var(--shadow-button-hover);transform:translateY(-1px)}.button-primary:focus-visible{outline:3px solid var(--fg-brand);outline-offset:3px}.button-primary:disabled{background:var(--border-default);box-shadow:none;cursor:not-allowed;transform:none}.alert{padding:16px 20px;border-radius:var(--radius-md);border:1px solid;font-size:var(--fs-small);line-height:var(--lh-body);margin-top:16px;word-break:break-word}.alert-success{background:#eaf5ea;border-color:#b8d8b8;color:#1a4a1a}@media(prefers-color-scheme:dark){.alert-success{background:#1a2e1a;border-color:#2d4a2d;color:#9ccf9c}}.alert-danger{background:#fbeaea;border-color:#e0b8b8;color:#7a2020}@media(prefers-color-scheme:dark){.alert-danger{background:#2e1a1a;border-color:#4a2d2d;color:#d49c9c}}.alert-info{background:var(--bg-brand-soft);border-color:var(--border-brand-subtle);color:var(--fg-brand-strong)}.payment-links{display:grid;gap:12px;margin-top:16px}.payment-link{display:flex;align-items:center;gap:12px;padding:14px 20px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-surface);font-size:var(--fs-small);font-weight:600;color:var(--fg-brand-strong);text-decoration:none;transition:border-color .2s ease,box-shadow .2s ease}.payment-link:hover{border-color:var(--fg-brand);box-shadow:var(--shadow-card)}.confirmation-card{text-align:center;padding:40px 24px}.confirmation-card h2{color:var(--fg-brand-strong);margin-bottom:12px}.confirmation-card p{color:var(--fg-muted);font-size:var(--fs-small);max-width:400px;margin:0 auto 24px}.confirmation-card .booking-ref{font-family:var(--font-heading);color:var(--fg-heading);margin-bottom:24px}.site-footer{padding:40px 24px;text-align:center;border-top:1px solid var(--border-default);font-size:var(--fs-caption);color:var(--fg-muted)}.site-footer a{color:var(--fg-brand)}.loading-spinner{width:24px;height:24px;border:3px solid var(--border-default);border-top-color:var(--fg-brand);border-radius:50%;animation:spin .6s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.visually-hidden:where(:not(:focus-within,:active)){position:absolute!important;clip-path:inset(50%)!important;overflow:hidden!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;white-space:nowrap!important}[aria-live]{font-size:var(--fs-small);min-height:1.5em}
