/* ================================================================
   Barré & Company Realty LLC — Flagship Site
   thebarreco.com · Arizona Real Estate · All Services
   ================================================================ */
:root {
  --bg:#0E0E0E; --bg-cream:#F4EFE8; --bg-cream-soft:#EAE3D8;
  --ink:#111111; --ink-soft:#2A2A2A; --paper:#FAF7F2;
  --line:rgba(255,255,255,0.12); --line-dark:rgba(0,0,0,0.12);
  --gold:#C4A96D; --gold-soft:#B89559;
  --muted:#8A8A8A; --muted-dark:#6A6258;
  --serif:"Cormorant Garamond","Times New Roman",serif;
  --sans:"DM Sans",-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:"DM Mono",ui-monospace,Menlo,monospace;
  --maxw:1280px; --pad-x:clamp(20px,5vw,64px);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}

/* ── Utilities ── */
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);margin-bottom:24px;}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:16px 32px;font-family:var(--mono);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;font-weight:500;border:1px solid transparent;cursor:pointer;transition:all 0.3s ease;text-align:center;}
.btn--gold{background:var(--gold);color:#1a1a1a;} .btn--gold:hover{background:var(--gold-soft);transform:translateY(-1px);}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,0.6);} .btn--ghost:hover{background:rgba(255,255,255,0.08);}
.btn--dark{background:var(--ink);color:#fff;} .btn--dark:hover{background:#2a2a2a;}
.btn--full{width:100%;padding:18px 24px;} .btn--lg{padding:20px 44px;font-size:13px;}

/* ══════════ NAV ══════════ */
.nav{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:16px var(--pad-x);z-index:100;transition:background 0.3s ease,backdrop-filter 0.3s ease;}
.nav.is-scrolled{background:rgba(14,14,14,0.93);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
.nav__brand{display:flex;align-items:center;gap:12px;color:#fff;}
.nav__monogram{font-family:var(--serif);font-size:24px;font-weight:500;color:var(--gold);flex-shrink:0;}
.nav__name{font-family:var(--serif);font-size:14px;letter-spacing:0.03em;color:#fff;line-height:1.2;}
.nav__name--sub{display:block;font-family:var(--mono);font-size:9px;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);}
.nav__lic{display:block;font-family:var(--mono);font-size:8px;letter-spacing:0.12em;text-transform:uppercase;color:rgba(255,255,255,0.38);margin-top:3px;}
.nav__links{display:none;gap:28px;}
.nav__links a{font-family:var(--mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(255,255,255,0.82);transition:color 0.2s;}
.nav__links a:hover{color:var(--gold);}
.nav__cta{font-family:var(--mono);font-size:11px;letter-spacing:0.16em;background:var(--gold);color:#1a1a1a;padding:10px 18px;font-weight:500;transition:background 0.2s;flex-shrink:0;}
.nav__cta:hover{background:var(--gold-soft);}
@media(min-width:1024px){.nav__links{display:flex;}}

/* ══════════ HERO ══════════ */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;color:#fff;padding:100px var(--pad-x) 60px;overflow:hidden;}
.hero__media{position:absolute;inset:0;z-index:0;}
.hero__overlay{position:absolute;inset:0;background:linear-gradient(165deg,rgba(14,14,14,0.5) 0%,rgba(14,14,14,0.2) 40%,rgba(14,14,14,0.9) 100%);}
.hero__inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;width:100%;animation:rise 1.2s cubic-bezier(0.2,0.8,0.2,1) both;}
@keyframes rise{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}
.hero__title{font-family:var(--serif);font-weight:500;font-size:clamp(40px,7vw,96px);line-height:1.02;letter-spacing:-0.015em;margin-bottom:28px;max-width:16ch;}
.hero__title em{font-style:italic;font-weight:400;color:var(--gold);}
.hero__sub{font-size:clamp(16px,1.8vw,20px);line-height:1.55;max-width:56ch;color:rgba(255,255,255,0.88);margin-bottom:44px;font-weight:300;}
.hero__ctas{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:60px;}
.trust{list-style:none;display:flex;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:28px;max-width:860px;}
.trust li{flex:1 1 160px;display:flex;flex-direction:column;gap:6px;padding-right:24px;border-right:1px solid var(--line);}
.trust li:last-child{border-right:none;}
.trust__num{font-family:var(--serif);font-size:24px;font-weight:500;color:var(--gold);}
.trust__lbl{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(255,255,255,0.6);}
.hero__scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);width:1px;height:56px;background:rgba(255,255,255,0.22);z-index:3;}
.hero__scroll span{position:absolute;top:0;left:0;width:100%;height:20px;background:var(--gold);animation:scrollLine 2.4s ease-in-out infinite;}
@keyframes scrollLine{0%{top:0;opacity:1;}100%{top:56px;opacity:0;}}

/* ══════════ BLOCKS ══════════ */
.block{padding:clamp(72px,12vw,140px) var(--pad-x);}
.block--dark{background:var(--bg);color:#fff;}
.block--cream{background:var(--bg-cream);color:var(--ink);}
.block__inner{max-width:var(--maxw);margin:0 auto;}
.block__title{font-family:var(--serif);font-weight:500;font-size:clamp(34px,5.5vw,62px);line-height:1.06;letter-spacing:-0.01em;margin-bottom:28px;max-width:22ch;}
.block__title em{font-style:italic;font-weight:400;color:var(--gold);}
.block__lede{font-size:clamp(16px,1.8vw,19px);line-height:1.6;max-width:64ch;margin-bottom:56px;font-weight:300;}
.block--dark .block__lede{color:rgba(255,255,255,0.78);}
.block--cream .block__lede{color:var(--ink-soft);}

/* ══════════ SERVICES MOSAIC ══════════ */
.services-mosaic{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;}
@media(max-width:900px){.services-mosaic{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.services-mosaic{grid-template-columns:1fr;}}

.svc-card{display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid var(--line-dark);transition:transform 0.3s ease;text-decoration:none;color:var(--ink);}
.svc-card:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(0,0,0,0.12);}
.svc-card--large{grid-column:span 2;}
@media(max-width:600px){.svc-card--large{grid-column:span 1;}}

.svc-card__img{height:220px;overflow:hidden;flex-shrink:0;}
.svc-card--large .svc-card__img{height:280px;}
.svc-card__img img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 8s ease;}
.svc-card:hover .svc-card__img img{transform:scale(1.04);}

.svc-card__body{padding:28px;display:flex;flex-direction:column;gap:10px;flex:1;}
.svc-card__num{font-family:var(--mono);font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);}
.svc-card__body h3{font-family:var(--serif);font-size:26px;font-weight:500;letter-spacing:-0.005em;color:var(--ink);}
.svc-card__body p{font-size:14px;line-height:1.6;color:var(--ink-soft);font-weight:300;flex:1;}
.svc-card__cta{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold);margin-top:8px;align-self:flex-start;}

/* ══════════ MARKETS ══════════ */
.market-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:48px;height:clamp(120px,16vw,220px);}
@media(max-width:600px){.market-strip{grid-template-columns:1fr 1fr;height:180px;}}
.market-strip__img{overflow:hidden;position:relative;}
.market-strip__img img{width:100%;height:100%;object-fit:cover;object-position:center;filter:brightness(0.8);transition:transform 8s ease,filter 0.3s ease;}
.market-strip__img:hover img{transform:scale(1.06);filter:brightness(1);}

.markets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);}
.mkt{background:var(--bg);padding:32px 28px;display:flex;flex-direction:column;gap:12px;}
.mkt--featured{background:#111;}
.mkt--other{background:#0a0a0a;}
.mkt__tag{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);}
.mkt h3{font-family:var(--serif);font-size:28px;font-weight:500;letter-spacing:-0.01em;}
.mkt p{font-size:14px;line-height:1.6;color:rgba(255,255,255,0.72);font-weight:300;flex:1;}
.mkt__stats{display:flex;gap:20px;padding:12px 0;border-top:1px solid var(--line);}
.mkt__stats>div{display:flex;flex-direction:column;gap:4px;}
.mkt__stats span{font-family:var(--serif);font-size:18px;font-weight:500;color:var(--gold);}
.mkt__stats small{font-family:var(--mono);font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.5);}
.mkt__cta{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--gold);padding-bottom:2px;align-self:flex-start;transition:opacity 0.2s;}
.mkt__cta:hover{opacity:0.75;}
.mkt--other h3{font-family:var(--serif);font-size:22px;font-style:italic;}
.mkt--other ul{list-style:none;display:flex;flex-direction:column;gap:8px;flex:1;}
.mkt--other li{font-size:14px;color:rgba(255,255,255,0.72);padding-left:14px;position:relative;}
.mkt--other li::before{content:"·";position:absolute;left:0;color:var(--gold);}

/* ══════════ IDX SEARCH ══════════ */
.idx-wrap{
  background:#fff;
  border:1px solid var(--line-dark);
  min-height:480px;
  padding:24px;
  margin-bottom:36px;
  position:relative;
}
.idx-wrap::before{
  content:"Loading property search...";
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--muted-dark);
  pointer-events:none;
}
.idx-fallback{
  padding:40px;
  text-align:center;
  font-size:16px;
  color:var(--ink-soft);
}
.idx-fallback a{color:var(--gold);border-bottom:1px solid var(--gold);}
.search-cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:24px;padding-top:24px;border-top:1px solid var(--line-dark);}
.search-cta-row p{font-size:17px;color:var(--ink-soft);font-weight:300;}

/* ══════════ PROPERTY MANAGEMENT ══════════ */
.pm-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:36px;}
.pm-type{background:var(--bg);padding:40px 32px;display:flex;flex-direction:column;gap:16px;}
.pm-type--str{background:#0a1810;}
.pm-type__header{display:flex;flex-direction:column;gap:6px;padding-bottom:20px;border-bottom:1px solid var(--line);}
.pm-type__label{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);}
.pm-type__fee{font-family:var(--serif);font-style:italic;font-size:24px;color:#fff;}
.pm-type ul{list-style:none;display:flex;flex-direction:column;gap:10px;flex:1;}
.pm-type li{font-size:15px;color:rgba(255,255,255,0.78);padding-left:16px;position:relative;font-weight:300;}
.pm-type li::before{content:"✦";position:absolute;left:0;color:var(--gold);font-size:8px;top:4px;}
.pm-type__markets{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.45);margin-top:8px;}
.pm-markets-img{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:48px;height:clamp(140px,16vw,240px);}
.pm-markets-img img{width:100%;height:100%;object-fit:cover;object-position:center;filter:brightness(0.8);}

/* ══════════ RELOCATION ══════════ */
.relocation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);margin-bottom:40px;}
.reloc-card{background:var(--bg-cream);padding:36px 28px;display:flex;flex-direction:column;gap:14px;}
.reloc-num{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);}
.reloc-card h4{font-family:var(--serif);font-size:24px;font-weight:500;letter-spacing:-0.005em;}
.reloc-card p{font-size:15px;line-height:1.6;color:var(--ink-soft);font-weight:300;}
.reloc-img{position:relative;height:clamp(180px,22vw,320px);overflow:hidden;margin-bottom:40px;}
.reloc-img img{width:100%;height:100%;object-fit:cover;object-position:center 60%;}
.reloc-img__caption{position:absolute;bottom:0;left:0;right:0;padding:10px 20px;font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-soft);background:rgba(244,239,232,0.88);}

/* ══════════ AUTHORITY / FIRM ══════════ */
.authority-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:56px;}
.auth-stat{padding:40px 28px;border-right:1px solid var(--line);}
.auth-stat:last-child{border-right:none;}
@media(max-width:760px){.auth-stat{border-right:none;border-bottom:1px solid var(--line);}}.auth-stat:last-child{border-bottom:none;}
.auth-stat span{font-family:var(--serif);font-size:clamp(32px,4vw,52px);font-weight:500;color:var(--gold);display:block;margin-bottom:12px;line-height:1;}
.auth-stat p{font-size:15px;line-height:1.55;color:rgba(255,255,255,0.72);font-weight:300;max-width:28ch;}

.broker-card{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start;background:rgba(196,169,109,0.06);border:1px solid rgba(196,169,109,0.2);padding:40px;margin-bottom:56px;}
.broker-card__mono{width:120px;height:120px;background:var(--bg);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:42px;font-weight:500;color:var(--gold);flex-shrink:0;}
.broker-card__info{flex:1 1 280px;display:flex;flex-direction:column;gap:8px;}
.broker-card__info h4{font-family:var(--serif);font-size:28px;font-weight:500;color:#fff;}
.broker-card__title{font-family:var(--mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);}
.broker-card__info>p{font-size:13px;font-family:var(--mono);letter-spacing:0.08em;color:rgba(255,255,255,0.5);}
.broker-card__bio{font-size:15px;line-height:1.65;color:rgba(255,255,255,0.78);font-weight:300;max-width:58ch;}
.broker-card__contact{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px;}
.broker-card__contact a{font-family:var(--mono);font-size:13px;letter-spacing:0.1em;color:var(--gold);border-bottom:1px solid var(--gold);}

.quote{font-family:var(--serif);font-style:italic;font-size:clamp(28px,4vw,48px);line-height:1.25;color:#fff;text-align:center;max-width:28ch;margin:0 auto;}
.quote::before,.quote::after{content:"";display:block;width:48px;height:1px;background:var(--gold);margin:24px auto;}

/* ══════════ CAPTURE FORM ══════════ */
.capture{background:var(--paper);padding:clamp(60px,10vw,120px) var(--pad-x);}
.capture__grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr;gap:56px;align-items:start;}
@media(min-width:900px){.capture__grid{grid-template-columns:1fr 1.1fr;gap:80px;}}
.capture__title{font-family:var(--serif);font-weight:500;font-size:clamp(34px,5vw,56px);line-height:1.06;letter-spacing:-0.01em;margin-bottom:24px;max-width:14ch;}
.capture__title em{font-style:italic;color:var(--gold);font-weight:400;}
.capture__copy{font-size:17px;line-height:1.65;color:var(--ink-soft);margin-bottom:16px;max-width:44ch;}
.capture__bullets{list-style:none;margin-bottom:32px;display:flex;flex-direction:column;gap:10px;}
.capture__bullets li{display:flex;align-items:flex-start;gap:10px;font-size:15px;color:var(--ink-soft);}
.capture__bullets span{color:var(--gold);font-size:12px;margin-top:3px;flex-shrink:0;}
.contact-direct{display:flex;flex-direction:column;gap:8px;padding-top:24px;border-top:1px solid var(--line-dark);}
.contact-direct__phone{font-family:var(--serif);font-size:32px;font-weight:500;color:var(--gold);letter-spacing:-0.01em;}
.contact-direct__email{font-family:var(--mono);font-size:13px;letter-spacing:0.1em;color:var(--ink);border-bottom:1px solid var(--gold);align-self:flex-start;}
.contact-direct__address{font-size:14px;color:var(--muted-dark);margin-top:8px;line-height:1.6;}
.capture__form{background:#fff;border:1px solid var(--line-dark);padding:clamp(28px,4vw,44px);display:grid;gap:18px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field span{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted-dark);}
.field input,.field select{font-family:var(--sans);font-size:16px;padding:12px 0;border:none;border-bottom:1px solid var(--line-dark);background:transparent;color:var(--ink);outline:none;border-radius:0;-webkit-appearance:none;appearance:none;transition:border-color 0.2s ease;}
.field input::placeholder{color:var(--muted);font-size:14px;}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px;}
.field input:focus,.field select:focus{border-bottom-color:var(--gold);}
.capture__legal{font-family:var(--mono);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted-dark);text-align:center;margin-top:4px;line-height:1.6;}

/* ══════════ FOOTER ══════════ */
.footer{background:#0a0a0a;color:rgba(255,255,255,0.7);padding:clamp(60px,8vw,100px) var(--pad-x) 32px;font-size:14px;}
.footer__top{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr;gap:48px;padding-bottom:40px;border-bottom:1px solid var(--line);}
@media(min-width:760px){.footer__top{grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;}}
.footer__monogram{font-family:var(--serif);font-size:28px;color:var(--gold);display:inline-block;margin-bottom:16px;}
.footer__name{font-family:var(--serif);font-size:20px;color:#fff;margin-bottom:6px;}
.footer__tag{font-size:13px;color:rgba(255,255,255,0.55);margin-bottom:4px;}
.footer__tag--italic{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--gold);margin-top:12px;}
.footer__col h5{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;font-weight:500;}
.footer__col-second{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);}
.footer__office-note{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.35)!important;margin-top:6px!important;}
.footer__col p{font-size:13px;line-height:1.7;color:rgba(255,255,255,0.7);margin-bottom:4px;}
.footer__col a{border-bottom:1px solid transparent;transition:border-color 0.2s;}
.footer__col a:hover{border-bottom-color:var(--gold);}
.eho{color:var(--gold)!important;font-weight:500;}
.footer__legal{max-width:var(--maxw);margin:32px auto 0;font-size:11px;line-height:1.7;color:rgba(255,255,255,0.38);font-family:var(--mono);letter-spacing:0.02em;}

/* ══════════ STICKY CTA ══════════ */
.sticky-cta{position:fixed;bottom:16px;left:16px;right:16px;z-index:90;display:flex;align-items:center;justify-content:center;background:var(--gold);color:#1a1a1a;padding:16px 20px;font-family:var(--mono);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;font-weight:500;box-shadow:0 8px 28px rgba(0,0,0,0.25);opacity:0;transform:translateY(20px);transition:opacity 0.3s ease,transform 0.3s ease;pointer-events:none;}
.sticky-cta.is-visible{opacity:1;transform:translateY(0);pointer-events:auto;}
@media(min-width:760px){.sticky-cta{display:none;}}

/* ══════════ SCROLL REVEAL ══════════ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity 0.9s cubic-bezier(0.2,0.8,0.2,1),transform 0.9s cubic-bezier(0.2,0.8,0.2,1);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important;scroll-behavior:auto!important;}}
