  :root{
    --ink:#121212;
    --ink-soft:#4A4A4A;
    --paper:#FAFAF8;
    --paper-raised:#FFFFFF;
    --accent:#1E5FD9;
    --accent-deep:#164FB8;
    --accent-on-dark:#1E5FD9;
    --line:#E4E2DD;
    --line-soft:#C7C5C0;
    --radius:2px;
    --serif: 'General Sans', sans-serif;
    --sans: 'General Sans', sans-serif;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans);
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  h1,h2,h3{font-family:var(--serif);font-weight:700;margin:0;line-height:1.05;letter-spacing:-0.02em;}
  p{margin:0;}
  :focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

  .mono-label{
    font-family:var(--sans);
    font-weight:600;
    font-size:0.72rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }

  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

  /* ---------- NAV ---------- */
  .nav{
    position:sticky;top:0;z-index:50;
    background:#121212;
    border-bottom:1px solid #2A2A2A;
    color:#FAFAF8;
    font-family:'Switzer','General Sans',sans-serif;
  }
  .nav-inner{
    max-width:1180px;margin:0 auto;padding:18px 32px;
    display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;
  }
  .nav-mark{font-family:var(--sans);font-size:0.82rem;letter-spacing:0.08em;font-weight:500;}
  .nav-mark span{color:var(--accent-deep);}
  .nav-brand{display:flex;align-items:center;gap:10px;flex-shrink:0;grid-column:1;justify-self:start;}
  .nav-logo-chip{
    display:inline-flex;align-items:center;background:transparent;
    padding:9px 0;flex-shrink:0;
  }
  .nav-logo-chip img{display:block;height:34px;width:auto;}
  .nav-links{display:flex;gap:24px;align-items:center;grid-column:2;justify-self:center;}
  .nav-links a{font-size:0.86rem;font-weight:500;position:relative;padding:4px 0;white-space:nowrap;}
  .nav-links a::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#FAFAF8;
    transform:scaleX(0);transform-origin:left;transition:transform .25s ease;
  }
  .nav-links a:hover::after{transform:scaleX(1);}
  .nav-cta{
    font-family:var(--sans);font-weight:600;font-size:0.85rem;padding:9px 16px;border:1px solid #FAFAF8;
    white-space:nowrap;grid-column:3;justify-self:end;position:relative;
  }
  .nav-mobile-hide{display:flex;}
  .nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:11px;flex-direction:column;gap:5px;min-width:44px;min-height:44px;align-items:center;justify-content:center;grid-column:3;justify-self:end;}
  .nav-toggle span{display:block;width:22px;height:2px;background:#FAFAF8;}
  @media (max-width:760px){
    .nav-mobile-hide{
      display:none;position:fixed;left:0;right:0;top:60px;bottom:0;
      background:var(--paper);color:var(--ink);font-family:var(--sans);flex-direction:column;align-items:flex-start;gap:0;
      padding:8px 24px 24px;overflow-y:auto;z-index:55;
    }
    .nav-mobile-hide .nav-trigger .caret{border-color:var(--ink-soft);}
    .nav.mobile-open .nav-mobile-hide{display:flex;}
    .nav-mobile-hide a{width:100%;padding:14px 0;border-bottom:1px solid var(--line);font-size:0.98rem;}
    .nav-mobile-hide .nav-item{width:100%;}
    .nav-mobile-hide .nav-item > button.nav-trigger{width:100%;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:0.98rem;}
    .nav-toggle{display:flex;}
    .nav-cta{display:none;}
    /* Three columns -- empty | logo | hamburger -- logo and hamburger each centered in their own
       column, first column intentionally left blank. nav-brand (the <a> wrapping the logo) uses
       display:contents so the logo becomes a direct grid item of nav-inner; nav-links and nav-cta
       stay display:none/position:fixed on mobile so they don't occupy a column. */
    .nav-inner{display:grid;grid-template-columns:1fr 1fr 1fr;}
    .nav-brand{display:contents;}
    .nav-logo-chip{grid-column:2;grid-row:1;justify-self:center;}
    .nav-toggle{grid-column:3;grid-row:1;justify-self:center;}
  }

  /* ---------- HERO: full-bleed with search ---------- */
  .hero{
    position:relative;min-height:74vh;display:flex;align-items:center;
    background:
      linear-gradient(180deg, rgba(18,18,18,0.72) 0%, rgba(18,18,18,0.55) 45%, rgba(18,18,18,0.82) 100%),
      linear-gradient(120deg, #2b2f36 0%, #14161a 60%, #0d0e10 100%);
    background-size:cover;background-position:center;
    color:#fff;overflow:hidden;
  }
  .hero-content{position:relative;z-index:2;padding:104px 0 56px;width:100%;text-align:center;}
  .hero h1{margin:0 auto;max-width:28ch;}
  .hero-name{
    display:block;font-size:3.4rem;font-weight:800;letter-spacing:-0.02em;line-height:1.1;
    background:linear-gradient(100deg, #2563EB 0%, #4338CA 68%, #5B21B6 100%);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
    filter:drop-shadow(0 2px 18px rgba(0,0,0,0.55)) drop-shadow(0 1px 3px rgba(0,0,0,0.65));
  }
  .hero-tagline{display:block;font-size:1.6rem;font-weight:600;color:#fff;margin-top:12px;letter-spacing:-0.01em;}
  .gradient-text{
    background:linear-gradient(100deg, #2563EB 0%, #4338CA 68%, #5B21B6 100%);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
    filter:drop-shadow(0 2px 18px rgba(0,0,0,0.55)) drop-shadow(0 1px 3px rgba(0,0,0,0.65));
  }
  .hero p.lead{margin:20px auto 0;font-size:1.05rem;color:#D8D6D2;max-width:46ch;}
  .hero-ctas{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap;justify-content:center;}
  .btn-solid-warm{
    background:var(--accent);color:#fff;font-weight:600;font-size:0.92rem;
    padding:14px 24px;display:inline-flex;align-items:center;gap:8px;position:relative;
  }
  .btn-outline-light{
    border:1px solid rgba(255,255,255,0.5);color:#fff;font-weight:600;font-size:0.92rem;
    padding:14px 24px;display:inline-flex;align-items:center;gap:8px;position:relative;
  }
  .btn-outline-light:hover{border-color:#fff;}

  /* De-emphasized relative to .hero-ctas (Call / Free Home Evaluation) -- this is a secondary,
     browse-it-yourself path that hands visitors off to Realtor.ca, not the primary conversion
     ask, so it should read as lighter-weight than the two buttons above it. */
  .search-tabs{display:flex;gap:8px;margin-top:28px;justify-content:center;}
  .search-tab{
    font-size:0.82rem;font-weight:600;padding:8px 16px;background:rgba(255,255,255,0.06);
    color:#B9B7B2;border:1px solid rgba(255,255,255,0.14);cursor:pointer;font-family:var(--sans);
  }
  .search-tab.active{background:rgba(255,255,255,0.14);color:#fff;border-color:rgba(255,255,255,0.3);}
  .hero-path-ctas{display:flex;gap:14px;justify-content:center;margin-top:30px;flex-wrap:wrap;}
  .hero-path-btn{
    border:1px solid rgba(255,255,255,0.5);color:#fff;font-weight:600;font-size:0.98rem;
    padding:16px 40px;display:inline-flex;align-items:center;gap:8px;position:relative;text-decoration:none;
  }
  .hero-path-btn:hover{border-color:#fff;}
  .hero-secondary-link{
    display:inline-block;margin-top:26px;font-size:0.9rem;color:rgba(255,255,255,0.75);
    position:relative;text-decoration:none;
  }
  .hero-secondary-link::after{
    content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;
    transform:scaleX(0);transform-origin:left;transition:transform .22s ease;
  }
  .hero-secondary-link:hover::after{transform:scaleX(1);}
  .mobile-break{display:none;}
  @media (max-width:760px){
    .hero{min-height:auto;}
    .hero-content{padding:100px 0 48px;}
    .hero-name{font-size:2.4rem;}
    .hero-tagline{font-size:1.2rem;}
    .hero-path-ctas{flex-direction:column;align-items:center;}
    .mobile-break{display:inline;}
  }

  /* ---------- CATEGORY STRIP ---------- */
  .cat-strip{background:var(--ink);color:#fff;padding:56px 0;}
  .cat-strip-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:40px;align-items:center;}
  .cat-strip h3{color:#fff;font-size:1.5rem;max-width:20ch;}
  .cat-strip p{color:#B9B7B2;margin-top:12px;font-size:0.94rem;max-width:34ch;}
  .cat-strip .hero-ctas{margin-top:20px;justify-content:flex-start;}
  .cat-strip-cta-mobile{display:none;}
  .cat-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;grid-column:span 2;}
  .cat-card{
    background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);
    padding:18px 20px;
  }
  .cat-card strong{display:block;font-size:0.95rem;color:#fff;}
  .cat-card span{display:block;font-size:0.8rem;color:#B9B7B2;margin-top:4px;}
  @media (max-width:900px){
    .cat-strip-grid{grid-template-columns:1fr;}
    .cat-cards{grid-column:span 1;grid-template-columns:1fr 1fr;}
    .cat-strip-cta-desktop{display:none;}
    .cat-strip-cta-mobile{display:flex;margin-top:24px;}
  }

  /* ---------- HOW CAN I HELP YOU ---------- */
  .help{padding:88px 0 96px;background:#121212;}
  .help-head{text-align:center;max-width:52ch;margin:0 auto 48px;}
  .help-head h2{font-size:2.1rem;color:#FAFAF8;}
  .help-head p{color:#B8B6B0;margin-top:14px;font-size:1rem;}
  .help-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
  .help-card{
    border:1px solid #2A2A2A;padding:30px 24px;background:#1A1A1A;
    transition:border-color .15s ease, transform .15s ease;
  }
  .help-card:hover{border-color:var(--accent);transform:translateY(-3px);}
  .help-card .icon{
    width:28px;height:28px;display:flex;align-items:center;justify-content:center;
    color:var(--accent-deep);margin-bottom:18px;
  }
  .help-card .icon svg{width:28px;height:28px;}
  .help-card strong{display:block;font-size:1rem;font-weight:600;color:#FAFAF8;}
  .help-card span{display:block;font-size:0.86rem;color:#B8B6B0;margin-top:8px;line-height:1.55;}
  .help-card .go{display:block;margin-top:16px;font-size:0.82rem;font-weight:600;color:var(--accent-deep);}
  @media (max-width:900px){.help-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:600px){.help-grid{grid-template-columns:1fr;}}

  /* ---------- BUYING GUIDES ---------- */
  .guides{background:var(--ink);padding:96px 0;}
  .guides-head{text-align:center;max-width:56ch;margin:0 auto 48px;}
  .guides-head h2{font-size:2.1rem;color:#fff;}
  .guides-head h2 .accent-warm{color:var(--accent-on-dark);}
  .guides-head p{color:#B8B6B0;margin-top:14px;font-size:1rem;}
  .guides-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .guide-card{
    background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.14);padding:28px 24px;
    display:flex;flex-direction:column;
  }
  .guide-card strong{font-size:1.02rem;font-weight:600;color:#fff;}
  .guide-card span{display:block;font-size:0.86rem;color:#B8B6B0;margin-top:10px;line-height:1.6;flex-grow:1;}
  .guide-card .go{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-size:0.82rem;font-weight:600;color:var(--accent-on-dark);}
  .guide-card--start{background:var(--accent);border-color:var(--accent);color:#fff;}
  .guide-card--start strong{color:#fff;}
  .guide-card--start span{color:rgba(255,255,255,0.82);}
  .guide-card--start .go{color:#fff;}
  @media (max-width:900px){.guides-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:600px){.guides-grid{grid-template-columns:1fr;}}

  /* ---------- AREAS SERVED ---------- */
  .areas{padding:100px 0;background:var(--ink);}
  .areas-head{text-align:center;max-width:52ch;margin:0 auto 56px;}
  .areas-head h2{font-size:2.1rem;color:#fff;}
  .areas-head p{color:#B8B6B0;margin-top:14px;font-size:1rem;}
  .areas-cta .btn-outline-dark{border-color:rgba(255,255,255,0.5);color:#fff;}
  .areas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .area-card{
    position:relative;aspect-ratio:4/3;overflow:hidden;
    background:linear-gradient(135deg,#3a3f47,#181a1d);
    display:flex;flex-direction:column;justify-content:flex-end;padding:22px;color:#fff;
  }
  .area-card::before{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(18,18,18,0) 30%, rgba(18,18,18,0.85) 100%);
  }
  .area-card > *{position:relative;z-index:1;}
  .area-card .name{font-size:1.2rem;font-weight:700;}
  .area-card .price-placeholder{font-size:0.82rem;color:#D8D6D2;margin-top:2px;font-family:var(--sans);font-weight:500;}
  .area-card .tags{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
  .area-card .tags span{
    font-size:0.72rem;background:rgba(255,255,255,0.14);border:1px solid rgba(255,255,255,0.2);
    padding:4px 10px;
  }
  .areas-cta{text-align:center;margin-top:44px;}
  .btn-outline-dark{
    border:1px solid var(--ink);color:var(--ink);font-weight:600;font-size:0.9rem;
    padding:13px 22px;display:inline-flex;align-items:center;gap:8px;position:relative;
  }
  @media (max-width:900px){.areas-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:600px){.areas-grid{grid-template-columns:1fr;}}

  /* ---------- MEET THE REALTOR ---------- */
  .bio{background:var(--ink);color:#fff;padding:100px 0;}
  .bio-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:center;}
  .bio-grid > *{min-width:0;}
  .bio-photo{aspect-ratio:3/4;height:auto;background:linear-gradient(150deg,#3a3f47,#15171a);border:1px solid rgba(255,255,255,0.12);}
  .bio-eyebrow{
    display:inline-block;font-family:var(--sans);font-weight:500;font-size:0.78rem;letter-spacing:0.02em;text-transform:uppercase;
    background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.18);padding:7px 14px;margin-bottom:20px;
  }
  .bio h2{font-size:2.1rem;color:#fff;}
  .bio h2 .accent-warm{color:var(--accent);}
  .bio .brokerage{color:var(--accent);font-weight:600;font-size:0.98rem;margin-top:6px;}
  .bio p{color:#C7C5C0;margin-top:18px;font-size:0.98rem;max-width:56ch;}
  .bio-credential{
    display:flex;gap:12px;align-items:flex-start;margin-top:28px;background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.14);padding:16px 20px;max-width:56ch;
  }
  .bio-credential strong{display:block;font-size:0.92rem;color:#fff;}
  .bio-credential span{display:block;font-size:0.82rem;color:#B9B7B2;margin-top:2px;}
  .bio-ctas{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap;}
  @media (max-width:900px){.bio-grid{grid-template-columns:1fr;gap:32px;}.bio-photo{max-width:280px;}}

  /* ---------- WHY MANAN: Background + What Clients Can Expect (dark) ---------- */
  /* .bio-credential and .point .dot already assume a dark background (translucent-white fills) --
     they were rendering nearly invisibly on the light version of this section; this fixes that too. */
  .why-dark-section{background:#121212;}
  .why-dark-section h2{color:#FAFAF8;}
  .why-dark-section p{color:#B8B6B0;}
  .why-dark-section .eyebrow{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.18);color:#FAFAF8;}
  .why-dark-section .point strong{color:#FAFAF8;}
  .why-dark-section .point span{color:#B8B6B0;}

  /* ---------- CONSULTATION / CONTACT ---------- */
  .consult{
    position:relative;padding:100px 0;color:#fff;
    background:
      linear-gradient(180deg, rgba(18,18,18,0.85), rgba(18,18,18,0.9)),
      linear-gradient(135deg,#2b2f36,#0d0e10);
  }
  .consult-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
  .consult h2{font-size:2.2rem;max-width:14ch;color:#fff;}
  .consult h2 .accent-warm{color:var(--accent);}
  .consult p.lead{color:#D8D6D2;margin-top:16px;max-width:44ch;font-size:0.98rem;}
  .consult-details{margin-top:26px;display:flex;flex-direction:column;gap:10px;}
  .consult-details a,.consult-details span{color:#D8D6D2;font-size:0.94rem;}
  .consult-details a{font-weight:600;color:var(--accent-deep);}
  .consult-form{background:#fff;color:var(--ink);padding:36px;}
  .consult-form h3{font-size:1.2rem;margin-bottom:6px;}
  .form-trust{font-size:0.78rem;font-weight:600;color:var(--accent-deep);margin:0 0 20px;letter-spacing:0.01em;}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
  .consult-form input,.consult-form select,.consult-form textarea{
    width:100%;border:1px solid var(--line);padding:12px 14px;font-family:var(--sans);font-size:0.9rem;
    background:var(--paper);color:var(--ink);
  }
  .consult-form textarea{margin-bottom:12px;min-height:90px;resize:vertical;}
  .consult-form select{margin-bottom:12px;}
  .btn-block-dark{
    width:100%;background:var(--ink);color:#fff;border:none;padding:14px;font-family:var(--sans);
    font-weight:600;font-size:0.92rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;position:relative;
  }
  .btn-block-dark:disabled{opacity:0.6;cursor:default;}
  .form-disclaimer{font-size:0.76rem;color:var(--ink-soft);margin-top:12px;text-align:center;}
  .form-error{font-size:0.82rem;color:#B3261E;margin-top:12px;text-align:center;}
  .form-success{text-align:center;padding:20px 0;}
  .form-success strong{display:block;font-size:1.1rem;margin-bottom:8px;}
  .form-success span{color:var(--ink-soft);font-size:0.92rem;}
  @media (max-width:900px){.consult-grid{grid-template-columns:1fr;gap:36px;}.form-row{grid-template-columns:1fr;}}

  /* ---------- FOOTER ---------- */
  .footer{background:var(--ink);color:#B9B7B2;padding:72px 0 32px;margin-top:-1px;}
  .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;}
  .footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
  .footer-brand .mark{
    width:36px;height:36px;background:var(--accent);color:#fff;font-family:var(--sans);font-weight:600;
    font-size:0.8rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;
  }
  .footer-brand .logo-img{height:28px;width:auto;flex-shrink:0;}
  .footer-brand strong{color:#fff;font-size:0.98rem;}
  .footer p.desc{font-size:0.88rem;line-height:1.6;max-width:34ch;}
  .footer h4{color:#fff;font-size:0.88rem;font-weight:600;margin-bottom:16px;}
  .footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
  .footer ul a{font-size:0.86rem;color:#B9B7B2;}
  .footer ul a:hover{color:#fff;}
  .footer .btn-solid-warm{margin-top:16px;font-size:0.85rem;padding:12px 18px;}
  .footer-bottom{
    margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,0.12);
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:0.78rem;
  }
  .footer-bottom a{color:#B9B7B2;}
  .footer-bottom a:hover{color:#fff;}
  @media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:600px){.footer-grid{grid-template-columns:1fr;}}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{transition:none !important;}
  }

  /* ---------- MEGA MENU ---------- */
  .nav-item{position:relative;}
  .nav-item > button.nav-trigger{
    font:inherit;font-family:var(--sans);font-size:0.86rem;font-weight:500;
    background:none;border:none;color:inherit;cursor:pointer;
    display:flex;align-items:center;gap:6px;padding:4px 0;
  }
  .nav-trigger .caret{width:8px;height:8px;border-right:1.5px solid #B8B6B0;border-bottom:1.5px solid #B8B6B0;
    transform:rotate(45deg);margin-top:-3px;transition:transform .18s ease;}
  .nav-item:hover .nav-trigger .caret,.nav-item:focus-within .nav-trigger .caret{transform:rotate(225deg);margin-top:3px;}

  .mega{
    position:fixed;left:0;right:0;top:65px;z-index:60;
    background:var(--paper-raised);border-bottom:1px solid var(--line);
    font-family:var(--sans);
    box-shadow:0 18px 40px rgba(21,24,28,0.10);
    opacity:0;visibility:hidden;transform:translateY(-6px);
    transition:opacity .18s ease, transform .18s ease, visibility .18s;
  }
  .nav-item:hover .mega,.nav-item:focus-within .mega{opacity:1;visibility:visible;transform:translateY(0);}
  .mega-inner{max-width:1180px;margin:0 auto;padding:44px 32px 52px;display:grid;grid-template-columns:repeat(3,1fr);gap:48px;}
  .mega-col-head{
    display:flex;align-items:center;gap:8px;font-family:var(--serif);font-weight:600;font-size:1.15rem;
    padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid var(--line);color:var(--ink);
  }
  .mega-col-head .arrow{font-family:var(--sans);font-size:0.85rem;color:var(--accent-deep);}
  a.mega-col-head:hover{color:var(--accent-deep);}
  .mega-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;}
  .mega-list a{display:flex;align-items:baseline;gap:10px;}
  .mega-list .bullet{font-size:1.05rem;width:22px;flex-shrink:0;text-align:center;color:var(--accent-deep);}
  .mega-list .txt strong{display:block;font-size:0.92rem;font-weight:600;color:var(--ink);}
  .mega-list .txt span{display:block;font-size:0.78rem;color:var(--ink-soft);margin-top:2px;}
  .mega-list a:hover .txt strong{color:var(--accent-deep);}
  .mega-list--plain a{display:block;font-size:0.92rem;font-weight:600;color:var(--ink);padding:2px 0;}
  .mega-list--plain a:hover{color:var(--accent-deep);}
  .mega-viewall{display:block;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:0.82rem;font-weight:600;color:var(--accent-deep);}

  /* Anchored dropdown variant -- narrower, positioned under its own trigger
     instead of the full-viewport-width mega bar used elsewhere. */
  .mega--anchored{
    position:absolute;left:0;right:auto;top:calc(100% + 14px);border:1px solid var(--line);
  }
  .mega--anchored .mega-inner{max-width:none;margin:0;padding:24px;display:block;width:280px;}
  .mega--anchored.mega--cols-2 .mega-inner{display:grid;grid-template-columns:1fr 1fr;gap:28px;width:560px;}
  .mega--anchored .mega-col-head{font-size:0.78rem;text-transform:uppercase;letter-spacing:0.04em;font-family:var(--sans);padding-bottom:10px;margin-bottom:12px;}

  @media (max-width:900px){
    .mega{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;display:none;transition:none;}
    .nav-item.open .mega{display:block;}
    .mega-inner{grid-template-columns:1fr;padding:24px;gap:28px;}
    .mega--anchored .mega-inner, .mega--anchored.mega--cols-2 .mega-inner{width:auto;grid-template-columns:1fr;}
  }

/* ---------- SUBPAGE SHARED PATTERNS ---------- */
/* Every page that has a .crumbs row is followed immediately by a dark .subhero (verified against
   every generated page) -- so crumbs is styled dark too, full-bleed via a ::before breakout, to
   read as one seamless dark block with the nav above and the subhero below. */
.crumbs{position:relative;font-size:0.8rem;color:#B8B6B0;padding:18px 0;background:#121212;}
.crumbs::before{
  content:"";position:absolute;top:0;bottom:0;left:50%;width:100vw;
  transform:translateX(-50%);background:#121212;z-index:-1;
}
.crumbs a{color:#B8B6B0;}
.crumbs a:hover{color:var(--accent);}
.crumbs .sep{margin:0 6px;opacity:0.5;}
.crumbs .cur{color:#FAFAF8;}

/* Base eyebrow badge -- light-mode default. Dark contexts (.subhero,
   .why-dark-section) override just background/border/color below. */
.eyebrow{
  display:inline-block;font-family:var(--sans);font-weight:500;font-size:0.78rem;letter-spacing:0.02em;text-transform:uppercase;
  background:var(--paper-raised);border:1px solid var(--line);color:var(--ink-soft);padding:7px 14px;
}

.subhero{
  position:relative;color:#fff;padding:64px 0 60px;text-align:center;
  background:linear-gradient(180deg, rgba(18,18,18,0.82), rgba(18,18,18,0.9)), linear-gradient(135deg,#2b2f36,#0d0e10);
}
.subhero.flat-dark{background:var(--ink);}
.subhero .eyebrow{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.18);color:#fff;margin-bottom:18px;}
.subhero h1{font-size:2.5rem;color:#fff;max-width:22ch;margin:0 auto;}
.subhero h1 .accent-warm{color:var(--accent);}
.subhero p.lead{color:#D8D6D2;margin:16px auto 0;max-width:60ch;font-size:1.02rem;}
.subhero .hero-ctas{margin-top:26px;justify-content:center;}
@media (max-width:700px){.subhero h1{font-size:1.9rem;}}

/* Area hero stat bar */
.hero-stat-bar{display:flex;gap:32px;justify-content:center;margin-top:28px;padding-top:24px;border-top:1px solid rgba(255,255,255,0.12);}
.stat-item{text-align:center;}
.stat-value{font-size:1.4rem;font-weight:700;color:#fff;font-family:var(--sans);}
.stat-label{font-size:0.72rem;color:rgba(255,255,255,0.55);margin-top:4px;text-transform:uppercase;letter-spacing:0.04em;}
@media (max-width:500px){.hero-stat-bar{gap:20px;}.stat-value{font-size:1.1rem;}}

/* Area map embed */
.area-map{display:block;border:1px solid var(--line);}

/* Area hero search (compact search bar inside the subhero on area pages) */
.hero-search{margin-top:24px;display:flex;gap:0;max-width:420px;margin-left:auto;margin-right:auto;}
.hero-search select{
  flex:1;border:1px solid rgba(255,255,255,0.2);border-right:none;padding:12px 14px;
  font-family:var(--sans);font-size:0.88rem;background:rgba(255,255,255,0.08);color:#fff;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='white'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;
}
.hero-search select option{color:var(--ink);background:var(--paper);}
.hero-search button{
  border:1px solid rgba(255,255,255,0.2);padding:12px 18px;background:var(--accent);color:#fff;
  font-family:var(--sans);font-size:0.88rem;font-weight:600;cursor:pointer;white-space:nowrap;position:relative;
}
.hero-search .search-micro{font-size:0.72rem;color:rgba(255,255,255,0.45);margin-top:6px;text-align:center;}
@media (max-width:500px){.hero-search{flex-direction:column;gap:0;}.hero-search select{border-right:1px solid rgba(255,255,255,0.2);border-bottom:none;}.hero-search button{border-top:none;}}

/* Amenities strip (icon-based at-a-glance grid on area pages) */
.amenities-strip{display:flex;flex-wrap:wrap;gap:24px 32px;justify-content:center;margin-top:24px;}
.amenity-item{display:flex;align-items:center;gap:8px;font-size:0.84rem;color:var(--ink-soft);}
.amenity-item .a-icon{color:var(--accent-deep);flex-shrink:0;display:flex;align-items:center;}
.amenity-item .a-icon svg{width:18px;height:18px;}

/* Neighbourhood guides pills (for cities with sub-area pages) */
.guides-section{padding:48px 0;}
.guides-section .content-head{margin-bottom:20px;}
.guide-pills{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.guide-pill{
  display:inline-flex;align-items:center;gap:6px;padding:10px 18px;
  border:1px solid var(--line);background:var(--paper-raised);font-size:0.88rem;
  font-weight:500;color:var(--ink);transition:border-color .15s,color .15s;
}
.guide-pill:hover{border-color:var(--accent);color:var(--accent-deep);}
.guide-pill .arrow{color:var(--accent-deep);font-family:var(--sans);}
.guides-section.dark{background:var(--ink);color:#fff;}
.guides-section.dark h2{color:#fff;}
.guides-section.dark .content-head p{color:#C7C5C0;}
.guides-section.dark .guide-pill{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.16);color:#fff;}
.guides-section.dark .guide-pill:hover{border-color:var(--accent-on-dark);color:var(--accent-on-dark);}
.guides-section.dark .guide-pill .arrow{color:var(--accent-on-dark);}

.content-section{padding:80px 0;}
.content-section.tight{padding:56px 0;}
.content-section.raised{background:var(--line-soft);}
.content-section.dark{background:var(--ink);color:#fff;}
.subhero + .content-section.dark{margin-top:-1px;}
.content-section.dark + .content-section.dark{margin-top:-1px;}
.why-dark-section + .content-section.dark{margin-top:-1px;}
.subhero + .why-dark-section{margin-top:-1px;}
.content-section.dark + .cta-band{margin-top:-1px;}
.content-section.dark.charcoal{background:#202020;}
.content-section h2{font-size:1.9rem;}
.content-section.dark h2{color:#fff;}
.content-section.dark .eyebrow{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.18);color:#fff;}
.content-head{max-width:60ch;margin:0 0 40px;}
.content-head.center{margin:0 auto 44px;text-align:center;}
.content-head p{color:var(--ink-soft);margin-top:12px;font-size:0.98rem;}
.content-section.dark .content-head p{color:#C7C5C0;}
.content-section.dark .simple-card{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.16);}
.content-section.dark .simple-card strong{color:#fff;}
.content-section.dark .simple-card span:not(.card-icon){color:#C7C5C0;}
.content-section.dark .simple-card .go{color:var(--accent-on-dark);}
.content-section.dark .faq-item{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.16);}
.content-section.dark .faq-q{color:#fff;}
.content-section.dark .faq-a p{color:#C7C5C0;}
.content-section.dark .community-card{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.16);}
.content-section.dark .community-card .name{color:#fff;}
.content-section.dark .community-card .note{color:#C7C5C0;}
.content-section.dark .community-card .arrow{color:var(--accent-on-dark);}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.two-col > *{min-width:0;}
.two-col img,.two-col .imgblock{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:linear-gradient(150deg,#DAD8D2,#EDEBE6);}
/* .two-col img above (element+class specificity) otherwise beats .bio-photo's own aspect-ratio:3/4
   (single class) whenever a .bio-photo image sits inside a .two-col -- this re-asserts it. */
.two-col .bio-photo{aspect-ratio:3/4;background:linear-gradient(150deg,#3a3f47,#15171a);}
@media (max-width:860px){.two-col{grid-template-columns:1fr;gap:28px;}}
@media (max-width:860px){.contact-two-col .consult-form{order:-1;}}

.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.step-card{border:1px solid var(--line);background:var(--paper-raised);padding:26px;}
.step-card .num{font-family:var(--sans);font-weight:700;color:var(--accent-deep);font-size:0.8rem;}
.step-card strong{display:block;margin-top:8px;font-size:1rem;}
.step-card span{display:block;margin-top:8px;font-size:0.86rem;color:var(--ink-soft);line-height:1.6;}
.content-section.dark .step-card{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.16);}
.content-section.dark .step-card strong{color:#fff;}
.content-section.dark .step-card span{color:#C7C5C0;}
@media (max-width:860px){.step-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.step-grid{grid-template-columns:1fr;}}

.point-list{display:flex;flex-direction:column;gap:20px;margin-top:26px;}
.point{display:flex;gap:14px;align-items:flex-start;}
.point .dot{width:34px;height:34px;flex-shrink:0;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.18);display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:var(--accent-deep);}
.content-section:not(.dark) .point .dot{background:transparent;border-color:var(--line);}
.content-section.dark .point .dot{background:transparent;}
.point strong{display:block;font-size:0.96rem;}
.point span{display:block;font-size:0.86rem;color:var(--ink-soft);margin-top:4px;line-height:1.6;}
.content-section.dark .point span{color:#C7C5C0;}
.point-list-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 40px;}
.content-section:not(.dark) .point-list-grid .dot{background:transparent;border-color:rgba(18,18,18,0.35);}
@media (max-width:700px){.point-list-grid{grid-template-columns:1fr;}}

.grid-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.grid-cards.cols-2{grid-template-columns:1fr 1fr;}
.grid-cards.cols-4{grid-template-columns:repeat(4,1fr);}
.simple-card{border:1px solid var(--line);background:var(--paper-raised);padding:26px;display:flex;flex-direction:column;}
.simple-card strong{font-size:0.98rem;}
.simple-card span{display:block;font-size:0.86rem;color:var(--ink-soft);margin-top:8px;line-height:1.6;flex-grow:1;}
.simple-card .go{margin-top:16px;font-size:0.82rem;font-weight:600;color:var(--accent-deep);}
@media (max-width:860px){.grid-cards,.grid-cards.cols-4{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.grid-cards,.grid-cards.cols-4,.grid-cards.cols-2{grid-template-columns:1fr;}}
.simple-card .card-icon{font-size:1.5rem;margin-bottom:10px;display:block;color:var(--accent-deep);}

/* Stat strip (real facts, replaces generic "30+ years" style callouts) */
.stat-strip{padding-top:44px;padding-bottom:44px;}
.stat-card{border-left:3px solid var(--accent);padding:8px 0 8px 18px;display:flex;flex-direction:column;}
.stat-card strong{font-size:1.15rem;color:var(--ink);}
.stat-card span{display:block;font-size:0.8rem;color:var(--ink-soft);margin-top:6px;line-height:1.5;}
@media (max-width:560px){.stat-strip .grid-cards.cols-4{grid-template-columns:1fr 1fr;}}

/* Local info (schools / shopping / recreation) */
.local-info-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));gap:28px;margin-top:8px;}
.local-info-grid.even-cols{grid-template-columns:1fr 1fr;}
.local-info-col ul{margin:0;padding:0;list-style:none;}
.local-info-col li{padding:10px 0;border-bottom:1px solid var(--line);font-size:0.88rem;color:var(--ink-soft);}
.local-info-col li:last-child{border-bottom:none;}
.local-info-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.local-info-head .ico{font-size:1.2rem;color:var(--accent-deep);}
.local-info-head strong{font-size:1rem;}
@media (max-width:860px){.local-info-grid, .local-info-grid.even-cols{grid-template-columns:1fr;gap:32px;}}

/* Pro tip callout */
.pro-tip{border-left:3px solid var(--accent);background:var(--paper);padding:22px 26px;margin-top:24px;}
.content-section:not(.raised):not(.dark) .pro-tip{background:var(--line-soft);}
.pro-tip strong{display:block;font-size:0.95rem;margin-bottom:8px;}
.pro-tip p{margin:0;color:var(--ink-soft);font-size:0.9rem;line-height:1.65;}

/* Mortgage calculator */
.calc-card{background:var(--paper-raised);border:1px solid var(--line);padding:30px;}
.calc-card h3{font-size:1.1rem;margin:0 0 4px;}
.calc-card .sub{font-size:0.84rem;color:var(--ink-soft);margin-bottom:20px;}
.calc-row{margin-bottom:14px;}
.calc-row label{display:block;font-size:0.8rem;color:var(--ink-soft);margin-bottom:6px;}
.calc-row input,.calc-row select{
  width:100%;border:1px solid var(--line);padding:11px 12px;font-family:var(--sans);font-size:0.92rem;background:var(--paper);color:var(--ink);
}
.calc-row-split{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.calc-result{background:#fff;border:1px solid var(--ink);padding:20px;text-align:center;margin-top:8px;}
.calc-result .amt{font-size:1.8rem;font-weight:700;color:var(--accent-deep);font-family:var(--sans);}
.calc-result .note{font-size:0.78rem;color:var(--ink-soft);margin-top:4px;}
.calc-cta{display:flex;width:100%;margin-top:14px;text-align:center;justify-content:center;}
.calc-disclaimer{font-size:0.74rem;color:var(--ink-soft);margin-top:14px;text-align:center;}

/* FAQ accordion */
.faq{max-width:74ch;margin:0 auto;}
.faq-item{border:1px solid var(--line);background:var(--paper-raised);margin-bottom:10px;}
.faq-q{
  width:100%;text-align:left;background:none;border:none;padding:18px 20px;font-family:var(--sans);
  font-size:0.94rem;font-weight:600;color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;
}
.faq-q .chev{transition:transform .18s ease;flex-shrink:0;}
.faq-item.open .faq-q .chev{transform:rotate(180deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .22s ease;}
.faq-a p{padding:0 20px 18px;font-size:0.88rem;color:var(--ink-soft);line-height:1.65;margin:0;}

/* Community / area grid */
.community-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));gap:14px;justify-content:center;}
.community-card{
  border:1px solid var(--line);background:var(--paper-raised);padding:18px 20px;max-width:360px;width:100%;
  display:flex;justify-content:space-between;align-items:center;gap:10px;
}
.community-card .name{font-weight:600;font-size:0.94rem;}
.community-card .note{font-size:0.78rem;color:var(--ink-soft);margin-top:2px;}
.community-card .arrow{color:var(--accent-deep);font-family:var(--sans);}
.community-card-group{
  border:1px solid var(--line);background:var(--paper-raised);padding:18px 20px;
  display:flex;flex-direction:column;gap:8px;
}
.community-card-group .name{font-weight:600;font-size:0.94rem;}
.community-card-group .group-links{display:flex;flex-wrap:wrap;gap:6px 12px;}
.community-card-group .group-links a{font-size:0.82rem;color:var(--accent-deep);font-weight:600;}
.content-section.dark .community-card-group{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.16);}
.content-section.dark .community-card-group .name{color:#fff;}
.content-section.dark .community-card-group .group-links a{color:var(--accent-on-dark);}
@media (max-width:860px){.community-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.community-grid{grid-template-columns:1fr;}}

/* Generic CTA band reused across subpages */
.cta-band{background:var(--ink);color:#fff;padding:64px 0;text-align:center;}
.cta-band h2{color:#fff;font-size:1.8rem;}
.cta-band h2 .accent-warm{color:var(--accent);}
.cta-band p{color:#C7C5C0;margin-top:12px;max-width:56ch;margin-left:auto;margin-right:auto;}
.cta-band .hero-ctas{justify-content:center;margin-top:26px;}

/* Two-column CTA band with inquiry form (commercial category pages) */
.cta-form-band{background:var(--ink);color:#fff;padding:64px 0;}
.cta-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.cta-form-left h2{color:#fff;font-size:1.9rem;}
.cta-form-left h2 .accent-warm{color:var(--accent);}
.cta-form-left p{color:#C7C5C0;margin-top:12px;max-width:48ch;}
.cta-form-left .phone-line{display:flex;align-items:center;gap:8px;margin-top:20px;font-size:1rem;font-weight:600;}
.cta-form-left .phone-line a{color:#fff;}
.cta-form-pills{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap;}
.cta-form-pills a{
  border:1px solid rgba(255,255,255,0.35);color:#fff;font-size:0.82rem;font-weight:600;
  padding:9px 16px;display:inline-flex;align-items:center;gap:6px;position:relative;
}
@media (max-width:860px){.cta-form-grid{grid-template-columns:1fr;gap:32px;}}

/* Market context section with photo + floating fact badge */
.market-context-photo{position:relative;}
.market-context-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;}
.market-fact-badge{
  position:absolute;bottom:-18px;left:24px;background:#fff;border:1px solid var(--line);
  padding:14px 20px;box-shadow:0 12px 32px rgba(0,0,0,0.14);max-width:220px;
}
.market-fact-badge span{display:block;font-size:0.74rem;color:var(--ink-soft);margin-bottom:4px;}
.market-fact-badge strong{display:block;font-size:0.92rem;color:var(--ink);line-height:1.4;}
@media (max-width:560px){.market-fact-badge{position:static;margin-top:-1px;max-width:none;}}

/* Blog */
.blog-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));gap:22px;justify-content:center;}
.blog-card{border:1px solid var(--line);background:var(--paper-raised);max-width:400px;width:100%;}
.blog-card .thumb{aspect-ratio:16/10;height:auto;background:linear-gradient(150deg,#DAD8D2,#EDEBE6);}
.blog-card .body{padding:20px;}
.blog-card .tag{font-family:var(--sans);font-weight:600;font-size:0.7rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--accent-deep);}
.blog-card strong{display:block;margin-top:8px;font-size:1rem;}
.blog-card span{display:block;font-size:0.85rem;color:var(--ink-soft);margin-top:8px;line-height:1.6;}
.blog-card .go{display:block;margin-top:14px;font-size:0.82rem;font-weight:600;color:var(--accent-deep);}
@media (max-width:560px){.blog-grid{grid-template-columns:1fr;}}

/* Homepage "Latest Market Insights" strip */
.insights{padding:80px 0;background:var(--ink);color:#fff;}
.insights-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:32px;flex-wrap:wrap;gap:12px;}
.insights-head h2{margin:0;color:#fff;}
.insights-head a{font-size:0.9rem;font-weight:600;color:var(--accent-on-dark);position:relative;}
.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.insight-grid > *{min-width:0;}
.insight-card{display:block;border:1px solid rgba(255,255,255,0.14);background:rgba(255,255,255,0.04);}
.insight-card .thumb{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;}
.insight-card .body{padding:18px 20px;}
.insight-card .tag{font-family:var(--sans);font-weight:600;font-size:0.7rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--accent-on-dark);}
.insight-card strong{display:block;margin-top:8px;font-size:0.98rem;line-height:1.4;color:#fff;}
@media (max-width:860px){.insight-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.insight-grid{grid-template-columns:1fr;}}

.blog-toolbar{display:flex;gap:16px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:36px;}
.blog-search-input{flex:1;min-width:220px;max-width:340px;padding:12px 16px;border:1px solid var(--line);background:var(--paper-raised);font-family:var(--sans);font-size:0.9rem;color:var(--ink);}
.blog-search-input::placeholder{color:var(--ink-faint,var(--ink-soft));}
.filter-pills{display:flex;gap:8px;flex-wrap:wrap;}
.filter-pill{padding:9px 16px;border:1px solid var(--line);background:var(--paper-raised);font-family:var(--sans);font-size:0.82rem;font-weight:600;color:var(--ink-soft);cursor:pointer;white-space:nowrap;}
.filter-pill.active{background:var(--ink);color:#fff;border-color:var(--ink);}
.filter-pill:hover:not(.active){border-color:var(--accent-deep);color:var(--accent-deep);}
#blogEmptyState{display:none;text-align:center;padding:60px 20px;color:var(--ink-soft);}

.featured-post{display:grid;grid-template-columns:1.15fr 1fr;border:1px solid var(--line);background:var(--paper-raised);margin-bottom:36px;overflow:hidden;}
.featured-post > *{min-width:0;}
.featured-post .thumb{width:100%;height:100%;min-height:280px;object-fit:cover;display:block;}
.featured-post .body{padding:40px;display:flex;flex-direction:column;justify-content:center;}
.featured-post .tag{font-family:var(--sans);font-weight:600;font-size:0.7rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--accent-deep);}
.featured-post .pin-label{font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--ink-faint,var(--ink-soft));margin-bottom:10px;}
.featured-post strong{display:block;margin-top:8px;font-size:1.5rem;line-height:1.25;}
.featured-post .desc{display:block;font-size:0.94rem;color:var(--ink-soft);margin-top:12px;line-height:1.65;}
.featured-post .go{display:inline-block;margin-top:18px;font-size:0.86rem;font-weight:600;color:var(--accent-deep);}
@media (max-width:760px){.featured-post{grid-template-columns:1fr;}.featured-post .thumb{min-height:200px;}}

/* Dark blog index (search/filter/featured/grid section) */
.content-section.dark .blog-card,
.content-section.dark .featured-post{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.16);}
.content-section.dark .blog-card strong,
.content-section.dark .featured-post strong{color:#fff;}
.content-section.dark .blog-card span:not(.tag),
.content-section.dark .featured-post .desc{color:#C7C5C0;}
.content-section.dark .blog-search-input{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.2);color:#fff;}
.content-section.dark .blog-search-input::placeholder{color:rgba(255,255,255,0.45);}
.content-section.dark .filter-pill{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.2);color:#C7C5C0;}
.content-section.dark .filter-pill.active{background:#fff;color:var(--ink);border-color:#fff;}
.content-section.dark .filter-pill:hover:not(.active){border-color:var(--accent-on-dark);color:var(--accent-on-dark);}
.content-section.dark #blogEmptyState{color:#C7C5C0;}

.article-body{max-width:72ch;margin:0 auto;}
.article-body h2{font-size:1.5rem;margin-top:40px;}
.article-body p{font-size:0.98rem;line-height:1.75;color:var(--ink-soft);margin-top:14px;}
.article-body ul{font-size:0.98rem;line-height:1.75;color:var(--ink-soft);}
.content-section.dark .article-body p,
.content-section.dark .article-body ul{color:#C7C5C0;}
.article-meta{font-size:0.82rem;color:var(--ink-soft);text-align:center;margin-bottom:8px;}
.article-tags{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:18px;}
.article-tag{font-family:var(--sans);font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;padding:5px 12px;border:1px solid rgba(255,255,255,0.3);color:rgba(255,255,255,0.85);}

.article-hero-img{display:block;width:100%;max-height:420px;object-fit:cover;}
.article-layout{display:grid;grid-template-columns:1fr 340px;gap:56px;align-items:start;}
.article-layout .article-body{max-width:none;margin:0;}
.article-sidebar{display:flex;flex-direction:column;gap:24px;position:sticky;top:24px;}
.article-sidebar .consult-form{padding:28px;}
.sidebar-call-box{border:1px solid var(--line);background:var(--paper-raised);padding:24px;text-align:center;}
.sidebar-call-box strong{display:block;font-size:1rem;margin-bottom:8px;}
.sidebar-call-box p{font-size:0.86rem;color:var(--ink-soft);line-height:1.55;margin-bottom:16px;}
.sidebar-call-box .btn-outline-light{border-color:var(--line);color:var(--ink);width:100%;justify-content:center;}
@media (max-width:900px){.article-layout{grid-template-columns:1fr;}.article-sidebar{position:static;max-width:72ch;margin:40px auto 0;}}

/* Generic light-background tag pills (community pages, etc.) */
.content-section .tags span{
  font-size:0.76rem;background:var(--line-soft);border:1px solid var(--line);color:var(--ink-soft);
  padding:6px 12px;
}
.content-section.dark .tags span{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.18);color:#C7C5C0;}
.content-section.dark .amenity-item{color:#C7C5C0;}

/* Safety net: prevent any grid track from blowing out to an image's intrinsic
   width/height attributes. Without this, a fixed-ratio grid (e.g. 1fr 1fr) can
   grow a column far beyond its intended share when a child <img> carries large
   width/height HTML attributes, since CSS Grid's default track sizing includes
   the child's min-content in its calculation. Applies broadly, including grids
   added later, since the fix is harmless when no image is present. */
[class*="grid"] > *, .cat-cards > *, .mega-inner > *, .calc-row-split > *, .form-row > * {
  min-width: 0;
}

/* Google follow card (blog hero) */
.google-follow-card{
  display:flex;align-items:center;gap:14px;background:#fff;color:var(--ink);
  padding:18px 22px;margin:32px auto 0;max-width:520px;box-shadow:0 12px 32px rgba(0,0,0,0.25);
  transition:transform .15s ease;text-align:left;
}
.google-follow-card:hover{transform:translateY(-2px);}
.google-follow-card .g-icon{flex-shrink:0;}
.google-follow-card .txt strong{display:block;font-size:0.95rem;}
.google-follow-card .txt span{display:block;font-size:0.82rem;color:var(--ink-soft);margin-top:2px;}
@media (max-width:560px){.google-follow-card{max-width:none;}}

/* Sticky mobile CTA bar — keeps a lead path on screen through the whole
   scroll, since mobile pages can run very long before reaching a form. */
.mobile-cta-bar{display:none;}
@media (max-width:760px){
  body{padding-bottom:56px;}
  .mobile-cta-bar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;
    background:#121212;border-top:1px solid #2A2A2A;
  }
  .mobile-cta-bar a{
    flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
    padding:15px 8px;font-size:0.86rem;font-weight:600;font-family:var(--sans);
  }
  .mobile-cta-bar .cta-text{color:#fff;border-right:1px solid #2A2A2A;}
  .mobile-cta-bar .cta-primary{background:var(--accent);color:#fff;}
}

/* Shared button hover: underline sweep -- same left-to-right reveal motion as
   .nav-links a::after, so every button and nav link on the site shares one
   consistent hover language instead of a background-fill invert. */
.btn-solid-warm::after, .btn-outline-light::after, .btn-outline-dark::after, .nav-cta::after, .btn-block-dark::after,
.hero-path-btn::after, .hero-search button::after, .cta-form-pills a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:currentColor;
  transform:scaleX(0);transform-origin:left;transition:transform .22s ease;
}
.btn-solid-warm:hover::after, .btn-outline-light:hover::after, .btn-outline-dark:hover::after, .nav-cta:hover::after, .btn-block-dark:hover::after,
.hero-path-btn:hover::after, .hero-search button:hover::after, .cta-form-pills a:hover::after{
  transform:scaleX(1);
}
