
:root { color-scheme: light; --ink:#17211f; --muted:#5e6e69; --line:#dfe7e4; --brand:#173b35; --brand-2:#28675c; --sage:#dcebe6; --sage-light:#f3f8f6; --danger:#a53535; --shadow:0 18px 50px rgba(19,47,42,.08); --header:82px; --sidebar:246px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#f7faf9; -webkit-font-smoothing:antialiased; }
a { color:var(--brand-2); }
button,input,select,textarea { font:inherit; }
.material-icon-sprite { position:absolute; width:0; height:0; overflow:hidden; pointer-events:none; }
.material-icon { display:block; width:20px; height:20px; flex:0 0 auto; fill:currentColor; }

.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.site-header { position: sticky; z-index: 20; top: 0; color: #fff; background: rgba(32, 39, 40, .96); backdrop-filter: blur(12px); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.header-inner { display: grid; width: min(1240px, calc(100% - 2rem)); min-height: 82px; grid-template-columns: 230px 1fr auto; align-items: center; gap: 2rem; margin: auto; }
.brand img { display: block; width: 220px; height: auto; }
.site-header nav { display: flex; align-items: center; justify-content: center; gap: clamp(.8rem, 1.8vw, 1.6rem); }
.site-header nav a { padding: .4rem 0; color: rgba(255, 255, 255, .82); font-size: .94rem; text-decoration: none; }
.site-header nav a:hover, .site-header nav a[aria-current="page"] { color: #fff; box-shadow: 0 2px #bd6c4a; }
.nav-dropdown { position: relative; }
.nav-dropdown > button { display: inline-flex; align-items: center; border: 0; padding: .4rem 0; color: rgba(255, 255, 255, .82); background: transparent; cursor: default; font-family: inherit; font-size: .94rem; }
.nav-dropdown > button .nav-dropdown-icon { width: 1.45rem; height: 1.45rem; margin-left: .2rem; vertical-align: -.38rem; }
.nav-dropdown > button:hover, .nav-dropdown:focus-within > button { color: #fff; }
.nav-dropdown > div { position: absolute; z-index: 50; top: 100%; left: 50%; display: grid; width: 270px; visibility: hidden; gap: .15rem; border: 1px solid rgba(255, 255, 255, .12); padding: .7rem; opacity: 0; background: #202728; box-shadow: 0 20px 60px rgba(32, 39, 40, .1); transform: translateX(-50%) translateY(-4px); pointer-events: none; transition: opacity .14s ease, transform .14s ease, visibility 0s linear .14s; }
.nav-dropdown:hover > div, .nav-dropdown:focus-within > div { visibility: visible; opacity: 1; transform: translateX(-50%); pointer-events: auto; transition-delay: 0s; }
.nav-dropdown > div a { display: flex; min-height: 42px; align-items: center; padding: .65rem .75rem; }
.mobile-menu { position: relative; display: none; }
.mobile-menu > summary { min-width: 48px; min-height: 44px; padding: .65rem .5rem; color: rgba(255, 255, 255, .85); cursor: pointer; list-style: none; font-size: .82rem; font-weight: 750; text-align: center; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu-icon { width: 1.75rem; height: 1.75rem; }
.mobile-menu-icon-close { display: none; }
.mobile-menu[open] .mobile-menu-icon-open { display: none; }
.mobile-menu[open] .mobile-menu-icon-close { display: inline-block; }
.site-header .mobile-menu-panel { position: fixed; z-index: 40; top: 82px; right: 1rem; display: grid; width: min(360px, calc(100vw - 2rem)); max-height: calc(100dvh - 98px); align-items: stretch; justify-content: stretch; gap: .15rem; overflow-y: auto; overscroll-behavior: contain; border: 1px solid rgba(255, 255, 255, .14); border-radius: 0 0 10px 10px; padding: .55rem; background: #171d1e; box-shadow: 0 24px 55px rgba(0, 0, 0, .34); }
.site-header .mobile-menu-panel > a, .site-header .mobile-nav-group > summary { display: flex; min-height: 44px; align-items: center; border-radius: 6px; padding: .62rem .8rem; color: rgba(255, 255, 255, .84); font-size: .98rem; font-weight: 650; text-decoration: none; }
.site-header .mobile-menu-panel > a:hover, .site-header .mobile-menu-panel > a:focus-visible, .site-header .mobile-nav-group > summary:hover, .site-header .mobile-nav-group > summary:focus-visible { color: #fff; background: rgba(255, 255, 255, .07); }
.mobile-nav-group { border-top: 1px solid transparent; border-bottom: 1px solid transparent; }
.mobile-nav-group > summary { justify-content: space-between; cursor: pointer; list-style: none; }
.mobile-nav-group > summary .material-icon { width: 1.35rem; height: 1.35rem; transition: transform .15s ease; }
.mobile-nav-group[open] { margin-block: .12rem; border-color: rgba(255, 255, 255, .1); padding-block: .12rem .35rem; }
.mobile-nav-group[open] > summary .material-icon { transform: rotate(180deg); }
.mobile-nav-submenu { display: grid; gap: .05rem; margin: 0 .45rem 0 .8rem; border-left: 2px solid rgba(197, 110, 73, .62); padding: .1rem 0 .1rem .7rem; }
.site-header .mobile-nav-submenu a { display: flex; min-height: 40px; align-items: center; border-radius: 5px; padding: .5rem .65rem; color: rgba(255, 255, 255, .7); font-size: .9rem; line-height: 1.25; text-decoration: none; }
.site-header .mobile-nav-submenu a:hover, .site-header .mobile-nav-submenu a:focus-visible { color: #fff; background: rgba(255, 255, 255, .07); }
.site-header .site-book-button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 14px; padding: .8rem 1.15rem; color: #fff; background: #bd6c4a; font-size: .94rem; font-weight: 700; line-height: 1.15; text-align: center; text-decoration: none; transition: transform .18s ease, background .18s ease; }
.site-header .site-book-button:hover { color: #fff; background: #925038; transform: translateY(-2px); }
@media (max-width: 900px) {
  .header-inner { grid-template-columns: 1fr auto auto; gap: .75rem; }
  .site-header .desktop-nav { display: none; }
  .mobile-menu { display: block; }
  .site-header .mobile-menu-panel { display: grid; }
}
@media (max-width: 620px) {
  .header-inner { min-height: 70px; }
  .brand img { width: 170px; }
  .mobile-menu > summary { min-width: 44px; }
  .site-header .mobile-menu-panel { top: 70px; max-height: calc(100dvh - 86px); }
  .site-header .site-book-button { min-height: 40px; font-size: .82rem; }
}

.booking-shell { min-height:calc(100vh - var(--header)); }
.booking-sidebar { position:fixed; top:var(--header); bottom:0; left:0; display:flex; width:var(--sidebar); overflow:auto; flex-direction:column; gap:5px; border-right:1px solid var(--line); padding:26px 18px; background:#fff; }
.signed-in-portal-nav { display:flex; min-height:0; flex:1; flex-direction:column; gap:16px; margin-top:12px; border-top:1px solid var(--line); padding-top:16px; }
.booking-sidebar nav { display:grid; gap:4px; }
.side-secondary-nav { margin-top:auto; border-top:1px solid var(--line); padding-top:16px; }
.side-link,.side-button { display:flex; align-items:center; gap:10px; width:100%; border:0; border-radius:9px; padding:11px 12px; color:var(--muted); background:transparent; font-size:13px; font-weight:650; text-align:left; text-decoration:none; cursor:pointer; }
.side-link:hover,.side-button:hover,.side-link.is-active { color:var(--brand); background:var(--sage); }
.side-nav-icon { width:21px; height:21px; }
.side-button { margin-top:auto; }
.signed-in-as { margin:8px 12px 0; color:var(--muted); font-size:11px; line-height:1.4; }
.booking-main { width:min(100% - var(--sidebar),1080px); margin-left:var(--sidebar); padding:42px clamp(24px,5vw,68px) 80px; }
.vacation-notice { display:grid; gap:12px; margin:0 0 28px; border:2px solid #0c5634; border-radius:12px; padding:17px 20px; color:#083f28; background:#9be8a8; box-shadow:0 8px 24px rgba(12,86,52,.14); font-size:15px; font-weight:600; line-height:1.55; }
.vacation-notice-message + .vacation-notice-message { border-top:1px solid #28764a; padding-top:12px; }
.vacation-notice p { margin:0 0 8px; }.vacation-notice p:last-child { margin-bottom:0; }
.vacation-notice ul,.vacation-notice ol { margin:7px 0; padding-left:22px; }
.vacation-notice a { color:#063b25; font-weight:800; text-decoration:underline; text-underline-offset:2px; }
.page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.eyebrow { margin:0 0 7px; color:var(--brand-2); font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
h1 { margin:0; font-size:clamp(32px,5vw,52px); letter-spacing:-.045em; line-height:1; }
.beta-note { max-width:760px; margin:-10px 0 26px; border-left:3px solid #d4a735; padding:9px 12px; color:#65501b; background:#fff9e7; font-size:12px; line-height:1.5; }
.beta-badge { flex:none; border:1px solid #b7cec6; border-radius:999px; padding:7px 11px; color:var(--brand); background:var(--sage); font-size:11px; font-weight:750; }
.card { border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--shadow); }
.loading-card,.unavailable,.success-card { padding:34px; }
.loading-card { display:flex; align-items:center; gap:14px; color:var(--muted); }
.spinner { width:22px; height:22px; border:3px solid var(--sage); border-top-color:var(--brand-2); border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
#booking-form { display:grid; gap:18px; }
.form-section { display:grid; grid-template-columns:42px minmax(0,1fr); gap:18px; padding:26px; }
#time-section,#contact-section,#time-pane { scroll-margin-top:calc(var(--header) + 18px); }
.section-number { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:#fff; background:var(--brand); font-weight:800; }
.section-body h2,.review-card h2,.success-card h2,.unavailable h2 { margin:2px 0 6px; font-size:21px; letter-spacing:-.025em; }
.section-body>p,.unavailable p { margin:0 0 20px; color:var(--muted); font-size:13px; line-height:1.55; }
.event-types { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:16px; }
.event-card { --event-accent:var(--brand); --event-card-icon-size:54px; container-type:inline-size; display:flex; min-width:0; flex-direction:column; border:1px solid color-mix(in srgb,var(--event-accent) 22%,var(--line)); border-radius:12px; padding:21px; background:#fff; box-shadow:0 8px 22px rgba(22,59,53,.055); }
.event-card-new { --event-accent:#50745f; }
.event-card-sf { --event-accent:#7a4a59; }
.event-card-remote { --event-accent:#4f6f87; }
.event-card-dc { --event-accent:#8a6938; }
.event-types.without-consult .event-card-remote { grid-column:1/-1; width:calc(50% - 8px); justify-self:center; }
.event-card-header { display:grid; grid-template-columns:minmax(0,1fr) var(--event-card-icon-size); align-items:start; gap:14px; }
.event-card-heading { min-width:0; }
.event-card-icon { display:block; width:var(--event-card-icon-size); height:var(--event-card-icon-size); border:1px solid color-mix(in srgb,var(--event-accent) 18%,var(--line)); border-radius:12px; object-fit:cover; object-position:center; vertical-align:top; background:#fff; box-shadow:0 5px 14px rgba(22,59,53,.1); }
.event-card-icon-zoom { border:0; border-radius:0; object-fit:contain; background:transparent; box-shadow:none; }
.event-card-label { margin:0 0 9px; color:var(--event-accent); font-size:18px; font-weight:850; letter-spacing:-.025em; line-height:1.2; }
.event-card h3 { margin:0 0 9px; color:var(--ink); font-size:11px; letter-spacing:-.025em; line-height:1.2; }
.event-card-copy { flex:1; margin:0 0 18px; color:var(--muted); font-size:12.5px; line-height:1.55; }
.event-buttons { display:grid; grid-template-columns:repeat(auto-fit,minmax(66px,1fr)); gap:7px; }
.event-buttons.is-single { grid-template-columns:1fr; }
.event-choice { min-height:46px; border:0; border-radius:8px; padding:9px 7px; color:#fff; background:var(--event-accent); font-size:12px; font-weight:750; line-height:1.25; text-align:center; cursor:pointer; }
.event-choice:hover { background:color-mix(in srgb,var(--event-accent) 88%,#000); }
.event-choice:focus-visible { outline:3px solid color-mix(in srgb,var(--event-accent) 30%,transparent); outline-offset:2px; }
.event-choice.is-selected { box-shadow:0 0 0 3px #fff,0 0 0 6px color-mix(in srgb,var(--event-accent) 58%,transparent); background:color-mix(in srgb,var(--event-accent) 84%,#000); }
.availability-mode-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:15px; border-top:1px solid color-mix(in srgb,var(--event-accent) 18%,var(--line)); padding-top:15px; }
.availability-mode-choice { --mode-accent:var(--event-accent); display:flex; min-height:48px; align-items:center; justify-content:center; gap:8px; border:1px solid var(--mode-accent); border-radius:8px; padding:9px 8px; color:var(--mode-accent); background:#fff; font-size:11.5px; font-weight:750; line-height:1.3; text-align:left; cursor:pointer; }
.availability-mode-choice:hover { background:color-mix(in srgb,var(--mode-accent) 8%,#fff); }
.availability-mode-choice:focus-visible { outline:3px solid color-mix(in srgb,var(--mode-accent) 25%,transparent); outline-offset:2px; }
.availability-mode-choice.is-selected { color:#fff; background:var(--mode-accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--mode-accent) 18%,transparent); }
.availability-mode-combined { --mode-accent:#4f6f87; }
.availability-mode-icon { width:22px; height:22px; }
@container (max-width:420px) { .availability-mode-choice { min-height:68px; flex-direction:column; gap:5px; text-align:center; } }
.timezone-picker { max-width:620px; margin:15px 0 19px; }
.timezone-picker>label { display:block; margin-bottom:6px; font-size:12px; font-weight:750; }
.timezone-combobox { position:relative; }
.timezone-combobox input { width:100%; border:1px solid #c7d5d1; border-radius:10px; padding:11px 12px; color:var(--ink); background:#fff; outline:none; }
.timezone-combobox input:focus { border-color:var(--brand-2); box-shadow:0 0 0 3px rgba(40,103,92,.12); }
.timezone-options { position:absolute; z-index:16; top:calc(100% + 6px); right:0; left:0; max-height:320px; overflow:auto; border:1px solid #b8c9c4; border-radius:11px; padding:6px; background:#fff; box-shadow:0 18px 42px rgba(18,48,42,.18); }
.timezone-group-label { margin:5px 7px 4px; color:var(--muted); font-size:10px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.timezone-option { display:grid; width:100%; gap:2px; border:0; border-radius:8px; padding:9px 10px; color:var(--ink); background:#fff; text-align:left; cursor:pointer; }
.timezone-option:hover,.timezone-option.is-active { background:var(--sage-light); }
.timezone-option[aria-selected="true"] { background:var(--sage); }
.timezone-option strong { font-size:12px; }
.timezone-option span { color:var(--muted); font-size:10.5px; line-height:1.4; }
.timezone-selection,.timezone-fixed { margin:7px 0 0; color:var(--muted); font-size:11px; line-height:1.45; }
.timezone-fixed { width:fit-content; margin:14px 0 18px; border-radius:999px; padding:7px 11px; color:var(--brand); background:var(--sage-light); font-weight:700; }
.availability-picker { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(190px,.65fr); overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#fff; }
.calendar-pane { min-width:0; padding:14px 16px 18px; }
.month-picker { display:grid; grid-template-columns:42px minmax(0,1fr) 42px; align-items:center; gap:10px; margin:0 0 12px; }
.month-label { text-align:center; font-size:15px; letter-spacing:-.015em; }
.month-button { display:grid; width:38px; height:38px; place-items:center; border:1px solid transparent; border-radius:9px; color:var(--brand); background:transparent; cursor:pointer; }
.month-button:hover:not(:disabled) { border-color:#8eb2a8; background:var(--sage); }
.month-button:focus-visible { outline:3px solid rgba(40,103,92,.2); outline-offset:1px; }
.month-button:disabled { opacity:.35; cursor:default; }
.month-button svg { width:24px; height:24px; fill:currentColor; }
.weekday-row,.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.weekday-row { margin-bottom:5px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.05em; text-align:center; text-transform:uppercase; }
.weekday-row span { padding:5px 0; }
.calendar-grid { align-items:center; min-height:268px; }
.calendar-spacer { aspect-ratio:1; }
.calendar-day { position:relative; display:grid; min-width:0; min-height:38px; aspect-ratio:1; place-items:center; border:0; border-radius:50%; color:#abb5b2; background:transparent; font-size:13px; cursor:default; }
.calendar-day:disabled { color:#abb5b2; opacity:.72; }
.calendar-day.is-past:disabled { color:#aab3b0; opacity:1; }
.calendar-day.is-past::after { position:absolute; width:35px; height:3px; border-radius:999px; background:#c4ccca; content:""; pointer-events:none; transform:rotate(-45deg); }
.calendar-day:not(:disabled) { color:var(--brand); background:var(--sage-light); font-weight:800; cursor:pointer; }
.calendar-day:not(:disabled):hover { color:#fff; background:var(--brand-2); }
.calendar-day:focus-visible { outline:3px solid rgba(40,103,92,.22); outline-offset:1px; }
.calendar-day.is-selected { color:#fff; background:var(--brand); box-shadow:0 0 0 3px rgba(40,103,92,.16); }
.calendar-day.is-today:not(.is-selected)::after { position:absolute; bottom:4px; width:4px; height:4px; border-radius:50%; background:currentColor; content:""; }
.availability-empty { display:grid; gap:4px; padding:25px; color:var(--muted); text-align:center; }
.availability-empty strong { color:var(--ink); }
.calendar-grid>.availability-empty { grid-column:1/-1; align-content:center; min-height:268px; }
.time-pane { min-width:0; border-left:1px solid var(--line); padding:22px 18px; background:#fafcfb; }
.time-pane h3 { margin:0 0 5px; font-size:16px; letter-spacing:-.015em; }
.time-pane>p { min-height:34px; margin:0 0 14px; color:var(--muted); font-size:11px; line-height:1.5; }
.time-slots { display:grid; gap:8px; padding:2px 3px 2px 0; }
.slot { display:grid; grid-template-columns:minmax(0,1fr) auto 22px; align-items:center; gap:10px; width:100%; border:1px solid #bfd0cb; border-radius:9px; padding:11px 10px; color:var(--brand); background:#fff; font-size:13px; font-weight:750; text-align:left; cursor:pointer; }
.slot:hover { border-color:var(--brand-2); background:var(--sage-light); }
.slot.is-selected { border-color:var(--brand-2); box-shadow:0 0 0 2px rgba(40,103,92,.15); background:var(--sage); }
.slot.is-confirming { animation:slot-confirmation-glow .5s ease-out; }
.slot-kind { flex:none; font-size:10px; font-weight:850; letter-spacing:.055em; text-transform:uppercase; }
.slot-kind-remote { color:#4f6f87; }
.slot-kind-sf { color:#7a4a59; }
.slot-kind-dc { color:#8a6938; }
.slot-check { display:grid; width:22px; height:22px; place-items:center; color:#23806a; font-size:19px; font-weight:900; line-height:1; opacity:0; transform:scale(.55); transition:opacity .5s ease,transform .5s ease; }
.slot.is-selected .slot-check { opacity:1; transform:scale(1); }
@keyframes slot-confirmation-glow { 0%,100% { box-shadow:0 0 0 2px rgba(40,103,92,.15); } 52% { box-shadow:0 0 0 7px rgba(42,148,120,.26),0 0 22px rgba(42,148,120,.32); } }
.selected-time { margin:0 0 16px; border-radius:10px; padding:12px 14px; color:var(--brand); background:var(--sage); font-size:13px; font-weight:700; }
.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.field { position:relative; display:grid; gap:6px; }
.field.is-wide { grid-column:1/-1; }
.field>span,.subsection h3 { font-size:12px; font-weight:750; }
.field input,.field select,.field textarea { width:100%; border:1px solid #cfdad6; border-radius:9px; padding:11px 12px; color:var(--ink); background:#fff; outline:none; }
.field textarea { resize:vertical; line-height:1.5; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--brand-2); box-shadow:0 0 0 3px rgba(40,103,92,.12); }
.field input[readonly] { color:var(--muted); background:#f4f6f5; }
.field small { color:var(--muted); font-size:11px; line-height:1.45; }
.phone-fields { display:grid; grid-column:1/-1; grid-template-columns:112px minmax(0,1fr); gap:16px; }
.phone-fields .field input,.phone-fields .field select { height:44px; min-height:44px; }
.phone-country select { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.subsection { margin-top:22px; border-top:1px solid var(--line); padding-top:19px; }
.subsection h3 { margin:0 0 10px; }
.consult-fieldset { margin:0; border:0; padding:0; min-width:0; }
.consult-fieldset legend { margin:0 0 10px; padding:0; font-size:12px; font-weight:750; }
.meeting-method-list { display:grid; max-width:520px; gap:8px; }
.check-choice.meeting-method-choice { align-items:center; min-height:40px; border:0; border-radius:0; padding:5px 0; }
.check-choice.meeting-method-choice:has(input:checked) { border-color:transparent; background:transparent; }
.check-choice.meeting-method-choice input { align-self:center; margin:0; }
.meeting-method-brand { display:grid; width:34px; height:30px; place-items:center; flex:0 0 34px; }
.meeting-method-logo { display:block; width:30px; height:30px; object-fit:contain; }
.meeting-method-phone-icon { padding:3px; color:var(--brand-2); }
.consult-fields { grid-template-columns:1fr; max-width:520px; margin-top:16px; }
.choice-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.check-choice { display:flex; align-items:flex-start; gap:9px; border:1px solid var(--line); border-radius:9px; padding:11px 12px; font-size:13px; cursor:pointer; }
.check-choice:has(input:checked) { border-color:var(--brand-2); background:var(--sage-light); }
.check-choice input { margin-top:2px; accent-color:var(--brand-2); }
.suggestions { position:absolute; z-index:10; top:100%; right:0; left:0; overflow:hidden; border:1px solid #bccdc7; border-radius:10px; background:#fff; box-shadow:0 16px 34px rgba(18,48,42,.16); }
.suggestion { display:block; width:100%; border:0; border-bottom:1px solid var(--line); padding:11px 13px; background:#fff; text-align:left; cursor:pointer; }
.suggestion:last-child { border-bottom:0; }
.suggestion:hover { background:var(--sage-light); }
.suggestion strong,.suggestion small { display:block; }
.suggestion small { margin-top:3px; color:var(--muted); }
.google-maps-attribution { padding:8px 12px; color:#5e5e5e; background:#fff; font-family:Roboto,sans-serif; font-size:12px; font-style:normal; font-weight:400; letter-spacing:normal; text-align:right; white-space:nowrap; }
.maps-terms { margin:14px 0 0; color:var(--muted); font-size:11px; line-height:1.5; }
.guest-entry { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:10px; }
.guest-chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:12px; }
.guest-chip { display:flex; align-items:center; gap:6px; border-radius:999px; padding:7px 9px 7px 12px; color:var(--brand); background:var(--sage); font-size:12px; }
.guest-chip button { display:grid; place-items:center; width:20px; height:20px; border:0; border-radius:50%; color:var(--brand); background:rgba(255,255,255,.65); cursor:pointer; }
.review-card { position:relative; overflow:hidden; border-color:#b7cec6; padding:0 28px 28px; background:linear-gradient(180deg,var(--sage-light),#fff 68%); box-shadow:0 22px 60px rgba(19,47,42,.13); }
.review-card::before { display:block; height:7px; margin:0 -28px 23px; background:var(--brand-2); content:""; }
.review-heading { display:flex; align-items:center; gap:13px; }
.review-heading>div { display:grid; gap:2px; }
.review-heading p { margin:0; color:var(--brand-2); font-size:10px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.review-heading h2 { margin:0; }
.review-calendar-icon { display:grid; width:44px; height:44px; flex:none; place-items:center; border-radius:10px; color:#fff; background:var(--brand); box-shadow:0 7px 16px rgba(23,59,53,.18); }
.review-calendar-icon svg { width:25px; height:25px; fill:currentColor; }
.review-summary { display:grid; width:100%; max-width:550px; margin:20px auto; border:1px solid var(--line); border-radius:12px; padding:0 16px; color:var(--muted); background:#fff; font-size:13px; }
.review-row { display:grid; grid-template-columns:132px minmax(0,1fr); align-items:start; gap:16px; border-bottom:1px solid var(--line); padding:12px 0; }
.review-row:last-child { border-bottom:0; }
.review-row strong { overflow-wrap:anywhere; color:var(--ink); font-weight:650; line-height:1.45; text-align:left; white-space:pre-wrap; }
.review-row.is-problem { margin:0 -16px; padding-right:16px; padding-left:16px; color:#782525; background:#fff3f2; box-shadow:inset 3px 0 #782525; }
.review-row.is-problem strong { color:#782525; }
.review-problem { display:block; margin-top:2px; font-size:11px; font-weight:780; }
.review-date-time,.success-date-details { display:block; }
.review-date-distance,.success-date-distance { display:block; margin-bottom:2px; color:var(--brand-2); font-size:12px; font-weight:850; letter-spacing:.015em; }
.button { display:inline-flex; align-items:center; justify-content:center; border:1px solid transparent; border-radius:9px; padding:10px 15px; font-weight:750; text-decoration:none; cursor:pointer; }
.button:disabled { opacity:.55; cursor:wait; }
.button-primary { color:#fff; background:var(--brand); }
.button-primary:hover { background:#205348; }
.button-secondary { border-color:#b8c9c4; color:var(--brand); background:#fff; }
.button-danger { color:#fff; background:var(--danger); }
.button-large { width:100%; min-height:50px; font-size:15px; }
#submit-booking { gap:9px; }
#submit-booking:disabled { opacity:.38; cursor:not-allowed; filter:saturate(.55); }
#submit-booking.is-submitting:disabled { opacity:.72; cursor:wait; filter:none; }
.book-button-icon { width:20px; height:20px; fill:currentColor; }
.text-link { color:var(--brand-2); font-weight:700; }
.turnstile { min-height:0; margin:0; }
.inline-error,.status { border-radius:9px; padding:11px 13px; color:#782525; background:#fdecec; font-size:13px; line-height:1.45; }
.status { position:fixed; z-index:40; top:98px; right:24px; max-width:400px; box-shadow:var(--shadow); }
.fallback-copy { color:var(--muted); font-size:11px; line-height:1.5; text-align:center; }
.fallback-copy { margin:22px 0 0; }
.booking-footer { display:grid; justify-items:center; gap:7px; margin-top:13px; color:var(--muted); font-size:11px; text-align:center; }
.booking-footer-links { display:flex; justify-content:center; gap:9px; }
.booking-footer .maps-terms { margin:0; }
.success-card { text-align:center; }
.success-mark { display:grid; place-items:center; width:52px; height:52px; margin:0 auto 16px; border-radius:50%; color:#fff; background:var(--brand-2); font-size:28px; }
.success-card p:not(.eyebrow) { color:var(--muted); line-height:1.6; }
.success-date-distance { margin-bottom:3px; }
.success-actions { display:flex; align-items:center; justify-content:center; gap:20px; margin:24px 0 22px; }
.success-followup-links { display:flex; align-items:center; justify-content:center; gap:9px; }
.field input.is-invalid { border-color:#782525; color:#782525; background:#fff7f6; box-shadow:0 0 0 3px rgba(120,37,37,.12); }
.leave-dialog { max-width:430px; border:0; border-radius:14px; padding:26px; box-shadow:0 24px 80px rgba(0,0,0,.26); }
.leave-dialog::backdrop { background:rgba(10,20,18,.5); }
.leave-dialog h2 { margin:0 0 8px; }
.leave-dialog p { color:var(--muted); line-height:1.5; }
.leave-dialog>div { display:flex; justify-content:flex-end; gap:9px; margin-top:20px; }
[hidden] { display:none !important; }
@media (max-width:920px) { :root { --sidebar:0px; } .booking-sidebar { position:static; width:auto; border-right:0; border-bottom:1px solid var(--line); padding:12px 18px; } .signed-in-portal-nav { min-height:auto; flex:none; } .booking-sidebar nav { grid-template-columns:repeat(2,minmax(0,1fr)); } .side-secondary-nav { margin-top:0; } .side-button { margin-top:8px; } .booking-main { width:100%; margin:0; } }
@media (max-width:640px) { .booking-main { padding:28px 15px 64px; } .page-heading { align-items:flex-start; flex-direction:column; } .form-section { grid-template-columns:1fr; padding:20px; } .section-number { width:30px; height:30px; } .event-types,.field-grid,.choice-list { grid-template-columns:1fr; } .event-types.without-consult .event-card-remote { grid-column:auto; width:100%; } .event-buttons:not(.is-single),.availability-mode-choices { grid-template-columns:repeat(2,minmax(0,1fr)); } .field.is-wide { grid-column:auto; } .phone-fields { grid-template-columns:112px minmax(0,1fr); gap:10px; } .availability-picker { grid-template-columns:1fr; } .calendar-pane { padding:11px 11px 16px; } .calendar-grid { min-height:248px; } .calendar-day { min-height:35px; } .time-pane { border-top:1px solid var(--line); border-left:0; } .time-slots { grid-template-columns:repeat(2,minmax(0,1fr)); } .guest-entry { grid-template-columns:1fr; } .guest-entry .button { width:100%; } .review-row { grid-template-columns:1fr; gap:3px; } .success-actions { flex-direction:column; } .success-followup-links { flex-wrap:wrap; } }
@media (max-width:620px) { :root { --header:70px; } }
@media (prefers-reduced-motion:reduce) { .spinner,.slot.is-confirming { animation:none; } .slot-check { transition:none; } }
