/* Shared opt-in location control inside the original HALO search fields.
 * This stylesheet MUST NOT change the layout of existing home/salon forms.
 */
.halo-nearby-icon-action{
    appearance:none;-webkit-appearance:none;border:0;padding:2px;margin:0;
    width:44px;height:44px;min-width:44px;display:inline-flex;align-items:center;
    justify-content:center;align-self:center;background:transparent;color:inherit;
    border-radius:50%;cursor:pointer;box-shadow:none;line-height:1;
}
.halo-nearby-icon-action img{display:block;max-width:100%;object-fit:contain;pointer-events:none}
.halo-nearby-icon-action:hover{background:rgba(231,180,110,.08)}
.halo-nearby-icon-action:focus-visible{outline:2px solid #e2a457;outline-offset:2px}
.halo-nearby-icon-action:disabled{opacity:.6;cursor:progress}
.halo-nearby-icon-action[hidden]{display:none}
.halo-nearby-sr-status{
    position:absolute!important;width:1px!important;height:1px!important;
    overflow:hidden!important;clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;clip-path:inset(50%)!important;
}
.halo-luxury-search__field--location .halo-nearby-icon-action img.halo-luxury-search__icon{
    width:38px;height:38px;
}
.halo-nearby-icon-action--search{flex:0 0 44px;width:44px;height:44px;min-width:44px}
.halo-nearby-icon-action--search img{width:22px;height:22px}

/* Compact fallback/results route only. The premium homepage and salons
 * search bar keep all their existing positioning, dimensions and layout. */
body.public-body--halo-search .halo-search-page--compact > .halo-search-hero{
    min-height:0!important;
    padding:clamp(92px,9vw,118px) 0 clamp(22px,3vw,40px)!important;
    background:linear-gradient(160deg,#150f0d,#22170f 70%,#160f0c);
}
body.public-body--halo-search .halo-search-page--compact .halo-search-hero__shell{
    display:flex!important;flex-direction:column;gap:clamp(16px,2vw,24px);
    align-items:stretch;
}
body.public-body--halo-search .halo-search-page--compact .halo-search-copy{
    max-width:880px;margin:0;min-width:0;
}
body.public-body--halo-search .halo-search-page--compact .halo-search-copy h1{
    font-size:clamp(2rem,4.2vw,2.9rem)!important;
    line-height:1.12!important;letter-spacing:-.015em;
    max-width:100%;margin:8px 0 0!important;overflow-wrap:normal;
}
body.public-body--halo-search .halo-search-page--compact .halo-search-copy p{
    max-width:720px;font-size:clamp(.9rem,1.5vw,1rem);
    line-height:1.55;margin:10px 0 0;
}
body.public-body--halo-search .halo-search-page--compact .halo-search-kicker{
    font-size:.7rem;letter-spacing:.08em;
}
body.public-body--halo-search .halo-search-page--compact .halo-search-tools{
    width:100%;max-width:100%;min-width:0;
}
body.public-body--halo-search .halo-search-page--compact .halo-availability-card{
    width:100%;max-width:none;box-sizing:border-box;
    padding:clamp(12px,2.2vw,24px)!important;margin:0;
}
body.public-body--halo-search .halo-search-page--compact .halo-availability-grid{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;
    align-items:end;min-width:0;
}
body.public-body--halo-search .halo-search-page--compact .halo-availability-field{
    min-width:0;margin:0;
}
body.public-body--halo-search .halo-search-page--compact .halo-availability-field--wide{
    grid-column:span 2;
}
body.public-body--halo-search .halo-search-page--compact .halo-availability-submit{
    min-height:46px;width:100%;
}
body.public-body--halo-search .halo-search-page--compact .halo-availability-control{
    min-width:0;
}
@media(max-width:700px){
    body.public-body--halo-search .halo-search-page--compact > .halo-search-hero{
        padding:clamp(76px,19vw,92px) 0 26px!important;
    }
    body.public-body--halo-search .halo-search-page--compact .halo-search-hero__shell{
        gap:15px;
    }
    body.public-body--halo-search .halo-search-page--compact .halo-search-copy h1{
        font-size:clamp(1.85rem,6.2vw,2.35rem)!important;
        line-height:1.12!important;
    }
    body.public-body--halo-search .halo-search-page--compact .halo-search-copy p{
        font-size:.9rem;line-height:1.5;
    }
    body.public-body--halo-search .halo-search-page--compact .halo-availability-grid{
        grid-template-columns:minmax(0,1fr);gap:10px;
    }
    body.public-body--halo-search .halo-search-page--compact .halo-availability-field--wide{
        grid-column:auto;
    }
}
/* Invisible until requested: keep the pre-existing mobile search dimensions. */
.halo-mobile-location-toggle{display:none!important}
@media(max-width:760px){
    [data-halo-nearby-search] .halo-mobile-location-toggle{
        position:absolute;display:inline-flex!important;top:50%;right:7px;
        transform:translateY(-50%);z-index:2;align-items:center;
        justify-content:center;flex:0 0 44px;width:44px;height:44px;
        padding:7px;border:0;border-radius:50%;background:transparent;
        box-shadow:none;color:inherit;cursor:pointer;
    }
    [data-halo-nearby-search] .halo-mobile-location-toggle img{
        display:block;width:25px;height:25px;object-fit:contain;
        pointer-events:none;filter:drop-shadow(0 3px 7px rgba(0,0,0,.22));
    }
    [data-halo-nearby-search] .halo-mobile-location-toggle:hover{
        background:rgba(224,161,84,.11);
    }
    [data-halo-nearby-search] .halo-mobile-location-toggle:focus-visible{
        outline:2px solid #e2a457;outline-offset:1px;
    }
    [data-halo-nearby-search] .halo-luxury-search__field--service input{
        padding-right:48px!important;
    }
    [data-halo-nearby-search].is-location-expanded .halo-luxury-search__field--location{
        display:grid!important;position:relative;grid-column:1/-1;
        width:100%;min-width:0;min-height:70px;padding:0 13px!important;
        grid-template-columns:42px minmax(0,1fr)!important;
        align-items:center;gap:7px;margin:0;
    }
    [data-halo-nearby-search].is-location-expanded .halo-luxury-search__field--location .halo-luxury-search__body{
        display:grid!important;min-width:0;width:100%;
    }
    [data-halo-nearby-search].is-location-expanded .halo-luxury-search__field--location input{
        display:block!important;width:100%;min-width:0;
    }
}
/* Short, visible instruction beside the existing mobile location icon.
 * Kept in the service field's label row so the search layout does not grow. */
@media (max-width:760px) {
    [data-halo-nearby-search] .halo-mobile-location-toggle {
        top: -12px;
        right: 2px;
        transform: none;
        width: auto;
        min-width: 44px;
        height: 44px;
        min-height: 44px;
        padding: 0 5px;
        gap: 5px;
        border-radius: 9px;
        background: transparent;
        white-space: nowrap;
        color: #e8b676;
        font: inherit;
    }
    [data-halo-nearby-search] .halo-mobile-location-toggle img {
        width: 19px;
        height: 19px;
        flex: 0 0 19px;
        filter: none;
    }
    [data-halo-nearby-search] .halo-mobile-location-toggle__label {
        display: inline-block;
        font-size: 11px;
        font-weight: 750;
        letter-spacing: .01em;
        line-height: 1.2;
        color: inherit;
    }
}