
.cgi-demo-modal[hidden]{display:none}
.cgi-demo-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:flex-start;justify-content:center;overflow:hidden}
.cgi-demo-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6)}
.cgi-demo-dialog{position:relative;background:#fff;width:100%;height:100%;max-height:100vh;margin:0;overflow-y:auto}
/* top bar */
.cgi-demo-bar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb;background:#fff}
.cgi-demo-bartitle{flex:1;text-align:left;font-weight:600;font-size:1rem;color:#111827}
@media(min-width:640px){.cgi-demo-bartitle{text-align:center}}
.cgi-demo-x{background:none;border:0;border-radius:.5rem;width:32px;height:32px;line-height:1;cursor:pointer;color:#6b7280;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.cgi-demo-x:hover{background:#f3f4f6;color:#111827}
.cgi-demo-xi{font-size:1.25rem;line-height:1;font-weight:400}/* text glyph: an svg here was rendered 0-width no matter what (unexplained), so no svg */
.cgi-demo-inner{max-width:1100px;margin:0 auto;display:grid;gap:2rem 4rem;padding:2.5rem 1.5rem 4rem}
@media(min-width:1024px){.cgi-demo-inner{grid-template-columns:minmax(0,1fr) minmax(0,30rem)}}
.cgi-demo-left h3{font-family:var(--cgi-font-display,sans-serif);font-weight:700;font-size:clamp(1.5rem,1rem + 1.6vw,1.875rem);line-height:1.333;margin:0 0 1rem}
.cgi-demo-left p,.cgi-single-content .cgi-demo-left p{margin:.5rem 0;font-size:1rem;line-height:1.75;color:#4b5563}
.cgi-demo-left ul,.cgi-demo-left li,.cgi-single-content .cgi-demo-left :is(ul,li){font-size:1rem;line-height:1.75}
.cgi-demo-left li,.cgi-single-content .cgi-demo-left li{margin:.25rem 0 .5rem}
.cgi-single-content .cgi-demo-left .cgi-demo-b{margin:1.5rem 0 0}
.cgi-demo-left .cgi-demo-b{font-weight:700;margin-top:1.5rem;color:#111827}
.cgi-demo-left ul{margin:.5rem 0 0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.4rem;line-height:1.5;color:#4b5563}
.cgi-demo-right{align-self:start}
/* reference right rail: 16px/700 centered headings over a 24rem column */
.cgi-demo-right h4{font-family:var(--cgi-font-body,sans-serif);font-weight:700;font-size:1rem;line-height:1.5rem;text-align:center;margin:0 0 .5rem}
.cgi-demo-right h4.cgi-demo-h4b{margin-top:2rem}
/* modal variant matches the reference fullscreen layout: full width, px-16, wide left col + 24rem rail */
@media(min-width:1024px){
	.cgi-demo-modal .cgi-demo-inner{max-width:none;grid-template-columns:minmax(0,1fr) 24rem;gap:2rem 5.5rem;padding:2.5rem 4rem 4rem}
	.cgi-demo-modal .cgi-demo-left{max-width:52rem}
}
/* reference mobile order: intro (h3 + first p) → form → remaining copy */
@media(max-width:1023px){
	.cgi-demo-left{display:contents}
	.cgi-demo-left>h3{order:-3;margin-bottom:0}
	.cgi-demo-left>h3+p{order:-2;margin:0}
	.cgi-demo-right{order:-1}
}
.cgi-cal-tz{color:#6b7280;font-size:.9rem;margin:.25rem 0 1rem}
/* calendar */
.cgi-demo-cal{position:absolute;width:0;height:0;opacity:0;pointer-events:none}
.cgi-demo-inner .flatpickr-calendar.inline{box-shadow:none;width:100%;max-width:100%;margin:0 0 1rem}
/* reference calendar: compact 28px day cells spread across the rail, adjacent-month days hidden */
.cgi-demo-inner .flatpickr-days,.cgi-demo-inner .dayContainer{width:100%;max-width:100%;min-width:0}
.cgi-demo-inner .dayContainer{display:grid;grid-template-columns:repeat(7,1fr);justify-items:center}
.cgi-demo-inner .flatpickr-day{width:28px;max-width:28px;height:28px;line-height:28px;font-size:14px;margin:8px 0;color:#171717}
/* the base #171717 above outranks flatpickr's own .selected{color:#fff} — the active day must stay white on its blue pill in BOTH themes (dark had its own rule at the bottom, light did not) */
.cgi-demo-inner .flatpickr-day.selected,.cgi-demo-inner .flatpickr-day.selected:hover{color:#fff}
.cgi-demo-inner .flatpickr-day.flatpickr-disabled{color:#a3a3a3}
.cgi-demo-inner .flatpickr-day.prevMonthDay,.cgi-demo-inner .flatpickr-day.nextMonthDay{visibility:hidden}
.cgi-demo-inner .flatpickr-current-month{font-size:1.125rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.3rem;width:100%;left:0;padding-top:0}
.cgi-demo-inner .flatpickr-current-month .numInputWrapper{width:3.2em}
.cgi-demo-inner .flatpickr-current-month input.cur-year{color:#171717;font-weight:600}
.cgi-demo-inner .flatpickr-monthDropdown-months{appearance:none;-webkit-appearance:none;border:0;background:none;font:inherit;font-weight:600}
.cgi-demo-inner .flatpickr-day.today.flatpickr-disabled{border-color:transparent}
.cgi-demo-inner .numInputWrapper span{display:none}
.cgi-demo-inner span.flatpickr-weekday{font-size:.8125rem;color:#737373}
.cgi-demo-inner .flatpickr-current-month,.cgi-demo-inner .flatpickr-current-month input.cur-year{color:#171717}
.cgi-demo-slots{margin-bottom:.5rem}
/* product chips */
.cgi-demo-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin:.75rem 0 0}
.cgi-demo-chips{justify-content:center}
.cgi-demo-chip{border:1px solid #e5e5e5;background:#fff;color:#737373;border-radius:9999px;padding:.6875rem 1rem;font-size:1rem;line-height:1.5rem;font-weight:500;cursor:pointer;transition:all .15s}
.cgi-demo-chip:hover{border-color:#0ea5e9;color:#0ea5e9}
.cgi-demo-chip.on{background:#0ea5e9;border-color:#0ea5e9;color:#fff}
/* fields (step 2) */
.cgi-demo-field{display:block;margin-top:1rem}
.cgi-demo-field>span{display:block;font-size:.875rem;font-weight:500;color:#404040;margin-bottom:.35rem}
.cgi-demo-field>span i{color:#dc2626;font-style:normal}
.cgi-demo-field input,.cgi-demo-field select{width:100%;padding:.5625rem .875rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;line-height:1.5rem;background:#fff;color:#171717}
.cgi-demo-inner .cgi-demo-field input:focus,.cgi-demo-inner .cgi-demo-field select:focus{outline:none!important;box-shadow:0 0 0 2px #0ea5e9!important;border-color:transparent!important}/* prod sky focus ring — ancestor-prefixed (0,3,1) + !important to beat the theme's input[type=text]:focus (0,2,1) */
/* phone number = prod MazPhoneNumberInput (flag + dial + chevron country button + searchable dropdown), same as the partnership form */
.cgi-pn-phonerow{position:relative;display:flex;align-items:stretch;background:#fff;border:1px solid #d1d5db;border-radius:6px}
.cgi-pn-phonerow:focus-within{box-shadow:0 0 0 2px #0ea5e9;border-color:transparent}
.cgi-pn-ccwrap{display:flex;align-items:center;gap:.375rem;padding:0 .5rem;flex:0 0 auto;color:#171717;font-size:1rem;cursor:pointer;background:transparent;border:0;font-family:inherit}
.cgi-pn-ccwrap:hover,.cgi-pn-ccwrap:focus,.cgi-pn-ccwrap:active{background:transparent!important;box-shadow:none!important;color:#171717!important}
.cgi-pn-ccopt:focus,.cgi-pn-ccopt:active{background:#f0f0f0!important;box-shadow:none!important}
.cgi-pn-ccopt.is-sel:focus,.cgi-pn-ccopt.is-sel:active{background:#0ea5e9!important}
.cgi-pn-ccwrap svg{width:1rem;height:1rem;color:#6b7280;flex:none}
.cgi-pn-flag{flex:none;display:inline-flex;align-items:center;line-height:1}
.cgi-pn-flagimg{display:block;width:20px;height:14px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.cgi-pn-dial{color:#171717}
.cgi-demo-field .cgi-pn-phonerow input[name=phone]{flex:1;min-width:0;width:auto;border:0!important;box-shadow:none!important;background:transparent!important;border-radius:0 6px 6px 0}
.cgi-pn-ccmenu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:19rem;max-width:calc(100vw - 3rem);background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 10px 25px -5px rgba(0,0,0,.15),0 8px 10px -6px rgba(0,0,0,.1);display:flex;flex-direction:column;overflow:hidden}
.cgi-pn-ccmenu[hidden]{display:none}
.cgi-pn-ccsearch{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;border-bottom:1px solid #f3f4f6;color:#9ca3af}
.cgi-pn-ccsearch svg{width:1.125rem;height:1.125rem;flex:none}
.cgi-demo-field .cgi-pn-ccsearch-in{flex:1;min-width:0;width:auto;border:0!important;outline:0;box-shadow:none!important;background:transparent!important;padding:0!important;font-size:.9375rem;color:#111827}
.cgi-pn-ccmenu ul.cgi-pn-cclist{list-style:none;margin:0;padding:.25rem;max-height:15rem;overflow-y:auto}
.cgi-pn-ccopt{display:flex;align-items:center;gap:.625rem;width:100%;padding:.5rem .625rem;border:0;background:transparent;border-radius:.375rem;cursor:pointer;font-size:.9375rem;color:#171717;text-align:left;font-family:inherit}
.cgi-pn-ccopt:hover{background:#f0f0f0}
.cgi-pn-ccopt.is-sel{background:#0ea5e9}
.cgi-pn-ccopt.is-sel .cgi-pn-ccopt-name,.cgi-pn-ccopt.is-sel .cgi-pn-ccopt-dial{color:#fff}
.cgi-pn-ccopt-flag{flex:none;display:inline-flex;align-items:center;line-height:1}
.cgi-pn-ccopt-flag .cgi-pn-flagimg{width:20px;height:20px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.cgi-pn-ccopt-dial{flex:none;min-width:2.75rem;color:#6b7280}
.cgi-pn-ccopt-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#171717}
.cgi-pn-ccempty{margin:0;padding:1rem;text-align:center;color:#9ca3af;font-size:.9375rem}
html.cgi-dark .cgi-pn-phonerow{background:transparent;border-color:#404040}
html.cgi-dark .cgi-pn-ccwrap,html.cgi-dark .cgi-pn-dial{color:#fff!important}
html.cgi-dark .cgi-pn-ccmenu{background:#262626;border-color:#374151}
html.cgi-dark .cgi-pn-ccsearch{border-color:#374151}
html.cgi-dark .cgi-pn-ccsearch-in,html.cgi-dark .cgi-pn-ccopt,html.cgi-dark .cgi-pn-ccopt-name,html.cgi-dark .cgi-pn-ccopt-dial{color:#e5e7eb}
html.cgi-dark .cgi-pn-ccopt:hover{background:#374151}
html.cgi-dark .cgi-pn-ccopt.is-sel{background:#0284c7;color:#fff}
/* buttons */
.cgi-demo-next,.cgi-demo-submit{margin-top:1.5rem;background:#0ea5e9;color:#fff;border:0;border-radius:6px;padding:.75rem 1.5rem;font-size:1rem;line-height:1.5rem;font-weight:500;cursor:pointer;transition:background .15s}
.cgi-demo-next{width:100%}
.cgi-demo-next:hover,.cgi-demo-submit:hover{background:#0284c7}
/* reference actions row fills the rail: Back (icon+label) fixed, submit flex-1 */
.cgi-demo-actions{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}
.cgi-demo-actions .cgi-demo-submit{flex:1;margin-top:0}/* in the flex row Back has no top margin — drop the submit's 1.5rem so both align vertically */
.cgi-demo-back{display:inline-flex;align-items:center;gap:.5rem;background:none;border:0;color:#404040;font-size:1rem;font-weight:500;line-height:1.5rem;cursor:pointer;padding:.75rem 1rem;border-radius:6px}
.cgi-demo-back:hover{background:#f3f4f6}
.cgi-demo-back:hover{color:#111827}
.cgi-demo-msg{font-size:.85rem;margin:.75rem 0 0;min-height:1em;color:#6b7280}
.cgi-demo-msg.err{color:#dc2626}
/* reference completed screen: content invisible, centered 48px pre-line message (+ black pill Close in the modal) */
.cgi-demo-submitted .cgi-demo-inner{visibility:hidden}
.cgi-demo-complete{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;background:#fff;z-index:5}
.cgi-demo-done-msg{font-size:clamp(1.75rem,1rem + 2.5vw,3rem);line-height:1.2;white-space:pre-line;margin:0 0 3rem;color:#171717}
.cgi-demo-done-close{background:#171717;color:#fff;border:0;border-radius:9999px;padding:.875rem 1.75rem;font-size:1.125rem;font-weight:500;cursor:pointer}
.cgi-demo-done-close:hover{background:#262626}
.cgi-demo-inline{position:relative}
/* inline variant (booking-landing case pages) */
.cgi-demo-inline{display:block;background:#fff;margin:2.5rem 0}
/* prod embeds the booking full-container-width (not inside the 60rem reading column) */
.cgi-single-content .cgi-demo-inline{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.cgi-single-content .cgi-demo-inline .cgi-demo-inner{max-width:1536px;margin:0 auto;padding-left:2rem;padding-right:2rem}
.cgi-demo-inline .cgi-demo-inner{padding:2.5rem 1.5rem}
/* ============ DARK (reference: gray-900 card, white intro, prose-invert gray-300 body) ============ */
html.cgi-dark .cgi-demo-dialog{background:#171717;color:#d1d5db}
html.cgi-dark .cgi-demo-bar{background:#171717;border-bottom-color:#262626}
html.cgi-dark .cgi-demo-bartitle{color:#fff}
html.cgi-dark .cgi-demo-x{color:#a3a3a3}
html.cgi-dark .cgi-demo-x:hover{background:#262626;color:#fff}
html.cgi-dark .cgi-demo-left h3{color:#fff}
html.cgi-dark .cgi-demo-left p,html.cgi-dark .cgi-demo-left ul{color:#d1d5db}
html.cgi-dark .cgi-demo-left>h3+p{color:#fff}
html.cgi-dark .cgi-demo-left .cgi-demo-b{color:#d1d5db}
html.cgi-dark .cgi-demo-right h4{color:#fafafa}
html.cgi-dark .cgi-cal-tz{color:#a3a3a3}
html.cgi-dark .cgi-demo-inner .flatpickr-day{color:#fff}
html.cgi-dark .cgi-demo-inner .flatpickr-day.flatpickr-disabled{color:#525252}
html.cgi-dark .cgi-demo-inner .flatpickr-day.selected{color:#fff}
html.cgi-dark .cgi-demo-inner .flatpickr-current-month,html.cgi-dark .cgi-demo-inner .flatpickr-current-month input.cur-year{color:#f5f5f5}
html.cgi-dark .cgi-demo-inner span.flatpickr-weekday{color:#bae6fd}
html.cgi-dark .cgi-demo-inner .cgi-cal-select{background:#171717;border-color:#525252;color:#a3a3a3}
html.cgi-dark .cgi-demo-field>span{color:#e5e5e5}
html.cgi-dark .cgi-demo-field input,html.cgi-dark .cgi-demo-field select{background:transparent;border-color:#404040;color:#fff}/* prod dark field ring = rgb(64,64,64) */
html.cgi-dark .cgi-demo-chip{background:transparent;border-color:#e5e5e5;color:#a3a3a3}
html.cgi-dark .cgi-demo-chip:hover{border-color:#38bdf8;color:#38bdf8}
html.cgi-dark .cgi-demo-chip.on{background:#38bdf8;border-color:#38bdf8;color:#171717}
html.cgi-dark .cgi-demo-next,html.cgi-dark .cgi-demo-submit{background:#38bdf8;color:#171717}
html.cgi-dark .cgi-demo-next:hover,html.cgi-dark .cgi-demo-submit:hover{background:#0ea5e9;color:#171717}
html.cgi-dark .cgi-demo-back{color:#e5e5e5;background:#262626}
html.cgi-dark .cgi-demo-back:hover{color:#fff;background:#333}
html.cgi-dark .cgi-demo-complete{background:#171717}
html.cgi-dark .cgi-demo-done-msg{color:#fff}
html.cgi-dark .cgi-demo-done-close{background:#fff;color:#171717}
html.cgi-dark .cgi-demo-done-close:hover{background:#e5e5e5}
html.cgi-dark .cgi-demo-inline{background:#0a0a0a;border-color:#262626}
