/*
 Theme Name:   Jail Directory (GeneratePress)
 Template:     generatepress
 Description:  GeneratePress child theme for US County Jail Directory — county guide design, verified-data UI, zero-bloat styling. Parent: GeneratePress.
 Version:      2.4.11
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root{
  --jd-ink:#1c2733;
  --jd-ink-soft:#4b5c6b;
  --jd-paper:#f7f6f2;
  --jd-card:#ffffff;
  --jd-line:#dfe3e8;
  --jd-accent:#1256a0;
  --jd-accent-dark:#0d447f;
  --jd-verified:#1d7a46;
  --jd-warn-bg:#fdf3e3;
  --jd-warn-line:#e5b567;
}
body{font-family:"Public Sans",-apple-system,"Segoe UI",sans-serif;background:#fff}
h1.jd-title,h2.jd-h2,h1,h2,h3{font-family:"Source Serif 4",Georgia,serif}
/* Our header/footer load on every page — keep GP's own bars out of the way */
body .site-header,body .site-footer,body #masthead{display:none!important}

/* ==========================================================================
   Site header (header.php)
   ========================================================================== */
.jd-site-header{background:var(--jd-card);border-bottom:1px solid var(--jd-line);position:sticky;top:0;z-index:100}
.jd-header-inner{max-width:1080px;margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;flex-wrap:wrap}
.jd-brand{font-family:"Source Serif 4",Georgia,serif;font-size:20px;font-weight:700;color:var(--jd-ink);text-decoration:none;letter-spacing:-.01em;white-space:nowrap}
.jd-brand:hover{color:var(--jd-accent)}
.jd-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:2px}
.jd-nav li{margin:0}
.jd-nav a{display:block;padding:20px 12px;font-size:14px;font-weight:600;color:var(--jd-ink-soft);text-decoration:none;border-bottom:3px solid transparent;transition:color .15s ease,border-color .15s ease}
.jd-nav a:hover{color:var(--jd-accent);border-bottom-color:var(--jd-accent)}
.jd-nav .current-menu-item>a,.jd-nav .current_page_item>a{color:var(--jd-accent);border-bottom-color:var(--jd-accent)}
@media(max-width:768px){
  .jd-header-inner{justify-content:center;padding:10px 20px;text-align:center}
  .jd-nav ul{justify-content:center}
  .jd-nav a{padding:8px 10px;border-bottom-width:2px}
}

/* ==========================================================================
   Site footer (footer.php)
   ========================================================================== */
.jd-site-footer{background:var(--jd-ink);color:#c6d2dd;margin-top:0}
.jd-footer-inner{max-width:1080px;margin:0 auto;padding:48px 20px 32px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:36px}
.jd-footer-col h2{font-size:20px;color:#fff;margin:0 0 12px}
.jd-footer-col h3{font-size:14px;color:#fff;margin:0 0 12px;letter-spacing:.06em;text-transform:uppercase}
.jd-footer-col p{font-size:13.5px;line-height:1.65;color:#9fb0bf;max-width:44ch;margin:0}
.jd-footer-col ul{list-style:none;margin:0;padding:0}
.jd-footer-col li{margin:0 0 8px}
.jd-footer-col a{color:#c6d2dd;text-decoration:none;font-size:14px}
.jd-footer-col a:hover{color:#fff;text-decoration:underline}
.jd-footer-bottom{border-top:1px solid #2c3b4a;max-width:1080px;margin:0 auto;padding:20px;text-align:center}
.jd-footer-notice{font-size:12.5px;line-height:1.6;color:#9fb0bf;max-width:78ch;margin:0 auto 10px}
.jd-footer-notice strong{color:#e8edf2}
.jd-footer-copy{font-size:12.5px;color:#7d8fa0;margin:0}
@media(max-width:768px){.jd-footer-inner{grid-template-columns:1fr;gap:24px;padding:36px 20px 24px}}


/* ==========================================================================
   Layout helpers (GeneratePress-safe)
   ========================================================================== */
.jd-wrap{max-width:860px;margin:0 auto;padding:0 20px}
.jd-home-wrap{max-width:1080px;margin:0 auto;padding:0 20px}

/* ==========================================================================
   Single county guide (single-jail.php)
   ========================================================================== */
.jd-crumbs{background:var(--jd-card);border-bottom:1px solid var(--jd-line);font-size:13.5px;padding:10px 0}
.jd-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;max-width:860px;margin:0 auto;padding:0 20px}
.jd-crumbs li+li::before{content:"›";margin-right:6px;color:var(--jd-ink-soft)}
.jd-crumbs a{text-decoration:none;color:var(--jd-ink-soft)}
.jd-crumbs a:hover{color:var(--jd-accent)}
.jd-crumbs [aria-current]{color:var(--jd-ink-soft)}

.jd-hero{padding:40px 0 24px;border-bottom:1px solid var(--jd-line)}
.jd-kicker{font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--jd-accent);margin-bottom:10px}
h1.jd-title{font-size:clamp(26px,4.6vw,38px);font-weight:700;line-height:1.2;letter-spacing:-.01em;margin:0}
.jd-lede{margin-top:12px;max-width:62ch;color:var(--jd-ink-soft);font-size:16.5px;line-height:1.65}
.jd-meta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;font-size:13px;color:var(--jd-ink-soft);align-items:center}
.jd-verified-badge{display:inline-flex;align-items:center;gap:6px;background:#e8f4ec;color:var(--jd-verified);border:1px solid #bfe0c9;font-weight:600;padding:4px 10px;border-radius:999px}

.jd-main{padding:8px 0 48px}
.jd-section{padding:30px 0 6px}
h2.jd-h2{font-size:23px;font-weight:700;margin-bottom:14px;padding-bottom:8px;border-bottom:2px solid var(--jd-ink)}
h3.jd-h3{font-size:16.5px;font-weight:700;margin:18px 0 8px}
.jd-main p{margin-bottom:12px;max-width:68ch}
.jd-main ul,.jd-main ol{margin:0 0 12px 22px}
.jd-main li{margin-bottom:6px}

.jd-portal{background:#eaf2fb;border:1px solid #bcd4ef;border-left:5px solid var(--jd-accent);border-radius:8px;padding:20px;margin:6px 0 4px}
.jd-portal-title{display:block;font-size:16px;color:var(--jd-accent-dark);margin-bottom:6px;font-weight:700}
.jd-portal p{color:var(--jd-ink-soft);margin-bottom:14px}
a.jd-btn{display:inline-flex;align-items:center;gap:8px;background:var(--jd-accent);color:#fff;font-weight:700;font-size:15.5px;padding:13px 22px;border-radius:6px;text-decoration:none;border:2px solid var(--jd-accent);transition:background .15s ease}
a.jd-btn:hover{background:var(--jd-accent-dark);border-color:var(--jd-accent-dark);color:#fff}
a.jd-btn:active{transform:translateY(1px)}
.jd-alt-link{display:inline-block;margin-left:14px;font-size:14px}

.jd-main table{width:100%;border-collapse:collapse;background:var(--jd-card);margin:6px 0;font-size:15px}
.jd-main caption{text-align:left;font-weight:700;padding:10px 12px;background:var(--jd-ink);color:#fff;font-size:13.5px;letter-spacing:.04em;text-transform:uppercase}
.jd-main th,.jd-main td{border:1px solid var(--jd-line);padding:11px 13px;text-align:left;vertical-align:top}
.jd-main tbody th{width:34%;font-weight:600;color:var(--jd-ink-soft);background:#f2f4f6}
.jd-main td strong{font-size:16px}

.jd-addr{background:#f4f3ee;border:1px solid var(--jd-line);border-left:4px solid var(--jd-ink);border-radius:6px;padding:16px 18px;margin:10px 0;white-space:pre-line;line-height:1.7}
.jd-note{font-size:13.5px;color:var(--jd-ink-soft);background:var(--jd-warn-bg);border:1px solid var(--jd-warn-line);border-radius:6px;padding:10px 14px;margin:8px 0}

.jd-main details{background:var(--jd-card);border:1px solid var(--jd-line);border-radius:6px;margin-bottom:10px}
.jd-main details[open]{border-color:var(--jd-accent)}
.jd-main summary{cursor:pointer;list-style:none;font-weight:600;padding:14px 44px 14px 16px;position:relative;font-size:15.5px}
.jd-main summary::-webkit-details-marker{display:none}
.jd-main summary::after{content:"+";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:400;color:var(--jd-accent);transition:transform .15s ease}
.jd-main details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.jd-main details .jd-ans{padding:0 16px 14px;color:var(--jd-ink-soft)}

.jd-disclaimer{background:var(--jd-ink);color:#c6d2dd;border-radius:8px;padding:18px 20px;margin:34px 0 0;font-size:13.5px;line-height:1.6}
.jd-disclaimer strong{color:#fff}

.jd-related{background:var(--jd-card);border:1px solid var(--jd-line);border-radius:8px;padding:20px;margin-top:14px}
.jd-chips{display:flex;flex-wrap:wrap;gap:8px}
.jd-chips a{display:inline-block;border:1px solid var(--jd-line);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:600;text-decoration:none;color:var(--jd-ink);background:#fff;transition:border-color .15s ease,background .15s ease}
.jd-chips a:hover{border-color:var(--jd-accent);background:#eaf2fb;color:var(--jd-accent-dark)}

.jd-main a:focus-visible,.jd-main summary:focus-visible{outline:3px solid var(--jd-accent);outline-offset:2px;border-radius:3px}

.jd-sticky-cta{display:none}
@media(max-width:640px){
  .jd-sticky-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:999;background:var(--jd-card);border-top:1px solid var(--jd-line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -4px 14px rgba(20,35,50,.12)}
  .jd-sticky-cta .jd-btn{width:100%;justify-content:center}
  body.single-jail{padding-bottom:76px}
}
@media(prefers-reduced-motion:reduce){.jd-main *{transition:none!important}}

/* ==========================================================================
   Homepage (front-page.php)
   ========================================================================== */
/* Full-bleed hero: escape GeneratePress's boxed container */
.jd-home-hero{background:var(--jd-ink);color:#e8edf2;padding:56px 0 48px}
.jd-home-hero .jd-kicker{color:#7fb3e8}
.jd-home-hero .jd-title{color:#fff;font-size:clamp(30px,5vw,44px)}
.jd-home-hero .jd-lede{color:#b9c6d2;margin-top:14px}
.jd-search{display:flex;gap:8px;margin-top:24px;max-width:640px}
.jd-search input[type=search]{flex:1;padding:13px 16px;border:2px solid #3a4a5a;border-radius:6px;font-size:15.5px;background:#fff;color:var(--jd-ink);min-width:0}
.jd-search .jd-btn{border:none;cursor:pointer}
.jd-trust-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;font-size:13px;color:#b9c6d2;align-items:center}

.jd-count{background:var(--jd-accent);color:#fff;font-size:11.5px;font-weight:700;border-radius:999px;padding:1px 8px}
.jd-state-grid a{display:inline-flex;align-items:center;gap:7px}
.jd-how-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.jd-how-card{background:var(--jd-card);border:1px solid var(--jd-line);border-radius:8px;padding:18px}
.jd-how-card h3{font-size:16px;margin-bottom:6px}
.jd-how-card p{font-size:14.5px;color:var(--jd-ink-soft);margin:0}
.jd-recent{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.jd-recent-item{display:block;background:var(--jd-card);border:1px solid var(--jd-line);border-radius:8px;padding:16px 18px;text-decoration:none;color:var(--jd-ink);transition:border-color .15s ease}
.jd-recent-item:hover{border-color:var(--jd-accent)}
.jd-recent-item strong{display:block;font-size:15px;margin-bottom:4px}
.jd-recent-item span{font-size:12.5px;color:var(--jd-ink-soft)}
@media(max-width:640px){.jd-search{flex-direction:column}}

/* County grid (archive pages) */
.jd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:18px}

/* ==========================================================================
   GeneratePress integration fixes
   ========================================================================== */
/* Our templates render their own title — hide GP's auto entry header */
body.single-jail .entry-header,
body.home .entry-header,
body.post-type-archive-jail .entry-header,
body.tax-state .entry-header{display:none}
/* Tighten GP padding around our template on special pages */
body.home .site-main,
body.single-jail .site-main,
body.post-type-archive-jail .site-main,
body.tax-state .site-main{margin:0}
body.home .site-content{padding-top:0}
/* Footer: drop stray empty bullets */
.site-footer li:empty{display:none}
.site-footer ul.menu{list-style:none;padding:0;margin:0}
.site-footer ul.menu li{margin:5px 0}

/* ==========================================================================
   v2.1 — neutralize GeneratePress grid + sidebar on our pages
   ========================================================================== */
/* GP lays the site out as a grid (content | sidebar). Our templates render
   their own full-width sections, so on these pages we flatten the grid,
   kill the reserved sidebar column and let the container go full-width —
   no Customizer setting needed. */
body.home .site,body.single-jail .site,body.post-type-archive-jail .site,body.tax-state .site{display:block}
body.home .site-content,body.single-jail .site-content,body.post-type-archive-jail .site-content,body.tax-state .site-content{display:block;width:100%;max-width:100%;padding:0;margin:0}
body.home .site-main,body.single-jail .site-main,body.post-type-archive-jail .site-main,body.tax-state .site-main{display:block;width:100%;max-width:100%;margin:0;padding:0}
body.home #right-sidebar,body.single-jail #right-sidebar,body.post-type-archive-jail #right-sidebar,body.tax-state #right-sidebar,
body.home .widget-area,body.single-jail .widget-area,body.post-type-archive-jail .widget-area,body.tax-state .widget-area{display:none!important}
body.home .site-content .entry-content,body.single-jail .site-content .entry-content,body.post-type-archive-jail .site-content .entry-content,body.tax-state .site-content .entry-content{max-width:100%;margin:0;padding:0}
/* GP container adds boxed padding — remove on our pages */
body.home .gb-container,body.single-jail .gb-container{padding-left:0;padding-right:0}


/* ==========================================================================
   v2.3 — Static page template (page.php) + mobile nav
   ========================================================================== */

/* --- Page hero ------------------------------------------------------------ */
.jd-page-hero{border-bottom:1px solid var(--jd-line);padding:40px 0 24px;}
.jd-page-hero-inner{max-width:720px;margin:0 auto;padding:0 24px;}
.jd-breadcrumb{font-size:12.5px;font-weight:600;color:var(--jd-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:14px;}
.jd-breadcrumb a{color:var(--jd-muted);text-decoration:none;}
.jd-breadcrumb a:hover{color:var(--jd-accent);}
.jd-breadcrumb .jd-sep{margin:0 6px;color:var(--jd-line);}
.jd-kicker{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--jd-accent);margin:0 0 8px;}
h1.jd-page-title{font-family:'Source Serif 4',Georgia,serif;font-size:clamp(30px,4.4vw,44px);line-height:1.12;margin:0 0 12px;color:var(--jd-ink);}
.jd-page-lead{font-size:18px;line-height:1.55;color:var(--jd-muted);margin:0;max-width:640px;}

/* --- Page body ------------------------------------------------------------ */
.jd-page-body{max-width:720px;margin:0 auto;padding:32px 24px 56px;font-size:16.5px;line-height:1.7;color:#2b3947;}
.jd-page-body > *:first-child{margin-top:0;}
.jd-page-body h2{font-family:'Source Serif 4',Georgia,serif;font-size:27px;line-height:1.25;margin:36px 0 14px;color:var(--jd-ink);}
.jd-page-body h3{font-family:'Source Serif 4',Georgia,serif;font-size:20px;margin:26px 0 10px;color:var(--jd-ink);}
.jd-page-body p{margin:0 0 16px;}
.jd-page-body ul,.jd-page-body ol{margin:0 0 18px;padding-left:24px;}
.jd-page-body li{margin:0 0 8px;}
.jd-page-body a{color:var(--jd-accent);}
.jd-page-body a:hover{text-decoration:underline;}
.jd-page-body strong{color:var(--jd-ink);}
.jd-page-body .jd-disclaimer{margin-top:36px;}

/* Front page keeps its own wide layout — don't constrain it */
body.home .site-content{display:block;}

/* --- Mobile nav (below 860px) --------------------------------------------- */
@media (max-width:860px){
  .jd-nav-toggle{display:inline-flex;align-items:center;gap:8px;background:none;border:1px solid var(--jd-line);border-radius:6px;font-family:inherit;font-size:14px;font-weight:600;color:var(--jd-ink);padding:8px 14px;cursor:pointer;}
  .jd-nav-toggle::after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--jd-ink);}
  .jd-nav{display:none;width:100%;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--jd-line);box-shadow:0 12px 24px rgba(16,24,40,.08);z-index:60;}
  .jd-nav.is-open{display:block;}
  .jd-nav ul{flex-direction:column;gap:0;max-width:1080px;margin:0 auto;padding:8px 24px 16px;}
  .jd-nav li{width:100%;}
  .jd-nav a{display:block;padding:12px 4px;border-bottom:1px solid var(--jd-line);}
  .jd-nav li:last-child a{border-bottom:0;}
}
@media (min-width:861px){
  .jd-nav-toggle{display:none;}
}


/* ==========================================================================
   v2.4 — Pagination on state archives + auto county list in pillar pages
   ========================================================================== */
.jd-pagination{margin:28px 0 8px;}
.jd-pagination ul{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0;}
.jd-pagination li{margin:0;}
.jd-pagination a,.jd-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border:1px solid var(--jd-line);border-radius:6px;font-size:14px;font-weight:600;color:var(--jd-ink);text-decoration:none;background:#fff;transition:border-color .15s,color .15s;}
.jd-pagination a:hover{border-color:var(--jd-accent);color:var(--jd-accent);}
.jd-pagination .current{border-color:var(--jd-accent);background:var(--jd-accent);color:#fff;}
.jd-pagination .dots{border-color:transparent;background:transparent;}

/* v2.4.9: render the pillar-page county list as cards, matching the
   homepage "Recently Added" grid, instead of a plain two-column link list. */
.jd-state-counties{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;}
.jd-state-counties li{margin:0;break-inside:auto;}
.jd-state-counties a{display:block;background:#fff;border:1px solid var(--jd-border,#dde4ea);border-radius:10px;padding:14px 16px;font-size:15px;font-weight:600;color:var(--jd-accent);text-decoration:none;line-height:1.35;transition:border-color .15s,box-shadow .15s;}
.jd-state-counties a:hover{border-color:var(--jd-accent);box-shadow:0 2px 8px rgba(15,43,64,.08);text-decoration:none;}
