/**
 * Agency (listing) detail page — single-listing.php.
 * Added 2026-08-18, from the approved Artifact mockup.
 * Enqueued only on single listing pages (admin/geocraft_functions.php,
 * on wp_enqueue_scripts so is_singular() actually resolves).
 * Uses the --dt-* tokens from css/desert-tokens.css.
 *
 * Everything here is scoped under .listing-page so it can't leak into
 * the other templates that reuse the theme's generic class names
 * (.featured_content, .article_detail, .social_icon...).
 */

.listing-page{
    padding-top:0 !important;
}

/* ---------- hero ---------- */
.listing-page .lst-hero{
    position:relative;
    background:var(--dt-ink-950);
    margin-bottom:0;
}
.listing-page .lst-hero-img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    max-width:none;
    object-fit:cover;
    opacity:.62;
}
.listing-page .lst-hero::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(27,18,12,.25) 0%,rgba(27,18,12,.82) 72%,rgba(27,18,12,.96) 100%);
}
.listing-page .lst-hero-inner{
    position:relative;
    z-index:2;
    max-width:1180px;
    margin:0 auto;
    padding:clamp(52px,10vw,120px) clamp(18px,4vw,44px) clamp(24px,4vw,36px);
}
.listing-page .lst-badges{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:14px;
}
.listing-page .lst-badge{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-family:'Archivo',sans-serif;
    font-size:11px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    padding:5px 11px;
    border-radius:20px;
}
.listing-page .lst-badge svg{width:12px;height:12px;}
.listing-page .lst-badge-city{background:rgba(248,240,223,.14);color:var(--dt-cream);}
.listing-page .lst-badge-premium{background:var(--dt-gold);color:var(--dt-ink-950);}
.listing-page .lst-hero-inner h1.title{
    font-family:'Fraunces',Georgia,serif;
    font-weight:650;
    font-size:clamp(28px,5vw,50px);
    line-height:1.04;
    color:#fff;
    margin:0;
    padding:0;
    border:none;
    text-transform:capitalize;
    letter-spacing:-.01em;
    text-wrap:balance;
}
.listing-page .lst-hero-sub{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 20px;
    margin-top:14px;
    color:var(--dt-cream-dim);
    font-family:'Archivo',sans-serif;
    font-size:14.5px;
}
.listing-page .lst-hero-sub .lst-item{display:flex;align-items:center;gap:7px;}
.listing-page .lst-hero-sub svg{width:15px;height:15px;color:var(--dt-terracotta-hi);flex:none;}
/* The theme's rating widget, recoloured for the dark hero. */
.listing-page .lst-hero-sub .article_rating{margin:0;display:flex;align-items:center;gap:8px;}
.listing-page .lst-hero-sub .article_rating label.rating{
    color:var(--dt-cream-dim);
    font-family:'Archivo',sans-serif;
    font-size:14.5px;
    font-weight:400;
    margin:0;
}
.listing-page .lst-hero-sub .single_rating{margin:0;padding:0;list-style:none;display:flex;}

/* ---------- body layout ---------- */
.listing-page .lst-body{
    max-width:1180px;
    margin:0 auto;
    padding:clamp(30px,5vw,52px) clamp(18px,4vw,44px) 80px;
    display:grid;
    grid-template-columns:minmax(0,1fr) 348px;
    gap:clamp(26px,4vw,54px);
    align-items:start;
}
.listing-page .lst-section{margin-bottom:38px;}
.listing-page .lst-section:last-child{margin-bottom:0;}
.listing-page .lst-eyebrow{
    display:block;
    font-family:'Archivo',sans-serif;
    font-size:11.5px;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--dt-terracotta);
    margin-bottom:9px;
}
.listing-page .lst-section > h2{
    font-family:'Fraunces',Georgia,serif;
    font-weight:650;
    font-size:clamp(21px,2.6vw,26px);
    margin:0 0 14px;
    color:var(--dt-ink-950);
}
.listing-page .lst-prose p{margin:0 0 14px;max-width:66ch;color:var(--dt-ink-800);}
.listing-page .lst-prose img{max-width:100%;height:auto;border-radius:var(--dt-radius);}

/* ---------- gallery (existing flexslider markup) ---------- */
.listing-page .article_slider{margin:0;}
.listing-page .article_slider .flexslider{
    width:100%;
    margin:0;
    padding:0;
    border:none;
    background:var(--dt-ink-800);
    border-radius:var(--dt-radius);
    overflow:hidden;
    box-shadow:none;
}
.listing-page .article_slider .flexslider .slides img{
    width:100%;
    height:clamp(260px,42vw,460px);
    max-width:none;
    object-fit:cover;
}

/* ---------- agency details (existing table markup, restyled) ---------- */
.listing-page .tbl_des{overflow-x:auto;}
.listing-page table.ar_desc{
    width:100%;
    border-collapse:collapse;
    background:none;
    border:none;
    margin:0;
}
.listing-page table.ar_desc tr{
    border-bottom:1px solid var(--dt-paper-line);
}
.listing-page table.ar_desc tr:first-child{
    border-top:1px solid var(--dt-paper-line);
}
.listing-page table.ar_desc td{
    padding:13px 0;
    border:none;
    background:none;
    vertical-align:top;
    font-family:'Archivo',sans-serif;
    font-size:14.5px;
    font-weight:600;
    color:var(--dt-ink-950);
    word-break:break-word;
}
.listing-page table.ar_desc td.label{
    width:200px;
    color:var(--dt-ink-800);
    opacity:.72;
    padding-right:16px;
}
.listing-page table.ar_desc td a{
    color:var(--dt-terracotta-deep,#8C3E1B);
    text-decoration:none;
}
.listing-page table.ar_desc td a:hover{text-decoration:underline;}
.listing-page table.ar_desc td img{max-width:100%;height:auto;}
.listing-page table.ar_desc .social_icon{
    margin:0;
    padding:0;
    list-style:none;
    display:flex;
    gap:8px;
}
.listing-page table.ar_desc .social_icon li{margin:0;padding:0;}

/* ---------- reviews / comments ---------- */
.listing-page .lst-reviews .reviews{
    display:flex;
    align-items:center;
    gap:8px;
    font-family:'Archivo',sans-serif;
    font-size:14px;
    color:var(--dt-ink-800);
    margin-bottom:14px;
}

/* ---------- related ---------- */
.listing-page .related_item h2{
    font-family:'Fraunces',Georgia,serif;
    font-size:clamp(21px,2.6vw,26px);
    margin:0 0 14px;
}
.listing-page .related_item .slides{list-style:none;margin:0;padding:0;}
.listing-page .related_item .slides > li{display:flex;flex-wrap:wrap;gap:18px;}
.listing-page .related_item .related{
    float:none;
    width:auto;
    flex:1 1 180px;
    margin:0;
}
.listing-page .related_item .f_thumb{width:100%;height:auto;border-radius:var(--dt-radius);}

/* ---------- right rail ---------- */
.listing-page .lst-rail{
    position:sticky;
    top:18px;
    display:flex;
    flex-direction:column;
    gap:14px;
}
.listing-page .lst-card{
    background:var(--dt-paper-hi);
    border:1px solid var(--dt-paper-line);
    border-radius:var(--dt-radius);
    padding:20px;
}
.listing-page .lst-card-quote{
    background:var(--dt-ink-950);
    border-color:var(--dt-ink-950);
    color:var(--dt-cream);
    box-shadow:var(--dt-shadow);
}
.listing-page .lst-card-quote .lst-eyebrow{color:var(--dt-terracotta-hi);margin-bottom:8px;}
.listing-page .lst-card-quote h3{
    font-family:'Fraunces',Georgia,serif;
    font-weight:650;
    color:#fff;
    font-size:20px;
    line-height:1.2;
    margin:0 0 8px;
}
.listing-page .lst-card-quote p{
    margin:0 0 16px;
    font-family:'Archivo',sans-serif;
    font-size:13.5px;
    color:var(--dt-cream-dim);
}
.listing-page .lst-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    width:100%;
    box-sizing:border-box;
    text-decoration:none;
    font-family:'Archivo',sans-serif;
    font-weight:700;
    font-size:14.5px;
    padding:14px 16px;
    border-radius:var(--dt-radius);
    border:1.5px solid transparent;
    cursor:pointer;
    transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.listing-page .lst-btn svg{width:17px;height:17px;flex:none;}
.listing-page .lst-btn-primary{background:var(--dt-terracotta);color:var(--dt-paper-hi);}
.listing-page .lst-btn-primary:hover{background:var(--dt-terracotta-hi);color:var(--dt-paper-hi);}
.listing-page .lst-btn-dark{background:transparent;border-color:var(--dt-ink-line);color:var(--dt-cream);margin-top:9px;}
.listing-page .lst-btn-dark:hover{border-color:var(--dt-terracotta-hi);color:var(--dt-terracotta-hi);}
.listing-page .lst-btn-outline{background:transparent;border-color:var(--dt-paper-line);color:var(--dt-ink-950);}
.listing-page .lst-btn-outline:hover{border-color:var(--dt-terracotta);color:var(--dt-terracotta-deep,#8C3E1B);}
.listing-page .lst-note{
    display:flex;
    gap:8px;
    margin:13px 0 0;
    font-family:'Archivo',sans-serif;
    font-size:11.5px;
    color:var(--dt-cream-dim);
    line-height:1.45;
}
.listing-page .lst-note svg{width:13px;height:13px;color:var(--dt-terracotta-hi);flex:none;margin-top:2px;}
.listing-page .lst-card h4{
    font-family:'Archivo',sans-serif;
    font-size:11.5px;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--dt-ink-800);
    opacity:.7;
    margin:0 0 13px;
    padding-bottom:9px;
    border-bottom:2px solid var(--dt-gold);
}
.listing-page .lst-actions{display:flex;flex-direction:column;gap:9px;}
.listing-page .lst-mini{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:11px;
    align-items:start;
    padding:9px 0;
    border-bottom:1px solid var(--dt-paper-line);
    font-family:'Archivo',sans-serif;
}
.listing-page .lst-mini:last-child{border-bottom:none;}
.listing-page .lst-mini svg{width:15px;height:15px;color:var(--dt-terracotta);margin-top:3px;}
.listing-page .lst-mini .k{
    display:block;
    font-size:10.5px;
    letter-spacing:.07em;
    text-transform:uppercase;
    color:var(--dt-ink-800);
    opacity:.62;
    font-weight:700;
}
.listing-page .lst-mini .v{display:block;font-size:13.5px;font-weight:600;word-break:break-word;}

/* Existing inquiry form (#inquiry_form, printed by save_inquiry()) —
   restyled in place; its markup and POST handling are untouched. */
.listing-page #inquiry_form{
    width:auto;
    background:none;
    border:none;
    padding:0;
    margin:0;
    overflow:visible;
}
.listing-page #inquiry_form .inquiry_form_title{
    display:none;
}
.listing-page #inquiry_form input[type="text"],
.listing-page #inquiry_form input[type="email"],
.listing-page #inquiry_form textarea{
    width:100%;
    box-sizing:border-box;
    height:44px;
    padding:0 13px;
    margin-bottom:10px;
    border:1.5px solid var(--dt-paper-line);
    border-radius:var(--dt-radius);
    background:var(--dt-paper);
    font-family:'Archivo',sans-serif;
    font-size:14.5px;
    color:var(--dt-ink-950);
}
.listing-page #inquiry_form textarea{height:120px;padding:11px 13px;resize:vertical;}
.listing-page #inquiry_form input:focus,
.listing-page #inquiry_form textarea:focus{
    outline:2.5px solid var(--dt-zellige);
    outline-offset:1px;
    border-color:var(--dt-zellige);
}
.listing-page #inquiry_form input[type="submit"]{
    width:100%;
    background:var(--dt-terracotta);
    border:none;
    border-radius:var(--dt-radius);
    color:var(--dt-paper-hi);
    font-family:'Archivo',sans-serif;
    font-weight:700;
    font-size:14.5px;
    padding:14px 16px;
    cursor:pointer;
    text-indent:0;
    height:auto;
}
.listing-page #inquiry_form input[type="submit"]:hover{background:var(--dt-terracotta-hi);}

/* Sidebar widgets configured in admin still render, below the cards. */
.listing-page .lst-rail .sidebar{margin:0;width:auto;}

/* ---------- mobile ---------- */
.listing-page .lst-mobile-bar{display:none;}

@media only screen and (max-width:940px){
    .listing-page .lst-body{grid-template-columns:1fr;}
    .listing-page .lst-rail{position:static;}
}
@media only screen and (max-width:620px){
    .listing-page table.ar_desc td.label{width:130px;}
    .listing-page .lst-body{padding-bottom:104px;}
    .listing-page .lst-mobile-bar{
        display:flex;
        gap:9px;
        position:fixed;
        left:0;right:0;bottom:0;
        z-index:60;
        background:var(--dt-paper-hi);
        border-top:1px solid var(--dt-paper-line);
        padding:10px 14px;
        box-shadow:0 -8px 24px -14px rgba(15,9,4,.4);
    }
    .listing-page .lst-mobile-bar .lst-btn{padding:13px 10px;font-size:13.5px;}
    .listing-page .lst-mobile-bar .lst-btn-icon{flex:0 0 52px;}
}
