:root {
    --bg: #f5f7fb;
    --card: #ffffff;
    --text: #182238;
    --muted: #68748a;
    --line: #dfe5ef;
    --primary: #2457d6;
    --primary-dark: #173f9f;
    --success: #18794e;
    --danger: #b42318;
    --shadow: 0 12px 38px rgba(20, 35, 70, .08);
}

* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--text);
    background: var(--bg);
}
button, input, select { font: inherit; }
.site-header {
    height: 68px;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 0 max(24px, calc((100vw - 1160px) / 2));
    background: #fff;
    border-bottom: 1px solid var(--line);
}
.brand { color: var(--text); text-decoration: none; font-size: 20px; font-weight: 800; }
.tagline { color: var(--muted); font-size: 14px; }
.page-shell { width: min(1160px, calc(100% - 32px)); margin: 42px auto 70px; }
.site-footer {
    width: min(1160px, calc(100% - 32px));
    margin: 0 auto 30px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
    display: flex;
    justify-content: space-between;
    color: var(--muted);
    font-size: 13px;
}
.hero, .booking-header {
    display: flex;
    justify-content: space-between;
    gap: 32px;
    align-items: flex-start;
    margin-bottom: 30px;
}
h1 { font-size: clamp(32px, 5vw, 54px); line-height: 1.05; margin: 8px 0 12px; letter-spacing: -.04em; }
h2 { margin: 0 0 18px; }
p { color: var(--muted); line-height: 1.6; }
.eyebrow { font-size: 12px; letter-spacing: .12em; font-weight: 800; color: var(--primary); }
.refresh-card {
    width: min(360px, 100%);
    padding: 18px;
    background: #eef3ff;
    border: 1px solid #cfdcff;
    border-radius: 16px;
    display: grid;
    gap: 6px;
}
.refresh-card span, .refresh-card small { color: var(--muted); }
.merchant-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; }
.merchant-card { margin: 0; }
.merchant-button {
    width: 100%; min-height: 118px; padding: 22px; border: 1px solid var(--line); border-radius: 18px;
    background: var(--card); box-shadow: var(--shadow); display: flex; align-items: center; gap: 16px;
    text-align: left; cursor: pointer; transition: .18s ease;
}
.merchant-button:hover { transform: translateY(-2px); border-color: #b8c8ef; }
.merchant-icon { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 14px; display: grid; place-items: center; background: #e9efff; color: var(--primary); font-weight: 800; }
.merchant-copy { display: grid; gap: 4px; flex: 1; }
.merchant-copy strong { font-size: 18px; }
.merchant-copy small { color: var(--muted); }
.merchant-arrow { font-size: 24px; color: var(--primary); }
.stepper { list-style: none; padding: 0; margin: 0 0 18px; display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
.stepper li { padding: 11px 8px; background: #e9edf5; border-radius: 10px; text-align: center; font-size: 12px; font-weight: 700; color: var(--muted); }
.stepper li.active { background: #e7eeff; color: var(--primary); }
.booking-card { background: var(--card); border: 1px solid var(--line); border-radius: 20px; padding: 26px; margin-bottom: 18px; box-shadow: var(--shadow); }
.field-group { display: grid; gap: 8px; margin-bottom: 18px; }
.field-group:last-child { margin-bottom: 0; }
.field-group label { font-weight: 700; font-size: 14px; }
.field-grid { display: grid; gap: 18px; }
.field-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
input, select { width: 100%; min-height: 48px; padding: 11px 13px; border-radius: 11px; border: 1px solid #cfd6e3; background: #fff; color: var(--text); outline: none; }
input:focus, select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(36, 87, 214, .12); }
select:disabled { background: #f1f3f7; color: #929bad; }
.phone-row { grid-template-columns: 1fr auto; align-items: end; display: grid; gap: 12px; }
.grow { display: grid; gap: 8px; }
.optional { color: var(--muted); font-weight: 500; }
.field-note { margin: -8px 0 20px; font-size: 13px; }
.primary-button, .secondary-button, .primary-link {
    min-height: 44px; border-radius: 11px; border: 0; padding: 11px 18px; font-weight: 800; cursor: pointer; text-decoration: none; display: inline-grid; place-items: center;
}
.primary-button, .primary-link { background: var(--primary); color: #fff; }
.primary-button:hover, .primary-link:hover { background: var(--primary-dark); }
.primary-button:disabled { opacity: .6; cursor: wait; }
.secondary-button { background: #edf1f7; color: var(--text); }
.summary-card dl { margin: 0 0 22px; }
.summary-card dl div { display: grid; grid-template-columns: 130px 1fr; gap: 18px; padding: 10px 0; border-bottom: 1px solid var(--line); }
dt { color: var(--muted); } dd { margin: 0; font-weight: 700; }
.alert { padding: 14px 16px; border-radius: 12px; margin-bottom: 18px; }
.alert-error { background: #fff0ef; border: 1px solid #ffc9c4; color: var(--danger); }
.alert-success { background: #ecfdf3; border: 1px solid #abefc6; color: var(--success); }
.empty-state, .confirmation { padding: 46px; border-radius: 20px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); text-align: center; }
.confirmation-check { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%; display: grid; place-items: center; background: #dcfae6; color: var(--success); font-size: 34px; font-weight: 800; }
.hidden { display: none !important; }

@media (max-width: 760px) {
    .hero, .booking-header { display: grid; }
    .refresh-card { width: 100%; }
    .field-grid.two, .phone-row { grid-template-columns: 1fr; }
    .stepper { grid-template-columns: repeat(3, 1fr); }
    .site-footer { display: grid; gap: 6px; }
}

/* GroupListGet landing page */
.group-directory-header {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: end;
    margin-bottom: 24px;
}

.directory-status {
    display: grid;
    gap: 4px;
    min-width: 260px;
    text-align: right;
}

.directory-status small,
.group-guid {
    color: var(--muted);
}

.group-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 12px;
}

.group-list-item,
.group-list-item form {
    margin: 0;
}

.group-list-button {
    width: 100%;
    min-height: 92px;
    padding: 18px 20px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--card);
    box-shadow: var(--shadow);
    display: flex;
    align-items: center;
    gap: 16px;
    text-align: left;
    cursor: pointer;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.group-list-button:hover {
    transform: translateY(-1px);
    border-color: #b8c8ef;
}

.group-avatar {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: #e9efff;
    color: var(--primary);
    font-weight: 800;
}

.group-details {
    display: grid;
    gap: 4px;
    flex: 1;
    min-width: 0;
}

.group-details strong {
    font-size: 18px;
}

.group-details small {
    overflow-wrap: anywhere;
}

.group-action {
    color: var(--primary);
    font-weight: 800;
    white-space: nowrap;
}

@media (max-width: 760px) {
    .group-directory-header {
        display: grid;
        align-items: start;
    }

    .directory-status {
        min-width: 0;
        text-align: left;
    }

    .group-action {
        display: none;
    }
}

/* Fix46 - the home page now shows merchant booking locations directly. */
.location-hero {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 28px;
    margin-bottom: 34px;
}

.location-hero h1 {
    margin: 12px 0 10px;
    font-size: clamp(40px, 5vw, 68px);
    line-height: 1;
    letter-spacing: -0.045em;
}

.location-hero p {
    margin: 0;
    color: var(--muted);
    font-size: 18px;
}

.location-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 22px;
}

.location-card {
    margin: 0;
    min-width: 0;
}

.location-card-button {
    position: relative;
    width: 100%;
    min-height: 245px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 28px;
    padding: 26px;
    border: 1px solid #dfe6f2;
    border-radius: 24px;
    background:
        radial-gradient(circle at 92% 8%, rgba(59, 130, 246, .16), transparent 34%),
        linear-gradient(145deg, #ffffff 0%, #f7faff 52%, #eef4ff 100%);
    box-shadow: 0 16px 38px rgba(27, 48, 94, .09);
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.location-card-button:hover {
    transform: translateY(-5px);
    border-color: #a8bff5;
    box-shadow: 0 24px 46px rgba(27, 48, 94, .16);
}

.location-card-accent {
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: linear-gradient(180deg, #2563eb, #6d8df7);
}

.location-card-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
}

.location-logo {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    background: #e7efff;
    color: #245ddd;
    font-size: 22px;
    font-weight: 900;
    box-shadow: inset 0 0 0 1px rgba(37, 99, 235, .08);
}

.location-book-label {
    color: #245ddd;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
}

.location-card-copy {
    display: grid;
    gap: 8px;
}

.location-card-copy strong {
    color: #111c35;
    font-size: 24px;
    line-height: 1.15;
}

.location-card-copy small {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.45;
}

.location-group-name {
    width: fit-content;
    margin-top: 5px;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(37, 99, 235, .08);
    color: #245ddd;
    font-size: 12px;
    font-weight: 700;
}

@media (max-width: 720px) {
    .location-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .location-card-grid {
        grid-template-columns: 1fr;
    }
}

/* Fix53 - connected multi-step booking views */
.booking-header-v2 { margin-bottom: 22px; }
.booking-flow { --booking-border: #dfe6f2; }
.booking-stepper li { transition: .18s ease; }
.booking-stepper li.complete { background: #edf3ff; color: var(--primary); }
.booking-stepper li.complete::before { content: "✓ "; }
.booking-workspace { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, .9fr); gap: 18px; align-items: start; }
.booking-stage { min-width: 0; }
.flow-panel { background: #fff; border: 1px solid var(--booking-border); border-radius: 20px; padding: 26px; box-shadow: var(--shadow); }
.flow-panel-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 22px; }
.flow-panel-heading h2 { margin: 4px 0 6px; font-size: 26px; }
.flow-panel-heading p { margin: 0; }
.flow-kicker { color: var(--primary); font-weight: 900; font-size: 11px; letter-spacing: .1em; }
.text-button { border: 0; background: #edf3ff; color: var(--primary); font-weight: 800; border-radius: 10px; padding: 10px 14px; cursor: pointer; }
.category-tabs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.category-tab { border: 1px solid #ccd8ef; background: #fff; color: var(--primary); border-radius: 10px; padding: 11px 18px; font-weight: 800; cursor: pointer; }
.category-tab.selected { color: #fff; border-color: var(--primary); background: var(--primary); }
.service-list, .technician-list { display: grid; gap: 10px; }
.service-option, .technician-option { width: 100%; border: 1px solid var(--booking-border); background: #fff; border-radius: 14px; min-height: 74px; padding: 14px 16px; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; text-align: left; cursor: pointer; color: var(--text); }
.service-option:hover, .technician-option:hover { border-color: #9eb7f1; background: #fbfdff; }
.service-option.selected, .technician-option.selected { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); background: #f8fbff; }
.choice-box { width: 24px; height: 24px; border: 1px solid #ccd6e6; border-radius: 6px; display: grid; place-items: center; color: transparent; font-weight: 900; }
.selected .choice-box { background: var(--primary); border-color: var(--primary); color: #fff; }
.service-copy, .tech-copy { display: grid; gap: 4px; }
.service-copy strong, .tech-copy strong { font-size: 17px; }
.service-copy small, .tech-copy small { color: var(--muted); }
.service-meta { display: flex; align-items: center; gap: 18px; color: var(--muted); }
.service-meta strong { color: var(--text); font-size: 17px; }
.selected-strip { display: grid; grid-template-columns: 1.6fr .7fr .7fr; gap: 12px; border: 1px solid var(--booking-border); background: #f8faff; padding: 16px 18px; border-radius: 14px; margin-bottom: 22px; }
.selected-strip.two-up { grid-template-columns: 1fr 1.5fr; }
.selected-strip div { display: grid; gap: 4px; }
.selected-strip span { color: var(--muted); font-size: 13px; }
.section-label { margin: 20px 0 12px; font-size: 15px; }
.date-cards { display: grid; grid-template-columns: repeat(8, minmax(72px, 1fr)); gap: 8px; }
.date-card { min-height: 88px; border: 1px solid var(--booking-border); border-radius: 10px; background: #fff; display: grid; place-items: center; align-content: center; gap: 2px; cursor: pointer; color: var(--text); }
.date-card small, .date-card span { color: var(--muted); font-size: 11px; }
.date-card strong { font-size: 20px; }
.date-card.selected { background: var(--primary); border-color: var(--primary); color: #fff; }
.date-card.selected small, .date-card.selected span { color: #fff; }
.more-date { color: var(--primary); }
.date-picker-hidden { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.selected-date-label { margin-top: 10px; padding: 10px; border-radius: 9px; text-align: center; background: #f5f8ff; color: var(--primary); font-weight: 700; }
.time-slot-groups { display: grid; gap: 20px; }
.time-group h4 { display: flex; align-items: center; gap: 10px; color: var(--primary); }
.time-group h4 span { width: 32px; height: 4px; border-radius: 4px; background: #7b7ced; }
.time-group.pm h4 { color: #bd6d16; }
.time-group.pm h4 span { background: #f0a64a; }
.time-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
.time-button { min-height: 46px; border: 1px solid var(--booking-border); background: #fff; border-radius: 8px; font-weight: 800; cursor: pointer; }
.time-button:hover { border-color: #9eb7f1; }
.time-button.selected { background: var(--primary); border-color: var(--primary); color: #fff; }
.technician-option { grid-template-columns: auto auto 1fr auto; min-height: 78px; }
.tech-avatar { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: #edf2ff; color: var(--primary); font-weight: 900; }
.working-badge { padding: 7px 10px; border-radius: 9px; background: #f2f5fa; color: #647089; font-size: 11px; font-weight: 900; }
.contact-phone-row { margin-bottom: 10px; }
.confirm-details { display: grid; border: 1px solid var(--booking-border); border-radius: 14px; overflow: hidden; }
.confirm-details div { display: grid; grid-template-columns: 150px 1fr; gap: 20px; padding: 14px 16px; border-bottom: 1px solid var(--booking-border); }
.confirm-details div:last-child { border-bottom: 0; }
.confirm-details span { color: var(--muted); }
.reservation-summary { position: sticky; top: 20px; }
.reservation-summary dl { margin: 0; }
.reservation-summary dl div { display: grid; grid-template-columns: 110px 1fr; gap: 14px; padding: 13px 0; border-bottom: 1px solid var(--booking-border); }
.flow-actions { margin-top: 18px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; padding: 14px 0; }
.flow-actions .primary-button { min-width: 210px; }
.empty-state { color: var(--muted); padding: 28px; border: 1px dashed #cfd8e8; border-radius: 14px; text-align: center; }

@media (max-width: 980px) {
    .booking-workspace { grid-template-columns: 1fr; }
    .reservation-summary { position: static; }
    .date-cards { grid-template-columns: repeat(4, 1fr); }
    .time-grid { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 700px) {
    .booking-stepper { grid-template-columns: repeat(3, 1fr); }
    .flow-panel { padding: 18px; }
    .selected-strip, .selected-strip.two-up { grid-template-columns: 1fr; }
    .date-cards { grid-template-columns: repeat(3, 1fr); }
    .time-grid { grid-template-columns: repeat(3, 1fr); }
    .service-option { grid-template-columns: auto 1fr; }
    .service-meta { grid-column: 2; justify-content: space-between; }
    .technician-option { grid-template-columns: auto auto 1fr; }
    .working-badge { grid-column: 3; justify-self: start; }
    .phone-row { grid-template-columns: 1fr; }
}

/* FIX63 • Studio-grade design refresh: shared across locations and all booking steps */
:root { --bg:#f7f6f3; --card:#fff; --text:#23312f; --muted:#74807c; --line:#e5e8e3; --primary:#246c60; --primary-dark:#174c43; --shadow:0 16px 42px rgba(27,55,46,.055); --success:#247660; }
html{scroll-behavior:smooth}
body{background:radial-gradient(ellipse at 85% 5%,#ecf3ee 0,transparent 40%),var(--bg);font-family:Inter,"Avenir Next",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.5}
.site-header{height:82px;background:#ffffffeb;border-bottom:1px solid #e9ece6;gap:22px;backdrop-filter:blur(16px)}
.brand{font-size:24px;letter-spacing:-.06em;color:#1c5147}.brand::before{content:"✳";display:inline-grid;place-items:center;width:33px;height:33px;border-radius:11px;margin-right:10px;background:#e1eee6;color:var(--primary);font-size:22px;vertical-align:middle}
.tagline{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:#929d96}
.page-shell{width:min(1280px,calc(100% - 64px));margin:48px auto 90px}
h1,h2,h3{letter-spacing:-.045em;color:#21352f}h1{font-size:clamp(40px,4.4vw,70px);line-height:1.08;font-weight:760}h2{font-size:clamp(23px,2.3vw,34px);line-height:1.18}
p{color:var(--muted)}.eyebrow,.flow-kicker{color:#3b806f!important;letter-spacing:.17em!important;font-size:11px!important;font-weight:800!important}
.booking-header-v2{align-items:center;padding:20px 0 27px;margin-bottom:26px}.booking-header-v2 h1{max-width:770px;margin:10px 0 16px}.booking-header-v2 p{font-size:17px;max-width:650px}.hero-period{color:#81afa1}
.booking-workspace{align-items:start;gap:25px}.flow-panel,.booking-card,.reservation-summary{background:#fff;border:1px solid #e5e9e3;border-radius:23px;box-shadow:var(--shadow)}
.booking-stage .flow-panel{padding:clamp(25px,3.3vw,48px)}.flow-panel-heading{margin-bottom:29px}.flow-panel-heading h2{margin:8px 0 9px}.flow-panel-heading p{margin:0;font-size:15px}
.booking-stepper{gap:6px;margin-bottom:25px;padding:8px;background:#fff;border:1px solid #e7eae5;border-radius:16px}.booking-stepper li{background:transparent;border-radius:11px;color:#89948e;min-height:49px;display:grid;place-items:center;font-size:12px;letter-spacing:.02em}.booking-stepper li.active{background:#e6f1eb;color:#1c6254}.booking-stepper li.complete{color:#277461}
.category-tabs{gap:10px;margin-bottom:24px}.category-tab{border:1px solid #dce6de;background:#fff;color:#49675b;border-radius:999px;padding:12px 23px;font-size:14px;font-weight:750;min-height:49px;box-shadow:none;transition:background .18s,border-color .18s,transform .18s}.category-tab:hover{transform:translateY(-1px);border-color:#83b4a0}.category-tab.selected{background:var(--primary);border-color:var(--primary);color:white;box-shadow:0 6px 20px #246c6022}
.service-list{display:grid;gap:12px}.service-option{display:block!important;width:100%;text-align:left;padding:0!important;overflow:hidden;background:#fff!important;border:1px solid #e1e7e1!important;border-radius:17px!important;box-shadow:none!important;cursor:pointer;transition:box-shadow .18s,border-color .18s,transform .18s}.service-option:hover{border-color:#8fb9a6!important;box-shadow:0 8px 26px #123b2710!important;transform:translateY(-1px)}.service-option.selected{border:2px solid #257565!important;background:#fcfefc!important;box-shadow:0 5px 20px #12674e15!important}.service-option-main{display:flex;align-items:center;gap:18px;padding:23px 24px;min-height:100px}.choice-box{width:24px!important;height:24px!important;min-width:24px;border:1.5px solid #c8d8ce!important;border-radius:8px!important;display:grid;place-items:center;font-size:12px;color:transparent;background:#fff}.selected>.service-option-main>.choice-box{color:#fff!important;border-color:var(--primary)!important;background:var(--primary)!important}.service-copy{flex:1;min-width:0;display:grid;gap:5px}.service-copy strong{font-size:17px;font-weight:730;letter-spacing:-.018em;color:#20372e}.service-copy small{font-size:12px;color:#8a9990;line-height:1.4}.service-meta{margin-left:auto;display:flex;align-items:center;gap:24px;white-space:nowrap}.service-meta span{font-size:13px;color:#81948b}.service-meta strong{font-size:19px;letter-spacing:-.04em;color:#204b3e}
.service-package{border-color:#d1e0d3!important;background:linear-gradient(135deg,#fff 70%,#f8fcf8)!important}.service-package .service-option-main{padding-bottom:18px}.service-label{font-size:10px;color:#35816c;font-weight:850;letter-spacing:.12em}.package-details{display:block;padding:0 23px 21px 65px}.package-details-heading{display:block;font-size:10px;font-weight:850;letter-spacing:.12em;color:#3b826a;margin-bottom:10px}.package-component{display:flex;align-items:center;gap:12px;min-height:48px;padding:9px 14px;background:#f6f9f5;border:1px solid #e7eee5;margin-bottom:6px;border-radius:10px;font-size:13px}.package-component-icon{display:grid;place-items:center;width:21px;height:21px;flex-shrink:0;border-radius:50%;background:#e0f0e6;color:#3e866c;font-size:11px}.package-component-name{flex:1;color:#354b40;font-weight:650}.package-component-duration{color:#83968b;white-space:nowrap}.package-component-price{color:#345b4e;font-weight:750;white-space:nowrap}.package-note{display:block;color:#9c9f94;font-size:12px}
.reservation-summary{position:sticky;top:25px;padding:32px!important}.reservation-summary h2{font-size:24px;margin:8px 0}.summary-kicker{font-size:10px;letter-spacing:.15em;font-weight:850;color:#438570}.summary-intro{font-size:13px;margin:0 0 24px}.reservation-summary dl{border-top:1px solid #e9eee8}.reservation-summary dl>div{padding:15px 0!important;border-bottom:1px solid #edf0ec!important}.reservation-summary dt{font-size:13px}.reservation-summary dd{font-size:14px;color:#304f43}
.primary-button,.primary-link{background:var(--primary);border-radius:12px;min-height:54px;font-weight:750;box-shadow:0 8px 18px #246c6020}.primary-button:disabled{background:#96b9ab;cursor:not-allowed;box-shadow:none}.secondary-button{border:1px solid #dce5dc;background:#fff;color:#32574a;border-radius:12px;min-height:48px}.secondary-button:hover{background:#f0f6f1}.flow-actions{padding-top:22px}.flow-actions .primary-button{min-width:235px}
input,select,textarea{border-color:#dbe4db;border-radius:11px;background:#fefefe}input:focus,select:focus{border-color:#479c81;box-shadow:0 0 0 4px #dfeee5}
.date-card,.time-slot,.technician-option{transition:transform .18s,border-color .18s,background .18s}.date-card:hover,.time-slot:hover,.technician-option:hover{transform:translateY(-2px);border-color:#77aa92}.selected-strip{background:#f5f9f5!important;border-radius:14px!important}.confirmation-check{background:#e1f3e8;color:#21745b}
.location-hero,.group-directory-header{padding:24px 0 34px}.location-hero h1,.group-directory-header h1{max-width:760px}.location-card-grid{gap:20px}.location-card-button,.merchant-button,.group-list-button{background:#fff;border:1px solid #e1e9e2;border-radius:23px;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s,border-color .18s}.location-card-button:hover,.merchant-button:hover,.group-list-button:hover{border-color:#a2c5b3;box-shadow:0 16px 40px #184b3018;transform:translateY(-3px)}.location-logo,.group-avatar,.merchant-icon{background:#e8f3eb;color:#246c60;border-radius:15px}.location-book-label,.group-action{color:#23705e}.directory-status{background:#fff;border:1px solid #e7ebe6;border-radius:14px;padding:14px 20px}.site-footer{border-color:#e0e8e0;color:#849489}
button:focus-visible,a:focus-visible{outline:3px solid #91c5ac;outline-offset:3px}
@media(max-width:900px){.page-shell{width:min(100% - 32px,700px);margin-top:28px}.reservation-summary{position:static}.booking-header-v2{align-items:start}.service-meta{gap:10px}.site-header{padding:0 20px}.tagline{display:none}}
@media(max-width:600px){.page-shell{width:calc(100% - 24px)}.booking-header-v2 h1{font-size:40px}.booking-header-v2 p{font-size:14px}.booking-stepper{grid-template-columns:repeat(3,1fr)}.booking-stage .flow-panel{padding:22px 17px}.service-option-main{padding:17px 14px;gap:10px;flex-wrap:wrap}.service-meta{width:100%;padding-left:35px;justify-content:space-between}.package-details{padding:0 13px 17px 48px}.package-component{gap:6px;padding:8px}.package-component-duration{font-size:11px}.category-tab{padding:9px 16px}.reservation-summary{padding:22px!important}.flow-actions .primary-button{min-width:0;width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}


/* FIX64 — elevated editorial booking design and private merchant metadata */
:root {--bg:#f3f1ec;--text:#1d2622;--muted:#6e7972;--line:#e7e4db;--primary:#193e35;--primary-dark:#102c27;--shadow:0 20px 65px rgba(31,42,35,.055)}
body{background:linear-gradient(135deg,#faf9f5 0%,#f3f2ed 48%,#edf2eb 100%);color:#1c2a24;min-height:100vh}
.site-header{height:86px;background:rgba(250,249,245,.93);border-bottom:1px solid #e7e7df;padding-inline:clamp(22px,5vw,90px)}
.brand{font-size:22px;font-weight:820;letter-spacing:-.075em;color:#172f28}.brand::before{background:#1d4b3d;color:#f7f4eb;border-radius:50%;width:34px;height:34px;font-size:19px}
.page-shell{width:min(1390px,calc(100% - 76px));margin:52px auto 100px}
.booking-header-v2{margin-bottom:36px;padding:10px 0 20px;gap:24px}.booking-header-v2 h1{font-size:clamp(48px,5.2vw,82px);letter-spacing:-.065em;line-height:1.035;max-width:880px;color:#192922;font-weight:750}.booking-header-v2 p{font-size:17px;max-width:640px;color:#66756e;line-height:1.75}
.eyebrow,.flow-kicker,.summary-kicker{color:#947950!important;letter-spacing:.23em!important;font-size:11px!important;font-weight:850!important}
.booking-workspace{gap:28px}.flow-panel,.booking-card,.reservation-summary{border:1px solid #e4e6dc;border-radius:28px;box-shadow:0 24px 65px rgba(34,48,36,.045);background:#fff}
.booking-stage .flow-panel{padding:clamp(30px,4vw,64px)}.flow-panel-heading{margin-bottom:35px}.flow-panel-heading h2{font-size:clamp(30px,3vw,42px);letter-spacing:-.052em;font-weight:750;margin:11px 0}.flow-panel-heading p{font-size:16px;color:#78827b;line-height:1.65}
.booking-stepper{border:1px solid #e6e8e0;border-radius:20px;background:#fff;gap:5px;padding:9px;box-shadow:0 9px 30px rgba(25,55,40,.028)}.booking-stepper li{min-height:56px;font-size:13px;font-weight:720;border-radius:13px;color:#8a948e}.booking-stepper li.active{background:#e9eee7;color:#214d3d}.booking-stepper li.complete{color:#376756}
.category-tabs{gap:9px;margin-bottom:27px}.category-tab{border-radius:12px;border:1px solid #dce3d9;background:#fdfefa;color:#3f5649;font-size:14px;font-weight:780;min-height:53px;box-shadow:none}.category-tab.selected{background:#193e35;color:white;border-color:#193e35;box-shadow:0 12px 26px rgba(25,62,53,.14)}
.service-list{gap:13px}.service-option{border-radius:19px!important;border-color:#e5e8e2!important}.service-option-main{min-height:108px;padding:24px 26px}.service-copy strong{font-size:18px;color:#182e25}.service-copy small{font-size:13px}.service-meta strong{font-size:20px;color:#193e35}.choice-box{border-radius:7px!important}.selected>.service-option-main>.choice-box{background:#193e35!important;border-color:#193e35!important}
.service-package{background:linear-gradient(120deg,#ffffff 0%,#f7faf6 100%)!important;border-color:#cbdcd0!important}.service-label{color:#997748;font-size:10px}.package-details{padding:0 25px 22px 69px}.package-details-heading{color:#8b714a}.package-component{background:#fff;border:1px solid #e4ebe2;border-radius:12px;min-height:53px}.package-component-icon{background:#e7efe6;color:#254b3c}
.reservation-summary{padding:35px!important;top:22px}.reservation-summary h2{font-size:27px}.summary-intro{line-height:1.6}.reservation-summary dl>div{grid-template-columns:92px 1fr;gap:8px;padding:18px 0!important}.reservation-summary dd{font-weight:700}
.selected-strip{border:1px solid #e2e9de!important;background:#f5f8f2!important;border-radius:16px!important;padding:24px!important}.selected-date-label{border-radius:13px!important;background:#f4f7f3!important;color:#275a47!important}
.date-card,.time-slot{border-radius:13px!important;border:1px solid #e0e6dd!important;background:#fff;color:#23392c}.date-card.selected,.time-slot.selected{background:#193e35!important;color:white!important;border-color:#193e35!important;box-shadow:0 10px 24px rgba(25,62,53,.15)}
.primary-button,.primary-link{background:#193e35!important;color:white!important;border-radius:13px;min-height:57px;box-shadow:0 12px 25px rgba(25,62,53,.14)}.primary-button:hover:not(:disabled){background:#255345!important}.primary-button:disabled{background:#a9b6ab!important;box-shadow:none}.secondary-button,.text-button{border-radius:12px;color:#214a3b;background:#f3f6f1;border-color:#e4e9e1}.secondary-button:hover,.text-button:hover{background:#e9efe7}
.location-hero h1{max-width:850px}.location-card-grid{gap:20px}.location-card-button{border-radius:24px;padding:32px;min-height:190px}.location-card-copy strong{font-size:21px}.location-card-accent{background:#b9a17a!important}.location-book-label{font-weight:790}.location-group-name{display:none!important}
.site-footer{background:transparent;border-top:1px solid #e0e4dd;color:#84928a}
@media(max-width:900px){.page-shell{width:calc(100% - 36px);margin-top:28px}.booking-header-v2 h1{font-size:clamp(42px,7vw,64px)}}
@media(max-width:600px){.page-shell{width:calc(100% - 24px)}.booking-header-v2 h1{font-size:43px}.booking-stage .flow-panel{padding:25px 18px}.booking-stepper li{min-height:44px;font-size:11px}.package-details{padding:0 12px 18px 45px}.service-option-main{padding:18px 15px}.reservation-summary{padding:24px!important}}

/* FIX65 — Atelier: an editorial, high-end salon booking experience. Presentation only. */
:root{--bg:#f5f3ee;--card:#fffefa;--text:#1b2825;--muted:#777f78;--line:#e5e5dc;--primary:#163f36;--primary-dark:#0e2f28;--shadow:0 28px 65px rgba(20,44,35,.065);--gold:#b69767}
body{background:radial-gradient(ellipse at 97% 0%,rgba(207,220,205,.34),transparent 37%),radial-gradient(ellipse at 0% 46%,rgba(235,225,211,.26),transparent 45%),#f5f3ee;color:#1b2825;-webkit-font-smoothing:antialiased}
.site-header{height:88px;background:rgba(250,249,246,.88);border-bottom:1px solid rgba(28,55,45,.10);backdrop-filter:blur(20px);position:relative;z-index:5}
.brand{font-family:Georgia,"Times New Roman",serif!important;font-weight:600!important;font-size:26px!important;letter-spacing:-.055em!important}.brand::before{content:'✦'!important;background:#153c33!important;color:#f6e8ce!important;font-family:Georgia,serif;border-radius:50%!important;width:37px!important;height:37px!important;font-size:18px!important;box-shadow:0 3px 12px #163f3622}.tagline{font-size:10px;letter-spacing:.23em;color:#838c80}
.page-shell{width:min(1390px,calc(100% - 84px));margin:36px auto 110px}
.booking-header-v2{position:relative;overflow:hidden;min-height:310px;margin:0 0 26px!important;padding:59px 66px!important;border-radius:29px;background:linear-gradient(112deg,#163b32 0%,#1d4d40 64%,#396653 100%);box-shadow:0 24px 56px rgba(24,62,50,.16);isolation:isolate;align-items:flex-start!important}
.booking-header-v2::before{content:'';position:absolute;inset:-45% -9% auto auto;width:570px;height:570px;border:1px solid rgba(255,250,225,.16);border-radius:50%;box-shadow:0 0 0 62px rgba(255,250,225,.035),0 0 0 125px rgba(255,250,225,.025);z-index:-1}.booking-header-v2::after{content:'✳';position:absolute;right:11%;top:25px;font-family:Georgia,serif;font-size:200px;line-height:1;color:rgba(240,231,205,.13);transform:rotate(-18deg);z-index:-1}
.booking-header-v2 .eyebrow{color:#d8bf93!important;font-size:11px!important;letter-spacing:.24em!important;text-transform:uppercase}.booking-header-v2 h1{font-family:Georgia,"Times New Roman",serif;font-weight:400!important;font-size:clamp(45px,5vw,77px)!important;line-height:1.08!important;letter-spacing:-.052em!important;max-width:780px;color:#fffdf4!important;margin:17px 0 17px!important}.booking-header-v2 .hero-period{color:#cdb68a!important}.booking-header-v2 p{color:#d1e0d6!important;font-size:16px!important;line-height:1.7!important;max-width:550px!important}.booking-header-v2 .secondary-button{background:transparent!important;color:#fff9e9!important;border:1px solid #ffffff65!important;min-height:43px;padding:0 19px;border-radius:999px!important;box-shadow:none!important;white-space:nowrap}.booking-header-v2 .secondary-button:hover{background:#ffffff1e!important}
.booking-stepper{margin:0 0 27px!important;gap:0!important;padding:8px 14px!important;border-radius:17px!important;box-shadow:none!important;background:rgba(255,255,252,.76)!important;border:1px solid #e4e7df!important}.booking-stepper li{background:transparent!important;border-radius:10px!important;color:#939a92!important;font-size:12px!important;min-height:50px!important;letter-spacing:.012em}.booking-stepper li:not(:last-child){border-right:1px solid #e8ebe4}.booking-stepper li.active{color:#143d33!important;font-weight:850!important}.booking-stepper li.complete{color:#497765!important}.booking-stepper li.complete::before{color:#4c9271}.booking-stepper li.active::after{content:'';position:absolute;bottom:1px;left:18%;right:18%;height:3px;border-radius:4px;background:#b99863}.booking-stepper li{position:relative}
.booking-workspace{grid-template-columns:minmax(0,1fr) 335px!important;gap:23px!important}.flow-panel,.reservation-summary{border-radius:23px!important;border:1px solid #e6e8e0!important;background:#fffefb!important;box-shadow:0 17px 50px rgba(37,60,45,.045)!important}.booking-stage .flow-panel{padding:clamp(28px,3.5vw,53px)!important}.flow-panel-heading{margin-bottom:35px!important}.flow-panel-heading h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(31px,3.4vw,43px)!important;font-weight:400!important;letter-spacing:-.047em!important;color:#1b382f!important}.flow-panel-heading p{font-size:14px!important;color:#828c83!important}.flow-kicker,.eyebrow,.summary-kicker{color:#a08357!important;letter-spacing:.22em!important;font-weight:800!important;font-size:10px!important}
.category-tabs{gap:8px!important;margin-bottom:28px!important;border-bottom:1px solid #e9ebe4;padding-bottom:17px}.category-tab{padding:12px 20px!important;min-height:46px!important;font-size:13px!important;border-radius:999px!important;background:#fff!important;color:#536e5c!important;border:1px solid #dce4da!important;box-shadow:none!important;transition:background .2s,color .2s,transform .2s}.category-tab:hover{transform:translateY(-1px);border-color:#789886!important}.category-tab.selected{background:#17483b!important;color:#fff!important;box-shadow:0 7px 17px #17483b22!important}
.service-list{gap:12px!important}.service-option{overflow:hidden;border:1px solid #e6e8e3!important;background:#fff!important;border-radius:16px!important;transition:box-shadow .22s,transform .22s,border-color .22s!important}.service-option:hover{border-color:#b9cfc0!important;box-shadow:0 12px 29px #153e3010!important;transform:translateY(-2px)}.service-option.selected{background:#f8faf5!important;border-color:#5b917c!important;box-shadow:inset 0 0 0 1px #5b917c!important}.service-option-main{min-height:102px;padding:22px 24px!important}.choice-box{width:24px;height:24px;border-radius:50%!important;border-color:#c9d8c9!important}.service-copy strong{font-family:Georgia,"Times New Roman",serif;font-size:19px!important;font-weight:500!important;letter-spacing:-.025em!important;color:#243b30!important}.service-copy small{font-size:12px!important;color:#91a096!important}.service-meta span{font-size:12px!important}.service-meta strong{font-size:19px!important;font-weight:700!important;color:#214f3e!important}
.service-package{border-color:#d6daca!important;background:linear-gradient(140deg,#fffdf9,#f8f9f4)!important}.service-package::before{content:'';display:block;height:4px;background:linear-gradient(90deg,#9b7c4c,#ddc99d,#a28352)}.service-label{display:inline-block;color:#a0824c!important;font-size:10px!important;letter-spacing:.17em!important}.package-details{padding:0 22px 23px 63px!important}.package-details-heading{color:#93784d!important;letter-spacing:.17em!important}.package-component{border-radius:11px!important;background:#f9f9f5!important;border:1px solid #eceee8!important;min-height:49px}.package-component-icon{background:#e8eee5!important;color:#38684d!important}.package-component-name{font-weight:650!important}.package-component-price{color:#335e4b!important}
.reservation-summary{padding:30px!important;top:22px!important}.reservation-summary h2{font-family:Georgia,"Times New Roman",serif!important;font-weight:400!important;letter-spacing:-.035em!important;font-size:27px!important;color:#193d30!important}.reservation-summary dl>div{grid-template-columns:90px minmax(0,1fr)!important;gap:12px!important;padding:17px 0!important}.reservation-summary dl dt{color:#8c968e;font-size:12px}.reservation-summary dl dd{color:#25483a;font-weight:700}.summary-intro{font-size:12px!important;color:#8a958c!important}.selected-strip{background:#f7f8f2!important;border:1px solid #e9eee4!important;border-radius:13px!important;padding:22px!important}.selected-strip strong{font-family:Georgia,serif;font-size:18px!important;font-weight:500!important}.section-label{font-size:14px!important;font-weight:750!important;margin:27px 0 15px!important;color:#29483a!important}
.date-cards{gap:9px!important}.date-card{min-height:91px!important;border-radius:12px!important;border:1px solid #e2e8df!important}.date-card:hover,.time-button:hover{border-color:#7eaa93!important;background:#f7faf4!important}.date-card.selected,.time-button.selected{background:#1d5848!important;color:white!important;border-color:#1d5848!important;box-shadow:0 7px 18px #1d584821!important}.selected-date-label{background:#f6f7f2!important;color:#3a6c55!important;font-weight:650!important;padding:13px!important}.time-slot-groups{gap:25px!important}.time-group h4{color:#467f62!important}.time-group h4 span{background:#8fae94!important}.time-group.pm h4{color:#a97c41!important}.time-group.pm h4 span{background:#dcb878!important}.time-grid{gap:10px!important}.time-button{border-radius:11px!important;min-height:49px!important;border:1px solid #e4e9e1!important;background:#fff;font-weight:730!important;transition:all .18s}
.primary-button,.primary-link{background:#17493b!important;border-radius:12px!important;letter-spacing:.015em;box-shadow:0 11px 23px #17493b21!important}.primary-button:hover:not(:disabled){background:#25624f!important;transform:translateY(-1px)}.primary-button:disabled{box-shadow:none!important}.text-button{background:#f1f5ee!important;color:#315947!important;border-radius:999px!important;font-size:12px!important}.technician-option{border-radius:13px!important}.tech-avatar{background:#e5eee5!important;color:#265843!important}.flow-actions{margin-top:22px!important;padding-top:20px!important;border-top:1px solid #e9ede5}.empty-state{background:#fcfcf8;border:1px dashed #d4ded3!important;border-radius:13px!important;color:#85948a!important}
.location-hero h1,.group-directory-header h1{font-family:Georgia,"Times New Roman",serif;font-weight:400!important}.location-card-button,.merchant-button,.group-list-button{border-radius:17px!important;background:#fffefa!important;box-shadow:0 18px 45px #1c402409!important;border-color:#e6ebe3!important}.location-card-button:hover,.merchant-button:hover,.group-list-button:hover{box-shadow:0 22px 48px #163e3016!important}.location-logo,.group-avatar,.merchant-icon{background:#e7efe7!important;color:#215740!important}.site-footer{font-size:11px!important;letter-spacing:.04em;border-color:#e0e5dd!important}
@media(max-width:1080px){.booking-workspace{grid-template-columns:minmax(0,1fr) 290px!important}.booking-header-v2{padding:48px!important}}
@media(max-width:900px){.page-shell{width:calc(100% - 36px)!important}.booking-workspace{grid-template-columns:1fr!important}.reservation-summary{position:static!important}.booking-header-v2{min-height:270px}}
@media(max-width:600px){.site-header{height:72px!important}.page-shell{width:calc(100% - 22px)!important;margin-top:14px!important}.booking-header-v2{padding:32px 23px!important;min-height:280px!important;border-radius:19px!important;flex-direction:column!important;gap:14px!important}.booking-header-v2 h1{font-size:43px!important}.booking-header-v2 p{font-size:13px!important}.booking-header-v2::after{font-size:130px;right:-15px;top:35px}.booking-header-v2 .secondary-button{min-height:38px!important}.booking-stepper{padding:7px!important;grid-template-columns:repeat(3,1fr)!important}.booking-stepper li{border:0!important;min-height:43px!important;font-size:10px!important}.booking-stage .flow-panel{padding:26px 18px!important}.flow-panel-heading h2{font-size:34px!important}.service-option-main{padding:19px 16px!important}.service-copy strong{font-size:18px!important}.service-meta{width:100%;justify-content:space-between}.package-details{padding:0 13px 18px 45px!important}.date-cards{grid-template-columns:repeat(4,minmax(0,1fr))!important}.time-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.reservation-summary{padding:25px!important}.site-footer{gap:12px;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.service-option,.category-tab,.primary-button{transition:none!important;transform:none!important}}


/* FIX66 • cinematic luxury landing page with generated salon background */
.home-hero-v2 {
    position: relative;
    overflow: hidden;
    min-height: 520px;
    margin-bottom: 34px;
    padding: clamp(34px, 4vw, 54px);
    border-radius: 34px;
    border: 1px solid rgba(221, 226, 219, .9);
    background:
        linear-gradient(104deg, rgba(14, 39, 32, .86) 0%, rgba(14, 39, 32, .72) 34%, rgba(14, 39, 32, .22) 63%, rgba(14, 39, 32, .08) 100%),
        url('../images/home-hero-salon.png') center center / cover no-repeat;
    box-shadow: 0 28px 80px rgba(23, 47, 35, .12);
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, 360px);
    gap: 28px;
    align-items: end;
}

.home-hero-scrim {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 18% 18%, rgba(255,255,255,.16), transparent 26%),
        linear-gradient(to top, rgba(0,0,0,.08), transparent 32%);
    pointer-events: none;
}

.home-hero-content,
.home-hero-panel {
    position: relative;
    z-index: 1;
}

.home-hero-content {
    max-width: 720px;
}

.home-hero-v2 .eyebrow {
    color: #d9c29a !important;
    letter-spacing: .24em !important;
    font-size: 11px !important;
}

.home-hero-v2 h1 {
    margin: 14px 0 14px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(46px, 6vw, 84px);
    font-weight: 400;
    line-height: .98;
    letter-spacing: -.055em;
    color: #fffaf0;
    max-width: 12ch;
}

.home-hero-v2 p {
    max-width: 560px;
    margin: 0;
    font-size: 18px;
    line-height: 1.75;
    color: rgba(245, 241, 232, .92);
}

.home-hero-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
}

.hero-pill {
    min-height: 40px;
    padding: 10px 16px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.22);
    background: rgba(255,255,255,.12);
    color: #fffaf1;
    font-size: 13px;
    font-weight: 700;
    backdrop-filter: blur(14px);
}

.hero-pill-solid {
    background: rgba(217, 194, 154, .18);
    border-color: rgba(217, 194, 154, .45);
    color: #fff6e6;
}

.home-hero-panel {
    padding: 26px 24px;
    border-radius: 26px;
    background: rgba(255, 251, 243, .9);
    border: 1px solid rgba(255,255,255,.55);
    box-shadow: 0 22px 54px rgba(8, 22, 17, .10);
    backdrop-filter: blur(16px);
}

.home-hero-panel-kicker {
    margin-bottom: 12px;
    color: #8d7346;
    letter-spacing: .16em;
    font-size: 11px;
    font-weight: 800;
}

.home-hero-panel-title {
    margin-bottom: 16px;
    color: #18362d;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 28px;
    line-height: 1.08;
    letter-spacing: -.04em;
}

.home-hero-features {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.home-hero-features li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: #52665f;
    font-size: 14px;
    line-height: 1.6;
}

.home-hero-features li::before {
    content: '✦';
    color: #9b7f52;
    font-size: 13px;
    margin-top: 2px;
}

.home-location-section {
    padding: 6px 0 10px;
}

.home-location-section-header {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 20px;
    margin-bottom: 22px;
}

.home-location-section-header h2 {
    margin: 10px 0 6px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 3vw, 48px);
    font-weight: 400;
    letter-spacing: -.045em;
    color: #19382f;
}

.home-location-section-header p {
    margin: 0;
    font-size: 15px;
}

.location-card-grid-premium {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 22px;
}

.location-card-button-premium {
    min-height: 260px;
    padding: 24px;
    border-radius: 28px !important;
    border: 1px solid #e7e9e2 !important;
    background:
        radial-gradient(circle at 100% 0%, rgba(217, 194, 154, .28), transparent 30%),
        linear-gradient(180deg, #fffefb 0%, #fbfaf7 100%) !important;
    box-shadow: 0 18px 44px rgba(26, 52, 41, .06) !important;
}

.location-card-button-premium:hover {
    transform: translateY(-6px);
    border-color: #d1d9cf !important;
    box-shadow: 0 26px 56px rgba(26, 52, 41, .10) !important;
}

.location-card-button-premium .location-card-accent {
    width: 6px;
    background: linear-gradient(180deg, #b79463, #dcc79c);
}

.premium-top {
    align-items: center;
}

.premium-logo {
    width: 64px;
    height: 64px;
    border-radius: 20px !important;
    background: linear-gradient(135deg, #e9efe6 0%, #dfe9e2 100%) !important;
    color: #1c5948 !important;
    font-size: 24px !important;
    box-shadow: inset 0 0 0 1px rgba(28, 89, 72, .06);
}

.location-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 12px;
    border-radius: 999px;
    background: #eef4ef;
    color: #2d6757;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.premium-copy {
    gap: 10px;
}

.premium-copy strong {
    font-size: 28px !important;
    line-height: 1.08;
    letter-spacing: -.035em;
    color: #16342b !important;
}

.premium-copy small {
    font-size: 14px;
    color: #6d7975 !important;
}

.location-secondary {
    color: #97a09d !important;
}

.location-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-top: auto;
}

.location-card-note {
    color: #8b948f;
    font-size: 12px;
    line-height: 1.45;
}

.location-card-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding: 0 16px;
    border-radius: 999px;
    background: #163d32;
    color: #fff9ef;
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
    box-shadow: 0 10px 20px rgba(22, 61, 50, .12);
}

@media (max-width: 980px) {
    .home-hero-v2 {
        grid-template-columns: 1fr;
        min-height: 0;
        align-items: start;
    }

    .home-hero-content {
        max-width: none;
    }
}

@media (max-width: 720px) {
    .home-hero-v2 {
        padding: 28px 22px;
        border-radius: 24px;
        margin-bottom: 24px;
    }

    .home-hero-v2 h1 {
        font-size: 46px;
        max-width: 10ch;
    }

    .home-hero-v2 p {
        font-size: 15px;
    }

    .home-hero-panel {
        padding: 20px 18px;
        border-radius: 20px;
    }

    .location-card-button-premium {
        min-height: 230px;
        padding: 20px;
    }

    .premium-copy strong {
        font-size: 24px !important;
    }

    .location-card-footer {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* FIX68 - consistent location-card grid and heights */
.location-card-grid.location-card-grid-premium {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    gap: 22px;
}
.location-card.location-card-premium {
    display: flex;
    min-width: 0;
    height: 100%;
}
.location-card-button.location-card-button-premium {
    height: 316px;
    min-height: 316px;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 18px;
}
.location-card-button-premium .premium-top { flex: 0 0 auto; }
.location-card-button-premium .premium-copy {
    flex: 1 1 auto;
    min-height: 0;
    gap: 7px;
}
.location-card-button-premium .premium-copy strong {
    font-size: clamp(20px, 1.6vw, 26px) !important;
    overflow-wrap: anywhere;
}
.location-card-button-premium .location-card-footer {
    width: 100%;
    margin-top: auto;
    flex: 0 0 auto;
    gap: 10px;
}
.location-card-button-premium .location-card-note {
    max-width: 120px;
}
.location-card-button-premium .location-card-cta {
    flex-shrink: 0;
}
@media (max-width: 1150px) {
    .location-card-grid.location-card-grid-premium {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 850px) {
    .location-card-grid.location-card-grid-premium {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 560px) {
    .location-card-grid.location-card-grid-premium {
        grid-template-columns: minmax(0, 1fr);
    }
    .location-card-button.location-card-button-premium {
        height: 286px;
        min-height: 286px;
    }
    .location-card-button-premium .location-card-footer {
        flex-direction: row;
        align-items: center;
    }
}


/* FIX70 - image-backed equal-height location cards */
.location-card-grid.location-card-grid-premium { grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;align-items:stretch; }
.location-card.location-card-premium { display:block;height:100%;min-width:0;margin:0; }
.location-card-button.location-card-button-premium.location-photo-card {
  width:100%;height:374px;min-height:374px;padding:0!important;gap:0!important;
  display:flex;flex-direction:column;justify-content:stretch;overflow:hidden;
  border:1px solid #e1e6dd!important;border-radius:23px!important;
  background:#fffefb!important;text-align:left;box-shadow:0 13px 34px rgba(29,50,40,.09)!important;
  transition:transform .23s ease,box-shadow .23s ease!important;
}
.location-photo-card:hover { transform:translateY(-5px);box-shadow:0 23px 48px rgba(29,50,40,.16)!important; }
.location-photo-cover { position:relative;display:block;flex:0 0 174px;width:100%;background-position:center;background-size:cover;overflow:hidden;transition:background-size .2s ease; }
.location-photo-monogram { position:absolute;top:17px;left:17px;display:grid;place-items:center;width:45px;height:45px;border-radius:12px;background:rgba(255,255,251,.95);color:#174a3a;font-weight:850;font-size:19px;box-shadow:0 3px 14px #173d3025; }
.location-photo-status { position:absolute;top:20px;right:15px;padding:9px 11px;border-radius:30px;background:#fffffff0;color:#225b47;font-size:10px;letter-spacing:.075em;font-weight:850;white-space:nowrap; }
.location-photo-status span { color:#54a77b;font-size:8px;vertical-align:1px; }
.location-photo-body { display:flex;flex-direction:column;flex:1;min-height:0;gap:6px;padding:19px 19px 17px; }
.location-photo-name { display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:53px;max-height:53px;font-family:Georgia,'Times New Roman',serif;font-size:23px;font-weight:600;line-height:1.12;letter-spacing:-.025em;color:#18392e;overflow-wrap:anywhere; }
.location-photo-subtitle { font-size:12px;line-height:1.4;color:#7b8c80;white-space:nowrap;text-overflow:ellipsis;overflow:hidden; }
.location-photo-footer { display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:12px;border-top:1px solid #edf0e9; }
.location-photo-description { color:#829388;font-size:10px;line-height:1.4;max-width:115px; }
.location-photo-cta { display:inline-flex;align-items:center;gap:7px;justify-content:center;background:#194b3c;color:#fff;min-height:37px;padding:0 13px;border-radius:999px;white-space:nowrap;font-size:12px;font-weight:750; }
.location-photo-cta span { font-size:16px;font-weight:400; }
.location-photo-card:focus-visible { outline:3px solid #d0ae73;outline-offset:3px; }
@media(max-width:1180px){.location-card-grid.location-card-grid-premium{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:860px){.location-card-grid.location-card-grid-premium{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:570px){.location-card-grid.location-card-grid-premium{grid-template-columns:1fr;gap:18px}.location-card-button.location-card-button-premium.location-photo-card{height:354px;min-height:354px}.location-photo-cover{flex-basis:165px}.location-photo-name{min-height:47px;max-height:47px}}
@media(prefers-reduced-motion:reduce){.location-photo-card{transition:none!important}.location-photo-card:hover{transform:none!important}}

/* FIX74 — clean booking hero photo, no SVG decoration. */
.booking-header-v2{background-image:linear-gradient(105deg,rgba(15,54,44,.94) 0%,rgba(22,79,63,.86) 55%,rgba(47,103,80,.70) 100%),url('/images/home-hero-salon.png')!important;background-size:cover!important;background-position:center right!important}
.booking-header-v2::after{display:none!important}
.service-option-main{min-width:0!important}
.service-meta{flex:0 0 auto;display:flex;align-items:center;gap:16px!important;white-space:nowrap}
.service-time{white-space:nowrap}.service-meta strong{white-space:nowrap}
.service-package .service-label{font-size:11px!important;line-height:1.5!important}
@media(max-width:700px){.service-meta{grid-column:2;max-width:100%;flex-wrap:wrap;gap:8px!important}.service-option-main{flex-wrap:wrap!important}}

/* FIX75: clean typography-only booking progress; remove all decorative step icons. */
#bookingStepper.booking-stepper {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 0 !important;
    align-items: stretch;
    padding: 8px !important;
}
#bookingStepper.booking-stepper li {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: row !important;
    min-width: 0;
    min-height: 52px !important;
    padding: 12px 5px !important;
    font-size: 13px !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
    text-align: center;
    white-space: normal;
    background: transparent !important;
    border-radius: 9px !important;
}
#bookingStepper.booking-stepper li::before,
#bookingStepper.booking-stepper li::after,
#bookingStepper.booking-stepper li .step-icon {
    display: none !important;
    content: none !important;
}
#bookingStepper.booking-stepper li.active {
    color: #1d5141 !important;
    background: #ecf2ec !important;
    box-shadow: inset 0 -3px #b79562;
}
#bookingStepper.booking-stepper li.complete {
    color: #416b58 !important;
    background: transparent !important;
}
@media (max-width: 700px) {
    #bookingStepper.booking-stepper {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 4px !important;
    }
    #bookingStepper.booking-stepper li {
        min-height: 46px !important;
        font-size: 12px !important;
        border: 0 !important;
    }
}

/* FIX76: five visible steps; internal booking state numbers are unchanged. */
#bookingStepper.booking-stepper { grid-template-columns:repeat(5,minmax(0,1fr))!important; }
@media(max-width:700px){#bookingStepper.booking-stepper{grid-template-columns:repeat(3,minmax(0,1fr))!important;}}

/* FIX77: five-step booking progress, regardless of older responsive overrides. */
#bookingStepper.booking-stepper { display:grid !important; grid-template-columns:repeat(5,minmax(0,1fr)) !important; width:100%; gap:0 !important; }
#bookingStepper.booking-stepper>li { min-width:0; font-size:clamp(10px,1.1vw,14px); overflow-wrap:normal; white-space:nowrap; }
#bookingStepper.booking-stepper>li::before,#bookingStepper.booking-stepper>li::after {content:none !important;display:none !important;}
@media(max-width:700px){#bookingStepper.booking-stepper{grid-template-columns:repeat(5,minmax(0,1fr)) !important;}#bookingStepper.booking-stepper>li{padding:10px 2px !important;font-size:clamp(9px,2vw,11px) !important;}}

/* Fix78: exactly five equal-width booking progress items */
#bookingStepper.booking-stepper{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;}
#bookingStepper.booking-stepper>li{min-width:0;box-sizing:border-box;white-space:nowrap;}
@media(max-width:700px){#bookingStepper.booking-stepper{grid-template-columns:repeat(5,minmax(0,1fr))!important}#bookingStepper.booking-stepper>li{font-size:clamp(9px,2vw,11px)!important;padding:9px 2px!important}}


/* FIX79 • refined premium five-step progress and equal-width service-category buttons */
#bookingStepper.booking-stepper {
    display:grid !important;
    grid-template-columns: repeat(5,minmax(0,1fr)) !important;
    gap: 4px !important;
    padding: 7px !important;
    margin: 0 0 27px !important;
    border: 1px solid #e6e9e1 !important;
    border-radius: 999px !important;
    background: #fffdfa !important;
    box-shadow: 0 12px 33px rgba(23,55,42,.045) !important;
    list-style:none !important;
}
#bookingStepper.booking-stepper > li {
    position:relative !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:center !important;
    gap: 10px !important;
    min-width:0 !important;
    min-height:66px !important;
    padding: 10px 7px !important;
    background:transparent !important;
    border:0 !important;
    border-radius:999px !important;
    box-shadow:none !important;
    white-space:nowrap !important;
    font-size:clamp(11px,1.1vw,15px) !important;
    font-weight:700 !important;
    color:#75857c !important;
    line-height:1.2 !important;
    letter-spacing:0 !important;
}
#bookingStepper.booking-stepper > li::before {
    content:attr(data-display-number) !important;
    position:static !important;
    display:inline-grid !important;
    place-items:center !important;
    flex:0 0 32px !important;
    width:32px !important;
    height:32px !important;
    border:0 !important;
    border-radius:50% !important;
    background:#f0f2ed !important;
    color:#63766b !important;
    font-size:14px !important;
    font-weight:800 !important;
    box-shadow:none !important;
}
#bookingStepper.booking-stepper > li:nth-child(1)::before { content:'1' !important; }
#bookingStepper.booking-stepper > li:nth-child(2)::before { content:'2' !important; }
#bookingStepper.booking-stepper > li:nth-child(3)::before { content:'3' !important; }
#bookingStepper.booking-stepper > li:nth-child(4)::before { content:'4' !important; }
#bookingStepper.booking-stepper > li:nth-child(5)::before { content:'5' !important; }
#bookingStepper.booking-stepper > li::after { content:none !important; display:none !important; }
#bookingStepper.booking-stepper > li.active {
    background:linear-gradient(135deg,#245d4a,#153f32) !important;
    color:#fffefa !important;
    box-shadow:0 8px 19px rgba(18,67,48,.14) !important;
}
#bookingStepper.booking-stepper > li.active::before {
    color:#fff !important;
    background:rgba(255,255,255,.20) !important;
}
#bookingStepper.booking-stepper > li.complete { color:#376d56 !important; background:transparent !important; }
#bookingStepper.booking-stepper > li.complete::before { background:#e6f0e7 !important; color:#24543f !important; }
#categoryTabs.category-tabs { display:flex !important; flex-wrap:wrap !important; align-items:stretch !important; gap:10px !important; }
#categoryTabs.category-tabs > .category-tab {
    flex:0 0 150px !important;
    width:150px !important;
    min-width:150px !important;
    max-width:150px !important;
    min-height:50px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    white-space:nowrap !important;
    border-radius:999px !important;
    padding:12px 15px !important;
    font-weight:750 !important;
}
#categoryTabs.category-tabs > .category-tab.selected { box-shadow:0 8px 20px rgba(23,72,59,.12) !important; }
@media (max-width: 780px) {
    #bookingStepper.booking-stepper { border-radius:24px !important; gap:2px !important; padding:5px !important; }
    #bookingStepper.booking-stepper > li { flex-direction:column !important; gap:4px !important; min-height:66px !important; padding:7px 2px !important; font-size:clamp(9px,1.7vw,12px) !important; }
    #bookingStepper.booking-stepper > li::before { flex:0 0 23px !important; width:23px !important; height:23px !important; font-size:11px !important; }
}
@media(max-width:410px){
    #bookingStepper.booking-stepper > li { font-size:9px !important; }
    #categoryTabs.category-tabs > .category-tab { flex-basis:calc(50% - 5px) !important; min-width:0 !important; width:calc(50% - 5px) !important; max-width:none !important; }
}


/* FIX80: show the original backend-ready hero photograph without a color overlay. */
.booking-header-v2 {
    background: #f6f1e8 url('/images/home-hero-salon.png') center center / cover no-repeat !important;
    background-image: url('/images/home-hero-salon.png') !important;
    background-size: cover !important;
    background-position: center center !important;
    background-blend-mode: normal !important;
    min-height: 340px;
    box-shadow: 0 18px 45px rgba(37, 49, 41, .10) !important;
    isolation: auto !important;
}
.booking-header-v2::before,
.booking-header-v2::after {
    content: none !important;
    display: none !important;
}
.booking-header-v2 > div:first-child,
.booking-header-v2 > form {
    position: relative;
    z-index: 1;
}
.booking-header-v2 .eyebrow {
    color: #967646 !important;
    text-shadow: none !important;
}
.booking-header-v2 h1 {
    color: #142923 !important;
    text-shadow: none !important;
    max-width: 710px !important;
}
.booking-header-v2 .hero-period {
    color: #b89b6a !important;
}
.booking-header-v2 p {
    color: #3f524a !important;
    text-shadow: none !important;
    max-width: 540px !important;
}
.booking-header-v2 .secondary-button {
    background: rgba(255, 255, 255, .82) !important;
    color: #193d32 !important;
    border: 1px solid rgba(35, 67, 51, .18) !important;
    backdrop-filter: blur(8px);
    box-shadow: 0 4px 14px rgba(22, 50, 37, .08) !important;
}
.booking-header-v2 .secondary-button:hover {
    background: #fff !important;
    color: #123d2e !important;
}
@media (max-width: 600px) {
    .booking-header-v2 {
        background-position: 38% center !important;
    }
    .booking-header-v2 h1 {
        font-size: clamp(34px, 9vw, 43px) !important;
    }
}

/* FIX82: optional customer birthday and email fields */
.customer-optional-fields{align-items:start;margin-top:18px}.customer-optional-fields input{min-width:0}.customer-optional-fields input[type=date]{color-scheme:light}.customer-optional-fields .optional{font-size:.82em;font-weight:500;color:#8d998f;margin-left:6px}@media(max-width:640px){.customer-optional-fields{grid-template-columns:1fr!important}}

/* FIX83: equal heights for both name controls, regardless of browser defaults. */
#stepContact .field-grid.two {align-items:stretch;}
#stepContact .field-grid.two .field-group {display:flex;flex-direction:column;min-width:0;}
#stepContact .field-grid.two input {box-sizing:border-box!important;display:block!important;width:100%!important;height:68px!important;min-height:68px!important;max-height:68px!important;padding:14px 20px!important;margin:0!important;line-height:1.35!important;appearance:none;-webkit-appearance:none;}
@media(max-width:640px){#stepContact .field-grid.two input{height:58px!important;min-height:58px!important;max-height:58px!important;}}

/* FIX89 — service modifier groups (no SVG or decorative icons). */
.service-option { display: block; width: 100%; overflow: hidden; }
.service-select { width: 100%; display: block; border: 0; padding: 0; margin: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; font: inherit; }
.service-option .service-select:focus-visible { outline: 2px solid #2b6854; outline-offset: -3px; border-radius: 14px; }
.service-option .service-option-main { display: flex; width: 100%; }
.service-option .service-meta { margin-left: auto; min-width: 150px; flex-shrink: 0; text-align: right; }
.service-option .service-meta strong { white-space: nowrap; }
.service-option .choice-box { width: 21px; height: 21px; border-radius: 50%; border: 1px solid #a9c0af; background: #fff; flex: 0 0 21px; }
.service-option.selected .choice-box { background: #1c5140; box-shadow: inset 0 0 0 5px #fff; border-color: #1c5140; }
.booking-component { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 10px; align-items: center; }
.booking-component .booking-modifiers { grid-column: 1 / -1; width: 100%; }
.booking-modifiers { margin: 12px 20px 18px 46px; padding: 16px 18px; max-width: calc(100% - 66px); border-radius: 15px; background: #f8f9f6; border: 1px solid #e2e8e0; }
.booking-component .booking-modifiers { margin: 12px 0 0; max-width: 100%; }
.modifier-title { display: block; font-size: 13px; color: #48695a; margin-bottom: 12px; font-weight: 700; }
.modifier-group { border: 0; min-width: 0; padding: 0; margin: 0 0 16px; }
.modifier-group:last-child { margin-bottom: 0; }
.modifier-group legend { padding: 0; margin: 0 0 9px; color: #1c3b2f; font-size: 14px; font-weight: 700; }
.modifier-required { font-size: 11px; color: #9b7544; font-weight: 600; margin-left: 6px; }
.modifier-values { display: grid; gap: 6px; }
.modifier-value { display: flex; align-items: center; gap: 12px; min-height: 39px; cursor: pointer; font-size: 13px; color: #355449; }
.modifier-value input { width: 17px; height: 17px; min-width: 17px; margin: 0; accent-color: #1c5140; }
.modifier-cost { margin-left: auto; color: #697e71; font-size: 12px; white-space: nowrap; }
.modifier-error { color: #ad3c32; display: block; font-size: 12px; min-height: 0; }
@media(max-width:600px) { .booking-modifiers { margin: 10px 12px 16px; max-width: calc(100% - 24px); padding: 12px; } .service-option .service-meta { min-width: auto; } }

/* FIX93: POS-inspired compact nested modifier layout. */
.service-option .booking-modifiers {margin:8px 16px 20px 49px!important;max-width:calc(100% - 65px)!important;padding:12px 15px 14px!important;background:#fff!important;border:1px solid #e5e8ee!important;border-radius:9px!important;}
.booking-modifiers .modifier-title {font-size:12px!important;font-weight:600!important;color:#8a98a8!important;margin:0 0 10px!important;}
.booking-modifiers .modifier-group {margin:0 0 16px!important;padding:0 0 0 13px!important;border:0!important;min-width:0;}
.booking-modifiers .modifier-group:last-child {margin-bottom:0!important;}
.booking-modifiers .modifier-group legend {font-size:15px!important;font-weight:700!important;margin:0 0 6px!important;padding:0!important;color:#203d35!important;}
.booking-modifiers .modifier-values {display:grid!important;gap:3px!important;}
.booking-modifiers .modifier-value {display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(82px,auto)!important;gap:10px!important;align-items:center!important;min-height:34px!important;font-size:13px!important;color:#415b55!important;cursor:default!important;}
.booking-modifiers .modifier-option-label {display:flex;align-items:center;gap:10px;min-width:0;cursor:pointer;}
.booking-modifiers .modifier-option-label input {width:18px;height:18px;flex:0 0 18px;accent-color:#1c5140;margin:0;}
.booking-modifiers .modifier-quantity {display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.booking-modifiers .modifier-qty-btn {width:25px;height:25px;padding:0;border:0;border-radius:5px;background:#275d4b;color:white;font-size:17px;line-height:1;cursor:pointer;}
.booking-modifiers .modifier-qty-btn:hover {background:#1b4437;}
.booking-modifiers .modifier-qty-count {min-width:13px;text-align:center;font-size:12px;}
.booking-modifiers .modifier-cost {min-width:82px;margin:0!important;text-align:right;color:#52675e!important;font-size:12px!important;white-space:nowrap;}
.booking-modifiers .modifier-required {font-size:11px!important;margin-left:7px;}
.package-component.booking-component .booking-modifiers {margin:9px 0 4px 17px!important;max-width:calc(100% - 17px)!important;}
@media(max-width:650px){.service-option .booking-modifiers{margin:8px 8px 14px 29px!important;max-width:calc(100% - 37px)!important;padding:10px!important}.booking-modifiers .modifier-group{padding-left:8px!important}.booking-modifiers .modifier-value{grid-template-columns:minmax(0,1fr) auto auto!important;gap:5px!important}.booking-modifiers .modifier-cost{min-width:54px!important}}

/* Fix96: each package component has an independent technician selection. */
.package-technician-list {display:grid;gap:15px;}
.package-tech-group {padding:20px 22px;border:1px solid #dce8df;border-radius:18px;background:#fbfcfa;}
.package-tech-group h3 {font-family:inherit;font-size:17px;font-weight:750;color:#194d3b;margin:0 0 7px;}
.package-tech-group p {font-size:13px;color:#74847c;margin:0 0 14px;}
.package-tech-select {width:100%;min-height:52px;border-radius:12px;background:#fff;border:1px solid #cfded4;padding:10px 14px;font-size:15px;color:#213d31;}
.package-tech-select:focus {outline:2px solid #337b60;outline-offset:2px;}

/* Fix97: clean, accessible package staff selection including Anybody. */
.package-tech-select {cursor:pointer;}
.package-tech-select option {color:#183c30;}


/* FIX112 — editable portal search UI (shared Home only). */
.salon-search{margin:22px 0 24px;padding:23px;border:1px solid #dfebe2;background:#fff;border-radius:22px;box-shadow:0 12px 30px rgba(21,55,40,.05)}
.salon-search-primary{display:grid;grid-template-columns:minmax(0,2fr) minmax(135px,1fr) auto;gap:12px;align-items:end}
.salon-search-secondary{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:14px}
.salon-search-field{display:grid;gap:6px;min-width:105px;flex:1;font-family:inherit;font-size:12px;font-weight:600;color:#577268}
.salon-search-field input,.salon-search-field select{height:45px;width:100%;box-sizing:border-box;padding:0 13px;border:1px solid #d7e5dc;border-radius:11px;background:#fafbf9;color:#183f32;font:inherit;font-size:14px;outline-offset:2px}
.salon-search-field input:focus,.salon-search-field select:focus{border-color:#2b7254;outline:2px solid #d7eadc}
.salon-search-submit{min-height:45px;padding:0 25px;border:0;border-radius:11px;background:#194d3c;color:#fff;cursor:pointer;font-weight:700}
.salon-near-me{min-height:45px;padding:0 16px;border:1px solid #bcd4c7;background:#f3faf5;color:#20543f;border-radius:11px;cursor:pointer;font-weight:700}
.salon-search-reset{padding:11px 4px;color:#4b7161;text-decoration:underline;font-size:13px}
.salon-search-feedback{margin:4px 0 0;font-size:13px;color:#56776a}
.salon-search-feedback:empty{display:none}
.salon-search-results-header{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px;color:#60796c;font-size:13px}
.salon-search-pagination{display:flex;justify-content:center;align-items:center;gap:20px;padding:25px 0;color:#3e6452}
.salon-search-pagination a{color:#164b39;text-decoration:none;font-weight:700;padding:10px 15px;border:1px solid #d2dfd7;border-radius:10px}
.salon-search-pagination a.is-disabled{visibility:hidden;pointer-events:none}
@media(max-width:740px){.salon-search-primary{grid-template-columns:1fr}.salon-search-secondary{display:grid;grid-template-columns:1fr 1fr}.salon-search-reset{align-self:center}.salon-search{padding:16px}.salon-search-results-header{flex-wrap:wrap}}

/* FIX113: Portal-style Home, inspired by modern appointment marketplaces.
   All rules are scoped to .portal-home; Booking flow remains unchanged. */
.portal-home{background:#fff;color:#202c29;font-family:Inter,Arial,Helvetica,sans-serif}
.portal-home .portal-navbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4.5vw,76px);background:#fff;border-bottom:1px solid #e6ebe8}
.portal-home .portal-logo{display:inline-flex;gap:2px;align-items:center;text-decoration:none;font-family:Georgia,serif;font-size:27px;font-weight:700;color:#153f35;letter-spacing:-.035em}
.portal-home .portal-logo>span:last-child{font-weight:400}
.portal-home .portal-logo-mark{display:grid;place-items:center;border-radius:50%;width:32px;height:32px;margin-right:9px;background:#194b3e;color:#fff;font-family:Arial,sans-serif;font-size:19px}
.portal-home .portal-links{display:flex;gap:32px;align-items:center}
.portal-home .portal-links a{font-size:13px;font-weight:650;color:#354b44;text-decoration:none}
.portal-home .portal-links .portal-nav-highlight{background:#194d3c;color:white;padding:13px 18px;border-radius:7px}
.portal-home .portal-hero{position:relative;min-height:530px;display:flex;align-items:center;justify-content:center;isolation:isolate;background:#24372f url('/images/home-hero-salon.png') center 49% / cover no-repeat}
.portal-home .portal-hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(10,37,30,.87),rgba(10,37,30,.43) 60%,rgba(10,37,30,.38))}
.portal-home .portal-hero-inner{position:relative;width:min(1140px,calc(100% - 44px));padding:67px 0 65px;margin:auto;text-align:center;color:#fff}
.portal-home .portal-eyebrow{font-size:11px;letter-spacing:.24em;color:#d9e5db;font-weight:800}
.portal-home .portal-hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(46px,5.3vw,78px);line-height:1.08;letter-spacing:-.04em;font-weight:400;margin:18px auto 16px;max-width:910px;color:#fff}
.portal-home .portal-hero h1 em{color:#f0dcb6;font-style:italic}
.portal-home .portal-hero-inner>p{font-size:16px;line-height:1.6;color:#eef2ee;max-width:620px;margin:0 auto 28px}
.portal-home .portal-search{background:#fff;padding:9px;border-radius:12px;max-width:930px;margin:0 auto;box-shadow:0 14px 40px #0002;text-align:left}
.portal-home .portal-search-main{display:grid;grid-template-columns:1.4fr .7fr auto;align-items:stretch}
.portal-home .portal-search-cell{padding:7px 17px;min-width:0;display:grid;gap:4px}
.portal-home .portal-search-keyword{border-right:1px solid #e6e9e6}
.portal-home .portal-search-cell>span:first-child{color:#52615a;font-size:11px;font-weight:750;letter-spacing:.02em}
.portal-home .portal-search-entry{display:flex;align-items:center;gap:10px}
.portal-home .portal-search-entry svg{width:20px;height:20px;flex:none;fill:none;stroke:#6f8a7e;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.portal-home .portal-search-entry input{width:100%;border:0;outline:none;background:transparent;height:27px;color:#1e3d32;font:inherit;font-size:14px;min-width:0}
.portal-home .portal-search-entry input::placeholder{color:#91a097}
.portal-home .portal-search-button{border:0;border-radius:8px;background:#bd553f;color:white;min-width:144px;padding:0 22px;font-size:15px;font-weight:800;cursor:pointer}
.portal-home .portal-search-button:hover{background:#a94331}
.portal-home .portal-advanced{margin:8px 8px 0;border-top:1px solid #ebeeeb;padding:10px 8px 2px;color:#354c40}
.portal-home .portal-advanced summary{font-size:12px;font-weight:700;cursor:pointer;user-select:none;list-style:none}
.portal-home .portal-advanced summary::-webkit-details-marker{display:none}
.portal-home .portal-advanced summary span{margin-left:5px}
.portal-home .portal-advanced-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0 8px}
.portal-home .portal-advanced-grid label{display:grid;gap:5px;font-size:12px;font-weight:650;color:#52655b}
.portal-home .portal-advanced-grid input,.portal-home .portal-advanced-grid select{height:38px;padding:0 10px;border:1px solid #dce5de;border-radius:7px;min-width:0;width:100%;background:white;color:#294b3d;font-size:13px}
.portal-home .portal-location-status{margin:5px 10px 0;color:#4d6558;font-size:12px}
.portal-home .portal-location-status:empty{display:none}
.portal-home .portal-search-shortcuts{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px;margin-top:20px}
.portal-home .portal-search-shortcuts>span{color:#edf1eb;font-size:12px;margin-right:5px}
.portal-home .portal-shortcut{border:1px solid #ffffff9c;background:#ffffff19;color:white;padding:10px 17px;line-height:1;border-radius:30px;font-size:12px;font-weight:650;text-decoration:none;cursor:pointer}
.portal-home .portal-shortcut:hover,.portal-home .portal-shortcut-highlight{background:#fff;color:#204b3c}
.portal-home .portal-explore,.portal-home .portal-directory{width:min(1370px,calc(100% - 74px));margin:0 auto;padding:60px 0 18px}
.portal-home .portal-section-heading{display:flex;gap:22px;align-items:end;justify-content:space-between;margin-bottom:25px}
.portal-home .portal-section-kicker{display:block;color:#a3734c;font-size:11px;font-weight:800;letter-spacing:.18em;margin-bottom:10px}
.portal-home .portal-section-heading h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(29px,3vw,43px);color:#203f33;letter-spacing:-.03em;line-height:1.12;margin:0}
.portal-home .portal-section-heading p{color:#667e70;font-size:13px;max-width:340px;line-height:1.6;margin:0}
.portal-home .portal-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.portal-home .portal-benefit{display:flex;align-items:center;gap:16px;border:1px solid #e7ede7;border-radius:15px;padding:23px;background:#f9fbf8;min-width:0}
.portal-home .portal-benefit-icon{display:grid;place-items:center;background:#e5f1ea;border-radius:12px;width:52px;height:52px;flex:none;font-size:27px;color:#2d6b52}
.portal-home .portal-benefit div{display:grid;gap:6px;min-width:0}
.portal-home .portal-benefit strong{font-size:15px;color:#244738}
.portal-home .portal-benefit div span{font-size:12px;color:#6d8075;line-height:1.55}
.portal-home .portal-directory{padding-top:48px;padding-bottom:75px}
.portal-home .portal-directory-meta{color:#607369;font-size:12px}
.portal-home .portal-directory-meta strong{font-size:15px;color:#204c39}
.portal-home .portal-results-meta{display:flex;justify-content:space-between;align-items:center;gap:15px;color:#697d73;font-size:13px;margin-bottom:18px}
.portal-home .portal-results-meta a{color:#27644d;font-weight:700}
.portal-home .portal-card-grid{gap:22px}
.portal-home .portal-card-grid .location-photo-card{border-radius:13px!important;border:1px solid #e7ece7!important;box-shadow:0 10px 27px rgba(33,59,45,.08)!important}
.portal-home .portal-card-grid .location-photo-cover{border-radius:12px 12px 0 0}
.portal-home .portal-pagination{margin-top:15px}
.portal-home .portal-footer{border-top:1px solid #e7eee8;padding:24px clamp(20px,4.5vw,76px);display:flex;justify-content:space-between;align-items:center;background:#f7f9f6;color:#7b8d80;font-size:12px}
.portal-home .portal-footer div{display:grid;gap:6px}
.portal-home .portal-footer strong{font-family:Georgia,serif;font-size:19px;color:#194737}
@media(max-width:850px){.portal-home .portal-links{gap:15px}.portal-home .portal-hero{min-height:510px}.portal-home .portal-section-heading{align-items:start}.portal-home .portal-benefits{grid-template-columns:1fr}.portal-home .portal-explore,.portal-home .portal-directory{width:calc(100% - 42px)}}
@media(max-width:620px){.portal-home .portal-navbar{height:62px}.portal-home .portal-logo{font-size:22px}.portal-home .portal-links a:not(.portal-nav-highlight){display:none}.portal-home .portal-links .portal-nav-highlight{padding:10px;font-size:11px}.portal-home .portal-hero-inner{padding:52px 0}.portal-home .portal-hero h1{font-size:clamp(39px,11vw,58px)}.portal-home .portal-hero-inner>p{font-size:14px}.portal-home .portal-search-main{grid-template-columns:1fr}.portal-home .portal-search-keyword{border-right:0;border-bottom:1px solid #eee}.portal-home .portal-search-cell{padding:10px 12px}.portal-home .portal-search-button{height:47px;margin-top:5px}.portal-home .portal-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-home .portal-search-shortcuts>span{width:100%}.portal-home .portal-section-heading{display:block}.portal-home .portal-section-heading p,.portal-home .portal-directory-meta{margin-top:12px}.portal-home .portal-explore,.portal-home .portal-directory{width:calc(100% - 30px);padding-top:38px}.portal-home .portal-footer{gap:20px;align-items:start;flex-direction:column}}

/* FIX121 — editable premium booking-complete receipt. */
#bookingApp.booking-is-complete .booking-workspace { display:block!important; }
#bookingApp.booking-is-complete .booking-stage { width:100%!important; max-width:none!important; }
#bookingApp.booking-is-complete #confirmationPanel { width:min(100%,1040px)!important; margin:0 auto 38px!important; }
#confirmationPanel.confirmation-premium {padding:0!important; overflow:hidden; text-align:left!important; background:#fffefa!important; border:1px solid #e5e9e1!important; border-radius:28px!important;box-shadow:0 24px 65px rgba(30,55,40,.07)!important;}
.confirmation-premium .confirmation-hero{position:relative; overflow:hidden; padding:52px 52px 43px; text-align:center; background:radial-gradient(circle at 83% 6%,#e8efe6 0,transparent 44%),linear-gradient(135deg,#f3f8f1 0%,#f9f8f3 100%);border-bottom:1px solid #e5eae2;}
.confirmation-premium .confirmation-eyebrow,.confirmation-premium .confirmation-label{display:block;letter-spacing:.2em;color:#aa8b5b;font-weight:850;font-size:10px;}
.confirmation-premium .confirmation-check{width:76px;height:76px;margin:22px auto 16px;background:#1b5946!important;color:white!important;font-size:42px!important;border:6px solid #d9eadd;box-shadow:0 14px 28px #225c4222;}
.confirmation-premium .confirmation-hero h2{font-family:Georgia,'Times New Roman',serif;font-weight:400!important;letter-spacing:-.05em;font-size:clamp(38px,5vw,58px)!important;line-height:1.08;margin:0;color:#1e4235;}
.confirmation-premium .confirmation-hero p{margin:16px 0 0;color:#72857b;font-size:15px;}
.confirmation-premium .confirmation-content{padding:38px clamp(22px,5vw,64px) 42px;max-width:900px;margin:auto;}
.confirmation-premium .confirmation-section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:22px;}
.confirmation-premium .confirmation-section-heading h3{font-family:Georgia,'Times New Roman',serif;color:#193e32;font-size:29px;font-weight:400;letter-spacing:-.03em;margin:7px 0 0;}
.confirmation-premium .confirmation-status{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;border-radius:100px;background:#e8f4ea;color:#1c714e;padding:9px 15px;font-size:12px;font-weight:800;}
.confirmation-premium .confirmation-status span{font-size:9px;}
.confirmation-premium .confirmation-receipt{border:1px solid #e6eae3;background:#fff;border-radius:17px;overflow:hidden;}
.confirmation-premium .confirmation-receipt-row{display:grid;grid-template-columns:minmax(120px,.4fr) minmax(0,1fr);align-items:center;gap:20px;padding:19px 23px;border-bottom:1px solid #edf0ea;}
.confirmation-premium .confirmation-receipt-row:last-child{border-bottom:0;background:#fbfcf9;}
.confirmation-premium .confirmation-receipt-row span{color:#84918a;font-size:13px;}
.confirmation-premium .confirmation-receipt-row strong{color:#23473a;font-size:15px;font-weight:750;overflow-wrap:anywhere;}
.confirmation-premium .confirmation-receipt-row:last-child strong{font-size:13px;letter-spacing:.055em;}
.confirmation-premium .confirmation-notice{display:flex;align-items:start;gap:13px;margin-top:20px;padding:15px 18px;border:1px solid #cfe5d8;border-radius:12px;background:#f1f9f4;color:#39674e;font-size:13px;line-height:1.55;text-align:left;}
.confirmation-premium .confirmation-notice-warning{border-color:#e9dec7;background:#fcf8ef;color:#82613b;}
.confirmation-premium .confirmation-notice-icon{display:grid;place-items:center;flex:0 0 23px;width:23px;height:23px;border-radius:50%;border:1px solid currentColor;font-weight:850;}
.confirmation-premium .confirmation-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:27px;}
.confirmation-premium .confirmation-primary-action,.confirmation-premium .confirmation-secondary-action{display:inline-flex;justify-content:center;align-items:center;gap:22px;min-height:52px;padding:0 23px;border-radius:12px;font-size:13px;font-weight:800;text-decoration:none;cursor:pointer;}
.confirmation-premium .confirmation-primary-action{background:#184b3b;color:white;border:1px solid #184b3b;}
.confirmation-premium .confirmation-secondary-action{background:#fff;color:#275441;border:1px solid #d8e3da;}
.confirmation-premium .confirmation-actions a:hover,.confirmation-premium .confirmation-actions button:hover{transform:translateY(-1px);}
.confirmation-premium .confirmation-footnote{color:#98a19b;font-size:12px;line-height:1.65;margin:21px 0 0;}
@media(max-width:650px){.confirmation-premium .confirmation-hero{padding:38px 20px 32px}.confirmation-premium .confirmation-content{padding:27px 18px 30px}.confirmation-premium .confirmation-receipt-row{grid-template-columns:1fr;gap:5px;padding:16px 17px}.confirmation-premium .confirmation-section-heading{align-items:start}.confirmation-premium .confirmation-status{padding:7px 10px}.confirmation-premium .confirmation-actions>*{width:100%;}}
@media print{.site-header,.booking-header,.site-footer,.confirmation-actions,.confirmation-footnote{display:none!important}#confirmationPanel.confirmation-premium{box-shadow:none!important;border:1px solid #ddd!important}.confirmation-premium .confirmation-hero{padding:20px!important}}

/* FIX122: right-side stage actions, controlled scroll, inline calendar and OTP */
@media (min-width: 901px) {
  #bookingStepper { position: sticky; top: 8px; z-index: 15; }
  #reservationSummary { position: sticky !important; top: 102px !important; }
}
#reservationSummary .flow-actions { display:flex!important;flex-wrap:wrap;gap:10px;border-top:1px solid #e5e9df;margin-top:24px;padding-top:22px; }
#reservationSummary #continueButton { flex:1;min-width:0!important;width:100%;min-height:56px; }
#reservationSummary #backButton { flex:0 0 100%; }
.booking-calendar { max-width:440px;width:100%;margin:14px 0 20px;background:#fff;border:1px solid #dfe7df;border-radius:18px;padding:18px;box-shadow:0 16px 30px rgba(17,54,39,.08); }
.booking-calendar-bar { display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:14px;color:#213e34; }
.booking-calendar-bar strong { font-size:17px;flex:1;text-align:center; }
.booking-calendar-bar button { cursor:pointer;background:#f2f6f0;border:0;border-radius:10px;min-width:36px;height:36px;color:#1b503e;font-size:21px; }
.booking-calendar-bar button:hover { background:#e1eee6; }
.booking-calendar-weekdays,.booking-calendar-days { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center; }
.booking-calendar-weekdays { color:#79877b;font-size:12px;margin:8px 0; }
.booking-calendar-days .calendar-day { border:0;background:transparent;min-height:42px;border-radius:9px;cursor:pointer;color:#234238;font-weight:600; }
.booking-calendar-days .calendar-day:hover:not(:disabled) { background:#e9f4ed; }
.booking-calendar-days .calendar-day.selected { background:#1c5643;color:#fff; }
.booking-calendar-days .calendar-day:disabled { color:#bdc5be;cursor:not-allowed; }
.phone-verification { margin-top:25px;border:1px solid #dce8df;border-radius:16px;background:#f5faf6;padding:23px; }
.phone-verification-heading { display:flex;justify-content:space-between;gap:10px;align-items:center;color:#214739; }
.phone-verification-heading span { font-size:12px;color:#6f8677; }
.phone-verification p { font-size:13px;color:#64796b; }
.phone-verification-actions { display:flex;flex-wrap:wrap;align-items:center;gap:10px; }
.phone-verification-actions input { width:145px;min-height:49px;border:1px solid #d5e2d8;border-radius:10px;padding:0 12px;font-size:17px;letter-spacing:3px; }
.phone-verification-actions button { min-height:49px;padding:0 17px; }
@media (max-width:900px) { #reservationSummary .flow-actions { position:static; } }
@media (max-width:600px) { .phone-verification-heading{align-items:start;flex-direction:column}.phone-verification-actions input{flex:1;min-width:100px} }


/* FIX123: Consistent contact fields and legible phone verification controls. */
#stepContact .contact-phone-row #phone {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    height: 68px !important;
    min-height: 68px !important;
    max-height: 68px !important;
    padding: 14px 20px !important;
    line-height: 1.35 !important;
}

#stepContact #findCustomer {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-width: 112px;
    height: 68px;
    min-height: 68px;
    padding: 0 20px;
    white-space: nowrap;
}

#stepContact .secondary-button svg {
    flex: none;
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#stepContact .phone-verification-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 12px;
}

#stepContact .phone-verification-actions input#verificationCode {
    box-sizing: border-box !important;
    flex: 1 1 180px;
    width: 180px;
    min-width: 170px;
    max-width: 260px;
    height: 60px !important;
    min-height: 60px !important;
    padding: 0 16px !important;
    font-size: 17px !important;
    letter-spacing: .02em !important;
    line-height: normal !important;
    text-overflow: clip;
}

#stepContact .phone-verification-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 60px;
    height: 60px;
    padding: 0 20px;
    white-space: nowrap;
}

@media (max-width: 640px) {
    #stepContact .contact-phone-row #phone,
    #stepContact #findCustomer {
        height: 58px !important;
        min-height: 58px !important;
        max-height: 58px !important;
    }
    #stepContact .phone-verification-actions input#verificationCode {
        flex: 1 1 100%;
        max-width: none;
    }
    #stepContact .phone-verification-actions button {
        flex: 1 1 auto;
    }
}
