/* ============================================================
   The Integrity Team — warm gold theme
   Adapted from the approved "warm gold" mockup for the
   ASP.NET WebForms shell (Default.master + default.aspx).
   Menu selectors target the dbSuperFishMenu (#superfish_menu)
   output; tune against the live menu markup if needed.
   ============================================================ */
:root{
  --gold:#E8C63B;
  --gold-deep:#C9A62B;
  --gold-soft:#FBF3D3;
  --cream:#FBF8F1;
  --cream-2:#F4EEE1;
  --ink:#1C1A15;
  --ink-soft:#4A463C;
  --line:#E7DFCC;
  --white:#fff;
  --serif:'Fraunces',Georgia,serif;
  --display:'Bricolage Grotesque','Poppins',sans-serif;
  --sans:'Poppins',system-ui,sans-serif;
}

/* base */
body{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased}
body a{color:inherit;text-decoration:none}
/* client request: no focus/click outline border on links or theme buttons */
body a:focus,body a:active,.btn2:focus,.btn2:active,.search_btn:focus,.area-btn:focus,.back-to-top:focus{outline:none}
#wrapper img{max-width:100%}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;display:inline-flex;align-items:center;gap:8px}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--gold)}

/* buttons */
.btn2{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.02em;padding:15px 30px;border:2px solid var(--ink);color:var(--white);background:var(--ink);cursor:pointer;border-radius:50px;transition:.25s;line-height:1}
.btn2:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--ink);border-color:var(--ink);color:var(--white)}

/* ===== TOP BAR ===== */
.topbar{background:var(--ink);color:#e9e3d3;font-size:12.5px;letter-spacing:.03em}
.topbar .wrap{max-width:100%;padding:0 46px;display:flex;justify-content:space-between;align-items:center;height:44px}
.topbar .l i.fa-home{color:var(--gold);margin-right:6px}
.topbar a:hover{color:var(--gold)}
.topbar .r{display:flex;gap:26px;align-items:center}
.topbar .top-phone{color:#e9e3d3;font-weight:600}
.topbar .top-phone i{color:var(--gold);margin-right:5px}
.topbar .top-phone:hover{color:var(--gold)}

/* ===== HEADER / NAV ===== */
#header,header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 4px 20px rgba(28,26,21,.05)}
.headbar{max-width:100%;padding:0 46px;display:flex;align-items:center;justify-content:space-between;min-height:150px}
/* flex-shrink:0 stops the flexbox from squeezing the logo smaller as the menu competes
   for width (with #wrapper img{max-width:100%} it was shrinking as you scaled down) */
.logo{flex-shrink:0}
.logo img{height:132px;width:auto}
.nav-cta{display:flex;align-items:center;gap:20px}

/* superfish menu styled to match the mockup */
#superfish_menu,#superfish_menu ul{list-style:none;margin:0;padding:0}
#superfish_menu{display:flex;align-items:center;gap:24px}
/* the menu carries empty <li class="divider-vertical"> spacers; hide them so they don't
   waste ~240px of width and force the desktop menu to break at wider viewports */
#superfish_menu>li.divider-vertical,#superfish_menu>li.divider-vertical-first,#superfish_menu>li.divider-vertical-last{display:none}
#superfish_menu>li{position:relative}
/* normal case (not uppercase like menu.css forces) — matches the mockup and keeps the
   7-item menu narrower so it fits without overflowing at smaller desktop widths */
#superfish_menu>li>a{display:block;font-family:var(--sans);font-size:16px;font-weight:500;color:var(--ink);text-transform:none;padding:60px 0;transition:.2s;white-space:nowrap}
/* !important is required: menu.css forces `.nav > li a:hover{color:black!important}`
   and `.nav > li.active > a{color:white!important}`; these id-specific rules beat it. */
#superfish_menu>li>a:hover,#superfish_menu>li.sfHover>a{color:var(--gold-deep)!important}
/* current page (dbSuperFishMenu TrackSelected renders <li class="active">) stays black,
   overriding menu.css's white!important, so "Home" matches the other items */
#superfish_menu>li.active>a{color:var(--ink)!important}
#superfish_menu>li.active>a:hover{color:var(--gold-deep)!important}
/* caret on parent items that have a dropdown (class added by JS) — real ▼ glyph like the
   mockup's .caret (a plain triangle, not the smaller FontAwesome caret) */
#superfish_menu>li.has-sub>a::after{content:"\25BC";font-family:var(--sans);font-size:10px;margin-left:6px;color:var(--gold-deep);vertical-align:1px}
/* dropdown submenu */
#superfish_menu li ul{position:absolute;top:110px;left:0;background:#fff;border:1px solid var(--line);border-radius:16px;min-width:230px;padding:10px 0;box-shadow:0 18px 40px rgba(0,0,0,.12);z-index:60}
#superfish_menu li:hover>ul,#superfish_menu li.sfHover>ul{display:block}
#superfish_menu li ul li a{display:block;padding:11px 26px;font-size:15px;color:var(--ink-soft);white-space:nowrap}
#superfish_menu li ul li a:hover{background:var(--gold-soft);color:var(--ink)}

/* ===== MOBILE MENU (slicknav) — hamburger that expands to a stacked list =====
   Visibility is controlled by #slicknav_holder (hidden on desktop, shown in the
   mobile media query). Do NOT set display:none on .slicknav_menu itself. */
#slicknav_holder{display:none}
.slicknav_menu{background:transparent;padding:0}
/* hamburger = just three black lines (no pill/background) */
.slicknav_btn{float:none;display:inline-block;margin:0;padding:8px 4px;background:transparent;border:none;border-radius:0;line-height:0;text-shadow:none}
.slicknav_btn:hover,.slicknav_btn:focus{background:transparent}
.slicknav_menu .slicknav_icon{float:none;margin:0}
.slicknav_menu .slicknav_icon-bar{display:block;width:26px;height:2px;background:var(--ink);box-shadow:none;border-radius:2px}
.slicknav_btn .slicknav_icon-bar + .slicknav_icon-bar{margin-top:6px}
/* expanded menu — a compact card (not full width), styling set here, position in the media query */
.slicknav_nav{clear:both;background:#fff;border:1px solid var(--line);border-radius:14px;padding:6px 0;font-size:16px;box-shadow:0 18px 40px rgba(0,0,0,.14);overflow:hidden}
.slicknav_nav ul{margin:0;padding:0}
/* hide the empty divider <li> the desktop menu carries so there are no blank rows */
.slicknav_nav li:empty,.slicknav_nav .divider-vertical,.slicknav_nav .divider-vertical-first,.slicknav_nav .divider-vertical-last{display:none}
.slicknav_nav>li{border-top:1px solid var(--line)}
/* the real first child is the hidden divider-vertical-first <li>, so :first-child misses
   "Home" — also strip the border on the item right after it to remove the line above Home */
.slicknav_nav>li:first-child,.slicknav_nav>li.divider-vertical-first+li{border-top:none}
/* plain items */
.slicknav_nav a{display:block;color:var(--ink);text-align:left;text-transform:none;font-weight:500;padding:13px 22px;margin:0;border-radius:0}
.slicknav_nav a:hover{background:var(--gold-soft);color:var(--ink)}
/* parent row (e.g. Services): with allowParentLinks + the default nestedParentLinks:true,
   slicknav builds ONE <a class="slicknav_item slicknav_row"> that holds BOTH the label <a>
   and the <span class="slicknav_arrow">. Make THAT element the flex row (label left, arrow
   right) with the SAME 13/22 padding as a plain item so the Services row height matches the
   others. CRITICAL: the row itself carries the .slicknav_item class, so do NOT give
   .slicknav_item its own padding/margin — that clobbers this padding and collapses the row. */
.slicknav_nav .slicknav_parent-link,.slicknav_nav .slicknav_row{display:flex;align-items:center;justify-content:space-between;padding:13px 22px;margin:0;line-height:1.65}
.slicknav_nav .slicknav_parent-link>a,.slicknav_nav .slicknav_row>a{padding:0;margin:0}
.slicknav_nav .slicknav_parent-link:hover,.slicknav_nav .slicknav_row:hover{background:var(--gold-soft)}
.slicknav_nav .slicknav_arrow{flex:0 0 auto;margin:0 0 0 8px;font-size:.7em;color:var(--gold-deep)}
/* submenu links, indented under their parent (submenu is one <ul> deep inside .slicknav_nav) */
.slicknav_nav ul a{padding-left:40px;font-size:15px;color:var(--ink-soft)}
/* "Let's Talk" CTA appended to the end of the mobile menu */
.slicknav_nav .slicknav-cta{border-top:1px solid var(--line);padding:12px 16px}
.slicknav_nav .slicknav-cta a{display:block;background:var(--gold);color:var(--ink);text-align:center;font-weight:600;padding:12px 16px;border-radius:50px}
.slicknav_nav .slicknav-cta a:hover{background:var(--ink);color:#fff}

/* ===== HERO (banner rotator + search overlay) ===== */
.hero{position:relative}
.hero-rotator,.hero-rotator .slick-list,.hero-rotator .slick-track{height:84vh;min-height:520px}
/* slick shrink-wraps .slick-list on init and pushes the banner off-center; force full
   width so it measures the correct slide width (same fix as texasfarmsandranches). */
.hero-rotator .slick-list{width:100%}
.hero-slide{height:84vh;min-height:520px;background-size:cover;background-position:center;background-repeat:no-repeat}
.hero-rotator::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(28,26,21,.28) 0%,rgba(28,26,21,.18) 40%,rgba(28,26,21,.5) 100%);pointer-events:none}
.hero-search-wrap{position:absolute;inset:0;z-index:5;display:flex;align-items:center}
.hero-search-wrap .wrap{width:100%}

/* ===== SEARCH (asp:DropDownList / TextBox / Button) ===== */
.search{max-width:980px;margin:0 auto;background:var(--white);border:1px solid var(--line);border-radius:20px;padding:12px;display:flex;gap:6px;box-shadow:0 20px 44px rgba(28,26,21,.15);flex-wrap:wrap;align-items:stretch}
.search .field{flex:1;min-width:150px;padding:8px 16px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center}
.search .field:last-of-type{border-right:none}
.search label{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:3px;font-weight:600}
.search select,.search input[type=text]{width:100%;background:transparent;border:none;color:var(--ink);font-family:var(--sans);font-size:15px;font-weight:500;outline:none;box-shadow:none;height:auto}
.search .search_btn{border-radius:14px;padding:15px 34px;white-space:nowrap;align-self:stretch}
/* the same search card reused OUTSIDE the hero (listing.aspx, under the page heading):
   fills its column and gets a lighter shadow, since it is not floating over an image */
.search.search-inline{max-width:none;margin:0 0 36px;box-shadow:0 8px 20px rgba(28,26,21,.07)}

/* ===== TRUST STRIP ===== */
.trust{background:var(--ink);color:#efe9d9;padding:26px 0}
.trust .wrap{display:flex;justify-content:space-around;align-items:center;gap:30px;flex-wrap:wrap;text-align:center}
.trust b{font-family:var(--serif);color:var(--gold);font-size:34px;display:block;line-height:1}
.trust span{font-size:13px;letter-spacing:.04em;opacity:.8}

/* ===== SECTION HELPERS (for CMS content areas) ===== */
.section{padding:100px 0}
.section.cream-2{background:var(--cream-2)}
.section.gold-soft{background:var(--gold-soft)}
.section.dark{background:var(--ink);color:#efe9d9}
.sec-head{text-align:center;max-width:640px;margin:0 auto 48px}
.sec-head h2{font-family:var(--display);font-weight:700;font-size:clamp(34px,4.6vw,54px);line-height:1.04;margin-top:14px;letter-spacing:-.5px}
.sec-head p{color:var(--ink-soft);margin-top:14px;font-size:17px}
.intro{background:var(--cream);text-align:center;padding:90px 0 30px}
.intro .eyebrow{justify-content:center}
.intro h1{font-family:var(--display);font-weight:800;font-size:clamp(48px,7vw,94px);line-height:1.0;letter-spacing:-1px;margin:18px 0 0}
.intro h1 em{font-style:italic;color:var(--gold-deep);font-family:var(--serif);font-weight:500}
.intro .sub{font-size:18px;color:var(--ink-soft);margin:22px auto 0;max-width:60ch}

/* ===== FOOTER ===== */
#footer{background:#fff;padding:76px 0 32px;border-top:1px solid var(--line);color:var(--ink)}
.ftrec{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;text-align:center;padding-bottom:34px;margin-bottom:44px;border-bottom:1px solid var(--line)}
.ftrec a{font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)!important;font-weight:600}
.ftrec a:hover{color:var(--gold-deep)!important}
.ftrec span{color:#cbc1a9}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.25fr;gap:44px;padding-bottom:48px;border-bottom:1px solid var(--line);align-items:start}
.fgrid .logo img{height:120px;margin-bottom:20px}
.ftag{font-family:var(--display);font-weight:700;font-size:20px;color:var(--ink);letter-spacing:-.3px;margin-top:2px}
.fcontact{list-style:none;margin:4px 0 0;padding:0}
.fcontact li{display:flex;align-items:flex-start;gap:12px;margin-bottom:13px;font-size:15px}
.fcontact li i{color:var(--gold-deep);width:18px;text-align:center;margin-top:3px}
.fcontact li a:hover{color:var(--gold-deep)}
.flegal{margin-top:18px;font-size:13.5px}
.flegal a{color:var(--ink-soft)}
.flegal a:hover{color:var(--gold-deep)}
.flegal span{color:#c3b9a2;margin:0 6px}
#footer h4{font-family:var(--display);font-size:18px;font-weight:700;margin-bottom:20px;padding-bottom:11px;position:relative;display:inline-block}
#footer h4::after{content:"";position:absolute;left:0;bottom:0;width:32px;height:3px;background:var(--gold);border-radius:2px}
#footer ul.flinks{list-style:none;margin:0;padding:0}
#footer ul.flinks li{margin-bottom:11px}
#footer ul.flinks li a{color:var(--ink-soft);font-size:14.5px}
#footer ul.flinks li a:hover{color:var(--gold-deep)}
.socials{display:flex;gap:12px;margin-top:20px}
.socials a{width:40px;height:40px;border-radius:50%;background:var(--cream);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-soft);font-size:15px}
.socials a:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.fbottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;color:var(--ink-soft);font-size:13px;flex-wrap:wrap;gap:16px}
.webby{display:inline-flex;align-items:center;gap:12px;color:var(--ink-soft)}
.webby .inhouse{height:24px;width:auto}
.webby:hover{color:var(--gold-deep)}

/* ============================================================
   CMS CONTENT-AREA COMPONENTS
   Paste these blocks into CMS content records; markup uses
   these classes. Section background images are set inline so
   they can be swapped in the CMS editor.
   ============================================================ */

/* --- Featured Listings grid --- */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.lcard{background:var(--white);border:1px solid var(--line);border-radius:22px;overflow:hidden;transition:.3s;display:block;color:inherit}
.lcard:hover{transform:translateY(-8px);box-shadow:0 30px 50px rgba(28,26,21,.14)}
.lcard .ph{position:relative;height:240px;overflow:hidden}
.lcard .ph img{height:100%;width:100%;object-fit:cover;transition:.5s}
.lcard:hover .ph img{transform:scale(1.07)}
.tag{position:absolute;top:16px;left:16px;background:var(--gold);color:var(--ink);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:7px 14px;border-radius:50px}
.fav{position:absolute;top:16px;right:16px;width:40px;height:40px;background:rgba(255,255,255,.92);border-radius:50%;display:grid;place-items:center;color:var(--gold-deep);font-size:18px}
.lcard .body{padding:24px}
.price{font-family:var(--serif);font-size:30px;color:var(--ink);font-weight:600}
.addr{font-size:16px;font-weight:600;margin-top:6px}
.lcity{font-size:14px;color:var(--ink-soft);margin-top:2px}
.specs{display:flex;gap:18px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line);font-size:13.5px;color:var(--ink-soft)}
.specs b{color:var(--ink);font-weight:600}
.center{text-align:center;margin-top:52px}
/* whole .lcard is the link now; .viewmore is plain text styled as the accent */
.lcard .viewmore{margin-top:16px;font-size:14px;font-weight:600;color:var(--gold-deep)}
.lcard:hover .viewmore{color:var(--ink)}

/* --- Services (big background image + large gold icons) --- */
.services{position:relative;background-color:var(--ink);background-size:cover;background-position:center;background-attachment:fixed;color:#fff}
.services::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(28,26,21,.80),rgba(28,26,21,.88))}
.services>.wrap{position:relative;z-index:1}
.services .sec-head h2{color:#fff}
.services .sec-head p{color:#e9e2d2}
.services .eyebrow{color:var(--gold);justify-content:center}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
/* .svc are <a> — pin the link color in every state so the browser blue never bleeds through */
.svc,.svc:link,.svc:visited,.svc:hover,.svc:focus,.svc:active{color:#fff;text-decoration:none;outline:none}
.svc{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:54px 34px;text-align:center;transition:.3s;display:block}
.svc:hover{background:rgba(255,255,255,.13);transform:translateY(-6px)}
.svc .ic{width:104px;height:104px;border-radius:50%;background:var(--gold);display:grid;place-items:center;margin:0 auto 26px;box-shadow:0 16px 34px rgba(0,0,0,.3)}
.svc .ic i{font-size:42px;color:var(--ink)}
.svc h3{font-family:var(--display);font-size:28px;font-weight:700;margin-bottom:10px;letter-spacing:-.3px;color:#fff}
.svc p{color:#e4ddcd;font-size:15px}
.svc .more{margin-top:20px;font-size:14px;font-weight:600;color:var(--gold)}

/* --- Our Team / About (split) --- */
.about-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:66px;align-items:center}
.about-grid .imgwrap{position:relative}
/* square-cornered image (no rounded corners) */
.about-grid .imgwrap img{width:100%;height:540px;object-fit:cover;border-radius:0}
/* .team-badge is plain text UNDER the picture (no gold box) — "Hi! 👋 Meet the Team" */
.about-grid .team-badge{margin-top:14px;color:var(--ink)}
.about-grid .team-badge b{font-family:var(--serif);font-size:22px;font-weight:600}
.about-grid .team-badge span{font-size:16px;color:var(--ink-soft);margin-left:8px}
.about-grid h2{font-family:var(--display);font-weight:700;font-size:clamp(34px,4.6vw,52px);line-height:1.06;margin:16px 0 20px;letter-spacing:-.5px}
/* same 16px body copy as the inner pages - without a size of its own this block inherited
   bootstrap's 14px base and read visibly smaller than the rest of the site */
.about-grid p{color:var(--ink-soft);margin-bottom:16px;font-size:16px;line-height:1.7}
.about-grid .checks li{font-size:16px}
.checks{list-style:none;margin:24px 0;padding:0}
.checks li{display:flex;gap:12px;align-items:center;margin-bottom:12px;font-weight:500}
.checks li i{width:26px;height:26px;background:var(--gold-soft);color:var(--gold-deep);border-radius:50%;display:grid;place-items:center;font-size:12px;flex-shrink:0}

/* --- Service Area (dark, city grid) --- */
.city-list{columns:6;column-gap:22px;max-width:1060px;margin:0 auto;border-top:1px solid rgba(255,255,255,.12);padding-top:30px}
.city-list a{display:block;font-size:13.5px;color:#cbc4b2;padding:5px 0;break-inside:avoid;transition:.2s;}
.city-list a:hover{color:var(--gold);padding-left:6px}
/* cities past SHOWN start hidden until "Show More" (higher specificity beats .city-list a) */
.city-list a.hidden-city{display:none}
.toggle-wrap{text-align:center;margin-top:36px}
.area-btn{background:transparent;border:2px solid var(--gold);color:var(--gold);font-family:var(--sans);font-size:13px;font-weight:600;padding:13px 30px;border-radius:50px;cursor:pointer;transition:.25s}
.area-btn:hover{background:var(--gold);color:var(--ink)}

/* --- Testimonials --- */
.tst-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;max-width:980px;margin:0 auto}
/* --- Testimonials rotator (CMS-driven, 2 cards at a time, arrows only - no swipe) ---
   The JS only calls slick when there are MORE than 2 cards. Until then the container is a
   plain 2-col grid, so the :not(.slick-initialized) guard is what keeps a 2-card (or
   1-card) set laid out correctly - without it slick's single .slick-list child would be
   squeezed into one grid column. */
.tst-rotator{max-width:980px;margin:0 auto;position:relative}
.tst-rotator:not(.slick-initialized){display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.tst-rotator .slick-list{margin:0 -13px}
.tst-rotator .slick-slide{padding:0 13px;height:auto}
/* equal-height cards regardless of review length */
.tst-rotator .slick-track{display:flex;align-items:stretch}
.tst-rotator .tst-slide,.tst-rotator .quote{height:100%}
/* review body - a div (not <p>) because CMS content already contains <p>/<div> markup */
.quote .qbody{font-family:var(--serif);font-size:20px;font-style:italic;color:var(--ink);margin:16px 0 24px;line-height:1.5}
.quote .qbody p{margin:0 0 12px;font-family:inherit;font-size:inherit;font-style:inherit;color:inherit}
.quote .qbody p:last-child{margin-bottom:0}
.quote .qbody div{margin:0}
/* NOTE: this project's slick-theme.css is customised with `.slick-prev{margin-left:50px}`
   (not stock slick), which silently shoves the left arrow 50px right. `margin:0` below
   cancels it - without that, the `left` offsets here land 50px off and the arrow covers
   the review text. Keep the margin reset if these rules are ever edited.
   Arrows sit OVER the cards (client request), inset from each edge and vertically centred.
   Light treatment (client preference): white fill, gold-deep chevron, soft border and a
   slightly stronger shadow so it still reads against the white .quote behind it.
   :focus is included on the hover rule for the same bootstrap reason noted above. */
.tst-rotator .slick-prev,.tst-rotator .slick-next{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;padding:0;margin:0;border:1px solid var(--line);border-radius:50%;background:var(--white);color:var(--gold-deep);font-size:16px;line-height:1;cursor:pointer;z-index:5;box-shadow:0 6px 18px rgba(28,26,21,.16);transition:.2s}
/* Centred ON the card edge (half over the card, half outside) rather than fully inside:
   .quote has 38px side padding, so a 44px button at left:14px would cover ~20px of the
   review text. At -22px the button straddles the edge and only ever sits over the card's
   padding. -22 also stays inside .wrap's 32px padding, so it is never clipped. */
.tst-rotator .slick-prev{left:-22px}
.tst-rotator .slick-next{right:-22px}
.tst-rotator .slick-prev:hover,.tst-rotator .slick-next:hover,.tst-rotator .slick-prev:focus,.tst-rotator .slick-next:focus{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.tst-rotator .slick-prev:before,.tst-rotator .slick-next:before{content:none}
.tst-rotator .slick-disabled{opacity:.35;cursor:default}
/* flex column so every card is the same height (the slick track / grid stretch them) and
   the attribution row pins to the bottom whatever length the excerpt ran to */
.quote{background:var(--white);border-radius:22px;padding:44px 38px;box-shadow:0 14px 30px rgba(28,26,21,.06);display:flex;flex-direction:column}
.quote .qbody{flex:1 1 auto}
/* the " ..." is the link to the full testimonial, as on the landing page */
.quote .qbody a.more{font-family:var(--sans);font-style:normal;font-weight:700;color:var(--gold-deep);text-decoration:none;white-space:nowrap}
.quote .qbody a.more:hover,.quote .qbody a.more:focus{color:var(--ink);text-decoration:underline}
.stars{color:var(--gold);font-size:15px;letter-spacing:2px}
.quote p{font-family:var(--serif);font-size:20px;font-style:italic;color:var(--ink);margin:16px 0 24px;line-height:1.5}
.quote .who{display:flex;align-items:center;gap:14px}
.quote .who .av-initial{width:48px;height:48px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-weight:700;font-size:19px;font-family:var(--serif)}
.quote .who b{font-size:15px;display:block}
.quote .who span{font-size:13px;color:var(--ink-soft)}

/* back to top */
/* flex centering + line-height:1 centers the chevron glyph on both axes (its ink center
   sits ~0.4px off the em-box center, so this reads as dead-center in the circle) */
.back-to-top{position:fixed;right:22px;bottom:22px;width:46px;height:46px;padding:0;border-radius:50%;background:var(--gold);color:var(--ink);display:flex;align-items:center;justify-content:center;line-height:1;opacity:0;visibility:hidden;transition:.25s;z-index:80;text-decoration:none}
/* Chevron is an inline SVG centered by explicit absolute offsets (NOT flex/transform,
   which some legacy browsers mis-render): (46-18)/2 = 14px on each side. */
.back-to-top svg{position:absolute;top:14px;left:14px;width:18px;height:18px}
.back-to-top.show{opacity:1;visibility:visible}
/* Must cover :focus and :active too, not just :hover - bootstrap sets
   `a:hover,a:focus{color:#2a6496;text-decoration:underline}` and this is an <a href="#">,
   so after a click the button keeps focus and the chevron turned (and stayed) BLUE.
   Chevron stays black throughout; the gold just deepens for hover feedback. */
.back-to-top:hover,.back-to-top:focus,.back-to-top:active{background:var(--gold-deep);color:var(--ink);text-decoration:none}

/* ============================================================
   INNER / SUB PAGES  (contact, listings, detail, agents, message
   center, etc.). Every inner page wraps its content in a bootstrap
   `.container` inside ContentPlaceHolder1, while the home page uses
   `.wrap`/`.section`/`.hero` and NEVER `.container`. Scoping the
   base-element theme under `.container` therefore brings the inner
   pages in line with the warm-gold system WITHOUT touching the home
   page or the footer (both use `.wrap`). The standalone pages that
   load default.css directly (HomeMap/player) and the CMS editor get
   the mirrored copy of these rules in default.css.
   ============================================================ */
#wrapper .container{padding-top:56px;padding-bottom:72px}
/* headings — warm display font, ink, normal case (not the legacy uppercase Barlow) */
/* margin-top pushes the page heading clear of the sticky header (client request) */
/* ---- inner-page title band ------------------------------------------------
   Every page type emits its <h1> at a different depth - a direct child of .row on
   contact_us, inside .col-sm-12 on listing, inside .mcdHeader on CMS pages - so the
   only dependable site-wide hook is the h1 itself. It is broken out to full width
   with the same 100vw/--sbw technique as the CMS bands, which stays correctly
   centred at any depth because every ancestor between it and .container is itself
   horizontally centred. */
.container h1{position:relative;left:50%;box-sizing:border-box;width:calc(100vw - var(--sbw,0px));max-width:calc(100vw - var(--sbw,0px));margin:0 0 44px calc((100vw - var(--sbw,0px)) / -2);padding:62px 24px;background:var(--ink);color:#fff;text-align:center;font-family:var(--display);font-weight:800;font-size:clamp(28px,4.4vw,36px);line-height:1.15;letter-spacing:-.3px;text-transform:none}
/* Sit flush under the site header when the title is the first thing on the page, by
   cancelling #wrapper .container's top padding. Matches ANY first child, not just .row -
   Message Center listing pages (e.g. /pages/Testimonials-6.aspx) wrap their content in
   .news instead, and were left with a 56px cream gap above the band. listing.aspx puts its
   quick-search in the first row, so its title correctly keeps the padding above it. */
#wrapper .container>:first-child h1{margin-top:-56px}
@media(max-width:900px){.container h1{padding:40px 20px;margin-bottom:30px}
  #wrapper .container>:first-child h1{margin-top:-56px}
  .container .page-intro{margin-top:-30px;margin-bottom:0;padding-bottom:38px}
  .mcdBody>.page-intro:first-child{margin-top:-50px}}

/* ---- search.aspx header (RealEstateSearch_Resp_integrity.ascx) -------------
   Stacked: title centred in a full-width black band, the two quick-search fields in a 6/6
   row beneath it. The h1 opts OUT of the site-wide title band here - the band is carried by
   .its_HeaderArea instead, via a full-bleed pseudo-element so the content keeps the
   container's width. display:block on that pseudo is required: .its_HeaderArea is a .row,
   and bootstrap's .row:before clearfix sets display:table, which shrink-wraps an absolutely
   positioned box to height 0. All of this is scoped to .its_HeaderArea, which only this
   control emits, so the legacy search controls and the Telerik tab strip are untouched. */
.container .its_HeaderArea{position:relative;isolation:isolate;margin-top:-56px;margin-bottom:44px;padding:62px 24px 52px;text-align:center}
.container .its_HeaderArea::before{content:"";display:block;position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - (100vw - var(--sbw,0px)) / 2);width:calc(100vw - var(--sbw,0px));background:var(--ink)}
/* This must outrank #wrapper .container>:first-child h1, which would otherwise re-apply
   the band's -56px pull-up to this heading (the band itself already carries it, so the title
   ended up only 6px below the band top instead of 62px). That rule scores (1,3,1) - note
   :first-child counts as a class - and the <=640px variant of it comes later in the file, so
   the override needs (1,4,1) to win at every width, hence the extra class names. */
#wrapper .container .its_HeaderArea.hs_HeaderArea .its_Title h1{position:static;left:auto;width:auto;max-width:none;margin:0 0 28px;padding:0;background:none;color:#fff;text-align:center;font-size:clamp(26px,3.4vw,34px)}
/* .hs_QuickMLS sets its own right-align in Home.css, so it has to be named here - it will
   not inherit the centring from its parent. */
.container .its_HeaderArea .hs_QuickSearch,.container .its_HeaderArea .hs_QuickStreet,.container .its_HeaderArea .hs_QuickMLS{text-align:center;padding-top:0;padding-bottom:0}
/* Each field is laid out label-over-input so both columns match whatever the label length.
   The .form-inline default put "Street Name (All or part):" + input + Go! on one line across
   a 375px column, which wrapped the button onto a second row and left the two columns at
   different heights. Label styling mirrors the home page's .search label. */
.container .its_HeaderArea fieldset{margin:0;padding:0;border:0}
.container .its_HeaderArea .form-group{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 auto;max-width:380px}
.container .its_HeaderArea label{flex:1 0 100%;margin:0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;text-align:left}
.container .its_HeaderArea label i{font-style:normal;opacity:.75}
.container .its_HeaderArea .form-control{flex:1 1 auto;width:auto;min-width:0}
.container .its_HeaderArea .hs_MLSValidation{flex:1 0 100%;margin:0;text-align:left}
.container .its_HeaderArea .btn{flex:0 0 auto;background:var(--gold);border-color:var(--gold);color:var(--ink);font-weight:600;padding:11px 20px;font-size:13px;border-width:1px}
.container .its_HeaderArea .btn:hover,.container .its_HeaderArea .btn:focus{background:var(--gold-deep);border-color:var(--gold-deep);color:var(--ink)}
@media(max-width:767px){
  .container .its_HeaderArea{padding:40px 20px 34px;margin-bottom:30px}
  .container .its_HeaderArea .hs_QuickMLS{margin-top:16px}}

/* ---- listing.aspx header ---------------------------------------------------
   Title above the quick search, both inside one black band. Same pseudo-element backdrop as
   the other bands so the content keeps the container's measure. Plain div, not a .row, so
   there is no bootstrap clearfix to worry about. */
.container .its_ListHeader{position:relative;isolation:isolate;margin-top:-56px;margin-bottom:44px;padding:62px 0 52px;text-align:center}
.container .its_ListHeader::before{content:"";display:block;position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - (100vw - var(--sbw,0px)) / 2);width:calc(100vw - var(--sbw,0px));background:var(--ink)}
/* (1,3,1) to outrank #wrapper .container>:first-child h1, which would otherwise re-apply the
   band's -56px pull-up to this heading - the wrapper already carries it. */
#wrapper .container .its_ListHeader .its_Title h1{position:static;left:auto;width:auto;max-width:none;margin:0 0 26px;padding:0;background:none;color:#fff;text-align:center}
/* the search card sits centred at the container's measure, and the band's padding supplies
   the space beneath it, so drop .search-inline's own bottom margin */
.container .its_ListHeader .search{margin:0 auto;max-width:100%}
@media(max-width:900px){.container .its_ListHeader{padding:40px 0 34px;margin-bottom:30px}}
@media(max-width:640px){.container .its_ListHeader{margin-top:-36px}}

/* ---- property detail header (detail.aspx) ----------------------------------
   The back link (RealEstateDetailHeader_Resp) and the address <h1>
   (RealEstateDetails_Resp_integrity) are separate controls stacked inside .hd_DetailParent.
   Left alone, the h1's site-wide band pulled itself up 56px and landed exactly on top of the
   back link, and Home.css's stacked paddings left a 63px cream gap above it. So the nav row
   becomes the TOP of the band - flush under the site header, the back link as a gold eyebrow -
   and the h1 band butts straight against it, so the two read as one black header. */
/* the pull-up lives on the PARENT, not the nav row: a negative margin on the nav itself
   lifted it out of its row and left a cream seam equal to (56px - nav height) above the h1 */
.container .hd_DetailParent{padding:0;margin-top:-56px}
.container .hd_DetailParent>.row{margin:0}
.container .hd_DetailParent_Nav{position:relative;isolation:isolate;padding:28px 0 0;text-align:center}
.container .hd_DetailParent_Nav::before{content:"";display:block;position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - (100vw - var(--sbw,0px)) / 2);width:calc(100vw - var(--sbw,0px));background:var(--ink)}
.container .hd_DetailParent_Nav .BackButton{float:none}
.container .hd_DetailParent_Nav .BackButton a{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);text-decoration:none}
.container .hd_DetailParent_Nav .BackButton a:hover,.container .hd_DetailParent_Nav .BackButton a:focus{color:#fff;text-decoration:underline}
.container .hd_DetailContainer{padding-top:0}
.container .hd_DetailControl{padding-top:0}
/* (1,3,1) to outrank #wrapper .container>:first-child h1 at every width - the nav row already
   carries the pull-up, so the h1 must not pull up again. Less top padding: the eyebrow above
   is already inside the band. */
#wrapper .container .hd_DetailContainer .hd_DetailControl h1{margin-top:0;padding-top:16px}
@media(max-width:900px){#wrapper .container .hd_DetailContainer .hd_DetailControl h1{padding-top:10px}}
@media(max-width:640px){.container .hd_DetailParent{margin-top:-36px}}

/* ---- listing photo slider arrows (jssor, detail.aspx) -----------------------
   The same round buttons as the testimonial rotator. jssor draws its arrows from a grey
   sprite (camera_skins.png) on 45px spans that carry inline size/position, so the sprite is
   dropped and the chevron is drawn with Font Awesome in ::before; !important only where the
   inline style competes. */
.hd_ImageRotator .jssora05l,.hd_ImageRotator .jssora05r{width:44px!important;height:44px!important;top:50%!important;transform:translateY(-50%);background:var(--white);border:1px solid var(--line);border-radius:50%;box-shadow:0 6px 18px rgba(28,26,21,.16);color:var(--gold-deep);overflow:visible;transition:.2s}
.hd_ImageRotator .jssora05l{left:14px!important}
.hd_ImageRotator .jssora05r{right:14px!important}
.hd_ImageRotator .jssora05l::before,.hd_ImageRotator .jssora05r::before{font-family:"Font Awesome 6 Free";font-weight:900;font-size:16px;line-height:42px;display:block;text-align:center}
.hd_ImageRotator .jssora05l::before{content:"\f053"}
.hd_ImageRotator .jssora05r::before{content:"\f054"}
.hd_ImageRotator .jssora05l:hover,.hd_ImageRotator .jssora05r:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}
/* jssor's disabled state (first/last photo) strips the sprite; keep the button, fade it */
.hd_ImageRotator .jssora05l.jssora05lds,.hd_ImageRotator .jssora05r.jssora05rds{background:var(--white);opacity:.35;cursor:default}

/* ---- agent listing (agents.aspx) -------------------------------------------
   Same treatment as the agent profile page. RealEstateAgents_Resp is a shared control, so it
   is untouched - this styles the col-sm-4 cards it emits. Flex instead of floats so a short
   last row centres (5 agents = 3 + 2) and Home.css's min-height:650px goes. */
.AgentListings{display:flex;flex-wrap:wrap;justify-content:center;margin:0 -15px;padding:0}
.AgentListings .AgentListing{float:none;min-height:0;height:auto;width:33.333%;max-width:33.333%;padding:0 15px;margin:0 0 44px;text-align:center}
.AgentListings .AgentListing a{display:block;color:inherit;text-decoration:none}
.AgentListings .AgentListing br{display:none}
/* photos cropped to one portrait shape so the grid stays even whatever was uploaded */
.AgentListings .AgentListing img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:top;border:0;border-radius:22px;box-shadow:0 14px 30px rgba(28,26,21,.08);transition:.25s}
.AgentListings .AgentListing a:hover img{transform:translateY(-4px);box-shadow:0 22px 40px rgba(28,26,21,.14)}
.AgentListings .AgentListingName{font-family:var(--display);font-size:24px;font-weight:800;line-height:1.15;letter-spacing:-.3px;color:var(--ink);margin:18px 0 6px}
.AgentListings .AgentListing a:hover .AgentListingName{color:var(--gold-deep)}
.AgentListings .AgentTitle{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);text-align:center}
.AgentListings .AgentOffice:empty{display:none}
@media(max-width:767px){.AgentListings .AgentListing{width:50%;max-width:50%}}
@media(max-width:480px){.AgentListings .AgentListing{width:100%;max-width:100%;padding:0 30px}}

/* ---- contact form confirmation (contact_us.aspx) ----------------------------
   Deliberately NOT the black band: this sits on the cream page as a light card, so it reads
   as a reply to the form rather than as another page header. */
.container .form-done{text-align:center;background:var(--white);border:1px solid var(--line);border-radius:22px;padding:48px 34px;box-shadow:0 14px 30px rgba(28,26,21,.06);margin-top:6px}
.container .form-done i{width:58px;height:58px;margin:0 auto 20px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:var(--ink);font-size:22px}
.container .form-done h2{font-family:var(--display);font-size:26px;font-weight:800;line-height:1.2;letter-spacing:-.3px;color:var(--ink);margin:0 0 12px;text-transform:none}
.container .form-done p{font-family:var(--sans);font-size:16px;line-height:1.7;color:var(--ink-soft);margin:0 auto;max-width:420px}
@media(max-width:640px){.container .form-done{padding:36px 24px}}

/* ---- agent profile (agent_detail.aspx) --------------------------------------
   Photo at full column width on the left (Home.css caps .AgentImage at a fixed 200px),
   name / contact details / links on the right with the bio stacked beneath them. */
.agent-profile .agent-photo{text-align:center}
.agent-profile .AgentImage{width:100%;max-width:460px;height:auto;padding:0;border-radius:22px;display:block;margin:0 auto;box-shadow:0 14px 30px rgba(28,26,21,.08)}
.agent-profile .agent-info{font-family:var(--sans);font-size:16px;line-height:1.85;color:var(--ink-soft)}
.agent-profile .agent-motto:not(:empty){display:block;font-family:var(--serif);font-style:italic;color:var(--ink);margin:0 0 8px}
.agent-profile .AgentListingName2{font-family:var(--display);font-size:30px;font-weight:800;line-height:1.15;letter-spacing:-.3px;color:var(--ink)}
.agent-profile .AgentTitle{display:inline-block;text-align:left;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);margin:6px 0 10px}
.agent-profile .agent-info .fa,.agent-profile .agent-info .fa-brands{color:var(--gold-deep)}
.agent-profile .agent-info a{color:var(--ink);font-weight:500}
.agent-profile .agent-info a:hover{color:var(--gold-deep)}
.agent-profile .agent-bio{margin-top:26px;padding-top:24px;border-top:1px solid var(--line);font-size:16px;line-height:1.7;color:var(--ink-soft)}
.agent-profile .agent-bio p{margin:0 0 14px}
@media(max-width:991px){
  .agent-profile .AgentImage{max-width:360px;margin-bottom:26px}}

/* Lead-in block directly beneath a title band. Add class="page-intro" to the wrapping div
   in the CMS. The black is painted by a full-bleed pseudo-element rather than by breaking the
   block itself out to 100vw, so the copy keeps the container's own width and its natural size.
   isolation:isolate keeps the z-index:-1 backdrop from slipping behind the page background.
   The negative top margin cancels the title band's bottom margin so the two black areas meet
   with no cream seam between them. No font-size or line-height here on purpose - the text
   stays exactly as the CMS renders it elsewhere. */
/* the lead-in stays at 14px by the client's explicit choice - it is the one CMS block that
   does NOT follow the 16px body-copy size set on .mcdBody */
.container .page-intro{position:relative;isolation:isolate;margin:-44px 0 0;padding:10px 0 52px;text-align:center;color:#efe9d9;font-size:14px;line-height:1.65}
/* the full-width bands butt straight up against the lead-in block, the same way the bands
   stack against each other - no cream gap between the black and the first two-column row */
.page-intro+.container-full{margin-top:0}
.container .page-intro::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - (100vw - var(--sbw,0px)) / 2);width:calc(100vw - var(--sbw,0px));background:var(--ink)}
/* CMS pages add .mcdBody's own 20px top padding on top of the band's margin */
.mcdBody>.page-intro:first-child{margin-top:-64px}
/* Same for a page whose body opens straight with the full-width rows and no lead-in block
   (e.g. /page/VA-10.aspx): the bands butt against the title band exactly as they do under
   a .page-intro, instead of leaving a 44+20+44=108px cream gap. */
.mcdBody>.container-full:first-child{margin-top:-64px}
/* colours only - .container p/li set colour directly, which beats an inherited one and would
   render this copy near-black on the black band */
.container .page-intro p,.container .page-intro div,.container .page-intro li{color:inherit}
.container .page-intro p:last-child,.container .page-intro>:last-child{margin-bottom:0}
.container .page-intro strong,.container .page-intro b{color:#fff}
.container .page-intro a{color:var(--gold)}
.container h2{font-family:var(--display);font-weight:700;font-size:clamp(26px,3vw,36px);line-height:1.12;letter-spacing:-.3px;color:var(--ink);text-transform:none;margin:0 0 16px}
.container h3{font-family:var(--display);font-weight:700;font-size:22px;color:var(--ink);text-align:left;text-transform:none;margin:0 0 12px}
.container h4{font-family:var(--sans);font-weight:600;font-size:17px;color:var(--ink);text-transform:none;margin:0 0 10px}
/* body copy, list + table text, form labels */
.container p,.container li,.container label,.container dd,.container dt{font-family:var(--sans);color:var(--ink-soft)}
.container p{font-size:16px;line-height:1.7;margin:0 0 16px}
.container td,.container th{font-family:var(--sans);color:var(--ink-soft);font-size:15px}
.container th,.container thead td{color:var(--ink);font-weight:600}
.container a{color:var(--gold-deep);text-decoration:none}
.container a:hover{color:var(--ink);text-decoration:none}
.container hr{border-top:1px solid var(--line)}
/* bootstrap form controls -> warm (contact form, search panels) */
.container .control-label{color:var(--ink);font-family:var(--sans);font-weight:600}
.container .form-control{border:1px solid var(--line);border-radius:12px;box-shadow:none;color:var(--ink);font-family:var(--sans);height:auto;padding:11px 16px;background:var(--white)}
.container .form-control:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft);outline:none}
/* buttons on inner pages (bootstrap .btn* / theme .btn) -> warm pill, matching .btn2 */
.container .btn,.container .btn-default,.container .btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.02em;padding:13px 28px;border:2px solid var(--ink);color:var(--white);background:var(--ink);background-image:none;border-radius:50px;transition:.25s;line-height:1;box-shadow:none;text-shadow:none;white-space:nowrap;cursor:pointer}
.container .btn:hover,.container .btn-default:hover,.container .btn-primary:hover,.container .btn:focus,.container .btn-default:focus{background:var(--gold);border-color:var(--gold);color:var(--ink)}
/* validation text — a warm terracotta instead of the harsh legacy red */
.container .error,.container .error2,.container .field-validation-error{color:#b5462b;font-weight:600}

/* ===== CONSENT CHECKBOX (contact form) =====
   Small print sat beside its checkbox. The box is pulled to its own column so the wrapped
   text lines up under itself rather than under the checkbox. Deliberately NOT wrapped in a
   <label>: the text contains Privacy Policy / Terms of Use links, and clicking a link
   inside a label also toggles the control it is bound to. */
.container .consent{display:flex;align-items:flex-start;gap:12px;margin-top:4px}
.container .consent .consent-box{flex:0 0 auto;margin-top:3px}
.container .consent .consent-box input[type=checkbox]{width:17px;height:17px;cursor:pointer;accent-color:var(--gold-deep)}
.container .consent-text{font-family:var(--sans);font-size:13px;line-height:1.55;color:var(--ink-soft)}
.container .consent-text a{color:var(--gold-deep);text-decoration:underline}
.container .consent-text a:hover{color:var(--ink)}

/* ============================================================
   FULL-WIDTH ALTERNATING IMAGE / TEXT ROWS  (.container-full)
   For CMS body content that alternates a picture and a block of copy edge to edge, e.g.
   /page/Sell-Your-East-Texas-Home-with-Confidence--9.aspx. Expected markup, which the CMS
   editor already produces - just alternate which column holds the image:
     <div class="container-full">
       <div class="row"><div class="col-lg-6">copy</div><div class="col-lg-6"><img></div></div>
       <div class="row"><div class="col-lg-6"><img></div><div class="col-lg-6">copy</div></div>
     </div>
   ============================================================ */
/* Break out of the page .container so the rows run edge to edge.
   The usual recipe (width:100vw; margin-left:-50vw) is WRONG here: 100vw INCLUDES the
   vertical scrollbar, so the rows overflow by its width and the page gets a horizontal
   scrollbar. --sbw (published by the snippet in Default.master) subtracts it, making the
   bleed exact. Two rejected alternatives, both verified as unsuitable:
     html{overflow-x:hidden} - would break the site's position:sticky header
     html{overflow-x:clip}   - keeps sticky working BUT does not actually stop the page
                               scrolling sideways, so the overflow is still reachable
   If --sbw is ever missing the fallback is 0px, i.e. the old behaviour - a few px of
   horizontal slack, not a broken layout. */
.container-full{position:relative;left:50%;width:calc(100vw - var(--sbw,0px));max-width:calc(100vw - var(--sbw,0px));margin-left:calc((100vw - var(--sbw,0px)) / -2);margin-top:44px}
.container-full .row{display:flex;flex-wrap:wrap;align-items:stretch;margin:0}
/* The 460px floor gives the image/text rows presence, but it belongs on the COLUMNS, not
   the row - on the row it also forced short single-column bands (a CTA, say) to 460px,
   leaving a few hundred px of dead space around a couple of lines of text. */
.container-full .row>div:not(.col-lg-12):not(:only-child){min-height:460px}
/* two exact halves, butted together with no gutter */
.container-full .row>div{position:relative;float:none;width:50%;flex:0 0 50%;max-width:50%;padding:54px 58px;display:flex;flex-direction:column;justify-content:center;font-family:var(--sans);font-size:16px;line-height:1.75;color:var(--ink-soft)}
/* The image fills its half and crops rather than stretching. !important is REQUIRED: the CMS
   editor stamps a fixed pixel size on pasted images (style="width:2184px;height:1372px") and
   an inline style beats a stylesheet, which otherwise blows the layout apart. */
.container-full .row>div img{position:absolute;top:0;left:0;right:0;bottom:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;margin:0}
/* A row holding ONE full-width column (col-lg-12) is a centred content band, not a 2-up
   split - e.g. the closing section of the sell page. Its image sits IN the text flow, so it
   must NOT be absolutely positioned or it would cover the copy. Copy is capped to a readable
   measure rather than running the full bleed width. */
.container-full .row>.col-lg-12,.container-full .row>div:only-child{width:100%;flex:0 0 100%;max-width:100%;padding:56px 32px;align-items:center}
/* Content inside a full-width band is capped to the CONTAINER's own measure at each
   breakpoint (bootstrap: 750/992/1170 less 30px padding), so a band's text lines up with the
   rest of the site instead of running to an arbitrary 820px. */
.container-full .row>.col-lg-12>*,.container-full .row>div:only-child>*{width:100%;max-width:100%}
@media(min-width:768px){.container-full .row>.col-lg-12>*,.container-full .row>div:only-child>*{max-width:720px}}
@media(min-width:992px){.container-full .row>.col-lg-12>*,.container-full .row>div:only-child>*{max-width:962px}}
@media(min-width:1200px){.container-full .row>.col-lg-12>*,.container-full .row>div:only-child>*{max-width:1140px}}
.container-full .row>.col-lg-12 img,.container-full .row>div:only-child img{position:static;width:auto!important;height:auto!important;max-width:100%!important;display:block;margin:18px auto}
.container-full .row h2{font-family:var(--display);font-size:30px;font-weight:700;line-height:1.15;letter-spacing:-.3px;color:var(--ink);margin:0 0 18px}
.container-full .row p{margin:0 0 14px}
/* alternating tint so the copy halves read as bands */
.container-full .row:nth-child(even)>div{background:var(--cream)}
/* The full-width band (a single col-lg-12 row) gets the same dark treatment as the home
   page's "Areas We Cover" section (.section.dark = ink ground, warm off-white text).
   MUST sit AFTER the :nth-child(even) tint above: both selectors carry the same specificity,
   so source order is what decides - putting it earlier would let the cream tint win. */
.container-full .row>.col-lg-12,.container-full .row>div:only-child{background:var(--ink);color:#efe9d9}
.container-full .row>.col-lg-12 h2,.container-full .row>div:only-child h2{color:#fff}
.container-full .row>.col-lg-12 b,.container-full .row>.col-lg-12 strong,.container-full .row>div:only-child b,.container-full .row>div:only-child strong{color:#fff}
.container-full .row>.col-lg-12 a,.container-full .row>div:only-child a{color:var(--gold)}
.container-full .row>.col-lg-12 a:hover,.container-full .row>.col-lg-12 a:focus,.container-full .row>div:only-child a:hover,.container-full .row>div:only-child a:focus{color:#fff}
/* FAQ / checklist inside a full-width band. The home page .checks is a ONE-LINE treatment
   (display:flex; align-items:center), which here would squash the icon, the <h3> question and
   the answer paragraph onto a single row - hence the mis-alignment. Re-lay it out as
   icon-in-the-margin with the question and answer stacked beneath, left aligned even though
   the CMS wraps it in a text-align:center div. Colours are set for the DARK band: the gold
   disc keeps the tick visible, and the <h3> must be forced white or warm.css's
   `.container h3{color:var(--ink)}` renders the questions near-black on near-black. */
/* layout only - no colours here, so .checks still reads correctly in a light two-column row */
.container-full .checks{list-style:none;margin:28px auto 0;padding:0;max-width:820px;text-align:left}
.container-full .checks li{display:block;position:relative;padding:0 0 0 42px;margin:0 0 26px;font-weight:400;line-height:1.7}
.container-full .checks li i{position:absolute;left:0;top:3px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px}
.container-full .checks li h3{margin:0 0 6px;font-family:var(--display);font-size:18px;font-weight:700;line-height:1.3;text-align:left}
/* dark-band colours. These must be stated explicitly, not inherited: warm.css sets
   `.container h3{color:var(--ink)}` and `.container li{color:var(--ink-soft)}`, and a direct
   rule always beats an inherited one - which is what made the questions and the answer copy
   read near-black on the near-black band. */
.container-full .row>.col-lg-12 h3,.container-full .row>div:only-child h3{color:#fff}
.container-full .row>.col-lg-12 .checks li,.container-full .row>div:only-child .checks li{color:#efe9d9}
.container-full .row>.col-lg-12 .checks li i,.container-full .row>div:only-child .checks li i{background:var(--gold);color:var(--ink)}

/* Small eyebrow above a section heading, for a group title that introduces several rows
   ("1031 Exchanges", "Selling an Investment Property"...). Same language as the Message
   Center crumbtrail and the search labels. */
/* deeper than --gold-deep on purpose: the decorative .eyebrow uses gold-deep, which sits at
   2.2:1 on cream. These kickers carry the section name, so they need to be readable -
   #7A6211 keeps the gold identity at 5.5:1. On a dark band --gold is already 10.4:1. */
.container-full .row .kicker{display:block;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#7A6211;margin:0 0 10px}
.container-full .row>.col-lg-12 .kicker,.container-full .row>div:only-child .kicker{color:var(--gold)}
/* a <p> inside a checklist answer must not fall back to .container p's dark ink on a dark band */
.container-full .row>.col-lg-12 .checks li p,.container-full .row>div:only-child .checks li p{color:inherit}

/* Opt-in LIGHT full-width band. A single-column row goes dark by default; add band-light
   to the column to keep it on the cream ground instead - useful when several image-less
   sections land next to each other and the page would otherwise run to a wall of black. */
.container-full .row>.col-lg-12.band-light,.container-full .row>div:only-child.band-light{background:var(--cream);color:var(--ink-soft)}
.container-full .row>.col-lg-12.band-light h2,.container-full .row>div:only-child.band-light h2,.container-full .row>.col-lg-12.band-light h3,.container-full .row>div:only-child.band-light h3{color:var(--ink)}
.container-full .row>.col-lg-12.band-light b,.container-full .row>.col-lg-12.band-light strong,.container-full .row>div:only-child.band-light b,.container-full .row>div:only-child.band-light strong{color:var(--ink)}
.container-full .row>.col-lg-12.band-light a,.container-full .row>div:only-child.band-light a{color:var(--gold-deep)}
.container-full .row>.col-lg-12.band-light .checks li,.container-full .row>div:only-child.band-light .checks li{color:var(--ink-soft)}
.container-full .row>.col-lg-12.band-light .checks li i,.container-full .row>div:only-child.band-light .checks li i{background:var(--gold-soft);color:var(--gold-deep)}
/* a .btn2 must keep its own colour: the dark-band link rule above is (0,3,1) and would
   otherwise paint gold text onto a gold button. */
.container-full .row>div a.btn2.btn-gold{color:var(--ink)}
.container-full .row>div a.btn2.btn-gold:hover{background:var(--ink);border-color:var(--ink);color:var(--white)}

@media(max-width:900px){
  .container-full .row>div{min-height:0}
  .container-full .row>div{width:100%;flex:0 0 100%;max-width:100%;padding:34px 26px}
  /* stacked: the image can no longer be absolute or its half would collapse to zero height */
  .container-full .row>div img{position:static;height:260px!important}
  .container-full .row h2{font-size:24px}
}

/* ===== SERVICE AREAS PAGE (service_areas.aspx) =====
   The home page equivalent (.city-list above) sits on a DARK section; this is the light
   inner-page variant of the same list. Same data and same links - see PopulateServiceAreas
   in default.aspx.vb and rptAreas in service_areas.aspx.vb. */
.container .area-list{columns:4;column-gap:26px;border-top:1px solid var(--line);margin-top:26px;padding-top:26px}
.container .area-list a{display:block;font-family:var(--sans);font-size:14.5px;color:var(--ink-soft);padding:6px 0;break-inside:avoid;transition:.2s}
.container .area-list a:hover{color:var(--gold-deep);padding-left:6px}
@media(max-width:900px){.container .area-list{columns:2}}
@media(max-width:560px){.container .area-list{columns:1}}

/* ============================================================
   TESTIMONIALS LISTING PAGE  (/pages/Testimonials-6.aspx)
   The mcListing control emits `<div class="mcl mcl6">` - that is "mcl" + the TypeX/category
   id - so EVERYTHING here is scoped to .mcl6 and cannot affect any other Message Center
   listing rendered by the same MessageCenterListing.aspx. No code-behind change needed.
   If the Testimonials category id ever changes, change .mcl6 here and in that page's script.
   ============================================================ */
.mcl6 .mclListings{max-width:900px;margin:0 auto}
/* each testimonial becomes its own card - that is what separates the listings */
.mcl6 .mclListing{float:none;width:100%;background:var(--white);border:1px solid var(--line);border-radius:22px;padding:30px 34px;margin-bottom:22px;box-shadow:0 10px 24px rgba(28,26,21,.06);transition:.25s}
.mcl6 .mclListing:hover{box-shadow:0 18px 34px rgba(28,26,21,.12)}
/* The CMS Headline repeats verbatim at the start of Body, so hide it. The click-through is
   re-added as .tst-more by the script in MessageCenterListing.aspx - the control only renders
   its own " ..." ellipsis link on TRUNCATED entries, so short ones would have no link at all. */
.mcl6 .mclListing [id*="pnlHeadline"]{display:none}
/* review text, matching the home page .quote treatment */
.mcl6 .mclListing [id*="pnlBody"]{font-family:var(--serif);font-size:19px;font-style:italic;line-height:1.55;color:var(--ink)}
.mcl6 .mclListing [id*="pnlBody"] a{color:var(--gold-deep);font-style:normal;font-family:var(--sans)}
/* 5 gold stars, same as the home page cards */
.mcl6 .tst-stars{color:var(--gold);font-size:15px;letter-spacing:2px;font-style:normal;margin-bottom:14px}
/* injected "read the full testimonial" link */
.mcl6 .tst-more{display:inline-block;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);width:100%;font-family:var(--sans);font-size:14px;font-weight:600;font-style:normal;color:var(--gold-deep)}
.mcl6 .tst-more:hover,.mcl6 .tst-more:focus{color:var(--ink)}
@media(max-width:640px){
  .mcl6 .mclListing{padding:24px 22px}
  .mcl6 .mclListing [id*="pnlBody"]{font-size:17px}
}

/* ---- Message Center detail header (and .page-head / .page-crumb, the same band for a
   non-CMS page - agent_detail.aspx uses it) -------------------------------------------
   The crumbtrail sits INSIDE .mcdHeader, above the <h1>. Once the h1 became a full-bleed
   band with a -56px pull-up it covered the crumbtrail entirely. So .mcdHeader carries the
   band here instead - the crumbtrail reads as an eyebrow above the title, inside the black -
   and the h1 opts out. Same pseudo-element backdrop as .page-intro, which keeps the content
   at its container's width (.mcdtype6 narrows .mcd to 820px, and that stays centred so the
   breakout still lands correctly). */
.container .mcdHeader,.container .page-head{position:relative;isolation:isolate;margin-top:-56px;margin-bottom:44px;padding:62px 24px 52px;text-align:center}
.container .mcdHeader::before,.container .page-head::before{content:"";display:block;position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - (100vw - var(--sbw,0px)) / 2);width:calc(100vw - var(--sbw,0px));background:var(--ink)}
/* (1,3,1) so it outranks #wrapper .container>:first-child h1 at every width - that rule has
   a <=640px variant later in the file, so an equal-specificity override would lose there. */
#wrapper .container .mcd .mcdHeader h1,#wrapper .container .row>.page-head h1{position:static;left:auto;width:auto;max-width:none;margin:0;padding:0;background:none;color:#fff;text-align:center;font-size:clamp(26px,3.6vw,36px)}
.container .mcdHeader h3,.container .page-head .page-sub{color:#efe9d9;font-weight:500;text-align:center;margin:10px 0 0;font-family:var(--sans);font-size:17px;letter-spacing:0}
.container .page-head .page-sub:empty{display:none}
/* the crumbtrail as eyebrow text. messagecenter.css clamps it to height:65px;overflow:hidden,
   which has to be undone or it reserves a fixed block inside the band. */
.container .mcdHeader .mcCrumbTrail,.container .page-head .page-crumb{height:auto;overflow:visible;text-align:center;margin:0 0 16px;font-family:var(--sans);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.container .mcdHeader .mcCrumbTrail a,.container .page-head .page-crumb a{font-size:11px;line-height:1.5;padding:0;margin:0;letter-spacing:inherit;color:var(--gold)}
.container .mcdHeader .mcCrumbTrail a span,.container .page-head .page-crumb a span{color:inherit}
.container .mcdHeader .mcCrumbTrail a:hover,.container .page-head .page-crumb a:hover{color:#fff;text-decoration:underline}
.container .mcdHeader>.mcCrumbTrail>span,.container .page-head>.page-crumb>span{color:rgba(255,255,255,.4)}
@media(max-width:900px){.container .mcdHeader,.container .page-head{padding:40px 20px 34px;margin-bottom:30px}}
@media(max-width:640px){.container .mcdHeader,.container .page-head{margin-top:-36px}}

/* Body copy size on the Message Center body ITSELF, not just on <p>. CMS authors often
   write copy as bare text separated by <br /> (Se-Habla-Espanol-21 does), which never
   matches .container p and fell through to the 14px base - visibly smaller than the pages
   whose copy sits in <p> or inside .container-full rows. Setting it here covers bare text,
   <p> and <li> alike. Scoped to .mcdBody on purpose: .container li would also hit the
   Telerik tab strip on search.aspx. Must sit BEFORE .mcdtype6 .mcdBody (same specificity),
   which restyles the testimonial page as italic serif. */
.container .mcdBody{font-family:var(--sans);font-size:16px;line-height:1.7;color:var(--ink-soft)}
.container .mcdBody ul,.container .mcdBody ol{margin:0 0 16px;padding-left:22px}
.container .mcdBody li{margin-bottom:6px}

/* ===== TESTIMONIAL DETAIL PAGE  (/page/<slug>-<id>.aspx for Testimonials) =====
   The mcDetail control emits `mcd<ContentID>` (mcd1, mcd2...), which says nothing about the
   category - so MessageCenterDetail.aspx.vb stamps `mcdtype<TypeX>` on the .container
   wrapper instead. Everything below is scoped to .mcdtype6 and cannot affect any other
   Message Center category. Update the number here, in that code-behind, and in the page's
   script if the Testimonials category id ever changes.
   Plain page treatment (no card / no background) - the h1 stays and the page script
   retitles it to the category name, since the record headline repeats in the body. */
/* CKEditor stamps a fixed pixel size on CMS images (style="width:2121px;height:1414px").
   Bootstrap's img{max-width:100%} caps the WIDTH, but the inline HEIGHT survives, so a photo
   renders squashed (820x1414 instead of 820x547). Cap the width and let height follow the
   ratio. Generic to every Message Center body; the .container-full image rules are more
   specific and keep their object-fit treatment. */
.mcdBody img{max-width:100%!important;height:auto!important}
/* the testimonial's photo, beneath the review */
.mcdtype6 .mcdBody img{display:block;margin:26px auto 0;border-radius:14px}
.mcdtype6 .mcd{max-width:820px;margin:0 auto}
.mcdtype6 .mcdBody{font-family:var(--serif);font-size:21px;font-style:italic;line-height:1.55;color:var(--ink);padding:0}
/* 5 gold stars above the review */
.mcdtype6 .tst-stars{color:var(--gold);font-size:16px;letter-spacing:2px;margin-bottom:16px}
/* SubHead (client name) is moved BELOW the review text by the page script; the rule above
   it is the separating line the client asked to keep. */
.mcdtype6 .tst-attrib{margin-top:26px;padding-top:22px;border-top:1px solid var(--line);font-family:var(--sans);font-size:16px;font-weight:600;font-style:normal;color:var(--ink)}
.mcdtype6 .tst-attrib span{display:block;font-weight:400;font-size:13.5px;color:var(--ink-soft);margin-top:2px}
@media(max-width:640px){
  .mcdtype6 .mcdBody{font-size:18px}
}

/* --- Testimonial rotator breakpoints (kept separate from the 1300px nav breakpoint) ---
   The cards area is capped at 980px inside .wrap (max 1240px, 32px padding), so the arrows
   at left/right:-58px only have room while the viewport is wide enough:
     Arrows overlay the cards at every width, so no clearance breakpoint is needed.
     <900px    one card at a time - MUST match the slick responsive breakpoint in
               default.aspx, otherwise the slicked and un-slicked states disagree. */
@media(max-width:900px){
  .tst-rotator:not(.slick-initialized){grid-template-columns:1fr}
}

/* ===== RESPONSIVE ===== */
/* Switch to the hamburger below 1300px — the full 7-item menu + logo + button needs
   more room than that, so it would otherwise overflow (logo pushed out, button hanging). */
@media(max-width:1300px){
  /* header stays side-by-side (logo left, hamburger right) like nolanproperties; the
     logo keeps its full size (it no longer shrinks/disappears when you scale down) */
  .headbar{min-height:0;padding:14px 28px}
  #superfish_menu{display:none}
  .nav-cta .btn2{display:none}
  #slicknav_holder{display:block}
  /* menu.css hides .slicknav_menu until its own ~992px breakpoint; force it visible across
     the whole hamburger range so the hamburger doesn't vanish between ~992px and 1300px */
  .slicknav_menu{display:block}
  /* opened menu is a compact card anchored under the hamburger (not full-width) */
  .slicknav_nav{position:absolute;top:calc(100% - 2px);right:28px;left:auto;width:300px;max-width:calc(100vw - 48px);margin:0;z-index:60}
  .hero-rotator,.hero-rotator .slick-list,.hero-rotator .slick-track,.hero-slide{height:auto;min-height:64vh}
  .fgrid{grid-template-columns:1fr 1fr;gap:36px}
  .grid3,.svc-grid,.tst-grid{grid-template-columns:1fr}
  .about-grid{grid-template-columns:1fr;gap:44px}
  /* single-column widths: the team photo is a 1184x770 group shot - a fixed-height cover box
     cropped ~40% of it on a phone, cutting people off. Natural ratio, full width instead. */
  .about-grid .imgwrap img{height:auto}
  .city-list{columns:3}
}
@media(max-width:640px){
  .wrap{padding:0 20px}
  #wrapper .container{padding-top:36px;padding-bottom:48px}
  /* the band pull-ups must match the reduced padding above, or the band tucks 20px
     under the sticky header and clips the title */
  #wrapper .container>:first-child h1{margin-top:-36px}
  .container .its_HeaderArea{margin-top:-36px}
  /* stack the top bar so the tagline and phone number aren't crammed on one line */
  .topbar .wrap{flex-direction:column;height:auto;gap:4px;padding:8px 20px;text-align:center}
  .topbar .r{justify-content:center;flex-wrap:wrap;gap:16px}
  .search{flex-direction:column}
  .search .field{border-right:none;border-bottom:1px solid var(--line)}
  .fgrid{grid-template-columns:1fr}
  .city-list{columns:2}
}
