/* =====================================================================
   AMIR NAHVI - ASCENT design system for WordPress + Elementor Pro
   Shipped with the theme and enqueued from functions.php.
   Do NOT also paste it into Elementor's Custom CSS - it would load twice.

   Everything is prefixed  an-  so it cannot collide with the theme.
   Colour rule 60 / 35 / 5  ->  paper & white 60, navy 35, red 5.
   Only ONE red button may be visible in any single viewport.
   ===================================================================== */

:root{
  --an-navy:#1e3a73;  --an-navy-d:#16294f; --an-ink:#0e1b33;
  --an-red:#cc2229;   --an-red-d:#a81a20;  --an-blue:#2e5aa8;
  --an-paper:#f6f8fb; --an-line:#dfe5ee;   --an-mut:#5d6b83;
  --an-shadow:0 1px 2px rgba(14,27,51,.06),0 8px 28px rgba(14,27,51,.09);
  --an-shadow-lg:0 2px 6px rgba(14,27,51,.08),0 24px 60px rgba(14,27,51,.16);
}

/* ---------- fonts -------------------------------------------------- */
/* Upload the woff2 files to  fonts/  first.
   Do NOT load them from Google Fonts - self-hosting is faster and
   keeps the site working on networks that block the CDN.            */
@font-face{font-family:"Inter";src:url("fonts/Inter-Variable.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Poppins";src:url("fonts/Poppins-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Poppins";src:url("fonts/Poppins-SemiBold.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Poppins";src:url("fonts/Poppins-Bold.woff2") format("woff2");font-weight:700;font-display:swap}

/* ---------- typography --------------------------------------------- */
body{font-family:"Inter","Segoe UI",system-ui,sans-serif;color:var(--an-ink);
  font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.elementor-heading-title{
  font-family:"Poppins","Inter",system-ui,sans-serif;font-weight:700;
  letter-spacing:-.02em;line-height:1.14}

/* ---------- shared section rhythm ---------------------------------- */
.an-sec{padding:80px 0}
.an-sec-alt{background:var(--an-paper)}
.an-sec-dark{background:linear-gradient(160deg,#1e3a73,#16294f);color:#fff}
.an-sec-dark .elementor-heading-title,
.an-sec-dark h2,.an-sec-dark h3{color:#fff}
.an-sec-dark p{color:#b8c8e2}

.an-kick .elementor-heading-title,.an-kick{font-family:"Poppins",sans-serif;
  font-size:12.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:var(--an-red)}
.an-sec-dark .an-kick .elementor-heading-title{color:#f08e93}
.an-h2 .elementor-heading-title{font-size:clamp(27px,3.3vw,38px)}
.an-lead{color:var(--an-mut);font-size:16.5px}
.an-sec-dark .an-lead{color:#b8c8e2}

/* ---------- buttons ------------------------------------------------- */
.an-btn,
.an-btn-red.elementor-button,
.elementor-element.an-btn-red .elementor-button{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:"Poppins",sans-serif;font-weight:600;font-size:15px;
  padding:14px 26px;border-radius:10px;border:1.5px solid transparent;
  cursor:pointer;transition:.18s ease;white-space:nowrap;text-decoration:none}
.an-btn-red,.elementor-element.an-btn-red .elementor-button{
  background:var(--an-red);color:#fff;
  box-shadow:0 6px 18px rgba(204,34,41,.28)}
.an-btn-red:hover,.elementor-element.an-btn-red .elementor-button:hover{
  background:var(--an-red-d);color:#fff;transform:translateY(-1px)}
.elementor-element.an-btn-navy .elementor-button{
  background:var(--an-navy);color:#fff;border-radius:10px;
  font-family:"Poppins",sans-serif;font-weight:600;padding:14px 26px}
.elementor-element.an-btn-navy .elementor-button:hover{background:var(--an-navy-d)}
.elementor-element.an-btn-ghost .elementor-button{
  background:transparent;color:var(--an-navy);border:1.5px solid #c3cfe2;
  border-radius:10px;font-family:"Poppins",sans-serif;font-weight:600;padding:13px 25px}
.elementor-element.an-btn-ghost .elementor-button:hover{
  border-color:var(--an-navy);background:#f2f5fa}
.elementor-element.an-btn-ghost-l .elementor-button{
  background:rgba(255,255,255,.08);color:#fff;border:1.5px solid rgba(255,255,255,.34);
  border-radius:10px;font-family:"Poppins",sans-serif;font-weight:600;padding:13px 25px}
.elementor-element.an-btn-ghost-l .elementor-button:hover{background:rgba(255,255,255,.16)}

/* ---------- top bar -------------------------------------------------- */
.an-topbar{background:var(--an-ink);color:#cfd8e8;font-size:13px}
.an-tb-in{max-width:1180px;margin:0 auto;padding:0 24px;height:40px;
  display:flex;align-items:center;justify-content:space-between;gap:16px}
.an-topbar b{color:#fff;font-weight:600}
.an-topbar a{color:inherit;text-decoration:none}
.an-tb-r{display:flex;gap:22px;align-items:center}
@media(max-width:767px){.an-hide-s{display:none}}

/* ---------- header (Theme Builder) ----------------------------------- */
.an-hdr{background:rgba(255,255,255,.94);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--an-line)}
.an-brand .elementor-heading-title{font-family:"Poppins",sans-serif;font-weight:700;
  font-size:21px;letter-spacing:.02em;color:var(--an-ink);line-height:1.05}
.an-brand em{font-style:normal;color:var(--an-red)}
.an-brand-sub .elementor-heading-title{font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--an-mut);font-weight:600}
.an-menu .elementor-nav-menu .elementor-item{
  font-size:14.5px;font-weight:500;color:#33445f;
  border-bottom:2px solid transparent;padding-bottom:6px}
.an-menu .elementor-nav-menu .elementor-item:hover,
.an-menu .elementor-nav-menu .elementor-item.elementor-item-active{
  color:var(--an-navy);border-bottom-color:var(--an-red)}

/* ---------- hero ------------------------------------------------------ */
.an-hero{position:relative;overflow:hidden;color:#fff;
  background:radial-gradient(1100px 520px at 84% 8%,#274a8c 0%,transparent 62%),
             linear-gradient(158deg,#1e3a73 0%,#16294f 58%,#101f3d 100%)}
.an-hero:before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(760px 460px at 22% 34%,#000,transparent 72%);
          mask-image:radial-gradient(760px 460px at 22% 34%,#000,transparent 72%)}
.an-hero > .e-con-inner,.an-hero > .elementor-container{position:relative;z-index:2}
.an-hero .elementor-heading-title{color:#fff}
.an-hero-h1 .elementor-heading-title{font-size:clamp(34px,4.5vw,55px)}
.an-hero-h1 em{font-style:normal;color:#8fb4ee}
.an-hero-lead{font-size:17.5px;color:#c3d1e8;max-width:33em}
.an-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:10px;
  font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:#a9c0e6}
.an-eyebrow .elementor-heading-title:before{content:"";width:26px;height:2px;
  background:var(--an-red);display:inline-block}

.an-trustrow{display:flex;gap:26px;flex-wrap:wrap;padding-top:24px;
  border-top:1px solid rgba(255,255,255,.14)}
.an-trust{display:flex;flex-direction:column;gap:2px}
.an-trust b{font-family:"Poppins",sans-serif;font-size:20px;color:#fff;font-weight:700}
.an-trust span{font-size:12.5px;color:#9db3d6;letter-spacing:.03em}

.an-hero-photo{position:relative;min-height:430px;display:flex;
  align-items:flex-end;justify-content:center}
.an-hero-photo:before{content:"";position:absolute;bottom:0;left:50%;
  transform:translateX(-50%);width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(143,180,238,.30) 0%,transparent 68%)}
.an-hero-photo img{position:relative;z-index:2;max-height:520px;width:auto;
  filter:drop-shadow(0 26px 46px rgba(0,0,0,.42))}
.an-pcard{position:absolute;z-index:3;background:rgba(255,255,255,.97);
  color:var(--an-ink);border-radius:12px;padding:13px 17px;
  box-shadow:var(--an-shadow-lg);display:flex;align-items:center;gap:12px}
.an-pcard b{font-family:"Poppins",sans-serif;font-size:15px;display:block;line-height:1.2}
.an-pcard span{font-size:12px;color:var(--an-mut)}
.an-dot{width:9px;height:9px;border-radius:50%;background:#1faa5a;flex:none;
  box-shadow:0 0 0 4px rgba(31,170,90,.18)}
.an-pcard-a{left:-6px;bottom:118px}
.an-pcard-b{right:-4px;bottom:250px}
@media(max-width:1024px){
  .an-hero-photo{min-height:340px}
  .an-hero-photo img{max-height:330px}
  .an-pcard{display:none}
}

/* ---------- search card ---------------------------------------------- */
.an-searchcard{margin-top:-104px;position:relative;z-index:20;background:#fff;
  border:1px solid var(--an-line);border-radius:18px;
  box-shadow:var(--an-shadow-lg);overflow:hidden;scroll-margin-top:90px}
.an-stabs{display:flex;gap:2px;padding:8px 8px 0;background:#f1f5fa;
  border-bottom:1px solid var(--an-line);overflow-x:auto}
.an-stab{font-family:"Poppins",sans-serif;font-weight:600;font-size:14.5px;
  padding:13px 24px;background:transparent;color:#546480;cursor:pointer;
  border-radius:10px 10px 0 0;white-space:nowrap;border:1px solid transparent;
  border-bottom:none;position:relative;top:1px}
.an-stab.is-on{background:#fff;color:var(--an-navy);border-color:var(--an-line)}
.an-sform{padding:24px;margin:0}
.an-sgrid{display:grid;grid-template-columns:2.1fr 1.1fr 1fr 1.2fr auto;
  gap:12px;align-items:end}
.an-fld{display:flex;flex-direction:column;gap:7px;min-width:0}
.an-fld label{font-size:12px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--an-mut)}
.an-fld input,.an-fld select{width:100%;height:50px;border:1.5px solid var(--an-line);
  border-radius:10px;padding:0 14px;font-family:inherit;font-size:15px;
  color:var(--an-ink);background:#fff;outline:none;transition:.15s}
.an-fld input:focus,.an-fld select:focus{border-color:var(--an-blue);
  box-shadow:0 0 0 3px rgba(46,90,168,.14)}
.an-sgrid .an-btn{height:50px}
.an-quick{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:18px 24px;
  border-top:1px solid #eef2f7;background:#fbfcfe}
.an-ql{font-size:12.5px;font-weight:600;color:var(--an-mut);letter-spacing:.05em;
  text-transform:uppercase;margin-inline-end:4px}
.an-chip{font-size:13.5px;padding:7px 14px;border-radius:999px;background:#fff;
  border:1px solid var(--an-line);color:#3d4f6e;font-weight:500;transition:.15s;
  text-decoration:none}
.an-chip:hover{border-color:var(--an-navy);color:var(--an-navy);background:#f4f7fc}
.an-chip-hot{border-color:#f3c5c7;color:var(--an-red);background:#fef6f6}
@media(max-width:1024px){
  .an-searchcard{margin-top:-96px}
  .an-sgrid{grid-template-columns:1fr 1fr;gap:10px}
  .an-sgrid .an-fld:first-child{grid-column:1/-1}
  .an-sgrid .an-btn{grid-column:1/-1;width:100%}
}
@media(max-width:600px){.an-sgrid{grid-template-columns:1fr}.an-sform{padding:18px}}

/* ---------- listings -------------------------------------------------- */
.an-idxzone{border:2px dashed #c7d3e6;border-radius:16px;padding:22px;
  background:#fff;position:relative}
.an-idxtag{position:absolute;top:-12px;left:22px;background:var(--an-navy);
  color:#fff;font-family:"Poppins",sans-serif;font-size:11.5px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;padding:4px 12px;border-radius:6px}
.an-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:1024px){.an-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.an-cards{grid-template-columns:1fr}}
.an-card{background:#fff;border:1px solid var(--an-line);border-radius:14px;
  overflow:hidden;box-shadow:var(--an-shadow);transition:.2s}
.an-card:hover{transform:translateY(-3px);box-shadow:var(--an-shadow-lg)}
.an-thumb{height:186px;position:relative;
  background:linear-gradient(150deg,#dfe7f4,#c8d6ea 55%,#b7c8e3)}
.an-thumb:after{content:"";position:absolute;left:50%;top:52%;
  transform:translate(-50%,-50%);width:74px;height:56px;
  background:linear-gradient(#fff,#eef3fa);opacity:.62;
  clip-path:polygon(50% 0,100% 40%,100% 100%,0 100%,0 40%)}
.an-badge{position:absolute;top:12px;left:12px;z-index:2;background:var(--an-navy);
  color:#fff;font-size:11.5px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;padding:5px 11px;border-radius:6px}
.an-badge-rent{background:#0f7a52}
.an-badge-new{background:var(--an-red)}
.an-cbody{padding:16px 17px 18px}
.an-price{font-family:"Poppins",sans-serif;font-size:21px;font-weight:700;
  color:var(--an-ink);letter-spacing:-.01em}
.an-price small{font-size:13px;font-weight:500;color:var(--an-mut)}
.an-addr{font-size:14.5px;color:#3d4f6e;margin:5px 0 12px}
.an-meta{display:flex;gap:14px;font-size:13px;color:var(--an-mut);
  padding-top:12px;border-top:1px solid #eef2f7}
.an-meta b{color:var(--an-ink);font-weight:600}
.an-mls{font-size:11.5px;color:#8b99b0;margin-top:10px;letter-spacing:.02em}

/* ---------- areas ------------------------------------------------------ */
.an-areas{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:1024px){.an-areas{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.an-areas{grid-template-columns:1fr}}
.an-area{background:#fff;border:1px solid var(--an-line);border-radius:13px;
  padding:20px 18px;transition:.18s;display:block;text-decoration:none;
  color:var(--an-ink)}
.an-area:hover{border-color:var(--an-navy);transform:translateY(-2px);
  box-shadow:var(--an-shadow)}
.an-area b{font-family:"Poppins",sans-serif;font-size:16.5px;display:block;
  margin-bottom:5px}
.an-area span{font-size:13.5px;color:var(--an-mut);display:block}
.an-cnt{display:inline-block;margin-top:12px;font-size:12.5px;font-weight:600;
  color:var(--an-blue)}

/* ---------- value ------------------------------------------------------ */
.an-vals{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:1024px){.an-vals{grid-template-columns:1fr}}
.an-val{background:#fff;border:1px solid var(--an-line);border-radius:14px;
  padding:26px 24px}
.an-n{font-family:"Poppins",sans-serif;font-size:13px;font-weight:700;
  color:var(--an-red);letter-spacing:.1em;margin-bottom:14px}
.an-val h3{font-size:19px;margin:0 0 10px}
.an-val p{color:var(--an-mut);font-size:15px;margin:0}

/* ---------- ticks ------------------------------------------------------ */
.an-ticks{list-style:none;padding:0;margin:24px 0 0}
.an-ticks li{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px;
  font-size:15.5px;color:#c3d1e8}
.an-ticks li:before{content:"";flex:none;width:20px;height:20px;border-radius:50%;
  background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.3);
  margin-top:3px;
  background-image:linear-gradient(45deg,transparent 42%,#8fb4ee 42%,#8fb4ee 58%,transparent 58%)}

/* ---------- Elementor Pro form widget ---------------------------------- */
.an-form{background:#fff;border-radius:16px;padding:28px;
  box-shadow:var(--an-shadow-lg)}
.an-form .elementor-field-group > label{font-size:12px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;color:var(--an-mut);
  margin-bottom:7px}
.an-form .elementor-field-textual{height:50px;border:1.5px solid var(--an-line);
  border-radius:10px;padding:0 14px;font-family:inherit;font-size:15px;
  color:var(--an-ink);background:#fff}
.an-form .elementor-field-textual:focus{border-color:var(--an-blue);
  box-shadow:0 0 0 3px rgba(46,90,168,.14);outline:none}
.an-form .elementor-button{width:100%;background:var(--an-red);color:#fff;
  font-family:"Poppins",sans-serif;font-weight:600;font-size:15px;
  border-radius:10px;height:52px;box-shadow:0 6px 18px rgba(204,34,41,.28)}
.an-form .elementor-button:hover{background:var(--an-red-d)}
.an-form-inline .elementor-button{width:auto;background:var(--an-navy);
  box-shadow:none;padding:0 26px}
.an-form-inline .elementor-button:hover{background:var(--an-navy-d)}

/* ---------- stats & reviews -------------------------------------------- */
.an-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--an-line);border:1px solid var(--an-line);border-radius:14px;
  overflow:hidden}
@media(max-width:767px){.an-stats{grid-template-columns:repeat(2,1fr)}}
.an-stat{background:#fff;padding:26px 20px;text-align:center}
.an-stat b{display:block;font-family:"Poppins",sans-serif;font-size:32px;
  color:var(--an-navy);letter-spacing:-.02em}
.an-stat span{font-size:13px;color:var(--an-mut)}
.an-revs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:1024px){.an-revs{grid-template-columns:1fr}}
.an-rev{background:#fff;border:1px solid var(--an-line);border-radius:14px;padding:24px}
.an-stars{color:#f0a92b;letter-spacing:3px;font-size:15px;margin-bottom:12px}
.an-rev p{font-size:15px;color:#3d4f6e;margin:0 0 16px}
.an-who{display:flex;align-items:center;gap:11px}
.an-av{width:38px;height:38px;border-radius:50%;background:var(--an-navy);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:600;
  font-family:"Poppins",sans-serif;font-size:14px;flex:none}
.an-who b{font-size:14.5px;display:block;line-height:1.3}
.an-who span{font-size:12.5px;color:var(--an-mut)}

/* ---------- footer ------------------------------------------------------ */
.an-ftr{background:var(--an-ink);color:#a9b6cc;font-size:14px}
.an-ftr .elementor-heading-title{color:#fff;font-size:14px;letter-spacing:.1em;
  text-transform:uppercase;font-weight:600}
.an-ftr a{color:#a9b6cc;text-decoration:none}
.an-ftr a:hover{color:#fff}
.an-ftr .elementor-icon-list-item{margin-bottom:9px}
.an-legal{border-top:1px solid #24314c;padding:22px 0 0;font-size:12.5px;
  color:#7d8ba5;line-height:1.7}
.an-legal p{margin:0 0 10px}
.an-legal b{color:#a9b6cc;font-weight:600}
.an-blogo img{width:170px;filter:brightness(0) invert(1);opacity:.9}

/* ---------- accessibility ----------------------------------------------- */
.an-chip:focus-visible,.an-area:focus-visible,.an-stab:focus-visible,
.an-fld input:focus-visible,.an-fld select:focus-visible{
  outline:3px solid #8fb4ee;outline-offset:2px}
@media(prefers-reduced-motion:reduce){
  .an-card,.an-area,.an-btn-red,.elementor-element.an-btn-red .elementor-button{
    transition:none}
  .an-card:hover,.an-area:hover{transform:none}
}

/* ---------- responsive stacking for the row containers ------------------
   Elementor keeps flex-direction:row on tablet/mobile unless it is set per
   breakpoint. These rules do it once, for every row this template builds. */
@media(max-width:1024px){
  .an-hero,.an-sec.e-con,.an-ftr .e-con{flex-wrap:wrap}
  .an-hero > .e-con,
  .an-sec > .e-con,
  .an-sec > .e-con-inner > .e-con{width:100% !important}
  .an-hero{flex-direction:column-reverse !important;padding-bottom:140px !important}
  .an-hero-copy,.an-hero-col-photo{width:100% !important}
  .an-sec.an-sec-dark,.an-sec.an-sec-alt,.an-sec{padding-left:0;padding-right:0}
  .an-right{justify-content:flex-start !important}
}
@media(max-width:767px){
  .an-sec{padding-top:56px !important;padding-bottom:56px !important}
  .an-ftr .e-con > .e-con{width:100% !important}
}

/* hero CTA row keeps both buttons on one line where there is room */
.an-hero-cta{display:flex;flex-wrap:wrap;gap:12px}

/* the search card must be able to escape its container's padding */
.an-searchband{overflow:visible}

/* ===== ported from style.css by port_to_elementor.py ===== */
/* ---------- commercial ---------- */
.an-ctypes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}
@media(max-width:900px){.an-ctypes{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.an-ctypes{grid-template-columns:1fr}}
.an-ctype{display:flex;gap:14px;align-items:flex-start;background:#fff;
  border:1px solid var(--an-line);border-radius:13px;padding:18px 18px;transition:.18s}
.an-ctype:hover{border-color:var(--an-navy);transform:translateY(-2px);box-shadow:var(--an-shadow)}
.an-ctype .an-ic{flex:none;width:42px;height:42px;border-radius:10px;background:#eef3fb;
  border:1px solid #dbe5f3;position:relative}
.an-ctype .an-ic:after{content:"";position:absolute;inset:11px;background:var(--an-navy);
  opacity:.85;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-size:contain;mask-size:contain}
.an-ctype.an-t-office .an-ic:after{clip-path:polygon(0 12%,55% 12%,55% 100%,0 100%);
  background:var(--an-navy)}
.an-ctype.an-t-retail .an-ic:after{clip-path:polygon(0 38%,100% 38%,100% 100%,0 100%)}
.an-ctype.an-t-industrial .an-ic:after{clip-path:polygon(0 45%,32% 45%,32% 25%,64% 45%,64% 25%,100% 45%,100% 100%,0 100%)}
.an-ctype.an-t-land .an-ic:after{clip-path:polygon(0 70%,100% 70%,100% 82%,0 82%)}
.an-ctype.an-t-invest .an-ic:after{clip-path:polygon(4% 100%,4% 60%,28% 60%,28% 100%,38% 100%,38% 34%,62% 34%,62% 100%,72% 100%,72% 8%,96% 8%,96% 100%)}
.an-ctype.an-t-business .an-ic:after{clip-path:polygon(0 30%,34% 30%,34% 16%,66% 16%,66% 30%,100% 30%,100% 100%,0 100%)}
.an-ctype b{font-family:"Poppins",sans-serif;font-size:16px;display:block;
  margin-bottom:3px;color:var(--an-ink)}
.an-ctype span{font-size:13.5px;color:var(--an-mut);display:block;line-height:1.55}
.an-cbar{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#2b4884;
  border-radius:14px;overflow:hidden}
@media(max-width:760px){.an-cbar{grid-template-columns:1fr}}
.an-cbar div{background:var(--an-navy);color:#fff;padding:20px 22px}
.an-cbar b{font-family:"Poppins",sans-serif;font-size:15.5px;display:block;margin-bottom:4px}
.an-cbar span{font-size:13.5px;color:#b8c8e2}

/* ================= LISTINGS + AREA PAGES ================= */
.an-pagehead{background:linear-gradient(160deg,#1e3a73,#16294f);color:#fff;
  padding:26px 0 34px}
.an-crumbs{font-size:13px;color:#9db3d6;margin-bottom:14px}
.an-crumbs a{color:#c3d1e8}
.an-crumbs a:hover{color:#fff}
.an-crumbs span{margin:0 7px;opacity:.5}
.an-pagehead h1{font-size:clamp(26px,3.4vw,40px);color:#fff;margin-bottom:10px}
.an-pagehead .an-ph-sub{color:#b8c8e2;font-size:16.5px;max-width:56em}

/* segmented control */
.an-seg{display:inline-flex;gap:4px;background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.20);border-radius:12px;padding:4px;
  margin-top:22px;flex-wrap:wrap}
.an-seg button{font-family:"Poppins",sans-serif;font-weight:600;font-size:14.5px;
  padding:11px 22px;border-radius:9px;border:none;background:transparent;
  color:#c3d1e8;cursor:pointer;transition:.15s}
.an-seg button:hover{color:#fff}
.an-seg button.an-on{background:#fff;color:var(--an-navy)}
.an-seg button.an-on.an-cx{background:var(--an-red);color:#fff}

/* compact search strip */
.an-sstrip{background:#fff;border:1px solid var(--an-line);border-radius:14px;
  box-shadow:var(--an-shadow);padding:16px;margin-top:-26px;position:relative;z-index:10}
.an-sstrip .an-sgrid{grid-template-columns:2.2fr 1.2fr 1fr 1.2fr auto}
@media(max-width:980px){.an-sstrip .an-sgrid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.an-sstrip .an-sgrid{grid-template-columns:1fr}}

/* results layout */
.an-lay{display:grid;grid-template-columns:274px 1fr;gap:28px;align-items:start}
@media(max-width:980px){.an-lay{grid-template-columns:1fr}}
.an-filters{background:#fff;border:1px solid var(--an-line);border-radius:14px;
  padding:20px;position:sticky;top:96px}
@media(max-width:980px){.an-filters{position:static}}
.an-fgroup{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid #eef2f7}
.an-fgroup:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.an-fgroup h4{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--an-mut);margin-bottom:11px;font-weight:600}
.an-fopt{display:flex;align-items:center;gap:9px;font-size:14.5px;color:#3d4f6e;
  margin-bottom:8px;cursor:pointer}
.an-fopt input{width:17px;height:17px;accent-color:var(--an-navy);margin:0}
.an-fopt .an-num{margin-inline-start:auto;font-size:12.5px;color:#8b99b0}
.an-frange{display:flex;gap:8px}
.an-frange input{width:100%;height:42px;border:1.5px solid var(--an-line);border-radius:9px;
  padding:0 11px;font-family:inherit;font-size:14px;outline:none}
.an-frange input:focus{border-color:var(--an-blue)}
.an-fonly{display:none}
.an-filters[data-mode="commercial"] .an-fonly-c{display:block}
.an-filters[data-mode="residential"] .an-fonly-r{display:block}
.an-filters[data-mode="lease"] .an-fonly-r{display:block}

.an-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;margin-bottom:18px}
.an-toolbar .an-count{font-size:14.5px;color:var(--an-mut)}
.an-toolbar .an-count b{color:var(--an-ink);font-family:"Poppins",sans-serif;font-size:16px}
.an-toolbar select{height:42px;border:1.5px solid var(--an-line);border-radius:9px;
  padding:0 12px;font-family:inherit;font-size:14px;background:#fff;outline:none}
.an-cards.an-two{grid-template-columns:repeat(2,1fr)}
@media(max-width:640px){.an-cards.an-two{grid-template-columns:1fr}}

.an-pager{display:flex;gap:7px;justify-content:center;margin-top:30px;flex-wrap:wrap}
.an-pager a,.an-pager span{min-width:40px;height:40px;display:inline-flex;
  align-items:center;justify-content:center;border:1px solid var(--an-line);
  border-radius:9px;background:#fff;font-size:14.5px;color:#3d4f6e;padding:0 12px}
.an-pager a:hover{border-color:var(--an-navy);color:var(--an-navy)}
.an-pager .an-cur{background:var(--an-navy);color:#fff;border-color:var(--an-navy)}

/* city rail */
.an-cityrail{display:flex;gap:8px;flex-wrap:wrap}
.an-cityrail a{font-size:14px;padding:9px 15px;border-radius:999px;background:#fff;
  border:1px solid var(--an-line);color:#3d4f6e;transition:.15s}
.an-cityrail a:hover{border-color:var(--an-navy);color:var(--an-navy);background:#f4f7fc}

/* area page bits */
.an-snap{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:760px){.an-snap{grid-template-columns:repeat(2,1fr)}}
.an-snapc{background:#fff;border:1px solid var(--an-line);border-radius:13px;padding:18px}
.an-snapc b{display:block;font-family:"Poppins",sans-serif;font-size:26px;
  color:var(--an-navy);letter-spacing:-.02em;line-height:1.2}
.an-snapc span{font-size:13px;color:var(--an-mut)}
.an-snapc .an-delta{font-size:12.5px;font-weight:600;margin-top:6px;display:inline-block}
.an-up{color:#0f7a52}.an-down{color:var(--an-red)}

.an-prose{max-width:44em}
.an-prose p{margin-bottom:15px;color:#3d4f6e;font-size:16px}
.an-prose h3{font-size:20px;margin:26px 0 10px}
.an-prose ul{padding-inline-start:20px;color:#3d4f6e;margin-bottom:15px}
.an-prose li{margin-bottom:7px}

.an-subs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:760px){.an-subs{grid-template-columns:1fr}}
.an-sub{background:#fff;border:1px solid var(--an-line);border-radius:12px;padding:16px 18px}
.an-sub b{font-family:"Poppins",sans-serif;font-size:15.5px;display:block;margin-bottom:3px}
.an-sub span{font-size:13.5px;color:var(--an-mut)}

.an-faq{border-top:1px solid var(--an-line)}
.an-faq details{border-bottom:1px solid var(--an-line);padding:16px 0}
.an-faq summary{font-family:"Poppins",sans-serif;font-weight:600;font-size:16.5px;
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:14px}
.an-faq summary::-webkit-details-marker{display:none}
.an-faq summary:after{content:"+";color:var(--an-navy);font-size:22px;line-height:1}
.an-faq details[open] summary:after{content:"\2212"}
.an-faq p{margin-top:11px;color:#3d4f6e;font-size:15.5px}

.an-disc{font-size:12.5px;color:#8b99b0;line-height:1.7;border-top:1px solid var(--an-line);
  padding-top:18px;margin-top:34px}

/* ================= COMMERCIAL PAGE ================= */
.an-steps{counter-reset:st;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
@media(max-width:820px){.an-steps{grid-template-columns:1fr}}
.an-step{background:#fff;border:1px solid var(--an-line);border-radius:13px;
  padding:20px 22px 20px 64px;position:relative}
.an-step:before{counter-increment:st;content:counter(st);position:absolute;
  left:20px;top:20px;width:30px;height:30px;border-radius:50%;
  background:var(--an-navy);color:#fff;font-family:"Poppins",sans-serif;
  font-weight:700;font-size:14px;display:flex;align-items:center;
  justify-content:center}
.an-step b{font-family:"Poppins",sans-serif;font-size:16.5px;display:block;
  margin-bottom:5px}
.an-step span{font-size:14.5px;color:var(--an-mut);display:block;line-height:1.6}

.an-tbl{width:100%;border-collapse:collapse;font-size:15px;background:#fff;
  border:1px solid var(--an-line);border-radius:13px;overflow:hidden}
.an-tbl th,.an-tbl td{padding:13px 16px;text-align:left;
  border-bottom:1px solid #eef2f7;vertical-align:top}
.an-tbl th{background:#eef3fa;font-family:"Poppins",sans-serif;font-weight:600;
  font-size:13.5px;letter-spacing:.03em;color:var(--an-navy)}
.an-tbl tr:last-child td{border-bottom:none}
.an-tbl td:first-child{font-weight:600;color:var(--an-ink);white-space:nowrap}
.an-tblwrap{overflow-x:auto;border-radius:13px}

.an-frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.an-frow{grid-template-columns:1fr}}
.an-evalform textarea{width:100%;min-height:96px;border:1.5px solid var(--an-line);
  border-radius:10px;padding:11px 14px;font-family:inherit;font-size:15px;
  color:var(--an-ink);outline:none;resize:vertical}
.an-evalform textarea:focus{border-color:var(--an-blue);
  box-shadow:0 0 0 3px rgba(46,90,168,.14)}
.an-evalform select{width:100%;height:50px;border:1.5px solid var(--an-line);
  border-radius:10px;padding:0 14px;font-family:inherit;font-size:15px;
  color:var(--an-ink);background:#fff;outline:none}
.an-evalform select:focus{border-color:var(--an-blue)}

/* ================= HOME EVALUATION PAGE ================= */
.an-evalhero{background:radial-gradient(1000px 480px at 82% 10%,#274a8c 0%,transparent 60%),
  linear-gradient(158deg,#1e3a73 0%,#16294f 60%,#101f3d 100%);
  color:#fff;padding:56px 0 66px}
.an-evalgrid{display:grid;grid-template-columns:1.02fr .98fr;gap:44px;align-items:center}
@media(max-width:980px){.an-evalgrid{grid-template-columns:1fr;gap:30px}}
.an-evalhero h1{font-size:clamp(30px,4vw,46px);color:#fff;margin-bottom:18px}
.an-evalhero h1 em{font-style:normal;color:#8fb4ee}
.an-evalhero .an-lead{font-size:17.5px;color:#c3d1e8;margin-bottom:26px;max-width:32em}

/* multi-step wizard */
.an-wiz{background:#fff;border-radius:18px;box-shadow:var(--an-shadow-lg);
  padding:26px 26px 24px;color:var(--an-ink)}
.an-wiz h3{font-size:20px;margin-bottom:5px}
.an-wiz .an-wsub{font-size:14px;color:var(--an-mut);margin-bottom:18px}
.an-wbar{display:flex;gap:6px;margin-bottom:20px}
.an-wbar i{flex:1;height:5px;border-radius:3px;background:#e5ebf4;font-style:normal}
.an-wbar i.an-done{background:var(--an-navy)}
.an-wstep{display:none}
.an-wstep.an-on{display:block}
.an-wiz .an-fld{margin-bottom:14px}
.an-wiz .an-frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:420px){.an-wiz .an-frow{grid-template-columns:1fr}}
.an-wnav{display:flex;gap:10px;margin-top:6px}
.an-wnav .an-btn{flex:1}
.an-wback{flex:0 0 auto !important;padding-inline:18px}
.an-wiz .an-fine{font-size:12px;color:#8b99b0;margin-top:12px;line-height:1.55}
.an-wdone{display:none;text-align:center;padding:14px 0}
.an-wdone.an-on{display:block}
.an-wdone b{display:block;font-family:"Poppins",sans-serif;font-size:19px;
  margin-bottom:8px}
.an-wdone p{font-size:14.5px;color:var(--an-mut)}
.an-wtick{width:52px;height:52px;border-radius:50%;background:#e8f6ee;
  border:1px solid #bfe6d0;margin:0 auto 14px;position:relative}
.an-wtick:after{content:"";position:absolute;left:18px;top:14px;width:14px;height:24px;
  border:solid #0f7a52;border-width:0 3px 3px 0;transform:rotate(45deg)}

/* what you get */
.an-getlist{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
@media(max-width:760px){.an-getlist{grid-template-columns:1fr}}
.an-get{display:flex;gap:14px;align-items:flex-start;background:#fff;
  border:1px solid var(--an-line);border-radius:13px;padding:20px}
.an-get .an-gn{flex:none;width:34px;height:34px;border-radius:9px;background:#eef3fb;
  border:1px solid #dbe5f3;color:var(--an-navy);font-family:"Poppins",sans-serif;
  font-weight:700;font-size:14px;display:flex;align-items:center;
  justify-content:center}
.an-get b{font-family:"Poppins",sans-serif;font-size:16.5px;display:block;
  margin-bottom:4px}
.an-get span{font-size:14.5px;color:var(--an-mut);display:block;line-height:1.6}

/* promise box */
.an-promise{background:#f2fbf6;border:1px solid #bfe6d0;border-inline-start:4px solid #0f7a52;
  border-radius:13px;padding:20px 22px;margin-top:24px}
.an-promise b{font-family:"Poppins",sans-serif;font-size:16px;color:#0f7a52;
  display:block;margin-bottom:6px}
.an-promise p{font-size:15px;color:#3d4f6e;margin:0}

/* ================= SINGLE LISTING PAGE ================= */
.an-lbar{background:#fff;border-bottom:1px solid var(--an-line);padding:14px 0}
.an-lbar .an-wrap{display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap}
.an-lbar .an-crumbs{color:var(--an-mut);margin:0}
.an-lbar .an-crumbs a{color:var(--an-blue)}
.an-lbar .an-back{font-size:13.5px;color:var(--an-mut)}

/* gallery */
.an-gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:150px 150px;
  gap:8px;margin-bottom:26px}
.an-gal > div{position:relative;overflow:hidden;border-radius:10px;
  background:linear-gradient(150deg,#dfe7f4,#c8d6ea 55%,#b7c8e3)}
.an-gal > div:first-child{grid-row:span 2}
.an-gal > div:after{content:"";position:absolute;left:50%;top:52%;
  transform:translate(-50%,-50%);width:56px;height:42px;
  background:linear-gradient(#fff,#eef3fa);opacity:.55;
  clip-path:polygon(50% 0,100% 40%,100% 100%,0 100%,0 40%)}
.an-gal .an-more{position:absolute;inset:auto 10px 10px auto;z-index:2;background:rgba(14,27,51,.82);
  color:#fff;font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:7px}
@media(max-width:820px){
  .an-gal{grid-template-columns:1fr 1fr;grid-template-rows:150px 110px}
  .an-gal > div:first-child{grid-column:span 2;grid-row:auto;height:200px}
  .an-gal > div:nth-child(n+4){display:none}
}

/* two column body */
.an-llay{display:grid;grid-template-columns:1fr 372px;gap:34px;align-items:start}
@media(max-width:1024px){.an-llay{grid-template-columns:1fr}}
.an-lside{position:sticky;top:96px;display:flex;flex-direction:column;gap:18px}
@media(max-width:1024px){.an-lside{position:static}}

/* price header */
.an-lhead{display:flex;align-items:flex-start;justify-content:space-between;
  gap:20px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--an-line)}
.an-lprice{font-family:"Poppins",sans-serif;font-size:34px;font-weight:700;
  letter-spacing:-.02em;line-height:1.1}
.an-laddr{font-size:16.5px;color:#3d4f6e;margin-top:6px}
.an-lmls{font-size:12.5px;color:#8b99b0;margin-top:8px;letter-spacing:.02em}
.an-lstatus{display:inline-flex;align-items:center;gap:7px;background:#eaf6ef;
  border:1px solid #bfe6d0;color:#0f7a52;font-size:13px;font-weight:600;
  padding:6px 13px;border-radius:999px}
.an-lstatus i{width:7px;height:7px;border-radius:50%;background:#0f7a52;
  font-style:normal;display:inline-block}

/* key facts */
.an-facts{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--an-line);
  border:1px solid var(--an-line);border-radius:13px;overflow:hidden;margin:22px 0 28px}
@media(max-width:760px){.an-facts{grid-template-columns:repeat(2,1fr)}}
.an-fact{background:#fff;padding:16px 14px;text-align:center}
.an-fact b{display:block;font-family:"Poppins",sans-serif;font-size:20px;color:var(--an-ink)}
.an-fact span{font-size:12.5px;color:var(--an-mut)}

/* detail grid */
.an-dl{display:grid;grid-template-columns:repeat(2,1fr);gap:0 30px}
@media(max-width:600px){.an-dl{grid-template-columns:1fr}}
.an-dl div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;
  border-bottom:1px solid #eef2f7;font-size:15px}
.an-dl dt{color:var(--an-mut);margin:0}
.an-dl dd{margin:0;font-weight:600;color:var(--an-ink);text-align:right}

/* sidebar cards */
.an-scard{background:#fff;border:1px solid var(--an-line);border-radius:14px;
  padding:22px;box-shadow:var(--an-shadow)}
.an-scard h3{font-size:18px;margin-bottom:6px}
.an-scard .an-sub{font-size:14px;color:var(--an-mut);margin-bottom:16px}
.an-scard .an-fld{margin-bottom:12px}
.an-scard .an-btn{width:100%}
.an-scard .an-fine{font-size:11.5px;color:#8b99b0;margin-top:11px;line-height:1.5}
.an-agent{display:flex;gap:14px;align-items:center}
.an-agent .an-ph{width:60px;height:60px;border-radius:50%;flex:none;
  background:linear-gradient(150deg,#dfe7f4,#b7c8e3);overflow:hidden}
.an-agent .an-ph img{width:100%;height:100%;object-fit:cover;object-position:top center}
.an-agent b{font-family:"Poppins",sans-serif;font-size:16.5px;display:block}
.an-agent span{font-size:13.5px;color:var(--an-mut);display:block}
.an-agent .an-tel{font-size:15px;font-weight:600;color:var(--an-navy);margin-top:4px;display:block}

/* map placeholder */
.an-mapbox{height:260px;border-radius:13px;border:1px solid var(--an-line);
  background:
    repeating-linear-gradient(0deg,#e8eef7 0 1px,transparent 1px 40px),
    repeating-linear-gradient(90deg,#e8eef7 0 1px,transparent 1px 40px),
    linear-gradient(160deg,#f4f7fc,#e6edf7);
  position:relative}
.an-mapbox:after{content:"";position:absolute;left:50%;top:44%;width:20px;height:20px;
  transform:translate(-50%,-50%) rotate(45deg);background:var(--an-red);
  border-radius:50% 50% 50% 0;box-shadow:0 6px 14px rgba(204,34,41,.35)}
.an-mapnote{font-size:12.5px;color:var(--an-mut);margin-top:10px}

/* ---------- hero background video + photo seating ---------- */
.an-herovid,.an-herovid{position:absolute;top:0;bottom:0;left:50%;
  transform:translateX(-50%);width:100vw;max-width:100vw;height:100%;
  object-fit:cover;opacity:.22;pointer-events:none;z-index:0;
  filter:saturate(.8)}
.an-hero > .an-wrap,.an-hero > .e-con-inner{position:relative;z-index:2}
.an-hero:before,.an-hero:before{z-index:1}

/* the portrait sits on the bottom edge of the hero so the search card meets it
   with no navy gap in between */
.an-hero-col-photo,.an-hero-col-photo{align-self:stretch}
.an-hero-photo,.an-hero-photo{height:100%;align-items:flex-end;
  justify-content:center}
.an-hero-photo img,.an-hero-photo img{max-height:none;height:auto;
  width:auto;max-width:100%;align-self:flex-end}
@media(min-width:1025px){
  .an-hero-photo img,.an-hero-photo img{max-height:600px}
}
@media(prefers-reduced-motion:reduce){
  .an-herovid,.an-herovid{display:none}
}

/* ---------- mobile filter drawer ---------- */
.an-fbar{display:none}
.an-fhead,.an-ffoot{display:none}

@media(max-width:980px){
  .an-fbar{display:flex;gap:10px;align-items:center;margin-bottom:16px}
  .an-fbtn{display:inline-flex;align-items:center;gap:9px;flex:1;
    font-family:"Poppins",sans-serif;font-weight:600;font-size:15px;
    padding:13px 18px;border-radius:11px;border:1.5px solid var(--an-line);
    background:#fff;color:var(--an-ink);cursor:pointer}
  .an-fbtn:hover{border-color:var(--an-navy)}
  .an-fico{width:16px;height:12px;flex:none;position:relative}
  .an-fico:before,.an-fico:after{content:"";position:absolute;left:0;right:0;
    height:2px;background:var(--an-navy);border-radius:2px}
  .an-fico:before{top:0}
  .an-fico:after{bottom:0;left:4px;right:4px}
  .an-fcount{min-width:22px;height:22px;border-radius:11px;background:var(--an-red);
    color:#fff;font-size:12.5px;display:inline-flex;align-items:center;
    justify-content:center;padding:0 6px;margin-inline-start:auto}
  .an-fsort{height:48px;border:1.5px solid var(--an-line);border-radius:11px;
    padding:0 12px;font-family:inherit;font-size:14.5px;background:#fff;
    outline:none;max-width:46%}

  .an-fscrim{position:fixed;inset:0;background:rgba(14,27,51,.55);z-index:9998}
  .an-fscrim[hidden]{display:none}

  .an-filters{position:fixed;left:0;right:0;bottom:0;top:auto;
    max-height:88vh;overflow-y:auto;z-index:9999;
    border-radius:18px 18px 0 0;border:none;
    box-shadow:0 -12px 40px rgba(14,27,51,.28);
    transform:translateY(101%);transition:transform .26s ease;
    padding:0 18px 18px;-webkit-overflow-scrolling:touch}
  .an-filters.an-is-open{transform:none}

  .an-fhead{display:flex;align-items:center;justify-content:space-between;
    position:sticky;top:0;background:#fff;padding:16px 0 12px;
    border-bottom:1px solid var(--an-line);margin-bottom:16px;z-index:2}
  .an-fhead b{font-family:"Poppins",sans-serif;font-size:18px}
  .an-fclose{width:38px;height:38px;border-radius:10px;border:1px solid var(--an-line);
    background:#fff;font-size:22px;line-height:1;color:var(--an-mut);cursor:pointer}

  .an-ffoot{display:flex;gap:10px;position:sticky;bottom:0;background:#fff;
    padding:14px 0 0;border-top:1px solid var(--an-line);margin-top:18px;z-index:2}
  .an-ffoot .an-btn{flex:1;padding:13px 16px}
  .an-ffoot .an-btn-ghost{flex:0 0 34%}
}

@media(prefers-reduced-motion:reduce){
  .an-filters{transition:none}
}

/* ===== responsive rhythm =====
   desktop 80/24 · tablet 56/28 · phone 44/20 */

@media(max-width:1024px){
  .an-sec,  .an-evalhero,.an-pagehead{
    padding-top:56px;padding-bottom:56px;
    padding-left:28px;padding-right:28px}
  .an-hero{padding-left:28px;padding-right:28px}
  .an-wrap{padding:0 28px}
  .an-searchband{padding-left:28px;padding-right:28px}

  .an-shead{margin-bottom:26px}
  .an-h2 {font-size:clamp(24px,4vw,32px)}
  .an-lead{font-size:16px}

  .an-card .an-cbody,.an-val,.an-area,.an-sub,.an-step,.an-get,.an-rev,
  .an-scard,.an-snapc{padding:20px}
  .an-searchcard .an-sform,.an-searchcard .an-quick{padding:18px}
  .an-evalform{padding:22px}
}

@media(max-width:600px){
  .an-sec,  .an-evalhero,.an-pagehead{
    padding-top:44px;padding-bottom:44px;
    padding-left:20px;padding-right:20px}
  .an-hero{padding-left:20px;padding-right:20px}
  .an-wrap{padding:0 20px}
  .an-searchband{padding-left:20px;padding-right:20px}

  .an-shead{margin-bottom:22px}
  .an-h2 {font-size:clamp(23px,6vw,28px);line-height:1.2}
  .an-lead,
  .an-prose p{font-size:15.5px;line-height:1.7}

  .an-card .an-cbody,.an-val,.an-area,.an-sub,.an-step,.an-get,.an-rev,
  .an-scard,.an-snapc{padding:18px}
  .an-searchcard{margin-top:-72px}
  .an-searchcard .an-sform,.an-searchcard .an-quick{padding:16px}
  .an-evalform{padding:18px}
  .an-ftr{padding-left:20px;padding-right:20px}
  .an-legal{font-size:12px}

  /* long tables and the room list scroll rather than squeeze */
  .an-tblwrap{margin-inline:-20px;padding-inline:20px}
}

/* the reading measure on a phone, so lines do not run edge to edge */
@media(max-width:600px){
  .an-prose,.an-hero-lead{max-width:none}
  .an-fgrid{gap:26px}
}

/* four trust items across one line at desktop; two by two on a phone */
.an-trust{min-width:0;flex:0 1 auto;white-space:nowrap}
.an-trust span{white-space:nowrap;font-size:clamp(10.5px,0.8vw,12.5px)}
@media(max-width:1024px){
  .an-trustrow{flex-wrap:wrap;gap:16px 22px}
  .an-trust,.an-trust span{white-space:normal}
}
@media(max-width:600px){
  .an-trust{flex:0 0 calc(50% - 9px)}
}

/* ===== Elementor Global Kit overrides - appended last, always =====
   Elementor's kit styles headings as `.elementor-kit-N h2`, which outranks a
   bare `h2`. `.elementor-widget-heading .elementor-heading-title` scores
   higher, so these win without resorting to !important.
   Order matters: the generic rule first, contextual ones after. */

.elementor-widget-heading .elementor-heading-title{
  font-family:"Poppins","Inter",system-ui,sans-serif;
  color:var(--an-ink);letter-spacing:-.02em;line-height:1.14}
.elementor-widget-text-editor{color:var(--an-mut);
  font-family:"Inter","Segoe UI",system-ui,sans-serif}

/* light type on the dark bands */
.an-hero .elementor-widget-heading .elementor-heading-title,
.an-pagehead .elementor-widget-heading .elementor-heading-title,
.an-evalhero .elementor-widget-heading .elementor-heading-title,
.an-sec-dark .elementor-widget-heading .elementor-heading-title{color:#fff}
.an-hero .elementor-widget-text-editor,
.an-pagehead .elementor-widget-text-editor,
.an-evalhero .elementor-widget-text-editor,
.an-sec-dark .elementor-widget-text-editor{color:#c3d1e8}

/* the small red kicker, and its lighter version on the dark bands */
.an-kick .elementor-heading-title,
.an-hero .an-kick .elementor-heading-title,
.an-pagehead .an-kick .elementor-heading-title{color:var(--an-red)}
.an-sec-dark .an-kick .elementor-heading-title,
.an-evalhero .an-kick .elementor-heading-title{color:#f08e93}

/* the hero eyebrow keeps its pale blue inside the dark band */
.an-hero .an-eyebrow .elementor-heading-title,
.an-evalhero .an-eyebrow .elementor-heading-title{color:#a9c0e6}
.an-hero-h1 em,.an-hero .an-hero-h1 em{color:#8fb4ee;font-style:normal}

/* lead paragraphs */
.an-lead.elementor-widget-text-editor{color:var(--an-mut);font-size:16.5px}
.an-sec-dark .an-lead.elementor-widget-text-editor,
.an-hero .an-hero-lead.elementor-widget-text-editor,
.an-pagehead .an-ph-sub.elementor-widget-text-editor,
.an-evalhero .an-hero-lead.elementor-widget-text-editor{color:#b8c8e2}

/* the demo's global link reset never reached the theme; scope it to our own
   components rather than restyling every link on the site */
.an-ctype,.an-ctype:hover,.an-ctype:focus{color:var(--an-ink);text-decoration:none}
.an-area,.an-area:hover{text-decoration:none}
.an-chip,.an-cityrail a,.an-topbar a,.an-ftr a{text-decoration:none}
.an-crumbs a{color:#c3d1e8;text-decoration:none}
.an-crumbs a:hover{color:#fff}

/* ===== Elementor component colours =====
   Elementor Pro paints these from the kit's Accent colour, which ships as
   #61CE70. Repainting them in our palette. */

/* nav menu: the pointer underline, and the dropdown */
.an-menu .elementor-nav-menu a.elementor-item:after,
.an-menu .elementor-nav-menu a.elementor-item:before,
.elementor-nav-menu a.elementor-item:after,
.elementor-nav-menu a.elementor-item:before{
  background-color:var(--an-red);height:2px}
.an-menu .elementor-nav-menu .elementor-item{
  font-family:"Inter","Segoe UI",system-ui,sans-serif;
  font-size:14.5px;font-weight:500;color:#33445f;padding:8px 0}
.an-menu .elementor-nav-menu .elementor-item:hover,
.an-menu .elementor-nav-menu .elementor-item.elementor-item-active,
.an-menu .elementor-nav-menu .elementor-item.highlighted{
  color:var(--an-navy)}
.an-menu .elementor-nav-menu--dropdown,
.elementor-nav-menu--dropdown{
  background-color:#fff;border:1px solid var(--an-line);
  border-radius:10px;box-shadow:var(--an-shadow);overflow:hidden}
.an-menu .elementor-nav-menu--dropdown a,
.elementor-nav-menu--dropdown a.elementor-sub-item{
  font-size:14.5px;color:#33445f;padding:11px 16px}
.an-menu .elementor-nav-menu--dropdown a:hover,
.elementor-nav-menu--dropdown a.elementor-sub-item:hover,
.elementor-nav-menu--dropdown a.elementor-sub-item.elementor-item-active{
  background-color:#f2f5fa;color:var(--an-navy)}

/* multi-step form: next / previous buttons */
.e-form__buttons__wrapper__button-next,
.elementor-field-type-step .e-form__buttons__wrapper__button-next{
  background-color:var(--an-red);color:#fff;
  font-family:"Poppins",sans-serif;font-weight:600;border-radius:10px}
.e-form__buttons__wrapper__button-next:hover{background-color:var(--an-red-d)}
.e-form__buttons__wrapper__button-previous{
  background-color:transparent;color:var(--an-navy);
  border:1.5px solid #c3cfe2;border-radius:10px;
  font-family:"Poppins",sans-serif;font-weight:600}
.e-form__buttons__wrapper__button-previous:hover{
  border-color:var(--an-navy);background-color:#f2f5fa}

/* multi-step form: the progress indicator */
.e-form__indicators__indicator__progress__meter,
.e-form__indicators__indicator--state-active .e-form__indicators__indicator__progress__meter{
  background-color:var(--an-navy)}
.e-form__indicators__indicator__progress{background-color:#e5ebf4}
.e-form__indicators__indicator--state-inactive{color:var(--an-mut)}
.e-form__indicators__indicator--state-active{color:var(--an-navy)}
.e-form__indicators__indicator--state-completed{color:var(--an-navy)}

/* anything else Elementor paints with the factory accent */
.elementor-button:not([class*="an-"]):not(.e-form__buttons__wrapper__button-previous){
  border-radius:10px}

/* ===== Elementor global colour + typography variables =====
   Elementor ships these as #6EC1E4 / #61CE70 and paints most of its own
   components from them. Setting them here means every Elementor widget lands
   in the ASCENT palette without a rule per component.

   Setting the same four values in Elementor > Site Settings > Global Colors is
   still worth doing, so the editor previews them correctly. */

body[class*="elementor-kit-"]{
  --e-global-color-primary:#1e3a73;
  --e-global-color-secondary:#0e1b33;
  --e-global-color-text:#3d4f6e;
  --e-global-color-accent:#cc2229;

  --e-global-typography-primary-font-family:"Poppins";
  --e-global-typography-primary-font-weight:700;
  --e-global-typography-secondary-font-family:"Poppins";
  --e-global-typography-secondary-font-weight:600;
  --e-global-typography-text-font-family:"Inter";
  --e-global-typography-text-font-weight:400;
  --e-global-typography-accent-font-family:"Inter";
  --e-global-typography-accent-font-weight:600;
}

/* the nav pointer underline reads the accent variable, so it follows along;
   this keeps its thickness in line with the demo */
.elementor-nav-menu a.elementor-item:after,
.elementor-nav-menu a.elementor-item:before{height:2px}

/* ===== header lockup and menu spacing =====
   Modelled on amirnahvi.ca: the diamond mark, an uppercase letter-spaced menu
   and thin rules between items.

   NOTE: this build renders the main list as `ul.elementor-nav-menu` - there is
   no `--main` variant - so the selectors below key off that and exclude the
   dropdown explicitly. */

.an-brandlock{display:flex;align-items:center;gap:11px}
.an-mark img,
.an-mark .elementor-widget-container img{
  width:54px;height:54px;max-width:54px;display:block;object-fit:contain}
.an-mark .elementor-widget-container{line-height:0}
.an-brandtext{display:flex;flex-direction:column;gap:2px}

/* Elementor spaces the items from its own variable rather than from margins */
.an-menu{--e-nav-menu-horizontal-menu-item-margin:0px}

.an-menu ul.elementor-nav-menu:not(.elementor-nav-menu--dropdown) > li > a.elementor-item{
  font-family:"Inter","Segoe UI",system-ui,sans-serif;
  font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:#33445f;padding:9px 15px;white-space:nowrap}
.an-menu ul.elementor-nav-menu:not(.elementor-nav-menu--dropdown) > li + li{
  border-left:1px solid var(--an-line)}
.an-menu ul.elementor-nav-menu:not(.elementor-nav-menu--dropdown) > li > a.elementor-item:hover,
.an-menu ul.elementor-nav-menu:not(.elementor-nav-menu--dropdown) > li > a.elementor-item.elementor-item-active{
  color:var(--an-navy)}

/* the dropdown stays sentence case - uppercase is hard to scan in a list */
.an-menu .elementor-nav-menu--dropdown a.elementor-sub-item,
.an-menu ul.sub-menu a.elementor-sub-item{
  text-transform:none;letter-spacing:0;font-size:14.5px;font-weight:500;
  padding:11px 16px;color:#33445f}

@media(max-width:1200px){
  .an-menu ul.elementor-nav-menu:not(.elementor-nav-menu--dropdown) > li > a.elementor-item{
    font-size:12px;padding:9px 11px;letter-spacing:.06em}
}

/* ===== header width and stacking =====
   The header runs wider than the 1180px content grid so the menu fits on one
   row. Elementor sizes a boxed container from --content-width, so that is the
   knob rather than a max-width fight. */

/* header width now comes from the template's boxed_width setting */
.an-menu ul.elementor-nav-menu:not(.elementor-nav-menu--dropdown){
  flex-wrap:nowrap}

/* the dropdown was opening behind the hero: the header had no stacking context
   of its own, and the hero is positioned, so it painted on top */
header.elementor-location-header{position:relative;z-index:200}
.an-hdr{position:relative;z-index:200}
.an-menu .elementor-nav-menu--dropdown,
.an-menu ul.sub-menu{z-index:300}
.an-menu .elementor-nav-menu--dropdown{min-width:210px}

/* the CTA button needs ~220px next to a seven-item menu; below 1400px it overlapped
   the last item, so the menu item carries the call to action there.
   ★ Seven is the limit. An eighth top-level item (the mortgage calculator, briefly)
   made the menu 1057px wide, which ran under the button at 1440 and pushed the page
   into horizontal scroll at 1280. Anything new goes in a dropdown, not this row. */
@media(max-width:1400px) and (min-width:1025px){
  .an-hdr > .e-con-inner > .e-con:last-child{display:none!important}
  .an-hdr > .e-con-inner > .e-con:nth-child(2){width:auto!important;flex:1 1 auto!important;min-width:0!important}
  .an-hdr > .e-con-inner > .e-con:first-child{flex:0 0 auto!important;width:auto!important}
  .an-menu ul.elementor-nav-menu:not(.elementor-nav-menu--dropdown) > li:last-child > a.elementor-item{
    color:var(--an-navy);font-weight:700}
}
/* below this the five items stop fitting even at the wider header */
@media(max-width:1320px){
  .an-menu ul.elementor-nav-menu:not(.elementor-nav-menu--dropdown) > li > a.elementor-item{
    font-size:11.5px;padding:9px 10px;letter-spacing:.05em}
}

/* ===== footer grid =====
   The demo's footer styling lives above the port marker in style.css, so it
   never came across. This is that layout, prefixed. */

.an-fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:34px;
  padding-bottom:38px}
@media(max-width:1024px){.an-fgrid{grid-template-columns:1fr 1fr;gap:28px}}
@media(max-width:600px){.an-fgrid{grid-template-columns:1fr}}

.an-ftr h4,.an-fgrid h4{color:#fff;font-family:"Poppins",sans-serif;font-size:14px;
  letter-spacing:.1em;text-transform:uppercase;margin:0 0 16px;font-weight:600}
.an-fgrid ul{list-style:none;padding:0;margin:0}
.an-fgrid li{margin-bottom:9px;line-height:1.6}
.an-fgrid a{color:#a9b6cc;text-decoration:none}
.an-fgrid a:hover{color:#fff}
.an-fnote{color:#6c7b93;font-size:12.5px}

.an-fbrand .an-bn{display:block;font-family:"Poppins",sans-serif;font-weight:700;
  font-size:22px;color:#fff;letter-spacing:.02em}
.an-fbrand .an-bn i{font-style:normal;color:var(--an-red)}
.an-fbrand p{margin:12px 0 0;max-width:30em;color:#94a3bd}
.an-blogo{margin-top:20px;padding-top:18px;border-top:1px solid #24314c;
  display:flex;align-items:center;gap:14px}
.an-blogo img{width:170px;height:auto;filter:brightness(0) invert(1);opacity:.9}

/* ===== base container =====
   The demo's .wrap rule sits above the port marker, so it never came across.
   Blocks that carry their own container markup (the listing breadcrumb bar)
   need it. */
.an-wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.an-lbar .an-wrap{display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap}

/* ===== hero video sits behind, not beside =====
   Elementor wraps every widget in a div of its own; positioning only the
   <video> left that wrapper in the flex row taking real space. The wrapper is
   what has to come out of the flow. Specificity here beats Elementor's own
   per-element rule without reaching for !important. */
.an-hero .elementor-element.an-herovid-wrap{
  position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);
  height:100%;margin:0;padding:0;z-index:0;pointer-events:none;overflow:hidden;
  /* min-width outranks any max-width further up the cascade, which is what was
     clamping this back to the 1180px content box */
  width:100vw;min-width:100vw;max-width:none}
.an-hero .elementor-element.an-herovid-wrap > .elementor-widget-container{
  height:100%;width:100%}
.an-herovid{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;opacity:.22;filter:saturate(.8);
  pointer-events:none;display:block}

/* keep the content above the video and the grid overlay */
.an-hero > .e-con-inner{position:relative;z-index:2}
.an-hero:before{z-index:1}

@media(prefers-reduced-motion:reduce){
  .an-herovid{display:none}
}

/* the portrait sits on the bottom edge of the hero so the search card meets it
   with no gap. Pushing the widget down with justify-content sidesteps the
   height:100% chain, which breaks on Elementor's widget wrapper. */
.an-hero .elementor-element.an-hero-col-photo{
  align-self:stretch;justify-content:flex-end}
.an-hero-photo{align-items:flex-end;justify-content:center}
.an-hero-photo img{align-self:flex-end;margin-bottom:0}

/* Elementor gives the column its own bottom padding; that was the last 10px
   between the portrait and the search card */
.an-hero .elementor-element.an-hero-col-photo{padding-bottom:0}

/* ===== first screen =====
   On desktop the search card has to be visible without scrolling. The hero is
   sized by its content, so the type and the spacing scale with the viewport
   height instead of forcing a height the content would spill out of. */
@media(min-width:1025px){
  .an-hero > .e-con-inner{
    padding-top:clamp(18px,3vh,52px);
    padding-bottom:104px;
    row-gap:clamp(10px,1.8vh,26px)}
  .an-hero-h1 .elementor-heading-title{
    font-size:clamp(28px,2.75vw,44px);line-height:1.08}
  .an-hero-lead.elementor-widget-text-editor{
    font-size:clamp(14.5px,1.05vw,16.5px);line-height:1.6}
  .an-hero-copy{gap:clamp(8px,1.4vh,16px)}
  .an-eyebrow .elementor-heading-title{font-size:11.5px}
  .an-hero-cta{margin-bottom:0}
  .an-trustrow{padding-top:clamp(10px,1.5vh,18px);gap:clamp(14px,1.8vw,24px)}
  .an-trust b{font-size:clamp(16px,1.25vw,19px)}
  .an-trust span{font-size:11.5px}
  .an-hero-photo{min-height:0}
  .an-hero-photo img{max-height:min(540px,calc(100vh - 372px))}

  /* the card's own chrome, so the field row clears the fold too */
  .an-searchcard .an-stab{padding:11px 20px;font-size:14px}
  .an-searchcard .an-sform{padding:18px 22px}
  .an-searchcard .an-quick{padding:13px 22px}
}

/* on short laptop screens tighten a little further */
@media(min-width:1025px) and (max-height:860px){
  .an-hero > .e-con-inner{padding-top:16px;row-gap:10px}
  .an-hero-h1 .elementor-heading-title{font-size:clamp(27px,2.5vw,38px)}
  .an-hero-photo img{max-height:calc(100vh - 400px)}
}

/* four trust items across one line at desktop; two by two on a phone */
.an-trustrow{display:flex;flex-wrap:nowrap;gap:0 clamp(18px,2vw,30px);
  align-items:flex-start}
.an-trust{min-width:0;flex:0 1 auto;white-space:nowrap}
.an-trust b{white-space:nowrap}
.an-trust span{white-space:nowrap;font-size:clamp(10.5px,0.8vw,12.5px)}
@media(max-width:1024px){
  .an-trustrow{flex-wrap:wrap;gap:16px 22px}
  .an-trust{white-space:normal}
  .an-trust span{white-space:normal;font-size:12px}
}
@media(max-width:600px){
  .an-trustrow{gap:14px 18px}
  .an-trust{flex:0 0 calc(50% - 9px)}
}

/* ===== responsive rhythm =====
   desktop 80/24 · tablet 56/28 · phone 44/20

   A boxed container puts its padding on .e-con-inner, so the vertical values
   have to go there or they simply add to what the template already set. The
   horizontal values stay on the outer element, which has no competition. */

@media(max-width:1024px){
  .an-sec,.an-sec.e-con,.an-evalhero,.an-pagehead,.an-hero{
    padding-top:0!important;padding-bottom:0!important;
    padding-left:28px!important;padding-right:28px!important}
  .an-sec > .e-con-inner,
  .an-evalhero > .e-con-inner,
  .an-pagehead > .e-con-inner{
    padding-top:56px!important;padding-bottom:56px!important;
    padding-left:0!important;padding-right:0!important}
  .an-hero > .e-con-inner{
    padding-top:48px!important;padding-bottom:96px!important;
    padding-left:0!important;padding-right:0!important}
  .an-searchband{padding-left:28px!important;padding-right:28px!important}
  .an-wrap{padding:0}

  .an-shead{margin-bottom:26px}
  .an-h2 .elementor-heading-title{font-size:clamp(24px,4vw,32px)}
  .an-lead.elementor-widget-text-editor{font-size:16px}

  .an-card .an-cbody,.an-val,.an-area,.an-sub,.an-step,.an-get,.an-rev,
  .an-scard,.an-snapc{padding:20px}
  .an-searchcard .an-sform,.an-searchcard .an-quick{padding:18px}
  .an-form,.an-wiz{padding:22px}
  .an-evalhero > .e-con-inner > .e-con{padding-left:0!important;padding-right:0!important}
}

@media(max-width:600px){
  .an-sec,.an-sec.e-con,.an-evalhero,.an-pagehead,.an-hero{
    padding-left:20px!important;padding-right:20px!important}
  .an-sec > .e-con-inner,
  .an-evalhero > .e-con-inner,
  .an-pagehead > .e-con-inner{
    padding-top:44px!important;padding-bottom:44px!important}
  .an-hero > .e-con-inner{
    padding-top:36px!important;padding-bottom:80px!important}
  .an-searchband{padding-left:20px!important;padding-right:20px!important}

  .an-shead{margin-bottom:22px}
  .an-h2 .elementor-heading-title{font-size:clamp(23px,6vw,28px);line-height:1.2}
  .an-lead.elementor-widget-text-editor,
  .an-prose p{font-size:15.5px;line-height:1.7}

  .an-card .an-cbody,.an-val,.an-area,.an-sub,.an-step,.an-get,.an-rev,
  .an-scard,.an-snapc{padding:18px}
  .an-searchcard{margin-top:-64px}
  .an-searchcard .an-sform,.an-searchcard .an-quick{padding:16px}
  .an-form,.an-wiz{padding:18px}
  .an-ftr{padding-left:20px!important;padding-right:20px!important}
  .an-ftr > .e-con-inner{padding-left:0!important;padding-right:0!important}
  .an-legal{font-size:12px}
  .an-prose,.an-hero-lead{max-width:none}
  .an-fgrid{gap:26px}
  .an-tblwrap{margin-inline:-20px;padding-inline:20px}
}

/* ===== the video fills its wrapper, nothing more =====
   The wrapper is what bleeds to the viewport edges. The ported rule carries the
   demo's own full-bleed transform, which applied here would shift the video a
   second time - this cancels it. Must stay after the ported CSS. */
.an-hero .an-herovid{
  position:absolute;top:0;right:0;bottom:0;left:0;
  width:100%;height:100%;min-width:0;max-width:none;
  transform:none;object-fit:cover}

/* ===== header on tablet and phone =====
   One row: brand left, burger right. Elementor widens child containers to full
   width at mobile, which is what stacked these into three rows. */
@media(max-width:1024px){
  .an-hdr{min-height:64px!important}
  .an-hdr > .e-con-inner{
    flex-direction:row!important;flex-wrap:nowrap!important;
    align-items:center!important;gap:12px!important}
  .an-hdr > .e-con-inner > .e-con{width:auto!important;padding:0!important}
  .an-hdr > .e-con-inner > .e-con:first-child{
    flex:1 1 auto!important;min-width:0!important;
    align-items:flex-start!important}
  /* the menu column only carries the burger here, so it is sized to it and is
     allowed to shrink rather than claiming the whole row */
  .an-hdr > .e-con-inner > .e-con:nth-child(2){
    flex:0 0 auto!important;width:auto!important;max-width:56px!important;
    align-items:flex-end!important}
  .an-menu,.an-menu > .elementor-widget-container{width:auto!important}
  .an-menu .elementor-menu-toggle{margin-inline-start:auto}

  /* the wordmark stays on one line */
  .an-brandlock{flex-wrap:nowrap;white-space:nowrap}
  .an-brand .elementor-heading-title,
  .an-brand-sub .elementor-heading-title{white-space:nowrap}
  /* the button lives in the mobile menu instead */
  .an-hdr > .e-con-inner > .e-con:last-child{display:none!important}

  .an-brandlock{gap:9px}
  .an-mark img{width:44px;height:44px;max-width:44px}
  .an-brand .elementor-heading-title{font-size:19px}
  .an-brand-sub .elementor-heading-title{font-size:9.5px}

  .an-topbar{font-size:12px}
  .an-tb-in{padding:0 20px;height:36px}

  /* ===== the burger panel =====
     `nav.elementor-nav-menu--dropdown` is the mobile panel; the sub-menu uses
     the same class on a <ul>, so the selectors below name the element type.
     The panel sits inside the 56px menu column, so that column and the widget
     go static and .an-hdr - already relative - becomes the anchor. */
  .an-hdr > .e-con-inner > .e-con:nth-child(2),
  .an-menu,
  .an-menu > .elementor-widget-container,
  .an-menu .elementor-nav-menu--main{position:static!important}

  .an-menu nav.elementor-nav-menu--dropdown{
    position:absolute!important;top:100%!important;
    left:0!important;right:0!important;
    width:auto!important;max-width:none!important;
    margin-top:0!important;border-radius:0!important;
    background:#fff;border-top:1px solid var(--an-line);
    box-shadow:0 14px 34px rgba(14,27,51,.16);z-index:400!important}

  .an-menu nav.elementor-nav-menu--dropdown ul.elementor-nav-menu{
    width:100%;padding:6px 0}
  .an-menu nav.elementor-nav-menu--dropdown a.elementor-item{
    padding:15px 20px!important;font-size:15px;font-weight:500;
    text-transform:none;letter-spacing:0;color:#33445f;
    border-bottom:1px solid #eef2f7}
  .an-menu nav.elementor-nav-menu--dropdown a.elementor-sub-item{
    padding:13px 20px 13px 38px!important;font-size:14.5px;color:#5d6b83}
  .an-menu nav.elementor-nav-menu--dropdown li:last-child a{border-bottom:none}

  /* the sub-menu inside the panel is a plain nested list, not a flyout */
  .an-menu nav.elementor-nav-menu--dropdown ul.sub-menu{
    position:static!important;width:100%!important;max-width:none!important;
    box-shadow:none!important;border:none!important;border-radius:0!important;
    background:#f7f9fc}
}

@media(max-width:600px){
  .an-hdr{min-height:58px!important}
  .an-mark img{width:40px;height:40px;max-width:40px}
  .an-brand .elementor-heading-title{font-size:17px}
  .an-brand-sub .elementor-heading-title{font-size:8.5px;letter-spacing:.1em}
  .an-tb-in{padding:0 16px;gap:10px}
  .an-topbar{font-size:11.5px}
  /* one line each on a phone: the brokerage name truncates, the phone never wraps */
  .an-tb-in>div:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .an-tb-r{flex:none}
  .an-tb-r a{white-space:nowrap}
}

/* footer onto the same rhythm as everything else */
@media(max-width:1024px){
  .an-ftr > .e-con-inner{padding-top:56px!important;padding-bottom:28px!important}
}
@media(max-width:600px){
  .an-ftr > .e-con-inner{padding-top:44px!important;padding-bottom:24px!important}
}

/* the header carries the full Nave wordmark, with Amir's name under it */
.an-marklink{display:block;line-height:0}
.an-mark img,.an-marklink img{display:block;width:auto;height:46px;max-width:230px}
@media(max-width:1024px){.an-mark img,.an-marklink img{height:40px;max-width:190px}}
@media(max-width:600px){.an-mark img,.an-marklink img{height:34px;max-width:160px}}
/* name and title sit below the logo, not beside it.
   Elementor containers read their own custom properties, so plain
   flex-direction on the class alone is ignored. */
.an-brandlock{--flex-direction:column;--align-items:flex-start;--gap:6px;--row-gap:6px;--column-gap:0px;
  flex-direction:column;align-items:flex-start;gap:6px}
.an-brandtext{--width:auto;width:auto;gap:1px}
.an-brandtext>*{width:auto}
@media(max-width:600px){.an-brandlock{--gap:4px;--row-gap:4px;gap:4px}}
/* brand text: the name, and the title under it */
.an-brand .elementor-heading-title{font-size:15px;letter-spacing:.02em;line-height:1.1}
.an-brand-sub .elementor-heading-title{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--an-red);font-weight:700;line-height:1.2}
@media(max-width:600px){.an-brand .elementor-heading-title{font-size:13px}.an-brand-sub .elementor-heading-title{font-size:8.5px}}
.an-fbrand .an-bs{display:block;font:700 10.5px "Inter",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#e05a60;margin-top:4px}
.an-blogo img{width:230px!important;max-width:100%}

/* ===== burger panel open state =====
   Elementor's JS puts .elementor-active on the toggle; the panel is its next
   sibling. Taking the panel out of flow stopped their own open rule from
   matching, so the open height is declared here instead. */
@media(max-width:1200px){
  .an-menu nav.elementor-nav-menu--dropdown{
    max-height:0;overflow:hidden;
    transition:max-height .25s ease}
  .an-menu .elementor-menu-toggle.elementor-active + nav.elementor-nav-menu--dropdown{
    max-height:calc(100vh - 140px)!important;overflow-y:auto!important;
    -webkit-overflow-scrolling:touch}
}

/* ===== the burger starts at 1200, not 1024 =====
   Seven items need about 872px and the nav column only gets what is left after
   the brand, so between 1025 and 1200 the menu ran off the side of the page and
   dragged the whole document into horizontal scroll. Elementor's own breakpoint
   for this widget is the site's tablet one, and moving that would change every
   other responsive rule on the site, so the swap is done here instead: hide the
   horizontal menu, show the toggle, and let the panel that already works below
   1024 do the rest. */
@media(max-width:1200px) and (min-width:1025px){
  .an-menu nav.elementor-nav-menu--main{display:none!important}
  .an-menu nav.elementor-nav-menu--dropdown{display:block!important}
  .an-menu .elementor-menu-toggle{display:flex!important}
  /* with the horizontal menu gone the toggle keeps the menu's old slot, which
     leaves it stranded mid-header; push it to the right where a burger belongs */
  /* Elementor gives the toggle margin:auto on BOTH sides, which centres it in
     the slot the menu used to fill; zero the right one so it goes to the edge */
  .an-menu .elementor-menu-toggle{margin-left:auto!important;margin-right:0!important}
}

@media(prefers-reduced-motion:reduce){
  .an-menu nav.elementor-nav-menu--dropdown{transition:none}
}

/* ===== burger panel: readable states =====
   Elementor paints the current item on a dark grey, which against our navy text
   measured 1.12:1. These bring it to about 10:1 and mark the current page with
   a red edge as well as colour. */
@media(max-width:1024px){
  .an-menu nav.elementor-nav-menu--dropdown a.elementor-item,
  .an-menu nav.elementor-nav-menu--dropdown a.elementor-sub-item{
    background-color:transparent!important}

  .an-menu nav.elementor-nav-menu--dropdown a.elementor-item.elementor-item-active,
  .an-menu nav.elementor-nav-menu--dropdown a.elementor-sub-item.elementor-item-active,
  .an-menu nav.elementor-nav-menu--dropdown li.current-menu-item > a{
    background-color:#f2f5fa!important;
    color:var(--an-navy)!important;
    font-weight:600;
    box-shadow:inset 3px 0 0 var(--an-red)}

  .an-menu nav.elementor-nav-menu--dropdown a:hover,
  .an-menu nav.elementor-nav-menu--dropdown a:focus-visible{
    background-color:#f7f9fc!important;
    color:var(--an-navy)!important}
  .an-menu nav.elementor-nav-menu--dropdown a:focus-visible{
    outline:3px solid #8fb4ee;outline-offset:-3px}
}

/* the same treatment for the desktop Commercial fly-out */
.an-menu ul.sub-menu a.elementor-sub-item.elementor-item-active,
.an-menu ul.sub-menu li.current-menu-item > a{
  background-color:#f2f5fa;color:var(--an-navy);font-weight:600}

/* ---------- batch 2 pages: about / contact / join / events ---------- */
.an-ticks-l li{color:#dbe4f5}
.an-portrait{margin:0;max-width:360px;margin-inline-start:auto}
.an-portrait img{display:block;width:100%;height:auto;border-radius:18px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.55)}
@media(max-width:1024px){.an-portrait{max-width:300px;margin-inline:auto}}
.an-projects{list-style:none;margin:0;padding:0;counter-reset:pj;background:#fff;
  border:1px solid var(--an-line);border-radius:14px;overflow:hidden}
.an-projects li{display:flex;align-items:baseline;gap:12px;padding:13px 18px;
  border-bottom:1px solid var(--an-line);font-size:15px}
.an-projects li:last-child{border-bottom:0}
.an-projects li:before{counter-increment:pj;content:counter(pj,decimal-leading-zero);
  font-family:"Poppins",sans-serif;font-weight:700;color:var(--an-red);font-size:12px;min-width:22px}
.an-projects li b{color:var(--an-ink);font-weight:600}
.an-projects li span{color:var(--an-mut);margin-inline-start:auto;white-space:nowrap}
.an-contactcard{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;margin-top:8px;
  padding:20px 22px;border:1px solid rgba(255,255,255,.14);border-radius:14px;
  background:rgba(255,255,255,.05)}
.an-contactcard div{display:flex;flex-direction:column;gap:2px;font-size:15px}
.an-contactcard div:nth-child(4),.an-contactcard div:nth-child(5){grid-column:1/-1}
.an-contactcard span{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:#9db3d6;font-weight:600}
.an-contactcard a{color:#fff;text-decoration:none}
.an-contactcard a:hover{color:#8fb4ee}
@media(max-width:640px){.an-contactcard{grid-template-columns:1fr}.an-contactcard div{grid-column:auto!important}}
.an-map{border-radius:14px;overflow:hidden;border:1px solid var(--an-line);margin-top:10px}
.an-map iframe{display:block;width:100%}
.an-vals-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1024px){.an-vals-4{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.an-vals-4{grid-template-columns:1fr}}
.an-events{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
@media(max-width:820px){.an-events{grid-template-columns:1fr}}
.an-ev{background:#fff;border:1px solid var(--an-line);border-radius:14px;padding:26px 26px 22px;
  display:flex;flex-direction:column;gap:10px}
.an-evtag{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--an-navy);background:#e8eefc;border-radius:99px;padding:3px 10px}
.an-ev h3{font-size:20px;margin:4px 0 0}
.an-ev p{color:var(--an-mut);font-size:15px;margin:0;flex:1}
.an-evlink{font-weight:600;color:var(--an-red);text-decoration:none;font-size:14.5px}
.an-evlink:hover{color:var(--an-red-d)}

/* ---------- hero: Elementor native background video ---------- */
/* Elementor paints the poster as the container background at every width and
   plays the video above it. Tint the poster navy (multiply) everywhere, then
   let the video show clearly but darkened, so the hero reads the same whether
   the video has loaded yet or not, and white copy always has contrast. */
.an-hero.e-con{--background-color:#16294f;background-color:var(--background-color)!important;
  background-blend-mode:multiply!important;background-size:cover!important;background-position:center top!important}
.an-hero .elementor-background-video-container{opacity:.62;filter:saturate(.75) brightness(.55) contrast(1.05)}
.an-hero .elementor-background-video-container .elementor-background-video-hosted{object-fit:cover}
/* Elementor nests the video container inside .e-con-inner, which is
   position:relative and sits inside the hero padding. Making the inner static
   lets the video position against the hero itself and fill it edge to edge. */
.an-hero > .e-con-inner{position:static}
/* readable copy over moving footage */
.an-hero .an-hero-h1 .elementor-heading-title,.an-hero .an-hero-lead.elementor-widget-text-editor{text-shadow:0 2px 18px rgba(8,18,40,.55)}
/* the hero search card: sale/lease toggle + pre-construction note (site.js) */
.an-fld-tx select{width:100%}
.an-searchcard .an-fld[hidden],.an-searchcard form[hidden],.an-pre[hidden]{display:none!important}
.an-pre{padding:22px 24px 26px;font-size:15.5px;color:#3d4f6e}
.an-pre p{margin:0 0 14px;max-width:640px}
.an-pre .an-btn{display:inline-block}
.an-pre .an-btn-navy{background:#1e3a73;color:#fff;border:0;border-radius:10px;padding:12px 18px;font:600 14px "Inter",sans-serif;cursor:pointer;margin-left:8px}

/* the address is the page H1 on a single listing; keep the card sizing */
h1.an-laddr{margin:0;font-size:inherit;line-height:inherit;font-weight:inherit}

/* the room table on a single listing sits inside a card, so the edge-to-edge
   negative margin used elsewhere pushes it past the viewport on phones */
@media(max-width:640px){
  .an-llay .an-tblwrap{margin-inline:0;padding-inline:0}
}

/* classic (non-Elementor) pages: privacy policy, posts without a template */
.an-page-in{max-width:820px;margin:0 auto;padding:56px 24px 72px}
.an-page-in h1{font-family:"Poppins",sans-serif;font-size:clamp(28px,3.5vw,40px);margin:0 0 22px;color:var(--an-ink)}
.an-page-in h2{font-size:22px;margin:30px 0 10px}
.an-page-in h3{font-size:18px;margin:24px 0 8px}
.an-page-in p,.an-page-in li{color:#3d4f6e;font-size:16px;line-height:1.7;overflow-wrap:anywhere}
.an-page-in ul,.an-page-in ol{padding-inline-start:22px}
.an-page-in img{max-width:100%;height:auto}

/* ---------- blog archive (index.php) ---------- */
.an-page-in.an-page-wide{max-width:1180px}
.an-arch-head{margin-bottom:28px}
.an-arch-head .an-kick{display:block;margin-bottom:8px}
.an-arch-head h1{margin:0 0 8px}
.an-arch-head p{color:var(--an-mut);max-width:40em;margin:0}
.an-post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:1024px){.an-post-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.an-post-grid{grid-template-columns:1fr}}
.an-post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--an-line);border-radius:14px;overflow:hidden;text-decoration:none;color:var(--an-ink);transition:border-color .15s,transform .15s}
.an-post-card:hover{border-color:var(--an-blue);transform:translateY(-2px)}
.an-post-img{aspect-ratio:16/9;background:#e8eefc;overflow:hidden}
.an-post-img img{width:100%;height:100%;object-fit:cover;display:block}
.an-post-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.an-post-body time{font-size:12px;color:var(--an-mut);letter-spacing:.04em;text-transform:uppercase}
.an-post-body h2{font-family:"Poppins",sans-serif;font-size:18px;line-height:1.3;margin:0;color:var(--an-ink)}
.an-post-body p{font-size:14.5px;color:#3d4f6e;margin:0;flex:1}
.an-post-more{color:var(--an-red);font-weight:600;font-size:14px;margin-top:4px}
.an-archive .navigation.pagination{margin-top:28px}
.an-archive .nav-links{display:flex;gap:6px;justify-content:center}
.an-archive .page-numbers{padding:8px 14px;border:1px solid var(--an-line);border-radius:10px;text-decoration:none;color:var(--an-navy)}
.an-archive .page-numbers.current{background:var(--an-navy);color:#fff}
/* single post readability */
.an-page-in .wp-post-image,.single-post .an-page-in img{border-radius:12px}

/* ===== phone pass, 2026-09-24 =====================================
   Four things the mobile audit turned up. Each rule says what it fixes,
   because every one of them is undoing a side effect of a rule above. */

/* 1. The numbered badge sat on top of the step title.
      The responsive blocks set `.an-step{padding:20px}` as a shorthand, which
      wiped the 64px left padding the absolutely placed :before needs. */
@media(max-width:820px){
  .an-step{padding:20px 20px 20px 62px}
}
@media(max-width:600px){
  .an-step{padding:18px 18px 18px 56px}
  .an-step:before{left:18px;top:18px;width:28px;height:28px;font-size:13px}
}

/* 2. Market snapshot: the label is inline, so a short label left the
      month-over-month delta stranded on the same line ("Median days on
      market ▲ 3 days"). The delta always starts its own line now. */
.an-snapc > span{display:block}
.an-snapc .an-delta{display:inline-block}

/* 3. iOS zooms the whole page when a field under 16px takes focus, and it
      does not zoom back out. Everything the visitor types into is 16px on a
      touch screen; the desktop sizes are untouched. */
@media(max-width:820px),(pointer:coarse){
  input[type="text"],input[type="search"],input[type="email"],input[type="tel"],
  input[type="number"],input[type="url"],input[type="password"],input[type="date"],
  input:not([type]),select,textarea,
  .elementor-field-textual,
  .an-sform input,.an-sform select,
  .an-lst-bar input,.an-lst-bar select{font-size:16px!important}
}

/* 4. On a phone the footer leads with the brokerage logo, then Amir's name.
      Desktop order stays as it is. */
@media(max-width:760px){
  .an-fbrand{display:flex;flex-direction:column}
  .an-fbrand .an-blogo{order:-1;margin:0 0 18px;padding-top:0;padding-bottom:18px;
    border-top:0;border-bottom:1px solid #24314c}
}
