/* HMZ Pathology — Public Booking Website */

:root {
    --public-primary: #2563eb;
    --public-primary-dark: #1d4ed8;
    --public-text: #172033;
    --public-muted: #6b7280;
    --public-bg: #f5f8fc;
    --public-surface: #ffffff;
    --public-border: #e3eaf3;
    --public-success: #15803d;
    --public-radius: 20px;
    --public-shadow: 0 16px 40px rgba(15, 23, 42, .08);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--public-bg);
    color: var(--public-text);
    font-family: Arial, Helvetica, sans-serif;
}

a {
    color: inherit;
    text-decoration: none;
}

.public-container {
    width: min(100% - 32px, 1180px);
    margin-inline: auto;
}

.public-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid var(--public-border);
    background: rgba(255,255,255,.96);
    box-shadow: 0 5px 18px rgba(15,23,42,.04);
    backdrop-filter: blur(10px);
}

.public-header-inner {
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.public-brand {
    display: flex;
    align-items: center;
    gap: 11px;
}

.public-brand > span {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #06b6d4);
}

.public-brand > div {
    display: flex;
    flex-direction: column;
}

.public-brand strong {
    font-size: 16px;
    font-weight: 800;
}

.public-brand small {
    margin-top: 3px;
    color: var(--public-muted);
    font-size: 11px;
}

.public-hero {
    padding: 78px 0;
    overflow: hidden;
    background:
        radial-gradient(circle at top left, rgba(37,99,235,.2), transparent 34%),
        linear-gradient(135deg, #eff6ff, #f8fafc 60%, #ecfeff);
}

.public-hero-grid {
    display: grid;
    grid-template-columns: minmax(0,1.35fr) minmax(330px,.75fr);
    align-items: center;
    gap: 52px;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 13px;
    border-radius: 999px;
    color: #1d4ed8;
    background: #dfeaff;
    font-size: 12px;
    font-weight: 800;
}

.public-hero h1 {
    max-width: 720px;
    margin: 20px 0 0;
    font-size: clamp(38px, 5vw, 64px);
    font-weight: 800;
    line-height: 1.04;
    letter-spacing: -.04em;
}

.public-hero p {
    max-width: 680px;
    margin: 20px 0 0;
    color: #536176;
    font-size: 18px;
    line-height: 1.7;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.hero-points {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 24px;
    color: #475569;
}

.hero-points i {
    color: var(--public-success);
}

.hero-card {
    padding: 28px;
    border: 1px solid rgba(255,255,255,.85);
    border-radius: 26px;
    background: rgba(255,255,255,.86);
    box-shadow: 0 28px 70px rgba(15,23,42,.12);
    backdrop-filter: blur(12px);
}

.hero-card-icon {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    border-radius: 19px;
    color: #fff;
    background: linear-gradient(135deg, #2563eb, #06b6d4);
    font-size: 26px;
}

.hero-card h2 {
    margin: 20px 0 0;
    font-size: 23px;
    font-weight: 800;
}

.hero-card ol {
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.hero-card li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #edf1f6;
}

.hero-card li:last-child {
    border-bottom: 0;
}

.hero-card li span {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: var(--public-primary);
    background: #eaf1ff;
    font-weight: 800;
}

.public-section,
.public-booking-section {
    padding: 72px 0;
}

.public-booking-section {
    background: #eef4fb;
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
}

.section-heading.centered {
    justify-content: center;
    text-align: center;
}

.section-heading > div > span {
    color: var(--public-primary);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
}

.section-heading h2 {
    margin: 7px 0 0;
    font-size: 32px;
    font-weight: 800;
}

.section-heading p {
    margin: 8px 0 0;
    color: var(--public-muted);
}

.test-search-box {
    position: relative;
    width: min(100%, 340px);
}

.test-search-box i {
    position: absolute;
    top: 50%;
    left: 15px;
    transform: translateY(-50%);
    color: #94a3b8;
}

.test-search-box input {
    width: 100%;
    min-height: 48px;
    padding: 10px 14px 10px 43px;
    border: 1px solid var(--public-border);
    border-radius: 14px;
    outline: 0;
    background: #fff;
}

.test-search-box input:focus {
    border-color: var(--public-primary);
    box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}

.public-test-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 18px;
}

.public-test-card {
    padding: 21px;
    border: 1px solid var(--public-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--public-shadow);
    transition: .2s ease;
}

.public-test-card:hover {
    transform: translateY(-4px);
    border-color: #bfd0e8;
}

.public-test-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.public-test-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: var(--public-primary);
    background: #eaf1ff;
}

.public-test-price {
    color: #111827;
    font-size: 19px;
    font-weight: 800;
}

.public-test-card h3 {
    margin: 18px 0 0;
    font-size: 18px;
    font-weight: 800;
}

.public-test-card p {
    margin: 5px 0 0;
    color: var(--public-muted);
    font-size: 12px;
}

.public-test-meta {
    display: grid;
    gap: 8px;
    margin-top: 16px;
}

.public-test-meta span {
    color: #475569;
    font-size: 12px;
}

.public-test-meta i {
    width: 18px;
    color: var(--public-primary);
}

.public-test-note {
    margin-top: 15px;
    padding: 12px;
    border-radius: 12px;
    color: #8a5a00;
    background: #fff8e8;
    font-size: 12px;
}

.public-empty-state {
    grid-column: 1/-1;
    min-height: 260px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--public-border);
    border-radius: 20px;
    background: #fff;
    color: var(--public-muted);
}

.public-empty-state i {
    margin-bottom: 12px;
    color: #b8c4d4;
    font-size: 44px;
}

.public-empty-state strong {
    color: var(--public-text);
}

.public-booking-grid {
    display: grid;
    grid-template-columns: minmax(0,1.6fr) minmax(340px,.75fr);
    gap: 22px;
}

.public-booking-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.public-form-card {
    overflow: hidden;
    border: 1px solid var(--public-border);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--public-shadow);
}

.public-form-head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--public-border);
    background: #fbfdff;
}

.public-form-head > span {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: var(--public-primary);
    background: #eaf1ff;
}

.public-form-head h3 {
    margin: 0;
    font-size: 17px;
    font-weight: 800;
}

.public-form-head p {
    margin: 4px 0 0;
    color: var(--public-muted);
    font-size: 12px;
}

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

.public-test-picker {
    position: relative;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 14px;
    border: 1px solid var(--public-border);
    border-radius: 14px;
    cursor: pointer;
}

.public-test-picker:has(.public-test-checkbox:checked) {
    border-color: var(--public-primary);
    background: #f4f8ff;
    box-shadow: 0 0 0 3px rgba(37,99,235,.08);
}

.public-test-checkbox {
    position: absolute;
    opacity: 0;
}

.public-test-check {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    display: grid;
    place-items: center;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    color: transparent;
}

.public-test-checkbox:checked + .public-test-check {
    border-color: var(--public-primary);
    background: var(--public-primary);
    color: #fff;
}

.public-test-picker-copy {
    min-width: 0;
    display: flex;
    flex: 1;
    flex-direction: column;
}

.public-test-picker-copy strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.public-test-picker-copy small {
    margin-top: 3px;
    color: var(--public-muted);
}

.public-test-picker-price {
    font-weight: 800;
    white-space: nowrap;
}

.public-sticky-card {
    position: sticky;
    top: 92px;
}

.public-total-box {
    padding: 16px;
    border-radius: 15px;
    background: #f8fafc;
}

.public-total-box > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 0;
}

.public-total-box span {
    color: var(--public-muted);
}

.public-total-box .grand-total {
    margin-top: 8px;
    padding-top: 13px;
    border-top: 1px dashed #cbd5e1;
    font-size: 17px;
}

.public-form-disclaimer {
    margin: 14px 0 0;
    color: var(--public-muted);
    text-align: center;
    font-size: 11px;
}

.public-footer {
    border-top: 1px solid var(--public-border);
    background: #fff;
}

.public-footer > div {
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    color: var(--public-muted);
}

.public-footer strong {
    color: var(--public-text);
}

/* Success page */

.success-body {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(37,99,235,.2), transparent 34%),
        linear-gradient(135deg, #eff6ff, #f8fafc 60%, #ecfeff);
}

.success-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
}

.success-card {
    width: min(100%, 620px);
    padding: 38px;
    border: 1px solid rgba(255,255,255,.85);
    border-radius: 26px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 28px 70px rgba(15,23,42,.14);
    text-align: center;
}

.success-icon {
    width: 78px;
    height: 78px;
    display: grid;
    place-items: center;
    margin: 0 auto;
    border-radius: 50%;
    color: #15803d;
    background: #e2f8e9;
    font-size: 38px;
}

.success-label {
    display: block;
    margin-top: 22px;
    color: var(--public-primary);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
}

.success-card h1 {
    margin: 9px 0 0;
    font-size: 30px;
    font-weight: 800;
}

.success-card > p {
    margin: 14px auto 0;
    max-width: 500px;
    color: var(--public-muted);
    line-height: 1.7;
}

.success-booking-id {
    margin: 24px 0;
    padding: 18px;
    border-radius: 16px;
    background: #f4f8ff;
}

.success-booking-id small {
    display: block;
    color: var(--public-muted);
}

.success-booking-id strong {
    display: block;
    margin-top: 6px;
    color: var(--public-primary);
    font-size: 22px;
}

.success-detail-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px;
    margin-bottom: 24px;
}

.success-detail-grid > div {
    display: flex;
    flex-direction: column;
    padding: 14px;
    border-radius: 13px;
    background: #f8fafc;
}

.success-detail-grid span {
    color: var(--public-muted);
    font-size: 11px;
}

.success-detail-grid strong {
    margin-top: 5px;
}

@media (max-width: 991.98px) {
    .public-hero-grid,
    .public-booking-grid {
        grid-template-columns: 1fr;
    }

    .public-test-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .public-sticky-card {
        position: static;
    }
}

@media (max-width: 767.98px) {
    .public-hero {
        padding: 54px 0;
    }

    .public-hero h1 {
        font-size: 42px;
    }

    .section-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .test-search-box {
        width: 100%;
    }

    .public-test-grid,
    .public-test-picker-grid {
        grid-template-columns: 1fr;
    }

    .public-footer > div {
        align-items: flex-start;
        flex-direction: column;
        justify-content: center;
    }
}

@media (max-width: 479.98px) {
    .public-container {
        width: min(100% - 22px,1180px);
    }

    .public-header .btn {
        padding-inline: 12px;
        font-size: 0;
    }

    .public-header .btn i {
        margin: 0 !important;
        font-size: 15px;
    }

    .public-hero h1 {
        font-size: 34px;
    }

    .hero-actions {
        flex-direction: column;
    }

    .hero-actions .btn {
        width: 100%;
    }

    .success-card {
        padding: 30px 20px;
    }

    .success-detail-grid {
        grid-template-columns: 1fr;
    }
}


/* HMZ Public Booking V2 — Lab Visit / Home Collection selector */
.hmz-collection-choice{
    padding:18px;
    border:1px solid #dbe8f7;
    border-radius:18px;
    background:linear-gradient(135deg,#f8fbff 0%,#fff 58%,#f4f9ff 100%);
}
.hmz-collection-choice__head{margin-bottom:14px}
.hmz-collection-choice__head>div{display:flex;flex-direction:column;gap:4px}
.hmz-collection-choice__kicker{font-size:10px;font-weight:800;letter-spacing:.12em;color:#2563eb}
.hmz-collection-choice__head strong{font-size:16px;color:#132f52}
.hmz-collection-choice__head small{color:#64748b;line-height:1.45}
.hmz-collection-choice__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.hmz-collection-option{
    position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 22px;align-items:center;gap:12px;
    min-height:106px;padding:15px;border:1px solid #dbe5f1;border-radius:15px;background:#fff;cursor:pointer;
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;
}
.hmz-collection-option:hover{border-color:#9fc3f5;box-shadow:0 10px 24px rgba(15,55,100,.08);transform:translateY(-1px)}
.hmz-collection-option.is-selected{border-color:#2f75e8;background:#f3f8ff;box-shadow:0 0 0 3px rgba(47,117,232,.09)}
.hmz-collection-option input{position:absolute;opacity:0;pointer-events:none}
.hmz-collection-option__icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#edf5ff;color:#2563eb;font-size:18px}
.hmz-collection-option__copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.hmz-collection-option__copy strong{font-size:14px;color:#183555}
.hmz-collection-option__copy small{font-size:12px;line-height:1.4;color:#6b7c91}
.hmz-collection-option__copy em{font-style:normal;font-size:11px;font-weight:750;color:#0f766e}
.hmz-collection-option__check{color:#c7d4e5;font-size:18px}
.hmz-collection-option.is-selected .hmz-collection-option__check{color:#2563eb}
.hmz-home-address-card[hidden]{display:none!important}
.hmz-home-address-card{animation:hmzAddressReveal .24s ease both}
@keyframes hmzAddressReveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.hmz-field-counter{text-align:right;margin-top:6px;font-size:11px;font-weight:700;color:#8290a3}
.hmz-summary-mode strong{color:#1d4ed8}
@media(max-width:767px){
    .hmz-collection-choice{padding:14px;border-radius:15px}
    .hmz-collection-choice__grid{grid-template-columns:1fr}
    .hmz-collection-option{min-height:92px;padding:13px}
}


/* HMZ Public Booking V2.1 — simple collection choice */
.hmz-simple-collection-toggle{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    max-width:430px;
}
.hmz-simple-collection-btn{
    min-height:48px;
    padding:0 16px;
    border:1px solid #d7e1ef;
    border-radius:12px;
    background:#fff;
    color:#40546c;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    cursor:pointer;
    font-size:14px;
    font-weight:800;
    transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.hmz-simple-collection-btn input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.hmz-simple-collection-btn i{
    font-size:15px;
}
.hmz-simple-collection-btn:hover{
    border-color:#9dbdf5;
    background:#f7fbff;
}
.hmz-simple-collection-btn.is-selected{
    border-color:#2563eb;
    background:#2563eb;
    color:#fff;
    box-shadow:0 8px 18px rgba(37,99,235,.18);
}
.hmz-home-address-card{
    display:none;
}
.hmz-home-address-card.is-visible{
    display:block;
}
.hmz-home-address-card[hidden]{
    display:none!important;
}
@media(max-width:575px){
    .hmz-simple-collection-toggle{
        grid-template-columns:1fr 1fr;
        gap:8px;
        max-width:none;
    }
    .hmz-simple-collection-btn{
        min-height:46px;
        padding:0 10px;
        font-size:13px;
    }
}


/* HMZ Public Booking V2.2 — Home Collection default / minimal UI */
.hmz-home-address-card .public-form-head > span{
    flex:0 0 auto;
}
.hmz-home-address-card .public-form-head h3{
    margin-bottom:0;
}
.hmz-home-address-card .public-form-head p{
    display:none!important;
}
#publicCollectionChargeRow[hidden]{
    display:none!important;
}


/* HMZ Public Booking V2.3 — optional Patient Note */
.hmz-patient-note-optional{
    margin-top:4px;
}
.hmz-patient-note-toggle{
    width:100%;
    min-height:48px;
    padding:0 14px;
    border:1px dashed #cbd7e6;
    border-radius:12px;
    background:#fbfdff;
    color:#334155;
    display:grid;
    grid-template-columns:1fr auto auto;
    align-items:center;
    gap:10px;
    text-align:left;
    cursor:pointer;
    transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.hmz-patient-note-toggle:hover{
    border-color:#9dbdf5;
    background:#f7fbff;
}
.hmz-patient-note-toggle > span{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-weight:750;
}
.hmz-patient-note-toggle small{
    padding:4px 8px;
    border-radius:999px;
    background:#eef4fb;
    color:#64748b;
    font-size:11px;
    font-weight:700;
}
.hmz-patient-note-chevron{
    color:#64748b;
    transition:transform .2s ease;
}
.hmz-patient-note-toggle.is-open .hmz-patient-note-chevron{
    transform:rotate(180deg);
}
.hmz-patient-note-panel{
    margin-top:10px;
    padding:14px;
    border:1px solid #e1e8f0;
    border-radius:12px;
    background:#fff;
}
.hmz-patient-note-panel[hidden]{
    display:none!important;
}
.hmz-patient-note-meta{
    margin-top:6px;
    display:flex;
    justify-content:space-between;
    gap:12px;
    color:#7a8899;
    font-size:11px;
}
@media(max-width:575px){
    .hmz-patient-note-toggle{
        min-height:46px;
        padding:0 12px;
        gap:8px;
    }
    .hmz-patient-note-toggle > span{
        font-size:13px;
    }
}


/* HMZ Public Booking V2.4 — screenshot-refined compact Patient Note */
.hmz-patient-note-optional{
    margin-top:2px!important;
}
.hmz-patient-note-toggle{
    width:100%!important;
    min-height:36px!important;
    height:36px!important;
    padding:0 10px!important;
    border:1px solid #e3e8ef!important;
    border-radius:8px!important;
    background:#fff!important;
    color:#334155!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    box-shadow:none!important;
    cursor:pointer!important;
}
.hmz-patient-note-toggle:hover{
    background:#fbfdff!important;
    border-color:#cdd8e6!important;
}
.hmz-patient-note-title{
    font-size:12px!important;
    font-weight:700!important;
    line-height:1!important;
}
.hmz-patient-note-action{
    display:inline-flex!important;
    align-items:center!important;
    gap:6px!important;
    color:#64748b!important;
}
.hmz-patient-note-action small{
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    color:#7b8796!important;
    font-size:11px!important;
    font-weight:600!important;
    line-height:1!important;
}
.hmz-patient-note-chevron{
    font-size:10px!important;
    color:#7b8796!important;
    transition:transform .18s ease!important;
}
.hmz-patient-note-toggle.is-open .hmz-patient-note-chevron{
    transform:rotate(180deg)!important;
}
.hmz-patient-note-panel{
    margin-top:6px!important;
    padding:10px!important;
    border:1px solid #e6ebf2!important;
    border-radius:8px!important;
    background:#fff!important;
}
.hmz-patient-note-panel[hidden]{
    display:none!important;
}
.hmz-patient-note-panel textarea{
    min-height:72px!important;
    resize:vertical!important;
}
.hmz-patient-note-meta{
    margin-top:4px!important;
    display:flex!important;
    justify-content:space-between!important;
    gap:10px!important;
    color:#8a96a5!important;
    font-size:10px!important;
}
@media(max-width:575px){
    .hmz-patient-note-toggle{
        min-height:34px!important;
        height:34px!important;
        padding:0 9px!important;
    }
    .hmz-patient-note-title{
        font-size:12px!important;
    }
}


/* HMZ Public Booking V2.5 — Patient Note dropdown inside heading */
.hmz-patient-note-card{
    overflow:hidden;
}

.hmz-patient-note-head-toggle{
    width:100%!important;
    min-height:62px!important;
    margin:0!important;
    padding:14px 18px!important;
    border:0!important;
    background:transparent!important;
    display:grid!important;
    grid-template-columns:auto 1fr auto!important;
    align-items:center!important;
    gap:12px!important;
    text-align:left!important;
    cursor:pointer!important;
    box-shadow:none!important;
}

.hmz-patient-note-head-toggle:hover{
    background:#fbfdff!important;
}

.hmz-patient-note-head-icon{
    width:42px!important;
    height:42px!important;
    border-radius:12px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
}

.hmz-patient-note-head-title h3{
    margin:0!important;
}

.hmz-patient-note-head-title small{
    font-size:.72em!important;
    font-weight:600!important;
}

.hmz-patient-note-head-toggle .hmz-patient-note-chevron{
    margin-left:auto!important;
    font-size:13px!important;
    color:#64748b!important;
    transition:transform .18s ease!important;
}

.hmz-patient-note-head-toggle.is-open .hmz-patient-note-chevron{
    transform:rotate(180deg)!important;
}

.hmz-patient-note-card > .hmz-patient-note-panel{
    margin:0!important;
    padding:0 18px 16px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
}

.hmz-patient-note-card > .hmz-patient-note-panel[hidden]{
    display:none!important;
}

.hmz-patient-note-card > .hmz-patient-note-panel textarea{
    min-height:78px!important;
    resize:vertical!important;
}

.hmz-patient-note-card .hmz-patient-note-meta{
    margin-top:5px!important;
    display:flex!important;
    justify-content:space-between!important;
    gap:10px!important;
    color:#8a96a5!important;
    font-size:10px!important;
}

@media(max-width:575px){
    .hmz-patient-note-head-toggle{
        min-height:54px!important;
        padding:10px 14px!important;
        gap:10px!important;
    }

    .hmz-patient-note-head-icon{
        width:36px!important;
        height:36px!important;
        border-radius:10px!important;
    }

    .hmz-patient-note-card > .hmz-patient-note-panel{
        padding:0 14px 14px!important;
    }
}


/* HMZ Public Booking V2.7 — floating Continue shortcut after test selection */
.public-selection-helper{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    bottom:18px!important;
    z-index:1055!important;
    width:min(920px,calc(100vw - 32px))!important;
    margin:0!important;
    padding:11px 12px 11px 14px!important;
    border:1px solid rgba(199,216,237,.92)!important;
    border-radius:16px!important;
    background:rgba(255,255,255,.96)!important;
    backdrop-filter:blur(14px)!important;
    -webkit-backdrop-filter:blur(14px)!important;
    box-shadow:0 18px 48px rgba(17,49,87,.20)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:16px!important;
    transform:translate(-50%,18px)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:opacity .18s ease,transform .18s ease,visibility .18s ease!important;
}
.public-selection-helper[hidden]{
    display:none!important;
}
.public-selection-helper.is-visible:not([hidden]){
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translate(-50%,0)!important;
}
.public-selection-helper>div{
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    gap:11px!important;
}
.public-selection-helper-icon{
    width:40px!important;
    height:40px!important;
    flex:0 0 40px!important;
    border-radius:12px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#eaf3ff!important;
    color:#176fe5!important;
}
.public-selection-helper strong{
    display:block!important;
    margin:0!important;
    color:#173153!important;
    font-size:14px!important;
    font-weight:850!important;
    line-height:1.2!important;
}
.public-selection-helper small{
    display:block!important;
    margin-top:3px!important;
    color:#6c7d90!important;
    font-size:11px!important;
    line-height:1.25!important;
}
.public-selection-helper .btn{
    min-height:42px!important;
    flex:0 0 auto!important;
    padding:0 17px!important;
    border-radius:11px!important;
    font-size:13px!important;
    font-weight:850!important;
    white-space:nowrap!important;
}

@media(max-width:640px){
    .public-selection-helper{
        bottom:max(10px,env(safe-area-inset-bottom))!important;
        width:calc(100vw - 20px)!important;
        padding:9px!important;
        gap:9px!important;
        border-radius:14px!important;
    }
    .public-selection-helper-icon{
        width:36px!important;
        height:36px!important;
        flex-basis:36px!important;
        border-radius:10px!important;
    }
    .public-selection-helper strong{
        font-size:12px!important;
    }
    .public-selection-helper small{
        display:none!important;
    }
    .public-selection-helper .btn{
        min-height:40px!important;
        padding:0 12px!important;
        font-size:11px!important;
    }
    .public-selection-helper .btn .ms-2{
        margin-left:5px!important;
    }
}

@media(max-width:390px){
    .public-selection-helper{
        align-items:stretch!important;
    }
    .public-selection-helper>div{
        gap:7px!important;
    }
    .public-selection-helper .btn{
        padding:0 9px!important;
    }
}

/* V2.8 compact floating Continue */
.public-selection-helper{width:auto!important;max-width:620px!important;min-width:0!important;padding:8px 9px 8px 11px!important;gap:12px!important;border-radius:14px!important}
.public-selection-helper-icon{width:34px!important;height:34px!important;flex:0 0 34px!important;border-radius:10px!important}
.public-selection-helper strong{font-size:12px!important}
.public-selection-helper small{margin-top:2px!important;font-size:10px!important}
.public-selection-helper .btn{min-height:36px!important;padding:0 13px!important;border-radius:9px!important;font-size:11px!important}
@media(max-width:640px){
.public-selection-helper{width:auto!important;max-width:calc(100vw - 20px)!important;padding:7px 8px!important;gap:8px!important;border-radius:12px!important}
.public-selection-helper-icon{width:30px!important;height:30px!important;flex-basis:30px!important;border-radius:8px!important}
.public-selection-helper strong{font-size:11px!important;white-space:nowrap!important}
.public-selection-helper .btn{min-height:34px!important;padding:0 10px!important;font-size:10px!important}
}
@media(max-width:390px){.public-selection-helper{width:calc(100vw - 16px)!important;max-width:none!important}}

/* V2.9 — action first, selected count second, no icon */
.public-selection-helper{
    align-items:center!important;
}
.public-selection-helper-icon{
    display:none!important;
}
.public-selection-helper>div{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:2px!important;
}
.public-selection-helper strong{
    order:2!important;
    font-size:10px!important;
    font-weight:700!important;
    color:#6c7d90!important;
}
.public-selection-helper small{
    order:3!important;
    margin:0!important;
    font-size:9px!important;
}
.public-selection-helper .btn{
    order:-1!important;
}
@media(max-width:640px){
    .public-selection-helper>div{gap:1px!important}
    .public-selection-helper strong{font-size:9px!important}
}

/* V2.10 — warm highlighted floating Continue container */
.public-selection-helper{
    bottom:24px!important;
    padding:10px 12px!important;
    background:linear-gradient(135deg,#fff8ed 0%,#ffedd5 100%)!important;
    border:1px solid #fed7aa!important;
    box-shadow:0 12px 30px rgba(154,82,16,.18),0 3px 10px rgba(15,38,70,.10)!important;
}
@media(max-width:640px){
    .public-selection-helper{
        bottom:max(16px,env(safe-area-inset-bottom))!important;
        max-width:calc(100vw - 28px)!important;
        padding:9px 10px!important;
    }
}
@media(max-width:390px){
    .public-selection-helper{
        width:calc(100vw - 28px)!important;
    }
}

/* V2.11 — stronger selected-count title + more breathing room */
.public-selection-helper{
    bottom:28px!important;
    padding:14px 16px!important;
    gap:16px!important;
    background:linear-gradient(135deg,#fff7e6 0%,#ffe9c2 100%)!important;
    border:1px solid #f6c97a!important;
    border-radius:16px!important;
    box-shadow:
        0 16px 38px rgba(153,86,18,.22),
        0 4px 12px rgba(20,45,78,.12)!important;
}

.public-selection-helper>div{
    gap:4px!important;
}

.public-selection-helper strong{
    order:1!important;
    margin:0!important;
    color:#173153!important;
    font-size:14px!important;
    font-weight:900!important;
    line-height:1.15!important;
    letter-spacing:-.01em!important;
}

.public-selection-helper small{
    order:2!important;
    margin:1px 0 0!important;
    color:#7a6856!important;
    font-size:10px!important;
    font-weight:600!important;
}

.public-selection-helper .btn{
    /* Keep the existing blue Continue button sizing intact */
    margin-left:4px!important;
}

@media(max-width:640px){
    .public-selection-helper{
        bottom:max(18px,env(safe-area-inset-bottom))!important;
        width:auto!important;
        max-width:calc(100vw - 32px)!important;
        padding:12px 13px!important;
        gap:12px!important;
    }

    .public-selection-helper strong{
        font-size:13px!important;
        white-space:nowrap!important;
    }

    .public-selection-helper small{
        font-size:9px!important;
    }
}

@media(max-width:390px){
    .public-selection-helper{
        width:calc(100vw - 24px)!important;
        max-width:none!important;
        padding:11px 12px!important;
    }
}

/* V2.12 — soft pink highlighted floating Continue container */
.public-selection-helper{
    background:linear-gradient(135deg,#fff7fa 0%,#ffe8f0 100%)!important;
    border:1px solid #f3b7ca!important;
    box-shadow:
        0 18px 42px rgba(173,68,105,.20),
        0 5px 14px rgba(31,48,75,.13),
        inset 0 1px 0 rgba(255,255,255,.78)!important;
}

/* V2.13 — force visible pink surface on the actual floating helper */
body .public-selection-helper,
body .public-selection-helper.is-visible,
body .public-selection-helper.is-visible:not([hidden]){
    background:#ffe6ef!important;
    background-image:linear-gradient(135deg,#fff0f5 0%,#ffdce8 100%)!important;
    border:2px solid #e98eac!important;
    box-shadow:
        0 18px 38px rgba(176,55,98,.30),
        0 6px 16px rgba(40,52,75,.18)!important;
    border-radius:18px!important;
    overflow:visible!important;
}
body .public-selection-helper::before,
body .public-selection-helper::after{
    background:transparent!important;
    box-shadow:none!important;
    pointer-events:none!important;
}
body .public-selection-helper > div{
    background:transparent!important;
}

/* V2.14 — neutral black shadow, keep pink surface */
body .public-selection-helper,
body .public-selection-helper.is-visible,
body .public-selection-helper.is-visible:not([hidden]){
    box-shadow:
        0 12px 28px rgba(0,0,0,.24),
        0 4px 10px rgba(0,0,0,.14)!important;
}

/* V2.15 — stronger centered selected-test count */
body .public-selection-helper > div{
    align-items:center!important;
    text-align:center!important;
}
body .public-selection-helper strong{
    width:100%!important;
    text-align:center!important;
    font-size:16px!important;
    font-weight:900!important;
    line-height:1.2!important;
    color:#142f50!important;
}
@media(max-width:640px){
    body .public-selection-helper strong{
        font-size:14px!important;
    }
}

/* V2.16 selected-count capitalization safeguard */
body .public-selection-helper strong{text-transform:none!important;}

/* V2.17 — final floating CTA visual treatment */
body .public-selection-helper,
body .public-selection-helper.is-visible,
body .public-selection-helper.is-visible:not([hidden]){
    background:#eaf8ed!important;
    background-image:linear-gradient(135deg,#f2fff4 0%,#dff5e4 100%)!important;
    border:2px solid #69b878!important;
    box-shadow:
        0 12px 26px rgba(0,0,0,.24),
        0 4px 9px rgba(0,0,0,.14)!important;
}
body .public-selection-helper > div{
    background:transparent!important;
}
body .public-selection-helper strong{
    color:#d71920!important;
    font-size:16px!important;
    font-weight:900!important;
    text-align:center!important;
}
@media(max-width:640px){
    body .public-selection-helper strong{
        font-size:14px!important;
    }
}

/* V2.18 — mobile floating CTA alignment + compact sizing */
@media (max-width: 640px){
    body .public-selection-helper,
    body .public-selection-helper.is-visible,
    body .public-selection-helper.is-visible:not([hidden]){
        left:50%!important;
        right:auto!important;
        transform:translateX(-50%)!important;
        width:calc(100vw - 28px)!important;
        max-width:360px!important;
        min-width:0!important;
        box-sizing:border-box!important;
        bottom:14px!important;
        padding:10px 12px!important;
        border-radius:16px!important;
        gap:8px!important;
        margin:0!important;
    }

    body .public-selection-helper > div{
        width:100%!important;
        min-width:0!important;
        gap:4px!important;
    }

    body .public-selection-helper .btn{
        width:100%!important;
        min-height:42px!important;
        padding:9px 12px!important;
        font-size:13px!important;
        line-height:1.15!important;
        border-radius:11px!important;
        white-space:normal!important;
    }

    body .public-selection-helper strong{
        font-size:13px!important;
        line-height:1.15!important;
        margin:0!important;
    }

    body .public-selection-helper small{
        font-size:10.5px!important;
        line-height:1.25!important;
        margin:0!important;
    }
}

@media (max-width: 380px){
    body .public-selection-helper,
    body .public-selection-helper.is-visible,
    body .public-selection-helper.is-visible:not([hidden]){
        width:calc(100vw - 20px)!important;
        max-width:340px!important;
        padding:9px 10px!important;
    }

    body .public-selection-helper .btn{
        font-size:12.5px!important;
        min-height:40px!important;
        padding:8px 10px!important;
    }

    body .public-selection-helper strong{
        font-size:12.5px!important;
    }

    body .public-selection-helper small{
        font-size:10px!important;
    }
}


/* V2.19 — subtle translucent light-green floating CTA */
body .public-selection-helper,
body .public-selection-helper.is-visible,
body .public-selection-helper.is-visible:not([hidden]){
    background:rgba(232, 249, 236, .88)!important;
    background-image:linear-gradient(
        135deg,
        rgba(244,255,246,.90) 0%,
        rgba(218,245,224,.84) 100%
    )!important;
    -webkit-backdrop-filter:blur(8px) saturate(115%);
    backdrop-filter:blur(8px) saturate(115%);
    border-color:rgba(76,175,96,.82)!important;
}


/* V2.20 — TRUE transparent green glass panel */
body .public-selection-helper,
body .public-selection-helper.is-visible,
body .public-selection-helper.is-visible:not([hidden]){
    background:rgba(224, 248, 229, .48)!important;
    background-color:rgba(224, 248, 229, .48)!important;
    background-image:none!important;
    -webkit-backdrop-filter:blur(5px) saturate(120%)!important;
    backdrop-filter:blur(5px) saturate(120%)!important;
    border:2px solid rgba(55, 168, 79, .78)!important;
    box-shadow:
        0 10px 24px rgba(0,0,0,.22),
        0 3px 8px rgba(0,0,0,.13)!important;
}
body .public-selection-helper > div,
body .public-selection-helper::before,
body .public-selection-helper::after{
    background:transparent!important;
    background-image:none!important;
}


/* =========================================================
   HMZ Public Booking V3.6 — 5-row progressive test loading
   ========================================================= */
.hmz-test-more-wrap{
    display:flex;
    justify-content:center;
    align-items:center;
    margin:22px auto 8px;
    width:100%;
}

.hmz-test-more-wrap[hidden]{
    display:none!important;
}

.hmz-test-more-btn{
    appearance:none;
    border:1px solid #c8d9ee;
    background:rgba(255,255,255,.96);
    color:#0d4f9d;
    min-width:230px;
    max-width:100%;
    padding:11px 17px;
    border-radius:14px;
    box-shadow:0 8px 22px rgba(19,71,125,.09);
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:
      "title chevron"
      "hint chevron";
    column-gap:16px;
    align-items:center;
    text-align:left;
    cursor:pointer;
    transition:
      transform .18s ease,
      box-shadow .18s ease,
      border-color .18s ease,
      background .18s ease;
}

.hmz-test-more-btn>span{
    grid-area:title;
    display:flex;
    align-items:center;
    gap:8px;
    font-size:14px;
    line-height:1.15;
    font-weight:900;
}

.hmz-test-more-btn>span>i{
    width:25px;
    height:25px;
    border-radius:8px;
    display:grid;
    place-items:center;
    background:#eaf3ff;
    color:#176ee0;
    font-size:11px;
}

.hmz-test-more-btn small{
    grid-area:hint;
    margin-top:3px;
    color:#71849a;
    font-size:10px;
    font-weight:700;
    line-height:1.25;
}

.hmz-test-more-chevron{
    grid-area:chevron;
    color:#176ee0;
    font-size:13px;
    transition:transform .18s ease;
}

.hmz-test-more-btn:hover{
    transform:translateY(-2px);
    border-color:#93b9e8;
    background:#fff;
    box-shadow:0 12px 28px rgba(19,71,125,.14);
}

.hmz-test-more-btn:hover .hmz-test-more-chevron{
    transform:translateY(2px);
}

.hmz-test-more-btn:focus-visible{
    outline:3px solid rgba(23,110,224,.22);
    outline-offset:3px;
}

@media(max-width:640px){
    .hmz-test-more-wrap{
        margin-top:16px;
    }

    .hmz-test-more-btn{
        min-width:0;
        width:min(100%,270px);
        padding:10px 14px;
        border-radius:12px;
    }

    .hmz-test-more-btn>span{
        font-size:13px;
    }
}

@media(prefers-reduced-motion:reduce){
    .hmz-test-more-btn,
    .hmz-test-more-chevron{
        transition:none!important;
    }
}


/* =========================================================
   HMZ Public Booking V3.7 — prominent centered test search
   ========================================================= */
.hmz-book-test-heading{
    display:block!important;
    margin-bottom:22px!important;
}

.hmz-book-test-heading-copy{
    width:100%;
    text-align:center;
}

.hmz-book-test-heading-copy > span{
    display:inline-block;
}

.hmz-book-test-heading-copy h2{
    margin-top:7px;
}

.hmz-book-test-heading-copy p{
    max-width:720px;
    margin:8px auto 0!important;
}

.hmz-book-test-search{
    width:min(100%,760px)!important;
    margin:20px auto 0;
}

.hmz-book-test-search i{
    left:19px!important;
    font-size:15px;
    color:#5f7895!important;
}

.hmz-book-test-search input{
    min-height:56px!important;
    padding:13px 18px 13px 50px!important;
    border-radius:16px!important;
    border:1px solid #c9d9eb!important;
    background:#fff!important;
    font-size:15px!important;
    font-weight:600;
    color:#16324f;
    box-shadow:0 10px 28px rgba(23,70,119,.09);
    transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.hmz-book-test-search input::placeholder{
    color:#8091a6;
    font-weight:500;
}

.hmz-book-test-search input:focus{
    border-color:#2f7fe8!important;
    box-shadow:
      0 0 0 4px rgba(47,127,232,.10),
      0 12px 30px rgba(23,70,119,.12)!important;
    transform:translateY(-1px);
}

@media(max-width:767.98px){
    .hmz-book-test-search{
        width:100%!important;
        margin-top:16px;
    }

    .hmz-book-test-search input{
        min-height:50px!important;
        font-size:14px!important;
        border-radius:14px!important;
        padding-left:46px!important;
    }

    .hmz-book-test-search i{
        left:17px!important;
    }
}


/* HMZ Homepage Booking V3.8 — regression recovery
   Progressive test listing is controlled by JS at 4 visual rows per step.
   Existing search, booking, floating Continue, and responsive styling retained. */


/* =========================================================
   V35 — Public booking confirmation email notice
   ========================================================= */
.success-email-notice{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:16px auto 0;
    max-width:500px;
    padding:11px 13px;
    border:1px solid #dbe7f2;
    border-radius:12px;
    text-align:left;
    font-size:12px;
    line-height:1.55;
}
.success-email-notice i{
    margin-top:2px;
    font-size:16px;
}
.success-email-notice strong{
    font-weight:800;
}
.success-email-notice.is-sent{
    border-color:#bfe7cd;
    background:#f1fbf5;
    color:#24613c;
}
.success-email-notice.is-sent i{color:#15803d}
.success-email-notice.is-queued{
    border-color:#c8ddf5;
    background:#f5f9ff;
    color:#315f8f;
}
.success-email-notice.is-queued i{color:#2563eb}
.success-email-notice.is-pending{
    border-color:#ead9b8;
    background:#fffaf1;
    color:#74591e;
}
.success-email-notice.is-pending i{color:#a56b00}

/* Stage P3.15a — public home booking UI restoration */
.public-test-card[hidden], #hmzTestMoreWrap[hidden], #publicHomeAddressSection[hidden],
#publicCollectionChargeRow[hidden] { display:none !important; }
.hmz-public-collection-restore { margin:0 0 22px; padding:18px 20px; border:1px solid #d7e5f4;
 border-radius:18px; background:linear-gradient(135deg,#fff,#f4f9ff); }
.hmz-public-collection-heading h3 { margin:0 0 4px; font-size:17px; color:#173451; font-weight:800; }
.hmz-public-collection-heading h3 span { color:#c82a3d; }
.hmz-public-collection-heading p { margin:0 0 13px; color:#64748b; font-size:12px; }
.hmz-public-collection-restore .hmz-simple-collection-toggle { max-width:470px; }
.hmz-public-collection-restore .hmz-simple-collection-btn:focus-within { outline:3px solid rgba(37,99,235,.25); outline-offset:2px; }
.hmz-public-collection-restore .hmz-simple-collection-btn input { position:absolute; opacity:0; width:1px; height:1px; }
@media(max-width:575px) { .hmz-public-collection-restore { padding:14px; } }
