/* Reusable Loo Review campsite autocomplete. */

.loo-review-campsite-lookup {
    display: grid;
    gap: .4rem;
    max-width: 38rem;
    position: relative;
}

.loo-review-campsite-lookup__label {
    font-size: .9rem;
    font-weight: 750;
}

.loo-review-campsite-lookup__hint,
.loo-review-campsite-lookup__status,
.loo-review-campsite-lookup__missing {
    color: var(--loo-review-colour-muted);
    font-size: .74rem;
    line-height: 1.35;
    margin: 0;
}

.loo-review-campsite-lookup__control {
    position: relative;
}

.loo-review-campsite-lookup__input {
    border: 1px solid var(--loo-review-colour-border);
    border-radius: var(--loo-review-radius-md);
    font: inherit;
    min-height: 2.7rem;
    padding: .62rem .72rem;
    width: 100%;
}

.loo-review-campsite-lookup__input:focus {
    border-color: var(--loo-review-colour-primary);
    box-shadow: 0 0 0 3px var(--loo-review-colour-primary-soft);
    outline: 0;
}

.loo-review-campsite-lookup__results {
    background: var(--loo-review-colour-surface);
    border: 1px solid var(--loo-review-colour-border);
    border-radius: var(--loo-review-radius-md);
    box-shadow: var(--loo-review-shadow-md);
    left: 0;
    max-height: 19rem;
    overflow-y: auto;
    position: absolute;
    right: 0;
    top: calc(100% + .25rem);
    z-index: 30;
}

.loo-review-campsite-lookup__result {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--loo-review-colour-border);
    cursor: pointer;
    display: grid;
    gap: .12rem;
    padding: .62rem .72rem;
    text-align: left;
    width: 100%;
}

.loo-review-campsite-lookup__result:last-child {
    border-bottom: 0;
}

.loo-review-campsite-lookup__result:hover,
.loo-review-campsite-lookup__result:focus {
    background: var(--loo-review-colour-surface-soft);
    outline: 0;
}

.loo-review-campsite-lookup__result-title {
    color: var(--loo-review-colour-ink);
    font-size: .82rem;
    font-weight: 750;
}

.loo-review-campsite-lookup__result-location {
    color: var(--loo-review-colour-muted);
    font-size: .7rem;
}

.loo-review-campsite-lookup__empty {
    color: var(--loo-review-colour-muted);
    font-size: .76rem;
    padding: .72rem;
}


.loo-review-campsite-lookup__suggest-button {
    background: none;
    border: 0;
    color: var(--loo-review-colour-primary-strong);
    cursor: pointer;
    font: inherit;
    font-size: .74rem;
    font-weight: 750;
    padding: 0;
    text-decoration: underline;
}

.loo-review-campsite-suggestion {
    background: var(--loo-review-colour-surface-soft);
    border: 1px solid var(--loo-review-colour-border);
    border-radius: var(--loo-review-radius-md);
    display: grid;
    gap: .55rem;
    margin-top: .55rem;
    padding: .75rem;
}

.loo-review-campsite-suggestion[hidden] {
    display: none !important;
}

.loo-review-campsite-suggestion label {
    display: grid;
    gap: .2rem;
    font-size: .74rem;
    font-weight: 700;
}

.loo-review-campsite-suggestion input {
    border: 1px solid var(--loo-review-colour-border);
    border-radius: var(--loo-review-radius-md);
    font: inherit;
    min-height: 2.4rem;
    padding: .45rem .55rem;
}

.loo-review-campsite-suggestion__intro,
.loo-review-campsite-suggestion__error {
    font-size: .72rem;
    line-height: 1.4;
    margin: 0;
}

.loo-review-campsite-suggestion__error {
    font-weight: 700;
}


.loo-review-campsite-lookup__expanded[hidden],
.loo-review-campsite-lookup__summary[hidden] {
    display: none !important;
}

.loo-review-campsite-lookup__summary {
    align-items: center;
    background: var(--loo-review-colour-surface-soft);
    border: 1px solid var(--loo-review-colour-border);
    border-radius: var(--loo-review-radius-md);
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    padding: .7rem .8rem;
}

.loo-review-campsite-lookup__summary > div {
    display: grid;
    gap: .1rem;
}

.loo-review-campsite-lookup__summary strong {
    color: var(--loo-review-colour-ink);
    font-size: .82rem;
}

.loo-review-campsite-lookup__summary span {
    color: var(--loo-review-colour-muted);
    font-size: .7rem;
}

.loo-review-campsite-lookup__change {
    background: none;
    border: 0;
    color: var(--loo-review-colour-primary-strong);
    cursor: pointer;
    font: inherit;
    font-size: .72rem;
    font-weight: 750;
    padding: .25rem;
    text-decoration: underline;
}

.loo-review-campsite-suggestion__required-note {
    color: var(--loo-review-colour-muted);
    font-size: .68rem;
    margin: -.15rem 0 .1rem;
}


/* v0.9.0g.1 — protect lookup/suggestion UI from theme form widths. */
.loo-review-campsite-lookup,
.loo-review-campsite-lookup__expanded,
.loo-review-campsite-suggestion {
    min-width: 0;
    width: 100%;
}

.loo-review-campsite-suggestion input,
.loo-review-campsite-lookup__input {
    box-sizing: border-box;
    max-width: 100%;
    min-width: 0;
}

@media (max-width: 480px) {
    .loo-review-campsite-lookup__summary {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* v0.9.0g.1.1 — keep no-result guidance directly under the search control. */
.loo-review-campsite-lookup__status:empty {
    display: none;
}

.loo-review-campsite-lookup__status:not(:empty) + .loo-review-campsite-lookup__missing {
    margin-top: .1rem;
}
