/* ==========================================================
   JPB FOOD REVIEW - ADMIN VENUES
   ========================================================== */

.venue-summary {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
    margin-bottom:18px;
}

.venue-summary article {
    padding:16px;
    border:1px solid #343d3c;
    border-radius:9px;
    background:linear-gradient(145deg,#1b2020,#101414);
}

.venue-summary span,
.venue-summary small {
    display:block;
    color:#7d8986;
    font-size:9px;
}

.venue-summary strong {
    display:block;
    margin:5px 0;
    color:#eee9d3;
    font:700 24px Georgia,serif;
}

.venue-search {
    padding:17px;
    margin-bottom:14px;
    border:1px solid #343d3c;
    border-radius:9px;
    background:#121717;
}

.venue-search-main {
    display:grid;
    grid-template-columns:minmax(220px,1fr) 180px 180px auto auto;
    gap:8px;
}

.venue-search input,
.venue-search select,
.venue-panel select {
    min-width:0;
    box-sizing:border-box;
    padding:11px 12px;
    border:1px solid #424c4b;
    border-radius:7px;
    background:#090d0d;
    color:#e9e4d3;
}

.venue-search button,
.venue-search a,
.venue-panel button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 14px;
    border:0;
    border-radius:7px;
    background:#d85c25;
    color:#fff;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
}

.venue-search a {
    background:#303738;
}

.venue-message {
    margin:0 0 15px;
    padding:12px 15px;
    border:1px solid #536b60;
    border-radius:7px;
    background:#16241f;
    color:#9fe2bd;
}

.venue-result-count {
    margin:0 0 10px;
    color:#727e7c;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.venue-card {
    margin-bottom:20px;
    overflow:hidden;
    border:1px solid #384140;
    border-radius:11px;
    background:#101515;
    box-shadow:0 12px 30px #0005;
}

.venue-card-head {
    display:flex;
    align-items:center;
    gap:14px;
    padding:17px 19px;
    border-bottom:1px solid #303837;
    background:linear-gradient(#1d2323,#151a1a);
}

.venue-number {
    display:flex;
    align-items:center;
    justify-content:center;
    width:48px;
    height:48px;
    flex:0 0 48px;
    border:2px solid #d85c25;
    border-radius:50%;
    color:#eee7ce;
    background:#111616;
    font:700 15px Georgia,serif;
}

.venue-identity {
    flex:1;
    min-width:0;
}

.venue-identity small {
    color:#d85c25;
    font-size:8px;
    font-weight:900;
    letter-spacing:.14em;
}

.venue-identity h2 {
    margin:3px 0;
    color:#eee9d5;
    font-size:19px;
}

.venue-identity p {
    margin:0;
    color:#808c89;
}

.venue-badges {
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:6px;
}

.venue-badges span {
    padding:5px 8px;
    border-radius:999px;
    background:#303737;
    color:#aaa;
    font-size:8px;
    font-weight:900;
    text-transform:uppercase;
}

.venue-badges .outlet-active,
.venue-badges .verify-verified,
.venue-badges .claimed {
    background:#194c31;
    color:#9de5ba;
}

.venue-badges .outlet-pending,
.venue-badges .verify-pending {
    background:#5e5017;
    color:#f2dc86;
}

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

.venue-panel {
    padding:19px;
    border-right:1px solid #293130;
    border-bottom:1px solid #293130;
}

.venue-panel h3 {
    margin:0 0 13px;
    color:#eee8d2;
    font-size:13px;
}

.venue-subheading {
    margin-top:24px !important;
}

.venue-panel dl {
    margin:0;
}

.venue-panel dl > div {
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:7px 0;
    border-bottom:1px solid #252d2c;
}

.venue-panel dt {
    color:#788582;
}

.venue-panel dd {
    margin:0;
    color:#ddd8c7;
    text-align:right;
    overflow-wrap:anywhere;
}

.venue-stat-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:8px;
}

.venue-stat-grid div {
    padding:11px 6px;
    border:1px solid #303938;
    border-radius:7px;
    text-align:center;
    background:#0c1010;
}

.venue-stat-grid strong {
    display:block;
    color:#e8e2cb;
    font:700 18px Georgia,serif;
}

.venue-stat-grid span {
    color:#71807c;
    font-size:8px;
    text-transform:uppercase;
}

.venue-rating {
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:10px;
    padding:12px;
    border:1px solid #5c5125;
    border-radius:7px;
    background:#211d0e;
}

.venue-rating span {
    color:#a99c69;
}

.venue-rating strong {
    color:#fff0a7;
    font:700 22px Georgia,serif;
}

.venue-commercial-state {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:10px;
}

.venue-commercial-state div,
.owner-state {
    display:flex;
    justify-content:space-between;
    gap:10px;
    padding:10px;
    border:1px solid #303938;
    border-radius:7px;
    background:#0c1010;
}

.venue-commercial-state span,
.owner-state span {
    color:#7c8986;
}

.venue-commercial-state strong,
.owner-state strong {
    color:#e9e3ce;
}

.owner-state {
    margin-bottom:7px;
}

.venue-control-form {
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px;
}

.venue-help {
    color:#788481;
    font-size:10px;
    line-height:1.5;
}

.venue-warning {
    background:#85362b !important;
}

.venue-success {
    background:#217148 !important;
}

.venue-coming {
    display:grid;
    gap:5px;
    margin-top:18px;
    padding:12px;
    border:1px dashed #4d5755;
    border-radius:7px;
    background:#111717;
}

.venue-coming strong {
    color:#d85c25;
}

.venue-coming span {
    color:#798582;
    font-size:10px;
    line-height:1.45;
}

@media(max-width:1000px) {

    .venue-summary {
        grid-template-columns:repeat(3,1fr);
    }

    .venue-search-main {
        grid-template-columns:1fr 1fr;
    }

    .venue-search input {
        grid-column:1/-1;
    }
}

@media(max-width:760px) {

    .venue-summary {
        grid-template-columns:repeat(2,1fr);
    }

    .venue-grid {
        grid-template-columns:1fr;
    }

    .venue-panel {
        border-right:0;
    }

    .venue-card-head {
        flex-wrap:wrap;
        align-items:flex-start;
    }

    .venue-badges {
        width:100%;
        justify-content:flex-start;
    }

    .venue-search-main {
        grid-template-columns:1fr;
    }

    .venue-search input {
        grid-column:auto;
    }

    .venue-stat-grid {
        grid-template-columns:repeat(2,1fr);
    }

    .venue-control-form {
        grid-template-columns:1fr;
    }
}


/* ==========================================================
   VENUE SEARCH-FIRST / SINGLE-RECORD INTERFACE
   ========================================================== */

.venue-lookup h2 {
    margin:0 0 5px;
    color:#eee8d2;
    font-size:17px;
}

.venue-lookup p {
    margin:0 0 13px;
    color:#7d8986;
    font-size:10px;
}

.venue-search-start {
    min-height:250px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:35px;
    border:1px dashed #384342;
    border-radius:12px;
    text-align:center;
    background:#101515;
}

.venue-search-symbol {
    width:64px;
    height:64px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:12px;
    border:2px solid #d85c25;
    border-radius:50%;
    color:#e7dfc6;
    font-size:38px;
}

.venue-search-start h2 {
    margin:3px;
    color:#eee9d5;
}

.venue-search-start p {
    max-width:470px;
    color:#788481;
    line-height:1.5;
}

.venue-results {
    overflow:hidden;
    border:1px solid #384140;
    border-radius:11px;
    background:#101515;
}

.venue-results-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:15px 18px;
    border-bottom:1px solid #303837;
    background:linear-gradient(#1d2323,#151a1a);
}

.venue-results-head h2 {
    margin:0;
    color:#eee9d5;
    font-size:15px;
}

.venue-results-head span {
    color:#788481;
    font-size:9px;
    text-transform:uppercase;
}

.venue-result-row {
    display:grid;
    grid-template-columns:
        46px
        minmax(220px,1fr)
        120px
        130px
        90px
        65px;

    align-items:center;
    gap:10px;

    padding:12px 15px;

    border-bottom:1px solid #252d2c;

    color:inherit;
    text-decoration:none;

    transition:
        background .12s ease;
}

.venue-result-row:hover {
    background:#192020;
}

.venue-result-id {
    display:flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    border:1px solid #d85c25;
    border-radius:50%;
    color:#e8dfc7;
    font-size:10px;
}

.venue-result-main {
    min-width:0;
}

.venue-result-main strong {
    display:block;
    overflow:hidden;
    color:#eee8d4;
    font-size:13px;
    white-space:nowrap;
    text-overflow:ellipsis;
}

.venue-result-main small {
    display:block;
    margin-top:3px;
    overflow:hidden;
    color:#77827f;
    font-size:9px;
    white-space:nowrap;
    text-overflow:ellipsis;
}

.venue-result-status {
    color:#a7afad;
    font-size:9px;
    text-transform:uppercase;
}

.venue-result-owner {
    color:#86d8a6;
    font-size:9px;
    font-weight:700;
    text-transform:uppercase;
}

.venue-result-owner.unclaimed {
    color:#777f7d;
}

.venue-result-open {
    color:#e16a34;
    font-size:9px;
    font-weight:700;
    text-align:right;
}

.venue-no-results {
    padding:45px 20px;
    text-align:center;
}

.venue-no-results strong {
    color:#eee8d4;
}

.venue-no-results p,
.venue-result-limit {
    color:#77827f;
}

.venue-result-limit {
    margin:0;
    padding:12px 15px;
    border-top:1px solid #303837;
    font-size:9px;
}

.venue-single-toolbar {
    margin-bottom:10px;
}

.venue-single-toolbar a {
    display:inline-flex;
    padding:9px 12px;
    border:1px solid #384140;
    border-radius:7px;
    background:#171d1d;
    color:#d7d1c0;
    font-size:10px;
    font-weight:700;
    text-decoration:none;
}

.venue-single-card {
    margin-bottom:0;
}


@media(max-width:900px) {

    .venue-result-row {
        grid-template-columns:
            42px
            minmax(160px,1fr)
            95px
            55px;
    }

    .venue-result-row
    .venue-result-status:nth-of-type(4),
    .venue-result-owner {
        display:none;
    }
}


@media(max-width:600px) {

    .venue-result-row {
        grid-template-columns:
            38px
            minmax(0,1fr)
            52px;

        gap:8px;
    }

    .venue-result-status,
    .venue-result-owner {
        display:none;
    }

    .venue-result-main strong {
        font-size:12px;
    }

    .venue-result-main small {
        white-space:normal;
    }
}


/* ==========================================================
   END VENUE SEARCH-FIRST INTERFACE
   ========================================================== */



/* ==========================================================
   LIVE VENUE SEARCH
   ========================================================== */

.venue-lookup {
    position:relative;
    overflow:visible;
}

.venue-live-results {

    position:absolute;

    z-index:500;

    left:14px;
    right:14px;

    top:calc(100% - 5px);

    max-height:430px;

    overflow-y:auto;

    border:
        1px solid #495352;

    border-radius:
        0 0 10px 10px;

    background:
        #0d1212;

    box-shadow:
        0 16px 35px rgba(0,0,0,.65);
}


.venue-live-results[hidden] {
    display:none;
}


.venue-live-heading {

    position:sticky;

    z-index:2;

    top:0;

    display:flex;

    align-items:center;
    justify-content:space-between;

    padding:
        10px 13px;

    border-bottom:
        1px solid #333c3b;

    background:
        #171d1d;

    color:#8b9693;

    font-size:9px;
}


.venue-live-heading strong {
    color:#eee8d3;
}


.venue-live-row {

    display:grid;

    grid-template-columns:
        38px
        minmax(200px,1fr)
        100px
        60px;

    align-items:center;

    gap:10px;

    min-height:54px;

    padding:
        7px 12px;

    box-sizing:border-box;

    border-bottom:
        1px solid #252d2c;

    color:inherit;

    text-decoration:none;
}


.venue-live-row:hover,
.venue-live-row:focus {

    outline:none;

    background:#1c2423;
}


.venue-live-id {

    width:30px;
    height:30px;

    display:flex;

    align-items:center;
    justify-content:center;

    border:
        1px solid #d85c25;

    border-radius:50%;

    color:#ddd5bc;

    font-size:9px;
}


.venue-live-main {
    min-width:0;
}


.venue-live-main strong {

    display:block;

    overflow:hidden;

    color:#eee9d5;

    font-size:12px;

    white-space:nowrap;
    text-overflow:ellipsis;
}


.venue-live-main small {

    display:block;

    margin-top:3px;

    overflow:hidden;

    color:#778380;

    font-size:9px;

    white-space:nowrap;
    text-overflow:ellipsis;
}


.venue-live-postcode {

    color:#d5c995;

    font-size:10px;

    font-weight:700;

    text-transform:uppercase;
}


.venue-live-open {

    color:#e16a34;

    font-size:9px;

    font-weight:700;

    text-align:right;
}


.venue-live-message {

    display:grid;

    gap:4px;

    padding:20px;

    text-align:center;
}


.venue-live-message strong {
    color:#eee8d3;
}


.venue-live-message span {
    color:#778380;
    font-size:10px;
}


@media(max-width:600px) {

    .venue-live-results {
        left:0;
        right:0;
    }


    .venue-live-row {

        grid-template-columns:
            34px
            minmax(0,1fr)
            54px;
    }


    .venue-live-postcode {
        display:none;
    }


    .venue-live-main small {
        white-space:normal;
    }
}


/* ==========================================================
   END LIVE VENUE SEARCH
   ========================================================== */



/* ==========================================================
   JPB ADMIN VENUES
   ONE-VENUE-PER-ROW LIVE RESULTS
   ========================================================== */

.venue-live-results {
    display:block !important;
    max-height:500px !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
}

.venue-live-results[hidden] {
    display:none !important;
}

.venue-live-heading {
    width:100% !important;
    box-sizing:border-box !important;
}

.venue-live-row {
    display:grid !important;

    width:100% !important;

    grid-template-columns:
        42px
        minmax(0,1fr)
        110px
        65px
        !important;

    align-items:center !important;

    gap:12px !important;

    min-height:58px !important;

    padding:8px 14px !important;

    box-sizing:border-box !important;

    float:none !important;
    clear:both !important;

    border-radius:0 !important;

    border-bottom:
        1px solid #2d3635 !important;
}

.venue-live-row:last-child {
    border-bottom:0 !important;
}

.venue-live-main {
    min-width:0 !important;
}

.venue-live-main strong {
    display:block !important;

    overflow:hidden !important;

    color:#eee8d4 !important;

    font-size:13px !important;

    white-space:nowrap !important;

    text-overflow:ellipsis !important;
}

.venue-live-main small {
    display:block !important;

    margin-top:4px !important;

    overflow:hidden !important;

    color:#7d8986 !important;

    font-size:10px !important;

    white-space:nowrap !important;

    text-overflow:ellipsis !important;
}

.venue-live-postcode {
    display:block !important;

    color:#eadb9b !important;

    font-size:11px !important;

    font-weight:800 !important;

    text-align:right !important;

    white-space:nowrap !important;
}

.venue-live-open {
    display:block !important;

    color:#e16a34 !important;

    text-align:right !important;

    white-space:nowrap !important;
}


@media(max-width:600px) {

    .venue-live-row {
        grid-template-columns:
            36px
            minmax(0,1fr)
            55px
            !important;
    }

    .venue-live-postcode {
        display:none !important;
    }

    .venue-live-main strong,
    .venue-live-main small {
        white-space:normal !important;
    }
}


/* ==========================================================
   END ONE-VENUE-PER-ROW LIVE RESULTS
   ========================================================== */



/* ==========================================================
   JPB ADMIN VENUES
   FINAL SINGLE-COLUMN LIVE SEARCH RESULTS
   ========================================================== */

.venue-live-results {

    display:block !important;

    left:14px !important;
    right:14px !important;

    width:auto !important;

    max-height:520px !important;

    overflow-x:hidden !important;
    overflow-y:auto !important;
}


.venue-live-results[hidden] {
    display:none !important;
}


.venue-live-heading {

    display:flex !important;

    width:100% !important;

    box-sizing:border-box !important;
}


/*
 * Absolutely one venue per line.
 */

.venue-live-row {

    display:grid !important;

    grid-template-columns:
        44px
        minmax(0,1fr)
        105px
        !important;

    width:100% !important;
    max-width:none !important;

    min-height:62px !important;

    margin:0 !important;

    padding:9px 14px !important;

    box-sizing:border-box !important;

    float:none !important;
    clear:both !important;

    position:relative !important;

    align-items:center !important;

    gap:13px !important;

    border:0 !important;

    border-bottom:
        1px solid #2e3736 !important;

    border-radius:0 !important;

    background:
        transparent !important;

    text-decoration:none !important;

    cursor:pointer !important;
}


.venue-live-row:last-child {
    border-bottom:0 !important;
}


.venue-live-row:hover {

    background:
        #202827 !important;
}


.venue-live-row:focus-visible {

    outline:
        2px solid #d85c25 !important;

    outline-offset:
        -2px !important;
}


/*
 * Venue number.
 */

.venue-live-id {

    width:34px !important;
    height:34px !important;

    display:flex !important;

    align-items:center !important;
    justify-content:center !important;

    box-sizing:border-box !important;

    border:
        1px solid #d85c25 !important;

    border-radius:
        50% !important;

    color:#e9dfc4 !important;

    font-size:9px !important;
}


/*
 * Venue name + address.
 */

.venue-live-main {

    display:block !important;

    min-width:0 !important;
}


.venue-live-main strong {

    display:block !important;

    margin:0 !important;

    color:#f0ead5 !important;

    font-size:13px !important;

    line-height:1.25 !important;

    white-space:nowrap !important;

    overflow:hidden !important;

    text-overflow:ellipsis !important;
}


.venue-live-main small {

    display:block !important;

    margin-top:4px !important;

    color:#81908c !important;

    font-size:10px !important;

    line-height:1.25 !important;

    white-space:nowrap !important;

    overflow:hidden !important;

    text-overflow:ellipsis !important;
}


/*
 * Postcode on right.
 */

.venue-live-postcode {

    display:block !important;

    color:#e5d79a !important;

    font-size:11px !important;

    font-weight:800 !important;

    text-align:right !important;

    white-space:nowrap !important;
}


/*
 * Remove all remnants of Open →.
 */

.venue-live-open {

    display:none !important;
}


/*
 * Prevent any older flex/grid rules from turning the
 * results container or links back into multiple columns.
 */

.venue-live-results > a.venue-live-row {

    flex:none !important;

    grid-column:auto !important;

    column-count:auto !important;
}


@media(max-width:600px) {

    .venue-live-results {

        left:0 !important;
        right:0 !important;
    }


    .venue-live-row {

        grid-template-columns:
            38px
            minmax(0,1fr)
            78px
            !important;

        min-height:60px !important;

        padding:
            8px 10px !important;
    }


    .venue-live-main strong {

        white-space:normal !important;
    }


    .venue-live-main small {

        white-space:normal !important;
    }
}


/* ==========================================================
   END FINAL SINGLE-COLUMN LIVE RESULTS
   ========================================================== */

