*{margin:0;padding:0;box-sizing:border-box;}

:root{
  --bg:#f4f7fb;
  --surface:#ffffff;
  --surface-soft:#f8fafc;
  --surface-muted:#eef3f8;
  --text:#10233f;
  --text-soft:#52637b;
  --text-muted:#6b7c93;
  --heading:#0d1b2a;
  --accent:#1463ff;
  --accent-strong:#0f4fcc;
  --accent-soft:#e8f0ff;
  --border:#dbe5f0;
  --border-strong:#c8d7e6;
  --shadow-sm:0 4px 16px rgba(15, 34, 58, 0.055);
  --shadow-md:0 14px 36px rgba(15, 34, 58, 0.09);
  --radius-sm:10px;
  --radius-md:14px;
  --radius-lg:18px;
  --container:1440px;
  /* Shared grid: homepage is the benchmark — reuse these tokens everywhere */
  --grid-col-left:minmax(218px, 232px);
  --grid-col-main:minmax(0, 1fr);
  --grid-col-right:minmax(248px, 264px);
  --grid-gap:14px;
  --font-body:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --fs-body:15px;
  --fs-meta:0.8125rem;
  --fs-label:0.6875rem;
  --fs-h1:clamp(1.28rem, 1.05rem + 0.55vw, 1.48rem);
  --fs-h2:0.9375rem;
  --fs-h3:0.875rem;
  --fs-link:0.875rem;
  --fs-sidebar:0.875rem;
  --fs-btn:0.8125rem;
  --panel-pad:14px;
  --space-section:14px;
  --leading-tight:1.2;
  --leading-body:1.65;
  /* Static /content/* pages — long-form line measure (shell width set on .content-page-shell) */
  --content-prose-measure:min(85ch, 100%);
}

html{scroll-behavior:smooth;}
body{
  background:
    radial-gradient(circle at top left, rgba(20, 99, 255, 0.07), transparent 30%),
    linear-gradient(180deg, #f8fbff 0%, var(--bg) 100%);
  color:var(--text-soft);
  font:400 var(--fs-body)/var(--leading-body) var(--font-body);
}

a{
  color:var(--accent-strong);
  text-decoration:none;
  transition:color .2s ease, opacity .2s ease;
}
a:hover{color:var(--accent);}
img{border:0;max-width:100%;height:auto;display:block;}

#wrap{
  width:min(calc(100% - 28px), var(--container));
  margin:20px auto 28px;
}

#header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0;
  margin-bottom:var(--space-section);
  padding:12px 14px 12px 18px;
  border:1px solid rgba(219, 229, 240, 0.92);
  background:
    radial-gradient(circle at top right, rgba(20,99,255,.08), transparent 32%),
    rgba(255,255,255,0.97);
  backdrop-filter:blur(10px);
  border-radius:var(--radius-lg);
  box-shadow:0 8px 22px rgba(15, 34, 58, 0.06);
}

#logo{
  float:none;
  display:flex;
  align-items:center;
  gap:0;
  min-width:0;
  padding-right:20px;
  margin-right:20px;
  border-right:1px solid rgba(219, 229, 240, 0.9);
  /* Cohesive brand column — avoids a huge empty flex region beside the search card */
  flex:0 1 min(480px, 46%);
  max-width:min(480px, 46%);
}

#logo a,
.brand-lockup-link{
  display:flex;
  align-items:center;
  color:inherit;
  width:100%;
  min-width:0;
  text-decoration:none;
}

.brand-lockup{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
  width:100%;
}

.brand-logo-wrap{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:4px 6px;
  border-radius:var(--radius-sm);
  background:rgba(255,255,255,0.38);
  border:1px solid rgba(219, 229, 240, 0.62);
}

.brand-logo-img{
  width:auto;
  height:48px;
  max-height:52px;
  max-width:min(220px, 36vw);
  object-fit:contain;
  object-position:left center;
}

/* Legacy text badge — still used in cached shells until regenerated */
.brand-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:118px;
  padding:12px 16px;
  border-radius:14px;
  background:linear-gradient(135deg, #10233f 0%, #1463ff 100%);
  color:#fff;
  font-size:1.15rem;
  font-weight:800;
  letter-spacing:-0.03em;
  line-height:1;
  box-shadow:0 10px 24px rgba(20, 99, 255, 0.18);
}

.brand-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  flex:1 1 auto;
}
.brand-kicker{
  display:inline-flex;
  align-items:center;
  margin:0;
  padding:3px 7px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent-strong);
  font-size:0.625rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  line-height:1;
  align-self:flex-start;
}
.brand-subtitle{
  margin:0;
  padding-top:0;
  color:var(--text-muted);
  font-size:0.8125rem;
  line-height:1.4;
  max-width:36ch;
}

#search_bar{
  float:none;
  position:static;
  top:auto;
  width:auto;
  font-weight:600;
  border:1px solid rgba(219, 229, 240, 0.72);
  background:rgba(248, 251, 255, 0.72);
  padding:10px 12px;
  border-radius:12px;
  box-shadow:none;
  flex:1 1 560px;
  min-width:420px;
  align-self:center;
}

.search-label{
  display:block;
  width:100%;
  margin-bottom:3px;
  color:var(--heading);
  font-size:0.8125rem;
  font-weight:700;
  letter-spacing:0.01em;
}

.search-help{
  display:block;
  width:100%;
  margin-bottom:7px;
  color:var(--text-muted);
  font-size:0.75rem;
  line-height:1.45;
}

.search-form{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

/*
  Search input flex sizing must only apply along the row main axis. With
  flex-direction:column (tablet/mobile), flex-basis would apply as HEIGHT and
  inflate the field — use min-width:861px for grow/basis rules.
*/
#search_bar input[type="text"]{
  margin:0;
  min-width:0;
  box-sizing:border-box;
}

#search_bar input[type="text"]{
  min-height:48px;
  padding:0 15px;
  border:1px solid rgba(200, 215, 230, 0.9);
  border-radius:12px;
  background:#fff;
  color:var(--heading);
  font-size:0.9375rem;
  box-shadow:inset 0 1px 2px rgba(15, 34, 58, 0.03);
  transition:border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

#search_bar input[type="text"]::placeholder{
  color:#8392a6;
}

#search_bar input[type="text"]:focus{
  outline:none;
  border-color:#a9c4ff;
  box-shadow:0 0 0 4px rgba(20, 99, 255, 0.10);
}

#search_bar input[type="submit"]{
  min-height:48px;
  padding:0 18px;
  border-radius:12px;
  box-shadow:0 10px 24px rgba(20, 99, 255, 0.22);
}

@media (min-width: 861px){
  #search_bar input[type="text"]{
    flex:1 1 280px;
    min-width:200px;
  }
  #search_bar input[type="submit"]{
    flex:0 0 auto;
    min-width:104px;
  }
}

#content{
  margin-bottom:var(--space-section);
  display:block;
}

/* 3-column shell: same tracks as homepage (left | main | right) */
#conmn{
  float:none;
  width:100%;
  margin-top:0;
  display:grid;
  grid-template-columns:var(--grid-col-left) var(--grid-col-main) var(--grid-col-right);
  gap:var(--grid-gap);
  align-items:start;
}

#conmn > .clear{
  display:none;
}

#conlft,#conctr,#conrgt{
  float:none;
  width:auto;
  margin-right:0;
  min-width:0;
}

#conlftbr,#conctrbr,#conrgtbr,#footer{
  float:none;
  width:auto;
  border:1px solid var(--border);
  background:var(--surface);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);
}

#conlftbr{
  background:linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
}

#concnt{margin:0;padding:var(--panel-pad);}

#footer{
  margin-top:var(--space-section);
  padding:14px 16px;
  background:linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
}

ul{list-style-type:none;}
p{margin:0 0 11px;}

h1,
h2,
.box_head{
  margin:0 0 12px;
  padding:0;
  background:none;
  border:0;
  color:var(--heading);
}

h1{
  font:600 var(--fs-h1)/var(--leading-tight) var(--font-body);
  letter-spacing:-0.025em;
  max-width:min(100%, 38ch);
}

/* Inner page titles should use the main column width, not an ultra-narrow measure */
#conctr.page-panel h1{
  max-width:none;
}

h2,
.box_head{
  font:600 var(--fs-h2)/1.4 var(--font-body);
}

.box_head{
  padding:9px 11px;
  background:var(--surface-soft);
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
}

.breadcrumb{
  grid-column:1 / -1;
  margin-bottom:10px;
  color:var(--text-muted);
  background:rgba(255,255,255,0.82);
  font-size:var(--fs-meta);
  line-height:1.45;
  padding:8px 11px;
  border:1px solid rgba(219, 229, 240, 0.95);
  border-radius:var(--radius-sm);
  box-shadow:0 3px 12px rgba(15, 34, 58, 0.04);
  backdrop-filter:blur(8px);
}
.breadcrumb a{color:var(--text-muted);}
.breadcrumb a:hover{color:var(--accent-strong);}

.layout-main{grid-column:1 / span 2;}
.layout-side{grid-column:3;}

/*
  Two-column inner templates (company/area/category): same main + right ratio as
  homepage columns 2–3. #conmn.two-col-layout required (ID beats .two-col-layout alone).
*/
#conmn.two-col-layout{
  grid-template-columns:var(--grid-col-main) var(--grid-col-right);
  gap:var(--grid-gap);
}

.two-col-layout .layout-main{grid-column:1;min-width:0;}
.two-col-layout .layout-side{grid-column:2;min-width:0;}

.page-panel #conctrbr{
  overflow:hidden;
  background:linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.page-summary{
  margin:0 0 12px;
  padding:12px 13px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
  color:var(--text-soft);
  font-size:0.9375rem;
  line-height:1.55;
  box-shadow:var(--shadow-sm);
}

.page-summary p:last-child,
.detail-hero p:last-child,
.detail-section p:last-child,
.map-card p:last-child{margin-bottom:0;}

/* CMS / static content pages (/content/*) — centered readable column, same shell as site cards */
#conmn.content-page-layout{
  grid-template-columns:minmax(0, 1fr);
}

.content-page-shell{
  width:100%;
  /* Align with site container but cap ~58rem so text block isn’t lost in side gutters */
  max-width:min(100%, 58rem, calc(var(--container) - 2rem));
  margin:0 auto;
  padding:0 4px;
}

@media (min-width: 520px){
  .content-page-shell{
    padding:0 8px;
  }
}

.content-page-card{
  padding:26px 28px 28px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
  box-shadow:var(--shadow-sm);
}

/*
  Long-form help/legal/FAQ: wider than 65ch to match shell; still capped for readability.
*/
.content-prose{
  max-width:var(--content-prose-measure);
  margin:0 auto;
  color:var(--text-soft);
  font-size:0.9375rem;
  line-height:1.72;
  letter-spacing:0.01em;
  font-variant-numeric:proportional-nums;
}

.content-prose .content-page-body > *:first-child{margin-top:0;}
.content-prose .content-page-body > *:last-child{margin-bottom:0;}

.content-prose h1,
.content-prose h2,
.content-prose h3,
.content-prose h4{
  color:var(--heading);
  font-weight:600;
  letter-spacing:-0.02em;
  line-height:1.35;
}

.content-prose h1{
  font-size:clamp(1.15rem, 1.02rem + 0.35vw, 1.28rem);
  margin:0 0 1rem;
}

.content-prose .content-page-body > h1:first-child{
  padding-bottom:14px;
  margin-bottom:1.25rem;
  border-bottom:1px solid var(--border);
}

.content-prose h2{
  font-size:1.03125rem;
  margin:1.85rem 0 0.65rem;
}

.content-prose h2:not(:first-child){
  padding-top:1.35rem;
  margin-top:1.85rem;
  border-top:1px solid rgba(219, 229, 240, 0.95);
}

.content-prose .content-page-body > h1:first-child + h2{
  margin-top:0;
  padding-top:0;
  border-top:0;
}

.content-prose h3{
  font-size:0.96875rem;
  margin:1.35rem 0 0.5rem;
}

.content-prose h4{
  font-size:0.90625rem;
  margin:1.15rem 0 0.45rem;
  color:var(--text);
  font-weight:600;
}

.content-prose p{
  margin:0 0 1em;
}

.content-prose p:last-child{margin-bottom:0;}

/* FAQ-style: question line in strong at start of paragraph */
.content-prose p > strong:first-child{
  color:var(--heading);
  font-weight:600;
}

.content-prose ul,
.content-prose ol{
  margin:0.65em 0 1.1em;
  padding-left:1.4em;
}

.content-prose ul{
  list-style-type:disc;
}

.content-prose ol{
  list-style-type:decimal;
}

.content-prose li{
  margin:0 0 0.45em;
  padding-left:0.15em;
}

.content-prose li::marker{
  color:var(--text-muted);
}

.content-prose li > ul,
.content-prose li > ol{
  margin:0.45em 0 0.55em;
}

.content-prose a{
  color:var(--accent-strong);
  font-weight:600;
  text-decoration:underline;
  text-decoration-color:rgba(15, 79, 204, 0.35);
  text-underline-offset:2px;
  transition:color .15s ease, text-decoration-color .15s ease;
}

.content-prose a:hover{
  color:var(--accent);
  text-decoration-color:rgba(20, 99, 255, 0.55);
}

.content-prose strong,
.content-prose b{
  color:var(--heading);
  font-weight:600;
}

.content-prose em,
.content-prose i{
  font-style:italic;
}

.content-prose hr{
  border:0;
  border-top:1px solid var(--border);
  margin:1.75rem 0;
}

.content-prose blockquote{
  margin:1.1em 0;
  padding:0.65em 0 0.65em 1rem;
  border-left:3px solid var(--accent-soft);
  color:var(--text-muted);
  font-size:0.90625rem;
  line-height:1.65;
}

.content-prose table{
  width:100%;
  border-collapse:collapse;
  font-size:0.875rem;
  margin:1em 0;
}

.content-prose table th,
.content-prose table td{
  border:1px solid var(--border);
  padding:8px 10px;
  text-align:left;
}

.content-prose table th{
  background:var(--surface-soft);
  color:var(--heading);
  font-weight:600;
}

@media (max-width: 560px){
  .content-page-card{
    padding:20px 16px 22px;
  }

  .content-prose{
    font-size:0.90625rem;
    line-height:1.68;
  }

  .content-prose h2:not(:first-child){
    padding-top:1.15rem;
  }
}

.link-cluster{
  display:grid;
  gap:6px;
  margin:12px 0;
}

.link-cluster a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 11px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--surface-soft);
  font-weight:600;
  font-size:var(--fs-link);
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.link-cluster a:hover{
  border-color:var(--border-strong);
  background:#fff;
  box-shadow:0 2px 8px rgba(15, 34, 58, 0.04);
}

.cplist{display:grid;gap:8px;}
.cplist li{
  line-height:1.5;
  list-style:none outside none;
  padding:9px 11px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--surface-soft);
  font-size:0.9375rem;
}

.prts{
  float:left;
  width:33.33%;
  padding:4px 8px 4px 0;
}

.bx_gry{
  float:left;
  width:100%;
  background:var(--surface-soft);
  border:1px solid var(--border);
  border-radius:var(--radius-sm) var(--radius-sm) 0 0;
  padding:10px 12px;
  margin-top:10px;
  color:var(--heading);
  font-size:var(--fs-h2);
  font-weight:600;
}

.bx_cnts{
  padding:12px;
  border:1px solid var(--border);
  border-top:0;
  border-radius:0 0 var(--radius-sm) var(--radius-sm);
  background:var(--surface);
}

.tb_pdg{padding:12px 0;}

.linkiniz{
  padding:11px 12px;
  margin:14px 0;
  border:1px solid var(--border);
  width:100%;
  background:var(--surface-soft);
  text-align:center;
  border-radius:var(--radius-md);
}

.alpha_linkiniz{
  text-align:center;
  margin:14px 0 12px;
}

.alpha_linkiniz ul{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  margin:0;
  padding:0;
}

.alpha_linkiniz li{
  float:none;
  padding:8px 11px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--surface);
  min-width:38px;
}

.navigation2{
  padding:6px 0 12px;
  text-align:center;
  font-size:var(--fs-meta);
  font-weight:500;
  line-height:1.85;
  border-bottom:1px solid var(--border);
  margin:0 0 12px;
}

.wp-pagenavi2 span.pages,
.wp-pagenavi2 span.current,
.wp-pagenavi2 a:link,
.wp-pagenavi2 a:visited{
  display:inline-block;
  margin:3px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  font-size:var(--fs-meta);
}

.wp-pagenavi2 span.pages{
  background:#fff;
  color:var(--text-soft);
}

.wp-pagenavi2 span.current{
  font-weight:700;
  background:var(--accent-soft);
  color:var(--accent-strong);
  border-color:#bad0ff;
}

.wp-pagenavi2 a:link,
.wp-pagenavi2 a:visited{
  text-decoration:none;
  background:var(--surface);
  color:var(--accent-strong);
  font-weight:600;
}

.wp-pagenavi2 a:hover{
  background:var(--accent-soft);
  border-color:#bad0ff;
}

.listing_info{
  margin:0 0 8px;
  padding:12px 13px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
  box-shadow:var(--shadow-sm);
  transition:border-color .15s ease, box-shadow .15s ease;
}

.listing_info:hover{
  border-color:var(--border-strong);
  box-shadow:0 6px 18px rgba(15, 34, 58, 0.06);
}

.listing_info:last-child{margin-bottom:4px;}

.listing_info .listing_link{
  position:relative;
  margin-bottom:5px;
  color:var(--heading);
  font-size:0.9375rem;
  font-weight:600;
  line-height:1.35;
}

.listing_info .listing_link a{
  color:var(--heading);
}

.listing_info .listing_link a:hover{
  color:var(--accent);
}

.listing_info p{
  margin:0 0 3px;
  color:var(--text-muted);
  font-size:0.875rem;
  line-height:1.5;
}

.listing_badge{
  display:inline-flex;
  align-items:center;
  margin-left:10px;
  padding:4px 9px;
  border-radius:999px;
  background:#e8f7ef;
  color:#15803d;
  font-size:0.67rem;
  font-weight:700;
  letter-spacing:0.02em;
  text-transform:uppercase;
}

.listing_meta{
  display:grid;
  gap:4px;
}

.detail-hero{
  margin:0 0 12px;
  padding:14px 15px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:
    radial-gradient(circle at top right, rgba(20,99,255,.08), transparent 36%),
    linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow:var(--shadow-sm);
}

.detail-title{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
  margin-bottom:12px;
}

.detail-title strong{
  color:var(--heading);
  font-size:1.0625rem;
  font-weight:600;
  line-height:var(--leading-tight);
}

.detail-meta{
  display:grid;
  gap:8px;
  margin-top:14px;
}

.detail-meta p{
  margin:0;
  padding:9px 11px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:rgba(255,255,255,0.85);
  font-size:0.875rem;
}

.detail-section{
  margin:12px 0 0;
  padding:12px 13px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--surface-soft);
}

.detail-section h2{
  margin-bottom:12px;
}

.detail-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  margin-top:12px;
  padding:9px 11px;
  border:1px dashed var(--border-strong);
  border-radius:var(--radius-sm);
  background:#fff;
  font-size:0.8125rem;
}

.detail-actions a{
  font-weight:700;
}

.review-list{
  display:grid;
  gap:12px;
}

.review-list table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  overflow:hidden;
  background:linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
  box-shadow:var(--shadow-sm);
}

.review-form{
  margin-top:14px;
  padding:13px 14px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:linear-gradient(180deg, #ffffff 0%, #f9fbfe 100%);
}

.review-form img{
  margin:10px 0 16px;
}

.review-form input[type="text"],
.review-form textarea,
.review-form select{
  max-width:520px;
}

.map-card{
  margin-top:12px;
  padding:11px 12px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
  box-shadow:var(--shadow-sm);
}

.map-embed{
  width:100%;
  height:400px;
  border:0;
  border-radius:var(--radius-sm);
  overflow:hidden;
  background:var(--surface-muted);
}

.map-link-card{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin-top:12px;
  min-height:80px;
  padding:16px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
  box-shadow:var(--shadow-sm);
}

.map-link-button{
  min-height:40px;
}

.sidebar-links{
  display:grid;
  gap:8px;
}

.sidebar-links a{
  display:block;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--surface-soft);
  font-size:var(--fs-sidebar);
  line-height:1.4;
  transition:border-color .15s ease, background .15s ease;
}
.sidebar-links a:hover{
  border-color:var(--border-strong);
  background:#fff;
}

.ads_info{
  padding:8px 0;
  border-bottom:1px solid var(--border);
  border-top:1px solid var(--border);
}

.clear{clear:both;}

input[type="text"],
input[type="password"],
input[type="email"],
textarea,
select{
  width:100%;
  max-width:100%;
  padding:9px 11px;
  border:1px solid var(--border-strong);
  border-radius:var(--radius-sm);
  background:#fff;
  color:var(--text);
  font:400 0.875rem/1.45 var(--font-body);
  box-shadow:inset 0 1px 2px rgba(15,34,58,.035);
  transition:border-color .15s ease, box-shadow .15s ease;
}

textarea{min-height:140px;resize:vertical;}

input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
textarea:focus,
select:focus{
  border-color:#8db1ff;
  box-shadow:0 0 0 4px rgba(20,99,255,0.12);
  outline:none;
}

input[type="submit"],
button,
.button,
a.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:9px 14px;
  border:0;
  border-radius:999px;
  background:linear-gradient(180deg, var(--accent) 0%, var(--accent-strong) 100%);
  color:#fff;
  font:600 var(--fs-btn)/1 var(--font-body);
  text-decoration:none;
  box-shadow:0 6px 16px rgba(20, 99, 255, 0.16);
  cursor:pointer;
  transition:opacity .15s ease, box-shadow .15s ease, transform .12s ease;
}

input[type="submit"]:hover,
button:hover,
.button:hover,
a.button:hover{
  color:#fff;
  opacity:.96;
  box-shadow:0 8px 20px rgba(20, 99, 255, 0.2);
}

.home-hero{
  max-width:70ch;
  margin-left:auto;
  margin-right:auto;
  padding:22px 24px 24px;
  border:1px solid rgba(219, 229, 240, 0.96);
  border-radius:18px;
  background:
    radial-gradient(circle at top right, rgba(20,99,255,.12), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow:0 20px 44px rgba(15, 34, 58, 0.08);
}

.home-hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 14px;
  padding:6px 11px;
  border:1px solid rgba(186, 208, 255, 0.92);
  border-radius:999px;
  background:rgba(232, 240, 255, 0.82);
  color:var(--accent-strong);
  font-size:0.6875rem;
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.home-hero-kicker::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:linear-gradient(180deg, #3b82f6 0%, #1463ff 100%);
  box-shadow:0 0 0 5px rgba(20, 99, 255, 0.10);
}

.home-hero p{
  max-width:none;
  font-size:0.96875rem;
  line-height:1.72;
  color:var(--text-soft);
}

.home-hero p + p{
  margin-top:13px;
}

.home-hero p:last-child{margin-bottom:0;}

.home-hero h1{
  max-width:none;
  margin-bottom:14px;
  font-size:clamp(1.75rem, 1.25rem + 1.2vw, 2.45rem);
  line-height:1.08;
  letter-spacing:-0.04em;
}

.home-hero-lead{
  color:var(--heading);
  font-size:1.02rem;
}

.home-benefits{
  display:grid;
  gap:10px;
  margin:14px 0 16px;
  padding:0;
  list-style:none;
}

.home-benefits li{
  position:relative;
  margin:0;
  padding:0 0 0 28px;
  color:var(--text-soft);
  font-size:0.9375rem;
  line-height:1.6;
}

.home-benefits li::before{
  content:"";
  position:absolute;
  top:0.45rem;
  left:0;
  width:14px;
  height:14px;
  border-radius:999px;
  background:
    radial-gradient(circle at center, #ffffff 0 34%, transparent 36%),
    linear-gradient(180deg, #1463ff 0%, #0f4fcc 100%);
  box-shadow:0 6px 14px rgba(20, 99, 255, 0.18);
}

.section-card{
  margin-top:14px;
  padding:16px;
  border:1px solid rgba(219, 229, 240, 0.95);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg, #ffffff 0%, #f9fbfe 100%);
  box-shadow:0 14px 34px rgba(15, 34, 58, 0.05);
}

.section-label{
  margin-bottom:12px;
  color:var(--heading);
  font-size:0.6875rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.home-link-list a{
  display:block;
  margin:0 0 8px;
  padding:9px 11px;
  border:1px solid rgba(219, 229, 240, 0.82);
  border-radius:12px;
  background:rgba(255,255,255,0.78);
  font-weight:600;
  font-size:var(--fs-link);
  color:var(--text-soft);
  transition:transform .15s ease, border-color .15s ease, background-color .15s ease, color .15s ease, box-shadow .15s ease;
}

.home-link-list a:hover{
  color:var(--heading);
  border-color:#cddbeb;
  background:#fff;
  box-shadow:0 10px 22px rgba(15, 34, 58, 0.06);
  transform:translateY(-1px);
}

.letter-cloud{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.letter-cloud a,
.letter-cloud span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:30px;
  height:30px;
  padding:0 9px;
  border-radius:999px;
  border:1px solid rgba(219, 229, 240, 0.95);
  background:#fff;
  font-weight:700;
  font-size:0.8rem;
  box-shadow:0 6px 18px rgba(15, 34, 58, 0.04);
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease;
}

.letter-cloud a:hover{
  color:var(--accent-strong);
  border-color:#bfd2f2;
  background:#f9fbff;
  box-shadow:0 12px 26px rgba(15, 34, 58, 0.07);
  transform:translateY(-1px);
}

.side-intro,
.widget-card{
  padding:12px 13px;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:var(--surface-soft);
  box-shadow:var(--shadow-sm);
}

/* Auth / flag / shared standalone forms — matches page-summary + widget shell */
.form-page{
  margin:0 0 var(--space-section);
}

.form-card{
  display:flex;
  flex-direction:column;
  gap:14px;
  max-width:min(100%, 32rem);
  padding:16px 17px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
  box-shadow:var(--shadow-sm);
}

.form-card form{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.form-card .field-label{
  margin:0;
  color:var(--heading);
  font-weight:600;
  font-size:0.875rem;
  line-height:1.4;
}

.form-card .form-field-stack{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.form-card .form-field-stack label{
  font-size:0.875rem;
  line-height:1.45;
  color:var(--text-soft);
  cursor:pointer;
}

.form-card--report textarea{
  min-height:100px;
  max-width:100%;
  width:100%;
}

.form-card .form-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}

.form-card .form-footnote{
  margin:0;
  font-size:var(--fs-meta);
  color:var(--text-muted);
  line-height:1.55;
}

/* Auth family (login / register / reset): centered column, no 3-track grid split */
#conmn.auth-layout{
  grid-template-columns:minmax(0, 1fr);
}

.auth-layout__shell{
  width:100%;
  max-width:26rem;
  margin:0 auto;
  padding:0 4px;
}

@media (min-width: 520px){
  .auth-layout__shell{
    max-width:28rem;
    padding:0 8px;
  }
}

.auth-title{
  text-align:center;
  margin:0 0 16px;
  max-width:none;
  letter-spacing:-0.02em;
}

#conmn.auth-layout .form-page{
  margin:0;
}

#conmn.auth-layout .form-card{
  max-width:100%;
  padding:18px 20px;
  gap:16px;
}

#conmn.auth-layout .form-card form{
  gap:15px;
}

.auth-intro{
  margin:0;
  font-size:0.9375rem;
  line-height:1.55;
  color:var(--text-soft);
}

#conmn.auth-layout .form-footnote{
  text-align:center;
}

#conmn.auth-layout .form-actions{
  justify-content:center;
}

/* Register: two-column value panel + form (stacks on small screens) */
#conmn.auth-layout--register .auth-layout__shell--split{
  display:grid;
  grid-template-columns:minmax(0, 1.12fr) minmax(0, 22rem);
  gap:clamp(20px, 3vw, 36px);
  align-items:start;
  max-width:56rem;
  width:100%;
  margin:0 auto;
  padding:0 10px;
}

.auth-register-panel{
  min-width:0;
  padding:20px 22px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
  box-shadow:var(--shadow-sm);
}

.auth-register-eyebrow{
  margin:0 0 8px;
  font-size:var(--fs-label);
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-muted);
}

.auth-register-heading{
  margin:0 0 10px;
  font-size:1.125rem;
  font-weight:600;
  color:var(--heading);
  line-height:1.3;
  letter-spacing:-0.02em;
}

.auth-register-lead{
  margin:0 0 16px;
  font-size:0.9375rem;
  line-height:1.55;
  color:var(--text-soft);
}

.auth-register-list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}

.auth-register-list li{
  position:relative;
  padding-left:1rem;
  font-size:0.875rem;
  line-height:1.45;
  color:var(--text-soft);
}

.auth-register-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.55em;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--accent-strong);
}

.auth-register-form-wrap{
  min-width:0;
}

.auth-title--register{
  text-align:left;
  margin:0 0 14px;
}

#conmn.auth-layout--register .form-page{
  margin:0;
}

#conmn.auth-layout--register .form-card{
  padding:20px 22px;
  gap:16px;
}

@media (max-width: 860px){
  #conmn.auth-layout--register .auth-layout__shell--split{
    grid-template-columns:1fr;
    max-width:28rem;
    gap:22px;
    padding:0 6px;
  }

  .auth-title--register{
    text-align:center;
  }

  .auth-register-panel{
    padding:16px 18px;
  }
}

input[type="button"].button-secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:9px 14px;
  border-radius:999px;
  border:1px solid var(--border-strong);
  background:var(--surface);
  color:var(--heading);
  font:600 var(--fs-btn)/1 var(--font-body);
  cursor:pointer;
  box-shadow:0 2px 8px rgba(15, 34, 58, 0.06);
  transition:background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

input[type="button"].button-secondary:hover{
  background:var(--surface-soft);
  border-color:var(--border-strong);
  color:var(--heading);
  box-shadow:0 4px 12px rgba(15, 34, 58, 0.08);
}

input[type="button"].button-secondary:focus{
  outline:none;
  border-color:#8db1ff;
  box-shadow:0 0 0 4px rgba(20,99,255,0.12);
}

.side-intro{
  background:linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
}

.side-intro-meta{
  font-size:var(--fs-meta);
  font-weight:600;
  color:var(--heading);
  line-height:1.45;
}

.share-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}

.ad-card{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  min-height:0;
  padding:12px;
  border:1px solid rgba(219, 229, 240, 0.95);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg, #ffffff 0%, #f6faff 100%);
  box-shadow:0 16px 34px rgba(15, 34, 58, 0.06);
}

#footer p:last-child{margin-bottom:0;}
#footer a{font-weight:600;}
.footer-links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 12px;
  margin:6px 0 8px;
}

#footer p:first-child{
  max-width:62ch;
}

.recent-listing .listing_info{
  padding:11px 12px;
}

.home-layout{
  gap:18px;
}

.home-layout #conlftbr,
.home-layout #conctrbr,
.home-layout #conrgtbr{
  border-radius:16px;
  box-shadow:0 18px 40px rgba(15, 34, 58, 0.06);
}

.home-sidebar #concnt + .clear + #concnt{
  padding-top:2px;
}

.home-main-shell{
  overflow:hidden;
  background:
    radial-gradient(circle at top right, rgba(20, 99, 255, 0.08), transparent 30%),
    linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.home-main-content{
  padding:18px;
}

.home-rail #conrgtbr{
  background:linear-gradient(180deg, #ffffff 0%, #f9fbfe 100%);
}

.home-account-card{
  padding:14px 15px;
  border-radius:var(--radius-md);
  background:
    radial-gradient(circle at top right, rgba(20,99,255,.11), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
}

.home-account-meta{
  display:block;
  color:var(--heading);
  font-size:0.8125rem;
  font-weight:700;
  line-height:1.55;
}

.home-account-meta a{
  display:inline-flex;
  align-items:center;
  margin:4px 4px 0 0;
  padding:7px 11px;
  border:1px solid rgba(219, 229, 240, 0.92);
  border-radius:999px;
  background:rgba(255,255,255,0.84);
  color:var(--accent-strong);
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.home-account-meta a:hover{
  border-color:#bdd2ff;
  background:#fff;
  box-shadow:0 10px 22px rgba(15, 34, 58, 0.07);
  transform:translateY(-1px);
}

.recent-listing-card h2{
  margin-bottom:14px;
  font-size:1rem;
}

.recent-listing .listing_info{
  margin-bottom:10px;
  padding:14px;
  border-radius:14px;
  background:linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow:0 12px 28px rgba(15, 34, 58, 0.05);
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.recent-listing .listing_info:hover{
  border-color:#c8d7e6;
  box-shadow:0 18px 34px rgba(15, 34, 58, 0.08);
  transform:translateY(-2px);
}

.recent-listing .listing_link{
  margin-bottom:7px;
}

.recent-listing .listing_meta{
  gap:5px;
}

.recent-listing .listing_meta p{
  color:#66788f;
}

#footer{
  padding:18px 20px;
  border-radius:16px;
  background:
    radial-gradient(circle at top right, rgba(20,99,255,.08), transparent 32%),
    linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  box-shadow:0 18px 40px rgba(15, 34, 58, 0.05);
}

.footer-links{
  gap:10px 14px;
  margin:10px 0 12px;
}

.footer-links a{
  display:inline-flex;
  align-items:center;
  padding:6px 0;
  color:var(--text-soft);
}

.footer-links a:hover{
  color:var(--accent-strong);
}

.home-page #wrap{
  width:min(calc(100% - 20px), 1180px);
  margin:18px auto 26px;
}

.home-page{
  background:
    radial-gradient(circle at top left, rgba(37, 99, 235, 0.08), transparent 26%),
    linear-gradient(180deg, #f7f9fe 0%, #edf3ff 100%);
}

.home-page #header{
  margin-bottom:18px;
}

.header-home{
  gap:22px !important;
  padding:14px 8px 10px 4px !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
}

.header-home #logo{
  flex:1 1 auto;
  max-width:none;
  margin-right:0;
  padding-right:0;
  border-right:0;
}

.header-home .brand-lockup{
  gap:16px;
}

.header-home .brand-logo-wrap{
  padding:0;
  border:0;
  background:transparent;
}

.header-home .brand-logo-img{
  height:58px;
  max-height:58px;
  max-width:min(300px, 40vw);
}

.header-home .brand-copy{
  max-width:35rem;
  gap:7px;
}

.header-home .brand-kicker{
  padding:4px 9px;
  font-size:0.56rem;
  letter-spacing:0.08em;
  background:#dfeafe;
}

.header-home .brand-subtitle{
  font-size:0.9rem;
  line-height:1.5;
  max-width:38ch;
}

.header-account{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
  flex:0 0 auto;
}

.header-account-meta{
  color:var(--text-muted);
  font-size:0.8rem;
  font-weight:700;
}

.header-account-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 18px;
  border:1px solid rgba(209, 220, 236, 0.95);
  border-radius:14px;
  background:#fff;
  color:#1b2b49;
  font-size:0.9rem;
  font-weight:700;
  box-shadow:0 8px 20px rgba(15, 34, 58, 0.06);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, color .16s ease;
}

.header-account-link:hover{
  color:var(--accent-strong);
  border-color:#bfd2ff;
  box-shadow:0 12px 26px rgba(15, 34, 58, 0.09);
  transform:translateY(-1px);
}

.home-hero-shell{
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(360px, 1.45fr);
  gap:26px;
  align-items:center;
  margin:0 0 18px;
  padding:28px 30px;
  border:1px solid rgba(213, 224, 243, 0.94);
  border-radius:18px;
  background:linear-gradient(135deg, rgba(214, 228, 255, 0.92) 0%, rgba(235, 241, 255, 0.94) 58%, rgba(223, 233, 255, 0.86) 100%);
  box-shadow:0 22px 48px rgba(49, 77, 121, 0.10);
  overflow:hidden;
  position:relative;
}

.home-hero-shell::after{
  content:"";
  position:absolute;
  inset:-20% -10% auto auto;
  width:46%;
  height:180%;
  background:linear-gradient(180deg, rgba(255,255,255,0.22), rgba(255,255,255,0));
  transform:rotate(12deg);
  pointer-events:none;
}

.home-hero-intro,
.home-search-panel{
  position:relative;
  z-index:1;
}

.home-hero-eyebrow{
  display:inline-flex;
  align-items:center;
  margin:0 0 16px;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(74, 120, 255, 0.10);
  color:#1952d8;
  font-size:0.68rem;
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.home-hero-title{
  margin:0 0 14px;
  max-width:13ch;
  color:#162847;
  font-size:clamp(2.05rem, 1.7rem + 1.05vw, 3.05rem);
  font-weight:800;
  line-height:1.03;
  letter-spacing:-0.045em;
}

.home-hero-title span{
  color:#1f67ea;
}

.home-hero-summary{
  max-width:28rem;
  margin:0;
  color:#495c79;
  font-size:1rem;
  line-height:1.72;
}

.home-search-panel{
  padding:22px 22px 18px;
  border:1px solid rgba(206, 219, 243, 0.98);
  border-radius:18px;
  background:rgba(255,255,255,0.92);
  box-shadow:0 18px 36px rgba(40, 66, 109, 0.08);
}

.home-search-title{
  margin:0 0 4px;
  color:#172946;
  font-size:1.65rem;
  font-weight:800;
  letter-spacing:-0.03em;
}

.home-search-help{
  margin:0 0 15px;
  color:#66788f;
  font-size:0.875rem;
  line-height:1.55;
}

.home-search-form{
  display:block;
}

.home-search-controls{
  display:flex;
  gap:10px;
  align-items:center;
}

.home-search-controls input[type="text"]{
  flex:1 1 auto;
  min-width:0;
  min-height:50px;
  padding:0 16px;
  border:2px solid #7ca7ff;
  border-radius:12px;
  background:#fff;
  color:#1b2b49;
  font-size:0.94rem;
  box-shadow:inset 0 1px 2px rgba(15, 34, 58, 0.04);
}

.home-search-controls input[type="text"]:focus{
  outline:none;
  border-color:#4f85ff;
  box-shadow:0 0 0 4px rgba(79, 133, 255, 0.14);
}

.home-search-controls input[type="submit"]{
  flex:0 0 auto;
  min-width:112px;
  min-height:50px;
  padding:0 20px;
  border-radius:12px;
  box-shadow:0 14px 28px rgba(31, 103, 234, 0.24);
}

.home-search-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:14px;
}

.home-search-tags span{
  color:#5f718a;
  font-size:0.78rem;
  font-weight:700;
}

.home-search-tags a{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:#edf3ff;
  color:#3366cb;
  font-size:0.76rem;
  font-weight:700;
}

.home-layout{
  grid-template-columns:minmax(220px, 248px) minmax(0, 1fr) minmax(260px, 290px);
  gap:18px;
}

.home-layout #conlftbr,
.home-layout #conctrbr,
.home-layout #conrgtbr{
  border:1px solid rgba(216, 227, 243, 0.98);
  border-radius:18px;
  box-shadow:0 18px 42px rgba(15, 34, 58, 0.06);
}

.home-sidebar #conlftbr{
  background:linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(245, 249, 255, 0.98) 100%);
}

.home-sidebar #concnt{
  padding:14px 14px 16px;
}

.home-sidebar #concnt b > a:first-child{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
  padding:12px 12px;
  border-radius:12px;
  background:#edf3ff;
  color:#245ad8;
  font-size:0.88rem;
  font-weight:800;
}

.home-sidebar #concnt b > a:first-child::before{
  content:"";
  width:16px;
  height:16px;
  border-radius:5px;
  background:linear-gradient(180deg, #2a6bf0 0%, #174fca 100%);
  box-shadow:0 6px 12px rgba(23, 79, 202, 0.22);
}

.home-sidebar #concnt > div{
  color:#1f3150;
}

.home-sidebar #concnt > div > b{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 12px;
  font-size:0.92rem;
}

.home-sidebar #concnt ul{
  margin:0;
}

.home-sidebar #concnt ul li{
  margin:0 0 5px;
  color:#233450;
  font-size:0.84rem;
  line-height:1.45;
}

.home-sidebar #concnt ul li a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:4px 8px;
  border-radius:10px;
  color:#40536f;
  transition:background-color .15s ease, color .15s ease, transform .15s ease;
}

.home-sidebar #concnt ul li a:hover{
  background:#eef4ff;
  color:#18335f;
  transform:translateX(1px);
}

.home-sidebar #concnt ul li b a{
  color:#13284a;
}

.home-sidebar .section-card{
  padding:14px;
  border-radius:14px;
  background:linear-gradient(180deg, #eef4ff 0%, #f7faff 100%);
  box-shadow:none;
}

.home-sidebar .section-label{
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(210, 223, 243, 0.9);
}

.home-sidebar .home-link-list a{
  padding:8px 10px;
  background:rgba(255,255,255,0.84);
}

.home-main-shell{
  overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248, 251, 255, 0.98) 100%);
}

.home-main-content{
  padding:20px;
}

.home-hero{
  max-width:none;
  margin:0;
  padding:22px 22px 20px;
  border:1px solid rgba(218, 229, 243, 0.96);
  border-radius:18px;
  background:#fff;
  box-shadow:none;
}

.home-hero-kicker{
  margin-bottom:14px;
  padding:6px 12px;
  background:#edf3ff;
  color:#1d5ce0;
  font-size:0.66rem;
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.home-content-title{
  margin:0 0 14px;
  color:#1a2d4c;
  font-size:clamp(2rem, 1.55rem + 0.9vw, 2.7rem);
  font-weight:800;
  line-height:1.08;
  letter-spacing:-0.045em;
}

.home-hero p{
  font-size:0.98rem;
  line-height:1.74;
  color:#566883;
}

.home-hero-lead{
  color:#3d4f6a;
}

.home-feature-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  margin:18px 0 16px;
}

.home-feature-card{
  padding:16px 16px 14px;
  border:1px solid rgba(223, 231, 243, 0.96);
  border-radius:14px;
  background:linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  box-shadow:0 8px 22px rgba(15, 34, 58, 0.04);
}

.home-feature-card h3{
  margin:0 0 5px;
  color:#162946;
  font-size:0.92rem;
  font-weight:800;
}

.home-feature-card p{
  margin:0;
  font-size:0.84rem;
  line-height:1.55;
}

.home-feature-icon{
  width:48px;
  height:48px;
  margin-bottom:12px;
  border-radius:12px;
  position:relative;
}

.home-feature-icon::before,
.home-feature-icon::after{
  content:"";
  position:absolute;
}

.home-feature-icon--search{
  background:#edf2ff;
}

.home-feature-icon--search::before{
  top:12px;
  left:12px;
  width:14px;
  height:14px;
  border:3px solid #3f6ff0;
  border-radius:50%;
}

.home-feature-icon--search::after{
  top:25px;
  left:26px;
  width:12px;
  height:3px;
  border-radius:999px;
  background:#3f6ff0;
  transform:rotate(45deg);
}

.home-feature-icon--pin{
  background:#e6f9ed;
}

.home-feature-icon--pin::before{
  top:9px;
  left:16px;
  width:16px;
  height:21px;
  border:3px solid #22a85a;
  border-radius:50% 50% 50% 50% / 45% 45% 65% 65%;
}

.home-feature-icon--pin::after{
  top:18px;
  left:22px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#22a85a;
}

.home-feature-icon--claim{
  background:#f0edff;
}

.home-feature-icon--claim::before{
  top:12px;
  left:15px;
  width:18px;
  height:22px;
  border:3px solid #5f54ff;
  border-radius:4px;
}

.home-feature-icon--claim::after{
  top:18px;
  left:20px;
  width:8px;
  height:10px;
  border-top:3px solid #5f54ff;
  border-bottom:3px solid #5f54ff;
}

.home-feature-icon--star{
  background:#fff4e8;
}

.home-feature-icon--star::before{
  top:11px;
  left:12px;
  width:24px;
  height:24px;
  background:#f59e0b;
  clip-path:polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 92%, 50% 70%, 21% 92%, 32% 57%, 2% 35%, 39% 35%);
}

.home-common-searches{
  margin:18px 0 12px;
}

.home-common-searches h3{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 14px;
  color:#122746;
  font-size:1.05rem;
  font-weight:800;
}

.home-common-searches h3::before{
  content:"";
  width:4px;
  height:26px;
  border-radius:999px;
  background:linear-gradient(180deg, #2a6bf0 0%, #164fc9 100%);
}

.home-benefits{
  gap:12px;
  margin:0 0 12px;
}

.home-benefits li{
  padding-left:30px;
  font-size:0.94rem;
  line-height:1.62;
  color:#415470;
}

.home-benefits li::before{
  top:0.34rem;
  width:18px;
  height:18px;
  background:
    radial-gradient(circle at center, #ffffff 0 28%, transparent 29%),
    linear-gradient(180deg, #4b83ff 0%, #1f67ea 100%);
  box-shadow:0 8px 16px rgba(31, 103, 234, 0.15);
}

.home-rail #conrgtbr{
  background:transparent;
}

.home-account-card{
  padding:14px 15px;
  border:1px solid rgba(216, 227, 243, 0.96);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(246, 250, 255, 0.98) 100%);
  box-shadow:0 12px 28px rgba(15, 34, 58, 0.05);
}

.home-account-title{
  margin:0 0 8px;
  color:#162946;
  font-size:0.92rem;
  font-weight:800;
}

.home-account-meta{
  display:block;
  color:#617389;
  font-size:0.82rem;
  font-weight:700;
  line-height:1.6;
}

.home-account-meta a{
  display:inline-flex;
  align-items:center;
  margin:6px 6px 0 0;
  padding:8px 12px;
  border-radius:999px;
  background:#edf3ff;
  color:#245ad8;
  font-size:0.79rem;
  font-weight:800;
}

.recent-listing-card{
  padding:0;
  border:0;
  background:transparent;
}

.recent-listing-card h2{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
  padding:16px 18px;
  border-radius:16px 16px 0 0;
  background:linear-gradient(180deg, #172c4d 0%, #102443 100%);
  color:#fff;
  font-size:1rem;
  font-weight:800;
}

.recent-listing-card h2::before{
  content:"★";
  color:#f7c94b;
  font-size:1rem;
}

.recent-listing .listing_info{
  margin-bottom:10px;
  padding:15px 14px;
  border:1px solid rgba(221, 229, 241, 0.96);
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 24px rgba(15, 34, 58, 0.05);
}

.recent-listing .listing_info:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 30px rgba(15, 34, 58, 0.08);
}

.recent-listing .listing_link{
  margin-bottom:7px;
  font-size:0.94rem;
}

.recent-listing .listing_meta p{
  color:#6a7c94;
  font-size:0.84rem;
}

.footer-home{
  margin-top:18px;
  padding:24px 24px 18px !important;
  border:1px solid rgba(28, 48, 87, 0.92) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg, #1c3157 0%, #162746 100%) !important;
  box-shadow:0 20px 44px rgba(10, 22, 46, 0.18) !important;
  color:rgba(234, 241, 255, 0.9);
}

.footer-home-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.2fr) repeat(2, minmax(150px, 0.7fr)) minmax(220px, 1fr);
  gap:24px;
  align-items:start;
}

.footer-brand-lockup{
  display:flex;
  align-items:flex-start;
  gap:14px;
  color:#fff !important;
}

.footer-brand-icon{
  width:44px;
  height:44px;
  border-radius:14px;
  background:linear-gradient(180deg, #2f5ea8 0%, #1d3f76 100%);
  position:relative;
  box-shadow:0 10px 22px rgba(0, 0, 0, 0.18);
}

.footer-brand-icon::before{
  content:"";
  position:absolute;
  inset:9px 11px;
  border:2px solid rgba(255,255,255,0.9);
  border-radius:10px 10px 12px 12px;
}

.footer-brand-name{
  display:block;
  margin-bottom:8px;
  color:#fff;
  font-size:1.05rem;
  font-weight:800;
}

.footer-brand-text{
  display:block;
  max-width:18rem;
  color:rgba(226, 235, 250, 0.82);
  font-size:0.88rem;
  line-height:1.7;
}

.footer-home-heading{
  margin:0 0 10px;
  color:#fff;
  font-size:0.74rem;
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.footer-home .footer-links{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
  margin:0;
}

.footer-home .footer-links a,
.footer-home .footer-links span{
  padding:0;
  color:rgba(226, 235, 250, 0.84) !important;
  font-size:0.9rem;
  font-weight:600;
}

.footer-home .footer-links a:hover{
  color:#fff !important;
}

.footer-home-note{
  padding:18px;
  border:1px solid rgba(70, 95, 142, 0.9);
  border-radius:16px;
  background:rgba(255,255,255,0.04);
}

.footer-home-note p{
  margin:0 0 14px;
  color:rgba(226, 235, 250, 0.82);
}

.footer-home-pill{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:#215fe1;
  color:#fff;
  font-size:0.78rem;
  font-weight:800;
}

.footer-home-bottom{
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid rgba(78, 103, 150, 0.72);
}

.footer-home-bottom p{
  margin:0;
  max-width:30rem;
  color:rgba(218, 229, 247, 0.72);
  font-size:0.81rem;
  line-height:1.6;
}

@media (max-width: 860px){
  .home-page #wrap{
    width:min(calc(100% - 16px), 1180px);
  }

  .header-home{
    padding:8px 0 4px !important;
    gap:14px !important;
  }

  .header-home .brand-copy{
    max-width:none;
  }

  .home-hero-shell{
    grid-template-columns:minmax(0, 1fr);
    padding:20px 18px;
    gap:18px;
  }

  .home-hero-title{
    max-width:none;
  }

  .home-layout{
    grid-template-columns:1fr;
    gap:16px;
  }

  .home-feature-grid{
    grid-template-columns:1fr 1fr;
  }

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

  .footer-home-bottom{
    flex-direction:column;
  }

  .home-main-content{
    padding:16px;
  }

  .home-hero{
    padding:20px 18px;
  }
}

@media (max-width: 560px){
  .header-account{
    justify-content:flex-start;
    width:100%;
  }

  .header-account-link{
    width:100%;
  }

  .home-hero-shell{
    padding:16px 14px;
    border-radius:16px;
  }

  .home-search-panel{
    padding:16px 14px;
    border-radius:16px;
  }

  .home-search-title{
    font-size:1.35rem;
  }

  .home-search-controls{
    flex-direction:column;
    align-items:stretch;
  }

  .home-search-controls input[type="submit"]{
    width:100%;
  }

  #search_bar input[type="text"],
  #search_bar input[type="submit"]{
    min-height:46px;
  }

  .home-hero{
    padding:18px 16px;
    border-radius:16px;
  }

  .home-hero h1{
    font-size:clamp(1.52rem, 1.2rem + 1.3vw, 1.9rem);
  }

  .home-benefits li{
    padding-left:24px;
    font-size:0.90625rem;
  }

  .home-feature-grid{
    grid-template-columns:1fr;
  }

  .footer-home{
    padding:18px 16px 16px !important;
  }

  .footer-home-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .home-layout{
    gap:14px;
  }
}

small{color:var(--text-muted);font-size:var(--fs-meta);}
#footer,
#footer p,
#footer a{
  font-size:0.875rem;
  line-height:1.55;
}

@media (max-width: 1120px){
  #conmn{
    grid-template-columns:minmax(210px, 228px) minmax(0,1fr);
  }

  #conmn.content-page-layout{
    grid-template-columns:minmax(0, 1fr);
  }

  .layout-main,
  .layout-side{
    grid-column:auto;
  }

  #conmn.two-col-layout{
    grid-template-columns:minmax(0,1fr);
  }

  #conrgt{
    grid-column:1 / -1;
  }
}

@media (max-width: 860px){
  #wrap{width:min(calc(100% - 22px), var(--container));}

  #header{
    flex-direction:column;
    align-items:stretch;
    padding:14px 16px;
    gap:14px;
  }

  #logo{
    flex:1 1 auto;
    max-width:none;
    margin-right:0;
    padding-right:0;
    border-right:0;
    padding-bottom:2px;
  }

  .brand-lockup{
    gap:12px;
  }

  .brand-logo-img{
    height:44px;
    max-height:48px;
    max-width:min(200px, 55vw);
  }

  #search_bar{
    width:100%;
    flex:1 1 auto;
    max-width:none;
    min-width:0;
  }

  .search-form{
    flex-direction:column;
    align-items:stretch;
  }

  #search_bar input[type="text"]{
    flex:0 0 auto;
    width:100%;
    min-height:0;
  }

  #search_bar input[type="submit"]{
    flex:0 0 auto;
    align-self:stretch;
  }

  #conmn{
    grid-template-columns:1fr;
  }

  .prts{
    width:50%;
  }

  #concnt{padding:14px;}
}

@media (max-width: 560px){
  body{font-size:14px;}
  #wrap{width:min(calc(100% - 16px), var(--container));margin:14px auto 22px;}
  #header{padding:14px;border-radius:var(--radius-lg);}
  #logo{align-items:flex-start;}
  .brand-lockup{
    flex-wrap:wrap;
    align-items:flex-start;
    gap:10px;
  }
  .brand-logo-wrap{padding:5px 6px;}
  .brand-logo-img{
    height:38px;
    max-height:42px;
    max-width:min(168px, 62vw);
  }
  .brand-mark{min-width:104px;font-size:1.02rem;padding:11px 14px;}
  .brand-subtitle{font-size:0.78rem;line-height:1.45;}
  .prts{width:100%;}
  .letter-cloud a,
  .letter-cloud span{min-width:28px;height:28px;padding:0 8px;font-size:0.78rem;}
  #footer{padding:14px 16px;}
}

/* Shared premium header/footer overrides */
.site-header{
  display:flex;
  flex-direction:column;
  gap:16px;
  padding:18px 20px;
  border:1px solid rgba(216, 227, 243, 0.96);
  border-radius:18px;
  background:
    radial-gradient(circle at top right, rgba(20,99,255,.07), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,251,255,0.98) 100%);
  box-shadow:0 18px 42px rgba(15, 34, 58, 0.07);
  backdrop-filter:none;
}

.site-header-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.site-header #logo{
  flex:1 1 auto;
  max-width:none;
  min-width:0;
  margin:0;
  padding:0;
  border:0;
}

.site-header .brand-lockup{
  gap:16px;
}

.site-header .brand-logo-wrap{
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}

.site-header .brand-logo-img{
  height:56px;
  max-height:56px;
  max-width:min(292px, 38vw);
}

.site-header .brand-copy{
  gap:7px;
}

.site-header .brand-kicker{
  padding:4px 9px;
  font-size:0.56rem;
  letter-spacing:0.08em;
}

.site-header .brand-subtitle{
  max-width:40ch;
  font-size:0.9rem;
  line-height:1.5;
}

.site-header--home{
  gap:0;
  padding:8px 4px 4px;
  border:0;
  background:transparent;
  box-shadow:none;
}

.site-header--home .site-header-top{
  align-items:flex-start;
}

.header-account{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
  flex:0 0 auto;
}

.header-account-meta{
  color:var(--text-muted);
  font-size:0.8rem;
  font-weight:700;
}

.header-account-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 18px;
  border:1px solid rgba(209, 220, 236, 0.95);
  border-radius:14px;
  background:#fff;
  color:#1b2b49;
  font-size:0.9rem;
  font-weight:700;
  box-shadow:0 8px 20px rgba(15, 34, 58, 0.06);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, color .16s ease;
}

.header-account-link:hover{
  color:var(--accent-strong);
  border-color:#bfd2ff;
  box-shadow:0 12px 26px rgba(15, 34, 58, 0.09);
  transform:translateY(-1px);
}

.site-search-shell{
  width:100%;
  min-width:0;
  padding:16px 18px;
  border:1px solid rgba(214, 225, 241, 0.94);
  border-radius:16px;
  background:linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
  box-shadow:0 12px 28px rgba(15, 34, 58, 0.05);
}

.site-search-shell .search-form{
  gap:12px;
}

.site-search-shell .search-label{
  margin-bottom:2px;
  font-size:0.95rem;
  font-weight:800;
  letter-spacing:-0.01em;
}

.site-search-shell .search-help{
  margin-bottom:10px;
  font-size:0.8rem;
}

.site-search-shell input[type="text"]{
  min-height:50px;
  padding:0 16px;
  border:1px solid rgba(200, 215, 230, 0.95);
  border-radius:12px;
  background:#fff;
  box-shadow:inset 0 1px 2px rgba(15, 34, 58, 0.03);
}

.site-search-shell input[type="submit"]{
  min-height:50px;
  min-width:116px;
  border-radius:12px;
}

.site-footer{
  margin-top:18px;
  padding:24px 24px 18px;
  border:1px solid rgba(28, 48, 87, 0.92);
  border-radius:18px;
  background:linear-gradient(180deg, #1c3157 0%, #162746 100%);
  box-shadow:0 20px 44px rgba(10, 22, 46, 0.18);
  color:rgba(234, 241, 255, 0.9);
}

.site-footer-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.25fr) repeat(2, minmax(160px, 0.7fr)) minmax(220px, 1fr);
  gap:24px;
  align-items:start;
}

.site-footer-brand-lockup{
  display:flex;
  align-items:flex-start;
  gap:14px;
  color:#fff;
}

.site-footer-logo-wrap{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:88px;
  min-height:56px;
}

.site-footer-logo{
  width:100%;
  max-width:88px;
  height:auto;
  object-fit:contain;
}

.site-footer-brand-copy{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}

.site-footer-brand-name{
  color:#fff;
  font-size:1.08rem;
  font-weight:800;
  letter-spacing:-0.02em;
}

.site-footer-brand-text{
  max-width:19rem;
  color:rgba(226, 235, 250, 0.82);
  font-size:0.88rem;
  line-height:1.7;
}

.site-footer-heading{
  margin:0 0 10px;
  color:#fff;
  font-size:0.74rem;
  font-weight:800;
  letter-spacing:0.08em;
  text-transform:uppercase;
}

.site-footer .footer-links{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
  margin:0;
}

.site-footer .footer-links a,
.site-footer .footer-links span{
  padding:0;
  color:rgba(226, 235, 250, 0.84);
  font-size:0.9rem;
  font-weight:600;
}

.site-footer .footer-links a:hover{
  color:#fff;
}

.site-footer-note{
  padding:18px;
  border:1px solid rgba(70, 95, 142, 0.9);
  border-radius:16px;
  background:rgba(255,255,255,0.04);
}

.site-footer-note p{
  margin:0 0 14px;
  color:rgba(226, 235, 250, 0.82);
  line-height:1.7;
}

.site-footer-pill{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:#215fe1;
  color:#fff;
  font-size:0.78rem;
  font-weight:800;
}

.site-footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid rgba(78, 103, 150, 0.72);
}

.site-footer-bottom p{
  margin:0;
  max-width:31rem;
  color:rgba(218, 229, 247, 0.72);
  font-size:0.81rem;
  line-height:1.6;
}

@media (max-width: 860px){
  .site-header{
    padding:16px;
  }

  .site-header-top{
    flex-direction:column;
    align-items:stretch;
  }

  .header-account{
    justify-content:flex-start;
  }

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

  .site-footer-bottom{
    flex-direction:column;
  }
}

@media (max-width: 560px){
  .site-header{
    padding:14px;
    border-radius:16px;
  }

  .site-header .brand-lockup{
    flex-wrap:wrap;
    align-items:flex-start;
    gap:10px;
  }

  .site-header .brand-logo-img{
    height:42px;
    max-height:42px;
    max-width:min(176px, 60vw);
  }

  .site-header .brand-subtitle{
    font-size:0.8rem;
  }

  .header-account-link{
    width:100%;
  }

  .site-search-shell{
    padding:14px;
  }

  .site-search-shell .search-form{
    flex-direction:column;
    align-items:stretch;
  }

  .site-footer{
    padding:18px 16px 16px;
  }

  .site-footer-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .site-footer-brand-lockup{
    flex-direction:column;
    gap:12px;
  }

  .site-footer-logo-wrap{
    width:auto;
    min-height:0;
    justify-content:flex-start;
  }
}

/* Shared shell correction pass */
body.home-page #wrap,
body.site-page #wrap{
  width:min(calc(100% - 48px), 1260px);
  margin:22px auto 30px;
}

.site-header{
  gap:10px;
  padding:14px 20px;
}

.site-header-top{
  gap:16px;
}

.site-header #logo{
  flex:1 1 640px;
}

.site-header .brand-lockup{
  gap:18px;
}

.site-header .brand-copy{
  gap:8px;
}

.site-header .brand-subtitle{
  max-width:44ch;
}

.site-header--home{
  padding:8px 12px 6px;
}

.site-header--home .site-header-top{
  align-items:center;
}

.header-account{
  margin-left:auto;
  gap:12px;
}

.header-account-link{
  padding:0 20px;
}

.site-search-shell{
  padding:12px 16px;
}

.site-footer{
  padding:30px 30px 22px !important;
  background:linear-gradient(180deg, #1b3157 0%, #132542 100%) !important;
  border-color:rgba(35, 58, 101, 0.98) !important;
  color:#eaf1ff !important;
}

.site-footer-grid{
  grid-template-columns:minmax(260px, 1.35fr) minmax(150px, 0.72fr) minmax(150px, 0.72fr) minmax(250px, 1fr);
  gap:28px;
}

.site-footer-brand-lockup{
  gap:18px;
  align-items:flex-start;
}

.site-footer-logo-wrap{
  width:156px;
  min-height:88px;
  justify-content:flex-start;
}

.site-footer-logo{
  max-width:156px;
}

.site-footer-brand-copy{
  gap:10px;
  padding-top:4px;
}

.site-footer-brand-name{
  font-size:1.22rem;
}

.site-footer-brand-text{
  max-width:20rem;
  color:rgba(234, 241, 255, 0.84);
  font-size:0.92rem;
}

.site-footer-heading{
  color:#ffffff;
}

.site-footer .footer-links a,
.site-footer .footer-links span,
.site-footer p,
.site-footer small{
  color:rgba(233, 240, 255, 0.86) !important;
}

.site-footer .footer-links a:hover{
  color:#ffffff !important;
}

.site-footer-note{
  padding:20px;
  border-color:rgba(82, 108, 156, 0.95);
  background:linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.03) 100%);
}

.site-footer-note p{
  color:rgba(236, 242, 255, 0.84) !important;
}

.site-footer-pill{
  background:linear-gradient(180deg, #2f73ff 0%, #1f5fe1 100%);
  box-shadow:0 12px 24px rgba(18, 58, 145, 0.28);
}

.site-footer-bottom{
  align-items:flex-start;
  gap:28px;
  margin-top:22px;
  padding-top:18px;
}

.site-footer-bottom p{
  color:rgba(220, 230, 248, 0.76) !important;
}

@media (max-width: 860px){
  body.home-page #wrap,
  body.site-page #wrap{
    width:min(calc(100% - 28px), 1260px);
  }

  .site-header{
    padding:18px 18px;
  }

  .site-header--home{
    padding:8px 2px 6px;
  }

  .site-header-top{
    gap:18px;
  }

  .site-footer{
    padding:24px 22px 20px !important;
  }

  .site-footer-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:22px;
  }

  .site-footer-logo-wrap{
    width:132px;
    min-height:74px;
  }

  .site-footer-logo{
    max-width:132px;
  }
}

@media (max-width: 560px){
  body.home-page #wrap,
  body.site-page #wrap{
    width:min(calc(100% - 18px), 1260px);
    margin:16px auto 24px;
  }

  .site-header{
    padding:14px 14px;
  }

  .site-header--home{
    padding:4px 0 2px;
  }

  .site-footer{
    padding:20px 16px 18px !important;
  }

  .site-footer-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .site-footer-logo-wrap{
    width:124px;
    min-height:0;
  }

  .site-footer-logo{
    max-width:124px;
  }

  .site-footer-brand-name{
    font-size:1.1rem;
  }
}

/* ============================================================
   SPECIFICITY FIX PASS
   Plain #header (0,1,0,0) beats .site-header (0,0,1,0).
   Compound selectors (0,1,1,0) restore the intended layout.
   ============================================================ */

/* ---- Inner-page header card ---- */
#header.site-header{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:10px;
  padding:14px 20px;
  border:1px solid rgba(216,227,243,0.96);
  border-radius:16px;
  background:
    radial-gradient(circle at top right, rgba(20,99,255,.06), transparent 30%),
    linear-gradient(180deg,rgba(255,255,255,0.98) 0%,rgba(248,251,255,0.98) 100%);
  backdrop-filter:none;
  box-shadow:0 6px 20px rgba(15,34,58,0.06);
  margin-bottom:var(--space-section);
}

/* Homepage header: no card, no border — sits transparently above the hero */
#header.site-header--home{
  gap:0;
  padding:6px 8px 2px;
  border:0;
  background:transparent;
  box-shadow:none;
  border-radius:0;
}

/* Search bar: override old flex-row props so it fills the column correctly */
#header.site-header #search_bar{
  flex:0 0 auto;
  min-width:0;
  align-self:stretch;
  width:100%;
}

/* ============================================================
   SITE NAVIGATION BAR
   ============================================================ */

.site-nav{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
  padding:12px 0 0;
  border-top:1px solid rgba(219,229,240,0.88);
}

.site-nav-link{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:0 14px;
  border-radius:999px;
  color:var(--text-soft);
  font-size:0.875rem;
  font-weight:600;
  transition:background .15s ease, color .15s ease;
  text-decoration:none;
}

.site-nav-link:hover{
  background:var(--accent-soft);
  color:var(--accent-strong);
}

.site-nav-link--cta{
  margin-left:auto;
  background:linear-gradient(180deg,var(--accent) 0%,var(--accent-strong) 100%);
  color:#fff;
  font-weight:700;
  box-shadow:0 6px 14px rgba(20,99,255,0.16);
}

.site-nav-link--cta:hover{
  background:linear-gradient(180deg,var(--accent) 0%,var(--accent-strong) 100%);
  color:#fff;
  opacity:.92;
}

/* Hide nav on homepage — hero panel is the navigation aid there */
.site-header--home .site-nav{
  display:none;
}

/* ============================================================
   LISTING CARD POLISH
   ============================================================ */

/* Make the company name link feel more like a headline CTA */
.listing_info .listing_link a{
  font-size:1rem;
  font-weight:700;
  letter-spacing:-0.01em;
}

/* Reveal a subtle "View profile" arrow on card hover */
.listing_info .listing_link a::after{
  content:" \2192";
  font-weight:400;
  opacity:0;
  font-size:0.85em;
  margin-left:2px;
  transition:opacity .15s ease, transform .15s ease;
  display:inline-block;
  transform:translateX(-4px);
}

.listing_info:hover .listing_link a::after{
  opacity:0.55;
  transform:translateX(0);
}

/* Slightly more visual separation between meta lines */
.listing_meta p{
  display:flex;
  align-items:flex-start;
  gap:6px;
}

/* Category pill on search results */
.listing_meta p:last-child{
  margin-top:3px;
}

/* Stronger hover ring */
.listing_info:hover{
  border-color:rgba(20,99,255,0.22);
  box-shadow:0 8px 24px rgba(20,99,255,0.08);
}

/* Ensure .cplist uses grid (already defined, but reinforce gap) */
.cplist{
  gap:10px;
}

/* ============================================================
   SIDEBAR SECTION TITLES (replaces inline style="margin-top")
   ============================================================ */

.sidebar-section-title{
  display:block;
  margin:14px 0 8px;
  color:var(--heading);
  font-size:0.8125rem;
  font-weight:700;
  letter-spacing:0.01em;
}

.sidebar-indent{
  padding-left:10px;
}

/* ============================================================
   SEARCH FORM COMPACTION
   Hide the verbose label + help block in the header to make
   the search bar a lean single-row control (placeholder already
   carries the hint). On mobile it stacks input then button.
   ============================================================ */

#header.site-header .search-label,
#header.site-header .search-help{
  display:none;
}

/* .site-search-shell: strip excess padding inside the header */
#header.site-header .site-search-shell{
  padding:10px 14px;
  border-radius:12px;
}

/* Search form: single row, input grows, button fixed */
#header.site-header .search-form{
  flex-wrap:nowrap;
  align-items:stretch;
  gap:8px;
}

#header.site-header .search-form input[type="text"]{
  flex:1 1 auto;
  min-width:0;
  min-height:44px;
  font-size:0.9rem;
}

#header.site-header .search-form input[type="submit"]{
  flex:0 0 auto;
  min-width:130px;
  min-height:44px;
  font-size:0.875rem;
  white-space:nowrap;
}

/* ============================================================
   BRAND IDENTITY FIXES
   ============================================================ */

/* Kicker was 0.56rem (9px) — literally unreadable. Raise to 11px. */
#header.site-header .brand-kicker{
  font-size:0.6875rem;
  padding:3px 8px;
}

/* Logo: slightly smaller than the home variant to keep header compact */
#header.site-header .brand-logo-img{
  height:44px;
  max-height:48px;
}

/* Brand copy: tighter gap, subtitle constrained */
#header.site-header .brand-copy{
  gap:5px;
}

#header.site-header .brand-subtitle{
  font-size:0.8125rem;
  max-width:38ch;
  line-height:1.4;
}

/* Header-top: closer gap between logo column and account button */
#header.site-header .site-header-top{
  gap:16px;
  align-items:center;
}

/* Nav: tighter top padding and separator */
#header.site-header .site-nav{
  padding:8px 0 0;
  gap:2px;
  border-top:1px solid rgba(219,229,240,0.78);
}

/* ============================================================
   CONTAINER & WRAP
   Standardise to 1200px max, 20px each side gutter.
   ============================================================ */

body.home-page #wrap,
body.site-page #wrap{
  width:min(calc(100% - 40px), 1280px);
  margin:18px auto 26px;
}

/* ============================================================
   FOOTER PADDING REDUCTION
   30px was excessive — trim to 22px for a tighter block.
   ============================================================ */

.site-footer{
  padding:22px 24px 18px !important;
}

/* ============================================================
   RESPONSIVE CORRECTIONS FOR NEW COMPONENTS
   ============================================================ */

/* ---- 1024px tablet ---- */
@media (max-width:1024px){
  body.home-page #wrap,
  body.site-page #wrap{
    width:min(calc(100% - 32px), 1280px);
    margin:16px auto 24px;
  }

  #header.site-header{
    padding:12px 16px;
    gap:9px;
  }

  #header.site-header .site-search-shell{
    padding:9px 12px;
  }
}

/* ---- 860px: tablet portrait ---- */
@media (max-width:860px){
  body.home-page #wrap,
  body.site-page #wrap{
    width:min(calc(100% - 24px), 1280px);
    margin:14px auto 22px;
  }

  #header.site-header{
    padding:12px 14px;
    gap:8px;
  }

  #header.site-header--home{
    padding:4px 4px 2px;
  }

  .site-nav{
    padding:7px 0 0;
    gap:2px;
  }

  .site-nav-link{
    min-height:34px;
    padding:0 11px;
    font-size:0.8125rem;
  }

  .site-nav-link--cta{
    margin-left:0;
  }
}

/* ---- 640px: keep site-header-top as a row (logo + account side by side) ---- */
@media (max-width:640px){
  /* Override the 860px rule that stacks site-header-top into column too early */
  .site-header-top{
    flex-direction:row;
    align-items:center;
    flex-wrap:nowrap;
  }

  .header-account{
    justify-content:flex-end;
    flex:0 0 auto;
  }

  /* Account link: compact pill on mid-mobile */
  .header-account-link{
    min-height:36px;
    padding:0 14px;
    font-size:0.8rem;
    border-radius:10px;
  }

  /* Brand subtitle: hide on mid-mobile to save row space */
  .site-header .brand-subtitle{
    display:none;
  }
}

/* ---- 560px: compact mobile ---- */
@media (max-width:560px){
  body.home-page #wrap,
  body.site-page #wrap{
    width:min(calc(100% - 16px), 1280px);
    margin:12px auto 20px;
  }

  #header.site-header{
    padding:10px 12px;
    gap:7px;
  }

  #header.site-header .site-search-shell{
    padding:8px 10px;
  }

  .site-nav{
    gap:1px;
    padding:6px 0 0;
  }

  .site-nav-link{
    min-height:32px;
    padding:0 9px;
    font-size:0.78rem;
  }

  .site-nav-link--cta{
    padding:0 11px;
  }
}

/* ---- Footer mobile overrides (need !important to beat correction pass) ---- */
@media (max-width:860px){
  .site-footer{
    padding:18px 20px 16px !important;
  }

  .site-footer-grid{
    gap:20px;
  }
}

@media (max-width:560px){
  .site-footer{
    padding:16px 16px 14px !important;
  }

  .site-footer-grid{
    gap:16px;
  }
}

/* ---- 480px: narrow mobile — stack search form ---- */
@media (max-width:480px){
  #header.site-header .search-form{
    flex-wrap:wrap;
    gap:6px;
  }

  #header.site-header .search-form input[type="text"]{
    width:100%;
    flex:1 1 100%;
  }

  #header.site-header .search-form input[type="submit"]{
    width:100%;
    min-width:0;
    flex:1 1 100%;
  }

  /* Kicker: hide on very narrow screens — saves a full line */
  #header.site-header .brand-kicker{
    display:none;
  }
}

/* ============================================================
   SESSION 3 — RESPONSIVE FIX + BUTTON STANDARDISATION
   ============================================================ */

/* ---- 1. Prevent horizontal overflow on narrow viewports ---- */

html{
  overflow-x:hidden;
  max-width:100%;
}

/* Ensure all layout containers can shrink below their content width */
#wrap, #content, #conmn,
#conlft, #conctr, #conrgt,
#conlftbr, #conctrbr, #conrgtbr, #concnt{
  min-width:0;
  box-sizing:border-box;
}

/* Global image guard — prevents oversized images from forcing scroll */
img{
  max-width:100%;
  height:auto;
}

/* Preserve explicit logo height — compound selector wins over the img rule above */
/* (no extra rule needed; #header.site-header .brand-logo-img specificity already wins) */

/* Responsive iframes/embeds */
iframe, embed, object{
  max-width:100%;
}

/* ---- 2. Form inputs: can't be wider than their container ---- */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="url"],
textarea,
select{
  max-width:100%;
  box-sizing:border-box;
}

/* ---- 3. Tables: scrollable block on narrow screens ---- */

@media (max-width:640px){
  .layout-main table,
  .page-panel table,
  #conctrbr table{
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    width:100%;
  }
}

/* ============================================================
   BUTTON SYSTEM — SECONDARY VARIANT
   ============================================================ */

/* Secondary: white bg, blue text, subtle border — mirrors header-account-link */
.btn-secondary,
a.btn-secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:9px 18px;
  border:1px solid rgba(209,220,236,0.95);
  border-radius:999px;
  background:#fff;
  color:var(--accent-strong);
  font:600 var(--fs-btn)/1 var(--font-body);
  box-shadow:0 2px 8px rgba(15,34,58,0.06);
  cursor:pointer;
  text-decoration:none;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.btn-secondary:hover,
a.btn-secondary:hover{
  border-color:#bfd2ff;
  background:var(--accent-soft);
  color:var(--accent-strong);
  box-shadow:0 4px 12px rgba(20,99,255,0.10);
}

/* Small variant — applies to both primary and secondary */
.btn-sm,
a.btn-sm{
  padding:5px 14px;
  font-size:0.78rem;
  min-height:30px;
}

/* ---- Align header-account-link to pill system ---- */

.header-account-link{
  border-radius:999px;
}

/* ============================================================
   PAGINATION — FLEX WRAP SO PILLS WRAP ON MOBILE
   ============================================================ */

.wp-pagenavi2{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:4px;
}

/* Remove the individual margin now that gap handles spacing */
.wp-pagenavi2 span.pages,
.wp-pagenavi2 span.current,
.wp-pagenavi2 a:link,
.wp-pagenavi2 a:visited{
  margin:0;
}

/* ============================================================
   360–400px: NARROWEST PHONE PASS
   ============================================================ */

@media (max-width:400px){
  body.home-page #wrap,
  body.site-page #wrap{
    width:calc(100% - 12px);
    margin:10px auto 16px;
  }

  #header.site-header{
    padding:8px 10px;
    gap:6px;
  }

  /* Nav: scroll horizontally rather than overflow or break */
  #header.site-header .site-nav{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    flex-wrap:nowrap;
    padding-bottom:4px;
    scrollbar-width:none;
  }
  #header.site-header .site-nav::-webkit-scrollbar{
    display:none;
  }

  .site-nav-link{
    min-height:30px;
    padding:0 8px;
    font-size:0.75rem;
    white-space:nowrap;
    flex-shrink:0;
  }

  #header.site-header .site-search-shell{
    padding:6px 8px;
  }

  /* Pagination: smaller pills on 360px */
  .wp-pagenavi2 span.pages,
  .wp-pagenavi2 span.current,
  .wp-pagenavi2 a:link,
  .wp-pagenavi2 a:visited{
    padding:4px 8px;
    font-size:0.72rem;
  }
}

/* ============================================================
   SESSION 4 — AUTH PAGES & CONTENT PAGES WIDENING
   ============================================================ */

/* ---- Auth shell: 26/28rem (416/448px) → 34/36/38rem (544/576/608px) ----
   Previous values were too narrow — form floated isolated in 1200px wrap.   */

.auth-layout__shell{
  max-width:34rem;
  padding:0 8px;
}

@media (min-width:520px){
  .auth-layout__shell{
    max-width:36rem;
    padding:0 10px;
  }
}

@media (min-width:768px){
  .auth-layout__shell{
    max-width:38rem; /* 608px — top of 520-620px design target */
    padding:0;
  }
}

/* ---- Auth form card: more padding (was 18px 20px) ---- */

#conmn.auth-layout .form-card{
  padding:28px 32px 30px;
}

@media (max-width:480px){
  #conmn.auth-layout .form-card{
    padding:20px 18px 22px;
  }
}

/* ---- Auth title: slightly more gap below ---- */

.auth-title{
  margin:0 0 22px;
}

/* ---- Auth layout: breathing room between header and form ---- */

#conmn.auth-layout{
  padding-top:10px;
}

/* ---- Form inputs: full width — overrides size= HTML attribute ---- */

.form-card input[type="text"],
.form-card input[type="email"],
.form-card input[type="password"]{
  width:100%;
  box-sizing:border-box;
}

/* ---- Auth submit button: full-width, comfortable height ---- */

#conmn.auth-layout .form-actions{
  flex-direction:column;
  align-items:stretch;
}

#conmn.auth-layout .form-actions input[type="submit"]{
  width:100%;
  min-height:46px;
  font-size:1rem;
  letter-spacing:0.01em;
}

/* ---- Register split: widen form column (22rem → 24rem) and shell (56rem → 62rem) ---- */

#conmn.auth-layout--register .auth-layout__shell--split{
  grid-template-columns:minmax(0, 1.2fr) minmax(0, 24rem);
  max-width:62rem;
}

#conmn.auth-layout--register .form-card{
  padding:24px 28px 26px;
}

#conmn.auth-layout--register .form-actions{
  flex-direction:column;
  align-items:stretch;
}

#conmn.auth-layout--register .form-actions input[type="submit"]{
  width:100%;
  min-height:46px;
  font-size:1rem;
}

/* ---- Content page shell: fill site container (58rem → var(--container) = 1080px) ---- */

.content-page-shell{
  max-width:var(--container);
  padding:0 8px;
}

/* ---- Content page card: premium padding (26px 28px → 36px 40px) ---- */

.content-page-card{
  padding:36px 40px 42px;
}

@media (max-width:640px){
  .content-page-card{
    padding:22px 20px 24px;
  }
}

@media (max-width:400px){
  .content-page-card{
    padding:18px 16px 20px;
  }
}

/* ---- My-account main panel: replaces float:left;width:777px inline style ----
   Spans grid columns 2-3 (main + right), removes fixed 777px width.         */

.account-main-panel{
  grid-column:2 / -1;
  min-width:0;
}

@media (max-width:860px){
  .account-main-panel{
    grid-column:auto;
  }
}

/* ============================================================
   SESSION 6 — HEADER & LOGO POLISH
   Logo +~23% (44px → 54px inner, 60px home).
   Tighter vertical header padding so the larger logo fills the
   space instead of floating in a blank block.
   ============================================================ */

/* ---- Logo size (compound selectors win over earlier rules) ---- */

#header.site-header .brand-logo-img{
  height:54px;
  max-height:60px;
  width:auto;
  object-fit:contain;
}

#header.site-header--home .brand-logo-img{
  height:60px;
  max-height:64px;
}

/* ---- Lockup spacing: tighter gap between icon and copy when copy exists ---- */

#header.site-header .brand-lockup{
  gap:14px;
  align-items:center;
}

/* ---- Brand-copy: align its top with the optical centre of the logo ---- */

#header.site-header .brand-copy{
  gap:4px;
  justify-content:center;
}

/* ---- Header padding: trim vertical so the bigger logo doesn't float ---- */

#header.site-header{
  padding:11px 20px;
}

#header.site-header--home{
  padding:4px 6px 0;
}

/* ---- Header-top row: clean alignment, single row on desktop ---- */

#header.site-header .site-header-top{
  gap:18px;
  align-items:center;
  flex-wrap:nowrap;
}

/* ---- Logo wrap: no border/box around the image ---- */

#header.site-header .brand-logo-wrap{
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  display:inline-flex;
  align-items:center;
}

/* ---- Tablet: keep the bigger logo but shrink slightly to preserve row layout ---- */

@media (max-width:1024px){
  #header.site-header .brand-logo-img{
    height:50px;
    max-height:56px;
  }
  #header.site-header--home .brand-logo-img{
    height:54px;
    max-height:60px;
  }
  #header.site-header{
    padding:10px 16px;
  }
}

/* ---- Tablet portrait (~768/853px): logo + account stay on one row ---- */

@media (max-width:860px){
  #header.site-header .brand-logo-img{
    height:48px;
    max-height:52px;
  }
  #header.site-header--home .brand-logo-img{
    height:50px;
    max-height:56px;
  }
  #header.site-header .brand-lockup{
    gap:12px;
  }
}

/* ---- Mid-mobile (640px): brand-subtitle already hidden by session 2; tighten gap ---- */

@media (max-width:640px){
  #header.site-header .brand-logo-img{
    height:46px;
    max-height:50px;
  }
  #header.site-header--home .brand-logo-img{
    height:46px;
    max-height:50px;
  }
  #header.site-header .brand-lockup{
    gap:10px;
  }
}

/* ---- Narrow mobile (390px / 360px): logo readable but compact ---- */

@media (max-width:480px){
  #header.site-header .brand-logo-img{
    height:42px;
    max-height:46px;
  }
  #header.site-header--home .brand-logo-img{
    height:44px;
    max-height:48px;
  }
  #header.site-header{
    padding:9px 12px;
  }
}

/* ============================================================
   SESSION 7 — CONTENT/AUTH WIDTH ALIGNMENT WITH HEADER
   --container bumped 1080 → 1200 in :root so content pages
   match the header band. The fixes below make that explicit
   and tighten the auth visual so a 608px card no longer feels
   orphaned in a 1200px wrap.
   ============================================================ */

/* ---- Content pages: full-width band matching header ---- */

.content-page-shell{
  max-width:min(100%, 1200px);
  width:100%;
  margin:0 auto;
  padding:0 8px;
}

@media (max-width:1024px){
  .content-page-shell{ padding:0 12px; }
}

@media (max-width:640px){
  .content-page-shell{ padding:0 14px; }
}

/* ---- Content prose: stay readable inside the wider card ---- */

.content-prose{
  max-width:min(72ch, 100%);
}

.content-prose p{
  line-height:1.72;
  margin:0 0 1em;
}

.content-prose p:last-child{ margin-bottom:0; }

/* ---- Auth pages: form card stays 608px (readability) but the
   surrounding band widens to ~1000px with a subtle tinted surface
   so the card doesn't float in dead white space. ---- */

#conmn.auth-layout{
  width:100%;
  max-width:min(100%, 1100px);
  margin:0 auto;
  padding:18px 8px 12px;
  background:
    radial-gradient(circle at 18% 12%, rgba(20,99,255,0.05), transparent 42%),
    radial-gradient(circle at 82% 88%, rgba(15,79,204,0.04), transparent 42%);
  border-radius:18px;
}

@media (max-width:768px){
  #conmn.auth-layout{
    padding:14px 6px 10px;
    background:none; /* keep mobile clean */
    border-radius:0;
  }
}

/* Card stays 608px, just nudge the centring */
.auth-layout__shell{
  margin:0 auto;
}

/* ---- Generalise the split shell so it can be reused beyond register ----
   Removes the --register scope from the existing rule so any auth
   page can opt into the 2-column info-panel + form layout by
   adding the .auth-layout__shell--split class. ---- */

#conmn.auth-layout .auth-layout__shell--split{
  display:grid;
  grid-template-columns:minmax(0, 1.2fr) minmax(0, 24rem);
  gap:clamp(20px, 3vw, 36px);
  align-items:start;
  max-width:62rem;
  width:100%;
  margin:0 auto;
  padding:0 10px;
}

@media (max-width:860px){
  #conmn.auth-layout .auth-layout__shell--split{
    grid-template-columns:1fr;
    max-width:38rem;
    gap:22px;
    padding:0 6px;
  }
}

/* ---- Mobile gutters: align content/auth with the 1200px wrap ---- */

@media (max-width:560px){
  body.home-page #wrap,
  body.site-page #wrap{
    width:min(calc(100% - 16px), 1280px);
  }
}

@media (max-width:400px){
  body.home-page #wrap,
  body.site-page #wrap{
    width:calc(100% - 12px);
  }
}

/* ============================================================
   SESSION 8 — LocalBritain content/auth width normalization
   The previous fix only added a faint background tint; the
   form card was still 608px isolated in dead space and the
   content card was 1200px while the task wants 1280px with
   bigger padding. This block:
     - widens content shell to full container (1280px)
     - bumps content card padding 36/40 → 48/56 (per spec)
     - adds generic .auth-info-* classes so login+reset can
       opt into the 2-col info-panel + form layout that
       register has had since session 4
     - keeps form card at 608px (readability) but now sitting
       beside a real welcome panel, not in empty space
   ============================================================ */

/* ---- Content page: full 1280px band, generous card padding ---- */

.content-page-shell{
  max-width:1280px;
  width:min(100% - 64px, 1280px);
  margin:0 auto;
  padding:0;
}

.content-page-card{
  width:100%;
  max-width:1280px;
  margin:24px auto 48px;
  padding:48px 56px;
  box-sizing:border-box;
}

@media (max-width:1024px){
  .content-page-card{ padding:36px 40px 40px; }
}

@media (max-width:768px){
  .content-page-shell{ width:min(100% - 32px, 1280px); }
  .content-page-card{ padding:28px 28px 30px; margin:18px 0 36px; }
}

@media (max-width:480px){
  .content-page-shell{ width:min(100% - 24px, 1280px); }
  .content-page-card{ padding:22px 18px 24px; margin:14px 0 28px; }
}

/* Inner readable text column — keeps long prose at human-friendly width */
.content-prose{
  max-width:980px;
  margin:0;
}

/* ---- Auth pages: 2-column info panel + form (login + reset opt in) ----
   Generic .auth-info-* classes mirror register's .auth-register-* visuals.
   On desktop: 1.2fr info column + 24rem form column, max-width 62rem.
   On mobile (≤860px): stacks to 1 column. ---- */

.auth-info-panel{
  min-width:0;
  padding:32px 32px 30px;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg, #ffffff 0%, var(--surface-soft) 100%);
  box-shadow:var(--shadow-sm);
}

.auth-info-eyebrow{
  margin:0 0 10px;
  font-size:var(--fs-label);
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-muted);
}

.auth-info-heading{
  margin:0 0 12px;
  font-size:1.25rem;
  font-weight:600;
  color:var(--heading);
  line-height:1.3;
  letter-spacing:-0.02em;
}

.auth-info-lead{
  margin:0 0 18px;
  font-size:0.9375rem;
  line-height:1.55;
  color:var(--text-soft);
}

.auth-info-list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}

.auth-info-list li{
  position:relative;
  padding-left:1rem;
  font-size:0.875rem;
  line-height:1.45;
  color:var(--text-soft);
}

.auth-info-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.55em;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--accent-strong);
}

.auth-form-wrap{ min-width:0; }

.auth-title--inline{
  text-align:left;
  margin:0 0 16px;
}

@media (max-width:860px){
  .auth-title--inline{ text-align:center; }
  .auth-info-panel{ padding:22px 22px; }
}

/* ---- Override session 7's narrow auth band — let the split layout
   provide its own width via .auth-layout__shell--split ---- */

#conmn.auth-layout{
  max-width:none;
  background:none;
  padding:8px 0 4px;
  border-radius:0;
}

#conmn.auth-layout--login,
#conmn.auth-layout--reset{
  /* split layout brings the natural width; no decorative band needed */
  padding-top:12px;
}

#conmn.auth-layout .auth-layout__shell--split{
  width:min(100% - 64px, 1200px);
  max-width:1200px;
  grid-template-columns:minmax(0, 1fr) minmax(560px, 620px);
  gap:clamp(28px, 4vw, 56px);
  padding:0;
}

#conmn.auth-layout .form-page{
  width:100%;
}

#conmn.auth-layout .form-card{
  width:100%;
  max-width:620px;
  box-sizing:border-box;
}

#conmn.auth-layout--register .auth-layout__shell--split{
  width:min(100% - 64px, 1200px);
  max-width:1200px;
  grid-template-columns:minmax(0, 1fr) minmax(560px, 620px);
}

@media (max-width:960px){
  #conmn.auth-layout .auth-layout__shell--split,
  #conmn.auth-layout--register .auth-layout__shell--split{
    width:min(100% - 32px, 620px);
    max-width:620px;
    grid-template-columns:1fr;
    gap:22px;
  }
}

/* ============================================================
   LocalBritain public container width normalization
   Header, search, main content cards, auth panels, and footer
   use one visual container edge.
   ============================================================ */

.localbritain-container,
body.home-page #wrap,
body.site-page #wrap{
  width:min(100% - 64px, 1440px);
  max-width:1440px;
  margin-left:auto;
  margin-right:auto;
}

#header.site-header,
#content,
#conmn,
.content-page-shell,
.content-page-card,
#conmn.auth-layout .auth-layout__shell--split,
#conmn.auth-layout--register .auth-layout__shell--split,
.site-footer{
  width:100%;
  max-width:none;
}

#header.site-header,
.site-footer{
  margin-left:0;
  margin-right:0;
}

#header.site-header .site-search-shell{
  width:100%;
  max-width:none;
}

.content-page-shell{
  padding:0;
}

.content-page-card{
  margin:24px 0 48px;
}

#conmn.auth-layout .auth-layout__shell--split,
#conmn.auth-layout--register .auth-layout__shell--split{
  grid-template-columns:minmax(0, 1fr) minmax(560px, 620px);
  gap:clamp(28px, 4vw, 56px);
  padding:0;
}

@media (max-width:1024px){
  .localbritain-container,
  body.home-page #wrap,
  body.site-page #wrap{
    width:min(100% - 40px, 1440px);
  }
}

@media (max-width:960px){
  #conmn.auth-layout .auth-layout__shell--split,
  #conmn.auth-layout--register .auth-layout__shell--split{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  .localbritain-container,
  body.home-page #wrap,
  body.site-page #wrap{
    width:min(100% - 24px, 1440px);
  }
}

/* ============================================================
   LocalBritain company action forms
   Overrides the legacy #conmn three-column shell on message/report pages.
   ============================================================ */

#conmn.company-action-page{
  display:block;
  width:min(100% - 64px, 1280px);
  max-width:1280px;
  margin:32px auto 56px;
}

.company-action-layout{
  display:grid;
  grid-template-columns:minmax(300px, 420px) minmax(520px, 720px);
  gap:40px;
  align-items:start;
  justify-content:center;
}

.company-action-copy{
  width:auto;
  max-width:420px;
  min-width:280px;
  padding-top:18px;
  float:none;
  position:static;
}

.company-action-eyebrow{
  display:inline-flex;
  align-items:center;
  margin:0 0 14px;
  padding:6px 11px;
  border:1px solid rgba(186, 208, 255, 0.92);
  border-radius:999px;
  background:rgba(232, 240, 255, 0.82);
  color:var(--accent-strong);
  font-size:0.6875rem;
  font-weight:800;
  letter-spacing:0.08em;
  line-height:1;
  text-transform:uppercase;
}

.company-action-copy h1{
  max-width:none;
  margin:0 0 16px;
  color:var(--heading);
  font-size:clamp(32px, 4vw, 52px);
  line-height:1.05;
  letter-spacing:0;
  word-break:normal;
  overflow-wrap:normal;
}

.company-action-copy p{
  max-width:58ch;
  margin:0;
  color:var(--text-soft);
  font-size:17px;
  line-height:1.7;
  word-break:normal;
  overflow-wrap:normal;
}

.company-action-copy p + p{
  margin-top:12px;
}

.company-action-company{
  color:var(--heading) !important;
  font-size:1.05rem !important;
  font-weight:800;
}

.company-action-card{
  width:100%;
  max-width:720px;
  gap:18px;
  padding:36px;
  border:1px solid rgba(219, 229, 240, 0.98);
  border-radius:18px;
  background:#fff;
  box-shadow:0 18px 46px rgba(15, 34, 58, 0.09);
}

.company-action-card form{
  gap:12px;
}

.company-action-card .field-label{
  margin:4px 0 -4px;
  font-size:0.875rem;
  font-weight:700;
}

.company-action-card input[type="text"],
.company-action-card input[type="email"],
.company-action-card input[type="tel"],
.company-action-card textarea{
  width:100%;
  max-width:100%;
  min-height:48px;
  padding:12px 14px;
  box-sizing:border-box;
  border-radius:12px;
  border-color:rgba(200, 215, 230, 0.95);
  background:#fff;
  font-size:0.9375rem;
}

.company-action-card textarea{
  min-height:160px;
  line-height:1.55;
}

.company-action-card .form-actions{
  justify-content:flex-end;
  gap:12px;
  margin-top:6px;
  padding-top:18px;
  border-top:1px solid rgba(219, 229, 240, 0.86);
}

.company-action-card .form-actions input[type="submit"],
.company-action-card .form-actions input[type="button"]{
  min-height:42px;
  padding:0 22px;
  border-radius:999px;
}

.report-option-group{
  gap:8px;
}

.report-option-group label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  width:100%;
  padding:12px 13px;
  border:1px solid rgba(219, 229, 240, 0.95);
  border-radius:12px;
  background:var(--surface-soft);
  color:var(--text);
  font-weight:600;
  transition:border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}

.report-option-group label:hover{
  border-color:#bfd2ff;
  background:#fff;
  box-shadow:0 8px 18px rgba(15, 34, 58, 0.055);
}

.report-option-group input[type="radio"]{
  flex:0 0 auto;
  margin-top:3px;
}

.report-option-group span{
  min-width:0;
}

@media (max-width:900px){
  #conmn.company-action-page{
    width:min(100% - 40px, 1280px);
  }

  .company-action-layout{
    grid-template-columns:1fr;
    gap:22px;
  }

  .company-action-copy{
    width:100%;
    max-width:none;
    min-width:0;
    padding-top:0;
  }

  .company-action-copy h1{
    max-width:none;
  }

  .company-action-card{
    max-width:none;
  }
}

@media (max-width:640px){
  #conmn.company-action-page{
    width:min(100% - 24px, 1280px);
    margin:18px auto 34px;
  }

  .company-action-card{
    padding:22px 20px;
  }

  .company-action-card .form-actions{
    justify-content:stretch;
  }

  .company-action-card .form-actions input[type="submit"],
  .company-action-card .form-actions input[type="button"]{
    width:100%;
  }
}

/* ============================================================
   LocalBritain user dashboard and claim search polish
   ============================================================ */

#conmn.account-dashboard{
  grid-template-columns:minmax(220px, 260px) minmax(0, 1fr);
  gap:18px;
  align-items:start;
}

.account-dashboard #conlftbr,
.account-dashboard .account-content-card{
  border:1px solid rgba(219, 229, 240, 0.95);
  background:#fff;
  border-radius:18px;
  box-shadow:0 14px 36px rgba(15, 34, 58, 0.07);
}

.account-dashboard #conlftbr{
  overflow:hidden;
  background:linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.account-sidebar-card{
  display:grid;
  gap:12px;
}

.account-sidebar-home{
  display:inline-flex;
  width:max-content;
  font-size:0.82rem;
  font-weight:700;
  color:var(--text-muted);
}

.account-sidebar-title{
  color:var(--heading);
  font-size:1.05rem;
  font-weight:800;
}

.account-nav{
  display:grid;
  gap:8px;
  margin:4px 0 0;
  padding:0;
  list-style:none;
}

.account-nav li{
  list-style:none;
}

.account-nav-link{
  display:flex;
  align-items:center;
  min-height:40px;
  padding:9px 12px;
  border:1px solid transparent;
  border-radius:12px;
  color:var(--text-soft);
  font-weight:700;
  line-height:1.25;
}

.account-nav-link:hover,
.account-nav-link.is-active{
  border-color:rgba(20, 99, 255, 0.18);
  background:var(--accent-soft);
  color:var(--accent-strong);
}

.account-nav-link--logout{
  margin-top:8px;
  border-color:var(--border);
  background:#fff;
  color:#9b2635;
}

.account-main-panel{
  grid-column:auto;
}

.account-content-card{
  padding:26px 28px 30px;
  min-height:320px;
}

.account-dashboard .box_head{
  margin-bottom:16px;
  padding:0;
  border:0;
  background:none;
  color:var(--heading);
  font-size:1.2rem;
  font-weight:800;
}

.account-dashboard .box_head + .clear + div[style*="margin"]{
  margin:0 0 20px !important;
}

.account-dashboard table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
}

.account-dashboard table tr:first-child td{
  background:#fff;
}

.account-dashboard table tr[bgcolor="#D2D2D2"] td{
  background:#f3f7fc !important;
  color:var(--heading);
  font-weight:800;
}

.account-dashboard table td{
  padding:12px 14px;
  border-bottom:1px solid var(--border);
  color:var(--text-soft);
  vertical-align:middle;
}

.account-dashboard table tr:last-child td{
  border-bottom:0;
}

.account-dashboard table a{
  font-weight:700;
}

.account-dashboard input[type="password"],
.account-dashboard input[type="text"]{
  width:min(100%, 420px);
  min-height:44px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  font:inherit;
}

.account-dashboard input[type="submit"],
.account-dashboard input[type="button"],
.claim-search-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:9px 16px;
  border:1px solid var(--accent);
  border-radius:12px;
  background:var(--accent);
  color:#fff;
  font-weight:800;
  cursor:pointer;
  text-decoration:none;
}

.account-recent-list li{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:4px 8px;
  padding:14px 16px;
  border-radius:14px;
  background:linear-gradient(180deg, #fff 0%, #f8fbff 100%);
  box-shadow:0 8px 22px rgba(15, 34, 58, 0.045);
}

.account-recent-list a{
  color:var(--heading);
  font-weight:800;
}

.account-recent-list span,
.account-empty{
  color:var(--text-muted);
}

.claim-search-result{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:18px;
  align-items:center;
}

.claim-search-result__body{
  min-width:0;
}

.claim-search-result__action{
  display:flex;
  justify-content:flex-end;
}

@media (max-width:860px){
  #conmn.account-dashboard{
    grid-template-columns:1fr;
  }

  .account-content-card{
    padding:22px 20px;
  }
}

@media (max-width:640px){
  .account-dashboard table{
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }

  .claim-search-result{
    grid-template-columns:1fr;
  }

  .claim-search-result__action,
  .claim-search-button{
    width:100%;
  }
}
