/* Wilson Estate — design system custom CSS */
:root{
  --we-bg:#FAFAFA;--we-bg-alt:#F4F4F5;--we-surface:#FFFFFF;
  --we-ink:#0A0A0A;--we-text:#1F1F23;--we-text-sec:#52525B;--we-text-muted:#71717A;
  --we-border:#E8E8EC;--we-border-strong:#D4D4D8;
  --we-primary:#6366F1;--we-primary-hover:#4F46E5;--we-primary-ring:rgba(99,102,241,.18);
  --we-radius-md:6px;--we-radius-xl:12px;--we-radius-2xl:20px;--we-radius-full:9999px;
}
body{font-family:'DM Sans',system-ui,sans-serif;color:var(--we-text);background:var(--we-bg);}
h1,h2,h3,h4,h5,h6,.we-display{font-family:'General Sans',system-ui,sans-serif;font-weight:600;letter-spacing:-.025em;color:var(--we-ink);line-height:1.1;}

/* Eyebrow with horizontal line */
.we-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--we-text-muted);margin:0 0 16px;}
.we-eyebrow::before{content:"";width:24px;height:1px;background:currentColor;opacity:.6;display:inline-block;}
.we-eyebrow .elementor-heading-title,.elementor-widget-heading .we-eyebrow{font-family:inherit!important;font-size:inherit!important;color:inherit!important;letter-spacing:inherit!important;text-transform:inherit!important;font-weight:inherit!important;}
.elementor-widget-heading .we-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:8px;}
.elementor-widget-heading .we-eyebrow .elementor-heading-title::before{content:"";width:24px;height:1px;background:currentColor;opacity:.6;}

/* Brand mark W. */
.we-brand-mark{display:inline-flex;align-items:center;gap:12px;font-family:'General Sans',sans-serif;font-weight:700;font-size:18px;letter-spacing:-.02em;color:var(--we-ink);text-decoration:none;}
.we-brand-mark .we-w{width:28px;height:28px;border-radius:6px;background:var(--we-ink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;}
.we-brand-mark .we-w .we-dot{color:var(--we-primary);}
footer .we-brand-mark{color:#FAFAFA;}
footer .we-brand-mark .we-w{background:#FAFAFA;color:var(--we-ink);}

/* Hero accent em */
.we-hero-em em,.we-hero-em .we-em{font-style:normal;color:var(--we-primary);font-weight:inherit;}

/* Eyebrow eyebrow heading wrapper - applied to elementor-widget-heading */
.we-eyebrow-wrap .elementor-heading-title{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace!important;font-size:12px!important;font-weight:500!important;letter-spacing:.12em!important;text-transform:uppercase;color:var(--we-text-muted)!important;}
.we-eyebrow-wrap .elementor-heading-title::before{content:"";width:24px;height:1px;background:currentColor;opacity:.6;flex-shrink:0;}

/* Stats band */
.we-stats-band{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--we-border);border-bottom:1px solid var(--we-border);}
@media(min-width:720px){.we-stats-band{grid-template-columns:repeat(4,1fr);}}
.we-stats-band__cell{padding:40px 24px;border-right:1px solid var(--we-border);}
.we-stats-band__cell:last-child{border-right:none;}
.we-stats-band__cell:nth-child(2n){border-right:none;}
@media(min-width:720px){.we-stats-band__cell{border-right:1px solid var(--we-border);}.we-stats-band__cell:nth-child(2n){border-right:1px solid var(--we-border);}.we-stats-band__cell:last-child{border-right:none;}}
.we-stats-band__num{font-family:'General Sans',sans-serif;font-size:clamp(36px,4.4vw,52px);font-weight:700;letter-spacing:-.035em;color:var(--we-ink);line-height:1;margin-bottom:12px;}
.we-stats-band__label{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--we-text-muted);letter-spacing:.06em;text-transform:uppercase;}

/* Listing card */
.we-listing{background:var(--we-surface);border:1px solid var(--we-border);border-radius:12px;overflow:hidden;transition:transform .18s,box-shadow .18s,border-color .18s;display:block;color:inherit;text-decoration:none;}
.we-listing:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,.08);border-color:var(--we-border-strong);color:inherit;}
.we-listing__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--we-bg-alt);}
.we-listing__media img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.we-listing:hover .we-listing__media img{transform:scale(1.03);}
.we-listing__badge{position:absolute;top:12px;left:12px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;background:#fff;color:var(--we-ink);padding:6px 10px;border-radius:9999px;border:1px solid var(--we-border);z-index:2;}
.we-listing__badge--accent{background:var(--we-ink);color:#fff;border-color:var(--we-ink);}
.we-listing__body{padding:20px 20px 24px;}
.we-listing__price{font-family:'General Sans',sans-serif;font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--we-ink);margin:0 0 4px;}
.we-listing__addr{font-size:14px;color:var(--we-text-sec);margin:0 0 16px;}
.we-listing__stats{display:flex;gap:16px;padding-top:16px;border-top:1px solid var(--we-border);font-size:13px;color:var(--we-text-muted);font-family:'JetBrains Mono',monospace;flex-wrap:wrap;}

/* Testimonial */
.we-testi{background:var(--we-surface);border:1px solid var(--we-border);border-radius:12px;padding:32px;display:flex;flex-direction:column;gap:24px;height:100%;}
.we-testi__quote{font-family:'General Sans',sans-serif;font-size:clamp(18px,1.7vw,22px);line-height:1.45;color:var(--we-ink);letter-spacing:-.015em;font-weight:500;margin:0;}
.we-testi__quote::before{content:"\201C";color:var(--we-primary);}
.we-testi__quote::after{content:"\201D";color:var(--we-primary);}
.we-testi__by{display:flex;align-items:center;gap:12px;padding-top:20px;border-top:1px solid var(--we-border);margin-top:auto;}
.we-testi__avatar{width:40px;height:40px;border-radius:9999px;background:linear-gradient(135deg,#C7D2FE,#6366F1);color:#fff;display:grid;place-items:center;font-family:'General Sans',sans-serif;font-weight:600;font-size:14px;flex-shrink:0;}
.we-testi__name{font-weight:600;font-size:14px;color:var(--we-ink);}
.we-testi__role{font-size:13px;color:var(--we-text-muted);}

/* CTA band dark */
.we-cta-band{background:var(--we-ink);color:#FAFAFA;border-radius:20px;padding:48px 32px;display:grid;grid-template-columns:1fr;gap:24px;align-items:center;}
@media(min-width:880px){.we-cta-band{grid-template-columns:1.4fr 1fr;padding:64px 56px;}}
.we-cta-band h2,.we-cta-band .elementor-heading-title{color:#fff!important;font-size:clamp(28px,3.2vw,40px);letter-spacing:-.03em;margin:0 0 12px;}
.we-cta-band p{color:#D4D4D8;max-width:48ch;margin:0;}
.we-cta-band__actions{display:flex;flex-wrap:wrap;gap:12px;}

/* Value cards (about) */
.we-value{display:flex;flex-direction:column;gap:12px;}
.we-value__num{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--we-primary);letter-spacing:.04em;font-weight:500;margin:0;}
.we-value h3{font-size:24px;margin:0;}
.we-value p{color:var(--we-text-sec);margin:0;}

/* Timeline */
.we-tl-step{padding:32px 0;border-top:1px solid var(--we-border);display:grid;grid-template-columns:1fr;gap:8px;}
@media(min-width:720px){.we-tl-step{grid-template-columns:200px 1fr;gap:32px;}}
.we-tl-step:last-child{border-bottom:1px solid var(--we-border);}
.we-tl-step__num{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--we-text-muted);letter-spacing:.06em;font-weight:500;}
.we-tl-step__title{font-family:'General Sans',sans-serif;font-size:22px;font-weight:600;color:var(--we-ink);letter-spacing:-.02em;margin:0 0 8px;}
.we-tl-step__body{color:var(--we-text-sec);margin:0;}

/* Service card */
.we-svc{background:var(--we-surface);border:1px solid var(--we-border);border-radius:12px;padding:32px;display:flex;flex-direction:column;gap:16px;height:100%;}
.we-svc__num{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--we-primary);letter-spacing:.06em;font-weight:500;text-transform:uppercase;margin:0;}
.we-svc h3{font-size:24px;margin:0;}
.we-svc p{color:var(--we-text-sec);margin:0;}
.we-svc ul{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:8px;}
.we-svc ul li{padding-left:20px;position:relative;font-size:15px;color:var(--we-text);}
.we-svc ul li::before{content:"\2192";position:absolute;left:0;color:var(--we-primary);font-weight:600;}

/* Compare table */
.we-compare{width:100%;border-collapse:collapse;background:var(--we-surface);border:1px solid var(--we-border);border-radius:12px;overflow:hidden;}
.we-compare th,.we-compare td{padding:18px 20px;text-align:left;border-bottom:1px solid var(--we-border);font-size:15px;}
.we-compare th{background:var(--we-bg-alt);font-family:'General Sans',sans-serif;font-weight:600;color:var(--we-ink);}
.we-compare tbody th{background:transparent;color:var(--we-text);font-weight:500;}
.we-compare .yes{color:var(--we-ink);}
.we-compare .no{color:var(--we-text-muted);}
.we-compare tr:last-child th,.we-compare tr:last-child td{border-bottom:none;}

/* FAQ */
.we-faq{display:grid;gap:8px;}
.we-faq details{background:var(--we-surface);border:1px solid var(--we-border);border-radius:12px;padding:0;}
.we-faq summary{padding:20px 24px;cursor:pointer;font-family:'General Sans',sans-serif;font-weight:600;color:var(--we-ink);font-size:16px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.we-faq summary::-webkit-details-marker{display:none;}
.we-faq summary::after{content:"+";color:var(--we-primary);font-size:20px;font-weight:400;flex-shrink:0;}
.we-faq details[open] summary::after{content:"\2212";}
.we-faq details p{padding:0 24px 20px;color:var(--we-text-sec);margin:0;}

/* Page header */
.we-page-header{padding:64px 0 40px;border-bottom:1px solid var(--we-border);}
.we-page-header h1{font-size:clamp(36px,4.6vw,56px);letter-spacing:-.035em;max-width:18ch;margin:0 0 20px;}
.we-lede{font-size:clamp(17px,1.6vw,20px);line-height:1.55;color:var(--we-text-sec);max-width:64ch;margin:0;}

/* Newsletter */
.we-newsletter{background:var(--we-bg-alt);border:1px solid var(--we-border);border-radius:12px;padding:40px;display:grid;gap:24px;grid-template-columns:1fr;align-items:center;}
@media(min-width:880px){.we-newsletter{grid-template-columns:1.4fr 1fr;}}
.we-newsletter h3{font-size:24px;margin:0 0 12px;}
.we-newsletter p{color:var(--we-text-sec);margin:0;}

/* Contact card */
.we-contact-card{background:var(--we-surface);border:1px solid var(--we-border);border-radius:12px;padding:32px;display:flex;flex-direction:column;gap:24px;}
.we-contact-list{list-style:none;margin:0;padding:0;display:grid;gap:20px;}
.we-contact-list li{display:grid;grid-template-columns:36px 1fr;gap:16px;align-items:start;}
.we-contact-list .we-ic{width:36px;height:36px;border-radius:6px;background:var(--we-bg-alt);display:grid;place-items:center;color:var(--we-ink);}
.we-contact-list .we-lbl{display:block;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--we-text-muted);margin-bottom:2px;}
.we-contact-list .we-val{font-size:16px;color:var(--we-ink);font-weight:500;}
.we-contact-list a.we-val{color:var(--we-primary);}
.we-hours{list-style:none;margin:0;padding:0;display:grid;gap:8px;}
.we-hours li{display:flex;justify-content:space-between;font-size:14px;color:var(--we-text-sec);border-bottom:1px dashed var(--we-border);padding-bottom:8px;}
.we-hours li:last-child{border-bottom:none;}
.we-hours strong{color:var(--we-ink);font-weight:500;}

/* Filter chips */
.we-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:40px;}
.we-chips .we-chip{font-family:'DM Sans',sans-serif;font-size:13px;padding:8px 14px;border-radius:9999px;background:var(--we-surface);border:1px solid var(--we-border);color:var(--we-text);cursor:pointer;}
.we-chips .we-chip[aria-pressed="true"]{background:var(--we-ink);color:#fff;border-color:var(--we-ink);}

/* Dark footer (overrides for inside .we-footer) */
.we-footer{background:var(--we-ink);color:#A1A1AA;padding:64px 0 32px;}
.we-footer h4{color:#FAFAFA;font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;margin:0 0 20px;}
.we-footer a{color:#D4D4D8;text-decoration:none;}
.we-footer a:hover{color:#fff;}
.we-footer p{color:#A1A1AA;font-size:14px;line-height:1.6;}
.we-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
.we-footer ul a{font-size:14px;}
.we-footer .we-fbottom{padding-top:24px;border-top:1px solid #27272A;margin-top:48px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;font-size:13px;color:#71717A;font-family:'JetBrains Mono',monospace;}
.we-footer-social{display:flex;gap:8px;}
.we-footer-social a{width:36px;height:36px;border-radius:6px;background:#1F1F23;display:grid;place-items:center;color:#D4D4D8;}
.we-footer-social a:hover{background:var(--we-primary);color:#fff;}

/* WPForms override to match design */
.wpforms-container .wpforms-field-label{font-family:'DM Sans',sans-serif!important;font-weight:500!important;color:var(--we-ink)!important;font-size:14px!important;}
.wpforms-container input[type=text],.wpforms-container input[type=email],.wpforms-container input[type=tel],.wpforms-container textarea,.wpforms-container select{border:1px solid var(--we-border)!important;border-radius:6px!important;padding:12px 14px!important;font-family:'DM Sans',sans-serif!important;font-size:16px!important;background:#fff!important;}
.wpforms-container input:focus,.wpforms-container textarea:focus,.wpforms-container select:focus{border-color:var(--we-primary)!important;box-shadow:0 0 0 3px var(--we-primary-ring)!important;outline:none!important;}
.wpforms-container button[type=submit]{background:var(--we-primary)!important;border:none!important;color:#fff!important;font-family:'DM Sans',sans-serif!important;font-weight:500!important;font-size:16px!important;padding:16px 24px!important;border-radius:6px!important;cursor:pointer!important;}
.wpforms-container button[type=submit]:hover{background:var(--we-primary-hover)!important;}
/* =====================================================================
   STRONG OVERRIDES - polish layer to win against Astra + Elementor defaults
   ===================================================================== */
body,
body.wp-singular,
.elementor-page,
.elementor-kit-9 {
  font-family: 'DM Sans', system-ui, -apple-system, sans-serif !important;
  color: #1F1F23 !important;
  background: #FAFAFA !important;
}
body h1, body h2, body h3, body h4, body h5, body h6,
.elementor-widget-heading .elementor-heading-title,
.elementor h1, .elementor h2, .elementor h3, .elementor h4, .elementor h5, .elementor h6,
.entry-title,
body .ast-container h1, body .ast-container h2, body .ast-container h3 {
  font-family: 'General Sans', system-ui, sans-serif !important;
  color: #0A0A0A;
  letter-spacing: -0.025em;
  line-height: 1.1;
  font-weight: 600;
}
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li,
.elementor-widget-text-editor span,
.elementor p, .elementor li, .elementor span,
.entry-content p, .entry-content li {
  font-family: 'DM Sans', system-ui, sans-serif;
  color: #1F1F23;
}
/* Buttons should use DM Sans */
.elementor-button,
.elementor-widget-button .elementor-button,
button, .wpforms-container button {
  font-family: 'DM Sans', system-ui, sans-serif !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}
/* Force eyebrow / mono labels to use JetBrains Mono */
.we-eyebrow,
.we-stats-band__label,
.we-tl-step__num,
.we-listing__badge,
.we-listing__stats,
.we-svc__num,
.we-value__num,
.we-contact-list .we-lbl,
.we-chips .we-chip {
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
}
/* Make sure the brand mark renders with General Sans even inside Astra */
.we-brand-mark, .we-brand-mark *,
footer .we-brand-mark, footer .we-brand-mark * {
  font-family: 'General Sans', system-ui, sans-serif !important;
}

/* Astra zero-out: remove default content-area padding/margins that fight Elementor layouts */
.page-template-elementor_header_footer .ast-container,
.page-template-elementor_header_footer #primary,
.page-template-elementor_header_footer .entry-content,
.page-template-elementor_header_footer .ast-article-single,
.page-template-elementor_header_footer .site-content {
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
}
.page-template-elementor_header_footer .site-content > .ast-container {
  max-width: none;
}
.page-template-elementor_header_footer .entry-header { display: none !important; }

/* Remove Astra's default page title bar */
.page-template-elementor_header_footer .ast-archive-description,
.page-template-elementor_header_footer .entry-title { display: none !important; }

/* Body should not have top padding from Astra header */
body.elementor-page .site-content { padding-top: 0 !important; }

/* Eyebrow line - re-assert it works on text-editor wrappers */
.elementor-widget-text-editor p.we-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'JetBrains Mono', ui-monospace, monospace !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: #71717A !important;
  margin: 0 0 16px !important;
}
.elementor-widget-text-editor p.we-eyebrow::before {
  content: "" !important;
  width: 24px !important;
  height: 1px !important;
  background: currentColor !important;
  opacity: 0.6 !important;
  display: inline-block !important;
  flex-shrink: 0 !important;
}

/* CTA band heading override - h2 inside .we-cta-band must be white */
.we-cta-band .elementor-widget-heading .elementor-heading-title,
.we-cta-band h2 {
  color: #FFFFFF !important;
}
.we-cta-band .elementor-widget-text-editor p,
.we-cta-band p {
  color: #D4D4D8 !important;
}

/* Footer text colors - inside .we-footer all text muted gray */
.we-footer,
.we-footer * {
  color: #A1A1AA;
}
.we-footer .elementor-widget-heading .elementor-heading-title,
.we-footer h4 {
  color: #FAFAFA !important;
}
.we-footer a, .we-footer .elementor-widget-text-editor a {
  color: #D4D4D8 !important;
}
.we-footer a:hover {
  color: #FFFFFF !important;
}

/* Listing card hover - elementor wrapper conflict fix */
.we-listing { transition: transform .2s, box-shadow .2s, border-color .2s; }
.we-listing:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(0,0,0,.08); border-color: #D4D4D8; }

/* Container max-width override (Elementor sets 1280px now, but ensure full-width inner sections still go edge to edge for stats band) */
.we-stats-band > .e-con-inner,
.we-stats-band.e-con-full > .e-con-inner { max-width: none; }

/* Header positioning - sticky at top */
.xpro-theme-builder-header {
  position: sticky !important;
  top: 0;
  z-index: 100;
  background: rgba(250,250,250,0.92);
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid #E8E8EC;
}
.xpro-theme-builder-header > * {
  background: transparent !important;
}

/* Hide the hidden XPRO main-title */
.xpro-theme-builder-header .main-title.xpro-hidden,
.main-title.xpro-hidden { display: none !important; }

/* Page header underline */
.we-page-header { border-bottom: 1px solid #E8E8EC; }