.wh-scope {
    --wh-orange: #f47b20;
    --wh-green: #10b981;
    --wh-green-dark: #047857;
    --wh-teal: #12b8a6;
    --wh-navy: #10233b;
    --wh-brand-accent: var(--primary, #f47b20);
    --wh-brand-accent-hover: var(--primary-hover, #d96614);
    --wh-white: #ffffff;
    --wh-surface: #ffffff;
    --wh-surface-soft: #f7faf9;
    --wh-surface-muted: #eef4f2;
    --wh-border: #d9e3e0;
    --wh-border-strong: #b8c9c4;
    --wh-text: #10233b;
    --wh-text-muted: #53657a;
    --wh-danger: #b42318;
    --wh-danger-soft: #fef3f2;
    --wh-warning: #9a6700;
    --wh-warning-soft: #fffaeb;
    --wh-info: #0b6bcb;
    --wh-info-soft: #eff8ff;
    --wh-success-soft: #ecfdf3;
    --wh-shadow-sm: 0 1px 2px rgba(16, 35, 59, 0.06), 0 4px 12px rgba(16, 35, 59, 0.05);
    --wh-shadow-lg: 0 18px 48px rgba(16, 35, 59, 0.18);
    --wh-radius-sm: 8px;
    --wh-radius-md: 10px;
    --wh-radius-lg: 12px;
    --wh-space-1: 8px;
    --wh-space-2: 16px;
    --wh-space-3: 24px;
    --wh-space-4: 32px;
    --wh-space-5: 48px;
    color: var(--wh-text);
}

/* Provider secondary workspaces: Messages, Account and Reviews. */
.wh-provider-shell .wh-provider-secondary { background:#f5f8fa; min-height:100dvh; }
.wh-provider-shell .wh-provider-secondary > .content { max-width:1440px; padding:24px; }
.wh-provider-shell .wh-secondary-header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:24px; }
.wh-provider-shell .wh-secondary-header__eyebrow { margin:0 0 4px; color:#0b8068; font-size:.75rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.wh-provider-shell .wh-secondary-header h1 { margin:0; color:#10233b; font-size:clamp(1.65rem,2.5vw,2.25rem); line-height:1.15; }
.wh-provider-shell .wh-secondary-header p:not(.wh-secondary-header__eyebrow) { max-width:680px; margin:7px 0 0; color:#5c6b7d; }
.wh-provider-shell .wh-status-pill,
.wh-provider-shell .wh-secondary-link { display:inline-flex; min-height:44px; padding:9px 14px; border:1px solid #d8e1e8; border-radius:999px; background:#fff; color:#10233b; align-items:center; gap:8px; font-weight:750; text-decoration:none; }
.wh-provider-shell .wh-secondary-link:hover { border-color:#10b981; color:#08735e; }
.wh-provider-shell .wh-secondary-link:focus-visible,
.wh-provider-shell .wh-provider-secondary button:focus-visible,
.wh-provider-shell .wh-provider-secondary a:focus-visible,
.wh-provider-shell .wh-provider-secondary input:focus-visible,
.wh-provider-shell .wh-provider-secondary textarea:focus-visible,
.wh-provider-shell .wh-provider-secondary select:focus-visible { outline:3px solid rgba(244,123,32,.34); outline-offset:2px; }

.wh-provider-shell .wh-message-layout { display:grid; grid-template-columns:minmax(290px,360px) minmax(0,1fr); min-height:650px; height:calc(100dvh - 190px); border:1px solid #d8e1e8; border-radius:16px; background:#fff; overflow:hidden; box-shadow:0 12px 32px rgba(16,35,59,.07); }
.wh-provider-shell .wh-message-list { display:flex; min-width:0; border-inline-end:1px solid #d8e1e8; flex-direction:column; }
.wh-provider-shell .wh-message-list__header { padding:18px; border-bottom:1px solid #e5ebef; }
.wh-provider-shell .wh-message-list__header h2,
.wh-provider-shell .wh-message-thread__header h2 { margin:0; color:#10233b; font-size:1rem; }
.wh-provider-shell .wh-segmented { display:flex; gap:4px; margin:12px 0; padding:3px; border-radius:10px; background:#eef3f5; }
.wh-provider-shell .wh-segmented button { min-height:38px; padding:6px 14px; border:0; border-radius:8px; background:transparent; color:#506073; font-weight:750; }
.wh-provider-shell .wh-segmented button.is-active { background:#fff; color:#08735e; box-shadow:0 1px 5px rgba(16,35,59,.12); }
.wh-provider-shell .wh-search-control { display:flex; min-height:44px; padding:0 12px; border:1px solid #cad5dd; border-radius:10px; align-items:center; gap:8px; }
.wh-provider-shell .wh-search-control input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:#10233b; }
.wh-provider-shell #chatsidebar { min-height:0; overflow-y:auto; }
.wh-provider-shell .wh-message-list .user-list { margin:0; padding:8px; list-style:none; }
.wh-provider-shell .wh-message-list .userprofile { display:grid; width:100%; min-height:68px; padding:10px; border:0; border-radius:10px; background:transparent; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:10px; text-align:start; }
.wh-provider-shell .wh-message-list .userprofile:hover,
.wh-provider-shell .wh-message-list .userprofile.is-active { background:#ecfaf6; }
.wh-provider-shell .wh-message-avatar { width:46px; height:46px; border-radius:50%; object-fit:cover; }
.wh-provider-shell .wh-message-preview { display:flex; min-width:0; flex-direction:column; }
.wh-provider-shell .wh-message-preview strong,
.wh-provider-shell .wh-message-preview span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wh-provider-shell .wh-message-preview strong { color:#10233b; font-size:.9rem; }
.wh-provider-shell .wh-message-preview span { color:#647386; font-size:.78rem; }
.wh-provider-shell .wh-message-meta { display:flex; align-self:stretch; color:#728093; font-size:.68rem; align-items:flex-end; flex-direction:column; justify-content:space-between; }
.wh-provider-shell .unread-badge { display:inline-grid; min-width:24px; height:24px; padding:0 5px; border-radius:999px; background:#f47b20; color:#fff; place-items:center; font-size:.7rem; font-weight:800; }
.wh-provider-shell .wh-message-empty,
.wh-provider-shell .wh-thread-placeholder { display:flex; min-height:220px; padding:24px; color:#657487; align-items:center; justify-content:center; flex-direction:column; gap:7px; text-align:center; }
.wh-provider-shell .wh-message-empty i,
.wh-provider-shell .wh-thread-placeholder i { color:#12b8a6; font-size:2rem; }
.wh-provider-shell .wh-message-thread { display:grid; min-width:0; min-height:0; grid-template-rows:auto minmax(0,1fr) auto auto; background:#fbfcfd; }
.wh-provider-shell .wh-message-thread__header { display:flex; min-height:76px; padding:14px 18px; border-bottom:1px solid #e3e9ed; background:#fff; align-items:center; gap:12px; }
.wh-provider-shell .wh-message-thread__header > div span { color:#6d7a8c; font-size:.76rem; }
.wh-provider-shell .wh-icon-button { display:inline-grid; width:44px; height:44px; border:1px solid #d6e0e6; border-radius:10px; background:#fff; color:#10233b; place-items:center; }
.wh-provider-shell .left_sides { display:none; }
.wh-provider-shell .chats_scroll { min-height:0; padding:20px; overflow-y:auto; overscroll-behavior:contain; }
.wh-provider-shell .chat-content { display:flex; flex-direction:column; gap:10px; }
.wh-provider-shell .chat-content .message { max-width:min(78%,620px); padding:10px 13px; border-radius:12px; box-shadow:0 2px 7px rgba(16,35,59,.06); overflow-wrap:anywhere; }
.wh-provider-shell .chat-content .message p { margin:0; white-space:pre-wrap; }
.wh-provider-shell .chat-content .message small { display:block; margin-top:4px; opacity:.75; font-size:.68rem; }
.wh-provider-shell .chat-content .incoming { align-self:flex-start; border:1px solid #dfe7ec; background:#fff; color:#10233b; }
.wh-provider-shell .chat-content .outgoing { align-self:flex-end; background:#0b8068; color:#fff; }
.wh-provider-shell .chat-content .outgoing small { color:#fff; }
.wh-provider-shell .chat-footer { padding:12px; border-top:1px solid #dfe7ec; background:#fff; }
.wh-provider-shell .chat-footer form { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:end; gap:8px; }
.wh-provider-shell .chat-footer textarea { min-height:44px; max-height:120px; padding:10px 12px; resize:vertical; }
.wh-provider-shell .wh-send-button { display:inline-flex; min-height:44px; padding:9px 16px; border:0; border-radius:10px; background:#0b8068; color:#fff; align-items:center; justify-content:center; gap:7px; font-weight:800; }
.wh-provider-shell .wh-send-button:disabled { opacity:.55; }
.wh-provider-shell .selected_file,
.wh-provider-shell .wh-message-error { margin:0 12px 8px; padding:8px 11px; border-radius:8px; font-size:.78rem; }
.wh-provider-shell .selected_file { background:#e9f8f4; color:#08735e; }
.wh-provider-shell .wh-message-error { background:#fff0ed; color:#a33321; }

.wh-provider-shell .wh-account-links { display:grid; margin-bottom:24px; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.wh-provider-shell .wh-account-links > a { display:grid; min-height:88px; padding:14px; border:1px solid #dbe4e9; border-radius:12px; background:#fff; color:#10233b; grid-template-columns:32px minmax(0,1fr) auto; align-items:center; gap:9px; text-decoration:none; }
.wh-provider-shell .wh-account-links > a:hover { border-color:#10b981; box-shadow:0 7px 20px rgba(16,35,59,.06); }
.wh-provider-shell .wh-account-links > a > i:first-child { color:#0b8068; font-size:1.35rem; }
.wh-provider-shell .wh-account-links span { display:flex; min-width:0; flex-direction:column; }
.wh-provider-shell .wh-account-links small { margin-top:2px; color:#6c798a; line-height:1.3; }
.wh-provider-shell .wh-account-advanced { margin:-10px 0 24px; border:1px solid #dbe4e9; border-radius:12px; background:#fff; }
.wh-provider-shell .wh-account-advanced summary { display:flex; min-height:56px; padding:11px 14px; color:#10233b; cursor:pointer; align-items:center; justify-content:space-between; gap:12px; }
.wh-provider-shell .wh-account-advanced summary > span { display:flex; align-items:center; gap:9px; }
.wh-provider-shell .wh-account-advanced summary i { color:#0b8068; }
.wh-provider-shell .wh-account-advanced summary small { color:#6c798a; }
.wh-provider-shell .wh-account-advanced > div { display:grid; padding:0 12px 12px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.wh-provider-shell .wh-account-advanced a { display:grid; min-height:60px; padding:10px; border:1px solid #e3e9ed; border-radius:9px; color:#10233b; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; gap:8px; text-decoration:none; }
.wh-provider-shell .wh-account-advanced a span { display:flex; flex-direction:column; }
.wh-provider-shell .wh-account-advanced a small { color:#6c798a; }
.wh-provider-shell .wh-account-editor-heading { display:flex; margin:8px 0 14px; align-items:center; justify-content:space-between; gap:12px; }
.wh-provider-shell .wh-account-editor-heading p { margin:0; color:#08735e; font-size:.75rem; font-weight:800; text-transform:uppercase; }
.wh-provider-shell .wh-account-editor-heading h2 { margin:2px 0 0; color:#10233b; font-size:1.35rem; }
.wh-provider-shell .wh-account-editor-heading > span { display:inline-flex; color:#5c6b7d; align-items:center; gap:5px; font-size:.78rem; }
.wh-provider-shell .wh-provider-account .card { border:1px solid #dbe4e9; border-radius:14px; box-shadow:0 8px 24px rgba(16,35,59,.05); }
.wh-provider-shell .wh-provider-account .card-body { padding:24px; }
.wh-provider-shell .wh-provider-account .user-title { margin:26px 0 14px; padding-bottom:10px; border-bottom:1px solid #e5eaee; color:#10233b; font-size:1rem; }
.wh-provider-shell .wh-provider-account .user-title:first-child { margin-top:0; }
.wh-provider-shell .wh-provider-account .form-control,
.wh-provider-shell .wh-provider-account .select2-selection { min-height:44px; border-radius:9px; }
.wh-provider-shell .wh-provider-account #save_provider { min-height:44px; border-radius:9px; background:#0b8068; }

.wh-provider-shell .wh-review-summary { display:grid; margin-bottom:20px; padding:22px; border:1px solid #dbe4e9; border-radius:14px; background:#fff; grid-template-columns:minmax(0,1fr) minmax(300px,440px); align-items:center; gap:30px; box-shadow:0 8px 24px rgba(16,35,59,.05); }
.wh-provider-shell .wh-review-score { display:flex; align-items:center; gap:18px; }
.wh-provider-shell .wh-review-score__value { color:#10233b; font-size:3.4rem; font-weight:850; line-height:1; }
.wh-provider-shell .wh-stars { display:inline-flex; color:#f59e0b; gap:2px; }
.wh-provider-shell .wh-review-score h2 { margin:5px 0 2px; color:#10233b; font-size:1rem; }
.wh-provider-shell .wh-review-score p { margin:0; color:#687688; font-size:.78rem; }
.wh-provider-shell .wh-rating-bars { display:grid; gap:5px; }
.wh-provider-shell .wh-rating-bar { display:grid; color:#59687a; grid-template-columns:34px minmax(0,1fr) 28px; align-items:center; gap:8px; font-size:.78rem; }
.wh-provider-shell .wh-rating-bar__track { height:7px; border-radius:999px; background:#e8edf0; overflow:hidden; }
.wh-provider-shell .wh-rating-bar__track > span { display:block; height:100%; border-radius:inherit; background:#10b981; }
.wh-provider-shell .wh-review-workspace { padding:20px; border:1px solid #dbe4e9; border-radius:14px; background:#fff; }
.wh-provider-shell .wh-review-toolbar { display:flex; margin-bottom:16px; align-items:flex-end; justify-content:space-between; gap:16px; }
.wh-provider-shell .wh-review-toolbar h2 { margin:0; color:#10233b; font-size:1.15rem; }
.wh-provider-shell .wh-review-toolbar p { margin:4px 0 0; color:#6d7a8c; font-size:.78rem; }
.wh-provider-shell .wh-review-toolbar form { display:flex; align-items:center; gap:8px; }
.wh-provider-shell .wh-review-toolbar select { min-height:44px; padding:7px 34px 7px 10px; border:1px solid #ccd7de; border-radius:9px; background:#fff; }
.wh-provider-shell .wh-review-list { display:grid; gap:12px; }
.wh-provider-shell .wh-review-card { padding:16px; border:1px solid #e0e7eb; border-radius:12px; background:#fcfdfd; }
.wh-provider-shell .wh-review-card header { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:10px; }
.wh-provider-shell .wh-review-card__avatar { width:44px; height:44px; border-radius:50%; object-fit:cover; }
.wh-provider-shell .wh-review-card h3 { margin:0; color:#10233b; font-size:.92rem; }
.wh-provider-shell .wh-review-card header p { margin:2px 0 0; color:#08735e; font-size:.76rem; font-weight:700; }
.wh-provider-shell .wh-review-card__meta { display:flex; align-items:flex-end; flex-direction:column; gap:3px; }
.wh-provider-shell .wh-review-card__meta time { color:#718093; font-size:.7rem; }
.wh-provider-shell .wh-review-card__body { margin:12px 0 0; color:#405066; overflow-wrap:anywhere; white-space:pre-wrap; }
.wh-provider-shell .wh-pagination { display:flex; margin-top:18px; justify-content:center; }

@media (max-width:1199.98px) {
  .wh-provider-shell .wh-account-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:767.98px) {
  .wh-provider-shell .wh-provider-secondary > .content { padding:16px 12px calc(92px + env(safe-area-inset-bottom)); }
  .wh-provider-shell .wh-secondary-header { margin-bottom:16px; flex-direction:column; gap:12px; }
  .wh-provider-shell .wh-message-layout { display:block; min-height:calc(100dvh - 210px); height:calc(100dvh - 180px); border-radius:12px; }
  .wh-provider-shell .wh-message-list,
  .wh-provider-shell .wh-message-thread { height:100%; }
  .wh-provider-shell .wh-message-thread { display:none; }
  .wh-provider-shell .wh-message-layout.is-thread-open .wh-message-list { display:none; }
  .wh-provider-shell .wh-message-layout.is-thread-open .wh-message-thread { display:grid; }
  .wh-provider-shell .left_sides { display:inline-grid; }
  .wh-provider-shell .chat-content .message { max-width:88%; }
  .wh-provider-shell .wh-send-button span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
  .wh-provider-shell .wh-send-button { width:44px; padding:0; }
  .wh-provider-shell .wh-account-links { grid-template-columns:1fr; gap:8px; }
  .wh-provider-shell .wh-account-links > a { min-height:72px; }
  .wh-provider-shell .wh-account-advanced summary { align-items:flex-start; flex-direction:column; }
  .wh-provider-shell .wh-account-advanced > div { grid-template-columns:1fr; }
  .wh-provider-shell .wh-provider-account .card-body { padding:16px; }
  .wh-provider-shell .wh-review-summary { padding:16px; grid-template-columns:1fr; gap:18px; }
  .wh-provider-shell .wh-review-score__value { font-size:2.8rem; }
  .wh-provider-shell .wh-review-workspace { padding:14px; }
  .wh-provider-shell .wh-review-toolbar { align-items:stretch; flex-direction:column; }
  .wh-provider-shell .wh-review-toolbar form { justify-content:space-between; }
  .wh-provider-shell .wh-review-card header { grid-template-columns:40px minmax(0,1fr); }
  .wh-provider-shell .wh-review-card__meta { grid-column:1/-1; align-items:center; flex-direction:row; justify-content:space-between; }
}

[dir="rtl"] .wh-provider-shell .wh-message-list { border-inline-end:1px solid #d8e1e8; }
[dir="rtl"] .wh-provider-shell .wh-message-list .userprofile { text-align:start; }
@media (prefers-reduced-motion:reduce) {
  .wh-provider-shell .wh-provider-secondary * { scroll-behavior:auto !important; transition-duration:.01ms !important; }
}

/* Customer pre-checkout booking details (v1.0). Scoped to both current booking entry views. */
.wukhub-precheckout {
    --wh-booking-ink: #10233b;
    --wh-booking-muted: #607087;
    --wh-booking-border: #dbe4eb;
    --wh-booking-surface: #f4f8f7;
    --wh-booking-green: #0b8a63;
    --wh-booking-teal: #12b8a6;
    background: linear-gradient(180deg, #f7fbfa 0, #fff 320px);
}

body.wh-customer-shell .wukhub-precheckout .content {
    padding: 24px 0 104px !important;
}

.wukhub-precheckout > .content > .container {
    max-width: 1180px;
}

.wukhub-precheckout .fieldset-wizard {
    background: transparent;
}

.wukhub-precheckout .booking-sidebar {
    background: #fff !important;
    border: 1px solid var(--wh-booking-border);
    border-top: 3px solid var(--wh-booking-green);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(16, 35, 59, 0.07);
    overflow: hidden;
}

.wukhub-precheckout .booking-sidebar::before,
.wukhub-precheckout .booking-sidebar::after {
    content: none !important;
}

.wukhub-precheckout .booking-sidebar > .card-body {
    padding: 16px;
}

.wukhub-precheckout .booking-sidebar :is(h6, p, span) {
    color: var(--wh-booking-ink) !important;
}

.wukhub-precheckout .booking-sidebar .service-info {
    align-items: flex-start !important;
    background: var(--wh-booking-surface);
    border-radius: 10px;
    padding: 10px;
}

.wukhub-precheckout .booking-sidebar .service-info .avatar,
.wukhub-precheckout .booking-sidebar .service-info img {
    border-radius: 8px;
    height: 48px;
    object-fit: cover;
    width: 48px;
}

.wukhub-precheckout .booking-sidebar .booking-wizard {
    border-top: 1px solid var(--wh-booking-border);
    margin-top: 14px;
    padding-top: 14px;
}

.wukhub-precheckout .booking-sidebar .wizard-progress li::before {
    border-color: #b8c9c4;
}

.wukhub-precheckout .booking-sidebar .wizard-progress li.active::before,
.wukhub-precheckout .booking-sidebar .wizard-progress li.activated::before {
    background: var(--wh-booking-green);
    border-color: var(--wh-booking-green);
}

.wukhub-precheckout .booking-sidebar .wizard-progress li.active span {
    color: var(--wh-booking-green) !important;
    font-weight: 750;
}

.wukhub-precheckout .book-card {
    border: 1px solid var(--wh-booking-border);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(16, 35, 59, 0.06);
    padding: 22px;
}

.wukhub-precheckout #prinfo-form > .row,
.wukhub-precheckout #sixth-field .wukhub-review ~ * {
    display: none !important;
}

.wukhub-precheckout__intro {
    margin-bottom: 20px;
}

.wukhub-precheckout__intro h2 {
    color: var(--wh-booking-ink);
    font-size: clamp(1.25rem, 2.5vw, 1.75rem);
    line-height: 1.2;
    margin: 2px 0 6px;
}

.wukhub-precheckout__intro p {
    color: var(--wh-booking-muted);
    font-size: 0.875rem;
    margin: 0;
}

.wukhub-precheckout__eyebrow {
    color: #c75d0c !important;
    font-size: 0.75rem !important;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.wukhub-customize-service {
    align-items: center;
    background: var(--wh-booking-surface);
    border: 1px solid var(--wh-booking-border);
    border-radius: 12px;
    display: grid;
    gap: 12px;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    margin-bottom: 14px;
    padding: 10px;
}

.wukhub-customize-service > img {
    border-radius: 9px;
    height: 64px;
    object-fit: cover;
    width: 64px;
}

.wukhub-customize-service__copy {
    min-width: 0;
}

.wukhub-customize-service__copy p {
    color: var(--wh-booking-green);
    font-size: 0.68rem;
    font-weight: 750;
    margin: 0 0 2px;
    text-transform: uppercase;
}

.wukhub-customize-service__copy h3 {
    color: var(--wh-booking-ink);
    font-size: 0.94rem;
    margin: 0 0 3px;
}

.wukhub-customize-service__copy > span {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--wh-booking-muted);
    display: -webkit-box;
    font-size: 0.72rem;
    line-height: 1.35;
    overflow: hidden;
}

.wukhub-customize-service__facts {
    display: flex;
    gap: 14px;
    margin: 0;
}

.wukhub-customize-service__facts div {
    min-width: 72px;
}

.wukhub-customize-service__facts dt {
    color: var(--wh-booking-muted);
    font-size: 0.65rem;
    font-weight: 600;
}

.wukhub-customize-service__facts dd {
    color: var(--wh-booking-ink);
    font-size: 0.8rem;
    font-weight: 750;
    margin: 1px 0 0;
}

.wukhub-customize-service__facts small {
    color: var(--wh-booking-muted);
    font-size: 0.65rem;
    font-weight: 500;
}

.wukhub-addon-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wukhub-addon-card {
    background: #fff;
    border: 1px solid var(--wh-booking-border);
    border-radius: 12px;
    min-width: 0;
    position: relative;
    transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.wukhub-addon-card:has(.wukhub-addon-card__check:checked) {
    background: #f1fbf7;
    border-color: var(--wh-booking-green);
    box-shadow: 0 0 0 1px var(--wh-booking-green);
}

.wukhub-addon-card__check {
    height: 22px;
    inset: 16px 16px auto auto;
    margin: 0;
    position: absolute;
    width: 22px;
    z-index: 2;
}

.wukhub-addon-card__body {
    align-items: center;
    cursor: pointer;
    display: grid;
    gap: 12px;
    grid-template-columns: 56px minmax(0, 1fr) auto;
    min-height: 80px;
    padding: 10px 48px 10px 10px;
}

.wukhub-addon-card__media,
.wukhub-addon-card__media img {
    border-radius: 10px;
    display: block;
    height: 56px;
    object-fit: cover;
    width: 56px;
}

.wukhub-addon-card__copy {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.wukhub-addon-card__copy strong {
    color: var(--wh-booking-ink);
    font-size: 0.9rem;
    overflow-wrap: anywhere;
}

.wukhub-addon-card__copy > span {
    color: var(--wh-booking-muted);
    font-size: 0.78rem;
}

.wukhub-addon-card__copy > span:first-of-type {
    color: var(--wh-booking-green);
    font-weight: 700;
}

.wukhub-addon-card .btn-addon {
    align-items: center;
    color: var(--wh-booking-green);
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 700;
    gap: 4px;
}

.wukhub-addon-card .btn-addon i.is-confirmed {
    animation: wukhub-addon-icon-confirm 400ms ease-out;
}

@keyframes wukhub-addon-icon-confirm {
    0% { transform: scale(0.65) rotate(-18deg); }
    55% { transform: scale(1.25) rotate(5deg); }
    100% { transform: scale(1) rotate(0); }
}

.wukhub-precheckout__hint {
    align-items: flex-start;
    background: #eefaf8;
    border-radius: 10px;
    color: #27675f !important;
    display: flex;
    gap: 8px;
    margin: 16px 0 0;
    padding: 10px 12px;
}

.wukhub-precheckout .booking-footer .btn-dark {
    background: var(--wh-booking-green);
    border-color: var(--wh-booking-green);
}

.wukhub-precheckout .booking-footer .btn-dark:hover,
.wukhub-precheckout .booking-footer .btn-dark:focus-visible {
    background: #087557;
    border-color: #087557;
}

.wukhub-precheckout .datepicker table tr td.day {
    position: relative;
    z-index: 0;
}

.wukhub-precheckout .datepicker table tr td.day.active,
.wukhub-precheckout .datepicker table tr td.day.active:hover {
    background: transparent !important;
    color: #fff !important;
}

.wukhub-precheckout .datepicker table tr td.day.active::before {
    background: var(--wh-booking-green);
    border-radius: 50%;
    content: "";
    height: 32px;
    inset: 50% auto auto 50%;
    position: absolute;
    transform: translate(-50%, -50%);
    width: 32px;
    z-index: -1;
}

.wukhub-precheckout .datepicker table tr td.day.today:not(.active)::before {
    border: 2px solid rgba(11, 138, 99, 0.32);
    border-radius: 50%;
    content: "";
    height: 32px;
    inset: 50% auto auto 50%;
    position: absolute;
    transform: translate(-50%, -50%);
    width: 32px;
    z-index: -1;
}

.wukhub-precheckout .datepicker table tr td span.active {
    background: var(--wh-booking-green) !important;
    border-radius: 50% !important;
    color: #fff !important;
}

.wukhub-precheckout .text-danger {
    color: #b42318 !important;
}

.wukhub-demo-details {
    align-items: center;
    background: #fff8ef;
    border: 1px solid #f5cda9;
    border-radius: 10px;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 16px;
    padding: 10px 12px;
}

.wukhub-demo-details div {
    display: grid;
    gap: 2px;
}

.wukhub-demo-details strong {
    color: var(--wh-booking-ink);
    font-size: 0.78rem;
}

.wukhub-demo-details span {
    color: var(--wh-booking-muted);
    font-size: 0.7rem;
}

.wukhub-demo-details .btn {
    background: #fff;
    border: 1px solid #e78a3e;
    color: #a94b05;
    flex: 0 0 auto;
    min-height: 40px;
}

.wukhub-demo-details .btn.is-complete {
    background: var(--wh-booking-green);
    border-color: var(--wh-booking-green);
    color: #fff;
}

.wukhub-demo-preview-note {
    align-items: center;
    background: #fff8ef;
    border: 1px solid #f5cda9;
    border-radius: 9px;
    color: #8c460f;
    display: flex;
    font-size: 0.76rem;
    gap: 7px;
    margin: 0 0 12px;
    padding: 9px 10px;
}

.wukhub-precheckout #sixth-field .booking-footer .btn.disabled {
    background: #edf1f0 !important;
    border-color: #d7e2df !important;
    color: #66766f !important;
    opacity: 1;
    pointer-events: none;
}

.wukhub-details-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wukhub-field-group {
    min-width: 0;
}

.wukhub-field-group--wide {
    grid-column: 1 / -1;
}

.wukhub-name-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wukhub-precheckout .wukhub-field-group .form-label {
    color: var(--wh-booking-ink);
    display: block;
    font-size: 0.82rem;
    font-weight: 700;
    margin-bottom: 6px;
}

.wukhub-precheckout .wukhub-field-group .form-label > span,
.wukhub-compatibility-fields summary span {
    color: var(--wh-booking-muted);
    font-size: 0.72rem;
    font-weight: 500;
}

.wukhub-precheckout .wukhub-field-group .form-control {
    border-color: var(--wh-booking-border);
    border-radius: 10px;
    font-size: 1rem;
    height: 48px;
    padding: 10px 12px;
}

.wukhub-precheckout .wukhub-field-group textarea.form-control {
    height: auto;
    min-height: 80px;
    resize: vertical;
}

.wukhub-field-group small {
    color: var(--wh-booking-muted);
    display: block;
    font-size: 0.72rem;
    margin-top: 5px;
}

.wukhub-compatibility-fields {
    background: var(--wh-booking-surface);
    border: 1px solid var(--wh-booking-border);
    border-radius: 10px;
    padding: 0 14px 14px;
}

.wukhub-compatibility-fields summary {
    color: var(--wh-booking-ink);
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: 700;
    min-height: 44px;
    padding-block: 12px;
}

.wukhub-compatibility-fields > p {
    color: var(--wh-booking-muted);
    margin: 0 0 12px;
}

.wukhub-review__grid {
    display: grid;
    gap: 16px;
}

.wukhub-review__service {
    align-items: center;
    background: var(--wh-booking-surface);
    border-radius: 12px;
    display: grid;
    gap: 12px;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    padding: 12px;
}

.wukhub-review__service img {
    border-radius: 10px;
    height: 64px;
    object-fit: cover;
    width: 64px;
}

.wukhub-review__service h3 {
    color: var(--wh-booking-ink);
    font-size: 1rem;
    margin: 0 0 3px;
    overflow-wrap: anywhere;
}

.wukhub-review__service p {
    color: var(--wh-booking-muted);
    margin: 0;
}

.wukhub-review__service > strong {
    color: var(--wh-booking-ink);
    white-space: nowrap;
}

.wukhub-review__facts {
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    overflow: hidden;
}

.wukhub-review__facts > div {
    border: 1px solid var(--wh-booking-border);
    padding: 12px;
}

.wukhub-review__facts dt {
    align-items: center;
    color: var(--wh-booking-muted);
    display: flex;
    font-size: 0.72rem;
    gap: 6px;
    margin-bottom: 4px;
}

.wukhub-review__facts dd {
    color: var(--wh-booking-ink);
    font-size: 0.85rem;
    font-weight: 650;
    margin: 0;
    overflow-wrap: anywhere;
}

.wukhub-review__quote {
    border-top: 1px solid var(--wh-booking-border);
    display: grid;
    gap: 8px;
    padding-top: 14px;
}

.wukhub-review__quote > div {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.wukhub-review__quote .wukhub-review__total {
    color: var(--wh-booking-ink);
    font-size: 1.05rem;
    margin-top: 4px;
}

.wukhub-review__quote > p {
    color: var(--wh-booking-muted);
    margin: 4px 0 0;
}

.wukhub-precheckout :is(input, textarea, summary, a, button):focus-visible {
    outline: 3px solid rgba(18, 184, 166, 0.35);
    outline-offset: 2px;
}

[dir="rtl"] .wukhub-addon-card__check {
    inset: 16px auto auto 16px;
}

[dir="rtl"] .wukhub-addon-card__body {
    padding: 12px 12px 12px 48px;
}

@media (max-width: 767.98px) {
    body.wh-customer-shell .wukhub-precheckout .content {
        padding: 8px 0 80px !important;
    }

    .wukhub-precheckout .container {
        padding-inline: 10px;
    }

    .wukhub-precheckout .card-body.fieldset-wizard,
    .wukhub-precheckout .book-card {
        padding: 12px !important;
    }

    .wukhub-precheckout .booking-sidebar {
        margin-bottom: 10px !important;
        overflow-anchor: none;
    }

    .wukhub-precheckout .booking-sidebar > .card-body {
        padding: 10px 12px 8px;
    }

    .wukhub-precheckout .booking-sidebar > .card-body > h6:first-of-type {
        display: none !important;
    }

    .wukhub-precheckout .booking-sidebar .service-info {
        background: transparent;
        padding: 0;
    }

    .wukhub-precheckout .booking-sidebar .service-info .avatar,
    .wukhub-precheckout .booking-sidebar .service-info img {
        height: 42px;
        width: 42px;
    }

    .wukhub-precheckout .booking-sidebar .booking-wizard {
        margin-top: 8px;
        padding-top: 8px;
    }

    .wukhub-precheckout .booking-sidebar .booking-wizard > h6 {
        display: none !important;
    }

    .wukhub-precheckout .booking-wizard {
        overflow-x: auto;
        padding: 0 0 2px;
        scroll-behavior: smooth;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }

    .wukhub-precheckout .booking-wizard::-webkit-scrollbar {
        display: none;
    }

    .wukhub-precheckout .wizard-progress {
        align-items: start;
        display: flex;
        gap: 0;
        min-width: max-content;
    }

    .wukhub-precheckout #bokingwizard li {
        color: var(--wh-booking-muted) !important;
        flex: 0 0 78px;
        min-width: 0;
        padding: 21px 2px 0 !important;
        scroll-snap-align: center;
        text-align: center;
    }

    .wukhub-precheckout #bokingwizard li > span.real-label {
        color: var(--wh-booking-muted) !important;
        display: block;
        font-size: 0.64rem !important;
        line-height: 1.2;
        max-width: 78px;
        overflow-wrap: normal;
        white-space: nowrap;
        word-break: normal;
    }

    .wukhub-precheckout #bokingwizard li::before {
        background: #d7e2df;
        border: 0;
        height: 2px;
        inset: 7px auto auto 50%;
        width: 100%;
    }

    .wukhub-precheckout #bokingwizard li:last-child::before {
        content: none;
    }

    .wukhub-precheckout #bokingwizard li.activated::before {
        background: var(--wh-booking-green);
    }

    .wukhub-precheckout #bokingwizard li > span.real-label::before {
        background: #fff;
        border: 2px solid #aebfba;
        border-radius: 50%;
        height: 16px;
        inset: 0 auto auto 50%;
        transform: translateX(-50%);
        width: 16px;
    }

    .wukhub-precheckout #bokingwizard li.active > span.real-label,
    .wukhub-precheckout #bokingwizard li.activated > span.real-label {
        color: var(--wh-booking-green) !important;
        font-weight: 750;
    }

    .wukhub-precheckout #bokingwizard li.active > span.real-label::before {
        border-color: var(--wh-booking-green);
    }

    .wukhub-precheckout #bokingwizard li.active > span.real-label::after {
        background: var(--wh-booking-green);
        border-radius: 50%;
        content: "";
        height: 6px;
        inset: 5px auto auto 50%;
        position: absolute;
        transform: translateX(-50%);
        width: 6px;
    }

    .wukhub-precheckout #bokingwizard li.activated > span.real-label::before {
        background: var(--wh-booking-green);
        border: 0;
    }

    .wukhub-precheckout #bokingwizard li.activated > span.real-label::after {
        background: transparent;
        color: #fff;
        content: "\2713";
        font-family: inherit;
        font-size: 0.66rem;
        font-weight: 900;
        height: 16px;
        inset: 0 auto auto 50%;
        line-height: 16px;
        position: absolute;
        transform: translateX(-50%);
        width: 16px;
    }

    .wukhub-precheckout fieldset.booking-content {
        min-height: 0;
    }

    .wukhub-addon-grid,
    .wukhub-details-grid,
    .wukhub-review__facts {
        grid-template-columns: 1fr;
    }

    .wukhub-customize-service {
        align-items: start;
        grid-template-columns: 52px minmax(0, 1fr);
        padding: 9px;
    }

    .wukhub-customize-service > img {
        height: 52px;
        width: 52px;
    }

    .wukhub-customize-service__facts {
        gap: 12px;
        grid-column: 2;
    }

    .wukhub-customize-service__facts div {
        min-width: 0;
    }

    .wukhub-name-grid,
    .wukhub-compatibility-fields .wukhub-details-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .wukhub-addon-card__body {
        grid-template-columns: 46px minmax(0, 1fr);
        min-height: 68px;
        padding-block: 8px;
    }

    .wukhub-addon-card__media,
    .wukhub-addon-card__media img {
        height: 46px;
        width: 46px;
    }

    .wukhub-addon-card .btn-addon {
        grid-column: 2;
    }

    .wukhub-review__service {
        grid-template-columns: 54px minmax(0, 1fr);
    }

    .wukhub-review__service img {
        height: 54px;
        width: 54px;
    }

    .wukhub-review__service > strong {
        grid-column: 2;
    }

    .wukhub-precheckout .booking-footer {
        background: rgba(255, 255, 255, 0.97);
        border-top: 1px solid var(--wh-booking-border);
        bottom: 0;
        box-shadow: 0 -8px 20px rgba(16, 35, 59, 0.08);
        inset-inline: 0;
        margin: 0;
        padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
        position: fixed;
        overflow-anchor: none;
        z-index: 1000;
    }

    body.wh-customer-shell:has(.wukhub-precheckout) .header,
    body.wh-customer-shell:has(.wukhub-precheckout) .header.fixed {
        position: sticky;
        top: 0;
        transition: none;
    }

    .wukhub-precheckout .booking-footer > .d-flex {
        margin-inline: auto;
        max-width: 560px;
        width: 100%;
    }

    .wukhub-precheckout .booking-footer .btn {
        background: var(--wh-booking-green) !important;
        border-color: var(--wh-booking-green) !important;
        border-radius: 9px;
        color: #fff !important;
        font-size: 0.9rem;
        font-weight: 700;
        flex: 1;
        justify-content: center;
        margin-top: 0 !important;
        min-height: 44px;
        min-width: 132px;
    }

    .wukhub-precheckout .booking-footer > .btn:only-of-type {
        width: 100%;
    }

    .wukhub-precheckout .booking-footer .btn-light {
        background: #fff !important;
        border-color: var(--wh-booking-border) !important;
        color: var(--wh-booking-ink) !important;
    }

    .wukhub-precheckout__intro {
        margin-bottom: 12px;
    }

    .wukhub-precheckout__intro h2 {
        font-size: 1.2rem;
        margin-bottom: 4px;
    }

    .wukhub-precheckout__hint {
        font-size: 0.76rem;
        margin-top: 10px;
        padding: 8px 10px;
    }

    .wukhub-demo-details {
        align-items: stretch;
        flex-direction: column;
    }

    .wukhub-demo-details .btn {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .wukhub-precheckout *,
    .wukhub-precheckout *::before,
    .wukhub-precheckout *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

.wh-scope *,
.wh-scope *::before,
.wh-scope *::after {
    box-sizing: border-box;
}

.wh-scope :where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid color-mix(in srgb, var(--wh-brand-accent) 70%, white);
    outline-offset: 3px;
}

.wh-skip-link {
    background: var(--wh-navy);
    border-radius: 0 0 var(--wh-radius-sm) var(--wh-radius-sm);
    color: var(--wh-white);
    inset-block-start: 0;
    inset-inline-start: var(--wh-space-2);
    padding: 12px 16px;
    position: fixed;
    transform: translateY(-130%);
    transition: transform 160ms ease;
    z-index: 10050;
}

.wh-skip-link:focus {
    color: var(--wh-white);
    transform: translateY(0);
}

.wh-main-anchor {
    display: block;
    height: 0;
    overflow: hidden;
}

/* Buttons */
.wh-button {
    align-items: center;
    border: 1px solid transparent;
    border-radius: var(--wh-radius-md);
    cursor: pointer;
    display: inline-flex;
    font-size: 0.9375rem;
    font-weight: 700;
    gap: var(--wh-space-1);
    justify-content: center;
    line-height: 1.2;
    min-height: 44px;
    padding: 11px 18px;
    text-decoration: none;
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, color 160ms ease, transform 160ms ease;
}

.wh-button:hover:not(:disabled) {
    transform: translateY(-1px);
}

.wh-button:disabled,
.wh-button[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.58;
}

.wh-button--primary {
    background: var(--wh-green-dark);
    color: var(--wh-white);
}

.wh-button--primary:hover:not(:disabled) {
    background: #056647;
    color: var(--wh-white);
}

.wh-button--secondary {
    background: var(--wh-white);
    border-color: var(--wh-green-dark);
    color: var(--wh-green-dark);
}

.wh-button--secondary:hover:not(:disabled) {
    background: var(--wh-success-soft);
    color: var(--wh-green-dark);
}

.wh-button--tertiary {
    background: transparent;
    color: var(--wh-navy);
}

.wh-button--tertiary:hover:not(:disabled) {
    background: var(--wh-surface-muted);
    color: var(--wh-navy);
}

.wh-button--danger {
    background: var(--wh-danger);
    color: var(--wh-white);
}

.wh-button--danger:hover:not(:disabled) {
    background: #912018;
    color: var(--wh-white);
}

.wh-button--icon {
    aspect-ratio: 1;
    min-width: 44px;
    padding: 10px;
}

.wh-button--sm {
    font-size: 0.875rem;
    padding: 9px 14px;
}

.wh-button--lg {
    font-size: 1rem;
    min-height: 48px;
    padding: 13px 22px;
}

.wh-spinner {
    animation: wh-spin 0.8s linear infinite;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    height: 18px;
    width: 18px;
}

/* Form controls */
.wh-field {
    display: grid;
    gap: var(--wh-space-1);
}

.wh-field__label,
.wh-choice__label {
    color: var(--wh-navy);
    font-size: 0.9375rem;
    font-weight: 700;
}

.wh-field__required,
.wh-field__error {
    color: var(--wh-danger);
}

.wh-field__control {
    position: relative;
}

.wh-field__icon {
    color: var(--wh-text-muted);
    inset-block-start: 50%;
    inset-inline-start: 14px;
    pointer-events: none;
    position: absolute;
    transform: translateY(-50%);
}

.wh-field__control--icon .wh-input {
    padding-inline-start: 42px;
}

.wh-input,
.wh-select,
.wh-textarea {
    background: var(--wh-white);
    border: 1px solid var(--wh-border-strong);
    border-radius: var(--wh-radius-md);
    color: var(--wh-text);
    font: inherit;
    min-height: 44px;
    padding: 10px 14px;
    width: 100%;
}

.wh-textarea {
    min-height: 112px;
    resize: vertical;
}

.wh-input::placeholder,
.wh-textarea::placeholder {
    color: #718096;
    opacity: 1;
}

.wh-input:hover,
.wh-select:hover,
.wh-textarea:hover {
    border-color: var(--wh-teal);
}

.wh-input--invalid {
    border-color: var(--wh-danger);
}

.wh-field__help,
.wh-choice__description {
    color: var(--wh-text-muted);
    font-size: 0.8125rem;
    line-height: 1.45;
}

.wh-field__error {
    align-items: center;
    display: flex;
    font-size: 0.8125rem;
    gap: 6px;
}

.wh-choice {
    align-items: center;
    background: var(--wh-white);
    border: 1px solid var(--wh-border);
    border-radius: var(--wh-radius-md);
    cursor: pointer;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    min-height: 52px;
    padding: 10px 14px;
}

.wh-choice__copy {
    display: grid;
    gap: 2px;
}

.wh-toggle__input,
.wh-radio__input,
.wh-upload__input {
    block-size: 1px;
    inline-size: 1px;
    opacity: 0;
    position: absolute;
}

.wh-toggle__track {
    background: #94a3b8;
    border-radius: 999px;
    display: block;
    flex: 0 0 auto;
    height: 26px;
    padding: 3px;
    transition: background-color 160ms ease;
    width: 46px;
}

.wh-toggle__thumb {
    background: var(--wh-white);
    border-radius: 50%;
    box-shadow: var(--wh-shadow-sm);
    display: block;
    height: 20px;
    transform: translateX(0);
    transition: transform 160ms ease;
    width: 20px;
}

[dir="rtl"] .wh-toggle__thumb {
    transform: translateX(0);
}

.wh-toggle__input:checked + .wh-toggle__track {
    background: var(--wh-green-dark);
}

.wh-toggle__input:checked + .wh-toggle__track .wh-toggle__thumb {
    transform: translateX(20px);
}

[dir="rtl"] .wh-toggle__input:checked + .wh-toggle__track .wh-toggle__thumb {
    transform: translateX(-20px);
}

.wh-toggle__input:focus-visible + .wh-toggle__track,
.wh-radio__input:focus-visible + .wh-radio__mark,
.wh-upload__input:focus-visible + .wh-upload__dropzone {
    outline: 3px solid color-mix(in srgb, var(--wh-teal) 75%, white);
    outline-offset: 3px;
}

.wh-radio {
    justify-content: flex-start;
}

.wh-radio__mark {
    border: 2px solid var(--wh-border-strong);
    border-radius: 50%;
    height: 22px;
    position: relative;
    width: 22px;
}

.wh-radio__input:checked + .wh-radio__mark {
    border-color: var(--wh-green-dark);
}

.wh-radio__input:checked + .wh-radio__mark::after {
    background: var(--wh-green-dark);
    border-radius: 50%;
    content: "";
    inset: 4px;
    position: absolute;
}

.wh-quantity__control {
    align-items: center;
    border: 1px solid var(--wh-border-strong);
    border-radius: var(--wh-radius-md);
    display: inline-flex;
    overflow: hidden;
}

.wh-quantity__button {
    align-items: center;
    background: var(--wh-surface-soft);
    border: 0;
    color: var(--wh-navy);
    display: inline-flex;
    height: 44px;
    justify-content: center;
    width: 44px;
}

.wh-quantity__input {
    appearance: textfield;
    border: 0;
    color: var(--wh-navy);
    font-weight: 700;
    height: 44px;
    text-align: center;
    width: 64px;
}

.wh-quantity__input::-webkit-inner-spin-button,
.wh-quantity__input::-webkit-outer-spin-button {
    appearance: none;
}

.wh-date-chip {
    background: var(--wh-white);
    border: 1px solid var(--wh-border-strong);
    border-radius: var(--wh-radius-md);
    color: var(--wh-navy);
    min-height: 44px;
    padding: 9px 14px;
}

.wh-date-chip.is-selected,
.wh-date-chip[aria-pressed="true"] {
    background: var(--wh-success-soft);
    border-color: var(--wh-green-dark);
    color: var(--wh-green-dark);
    font-weight: 700;
}

.wh-upload {
    position: relative;
}

.wh-upload__dropzone {
    align-items: center;
    background: var(--wh-surface-soft);
    border: 1px dashed var(--wh-border-strong);
    border-radius: var(--wh-radius-lg);
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: var(--wh-space-1);
    justify-content: center;
    min-height: 144px;
    padding: var(--wh-space-3);
    text-align: center;
}

.wh-upload__dropzone > i {
    color: var(--wh-green-dark);
    font-size: 2rem;
}

.wh-upload__label {
    color: var(--wh-navy);
    font-weight: 700;
}

/* Statuses, cards, and feedback */
.wh-status {
    align-items: center;
    background: var(--wh-surface-muted);
    border-radius: 999px;
    color: var(--wh-text);
    display: inline-flex;
    font-size: 0.8125rem;
    font-weight: 700;
    gap: 5px;
    line-height: 1;
    min-height: 28px;
    padding: 6px 10px;
}

.wh-status--success { background: var(--wh-success-soft); color: var(--wh-green-dark); }
.wh-status--warning { background: var(--wh-warning-soft); color: var(--wh-warning); }
.wh-status--danger { background: var(--wh-danger-soft); color: var(--wh-danger); }
.wh-status--info { background: var(--wh-info-soft); color: var(--wh-info); }
.wh-status--teal { background: #e8fffb; color: #087f72; }

.wh-card {
    background: var(--wh-white);
    border: 1px solid var(--wh-border);
    border-radius: var(--wh-radius-lg);
    box-shadow: var(--wh-shadow-sm);
    color: inherit;
    display: flex;
    gap: var(--wh-space-2);
    min-width: 0;
    overflow: hidden;
    padding: var(--wh-space-2);
    text-decoration: none;
}

a.wh-card:hover {
    border-color: var(--wh-teal);
    color: inherit;
    transform: translateY(-1px);
}

.wh-card__media {
    border-radius: var(--wh-radius-md);
    flex: 0 0 96px;
    min-height: 96px;
    overflow: hidden;
}

.wh-card__media img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.wh-card__body {
    flex: 1 1 auto;
    min-width: 0;
}

.wh-card__eyebrow {
    color: var(--wh-teal);
    display: block;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    margin-block-end: 4px;
    text-transform: uppercase;
}

.wh-card__title {
    color: var(--wh-navy);
    font-size: 1rem;
    line-height: 1.35;
    margin: 0;
    overflow-wrap: anywhere;
}

.wh-card__meta {
    color: var(--wh-text-muted);
    font-size: 0.875rem;
    margin: 6px 0 0;
}

.wh-card__value {
    color: var(--wh-navy);
    font-size: 1.25rem;
    font-weight: 800;
    margin: 8px 0 0;
}

.wh-card__actions {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
}

.wh-card--kpi {
    border-block-start: 4px solid var(--wh-teal);
    display: block;
    min-height: 128px;
}

.wh-feedback {
    align-items: flex-start;
    background: var(--wh-info-soft);
    border: 1px solid #b2ddff;
    border-radius: var(--wh-radius-lg);
    color: var(--wh-info);
    display: flex;
    gap: 12px;
    padding: var(--wh-space-2);
}

.wh-feedback--success { background: var(--wh-success-soft); border-color: #abefc6; color: var(--wh-green-dark); }
.wh-feedback--warning { background: var(--wh-warning-soft); border-color: #fedf89; color: var(--wh-warning); }
.wh-feedback--error { background: var(--wh-danger-soft); border-color: #fecdca; color: var(--wh-danger); }
.wh-feedback--permission { background: #f4f3ff; border-color: #d9d6fe; color: #53389e; }
.wh-feedback--empty { background: var(--wh-surface-soft); border-color: var(--wh-border); color: var(--wh-text-muted); }
.wh-feedback--loading { background: var(--wh-surface-soft); border-color: var(--wh-border); color: var(--wh-text-muted); }

.wh-feedback__icon {
    flex: 0 0 auto;
    font-size: 1.35rem;
    margin-block-start: 1px;
}

.wh-feedback__body {
    flex: 1 1 auto;
    min-width: 0;
}

.wh-feedback__title {
    color: currentColor;
    font-size: 0.9375rem;
    margin: 0 0 4px;
}

.wh-feedback__message {
    color: currentColor;
    font-size: 0.875rem;
    margin: 0;
}

.wh-skeleton {
    animation: wh-pulse 1.3s ease-in-out infinite;
    background: #dce7e4;
    border-radius: 999px;
    display: block;
}

.wh-skeleton--icon { border-radius: var(--wh-radius-sm); flex: 0 0 44px; height: 44px; }
.wh-skeleton--line { height: 12px; margin-block: 5px; width: 90%; }
.wh-skeleton--short { width: 58%; }

/* Drawers, modals, and sheets */
.wh-overlay {
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    position: fixed;
    visibility: hidden;
    z-index: 10020;
}

.wh-overlay.is-open {
    pointer-events: auto;
    visibility: visible;
}

.wh-overlay__backdrop {
    background: rgba(16, 35, 59, 0.58);
    border: 0;
    inset: 0;
    opacity: 0;
    padding: 0;
    position: absolute;
    transition: opacity 180ms ease;
    width: 100%;
}

.wh-overlay.is-open .wh-overlay__backdrop {
    opacity: 1;
}

.wh-overlay__panel {
    background: var(--wh-white);
    box-shadow: var(--wh-shadow-lg);
    display: flex;
    flex-direction: column;
    max-height: 100dvh;
    position: absolute;
    transition: transform 200ms ease, opacity 180ms ease;
}

.wh-overlay__header,
.wh-overlay__footer {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: var(--wh-space-2);
    justify-content: space-between;
    padding: var(--wh-space-2) var(--wh-space-3);
}

.wh-overlay__header { border-block-end: 1px solid var(--wh-border); }
.wh-overlay__footer { border-block-start: 1px solid var(--wh-border); }
.wh-overlay__header h2 { color: var(--wh-navy); font-size: 1.125rem; margin: 0; }
.wh-overlay__body { flex: 1 1 auto; overflow-y: auto; padding: var(--wh-space-3); }

.wh-overlay--drawer .wh-overlay__panel {
    inset-block: 0;
    inset-inline-end: 0;
    max-width: 100%;
    transform: translateX(105%);
    width: min(440px, 92vw);
}

[dir="rtl"] .wh-overlay--drawer .wh-overlay__panel { transform: translateX(-105%); }
.wh-overlay--drawer.is-open .wh-overlay__panel,
[dir="rtl"] .wh-overlay--drawer.is-open .wh-overlay__panel { transform: translateX(0); }

.wh-overlay--start .wh-overlay__panel {
    inset-inline: 0 auto;
    transform: translateX(-105%);
}

[dir="rtl"] .wh-overlay--start .wh-overlay__panel { transform: translateX(105%); }
.wh-overlay--start.is-open .wh-overlay__panel,
[dir="rtl"] .wh-overlay--start.is-open .wh-overlay__panel { transform: translateX(0); }

.wh-overlay--modal {
    align-items: center;
    display: flex;
    justify-content: center;
    padding: var(--wh-space-2);
}

.wh-overlay--modal .wh-overlay__panel {
    border-radius: var(--wh-radius-lg);
    max-height: calc(100dvh - 32px);
    opacity: 0;
    position: relative;
    transform: translateY(16px) scale(0.98);
    width: min(560px, 100%);
}

.wh-overlay--modal.wh-overlay--sm .wh-overlay__panel { width: min(420px, 100%); }
.wh-overlay--modal.wh-overlay--lg .wh-overlay__panel { width: min(760px, 100%); }
.wh-overlay--modal.is-open .wh-overlay__panel { opacity: 1; transform: translateY(0) scale(1); }

.wh-overlay--sheet .wh-overlay__panel {
    border-radius: var(--wh-radius-lg) var(--wh-radius-lg) 0 0;
    inset-block-end: 0;
    inset-inline: 0;
    max-height: 88dvh;
    transform: translateY(105%);
}

.wh-overlay--sheet.is-open .wh-overlay__panel { transform: translateY(0); }

.wh-overlay__handle {
    background: var(--wh-border-strong);
    border-radius: 999px;
    display: block;
    height: 4px;
    margin: 10px auto 0;
    width: 44px;
}

body.wh-overlay-lock { overflow: hidden; }

/* Shared shell */
.wh-scope .header {
    backdrop-filter: blur(14px);
    background: color-mix(in srgb, var(--wh-white) 94%, transparent);
    border-block-end: 1px solid var(--wh-border);
    box-shadow: 0 4px 16px rgba(16, 35, 59, 0.06);
}

.wh-scope .header .navbar-brand img,
.wh-scope .provider-header .logo img {
    max-height: 42px;
    object-fit: contain;
}

.wh-scope .header a,
.wh-scope .header button,
.wh-scope .sidebar a {
    min-height: 44px;
}

.wh-scope .notify-link,
.wh-scope .dark-mode-toggle,
.wh-scope #mobile_btn,
.wh-scope #toggle_btn {
    align-items: center;
    border-radius: var(--wh-radius-md);
    display: inline-flex;
    justify-content: center;
    min-width: 44px;
}

.wh-scope .notify-link:hover,
.wh-scope .dark-mode-toggle:hover,
.wh-scope #mobile_btn:hover,
.wh-scope #toggle_btn:hover {
    background: var(--wh-surface-muted);
}

/* Keep desktop collapse and mobile drawer controls mutually exclusive. */
.wh-provider-shell .provider-header .header-left #toggle_btn {
    display: none;
}

@media (min-width: 992px) {
    .wh-provider-shell .provider-header #mobile_btn {
        display: none;
    }

    .wh-provider-shell .provider-header .header-left #toggle_btn {
        display: inline-flex;
        opacity: 1;
        width: 44px;
        height: 44px;
    }
}

.wh-provider-shell .provider-header {
    min-height: 72px;
}

.wh-provider-shell .sidebar {
    background: #fbfcfc;
    border-inline-end: 1px solid #dce5e9;
    box-shadow: 8px 0 24px rgba(16, 35, 59, 0.045);
}

.wh-provider-shell .sidebar .sidebar-menu {
    padding: 14px 10px 28px;
}

.wh-provider-shell .sidebar-menu > ul > li {
    margin-bottom: 4px;
}

.wh-provider-shell .sidebar-menu > ul > li.wh-sidebar-section {
    margin: 22px 12px 7px;
    min-height: auto;
    color: #657486;
    font-size: 0.6875rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    line-height: 1.2;
    text-transform: uppercase;
}

.wh-provider-shell .sidebar-menu > ul > li.wh-sidebar-section:first-child {
    margin-top: 6px;
}

.wh-provider-shell .sidebar-menu > ul > li.wh-sidebar-section > span {
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
}

.wh-provider-shell .sidebar-menu > ul > li > a,
.wh-provider-shell .sidebar-menu .submenu ul li a {
    border-radius: var(--wh-radius-md);
    color: #33465b;
    margin: 0;
    min-height: 44px;
    padding: 10px 12px;
    transition: background-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.wh-provider-shell .sidebar-menu > ul > li > a :is(i, span),
.wh-provider-shell .sidebar-menu .submenu ul li a :is(i, span),
.wh-provider-shell .sidebar-menu > ul > li > a > i,
.wh-provider-shell .sidebar-menu .submenu ul li a > i {
    color: inherit;
}

.wh-provider-shell .sidebar-menu > ul > li > a > i {
    width: 22px;
    margin-inline-end: 10px;
    margin-right: 10px;
    color: #5d7184;
    font-size: 1.15rem;
    text-align: center;
}

.wh-provider-shell .sidebar-menu > ul > li > a > span:not(.menu-arrow):not(.badge) {
    color: inherit;
    font-weight: 650;
}

.wh-provider-shell .sidebar-menu .menu-arrow::before {
    border-color: #758596;
}

.wh-provider-shell .sidebar-menu > ul > li > a:hover,
.wh-provider-shell .sidebar-menu > ul > li.active > a,
.wh-provider-shell .sidebar-menu a.active {
    background: #e7f7f2;
    color: #086f57;
}

.wh-provider-shell .sidebar-menu > ul > li > a:hover :is(i, span),
.wh-provider-shell .sidebar-menu > ul > li.active > a :is(i, span),
.wh-provider-shell .sidebar-menu a.active :is(i, span) {
    color: inherit;
}

.wh-provider-shell .sidebar-menu > ul > li.active > a {
    box-shadow: inset 3px 0 0 var(--wh-green);
    font-weight: 750;
}

.wh-provider-shell .sidebar-menu > ul > li > a:focus-visible,
.wh-provider-shell .sidebar-menu .submenu ul li a:focus-visible {
    outline: 3px solid rgba(16, 185, 129, 0.28);
    outline-offset: 2px;
}

.wh-provider-shell .sidebar-menu > ul > li.submenu > ul {
    margin: 4px 0 8px;
    padding: 4px 0 4px 20px;
    border-inline-start: 1px solid #dce5e9;
}

.wh-provider-shell .sidebar-menu > ul > li.submenu > ul > li {
    margin-bottom: 2px;
}

.wh-provider-shell .sidebar-menu > ul > li.submenu > ul > li > a {
    color: #526579;
    padding: 8px 10px;
}

[dir="rtl"] .wh-provider-shell .sidebar-menu > ul > li.active > a {
    box-shadow: inset -3px 0 0 var(--wh-green);
}

[dir="rtl"] .wh-provider-shell .sidebar-menu > ul > li > a > i {
    margin-right: 0;
    margin-left: 10px;
}

.mini-sidebar.wh-provider-shell .sidebar-menu > ul > li.wh-sidebar-section {
    height: 1px;
    margin: 12px 10px;
    overflow: hidden;
    border-top: 1px solid #dce5e9;
    color: transparent;
}

.wh-customer-shell .header-nav {
    min-height: 72px;
}

.wh-customer-shell .main-nav > li > a {
    border-radius: var(--wh-radius-sm);
    color: var(--wh-navy);
    font-weight: 650;
}

.wh-customer-shell .main-nav > li > a:hover,
.wh-customer-shell .main-nav > li.active > a {
    background: var(--wh-surface-muted);
    color: var(--wh-green-dark);
}

.wh-mobile-nav {
    display: none;
}

@media (max-width: 991.98px) {
    .wh-scope {
        padding-block-end: 76px;
    }

    .wh-mobile-nav {
        align-items: stretch;
        background: color-mix(in srgb, var(--wh-white) 96%, transparent);
        border-block-start: 1px solid var(--wh-border);
        bottom: 0;
        box-shadow: 0 -8px 24px rgba(16, 35, 59, 0.09);
        display: grid;
        grid-template-columns: repeat(var(--wh-mobile-items, 5), minmax(0, 1fr));
        inset-inline: 0;
        inline-size: 100vw;
        max-inline-size: 100vw;
        min-height: 68px;
        padding: 6px max(8px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
        position: fixed;
        z-index: 10010;
    }

    .wh-customer-shell .hero-section .hero-content h1,
    .wh-customer-shell .hero-section .hero-content .sub-title,
    .wh-customer-shell .section-header h2,
    .wh-customer-shell .section-header .sub-title {
        max-inline-size: 100%;
        overflow-wrap: anywhere;
        white-space: normal;
    }

    .wh-customer-shell .hero-section .hero-content h1 .typed_text {
        white-space: normal;
    }

    .wh-customer-shell .hero-section .banner-info {
        display: grid !important;
        gap: var(--wh-space-8) var(--wh-space-16);
        grid-template-columns: repeat(2, minmax(0, 1fr));
        inline-size: 100%;
    }

    .wh-customer-shell .hero-section .banner-info > div {
        margin-inline-end: 0 !important;
        min-inline-size: 0;
    }

    .wh-customer-shell .hero-section .banner-info p {
        overflow-wrap: anywhere;
    }

    .wh-mobile-nav__item {
        align-items: center;
        border-radius: var(--wh-radius-sm);
        color: var(--wh-text-muted);
        display: flex;
        flex-direction: column;
        font-size: 0.6875rem;
        font-weight: 700;
        gap: 2px;
        justify-content: center;
        line-height: 1.15;
        min-height: 52px;
        min-width: 0;
        padding: 4px 2px;
        text-align: center;
        text-decoration: none;
    }

    .wh-mobile-nav__item i {
        font-size: 1.35rem;
    }

    .wh-mobile-nav__item span {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .wh-mobile-nav__item:hover,
    .wh-mobile-nav__item.is-active,
    .wh-mobile-nav__item[aria-current="page"] {
        background: var(--wh-success-soft);
        color: var(--wh-green-dark);
    }

    .wh-provider-shell .sidebar {
        z-index: 10030;
    }

    .wh-card {
        padding: 14px;
    }
}

@media (max-width: 479.98px) {
    .wh-card {
        align-items: stretch;
        flex-direction: column;
    }

    .wh-card__media {
        flex-basis: 160px;
        width: 100%;
    }

    .wh-card__actions {
        width: 100%;
    }

    .wh-card__actions .wh-button {
        width: 100%;
    }

    .wh-overlay__header,
    .wh-overlay__footer,
    .wh-overlay__body {
        padding: var(--wh-space-2);
    }

    .wh-overlay--drawer .wh-overlay__panel {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .wh-scope *,
    .wh-scope *::before,
    .wh-scope *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .wh-spinner,
    .wh-skeleton {
        animation: none !important;
    }
}

@keyframes wh-spin {
    to { transform: rotate(360deg); }
}

@keyframes wh-pulse {
    0%, 100% { opacity: 0.55; }
    50% { opacity: 1; }
}

/* Provider calendar */
.wh-provider-shell .wh-calendar {
    display: grid;
    gap: var(--wh-space-3);
}

.wh-provider-shell .wh-calendar__entry-points,
.wh-provider-shell .wh-calendar__filter-primary,
.wh-provider-shell .wh-calendar__filter-grid,
.wh-provider-shell .wh-calendar__legend,
.wh-provider-shell .wh-calendar-detail__actions {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: var(--wh-space-2);
}

.wh-provider-shell .wh-calendar__entry-points .wh-button[disabled] {
    cursor: not-allowed;
    opacity: 0.58;
}

.wh-provider-shell .wh-calendar__capability-note {
    margin: 0;
}

.wh-provider-shell .wh-calendar__filter-card,
.wh-provider-shell .wh-calendar__surface {
    background: var(--wh-white);
    border: 1px solid var(--wh-border);
    border-radius: var(--wh-radius-lg);
    box-shadow: var(--wh-shadow-sm);
}

.wh-provider-shell .wh-calendar__filter-card {
    display: grid;
    gap: var(--wh-space-2);
    padding: var(--wh-space-3);
}

.wh-provider-shell .wh-calendar__filter-primary .wh-field,
.wh-provider-shell .wh-calendar__filter-grid .wh-field {
    flex: 1 1 240px;
}

.wh-provider-shell .wh-calendar__more-filters {
    border-block-start: 1px solid var(--wh-border);
    padding-block-start: var(--wh-space-2);
}

.wh-provider-shell .wh-calendar__more-filters summary {
    align-items: center;
    border-radius: var(--wh-radius-sm);
    color: var(--wh-navy);
    cursor: pointer;
    display: flex;
    font-weight: 700;
    justify-content: space-between;
    min-height: 44px;
    padding: 8px 12px;
}

.wh-provider-shell .wh-calendar__more-filters summary::marker { content: ''; }
.wh-provider-shell .wh-calendar__more-filters summary span { align-items: center; display: inline-flex; gap: 8px; }
.wh-provider-shell .wh-calendar__more-filters[open] summary > .ti-chevron-down { transform: rotate(180deg); }
.wh-provider-shell .wh-calendar__filter-grid { padding-block-start: var(--wh-space-2); }

.wh-provider-shell .wh-calendar__legend {
    align-items: center;
}

.wh-provider-shell .wh-calendar__surface {
    min-width: 0;
    padding: var(--wh-space-3);
    position: relative;
}

.wh-provider-shell .wh-calendar__state {
    align-items: center;
    background: color-mix(in srgb, var(--wh-white) 92%, transparent);
    display: flex;
    gap: var(--wh-space-2);
    inset: 0;
    justify-content: center;
    min-height: 180px;
    position: absolute;
    z-index: 4;
}

.wh-provider-shell .wh-calendar .fc { color: var(--wh-navy); }
.wh-provider-shell .wh-calendar .fc .fc-toolbar { gap: var(--wh-space-2); }
.wh-provider-shell .wh-calendar .fc .fc-toolbar-title { font-size: clamp(1.05rem, 2vw, 1.4rem); }
.wh-provider-shell .wh-calendar .fc .fc-button {
    align-items: center;
    background-color: var(--wh-white) !important;
    border: 1px solid var(--wh-border-strong) !important;
    border-radius: 8px;
    color: #33465b !important;
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
}

.wh-provider-shell .wh-calendar .fc .fc-button:hover,
.wh-provider-shell .wh-calendar .fc .fc-button.fc-button-active,
.wh-provider-shell .wh-calendar .fc .fc-button-primary:not(:disabled):active {
    background-color: var(--wh-green) !important;
    border-color: #07875f !important;
    color: var(--wh-white) !important;
}

.wh-provider-shell .wh-calendar .fc .fc-button:disabled {
    background-color: #f4f7f8 !important;
    border-color: #d6e0e5 !important;
    color: #5f6f80 !important;
    opacity: 1;
}

.wh-provider-shell .wh-calendar .fc .fc-button:focus-visible,
.wh-provider-shell .wh-calendar .fc .fc-event:focus-visible,
.wh-provider-shell .wh-calendar__more-filters summary:focus-visible {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--wh-teal) 32%, transparent);
    outline: 2px solid var(--wh-navy);
    outline-offset: 2px;
}

.wh-provider-shell .wh-calendar .fc .fc-event {
    border-radius: 8px;
    cursor: pointer;
    min-height: 44px;
    overflow: hidden;
    padding: 5px 7px;
    white-space: normal;
}

.wh-provider-shell .wh-calendar-event { display: grid; gap: 2px; min-width: 0; }
.wh-provider-shell .wh-calendar-event__heading,
.wh-provider-shell .wh-calendar-event__detail {
    display: block;
    overflow-wrap: anywhere;
}
.wh-provider-shell .wh-calendar-event__heading { font-weight: 800; }
.wh-provider-shell .wh-calendar-event__detail { font-size: 0.75rem; line-height: 1.35; }
.wh-provider-shell .wh-calendar-event--compact {
    align-items: center;
    border-radius: 7px;
    display: flex;
    height: 100%;
    justify-content: center;
    min-height: 34px;
    width: 100%;
}
.wh-provider-shell .wh-calendar-event--compact i {
    color: inherit;
    font-size: 1rem;
    line-height: 1;
}

.wh-provider-shell .wh-calendar .fc-list-event-title a {
    color: var(--wh-navy);
    display: block;
    min-height: 44px;
    padding: 8px;
}

.wh-provider-shell .wh-calendar-detail__loading { align-items: center; display: flex; gap: var(--wh-space-2); }
.wh-provider-shell .wh-calendar-detail { display: grid; gap: var(--wh-space-3); }
.wh-provider-shell .wh-calendar-detail__list { display: grid; gap: 0; margin: 0; }
.wh-provider-shell .wh-calendar-detail__list > div {
    border-block-end: 1px solid var(--wh-border);
    display: grid;
    gap: 4px;
    grid-template-columns: minmax(100px, 0.38fr) 1fr;
    padding-block: 12px;
}
.wh-provider-shell .wh-calendar-detail__list dt { color: var(--wh-text-muted); font-size: 0.8125rem; font-weight: 700; }
.wh-provider-shell .wh-calendar-detail__list dd { color: var(--wh-navy); font-weight: 700; margin: 0; overflow-wrap: anywhere; }

@media (max-width: 767.98px) {
    .wh-provider-shell .wh-calendar__entry-points,
    .wh-provider-shell .wh-calendar__filter-primary { align-items: stretch; flex-direction: column; }
    .wh-provider-shell .wh-calendar__entry-points .wh-button,
    .wh-provider-shell .wh-calendar__filter-primary .wh-button { width: 100%; }
    .wh-provider-shell .wh-calendar__filter-primary .wh-field { flex-basis: auto; }
    .wh-provider-shell .wh-calendar__surface,
    .wh-provider-shell .wh-calendar__filter-card { padding: var(--wh-space-2); }
    .wh-provider-shell .wh-calendar__legend {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-block-end: 4px;
        scrollbar-width: thin;
    }
    .wh-provider-shell .wh-calendar__legend .wh-status { flex: 0 0 auto; }
    .wh-provider-shell .wh-calendar .fc .fc-header-toolbar { align-items: stretch; flex-direction: column; }
    .wh-provider-shell .wh-calendar .fc .fc-toolbar-chunk { display: flex; justify-content: center; }
    .wh-provider-shell .wh-calendar .fc .fc-toolbar-chunk:nth-child(2) { order: -1; }
    .wh-provider-shell .wh-calendar .fc .fc-button-group { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; }
    .wh-provider-shell .wh-calendar .fc .fc-button { min-width: 0; padding-inline: 8px; }
    .wh-provider-shell .wh-calendar .fc .fc-timeGridDay-button,
    .wh-provider-shell .wh-calendar .fc .fc-timeGridWeek-button,
    .wh-provider-shell .wh-calendar .fc .fc-dayGridMonth-button,
    .wh-provider-shell .wh-calendar .fc .fc-listWeek-button { font-size: 0.8125rem; }
    .wh-provider-shell .wh-calendar .fc-list-table { table-layout: fixed; width: 100%; }
    .wh-provider-shell .wh-calendar .fc-list-event-time { white-space: normal; width: 72px; }
    .wh-provider-shell .wh-calendar .fc-list-event-graphic { width: 20px; }
    .wh-provider-shell .wh-calendar .fc-list-event-title { min-width: 0; overflow-wrap: anywhere; }
    .wh-provider-shell .wh-calendar .fc-timeGridWeek-view .fc-event,
    .wh-provider-shell .wh-calendar .fc-dayGridMonth-view .fc-event {
        align-items: center;
        display: flex;
        justify-content: center;
        padding: 0;
        white-space: nowrap;
    }
    .wh-provider-shell .wh-calendar .fc-timeGridWeek-view .fc-event-main,
    .wh-provider-shell .wh-calendar .fc-dayGridMonth-view .fc-event-main {
        height: 100%;
        min-width: 0;
        width: 100%;
    }
    .wh-provider-shell .wh-calendar .fc-timeGridWeek-view .fc-event-time,
    .wh-provider-shell .wh-calendar .fc-dayGridMonth-view .fc-event-time { display: none; }
    .wh-provider-shell #calendar-booking-details.wh-overlay--drawer .wh-overlay__panel {
        border-radius: var(--wh-radius-lg) var(--wh-radius-lg) 0 0;
        inset-block: auto 0;
        inset-inline: 0;
        max-height: 88dvh;
        transform: translateY(105%);
        width: 100%;
    }
    .wh-provider-shell #calendar-booking-details.wh-overlay--drawer.is-open .wh-overlay__panel { transform: translateY(0); }
}

/* Provider operational core */
.wh-provider-shell .wh-operations .content {
    max-width: 1440px;
    padding: 32px;
}

.wh-page-heading {
    align-items: flex-end;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    margin-bottom: 24px;
}

.wh-page-heading h1 {
    color: var(--wh-navy);
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    letter-spacing: -0.035em;
    margin: 2px 0 8px;
}

.wh-page-heading p,
.wh-muted {
    color: var(--wh-text-muted);
    margin: 0;
}

.wh-eyebrow {
    color: var(--wh-green-dark) !important;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin: 0;
    text-transform: uppercase;
}

.wh-kpi-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 24px;
}

.wh-ops-kpi {
    align-items: flex-start;
    background: var(--wh-surface);
    border: 1px solid var(--wh-border);
    border-radius: 12px;
    box-shadow: var(--wh-shadow-sm);
    display: flex;
    gap: 12px;
    min-width: 0;
    padding: 16px;
}

.wh-ops-kpi__icon,
.wh-attention-row__icon {
    align-items: center;
    background: var(--wh-success-soft);
    border-radius: 10px;
    color: var(--wh-green-dark);
    display: inline-flex;
    flex: 0 0 44px;
    font-size: 1.25rem;
    height: 44px;
    justify-content: center;
}

.wh-ops-kpi strong {
    color: var(--wh-navy);
    display: block;
    font-size: 1.75rem;
    line-height: 1;
}

.wh-ops-kpi span:not(.wh-ops-kpi__icon) {
    display: block;
    font-weight: 750;
    margin-top: 6px;
}

.wh-ops-kpi small {
    color: var(--wh-text-muted);
    display: block;
    font-size: 0.72rem;
    line-height: 1.35;
    margin-top: 6px;
}

.wh-ops-layout {
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(280px, 0.8fr) minmax(420px, 1.4fr);
}

.wh-ops-panel {
    background: var(--wh-surface);
    border: 1px solid var(--wh-border);
    border-radius: 12px;
    box-shadow: var(--wh-shadow-sm);
    min-width: 0;
    padding: 24px;
}

.wh-ops-panel__header {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 16px;
}

.wh-ops-panel__header > a {
    align-items: center;
    display: inline-flex;
    min-height: 44px;
}

.wh-ops-panel h2 {
    color: var(--wh-navy);
    font-size: 1.125rem;
    margin: 3px 0 0;
}

.wh-ops-panel h3,
.wh-schedule-row h3,
.wh-attention-row h3 {
    color: var(--wh-navy);
    font-size: 0.975rem;
    margin: 0;
    overflow-wrap: anywhere;
}

.wh-next-appointment__time {
    align-items: baseline;
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.wh-next-appointment__time strong {
    color: var(--wh-navy);
    font-size: clamp(2rem, 4vw, 3.25rem);
    letter-spacing: -0.05em;
}

.wh-next-appointment > .wh-status {
    margin-top: 16px;
}

.wh-action-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 24px;
}

.wh-schedule-row,
.wh-attention-row {
    align-items: center;
    border-top: 1px solid var(--wh-border);
    display: grid;
    gap: 16px;
    grid-template-columns: 120px minmax(0, 1fr) auto;
    padding: 14px 0;
}

.wh-schedule-row:first-of-type,
.wh-attention-row:first-of-type {
    border-top: 0;
}

.wh-schedule-row time {
    color: var(--wh-navy);
    font-size: 0.8125rem;
    font-weight: 800;
}

.wh-schedule-row p,
.wh-attention-row p {
    color: var(--wh-text-muted);
    font-size: 0.8125rem;
    margin: 3px 0 0;
}

.wh-attention-panel {
    grid-column: 1 / -1;
}

.wh-attention-row {
    grid-template-columns: 44px minmax(0, 1fr) auto;
}

.wh-count {
    align-items: center;
    background: var(--wh-danger-soft);
    border-radius: 999px;
    color: var(--wh-danger);
    display: inline-flex;
    font-weight: 800;
    justify-content: center;
    min-height: 32px;
    min-width: 32px;
    padding: 4px 10px;
}

.wh-booking-filters {
    align-items: end;
    background: var(--wh-surface);
    border: 1px solid var(--wh-border);
    border-radius: 12px;
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(240px, 2fr) minmax(180px, 1fr) minmax(170px, 1fr) auto;
    margin-bottom: 16px;
    padding: 16px;
}

.wh-filter-actions {
    display: flex;
    gap: 8px;
}

.wh-results-summary {
    align-items: baseline;
    color: var(--wh-text-muted);
    display: flex;
    font-size: 0.875rem;
    gap: 8px;
    margin: 0 0 12px;
}

.wh-results-summary strong {
    color: var(--wh-navy);
}

.wh-booking-table {
    background: var(--wh-surface);
    border: 1px solid var(--wh-border);
    border-radius: 12px;
    box-shadow: var(--wh-shadow-sm);
    overflow-x: auto;
}

.wh-booking-table table {
    border-collapse: collapse;
    min-width: 900px;
    width: 100%;
}

.wh-booking-table th {
    background: var(--wh-surface-soft);
    color: var(--wh-text-muted);
    font-size: 0.75rem;
    letter-spacing: 0.04em;
    padding: 12px 16px;
    text-align: start;
    text-transform: uppercase;
}

.wh-booking-table td {
    border-top: 1px solid var(--wh-border);
    padding: 16px;
    vertical-align: middle;
}

.wh-booking-table td > strong,
.wh-booking-table td > span {
    display: block;
    overflow-wrap: anywhere;
}

.wh-booking-table td > span:not(.wh-status) {
    color: var(--wh-text-muted);
    font-size: 0.8rem;
    margin-top: 4px;
}

.wh-person-cell {
    align-items: center;
    display: flex;
    gap: 10px;
    min-width: 180px;
}

.wh-person-cell img {
    border-radius: 50%;
    height: 40px;
    object-fit: cover;
    width: 40px;
}

.wh-person-cell span {
    color: var(--wh-text-muted);
    display: block;
    font-size: 0.75rem;
}

.wh-booking-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-end;
    min-width: 190px;
}

.wh-pagination {
    display: flex;
    justify-content: center;
    margin-top: 24px;
}

.wh-confirm-dialog {
    border: 0;
    border-radius: 12px;
    text-align: center;
}

.wh-confirm-dialog .modal-body {
    padding: 32px;
}

.wh-confirm-dialog__icon {
    align-items: center;
    background: var(--wh-success-soft);
    border-radius: 50%;
    color: var(--wh-green-dark);
    display: inline-flex;
    font-size: 1.75rem;
    height: 56px;
    justify-content: center;
    margin-bottom: 16px;
    width: 56px;
}

.wh-confirm-dialog--danger .wh-confirm-dialog__icon {
    background: var(--wh-danger-soft);
    color: var(--wh-danger);
}

.wh-confirm-dialog .wh-action-row {
    justify-content: center;
}

.wh-detail-hero {
    align-items: flex-start;
    display: flex;
    gap: 16px;
    justify-content: space-between;
}

.wh-detail-hero h3 {
    color: var(--wh-navy);
    font-size: 1.35rem;
    margin: 4px 0;
    overflow-wrap: anywhere;
}

.wh-detail-statuses {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.wh-detail-actions {
    border-bottom: 1px solid var(--wh-border);
    margin: 16px 0 24px;
    padding-bottom: 16px;
}

.wh-detail-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wh-detail-grid section {
    background: var(--wh-surface-soft);
    border: 1px solid var(--wh-border);
    border-radius: 10px;
    padding: 16px;
}

.wh-detail-grid h4 {
    color: var(--wh-navy);
    font-size: 0.95rem;
    margin: 0 0 12px;
}

.wh-detail-grid dl,
.wh-detail-grid p {
    margin: 0;
}

.wh-detail-grid dl > div {
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(100px, 0.7fr) minmax(0, 1.3fr);
    padding: 6px 0;
}

.wh-detail-grid dt {
    color: var(--wh-text-muted);
    font-weight: 600;
}

.wh-detail-grid dd {
    color: var(--wh-navy);
    font-weight: 750;
    margin: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 1199.98px) {
    .wh-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .wh-ops-layout { grid-template-columns: 1fr; }
    .wh-attention-panel { grid-column: auto; }
    .wh-booking-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991.98px) {
    .wh-provider-shell .wh-operations .content { padding: 24px 16px; }
    .wh-page-heading { align-items: stretch; flex-direction: column; gap: 16px; }
    .wh-page-heading > .wh-button { width: 100%; }
    .wh-kpi-grid { gap: 8px; }
    .wh-ops-kpi { padding: 12px; }
    .wh-ops-kpi small { display: none; }
    .wh-ops-panel { padding: 16px; }
    .wh-schedule-row { align-items: start; grid-template-columns: 88px minmax(0, 1fr); }
    .wh-schedule-row > .wh-status { grid-column: 2; justify-self: start; }
    .wh-attention-row { align-items: start; grid-template-columns: 44px minmax(0, 1fr); }
    .wh-attention-row > .wh-button { grid-column: 2; justify-self: start; }
    .wh-booking-filters { grid-template-columns: 1fr; }
    .wh-filter-actions { flex-direction: column; }
    .wh-booking-table { background: transparent; border: 0; box-shadow: none; overflow: visible; }
    .wh-booking-table table, .wh-booking-table tbody { display: block; min-width: 0; }
    .wh-booking-table thead { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
    .wh-booking-table tr { background: var(--wh-surface); border: 1px solid var(--wh-border); border-radius: 12px; box-shadow: var(--wh-shadow-sm); display: grid; gap: 14px; margin-bottom: 16px; padding: 16px; }
    .wh-booking-table td { border: 0; display: grid; gap: 6px; grid-template-columns: minmax(96px, 0.7fr) minmax(0, 1.3fr); padding: 0; }
    .wh-booking-table td::before { color: var(--wh-text-muted); content: attr(data-label); font-size: 0.75rem; font-weight: 750; }
    .wh-booking-table .wh-booking-actions { border-top: 1px solid var(--wh-border); display: flex; grid-template-columns: none; justify-content: stretch; margin-top: 2px; min-width: 0; padding-top: 14px; }
    .wh-booking-table .wh-booking-actions::before { display: none; }
    .wh-booking-actions .wh-button { flex: 1 1 calc(50% - 4px); }
    .wh-person-cell { min-width: 0; }
    .wh-detail-hero { flex-direction: column; }
    .wh-detail-statuses { align-items: flex-start; flex-direction: row; flex-wrap: wrap; }
    .wh-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 389.98px) {
    .wh-kpi-grid { grid-template-columns: 1fr; }
    .wh-ops-kpi small { display: block; }
    .wh-booking-table td { grid-template-columns: 88px minmax(0, 1fr); }
}
/* Provider service management: intentionally scoped away from admin/staff/legacy pages. */
.wh-provider-shell .wh-service-wizard,
.wh-provider-shell .wh-services {
  --wh-service-border: #dbe2ea;
  --wh-service-muted: #607084;
  color: #10233b;
}

.wh-service-wizard .content,
.wh-services.content { background: #f7f9fb; }
.wh-service-wizard__header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:24px; }
.wh-service-wizard__header h1 { margin:8px 0 4px; color:#10233b; font-size:clamp(1.65rem,3vw,2.25rem); }
.wh-service-wizard__header p, .wh-service-wizard__title p, .wh-service-wizard .wh-alert p { margin:0; color:var(--wh-service-muted); }
.wh-service-wizard__back { display:inline-flex; min-height:44px; align-items:center; gap:8px; color:#0b806f; font-weight:700; }
.wh-service-wizard__language { display:grid; grid-template-columns:minmax(140px,220px); gap:8px; margin-bottom:16px; }
.wh-service-wizard__steps { margin-bottom:24px; overflow:visible; }
.wh-service-wizard__steps ol { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); padding:0; margin:0; list-style:none; }
.wh-service-wizard__steps li { position:relative; min-width:0; }
.wh-service-wizard__steps li::after { content:""; position:absolute; z-index:0; top:15px; inset-inline-start:50%; width:100%; height:2px; background:#d7e2df; }
.wh-service-wizard__steps li:last-child::after { content:none; }
.wh-service-wizard__steps li.is-complete::after { background:#10b981; }
.wh-service-wizard__steps button { position:relative; z-index:1; display:flex; width:100%; min-width:0; min-height:72px; flex-direction:column; align-items:center; gap:7px; padding:0 5px; border:0; border-radius:8px; background:transparent; color:#607084; text-align:center; font-weight:650; }
.wh-service-wizard__step-marker { display:grid; width:32px; height:32px; flex:0 0 32px; place-items:center; border:2px solid #aebfba; border-radius:50%; background:#fff; color:#607084; font-size:.78rem; line-height:1; }
.wh-service-wizard__step-label { display:flex; min-width:0; align-items:flex-start; justify-content:center; gap:4px; font-size:.78rem; line-height:1.2; }
.wh-service-wizard__step-label > span { overflow-wrap:anywhere; }
.wh-service-wizard__step-label i { margin-top:1px; flex:0 0 auto; }
.wh-service-wizard__steps .is-active button { color:#08735e; }
.wh-service-wizard__steps .is-active .wh-service-wizard__step-marker { border-color:#10b981; color:#08735e; box-shadow:0 0 0 4px rgba(16,185,129,.14); }
.wh-service-wizard__steps .is-complete button { color:#08735e; }
.wh-service-wizard__steps .is-complete .wh-service-wizard__step-marker { border-color:#10b981; background:#10b981; color:#fff; font-size:0; }
.wh-service-wizard__steps .is-complete .wh-service-wizard__step-marker::before { content:"\2713"; font-size:.78rem; font-weight:900; }
.wh-service-wizard__steps button:disabled { cursor:not-allowed; opacity:1; }
.wh-service-wizard__form { background:#fff; border:1px solid var(--wh-service-border); border-radius:12px; box-shadow:0 8px 24px rgba(16,35,59,.06); }
.wh-service-wizard__panel { padding:24px; min-height:360px; }
.wh-service-wizard__panel[hidden] { display:none !important; }
.wh-service-wizard__title { display:flex; align-items:flex-start; gap:12px; padding-bottom:16px; margin-bottom:24px; border-bottom:1px solid var(--wh-service-border); }
.wh-service-wizard__title > span { display:grid; place-items:center; width:36px; height:36px; flex:0 0 36px; border-radius:10px; background:#10233b; color:#fff; font-weight:800; }
.wh-service-wizard__title h2 { margin:0 0 4px; font-size:1.25rem; }
.wh-service-wizard__subsection { margin-top:24px; padding-top:24px; border-top:1px solid var(--wh-service-border); }
.wh-service-wizard__subsection h3 { margin:0 0 16px; font-size:1rem; }
.wh-service-wizard__day { display:grid; grid-template-columns:minmax(120px,1fr) auto; gap:12px; align-items:start; padding:12px 0; border-bottom:1px solid #edf0f3; }
.wh-service-wizard__slots { grid-column:1/-1; }
.wh-service-wizard__media { display:flex; flex-wrap:wrap; gap:12px; margin-top:12px; }
.wh-service-wizard__actions { position:sticky; bottom:0; z-index:3; display:flex; justify-content:flex-end; gap:12px; padding:16px 24px; border-top:1px solid var(--wh-service-border); border-radius:0 0 12px 12px; background:rgba(255,255,255,.96); backdrop-filter:blur(8px); }
.wh-service-wizard__actions .btn { min-height:44px; min-width:112px; }
.wh-service-wizard__package-tabs { display:flex; gap:8px; flex-wrap:wrap; }
.wh-service-wizard__package-tabs button { min-height:44px; padding:8px 16px; border:1px solid #10b981; border-radius:8px; background:#fff; color:#08735e; }
.wh-service-preview { margin-top:20px; padding:20px; border:1px solid var(--wh-service-border); border-radius:10px; background:#f8fafb; }
.wh-service-preview h3 { margin:8px 0; overflow-wrap:anywhere; }
.wh-service-preview strong { color:#08735e; }
.wh-service-wizard .wh-alert { display:flex; gap:12px; padding:16px; margin-bottom:16px; border:1px solid #9adfd6; border-radius:10px; background:#ecfbf8; }
.wh-service-wizard .wh-alert--neutral { margin-top:24px; border-color:var(--wh-service-border); background:#f8fafb; }
.wh-service-wizard .wh-empty-state--compact { display:flex; gap:12px; align-items:center; margin-top:24px; padding:16px; border:1px dashed var(--wh-service-border); border-radius:10px; }
.wh-service-wizard .wh-empty-state--compact p { margin:2px 0 0; color:var(--wh-service-muted); }
.wh-service-wizard :is(input,select,textarea,button,a):focus-visible { outline:3px solid rgba(244,123,32,.42); outline-offset:2px; }

@media (max-width: 575.98px) {
  .wh-service-wizard .content { padding-inline:12px; }
  .wh-service-wizard__header { display:block; }
  .wh-service-wizard__header .wh-status-badge { margin-top:12px; }
  .wh-service-wizard__steps { margin-inline:-4px; margin-bottom:18px; }
  .wh-service-wizard__steps li::after { top:12px; }
  .wh-service-wizard__steps button { min-height:68px; gap:6px; padding-inline:2px; }
  .wh-service-wizard__step-marker { width:26px; height:26px; flex-basis:26px; font-size:.7rem; }
  .wh-service-wizard__step-label { display:block; width:100%; font-size:clamp(.62rem,2.45vw,.68rem); line-height:1.12; }
  .wh-service-wizard__step-label i { display:none; }
  .wh-service-wizard__step-label > span { display:block; hyphens:none; overflow-wrap:normal; word-break:normal; }
  .wh-service-wizard__panel { padding:16px; }
  .wh-service-wizard__actions { bottom:72px; padding:12px 16px; }
  .wh-service-wizard__form { margin-bottom:88px; }
  .wh-service-wizard__actions .btn { flex:1; min-width:0; }
  .wh-service-wizard__day { grid-template-columns:1fr auto; }
}

@media (prefers-reduced-motion: reduce) {
  .wh-service-wizard *, .wh-service-wizard *::before, .wh-service-wizard *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; }
}

.wh-services__header { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:24px; }
.wh-services__header h1 { margin:0 0 4px; color:#10233b; font-size:clamp(1.65rem,3vw,2.25rem); }
.wh-services__header p { margin:0; color:#607084; }
.wh-services__header .btn { min-height:44px; white-space:nowrap; }
.wh-services__toolbar { display:flex; gap:12px; margin-bottom:16px; }
.wh-services__toolbar :is(input,select) { min-height:44px; border:1px solid #dbe2ea; border-radius:10px; background:#fff; }
.wh-services__search { position:relative; flex:1; max-width:560px; }
.wh-services__search i { position:absolute; inset-inline-start:14px; top:14px; color:#607084; }
.wh-services__search input { width:100%; padding:8px 14px 8px 42px; }
[dir="rtl"] .wh-services__search input { padding:8px 42px 8px 14px; }
.wh-services__toolbar select { padding:8px 36px 8px 12px; }
.wh-services__surface { position:relative; padding:8px 20px 20px; border:1px solid #dbe2ea; border-radius:12px; background:#fff; box-shadow:0 8px 24px rgba(16,35,59,.05); }
.wh-services__loading { display:flex; align-items:center; gap:8px; min-height:88px; justify-content:center; color:#607084; }
.wh-services table { margin:0; }
.wh-services th { color:#607084; font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; }
.wh-services td { vertical-align:middle; }
.wh-services td:first-child strong { display:block; max-width:380px; overflow-wrap:anywhere; color:#10233b; }
.wh-services__metadata { display:block; margin-top:4px; color:#607084; overflow-wrap:anywhere; }
.wh-services__actions { display:flex; justify-content:flex-end; gap:8px; }
.wh-services__actions .btn { display:inline-flex; align-items:center; gap:6px; min-height:40px; }
.wh-provider-shell .wh-services .wh-services__toggle { display:flex; align-items:center; gap:8px; min-height:44px !important; margin:0; }
.wh-services__mobile { display:none; }
.wh-services__card { padding:16px; border:1px solid #dbe2ea; border-radius:10px; }
.wh-services__card + .wh-services__card { margin-top:12px; }
.wh-services__card h2 { margin:0 0 4px; font-size:1.05rem; overflow-wrap:anywhere; }
.wh-services__card p { margin:0 0 8px; color:#607084; }
.wh-services__card > strong { display:block; margin:12px 0 4px; color:#08735e; }
.wh-services .wh-empty-state, .wh-services .wh-error-state { padding:48px 16px; text-align:center; }
.wh-services .wh-empty-state i, .wh-services .wh-error-state i { font-size:2rem; color:#12b8a6; }
.wh-services .wh-empty-state h2, .wh-services .wh-error-state h2 { margin:12px 0 4px; font-size:1.1rem; }
.wh-services :is(input,select,button,a):focus-visible { outline:3px solid rgba(244,123,32,.42); outline-offset:2px; }

@media (max-width:767.98px) {
  .wh-services__header { display:block; }
  .wh-services__header .btn { width:100%; margin-top:16px; }
  .wh-services__toolbar { display:grid; grid-template-columns:1fr; }
  .wh-services__search { max-width:none; }
  .wh-services__surface { padding:12px; }
  .wh-services__desktop { display:none; }
  .wh-services__mobile { display:block; }
  .wh-services__actions .btn { flex:1; justify-content:center; min-height:44px; }
}

/* Customer discovery: scoped to the public shell so admin, staff, and legacy modules are unchanged. */
.wh-customer-shell .wh-public-page,
.wh-customer-shell .wh-public-section,
.wh-customer-shell .wh-public-home-hero,
.wh-customer-shell .wh-home {
  --wh-public-navy: #10233b;
  --wh-public-green: #10b981;
  --wh-public-teal: #12b8a6;
  --wh-public-orange: #f47b20;
  --wh-public-border: #dbe3ea;
  --wh-public-muted: #607084;
  color: var(--wh-public-navy);
}
.wh-customer-shell .wh-home { min-height:60vh; background:#f7f9fb; color:var(--wh-public-navy); }
.wh-customer-shell .wh-home__hero { padding:44px 0 28px; background:linear-gradient(135deg,#10233b 0%,#123e51 62%,#0b736b 100%); color:#fff; }
.wh-customer-shell .wh-home__hero-copy { max-width:740px; }
.wh-customer-shell .wh-home__hero .wh-public-eyebrow { color:#8ceadd; }
.wh-customer-shell .wh-home__hero h1 { margin:4px 0 8px; color:#fff; font-size:clamp(2rem,5vw,3.35rem); line-height:1.05; overflow-wrap:anywhere; }
.wh-customer-shell .wh-home__hero-copy > p:last-child { margin:0; color:#d8e8eb; font-size:1.02rem; }
.wh-customer-shell .wh-home-search { display:grid; grid-template-columns:minmax(190px,.72fr) minmax(280px,1.6fr) auto; gap:8px; max-width:980px; margin-top:22px; padding:8px; border:1px solid rgba(255,255,255,.34); border-radius:12px; background:#fff; box-shadow:0 16px 36px rgba(0,0,0,.2); }
.wh-customer-shell .wh-home-search__location { min-width:0; padding:5px 12px; border-radius:8px; background:#f1f5f6; }
.wh-customer-shell .wh-home-search__location label { display:flex; align-items:center; gap:5px; margin:0; color:#08735e; font-size:.68rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.wh-customer-shell .wh-home-search__location select { min-height:28px; width:100%; padding:0 24px 0 0; border:0; background-color:transparent; color:var(--wh-public-navy); font-weight:750; }
.wh-customer-shell .wh-home-search__query { position:relative; min-width:0; }
.wh-customer-shell .wh-home-search__query i { position:absolute; inset-inline-start:14px; top:50%; color:#607084; font-size:1.15rem; transform:translateY(-50%); }
.wh-customer-shell .wh-home-search__query input { min-height:52px; width:100%; padding:8px 14px 8px 44px; border:0; border-radius:8px; background:#f5f7f9; color:var(--wh-public-navy); }
[dir="rtl"] .wh-customer-shell .wh-home-search__query input { padding:8px 44px 8px 14px; }
.wh-customer-shell .wh-home-search .wh-button { min-height:52px; padding-inline:22px; }
.wh-customer-shell .wh-home-search__note { display:flex; align-items:center; gap:6px; margin:10px 0 0; color:#cfe4e7; font-size:.75rem; }
.wh-customer-shell .wh-home :is(a,button,input,select):focus-visible { outline:3px solid rgba(244,123,32,.65); outline-offset:3px; }
.wh-customer-shell .wh-home__categories { padding:28px 0 24px; background:#fff; }
.wh-customer-shell .wh-home__section-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:16px; }
.wh-customer-shell .wh-home__section-head h2 { margin:0; color:var(--wh-public-navy); font-size:clamp(1.28rem,2.4vw,1.8rem); overflow-wrap:anywhere; }
.wh-customer-shell .wh-home__section-head p:not(.wh-public-eyebrow) { margin:4px 0 0; color:var(--wh-public-muted); }
.wh-customer-shell .wh-home__section-head > a { display:inline-flex; align-items:center; gap:5px; min-height:44px; color:#08735e; font-size:.82rem; font-weight:800; white-space:nowrap; }
.wh-customer-shell .wh-home-category-grid { grid-template-columns:repeat(8,minmax(0,1fr)); gap:10px; }
.wh-customer-shell .wh-home-category-grid .wh-public-category-card { display:flex; min-height:112px; flex-direction:column; justify-content:center; gap:7px; padding:10px 6px; text-align:center; box-shadow:none; }
.wh-customer-shell .wh-home-category-grid .wh-public-category-card__image { width:48px; height:48px; }
.wh-customer-shell .wh-home-category-grid .wh-public-category-card__content strong { display:-webkit-box; min-height:2.4em; font-size:.76rem; line-height:1.2; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.wh-customer-shell .wh-home-category-grid .wh-public-category-card__content small,
.wh-customer-shell .wh-home-category-grid .wh-public-category-card > i { display:none; }
.wh-customer-shell .wh-home__content { display:grid; grid-template-columns:minmax(0,2fr) minmax(290px,.82fr); gap:24px; padding-top:28px; padding-bottom:48px; }
.wh-customer-shell .wh-home__content--single { grid-template-columns:1fr; }
.wh-customer-shell .wh-home__services { min-width:0; grid-column:1; grid-row:1; }
.wh-customer-shell .wh-home__personal { display:grid; align-content:start; gap:16px; grid-column:2; grid-row:1; }
.wh-customer-shell .wh-home__services .wh-public-service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.wh-customer-shell .wh-home__services .wh-public-service-card:nth-child(n+7) { display:none; }
.wh-customer-shell .wh-home-booking,
.wh-customer-shell .wh-home-rebook { padding:16px; border:1px solid var(--wh-public-border); border-radius:12px; background:#fff; box-shadow:0 8px 22px rgba(16,35,59,.06); }
.wh-customer-shell .wh-home__personal .wh-home__section-head { align-items:start; margin-bottom:12px; }
.wh-customer-shell .wh-home__personal .wh-home__section-head h2 { font-size:1.12rem; }
.wh-customer-shell .wh-home__personal .wh-home__section-head > a { min-height:32px; font-size:.72rem; }
.wh-customer-shell .wh-home-booking__body { display:grid; grid-template-columns:84px minmax(0,1fr); gap:12px; }
.wh-customer-shell .wh-home-booking__body > img { width:84px; height:96px; border-radius:9px; object-fit:cover; }
.wh-customer-shell .wh-home-booking h3 { margin:6px 0; font-size:.96rem; overflow-wrap:anywhere; }
.wh-customer-shell .wh-home-booking h3 a { color:inherit; }
.wh-customer-shell .wh-home-booking__body p { display:flex; align-items:center; gap:5px; margin:3px 0; color:var(--wh-public-muted); font-size:.73rem; }
.wh-customer-shell .wh-home-rebook__body { display:grid; grid-template-columns:52px minmax(0,1fr); align-items:center; gap:10px; }
.wh-customer-shell .wh-home-rebook__body > img { width:52px; height:52px; border-radius:9px; object-fit:cover; }
.wh-customer-shell .wh-home-rebook h3 { margin:0 0 2px; font-size:.88rem; overflow-wrap:anywhere; }
.wh-customer-shell .wh-home-rebook p { margin:0; color:var(--wh-public-muted); font-size:.72rem; overflow-wrap:anywhere; }
.wh-customer-shell .wh-home-rebook .wh-button { grid-column:1/-1; width:100%; }
.wh-customer-shell .wh-home__empty-action { margin-top:12px; }
[dir="rtl"] .wh-customer-shell .wh-home__section-head > a .ti-arrow-right,
[dir="rtl"] .wh-customer-shell .wh-home-search .ti-arrow-right { transform:rotate(180deg); }

@media (max-width:1199.98px) {
  .wh-customer-shell .wh-home-category-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .wh-customer-shell .wh-home-category-grid .wh-public-category-card { min-height:94px; flex-direction:row; justify-content:flex-start; padding:10px; text-align:start; }
  .wh-customer-shell .wh-home-category-grid .wh-public-category-card__content strong { min-height:0; }
  .wh-customer-shell .wh-home__services .wh-public-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wh-customer-shell .wh-home__services .wh-public-service-card:nth-child(n+5) { display:none; }
}

@media (max-width:767.98px) {
  .wh-customer-shell .wh-home__hero { padding:24px 0 18px; }
  .wh-customer-shell .wh-home__hero h1 { font-size:clamp(1.8rem,9vw,2.35rem); }
  .wh-customer-shell .wh-home__hero-copy > p:last-child { font-size:.9rem; }
  .wh-customer-shell .wh-home-search { grid-template-columns:1fr auto; margin-top:16px; }
  .wh-customer-shell .wh-home-search__location { grid-column:1/-1; }
  .wh-customer-shell .wh-home-search__query input { min-height:48px; }
  .wh-customer-shell .wh-home-search .wh-button { min-height:48px; padding-inline:16px; }
  .wh-customer-shell .wh-home-search .wh-button span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .wh-customer-shell .wh-home__categories { padding:20px 0 16px; }
  .wh-customer-shell .wh-home__section-head { align-items:center; margin-bottom:12px; }
  .wh-customer-shell .wh-home__section-head h2 { font-size:1.2rem; }
  .wh-customer-shell .wh-home__section-head p:not(.wh-public-eyebrow) { display:none; }
  .wh-customer-shell .wh-home-category-grid { display:flex; gap:10px; margin-inline:-12px; padding:0 12px 6px; overflow-x:auto; scroll-snap-type:inline mandatory; scrollbar-width:none; }
  .wh-customer-shell .wh-home-category-grid::-webkit-scrollbar { display:none; }
  .wh-customer-shell .wh-home-category-grid .wh-public-category-card { flex:0 0 92px; min-height:98px; flex-direction:column; justify-content:center; padding:8px 5px; text-align:center; scroll-snap-align:start; }
  .wh-customer-shell .wh-home-category-grid .wh-public-category-card__image { width:44px; height:44px; }
  .wh-customer-shell .wh-home-category-grid .wh-public-category-card__content strong { min-height:2.4em; font-size:.7rem; }
  .wh-customer-shell .wh-home__content,
  .wh-customer-shell .wh-home__content--single { grid-template-columns:1fr; gap:22px; padding-top:20px; padding-bottom:88px; }
  .wh-customer-shell .wh-home__personal { grid-column:1; grid-row:1; }
  .wh-customer-shell .wh-home__services { grid-column:1; grid-row:2; }
  .wh-customer-shell .wh-home__content--single .wh-home__services { grid-row:1; }
  .wh-customer-shell .wh-home__services .wh-public-service-grid { grid-template-columns:none; }
  .wh-customer-shell .wh-home__services .wh-public-service-card:nth-child(n) { display:flex; }
}

@media (max-width:389.98px) {
  .wh-customer-shell .wh-home__hero { padding-top:18px; }
  .wh-customer-shell .wh-home__hero-copy > p:last-child { display:none; }
  .wh-customer-shell .wh-home-search { margin-top:12px; }
  .wh-customer-shell .wh-home-search__note { font-size:.68rem; }
  .wh-customer-shell .wh-home-booking__body { grid-template-columns:70px minmax(0,1fr); }
  .wh-customer-shell .wh-home-booking__body > img { width:70px; height:86px; }
}
.wh-customer-shell .wh-public-page { background:#f7f9fb; min-height:60vh; }
.wh-customer-shell .wh-public-hero { padding:48px 0; background:linear-gradient(135deg,#10233b 0%,#153c54 70%,#126d69 100%); color:#fff; }
.wh-customer-shell .wh-public-hero .container { max-width:1120px; }
.wh-customer-shell .wh-public-hero h1 { max-width:760px; margin:4px 0 8px; color:#fff; font-size:clamp(2rem,5vw,3.4rem); line-height:1.08; overflow-wrap:anywhere; }
.wh-customer-shell .wh-public-hero > .container > p:not(.wh-public-eyebrow) { max-width:680px; color:#d9e7ed; font-size:1.05rem; }
.wh-customer-shell .wh-public-eyebrow { margin:0 0 4px; color:#08735e; font-size:.78rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.wh-customer-shell .wh-public-hero .wh-public-eyebrow { color:#7ee6d5; }
.wh-customer-shell .wh-public-search { display:grid; grid-template-columns:auto minmax(180px,1.4fr) minmax(170px,.8fr) auto; align-items:center; gap:8px; max-width:900px; margin-top:24px; padding:8px; border:1px solid rgba(255,255,255,.3); border-radius:12px; background:#fff; box-shadow:0 16px 36px rgba(0,0,0,.18); }
.wh-customer-shell .wh-public-search > i { padding-inline-start:8px; color:var(--wh-public-muted); font-size:1.15rem; }
.wh-customer-shell .wh-public-search :is(input,select) { min-height:44px; width:100%; border:0; border-radius:8px; background:#f5f7f9; color:var(--wh-public-navy); padding:8px 12px; }
.wh-customer-shell .wh-public-search :is(input,select,button):focus-visible,
.wh-customer-shell .wh-public-page :is(a,button,input,select,summary):focus-visible,
.wh-customer-shell .wh-public-section :is(a,button):focus-visible { outline:3px solid rgba(244,123,32,.55); outline-offset:3px; }
.wh-customer-shell .wh-public-section { padding:48px 0; background:#fff; }
.wh-customer-shell .wh-public-section--soft { background:#f3f7f7; }
.wh-customer-shell .wh-public-section__head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.wh-customer-shell .wh-public-section__head h2 { margin:0; color:var(--wh-public-navy); font-size:clamp(1.55rem,3vw,2.15rem); overflow-wrap:anywhere; }
.wh-customer-shell .wh-public-section__head p:not(.wh-public-eyebrow) { max-width:680px; margin:6px 0 0; color:var(--wh-public-muted); }
.wh-customer-shell .wh-public-section__head > a { min-height:44px; display:inline-flex; align-items:center; gap:6px; color:#08735e; font-weight:800; white-space:nowrap; }
.wh-customer-shell .wh-public-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.wh-customer-shell .wh-public-service-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid var(--wh-public-border); border-radius:12px; background:#fff; box-shadow:0 8px 24px rgba(16,35,59,.07); transition:transform .18s ease,box-shadow .18s ease; }
.wh-customer-shell .wh-public-service-card:hover { transform:translateY(-3px); box-shadow:0 14px 34px rgba(16,35,59,.12); }
.wh-customer-shell .wh-public-service-card__image { position:relative; display:block; aspect-ratio:16/9; overflow:hidden; background:#e8eef1; }
.wh-customer-shell .wh-public-service-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.wh-customer-shell .wh-public-service-card:hover .wh-public-service-card__image img { transform:scale(1.03); }
.wh-customer-shell .wh-public-service-card__image > span { position:absolute; inset-inline-start:12px; bottom:12px; max-width:calc(100% - 24px); padding:5px 9px; border-radius:999px; background:rgba(16,35,59,.88); color:#fff; font-size:.72rem; font-weight:750; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wh-customer-shell .wh-public-service-card__body { display:flex; flex:1; flex-direction:column; padding:14px; }
.wh-customer-shell .wh-public-service-card__provider { display:block; color:#08735e; font-size:.76rem; font-weight:750; line-height:1.35; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wh-customer-shell .wh-public-service-card h3 { min-height:2.5em; margin:3px 0 8px; color:var(--wh-public-navy); font-size:1.02rem; line-height:1.25; overflow-wrap:anywhere; }
.wh-customer-shell .wh-public-service-card h3 a { color:inherit; }
.wh-customer-shell .wh-public-service-card__facts { display:flex; flex-wrap:wrap; gap:6px 10px; min-height:22px; color:var(--wh-public-muted); font-size:.75rem; }
.wh-customer-shell .wh-public-service-card__facts span { display:inline-flex; align-items:center; gap:4px; min-width:0; overflow-wrap:anywhere; }
.wh-customer-shell .wh-public-service-card__fact--location { flex-basis:100%; overflow:hidden !important; text-overflow:ellipsis; white-space:nowrap; }
.wh-customer-shell .wh-public-service-card__facts .ti-star-filled { color:#f59e0b; }
.wh-customer-shell .wh-public-service-card__footer { display:flex; align-items:end; justify-content:space-between; gap:10px; margin-top:auto; padding-top:12px; border-top:1px solid #edf1f4; }
.wh-customer-shell .wh-public-service-card__footer p { margin:0; }
.wh-customer-shell .wh-public-service-card__footer small { display:block; color:var(--wh-public-muted); }
.wh-customer-shell .wh-public-service-card__footer strong { display:block; color:var(--wh-public-navy); font-size:1.08rem; }
.wh-customer-shell .wh-public-service-card__footer strong span { color:var(--wh-public-muted); font-size:.75rem; font-weight:600; }
.wh-customer-shell .wh-public-service-card__footer .wh-button { flex:0 0 auto; white-space:nowrap; }
.wh-customer-shell .wh-public-category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.wh-customer-shell .wh-public-category-card { display:grid; grid-template-columns:56px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:88px; padding:14px; border:1px solid var(--wh-public-border); border-radius:12px; background:#fff; color:var(--wh-public-navy); box-shadow:0 5px 16px rgba(16,35,59,.05); }
.wh-customer-shell .wh-public-category-card:hover { border-color:var(--wh-public-teal); color:#08735e; }
.wh-customer-shell .wh-public-category-card__image { display:grid; width:56px; height:56px; place-items:center; overflow:hidden; border-radius:10px; background:#ecfbf8; }
.wh-customer-shell .wh-public-category-card__image img { width:100%; height:100%; object-fit:contain; padding:7px; }
.wh-customer-shell .wh-public-category-card__content { min-width:0; }
.wh-customer-shell .wh-public-category-card__content strong,.wh-customer-shell .wh-public-category-card__content small { display:block; overflow:hidden; text-overflow:ellipsis; }
.wh-customer-shell .wh-public-category-card__content strong { overflow-wrap:anywhere; white-space:normal; }
.wh-customer-shell .wh-public-category-card__content small { margin-top:3px; color:var(--wh-public-muted); white-space:nowrap; }
.wh-customer-shell .wh-public-provider-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.wh-customer-shell .wh-public-provider-card { overflow:hidden; border:1px solid var(--wh-public-border); border-radius:12px; background:#fff; }
.wh-customer-shell .wh-public-provider-card__image { display:block; aspect-ratio:4/3; overflow:hidden; background:#e8eef1; }
.wh-customer-shell .wh-public-provider-card__image img { width:100%; height:100%; object-fit:cover; }
.wh-customer-shell .wh-public-provider-card__body { padding:16px; }
.wh-customer-shell .wh-public-provider-card__body > span { color:#08735e; font-size:.76rem; font-weight:750; }
.wh-customer-shell .wh-public-provider-card h3 { margin:4px 0 10px; font-size:1.08rem; overflow-wrap:anywhere; }
.wh-customer-shell .wh-public-provider-card__facts { display:grid; gap:6px; min-height:76px; margin-bottom:14px; color:var(--wh-public-muted); font-size:.78rem; }
.wh-customer-shell .wh-public-provider-card__facts span { display:flex; align-items:center; gap:5px; }
.wh-customer-shell .wh-public-provider-card__facts .ti-star-filled { color:#f59e0b; }
.wh-customer-shell .wh-public-results-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:32px; padding-top:32px; padding-bottom:48px; }
.wh-customer-shell .wh-public-filters details { position:sticky; top:96px; border:1px solid var(--wh-public-border); border-radius:12px; background:#fff; }
.wh-customer-shell .wh-public-filters summary { display:flex; align-items:center; justify-content:space-between; min-height:52px; padding:12px 16px; cursor:pointer; font-weight:800; list-style:none; }
.wh-customer-shell .wh-public-filters summary span { display:flex; align-items:center; gap:8px; }
.wh-customer-shell .wh-public-filters summary small { display:none; color:#08735e; }
.wh-customer-shell .wh-public-filters form { display:grid; gap:20px; padding:16px; border-top:1px solid var(--wh-public-border); }
.wh-customer-shell .wh-public-filters details:not([open]) form { display:none; }
.wh-customer-shell .wh-public-filters fieldset { min-width:0; margin:0; padding:0; border:0; }
.wh-customer-shell .wh-public-filters legend,.wh-customer-shell .wh-public-field label { margin-bottom:8px; color:var(--wh-public-navy); font-size:.86rem; font-weight:750; }
.wh-customer-shell .wh-public-field :is(input,select) { min-height:44px; width:100%; padding:8px 10px; border:1px solid var(--wh-public-border); border-radius:8px; background:#fff; }
.wh-customer-shell .wh-public-check { display:flex; align-items:center; gap:8px; min-height:40px; margin:0; color:#405064; }
.wh-customer-shell .wh-public-check input { flex:0 0 auto; }
.wh-customer-shell .wh-public-check .ti-star-filled { color:#f59e0b; }
.wh-customer-shell .wh-public-text-button { min-height:44px; padding:0; border:0; background:transparent; color:#08735e; font-weight:750; }
.wh-customer-shell .wh-public-filter-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.wh-customer-shell .wh-public-results__head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:20px; }
.wh-customer-shell .wh-public-results__head h2 { margin:0; font-size:1.55rem; }
.wh-customer-shell .wh-public-results__head form { display:flex; align-items:center; gap:8px; }
.wh-customer-shell .wh-public-results__head label { white-space:nowrap; }
.wh-customer-shell .wh-public-results__head select { min-height:44px; padding:8px 32px 8px 10px; border:1px solid var(--wh-public-border); border-radius:8px; }
.wh-customer-shell .wh-public-pagination { margin-top:32px; }
.wh-customer-shell .wh-provider-profile__hero { display:flex; align-items:center; justify-content:space-between; gap:32px; padding-top:48px; padding-bottom:32px; }
.wh-customer-shell .wh-provider-profile__identity { display:flex; align-items:center; gap:20px; min-width:0; }
.wh-customer-shell .wh-provider-profile__identity > img { flex:0 0 112px; width:112px; height:112px; border:4px solid #fff; border-radius:24px; object-fit:cover; box-shadow:0 8px 24px rgba(16,35,59,.12); }
.wh-customer-shell .wh-provider-profile__identity h1 { margin:2px 0 10px; font-size:clamp(1.8rem,4vw,2.8rem); overflow-wrap:anywhere; }
.wh-customer-shell .wh-provider-profile__facts { display:flex; flex-wrap:wrap; gap:8px 16px; color:var(--wh-public-muted); }
.wh-customer-shell .wh-provider-profile__facts span { display:flex; align-items:center; gap:5px; }
.wh-customer-shell .wh-provider-profile__facts .ti-star-filled { color:#f59e0b; }
.wh-customer-shell .wh-provider-profile__actions { display:flex; flex-wrap:wrap; gap:8px; }
.wh-customer-shell .wh-provider-profile__layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); gap:32px; padding-bottom:56px; }
.wh-customer-shell .wh-provider-profile__about { display:grid; align-content:start; gap:16px; }
.wh-customer-shell .wh-provider-profile__about section { padding:20px; border:1px solid var(--wh-public-border); border-radius:12px; background:#fff; }
.wh-customer-shell .wh-provider-profile__about h2 { margin:0 0 12px; font-size:1.15rem; }
.wh-customer-shell .wh-provider-profile__about p { margin:0; color:var(--wh-public-muted); white-space:pre-line; }
.wh-customer-shell .wh-provider-profile__about dl { margin:0; }
.wh-customer-shell .wh-provider-profile__about dl > div { display:flex; justify-content:space-between; gap:16px; padding:8px 0; border-bottom:1px solid #edf1f4; }
.wh-customer-shell .wh-provider-profile__about dl > div:last-child { border:0; }
.wh-customer-shell .wh-provider-profile__about dt { color:var(--wh-public-muted); font-weight:600; }
.wh-customer-shell .wh-provider-profile__about dd { margin:0; text-align:end; overflow-wrap:anywhere; }
.wh-customer-shell .wh-provider-profile__map iframe { width:100%; height:220px; border:0; border-radius:8px; }
.wh-customer-shell .wh-service-detail-page { --wh-detail-accent:#12b8a6; --wh-detail-soft:#ecfbf8; background:#f7f9fa; color:var(--wh-public-navy); }
.wh-customer-shell .wh-service-detail--travel { --wh-detail-accent:#0f8db3; --wh-detail-soft:#eaf8fc; }
.wh-customer-shell .wh-service-detail--wellness { --wh-detail-accent:#10b981; --wh-detail-soft:#ecfdf5; }
.wh-customer-shell .wh-service-detail--food { --wh-detail-accent:#f47b20; --wh-detail-soft:#fff7ed; }
.wh-customer-shell .wh-service-detail--fitness { --wh-detail-accent:#e85d3f; --wh-detail-soft:#fff1ed; }
.wh-customer-shell .wh-service-detail--home { --wh-detail-accent:#2563eb; --wh-detail-soft:#eff6ff; }
.wh-customer-shell .wh-service-detail--events { --wh-detail-accent:#8b5cf6; --wh-detail-soft:#f5f3ff; }
.wh-customer-shell .wh-service-detail--pets { --wh-detail-accent:#b7791f; --wh-detail-soft:#fffbeb; }
.wh-customer-shell .wh-service-detail--professional { --wh-detail-accent:#475569; --wh-detail-soft:#f1f5f9; }
.wh-customer-shell .wh-service-detail__container { padding-block:24px 64px; }
.wh-customer-shell .wh-service-detail__breadcrumbs { margin-bottom:24px; color:var(--wh-public-muted); font-size:.84rem; }
.wh-customer-shell .wh-service-detail__breadcrumbs ol { display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; list-style:none; }
.wh-customer-shell .wh-service-detail__breadcrumbs li:not(:last-child)::after { content:"/"; margin-inline-start:6px; color:#94a3b8; }
.wh-customer-shell .wh-service-detail__breadcrumbs a { color:#08735e; font-weight:700; }
.wh-customer-shell .wh-service-detail__header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:20px; }
.wh-customer-shell .wh-service-detail__identity { min-width:0; }
.wh-customer-shell .wh-service-detail__header h1 { max-width:850px; margin:5px 0 10px; color:var(--wh-public-navy); font-size:clamp(1.9rem,4vw,3.25rem); line-height:1.08; overflow-wrap:anywhere; }
.wh-customer-shell .wh-service-detail__provider-link { color:#08735e; font-size:.9rem; font-weight:800; }
.wh-customer-shell .wh-service-detail__trust { display:flex; flex-wrap:wrap; gap:8px 18px; color:var(--wh-public-muted); }
.wh-customer-shell .wh-service-detail__trust span { display:inline-flex; align-items:center; gap:6px; }
.wh-customer-shell .wh-service-detail__trust .ti-star-filled,.wh-customer-shell .wh-service-detail__rating { color:#b45309; }
.wh-customer-shell .wh-service-detail__identity-row { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; }
.wh-customer-shell .wh-service-detail__mobile-price { display:none; }
.wh-customer-shell .wh-service-detail__share { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-width:96px; min-height:44px; padding:9px 14px; border:1px solid var(--wh-public-border); border-radius:10px; background:#fff; color:var(--wh-public-navy); font-weight:750; }
.wh-customer-shell .wh-service-detail__media { position:relative; margin-bottom:32px; padding:0; overflow:hidden; border:1px solid var(--wh-public-border); border-radius:12px; background:#e7eef1; box-shadow:0 10px 30px rgba(16,35,59,.08); }
.wh-customer-shell .wh-service-detail__media #large-img a { display:block; }
.wh-customer-shell .wh-service-detail__media #large-img img { width:100%; height:clamp(300px,52vw,620px); object-fit:cover; }
.wh-customer-shell .wh-service-detail__media #small-img { position:absolute; inset-inline-end:16px; bottom:16px; z-index:2; width:min(46%,520px); padding:7px; border-radius:10px; background:rgba(255,255,255,.92); backdrop-filter:blur(8px); }
.wh-customer-shell .wh-service-detail__media #small-img button { width:100%; min-height:64px; padding:0; overflow:hidden; border:2px solid transparent; border-radius:8px; background:#fff; }
.wh-customer-shell .wh-service-detail__media #small-img img { width:100%; height:64px; object-fit:cover; }
.wh-customer-shell .wh-service-detail__image-count { position:absolute; inset-inline-start:16px; bottom:16px; z-index:3; display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:6px 10px; border-radius:999px; background:rgba(16,35,59,.86); color:#fff; font-size:.8rem; font-weight:800; }
.wh-customer-shell .wh-service-detail__layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,380px); align-items:start; gap:32px; }
.wh-customer-shell .wh-service-detail__content { display:grid; gap:20px; min-width:0; }
.wh-customer-shell .wh-service-detail__quick-facts { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; padding:0; }
.wh-customer-shell .wh-service-detail__quick-facts > div { display:flex; align-items:center; gap:8px; min-height:54px; max-width:240px; padding:8px 11px; border:1px solid var(--wh-public-border); border-radius:10px; background:#fff; }
.wh-customer-shell .wh-service-detail__quick-facts > div > i { flex:0 0 32px; display:grid; place-items:center; width:32px; height:32px; border-radius:9px; background:var(--wh-detail-soft); color:var(--wh-detail-accent); font-size:1.05rem; }
.wh-customer-shell .wh-service-detail__quick-facts span { display:grid; min-width:0; }
.wh-customer-shell .wh-service-detail__quick-facts small { color:var(--wh-public-muted); font-size:.72rem; font-weight:700; }
.wh-customer-shell .wh-service-detail__quick-facts strong { font-size:.9rem; overflow-wrap:anywhere; }
.wh-customer-shell .wh-service-detail__section { padding:24px; border:1px solid var(--wh-public-border); border-radius:12px; background:#fff; box-shadow:0 6px 20px rgba(16,35,59,.045); }
.wh-customer-shell .wh-service-detail__section h2 { margin:0 0 14px; color:var(--wh-public-navy); font-size:1.3rem; }
.wh-customer-shell .wh-service-detail__section h3 { margin:0; color:var(--wh-public-navy); font-size:1rem; overflow-wrap:anywhere; }
.wh-customer-shell .wh-service-detail__prose { max-width:72ch; margin:0; color:#405064; line-height:1.75; white-space:pre-line; overflow-wrap:anywhere; }
.wh-customer-shell .wh-service-detail__check-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 18px; margin:0; padding:0; list-style:none; }
.wh-customer-shell .wh-service-detail__check-list li { display:flex; align-items:flex-start; gap:8px; color:#405064; }
.wh-customer-shell .wh-service-detail__check-list i { margin-top:3px; color:#08735e; }
.wh-customer-shell .wh-service-detail__section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:14px; }
.wh-customer-shell .wh-service-detail__section-heading h2 { margin-bottom:0; }
.wh-customer-shell .wh-service-detail__section-heading > p { max-width:310px; margin:0; color:var(--wh-public-muted); font-size:.82rem; text-align:end; }
.wh-customer-shell .wh-service-detail__section-heading > a { display:inline-flex; align-items:center; gap:5px; min-height:44px; color:#08735e; font-weight:750; }
.wh-customer-shell .wh-service-detail__options { display:grid; gap:10px; }
.wh-customer-shell .wh-service-detail__options article { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; padding:12px; border:1px solid #e8edef; border-radius:10px; }
.wh-customer-shell .wh-service-detail__options img { width:52px; height:52px; border-radius:8px; object-fit:cover; }
.wh-customer-shell .wh-service-detail__options p { margin:3px 0 0; color:var(--wh-public-muted); font-size:.8rem; }
.wh-customer-shell .wh-service-detail__options > article > strong { color:#08735e; white-space:nowrap; }
.wh-customer-shell .wh-service-detail__notice { display:flex; align-items:flex-start; gap:12px; padding:14px; border-radius:10px; background:#fff7ed; color:#7c2d12; }
.wh-customer-shell .wh-service-detail__notice > i { margin-top:2px; font-size:1.25rem; }
.wh-customer-shell .wh-service-detail__notice p { margin:3px 0 0; color:#7c2d12; }
.wh-customer-shell .wh-service-detail__provider-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:16px; }
.wh-customer-shell .wh-service-detail__provider-card > img { width:72px; height:72px; border-radius:16px; object-fit:cover; }
.wh-customer-shell .wh-service-detail__provider-card p { margin:5px 0 0; color:var(--wh-public-muted); }
.wh-customer-shell .wh-service-detail__provider-name { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.wh-customer-shell .wh-service-detail__provider-name span { display:inline-flex; align-items:center; gap:4px; padding:4px 8px; border-radius:999px; background:#ecfbf8; color:#08735e; font-size:.72rem; font-weight:800; }
.wh-customer-shell .wh-service-detail__rating { display:inline-flex; align-items:center; gap:5px; font-size:1.15rem; }
.wh-customer-shell .wh-service-detail__section .review-item { border:1px solid var(--wh-public-border); border-radius:10px; box-shadow:none; }
.wh-customer-shell .wh-service-detail__location-label { display:flex; align-items:flex-start; gap:8px; color:#405064; }
.wh-customer-shell .wh-service-detail__map { width:100%; height:300px; margin-top:8px; border:0; border-radius:10px; }
.wh-customer-shell .wh-service-detail__booking { position:sticky; top:96px; }
.wh-customer-shell .wh-service-detail__booking-card { padding:24px; border:1px solid var(--wh-public-border); border-radius:12px; background:#fff; box-shadow:0 14px 36px rgba(16,35,59,.1); }
.wh-customer-shell .wh-service-detail__price { display:flex; align-items:baseline; flex-wrap:wrap; gap:7px; padding-bottom:18px; border-bottom:1px solid var(--wh-public-border); }
.wh-customer-shell .wh-service-detail__price strong { color:var(--wh-public-navy); font-size:clamp(2rem,3vw,2.65rem); line-height:1; }
.wh-customer-shell .wh-service-detail__price span { color:var(--wh-public-muted); font-weight:650; }
.wh-customer-shell .wh-service-detail__duration,.wh-customer-shell .wh-service-detail__availability { display:flex; align-items:flex-start; gap:10px; color:var(--wh-public-muted); }
.wh-customer-shell .wh-service-detail__duration { margin:16px 0; }
.wh-customer-shell .wh-service-detail__duration > i { margin-top:3px; color:#08735e; font-size:1.1rem; }
.wh-customer-shell .wh-service-detail__duration span,.wh-customer-shell .wh-service-detail__availability span { display:grid; }
.wh-customer-shell .wh-service-detail__duration small { font-size:.72rem; }
.wh-customer-shell .wh-service-detail__duration strong { color:var(--wh-public-navy); }
.wh-customer-shell .wh-service-detail__rule { margin:14px 0; color:#405064; font-size:.85rem; line-height:1.55; }
.wh-customer-shell .wh-service-detail__availability { margin:16px 0; padding:14px; border-radius:10px; background:var(--wh-detail-soft); color:var(--wh-detail-accent); }
.wh-customer-shell .wh-service-detail__availability > i { margin-top:2px; font-size:1.25rem; }
.wh-customer-shell .wh-service-detail__availability strong { display:block; }
.wh-customer-shell .wh-service-detail__booking-action .wh-button { justify-content:center; width:100%; min-height:48px; }
.wh-customer-shell .wh-service-detail__booking-note { display:flex; align-items:flex-start; gap:7px; margin:12px 0 0; color:var(--wh-public-muted); font-size:.75rem; line-height:1.45; }
.wh-customer-shell .wh-service-detail__share-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:8px; }
.wh-customer-shell .wh-service-detail__share-options a { display:flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:9px; border:1px solid var(--wh-public-border); border-radius:9px; color:var(--wh-public-navy); font-weight:700; }
.wh-customer-shell .wh-service-detail-page :is(a,button):focus-visible { outline:3px solid rgba(18,184,166,.42); outline-offset:3px; }
.wh-customer-shell .wh-public-home-hero .hero-content { padding-top:56px; padding-bottom:56px; }
.wh-customer-shell .wh-public-home-search { border-radius:12px !important; box-shadow:0 16px 36px rgba(16,35,59,.16); }
.wh-customer-shell .wh-public-home-search :is(input,select,button) { min-height:44px; }
[dir="rtl"] .wh-customer-shell .wh-public-section__head > a .ti-arrow-right { transform:rotate(180deg); }

@media (max-width:1199.98px) {
  .wh-customer-shell .wh-public-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wh-customer-shell .wh-public-category-grid,.wh-customer-shell .wh-public-provider-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:991.98px) {
  .wh-customer-shell .wh-public-results-layout { grid-template-columns:1fr; gap:24px; }
  .wh-customer-shell .wh-public-filters details { position:static; }
  .wh-customer-shell .wh-public-filters details:not([open]) summary { border-radius:12px; }
  .wh-customer-shell .wh-public-filters summary small { display:block; }
  .wh-customer-shell .wh-provider-profile__hero { align-items:flex-start; flex-direction:column; }
  .wh-customer-shell .wh-provider-profile__layout { grid-template-columns:1fr; }
  .wh-customer-shell .wh-provider-profile__about { grid-row:auto; }
  .wh-customer-shell .wh-service-detail__layout { grid-template-columns:1fr; }
  .wh-customer-shell .wh-service-detail__booking { position:static; order:-1; }
  .wh-customer-shell .wh-service-detail__booking-card { box-shadow:0 8px 24px rgba(16,35,59,.08); }
  .wh-customer-shell .wh-service-detail__booking-action.is-mobile-sticky { position:fixed; inset-inline:8px; bottom:76px; z-index:10000; padding:8px; border:1px solid var(--wh-public-border); border-radius:12px; background:rgba(255,255,255,.96); box-shadow:0 -8px 24px rgba(16,35,59,.14); backdrop-filter:blur(10px); }
  .wh-customer-shell .wh-service-detail__booking-action.is-mobile-sticky.is-footer-visible { display:none; }
  .wh-customer-shell:has(.cookie-consent.visible) .wh-service-detail__booking-action.is-mobile-sticky { display:none; }
}

/* Customer post-booking surfaces */
.wh-customer-shell .wh-bookings-hero { padding:24px 0; background:linear-gradient(135deg,#f4fbf8 0%,#fff8f1 100%); }
.wh-customer-shell .wh-btn { display:inline-flex; min-height:44px; padding:10px 16px; align-items:center; justify-content:center; gap:7px; border:1px solid transparent; border-radius:10px; font-weight:800; line-height:1.2; text-align:center; transition:background-color .16s ease,border-color .16s ease,color .16s ease; }
.wh-customer-shell .wh-btn--primary { background:#0b8d68; color:#fff; }
.wh-customer-shell .wh-btn--primary:hover { background:#08765c; color:#fff; }
.wh-customer-shell .wh-btn--secondary { border-color:#b9c8d1; background:#fff; color:#10233b; }
.wh-customer-shell .wh-btn--secondary:hover { border-color:#0b8d68; color:#08765c; }
.wh-customer-shell .wh-btn--tertiary { background:transparent; color:#08765c; }
.wh-customer-shell .wh-btn--tertiary:hover { background:#eaf8f4; color:#075f4b; }
.wh-customer-shell .wh-btn:focus-visible { outline:3px solid rgba(16,185,129,.32); outline-offset:2px; }
.wh-customer-shell .wh-bookings-toolbar { display:flex; gap:24px; margin-bottom:18px; align-items:end; justify-content:space-between; }
.wh-customer-shell .wh-bookings-toolbar h1,
.wh-customer-shell .wh-booking-detail-hero h1,
.wh-customer-shell .wh-confirmation-card h1 { margin:0; color:#10233b; font-size:clamp(1.55rem,3vw,2.25rem); line-height:1.12; }
.wh-customer-shell .wh-bookings-toolbar p { margin:5px 0 0; color:#637084; }
.wh-customer-shell .wh-eyebrow { margin:0 0 5px !important; color:#0b7e62 !important; font-size:.75rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.wh-customer-shell .wh-bookings-search { position:relative; display:flex; width:min(100%,410px); min-height:46px; border:1px solid #d7e0e7; border-radius:10px; background:#fff; overflow:hidden; }
.wh-customer-shell .wh-bookings-search > i { position:absolute; inset-inline-start:14px; top:14px; color:#637084; }
.wh-customer-shell .wh-bookings-search input { min-width:0; flex:1; border:0; padding:10px 10px 10px 42px; color:#10233b; outline:0; }
.wh-customer-shell [dir="rtl"] .wh-bookings-search input { padding:10px 42px 10px 10px; }
.wh-customer-shell .wh-bookings-search:focus-within { border-color:#0b7e62; box-shadow:0 0 0 3px rgba(16,185,129,.18); }
.wh-customer-shell .wh-bookings-search button { min-width:78px; border:0; background:#10233b; color:#fff; font-weight:750; }
.wh-customer-shell .wh-bookings-tabs { display:flex; gap:6px; margin-bottom:18px; padding:4px; border:1px solid #dfe6eb; border-radius:12px; background:#f7f9fa; overflow-x:auto; scrollbar-width:none; }
.wh-customer-shell .wh-bookings-tabs::-webkit-scrollbar { display:none; }
.wh-customer-shell .wh-bookings-tabs a { display:inline-flex; min-height:44px; padding:9px 14px; align-items:center; gap:7px; border-radius:9px; color:#526174; font-weight:750; white-space:nowrap; }
.wh-customer-shell .wh-bookings-tabs a span { display:grid; min-width:22px; height:22px; padding:0 5px; place-items:center; border-radius:999px; background:#e8edf1; font-size:.72rem; }
.wh-customer-shell .wh-bookings-tabs a.is-active { background:#fff; color:#08765c; box-shadow:0 2px 8px rgba(16,35,59,.1); }
.wh-customer-shell .wh-customer-booking-card { border:1px solid #dfe6eb !important; border-radius:12px; box-shadow:0 8px 24px rgba(16,35,59,.05) !important; }
.wh-customer-shell .wh-customer-booking-card .card-body { gap:18px; }
.wh-customer-shell .wh-customer-booking-card .booking-img img { width:116px; height:108px; border-radius:10px; object-fit:cover; }
.wh-customer-shell .wh-customer-booking-card .booking-det-info h6 { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.wh-customer-shell .wh-customer-booking-card .booking-det-info h6 > a { color:#10233b; font-size:1.06rem; }
.wh-customer-shell .wh-customer-booking-card .booking-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 20px; }
.wh-customer-shell .wh-customer-booking-card .booking-details > li { min-width:0; margin:0 !important; color:#536277; }
.wh-customer-shell .wh-customer-booking-card .book-item { color:#10233b; }
.wh-customer-shell .wh-booking-card-primary { margin-inline-start:auto; }
.wh-customer-shell .wh-booking-card-primary .wh-btn { white-space:nowrap; }
.wh-customer-shell .wh-bookings-empty { display:grid; min-height:300px; place-items:center; border:1px dashed #cbd7df; border-radius:12px; background:#fbfcfc; text-align:center; }
.wh-customer-shell .wh-bookings-empty i { color:#10b981; font-size:2rem; }
.wh-customer-shell .wh-bookings-empty h2 { margin:10px 0 4px; color:#10233b; font-size:1.3rem; }

.wh-customer-shell .wh-customer-booking-detail,
.wh-customer-shell .wh-booking-confirmation { padding:32px 0 96px; background:#f6f8f9; }
.wh-customer-shell .wh-detail-back { display:inline-flex; min-height:44px; margin-bottom:12px; align-items:center; gap:7px; color:#08765c; font-weight:750; }
.wh-customer-shell .wh-booking-detail-hero { display:flex; gap:20px; margin-bottom:18px; padding:20px; align-items:center; justify-content:space-between; border:1px solid #dfe6eb; border-radius:12px; background:#fff; }
.wh-customer-shell .wh-booking-detail-identity { display:flex; min-width:0; gap:14px; align-items:center; }
.wh-customer-shell .wh-booking-detail-image { width:88px; height:76px; flex:0 0 auto; border-radius:10px; object-fit:cover; }
.wh-customer-shell .wh-booking-detail-identity p:last-child { margin:6px 0 0; color:#637084; }
.wh-customer-shell .wh-booking-detail-state { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end; color:#526174; }
.wh-customer-shell .wh-icon-button { display:inline-grid; width:44px; height:44px; padding:0; place-items:center; border:1px solid #d8e1e7; border-radius:10px; background:#fff; color:#10233b; }
.wh-customer-shell .wh-icon-button:focus-visible { outline:3px solid rgba(16,185,129,.3); outline-offset:2px; }
.wh-customer-shell .wh-booking-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,360px); gap:18px; align-items:start; }
.wh-customer-shell .wh-booking-detail-main { display:grid; gap:14px; }
.wh-customer-shell .wh-booking-detail-aside { position:sticky; top:92px; display:grid; gap:14px; }
.wh-customer-shell .wh-detail-card { padding:20px; border:1px solid #dfe6eb; border-radius:12px; background:#fff; box-shadow:0 8px 24px rgba(16,35,59,.04); }
.wh-customer-shell .wh-detail-card h2 { margin:0; color:#10233b; font-size:1.05rem; }
.wh-customer-shell .wh-detail-card h3 { margin:12px 0 4px; color:#10233b; font-size:1rem; }
.wh-customer-shell .wh-detail-card > p:last-child { margin-bottom:0; color:#637084; }
.wh-customer-shell .wh-detail-section-heading { display:flex; gap:10px; margin-bottom:14px; align-items:center; }
.wh-customer-shell .wh-detail-section-heading > i { display:grid; width:38px; height:38px; place-items:center; border-radius:9px; background:#eaf8f4; color:#08765c; font-size:1.15rem; }
.wh-customer-shell .wh-detail-section-heading p { margin:0; color:#637084; font-size:.75rem; }
.wh-customer-shell .wh-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 18px; margin:0; }
.wh-customer-shell .wh-detail-grid > div { padding:12px; border-radius:9px; background:#f7f9fa; }
.wh-customer-shell .wh-detail-grid-wide { grid-column:1/-1; }
.wh-customer-shell .wh-detail-grid dt,
.wh-customer-shell .wh-payment-summary dt { color:#6a7788; font-size:.75rem; font-weight:650; }
.wh-customer-shell .wh-detail-grid dd,
.wh-customer-shell .wh-payment-summary dd { margin:3px 0 0; color:#10233b; font-weight:750; }
.wh-customer-shell .wh-detail-line-items { margin:0; padding:0; list-style:none; }
.wh-customer-shell .wh-detail-line-items li { display:flex; padding:10px 0; justify-content:space-between; border-bottom:1px solid #edf1f3; }
.wh-customer-shell .wh-booking-note { margin-top:14px; padding:12px; border-radius:9px; background:#fff8f1; }
.wh-customer-shell .wh-booking-note p { margin:4px 0 0; }
.wh-customer-shell .wh-payment-summary-heading { display:flex; gap:10px; margin-bottom:14px; align-items:center; justify-content:space-between; }
.wh-customer-shell .wh-payment-summary dl { margin:0; }
.wh-customer-shell .wh-payment-summary dl > div { display:flex; padding:8px 0; align-items:end; justify-content:space-between; }
.wh-customer-shell .wh-payment-summary .is-total { margin-top:6px; padding-top:14px; border-top:1px solid #dfe6eb; }
.wh-customer-shell .wh-payment-summary .is-total dd { font-size:1.1rem; }
.wh-customer-shell .wh-payment-history-gap { margin-top:12px; padding:10px; border-radius:8px; background:#fff8e8; font-size:.76rem; line-height:1.45; }
.wh-customer-shell .wh-booking-actions { display:grid; gap:9px; }
.wh-customer-shell .wh-booking-actions h2 { margin-bottom:4px; }
.wh-customer-shell .wh-booking-actions .wh-btn { width:100%; justify-content:center; }
.wh-customer-shell .wh-booking-actions p { margin:0; font-size:.76rem; line-height:1.4; }

.wh-customer-shell .wh-booking-confirmation { min-height:calc(100vh - 140px); }
.wh-customer-shell .wh-confirmation-card { width:min(100%,680px); margin:0 auto; padding:28px; border:1px solid #dfe6eb; border-radius:16px; background:#fff; box-shadow:0 18px 50px rgba(16,35,59,.09); text-align:center; }
.wh-customer-shell .wh-confirmation-icon { display:grid; width:64px; height:64px; margin:0 auto 14px; place-items:center; border-radius:999px; background:#e9f9f3; color:#0b8d68; font-size:2rem; }
.wh-customer-shell .wh-booking-confirmation--warning .wh-confirmation-icon { background:#fff4df; color:#c56b08; }
.wh-customer-shell .wh-booking-confirmation--danger .wh-confirmation-icon { background:#ffeded; color:#c93636; }
.wh-customer-shell .wh-confirmation-message { max-width:530px; margin:10px auto 20px; color:#5d6a7b; line-height:1.55; }
.wh-customer-shell .wh-confirmation-reference { display:flex; min-height:48px; padding:8px 8px 8px 14px; align-items:center; gap:8px; border:1px solid #dfe6eb; border-radius:10px; background:#f8fafb; text-align:start; }
.wh-customer-shell .wh-confirmation-reference span { color:#637084; font-size:.78rem; }
.wh-customer-shell .wh-confirmation-reference strong { margin-inline-start:auto; color:#10233b; overflow-wrap:anywhere; }
.wh-customer-shell .wh-confirmation-booking { display:flex; gap:12px; margin:16px 0; padding:12px; align-items:center; border-radius:10px; background:#f4fbf8; text-align:start; }
.wh-customer-shell .wh-confirmation-booking img { width:64px; height:58px; border-radius:9px; object-fit:cover; }
.wh-customer-shell .wh-confirmation-booking h2 { margin:0; color:#10233b; font-size:1rem; }
.wh-customer-shell .wh-confirmation-booking p { margin:3px 0 0; color:#637084; }
.wh-customer-shell .wh-confirmation-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:0 0 18px; text-align:start; }
.wh-customer-shell .wh-confirmation-facts > div { padding:10px; border-radius:9px; background:#f7f9fa; }
.wh-customer-shell .wh-confirmation-facts dt { color:#6a7788; font-size:.72rem; }
.wh-customer-shell .wh-confirmation-facts dd { margin:3px 0 0; color:#10233b; font-weight:800; }
.wh-customer-shell .wh-confirmation-actions { display:flex; gap:9px; justify-content:center; flex-wrap:wrap; }

@media (max-width:991.98px) {
  .wh-customer-shell .wh-bookings-toolbar { align-items:stretch; flex-direction:column; }
  .wh-customer-shell .wh-bookings-search { width:100%; }
  .wh-customer-shell .wh-booking-detail-layout { grid-template-columns:1fr; }
  .wh-customer-shell .wh-booking-detail-aside { position:static; }
}

@media (max-width:767.98px) {
  .wh-customer-shell .wh-bookings-hero { display:none; }
  .wh-customer-shell .wh-bookings-page > .content { padding-top:16px; }
  .wh-customer-shell .wh-bookings-page .theiaStickySidebar { display:none; }
  .wh-customer-shell .wh-bookings-toolbar { gap:12px; margin-bottom:12px; }
  .wh-customer-shell .wh-bookings-toolbar p:not(.wh-eyebrow) { margin-top:3px; font-size:.86rem; line-height:1.4; }
  .wh-customer-shell .wh-customer-booking-card .card-body { align-items:stretch !important; }
  .wh-customer-shell .wh-customer-booking-card .booking-widget { align-items:flex-start !important; }
  .wh-customer-shell .wh-customer-booking-card .booking-img { margin:0 12px 0 0 !important; }
  .wh-customer-shell .wh-customer-booking-card .booking-img img { width:82px; height:82px; }
  .wh-customer-shell .wh-customer-booking-card .booking-details { grid-template-columns:1fr; }
  .wh-customer-shell .wh-booking-card-primary { margin:0; }
  .wh-customer-shell .wh-booking-card-primary .wh-btn { width:100%; justify-content:center; }
  .wh-customer-shell .wh-customer-booking-detail,
  .wh-customer-shell .wh-booking-confirmation { padding:16px 0 92px; }
  .wh-customer-shell .wh-booking-detail-hero { align-items:flex-start; flex-direction:column; padding:14px; }
  .wh-customer-shell .wh-booking-detail-state { justify-content:flex-start; }
  .wh-customer-shell .wh-booking-detail-image { width:72px; height:68px; }
  .wh-customer-shell .wh-detail-card { padding:15px; }
  .wh-customer-shell .wh-detail-grid { grid-template-columns:1fr; gap:8px; }
  .wh-customer-shell .wh-detail-grid-wide { grid-column:auto; }
  .wh-customer-shell .wh-confirmation-card { padding:20px 14px; border-radius:12px; }
  .wh-customer-shell .wh-confirmation-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wh-customer-shell .wh-confirmation-actions { display:grid; }
  .wh-customer-shell .wh-confirmation-actions .wh-btn { width:100%; justify-content:center; }
}
@media (max-width:767.98px) {
  .wh-customer-shell .wh-public-hero { padding:32px 0; }
  .wh-customer-shell .wh-public-search { grid-template-columns:28px minmax(0,1fr); }
  .wh-customer-shell .wh-public-search select,.wh-customer-shell .wh-public-search button { grid-column:1/-1; }
  .wh-customer-shell .wh-public-search select { padding-inline:12px; }
  .wh-customer-shell .wh-public-section { padding:32px 0; }
  .wh-customer-shell .wh-public-section__head,.wh-customer-shell .wh-public-results__head { align-items:flex-start; flex-direction:column; }
  .wh-customer-shell .wh-public-section__head > a { width:100%; }
  .wh-customer-shell .wh-public-section--service-rail { padding:24px 0; }
  .wh-customer-shell .wh-public-section--service-rail .wh-public-section__head { align-items:center; flex-direction:row; gap:12px; margin-bottom:14px; }
  .wh-customer-shell .wh-public-section--service-rail .wh-public-section__head h2 { font-size:1.3rem; line-height:1.15; }
  .wh-customer-shell .wh-public-section--service-rail .wh-public-section__head .wh-public-eyebrow,
  .wh-customer-shell .wh-public-section--service-rail .wh-public-section__head p:not(.wh-public-eyebrow) { display:none; }
  .wh-customer-shell .wh-public-section--service-rail .wh-public-section__head > a { justify-content:flex-end; width:auto; margin-inline-start:auto; font-size:.76rem; }
  .wh-customer-shell .wh-public-service-grid--rail { display:flex; gap:12px; margin-inline:-12px; padding:0 12px 8px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-padding-inline:12px; scroll-snap-type:inline mandatory; scrollbar-width:none; }
  .wh-customer-shell .wh-public-service-grid--rail::-webkit-scrollbar { display:none; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card { flex:0 0 min(64vw,244px); scroll-snap-align:start; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card__image { aspect-ratio:16/10; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card__body { padding:11px; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card h3 { min-height:2.35em; margin-bottom:6px; font-size:.9rem; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card__facts { min-height:20px; gap:5px 8px; font-size:.69rem; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card__fact--location { display:none; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card__footer { gap:7px; padding-top:9px; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card__footer small { display:none; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card__footer strong { font-size:.94rem; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card__footer .wh-button { min-height:44px; padding:8px 10px; font-size:.72rem; }
  .wh-customer-shell .wh-public-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .wh-customer-shell .wh-public-provider-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .wh-customer-shell .wh-public-results__head form { width:100%; }
  .wh-customer-shell .wh-public-results__head select { flex:1; min-width:0; }
  .wh-customer-shell .wh-provider-profile__actions,.wh-customer-shell .wh-provider-profile__actions .wh-button { width:100%; }
  .wh-customer-shell .wh-provider-profile__actions .wh-button { justify-content:center; }
  .wh-customer-shell .wh-service-detail__container { display:flex; flex-direction:column; padding-block:0 32px; }
  .wh-customer-shell .wh-service-detail__breadcrumbs { display:none; }
  .wh-customer-shell .wh-service-detail__media { order:1; }
  .wh-customer-shell .wh-service-detail__header { position:relative; order:2; align-items:flex-start; gap:10px; margin:0 -12px; padding:12px 12px 10px; border-bottom:1px solid var(--wh-public-border); background:#fff; }
  .wh-customer-shell .wh-service-detail__layout { order:3; gap:10px; }
  .wh-customer-shell .wh-service-detail__identity { width:100%; text-align:start; }
  .wh-customer-shell .wh-service-detail__provider-link { display:inline-flex; align-items:center; min-height:24px; color:#08735e; font-size:.74rem; }
  .wh-customer-shell .wh-service-detail__header h1 { max-width:calc(100% - 52px); margin:1px 0 6px; font-size:1.45rem; line-height:1.12; }
  .wh-customer-shell .wh-service-detail__identity-row { align-items:flex-start; gap:10px; }
  .wh-customer-shell .wh-service-detail__trust { gap:5px 10px; font-size:.78rem; }
  .wh-customer-shell .wh-service-detail__mobile-price { display:grid; flex:0 0 auto; justify-items:end; line-height:1.05; }
  .wh-customer-shell .wh-service-detail__mobile-price strong { color:var(--wh-public-navy); font-size:1.35rem; }
  .wh-customer-shell .wh-service-detail__mobile-price span { max-width:90px; margin-top:3px; color:var(--wh-public-muted); font-size:.66rem; text-align:end; }
  .wh-customer-shell .wh-service-detail__share { position:absolute; inset-inline-end:12px; top:12px; flex:0 0 44px; width:44px; min-width:44px; padding:0; }
  .wh-customer-shell .wh-service-detail__share span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
  .wh-customer-shell .wh-service-detail__media { margin:0 -12px; border-top:0; border-inline:0; border-radius:0; box-shadow:0 4px 16px rgba(16,35,59,.08); }
  .wh-customer-shell .wh-service-detail__media #large-img img { height:clamp(200px,56vw,250px); }
  .wh-customer-shell .wh-service-detail__media #small-img { display:none; }
  .wh-customer-shell .wh-service-detail__image-count { inset-inline-start:auto; inset-inline-end:10px; bottom:10px; min-height:30px; padding:4px 8px; font-size:.72rem; }
  .wh-customer-shell .wh-service-detail__quick-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:11px; }
  .wh-customer-shell .wh-service-detail__quick-facts > div { display:flex; align-items:center; gap:8px; min-width:0; min-height:54px; max-width:none; padding:7px 9px; border:1px solid #dfeaec; border-radius:10px; background:var(--wh-detail-soft); text-align:start; }
  .wh-customer-shell .wh-service-detail__quick-facts > div > i { width:34px; height:34px; flex-basis:34px; background:#fff; }
  .wh-customer-shell .wh-service-detail__quick-facts span { width:auto; min-width:0; }
  .wh-customer-shell .wh-service-detail__quick-facts small { font-size:.61rem; line-height:1.1; }
  .wh-customer-shell .wh-service-detail__quick-facts strong { display:block; overflow-wrap:anywhere; font-size:.7rem; line-height:1.2; }
  .wh-customer-shell .wh-service-detail__booking-card { padding:12px; border-radius:10px; }
  .wh-customer-shell .wh-service-detail__booking-card > .wh-public-eyebrow,
  .wh-customer-shell .wh-service-detail__booking-card > .wh-service-detail__price,
  .wh-customer-shell .wh-service-detail__booking-card > .wh-service-detail__duration,
  .wh-customer-shell .wh-service-detail__booking-card > .wh-service-detail__rule { display:none; }
  .wh-customer-shell .wh-service-detail__availability { margin:0 0 10px; padding:9px 10px; font-size:.78rem; }
  .wh-customer-shell .wh-service-detail__availability > i { font-size:1.05rem; }
  .wh-customer-shell .wh-service-detail__booking-action .wh-button { min-height:44px; }
  .wh-customer-shell .wh-service-detail__booking-note { margin-top:7px; font-size:.68rem; }
  .wh-customer-shell .wh-service-detail__content { gap:10px; }
  .wh-customer-shell .wh-service-detail__section { padding:14px; border-radius:10px; box-shadow:0 3px 12px rgba(16,35,59,.035); }
  .wh-customer-shell .wh-service-detail__section h2 { margin-bottom:8px; font-size:1.05rem; }
  .wh-customer-shell .wh-service-detail__prose { font-size:.82rem; line-height:1.5; }
  .wh-customer-shell .wh-service-detail__check-list { grid-template-columns:1fr; }
  .wh-customer-shell .wh-service-detail__check-list { gap:6px; font-size:.8rem; }
  .wh-customer-shell .wh-service-detail__notice { gap:8px; padding:10px; font-size:.8rem; }
  .wh-customer-shell .wh-service-detail__section-heading { display:block; }
  .wh-customer-shell .wh-service-detail__section-heading > p { max-width:none; margin-top:6px; text-align:start; }
  .wh-customer-shell .wh-service-detail__provider-card { grid-template-columns:auto minmax(0,1fr); gap:10px; }
  .wh-customer-shell .wh-service-detail__provider-card > img { width:52px; height:52px; border-radius:12px; }
  .wh-customer-shell .wh-service-detail__provider-card p { margin-top:2px; font-size:.76rem; }
  .wh-customer-shell .wh-service-detail__provider-card > .wh-button { grid-column:1/-1; justify-content:center; width:100%; }
}
@media (max-width:575.98px) {
  .wh-customer-shell .wh-public-service-grid,.wh-customer-shell .wh-public-provider-grid { grid-template-columns:1fr; }
  .wh-customer-shell .wh-public-category-card { grid-template-columns:46px minmax(0,1fr); min-height:80px; padding:10px; }
  .wh-customer-shell .wh-public-category-card__image { width:46px; height:46px; }
  .wh-customer-shell .wh-public-category-card > .ti-arrow-up-right { display:none; }
  .wh-customer-shell .wh-public-service-card__footer { align-items:stretch; flex-direction:column; }
  .wh-customer-shell .wh-public-service-card__footer .wh-button { justify-content:center; width:100%; min-height:44px; }
  .wh-customer-shell .wh-public-service-card__provider,
  .wh-customer-shell .wh-public-service-card h3 a { display:inline-flex; align-items:center; min-width:44px; min-height:44px; }
  .wh-customer-shell .wh-public-service-card__provider { width:100%; }
  .wh-customer-shell .wh-public-service-grid--rail { grid-template-columns:none; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card__provider,
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card h3 a { display:block; width:auto; min-width:0; min-height:0; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card__footer { align-items:end; flex-direction:row; }
  .wh-customer-shell .wh-public-service-grid--rail .wh-public-service-card__footer .wh-button { width:auto; }
  .wh-customer-shell .wh-public-service-grid--results { display:grid; gap:12px; }
  .wh-customer-shell .wh-public-service-grid--results .wh-public-service-card { display:grid; grid-template-columns:116px minmax(0,1fr); min-height:156px; }
  .wh-customer-shell .wh-public-service-grid--results .wh-public-service-card__image { height:100%; aspect-ratio:auto; }
  .wh-customer-shell .wh-public-service-grid--results .wh-public-service-card__image > span { inset-inline:7px; bottom:7px; max-width:calc(100% - 14px); padding:4px 6px; font-size:.62rem; }
  .wh-customer-shell .wh-public-service-grid--results .wh-public-service-card__body { min-width:0; padding:10px; }
  .wh-customer-shell .wh-public-service-grid--results .wh-public-service-card__provider,
  .wh-customer-shell .wh-public-service-grid--results .wh-public-service-card h3 a { display:block; width:auto; min-width:0; min-height:0; }
  .wh-customer-shell .wh-public-service-grid--results .wh-public-service-card h3 { min-height:0; margin:2px 0 6px; font-size:.9rem; }
  .wh-customer-shell .wh-public-service-grid--results .wh-public-service-card__facts { max-height:38px; min-height:20px; gap:4px 7px; overflow:hidden; font-size:.67rem; }
  .wh-customer-shell .wh-public-service-grid--results .wh-public-service-card__footer { align-items:end; flex-direction:row; gap:6px; padding-top:8px; }
  .wh-customer-shell .wh-public-service-grid--results .wh-public-service-card__footer small { font-size:.66rem; }
  .wh-customer-shell .wh-public-service-grid--results .wh-public-service-card__footer strong { font-size:.9rem; }
  .wh-customer-shell .wh-public-service-grid--results .wh-public-service-card__footer .wh-button { width:auto; min-height:44px; padding:7px 9px; font-size:.68rem; }
  .wh-customer-shell .wh-public-pagination :is(a,span) { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; }
  .wh-customer-shell .wh-provider-profile__identity { align-items:flex-start; }
  .wh-customer-shell .wh-provider-profile__identity > img { flex-basis:80px; width:80px; height:80px; border-radius:18px; }
  .wh-customer-shell .wh-service-detail__header h1 { font-size:1.4rem; }
  .wh-customer-shell .wh-service-detail__options article { grid-template-columns:minmax(0,1fr) auto; }
  .wh-customer-shell .wh-service-detail__options img { display:none; }
}
@media (max-width:389.98px) {
  .wh-customer-shell .wh-public-category-grid { grid-template-columns:1fr; }
  .wh-customer-shell .wh-public-filter-actions { grid-template-columns:1fr; }
  .wh-customer-shell .wh-service-detail__quick-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce) {
  .wh-customer-shell .wh-public-service-card,.wh-customer-shell .wh-public-service-card img { transition:none; }
}

/* Homepage breakpoint overrides stay last so legacy public-grid rules cannot widen the shortcut rail. */
.wh-customer-shell .wh-home .wh-home-category-grid { grid-template-columns:repeat(8,minmax(0,1fr)); }

@media (max-width:1199.98px) {
  .wh-customer-shell .wh-home .wh-home-category-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

@media (max-width:767.98px) {
  .wh-customer-shell .wh-home .wh-home-category-grid {
    display:flex;
    grid-template-columns:none;
    gap:10px;
    margin-inline:-12px;
    padding:0 12px 6px;
    overflow-x:auto;
    scroll-snap-type:inline mandatory;
    scrollbar-width:none;
  }
  .wh-customer-shell .wh-home .wh-home-category-grid::-webkit-scrollbar { display:none; }
  .wh-customer-shell .wh-home .wh-home-category-grid .wh-public-category-card {
    display:flex;
    flex:0 0 92px;
    min-height:98px;
    flex-direction:column;
    justify-content:center;
    padding:8px 5px;
    text-align:center;
    scroll-snap-align:start;
  }
}

/* Homepage continuation v1.1: incremental module ordering and compact discovery rows. */
.wh-customer-shell .wh-home-utility { padding:16px 0; border-bottom:1px solid var(--wh-public-border); background:#eef8f6; }
.wh-customer-shell .wh-home-utility--rebook { padding-block:12px; background:#fff8f2; }
.wh-customer-shell .wh-home-booking,
.wh-customer-shell .wh-home-rebook { display:grid; grid-template-columns:72px minmax(0,1fr) auto auto; align-items:center; gap:14px; padding:14px 16px; }
.wh-customer-shell .wh-home-booking > img,
.wh-customer-shell .wh-home-rebook > img { width:72px; height:64px; border-radius:10px; object-fit:cover; }
.wh-customer-shell .wh-home-booking h2,
.wh-customer-shell .wh-home-rebook h2 { margin:1px 0 5px; color:var(--wh-public-navy); font-size:1rem; line-height:1.2; overflow-wrap:anywhere; }
.wh-customer-shell .wh-home-booking h2 a { color:inherit; }
.wh-customer-shell .wh-home-booking__facts { display:flex; flex-wrap:wrap; gap:4px 14px; color:var(--wh-public-muted); font-size:.75rem; }
.wh-customer-shell .wh-home-booking__facts span { display:inline-flex; align-items:center; gap:4px; min-width:0; }
.wh-customer-shell .wh-home-rebook p:not(.wh-public-eyebrow) { margin:0; color:var(--wh-public-muted); font-size:.76rem; }
.wh-customer-shell .wh-home-module { padding:30px 0; background:#fff; }
.wh-customer-shell .wh-home-module:nth-of-type(even) { background:#f4f8f8; }
.wh-customer-shell .wh-home-module .wh-public-service-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.wh-customer-shell .wh-home-module .wh-public-service-card:nth-child(n+7) { display:none; }
.wh-customer-shell .wh-home-collections { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.wh-customer-shell .wh-home-collection { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:112px; padding:14px; border:1px solid var(--wh-public-border); border-radius:12px; background:#fff; color:var(--wh-public-navy); box-shadow:0 5px 16px rgba(16,35,59,.05); }
.wh-customer-shell .wh-home-collection > i:first-child { display:grid; width:44px; height:44px; place-items:center; border-radius:10px; background:#e8faf6; color:#08735e; font-size:1.35rem; }
.wh-customer-shell .wh-home-collection span { min-width:0; }
.wh-customer-shell .wh-home-collection strong,
.wh-customer-shell .wh-home-collection small { display:block; }
.wh-customer-shell .wh-home-collection strong { font-size:.9rem; line-height:1.25; overflow-wrap:anywhere; }
.wh-customer-shell .wh-home-collection small { display:-webkit-box; margin-top:4px; color:var(--wh-public-muted); font-size:.7rem; line-height:1.35; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.wh-customer-shell .wh-home-collection em { grid-column:2; color:#08735e; font-size:.68rem; font-style:normal; font-weight:750; }
.wh-customer-shell .wh-home-collection > i:last-child { grid-column:3; grid-row:1/3; }
.wh-customer-shell .wh-home-provider-grid { gap:14px; }
.wh-customer-shell .wh-home-provider-grid .wh-public-provider-card__image { aspect-ratio:16/9; }
.wh-customer-shell .wh-home-provider-grid .wh-public-provider-card__body { padding:12px; }
.wh-customer-shell .wh-home-provider-grid .wh-public-provider-card__facts { min-height:62px; margin-bottom:10px; }

@media (max-width:1199.98px) {
  .wh-customer-shell .wh-home-module .wh-public-service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .wh-customer-shell .wh-home-collections { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:767.98px) {
  .wh-customer-shell .wh-home-utility { padding-block:10px; }
  .wh-customer-shell .wh-home-booking,
  .wh-customer-shell .wh-home-rebook { grid-template-columns:58px minmax(0,1fr) auto; gap:9px; padding:11px; }
  .wh-customer-shell .wh-home-booking > img,
  .wh-customer-shell .wh-home-rebook > img { width:58px; height:58px; }
  .wh-customer-shell .wh-home-booking > .wh-status-badge { grid-column:2; justify-self:start; }
  .wh-customer-shell .wh-home-booking > .wh-button { grid-column:3; grid-row:1/3; }
  .wh-customer-shell .wh-home-rebook > .wh-button { grid-column:3; }
  .wh-customer-shell .wh-home-booking__facts span:nth-child(n+2) { display:none; }
  .wh-customer-shell .wh-home-module { padding:22px 0; }
  .wh-customer-shell .wh-home-module .wh-public-service-grid { grid-template-columns:none; }
  .wh-customer-shell .wh-home-module .wh-public-service-card:nth-child(n) { display:flex; }
  .wh-customer-shell .wh-home-collections { display:flex; gap:10px; margin-inline:-12px; padding:0 12px 7px; overflow-x:auto; scroll-snap-type:inline mandatory; scrollbar-width:none; }
  .wh-customer-shell .wh-home-collections::-webkit-scrollbar { display:none; }
  .wh-customer-shell .wh-home-collection { flex:0 0 min(76vw,276px); min-height:102px; scroll-snap-align:start; }
  .wh-customer-shell .wh-home-provider-grid { display:flex; gap:12px; margin-inline:-12px; padding:0 12px 8px; overflow-x:auto; scroll-snap-type:inline mandatory; scrollbar-width:none; }
  .wh-customer-shell .wh-home-provider-grid::-webkit-scrollbar { display:none; }
  .wh-customer-shell .wh-home-provider-grid .wh-public-provider-card { flex:0 0 min(64vw,244px); scroll-snap-align:start; }
}

@media (max-width:389.98px) {
  .wh-customer-shell .wh-home-booking,
  .wh-customer-shell .wh-home-rebook { grid-template-columns:50px minmax(0,1fr); }
  .wh-customer-shell .wh-home-booking > img,
  .wh-customer-shell .wh-home-rebook > img { width:50px; height:54px; }
  .wh-customer-shell .wh-home-booking > .wh-button,
  .wh-customer-shell .wh-home-rebook > .wh-button { grid-column:1/-1; grid-row:auto; width:100%; }
}

/* Keep cookie choices reachable above the fixed customer navigation on small screens. */
@media (max-width:991.98px) {
  .wh-customer-shell .header-nav { position:relative; }
  .wh-customer-shell .navbar-header { position:static; }
  .wh-customer-shell .main-menu-wrapper .wh-drawer-language { display:block !important; }
  .wh-customer-shell .navbar-brand.logo-small {
    position:absolute;
    inset-inline-start:50%;
    top:50%;
    display:flex;
    width:124px;
    height:44px;
    margin:0;
    padding:0;
    align-items:center;
    justify-content:center;
    transform:translate(-50%,-50%);
  }
  .wh-customer-shell .navbar-brand.logo-small img {
    width:auto;
    max-width:124px;
    max-height:32px;
    object-fit:contain;
  }
  .wh-customer-shell .cookie-consent {
    bottom:calc(68px + env(safe-area-inset-bottom));
    z-index:10020;
    max-height:calc(100dvh - 88px - env(safe-area-inset-bottom));
    padding:12px 14px;
    overflow-y:auto;
  }
  .wh-customer-shell .cookie-consent > div { width:min(100%,680px); }
  .wh-customer-shell .cookie-consent__message.d-flex { display:block !important; margin-bottom:9px; font-size:.78rem; line-height:1.35; }
  .wh-customer-shell .cookie-consent__message > div { margin-bottom:4px !important; }
  .wh-customer-shell .cookie-consent__message a { display:inline-flex; min-height:32px; align-items:center; }
  .wh-customer-shell .cookie-consent .justify-content-center { gap:8px; }
  .wh-customer-shell .cookie-consent__agree,
  .wh-customer-shell .cookie-consent__decline { min-height:44px; margin:0; padding:9px 16px; border-radius:8px; font-weight:750; }
}

@media (max-width:575.98px) {
  .wh-customer-shell .header.wh-header-authenticated .header-btn > .provider-head-links.d-block.d-sm-none { display:none !important; }
  .wh-customer-shell .header.wh-header-authenticated .wh-header-wishlist { display:none !important; }
}
