:root{--bg:#f5f1e8;--paper:#fffdf9;--ink:#173746;--text:#33494f;--muted:#7c8787;--line:#e2dbd0;--gold:#b6945b;--gold-soft:#f4ecdf;--shadow:0 24px 70px rgba(35,48,48,.10);--shadow-sm:0 10px 30px rgba(35,48,48,.06)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:radial-gradient(circle at top right,#fffaf0 0,transparent 36%),linear-gradient(180deg,#f8f5ef 0,#f2eee6 100%);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}.public-shell{width:min(1040px,calc(100% - 32px));margin:0 auto;padding:22px 0 30px}.public-header{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(23,55,70,.12);margin-bottom:22px}.public-brand{font-family:Georgia,"Times New Roman",serif;letter-spacing:.34em;color:var(--ink);font-size:21px;font-weight:700}.public-event-name{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:#847965;font-weight:800;text-align:right}.public-card{background:rgba(255,253,249,.94);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:30px}.reservation-card{padding:32px}.compact-title{display:flex;align-items:end;justify-content:space-between;gap:18px;padding-bottom:20px;border-bottom:1px solid #e8e1d6;margin-bottom:24px}.compact-title span{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:900}.compact-title h1{font-family:Georgia,"Times New Roman",serif;font-size:38px;line-height:1;margin:0;color:var(--ink);font-weight:400}.reservation-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full-field,.form-section,.guest-box,.submit-row{grid-column:1/-1}.form-section{background:#faf7f1;border:1px solid #e3dacd;border-radius:20px;padding:20px}.form-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.form-section-head strong{font-family:Georgia,serif;font-size:19px;font-weight:400;color:var(--ink)}.form-section-head span{font-size:11px;color:#897e6e}.date-session-stack{display:grid;gap:13px}.date-session-row{display:grid;grid-template-columns:190px minmax(0,1fr);gap:14px;align-items:stretch}.date-chip{border-right:1px solid #dfd5c6;padding:10px 16px 10px 2px;display:flex;flex-direction:column;justify-content:center}.date-chip strong{font-family:Georgia,serif;font-size:17px;font-weight:400;color:var(--ink)}.date-chip small{font-size:10px;color:#8b8b84;margin-top:4px}.session-grid.compact{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.session-card{appearance:none;border:1px solid #dfd8ce;background:#fff;border-radius:13px;padding:13px 12px;text-align:left;cursor:pointer;color:var(--ink);transition:.18s}.session-card:hover,.session-card.selected{border-color:#b99a67;background:#f8f1e6;box-shadow:inset 0 0 0 1px #b99a67,0 8px 20px rgba(45,52,49,.06)}.session-card.is-full{opacity:.4;cursor:not-allowed}.session-card .time{display:block;font-family:Georgia,serif;font-size:14px}.session-card .capacity{display:block;font-size:9px;color:#89908d;margin-top:5px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field>label{font-size:11px;color:#5f6d70;font-weight:750}.field input,.field textarea,.field select{width:100%;border:1px solid #ddd6cb;background:#fff;color:var(--ink);border-radius:13px;padding:14px 15px;font:inherit;font-size:13px;outline:none;transition:.16s}.field input:focus,.field textarea:focus,.field select:focus{border-color:#b6945b;box-shadow:0 0 0 3px rgba(182,148,91,.11)}.field textarea{min-height:110px;resize:vertical}.choice-row{display:flex;gap:10px;flex-wrap:wrap}.choice-pills label{position:relative;cursor:pointer}.choice-pills input{position:absolute;opacity:0;pointer-events:none}.choice-pills span{display:block;border:1px solid #ddd6cb;border-radius:999px;background:#fff;padding:11px 14px;font-size:11px;color:#667476;transition:.16s}.choice-pills input:checked+span{background:var(--gold-soft);border-color:#b99a67;color:var(--ink);box-shadow:inset 0 0 0 1px #b99a67}.guest-box{border:1px solid #dfd4c2;background:#f8f4ec;border-radius:18px;padding:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.guest-box[hidden]{display:none}.guest-heading{grid-column:1/-1}.guest-heading h3{font-family:Georgia,serif;font-weight:400;margin:0;color:var(--ink)}.premium-check{display:flex!important;align-items:flex-start!important;gap:10px!important;border:1px solid #dfd7cb;background:#fbf8f2;border-radius:14px;padding:14px 15px}.premium-check input{width:auto!important;margin-top:2px;accent-color:var(--ink)}.premium-check span{font-size:11px;line-height:1.5}.submit-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:4px}.privacy-note{font-size:10px;color:#92958f;max-width:450px;line-height:1.5}.primary,.secondary{appearance:none;text-decoration:none;border-radius:999px;padding:14px 20px;font-weight:800;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:18px;justify-content:center}.primary{border:1px solid var(--ink);background:var(--ink);color:#fff;box-shadow:0 12px 26px rgba(23,55,70,.16)}.secondary{border:1px solid #d5cdc1;background:#fff;color:var(--ink)}.minimal-footer{display:flex;justify-content:space-between;align-items:center;padding:22px 2px;color:#8a8a83}.minimal-footer span{font-family:Georgia,serif;letter-spacing:.24em;color:var(--ink);font-size:11px}.minimal-footer small{font-family:Georgia,serif;font-style:italic}.notice{padding:18px 20px;border-radius:14px;background:#fff;border:1px solid #dfd8cd;color:#526163;box-shadow:var(--shadow-sm)}.notice.error{background:#fff2f2;border-color:#ead4d4;color:#8a474d}.site-shell.narrow{width:min(720px,calc(100% - 32px));margin:0 auto;padding:90px 0}.narrow h1{font-family:Georgia,serif;color:var(--ink);font-size:48px;font-weight:400}.eyebrow{color:var(--gold);letter-spacing:.2em;font-size:10px;font-weight:900}.success-mark{width:62px;height:62px;border-radius:50%;background:#f0e5d3;color:#745d3c;display:grid;place-items:center;font-size:32px;font-weight:900}.code{font-family:monospace;color:#8a6f45;font-size:20px;margin:28px 0}.inline{display:inline-flex}.ticket-page{display:grid;place-items:center;min-height:100vh;padding:24px;background:#f5f1e8}.ticket-shell{width:min(1200px,100%);display:grid;gap:20px}.ticket-image{width:100%;height:auto;border-radius:18px;box-shadow:0 30px 80px rgba(44,50,49,.18);background:#fff}.ticket-actions{display:flex;gap:12px;justify-content:center}@media(max-width:820px){.date-session-row{grid-template-columns:1fr}.date-chip{border-right:0;border-bottom:1px solid #dfd5c6;padding:2px 0 10px}.session-grid.compact{grid-template-columns:1fr 1fr}.reservation-form{grid-template-columns:1fr}.guest-box{grid-template-columns:1fr}.public-event-name{max-width:55%}}@media(max-width:560px){.public-shell{width:min(100% - 18px,1040px);padding-top:10px}.public-header{margin-bottom:12px;min-height:62px}.public-brand{font-size:18px}.public-event-name{font-size:8px}.reservation-card{padding:18px;border-radius:20px}.compact-title{align-items:flex-start;flex-direction:column;gap:8px}.compact-title h1{font-size:31px}.form-section{padding:14px}.form-section-head{align-items:flex-start;flex-direction:column;gap:4px}.session-grid.compact{grid-template-columns:1fr}.submit-row{align-items:stretch;flex-direction:column}.submit-row .primary{width:100%}.minimal-footer{padding:18px 4px}.ticket-actions{flex-direction:column}}
.site-shell{width:min(1040px,calc(100% - 32px));margin:0 auto;padding:50px 0}

/* v1.0.7 — Step-by-step premium reservation */
.step-booking-page{min-height:100vh;background:linear-gradient(180deg,#f9f6ef 0,#f3eee5 100%)}.booking-shell{width:min(920px,calc(100% - 28px));margin:0 auto;padding:18px 0 28px}.booking-header{height:68px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid rgba(23,55,70,.12);margin-bottom:18px}.booking-brand{font-family:Georgia,"Times New Roman",serif;letter-spacing:.34em;color:var(--ink);font-size:21px;font-weight:700}.booking-title{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#887d6d;font-weight:800;text-align:right}.booking-card{background:rgba(255,253,249,.97);border:1px solid #e2dbcf;border-radius:26px;box-shadow:0 26px 80px rgba(43,52,51,.10);overflow:hidden}.step-booking-card{padding:0}.booking-card-head{padding:27px 30px 22px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;border-bottom:1px solid #e9e2d7}.booking-kicker{display:block;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:900;margin-bottom:7px}.booking-card-head h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:34px;line-height:1;color:var(--ink);font-weight:400}.booking-progress-copy{text-align:right}.booking-progress-copy strong{display:block;font-family:Georgia,serif;color:var(--ink);font-size:19px;font-weight:400}.booking-progress-copy span{display:block;color:var(--muted);font-size:9px;margin-top:3px}.stepper{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr auto;align-items:center;padding:18px 30px;background:#fbf8f2;border-bottom:1px solid #e9e2d7}.stepper-item{display:flex;align-items:center;gap:8px;color:#9a9d99;min-width:0}.stepper-item span{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;border:1px solid #d9d3c8;background:#fff;font-size:10px;font-weight:900;transition:.2s}.stepper-item small{font-size:9px;font-weight:800;white-space:nowrap}.stepper-line{height:1px;background:#ddd7cd;margin:0 10px;position:relative}.stepper-line:after{content:"";position:absolute;left:0;top:0;height:1px;width:0;background:var(--gold);transition:.25s}.stepper-item.active{color:var(--ink)}.stepper-item.active span{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:0 7px 16px rgba(23,55,70,.16)}.stepper-item.completed{color:#82745f}.stepper-item.completed span{background:var(--gold-soft);border-color:#d8bd8e;color:#866c43}.stepper-item.completed+.stepper-line:after{width:100%}.step-form{display:block!important}.form-step{display:none;padding:30px}.form-step.active{display:block;animation:stepIn .22s ease}@keyframes stepIn{from{opacity:.25;transform:translateY(5px)}to{opacity:1;transform:none}}.step-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:24px}.step-head>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#f3ecdf;border:1px solid #e5d7be;color:#98784b;font-size:9px;font-weight:900;letter-spacing:.08em;flex:0 0 auto}.step-head h2{font-family:Georgia,"Times New Roman",serif;color:var(--ink);font-size:24px;font-weight:400;line-height:1.1;margin:1px 0 5px}.step-head p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.date-session-stack{display:grid;gap:14px}.date-session-row{display:grid;grid-template-columns:170px minmax(0,1fr);gap:14px;padding:14px;border:1px solid #e4ddd2;background:#fcfaf6;border-radius:18px}.date-chip{border-right:1px solid #e1d8ca;padding:7px 14px 7px 3px;display:flex;flex-direction:column;justify-content:center}.date-chip strong{font-family:Georgia,"Times New Roman",serif;font-size:17px;font-weight:400;color:var(--ink)}.date-chip small{font-size:9px;color:#96938d;margin-top:4px}.session-grid.compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.session-card{appearance:none;border:1px solid #ddd6cb;background:#fff;border-radius:13px;padding:13px 14px;text-align:left;cursor:pointer;color:var(--ink);transition:.16s;min-height:62px}.session-card:hover{border-color:#c7ab7b;transform:translateY(-1px)}.session-card.selected{border-color:#b6945b;background:#f5ecdd;box-shadow:inset 0 0 0 1px #b6945b,0 9px 22px rgba(45,52,49,.06)}.session-card.is-full{opacity:.42;cursor:not-allowed;transform:none}.session-card .time{display:block;font-family:Georgia,serif;font-size:14px}.session-card .capacity{display:block;font-size:9px;color:#89908d;margin-top:5px}.step-error{margin-top:12px;padding:10px 12px;border-radius:11px;background:#fff1f1;border:1px solid #ead2d2;color:#9c5258;font-size:10px}.step-error[hidden]{display:none}.step-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.step-fields-grid.one-column{grid-template-columns:1fr}.step-fields-grid .custom-field{min-width:0}.step-form .field{display:flex;flex-direction:column;gap:8px;min-width:0}.step-form .field>label{font-size:10px;color:#5f6d70;font-weight:800}.step-form .field input,.step-form .field textarea,.step-form .field select{width:100%;border:1px solid #ded7cc;background:#fff;color:var(--ink);border-radius:13px;padding:14px 15px;font:inherit;font-size:13px;outline:none;transition:.16s}.step-form .field input:focus,.step-form .field textarea:focus,.step-form .field select:focus{border-color:#b6945b;box-shadow:0 0 0 3px rgba(182,148,91,.10)}.step-form .field textarea{min-height:110px;resize:vertical}.attendance-choice{display:grid!important;grid-template-columns:1fr 1fr;gap:10px!important}.attendance-choice label{width:100%}.attendance-choice span{border-radius:15px!important;padding:15px!important;min-height:74px;display:flex!important;flex-direction:column;justify-content:center}.attendance-choice strong{display:block;font-family:Georgia,serif;font-size:15px;font-weight:400}.attendance-choice small{display:block;margin-top:4px;font-size:9px;color:#8c908c}.choice-pills input:checked+span small{color:#6f6a60}.guest-box{border:1px solid #dfd3c0;background:#f8f4ec;border-radius:18px;padding:17px;display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.guest-box[hidden]{display:none}.guest-heading{grid-column:1/-1;border-bottom:1px solid #e5dccf;padding-bottom:11px;margin-bottom:1px}.guest-heading span{font-family:Georgia,serif;color:var(--ink);font-size:17px}.guest-heading p{margin:4px 0 0;color:var(--muted);font-size:9px}.premium-check{display:flex!important;align-items:flex-start!important;gap:10px!important;border:1px solid #dfd7cb;background:#fbf8f2;border-radius:14px;padding:14px 15px}.premium-check input{width:auto!important;margin-top:2px;accent-color:var(--ink)}.premium-check span{font-size:10px;line-height:1.5}.step-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:26px;padding-top:19px;border-top:1px solid #ebe5dc}.step-actions.end{justify-content:flex-end}.step-actions .primary,.step-actions .secondary{min-width:148px}.step-actions .primary.loading{opacity:.7;cursor:wait}.booking-summary{border:1px solid #dfd6c8;border-radius:20px;background:#faf7f1;overflow:hidden}.summary-main{padding:20px 21px;border-bottom:1px solid #e4dccf;background:#f5eddf}.summary-main span,.summary-grid span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.14em;color:#9b845f;font-weight:900}.summary-main strong{display:block;margin-top:6px;font-family:Georgia,serif;font-size:22px;font-weight:400;color:var(--ink)}.summary-grid{display:grid;grid-template-columns:1fr 1fr}.summary-grid>div{padding:17px 20px;border-right:1px solid #e8e1d7;border-bottom:1px solid #e8e1d7}.summary-grid>div:nth-child(2n){border-right:0}.summary-grid>div:nth-last-child(-n+2){border-bottom:0}.summary-grid strong{display:block;margin-top:5px;font-size:12px;color:var(--ink);word-break:break-word}.final-privacy{margin-top:14px;padding:0 3px}.minimal-footer{display:flex;justify-content:space-between;align-items:center;padding:18px 3px;color:#8a8a83}.minimal-footer span{font-family:Georgia,serif;letter-spacing:.24em;color:var(--ink);font-size:10px}.minimal-footer small{font-family:Georgia,serif;font-style:italic;font-size:10px}
@media(max-width:760px){.booking-shell{width:min(100% - 16px,920px);padding-top:8px}.booking-header{height:58px;margin-bottom:10px}.booking-brand{font-size:18px}.booking-title{font-size:8px;max-width:60%}.booking-card{border-radius:20px}.booking-card-head{padding:20px 18px 17px}.booking-card-head h1{font-size:29px}.booking-progress-copy strong{font-size:16px}.stepper{padding:13px 15px;grid-template-columns:auto 1fr auto 1fr auto 1fr auto}.stepper-item{gap:0}.stepper-item span{width:26px;height:26px}.stepper-item small{display:none}.stepper-line{margin:0 6px}.form-step{padding:21px 17px}.step-head{margin-bottom:18px}.step-head h2{font-size:21px}.date-session-row{grid-template-columns:1fr;padding:12px}.date-chip{border-right:0;border-bottom:1px solid #e1d8ca;padding:2px 0 10px}.session-grid.compact{grid-template-columns:1fr 1fr}.step-fields-grid{grid-template-columns:1fr}.guest-box{grid-template-columns:1fr}.attendance-choice{grid-template-columns:1fr!important}.step-actions{align-items:stretch}.step-actions .primary,.step-actions .secondary{min-width:0;flex:1;padding-left:14px;padding-right:14px}.summary-grid{grid-template-columns:1fr}.summary-grid>div{border-right:0!important;border-bottom:1px solid #e8e1d7!important}.summary-grid>div:last-child{border-bottom:0!important}.minimal-footer{padding:16px 4px}}
@media(max-width:430px){.session-grid.compact{grid-template-columns:1fr}.step-actions{flex-direction:column-reverse}.step-actions.end{flex-direction:column}.step-actions .primary,.step-actions .secondary{width:100%}.booking-card-head{align-items:flex-start}.booking-progress-copy{padding-top:3px}}

/* v1.0.15 - duplicate reservation feedback */
.reservation-error-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;opacity:0;pointer-events:none;transition:.18s ease}
.reservation-error-modal.is-open{opacity:1;pointer-events:auto}
.reservation-error-backdrop{position:absolute;inset:0;background:rgba(18,37,45,.42);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.reservation-error-card{position:relative;width:min(470px,100%);background:#fffdf9;border:1px solid #e1d7c7;border-radius:24px;box-shadow:0 28px 90px rgba(23,55,70,.22);padding:34px 32px 30px;text-align:center;transform:translateY(8px) scale(.985);transition:.18s ease}
.reservation-error-modal.is-open .reservation-error-card{transform:none}
.reservation-error-close{position:absolute;right:16px;top:14px;width:34px;height:34px;border:0;border-radius:50%;background:#f4efe6;color:#6e756f;font-size:22px;line-height:1;cursor:pointer}
.reservation-error-icon{width:52px;height:52px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:#f7ece4;border:1px solid #e8d2c1;color:#9b6648;font-family:Georgia,serif;font-size:28px}
.reservation-error-kicker{display:block;color:var(--gold);font-size:9px;letter-spacing:.16em;text-transform:uppercase;font-weight:900;margin-bottom:9px}
.reservation-error-card h2{margin:0;color:var(--ink);font-family:Georgia,'Times New Roman',serif;font-size:27px;line-height:1.15;font-weight:400}
.reservation-error-card p{margin:13px auto 22px;max-width:380px;color:#6f7978;font-size:12px;line-height:1.65}
.reservation-error-action{min-width:150px}
@media(max-width:560px){.reservation-error-card{padding:30px 22px 24px;border-radius:20px}.reservation-error-card h2{font-size:23px}}
