/* =========================================================
   Lavishomes — shared stylesheet
   Tokens: Ink #16211C · Brass #AE8A4E · Parchment #F1ECE1
           Clay #7C4A2D · Slate #2A2E2A
   Type: Fraunces (display) / Work Sans (body & UI)
   ========================================================= */

:root{
  --ink:#16211C;
  --ink-soft:#1F2E26;
  --brass:#AE8A4E;
  --brass-light:#D8C094;
  --parchment:#F1ECE1;
  --parchment-dim:#E7E0D1;
  --clay:#7C4A2D;
  --slate:#2A2E2A;
  --slate-soft:#5B6259;
  --white:#FFFFFF;
  --line: rgba(22,33,28,0.14);
  --line-light: rgba(241,236,225,0.22);
  --shadow: 0 18px 40px rgba(22,33,28,0.10);
  --radius: 2px;
  --maxw: 1240px;
  --nav-h: 84px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--parchment);
  color:var(--slate);
  font-family:'Work Sans', Arial, sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{
  font-family:'Fraunces', Georgia, serif;
  font-weight:600;
  color:var(--ink);
  line-height:1.12;
  margin:0 0 .5em;
  letter-spacing:-0.01em;
}
p{ margin:0 0 1em; max-width:62ch; }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }
section{ padding:96px 0; }
@media (max-width:720px){
  section{ padding:64px 0; }
  .container{ padding:0 20px; }
}

::selection{ background:var(--brass-light); color:var(--ink); }
:focus-visible{ outline:2px solid var(--brass); outline-offset:3px; }

.eyebrow{
  font-family:'Work Sans', sans-serif;
  font-size:13px;
  color:var(--clay);
  font-weight:600;
  margin:0 0 14px;
}
.lede{ font-size:19px; color:var(--slate-soft); max-width:56ch; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 28px;
  border-radius:var(--radius);
  font-family:'Work Sans', sans-serif;
  font-size:15px;
  font-weight:600;
  cursor:pointer;
  border:1px solid transparent;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.btn-primary{ background:var(--brass); color:var(--ink); }
.btn-primary:hover{ background:var(--brass-light); }
.btn-line{ border-color:currentColor; color:var(--ink); background:transparent; }
.btn-line:hover{ background:var(--ink); color:var(--parchment); border-color:var(--ink); }
.btn-line.on-dark{ color:var(--parchment); }
.btn-line.on-dark:hover{ background:var(--parchment); color:var(--ink); }
.btn-sm{ padding:10px 18px; font-size:13px; }

/* ---------- nav ---------- */
.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  height:var(--nav-h);
  display:flex; align-items:center;
  background:rgba(22,33,28,0);
  transition:background .35s ease, box-shadow .35s ease, height .35s ease;
}
.site-nav.solid{
  background:var(--ink);
  box-shadow:0 8px 24px rgba(0,0,0,0.14);
  height:74px;
}
.site-nav .container{
  display:flex; align-items:center; justify-content:space-between; width:100%;
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:'Fraunces', serif;
  font-size:22px;
  color:var(--parchment);
  font-weight:600;
  letter-spacing:.01em;
}
.brand span{ color:var(--brass); }
.brand-logo{
  height:34px;
  width:auto;
  display:block;
}
.nav-links{ display:flex; align-items:center; gap:34px; }
.nav-links a{
  color:rgba(241,236,225,0.82);
  font-size:14.5px;
  font-weight:500;
  position:relative;
  padding:4px 0;
}
.nav-links a::after{
  content:"";
  position:absolute; left:0; right:100%; bottom:-2px; height:1px;
  background:var(--brass);
  transition:right .25s ease;
}
.nav-links a:hover::after, .nav-links a.active::after{ right:0; }
.nav-links a.active{ color:var(--parchment); }
.nav-cta{ display:flex; align-items:center; gap:18px; }
.nav-toggle{ display:none; }

.has-drop{ position:relative; }
.dropdown{
  position:absolute; top:100%; left:0; margin-top:18px;
  background:var(--ink-soft); border:1px solid var(--line-light);
  min-width:180px; padding:10px 0;
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.has-drop:hover .dropdown, .has-drop:focus-within .dropdown{ opacity:1; visibility:visible; transform:none; }
.dropdown a{ display:block; padding:10px 18px; font-size:14px; }
.dropdown a::after{ display:none; }
.dropdown a:hover{ background:rgba(174,138,78,0.12); color:var(--brass-light); }
@media (max-width:920px){
  .dropdown{ position:static; opacity:1; visibility:visible; transform:none; background:none; border:none; margin-top:12px; padding-left:14px; }
}

@media (max-width:920px){
  .nav-links{
    position:fixed; inset:74px 0 0 0; background:var(--ink);
    flex-direction:column; justify-content:flex-start; padding:40px 32px; gap:26px;
    transform:translateX(100%); transition:transform .35s ease;
  }
  .nav-links.open{ transform:translateX(0); }
  .nav-links a{ font-size:20px; }
  .nav-cta .btn-line{ display:none; }
  .nav-toggle{
    display:flex; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px;
  }
  .nav-toggle span{ width:22px; height:2px; background:var(--parchment); display:block; }
}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:92vh;
  display:flex; align-items:flex-end;
  color:var(--parchment);
  overflow:hidden;
}
.hero-page{ min-height:56vh; align-items:flex-end; }
.hero::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(22,33,28,0.15) 0%, rgba(22,33,28,0.55) 68%, rgba(22,33,28,0.86) 100%);
  z-index:1;
}
.hero-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-content{ position:relative; z-index:2; padding-bottom:88px; width:100%; }
.hero h1{
  color:var(--white);
  font-size:clamp(38px, 6vw, 72px);
  max-width:16ch;
  margin-bottom:.3em;
}
.hero .lede{ color:rgba(241,236,225,0.86); font-size:18px; }
.hero-meta{ display:flex; gap:40px; margin-top:40px; flex-wrap:wrap; }
.hero-meta div{ border-left:1px solid rgba(241,236,225,0.35); padding-left:16px; }
.hero-meta strong{ display:block; font-family:'Fraunces',serif; font-size:26px; color:var(--brass-light); }
.hero-meta span{ font-size:13px; color:rgba(241,236,225,0.7); }
@media (max-width:720px){ .hero-meta{ gap:24px; } }

/* search bar over hero */
.search-bar{
  position:relative; z-index:2;
  margin-top:36px;
  background:var(--parchment);
  border-radius:var(--radius);
  padding:20px;
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr auto;
  gap:14px;
  box-shadow:var(--shadow);
}
.search-bar label{ display:block; font-size:11.5px; color:var(--slate-soft); margin-bottom:6px; font-weight:600; }
.search-bar select, .search-bar input{
  width:100%; border:1px solid var(--line); background:var(--white); padding:11px 12px;
  font-family:'Work Sans'; font-size:14.5px; color:var(--ink); border-radius:var(--radius);
}
@media (max-width:820px){ .search-bar{ grid-template-columns:1fr 1fr; } }

/* ---------- section headers ---------- */
.section-head{
  display:flex; align-items:flex-end; justify-content:space-between; gap:32px;
  margin-bottom:44px; flex-wrap:wrap;
}
.section-head h2{ font-size:clamp(28px,3.4vw,42px); margin:0; max-width:20ch; }

/* ---------- property card ---------- */
.card{
  border:1px solid var(--line);
  background:var(--white);
  display:flex; flex-direction:column;
  height:100%;
}
.card-media{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.card:hover .card-media img{ transform:scale(1.06); }
.card-tag{
  position:absolute; top:14px; left:14px;
  background:var(--ink); color:var(--brass-light);
  font-size:11.5px; font-weight:600; padding:6px 12px; border-radius:1px;
}
.card-status{
  position:absolute; top:14px; right:14px;
  background:var(--parchment); color:var(--ink);
  font-size:11px; font-weight:600; padding:5px 10px;
}
.card-body{ padding:22px; display:flex; flex-direction:column; gap:10px; flex:1; }
.card-price{ font-family:'Fraunces',serif; font-size:22px; color:var(--ink); }
.card-title{ font-size:16px; font-weight:600; color:var(--ink); }
.card-loc{ font-size:13.5px; color:var(--slate-soft); }
.card-specs{
  display:flex; gap:16px; margin-top:auto; padding-top:14px; border-top:1px solid var(--line);
  font-size:13px; color:var(--slate-soft);
}
.card-link{ position:absolute; inset:0; z-index:2; }

/* ---------- carousel ---------- */
.carousel-wrap{ position:relative; }
.carousel{
  display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding-bottom:8px; scrollbar-width:none;
}
.carousel::-webkit-scrollbar{ display:none; }
.carousel > .slide{
  scroll-snap-align:start; flex:0 0 auto;
  width:320px; position:relative;
}
.carousel-controls{
  display:flex; align-items:center; gap:16px; margin-top:22px; justify-content:flex-end;
}
.car-btn{
  width:44px; height:44px; border:1px solid var(--line); background:var(--white);
  display:flex; align-items:center; justify-content:center; cursor:pointer; border-radius:50%;
  transition:background .2s ease, border-color .2s ease;
}
.car-btn:hover{ background:var(--ink); border-color:var(--ink); color:var(--parchment); }
.car-count{ font-size:13px; color:var(--slate-soft); font-variant-numeric:tabular-nums; }

/* ---------- alternating feature rows ---------- */
.feature-row{
  display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
}
.feature-row.reverse .feature-media{ order:2; }
.feature-media img{ width:100%; aspect-ratio:5/4; object-fit:cover; }
.feature-text{ max-width:44ch; }
@media (max-width:860px){
  .feature-row, .feature-row.reverse .feature-media{ grid-template-columns:1fr; order:0; }
  .feature-row{ display:flex; flex-direction:column; gap:28px; }
}

/* ---------- testimonial ---------- */
.testi-slide{
  width:100%; max-width:760px;
  background:var(--white); border:1px solid var(--line); padding:44px;
}
.testi-quote{ font-family:'Fraunces',serif; font-size:24px; color:var(--ink); line-height:1.4; margin-bottom:24px; }
.testi-person{ display:flex; align-items:center; gap:14px; }
.testi-person img{ width:52px; height:52px; border-radius:50%; object-fit:cover; }
.testi-person strong{ display:block; font-size:14.5px; color:var(--ink); }
.testi-person span{ font-size:13px; color:var(--slate-soft); }

/* ---------- team ---------- */
.team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.team-card img{ aspect-ratio:3/4; object-fit:cover; width:100%; }
.team-card h3{ font-size:18px; margin:16px 0 2px; }
.team-role{ color:var(--clay); font-size:13.5px; font-weight:600; margin-bottom:6px; }
.team-years{ font-size:13px; color:var(--slate-soft); }
.team-lead{ grid-column:span 2; }
@media (max-width:920px){ .team-grid{ grid-template-columns:repeat(2,1fr); } .team-lead{ grid-column:span 2; } }
@media (max-width:560px){ .team-grid{ grid-template-columns:1fr; } .team-lead{ grid-column:span 1; } }

/* ---------- stats strip ---------- */
.stats{
  background:var(--ink); color:var(--parchment);
  display:grid; grid-template-columns:repeat(4,1fr);
}
.stats div{ padding:48px 24px; text-align:center; border-left:1px solid var(--line-light); }
.stats div:first-child{ border-left:none; }
.stats strong{ display:block; font-family:'Fraunces',serif; font-size:38px; color:var(--brass-light); }
.stats span{ font-size:13.5px; color:rgba(241,236,225,0.75); }
@media (max-width:720px){ .stats{ grid-template-columns:repeat(2,1fr); } .stats div{ border-left:none; border-top:1px solid var(--line-light); } .stats div:nth-child(1),.stats div:nth-child(2){ border-top:none; } }

/* ---------- filter bar ---------- */
.filter-bar{
  display:flex; gap:16px; flex-wrap:wrap; align-items:flex-end;
  padding:24px; background:var(--white); border:1px solid var(--line); margin-bottom:44px;
}
.filter-field{ display:flex; flex-direction:column; gap:6px; }
.filter-field label{ font-size:11.5px; font-weight:600; color:var(--slate-soft); }
.filter-field select, .filter-field input{
  border:1px solid var(--line); padding:10px 12px; font-family:'Work Sans'; font-size:14px; min-width:150px; background:var(--parchment);
}
.results-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media (max-width:920px){ .results-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .results-grid{ grid-template-columns:1fr; } }
.empty-state{ padding:60px 24px; text-align:center; color:var(--slate-soft); border:1px dashed var(--line); }

/* ---------- gallery ---------- */
.gallery-grid{ columns:3 260px; column-gap:20px; }
.gallery-grid img{ margin-bottom:20px; width:100%; cursor:zoom-in; }
.lightbox{
  position:fixed; inset:0; background:rgba(22,33,28,0.92); z-index:200;
  display:none; align-items:center; justify-content:center; padding:40px;
}
.lightbox.open{ display:flex; }
.lightbox img{ max-width:90vw; max-height:85vh; object-fit:contain; }
.lightbox-close{
  position:absolute; top:24px; right:32px; color:var(--parchment); font-size:32px; cursor:pointer; background:none; border:none;
}

/* ---------- forms ---------- */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.form-grid .full{ grid-column:1/-1; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-size:13px; font-weight:600; color:var(--ink); }
.field input, .field select, .field textarea{
  border:1px solid var(--line); padding:13px 14px; font-family:'Work Sans'; font-size:14.5px; background:var(--white); border-radius:var(--radius);
}
.field textarea{ resize:vertical; min-height:130px; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }

/* ---------- accordion (FAQ) ---------- */
.accordion-item{ border-bottom:1px solid var(--line); }
.accordion-q{
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:22px 0; display:flex; justify-content:space-between; align-items:center; gap:20px;
  font-family:'Fraunces',serif; font-size:19px; color:var(--ink);
}
.accordion-q .plus{ font-size:22px; color:var(--brass); transition:transform .25s ease; flex:0 0 auto; }
.accordion-item.open .plus{ transform:rotate(45deg); }
.accordion-a{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
.accordion-item.open .accordion-a{ max-height:400px; }
.accordion-a p{ padding-bottom:22px; color:var(--slate-soft); max-width:70ch; }

/* ---------- blog ---------- */
.post-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.post-card img{ aspect-ratio:16/10; object-fit:cover; }
.post-meta{ font-size:12.5px; color:var(--clay); font-weight:600; margin:16px 0 6px; }
.post-card h3{ font-size:19px; }
@media (max-width:920px){ .post-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){ .post-grid{ grid-template-columns:1fr; } }

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--clay); color:var(--parchment);
  padding:80px 0; text-align:center;
}
.cta-band h2{ color:var(--white); }
.cta-band .lede{ color:rgba(241,236,225,0.85); margin:0 auto 30px; }

/* ---------- footer ---------- */
footer{ background:var(--ink); color:rgba(241,236,225,0.78); padding:80px 0 30px; }
.footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; margin-bottom:60px; }
.footer-grid h4{ color:var(--parchment); font-size:14px; font-family:'Work Sans'; font-weight:600; margin-bottom:18px; }
.footer-grid li{ margin-bottom:10px; font-size:14px; }
.footer-grid a:hover{ color:var(--brass-light); }
.footer-brand{ font-family:'Fraunces',serif; font-size:24px; color:var(--parchment); margin-bottom:14px; }
.footer-bottom{
  border-top:1px solid var(--line-light); padding-top:26px;
  display:flex; justify-content:space-between; font-size:12.5px; color:rgba(241,236,225,0.55); flex-wrap:wrap; gap:10px;
}
@media (max-width:820px){ .footer-grid{ grid-template-columns:1fr 1fr; } }

/* ---------- breadcrumb ---------- */
.breadcrumb{ font-size:13px; color:rgba(241,236,225,0.75); position:relative; z-index:2; }
.breadcrumb a:hover{ color:var(--brass-light); }

/* ---------- page intro (no hero image) ---------- */
.page-band{ background:var(--ink); color:var(--parchment); padding-top:calc(var(--nav-h) + 64px); padding-bottom:64px; }
.page-band h1{ color:var(--white); font-size:clamp(34px,5vw,54px); max-width:18ch; }
.page-band .lede{ color:rgba(241,236,225,0.82); }

.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:64px; }
@media (max-width:860px){ .two-col{ grid-template-columns:1fr; gap:32px; } }

.reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }

/* =========================================================
   Animations & hover effects
   ========================================================= */

@keyframes fadeInUp{
  from{ opacity:0; transform:translateY(22px); }
  to{ opacity:1; transform:none; }
}
@keyframes fadeIn{
  from{ opacity:0; }
  to{ opacity:1; }
}
@keyframes softPop{
  0%{ opacity:0; transform:scale(.94); }
  100%{ opacity:1; transform:scale(1); }
}
@keyframes shimmerLine{
  0%{ background-position:200% 0; }
  100%{ background-position:-200% 0; }
}

/* ---- hero / page-band entrance (plays once on load, not on scroll) ---- */
.hero-content > *, .page-band .container > *{
  opacity:0;
  animation:fadeInUp .8s cubic-bezier(.22,.68,0,1.01) forwards;
}
.hero-content > *:nth-child(1), .page-band .container > *:nth-child(1){ animation-delay:.05s; }
.hero-content > *:nth-child(2), .page-band .container > *:nth-child(2){ animation-delay:.16s; }
.hero-content > *:nth-child(3), .page-band .container > *:nth-child(3){ animation-delay:.27s; }
.hero-content > *:nth-child(4), .page-band .container > *:nth-child(4){ animation-delay:.38s; }

/* ---- links & nav ---- */
.nav-links a{ transition:color .25s ease; }
.nav-links a:hover{ color:var(--parchment); }
.brand{ transition:opacity .25s ease; }
.brand:hover{ opacity:.82; }
.brand-logo{ transition:transform .4s cubic-bezier(.22,.68,0,1.01); }
.brand:hover .brand-logo{ transform:rotate(-6deg) scale(1.06); }

/* ---- buttons ---- */
.btn{
  position:relative;
  overflow:hidden;
  transform:translateY(0);
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(22,33,28,0.16); }
.btn:active{ transform:translateY(0); box-shadow:none; }
.btn-primary:hover{ background:var(--brass-light); }
.btn-line.on-dark{ color:var(--parchment); }

/* ---- cards (property listings) ---- */
.card{
  transition:transform .4s cubic-bezier(.22,.68,0,1.01), box-shadow .4s ease, border-color .4s ease;
}
.card:hover{
  transform:translateY(-8px);
  box-shadow:var(--shadow);
  border-color:var(--brass);
}
.card-media{ background:var(--parchment-dim); }
.card-media img{ transition:transform .6s cubic-bezier(.22,.68,0,1.01), opacity .5s ease; opacity:0; }
.card-media img.img-loaded{ opacity:1; }
.card:hover .card-media img{ transform:scale(1.08); }
.card-tag, .card-status{ transition:transform .35s ease; }
.card:hover .card-tag{ transform:translateX(2px); }
.card:hover .card-status{ transform:translateX(-2px); }
.card-title{ transition:color .3s ease; }
.card:hover .card-title{ color:var(--clay); }
.card-price{ transition:color .3s ease; }
.card:hover .card-price{ color:var(--brass); }

/* ---- carousel controls ---- */
.car-btn{ transition:background .25s ease, border-color .25s ease, transform .2s ease; }
.car-btn:hover{ transform:scale(1.08); }
.car-btn:active{ transform:scale(.95); }
.carousel > .slide{ transition:opacity .3s ease; }

/* ---- feature media / about images ---- */
.feature-media{ overflow:hidden; }
.feature-media img{ transition:transform .7s cubic-bezier(.22,.68,0,1.01); }
.feature-row:hover .feature-media img{ transform:scale(1.05); }

/* ---- team ---- */
.team-card{ transition:transform .4s cubic-bezier(.22,.68,0,1.01); }
.team-card:hover{ transform:translateY(-6px); }
.team-card{ overflow:hidden; }
.team-card img{ transition:transform .6s cubic-bezier(.22,.68,0,1.01), filter .4s ease; }
.team-card:hover img{ transform:scale(1.06); }
.team-role{ transition:color .3s ease; }
.team-card:hover .team-role{ color:var(--brass); }

/* ---- testimonials ---- */
.testi-slide{ transition:transform .4s ease, box-shadow .4s ease, border-color .4s ease; }
.testi-slide:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--brass-light); }
.testi-person img{ transition:transform .3s ease; }
.testi-slide:hover .testi-person img{ transform:scale(1.08); }

/* ---- blog / post cards ---- */
.post-card{ display:block; transition:transform .35s cubic-bezier(.22,.68,0,1.01); }
.post-card{ overflow:hidden; }
.post-card img{ transition:transform .6s cubic-bezier(.22,.68,0,1.01); }
.post-card:hover{ transform:translateY(-6px); }
.post-card:hover img{ transform:scale(1.06); }
.post-card h3{ transition:color .3s ease; }
.post-card:hover h3{ color:var(--clay); }

/* ---- gallery ---- */
.gallery-grid img{ transition:transform .45s cubic-bezier(.22,.68,0,1.01), filter .3s ease; }
.gallery-grid img:hover{ transform:scale(1.03); filter:brightness(1.04); }
.lightbox img{ animation:softPop .3s ease; }

/* ---- accordion ---- */
.accordion-q{ transition:color .25s ease; }
.accordion-q:hover{ color:var(--clay); }
.accordion-item{ transition:border-color .25s ease; }

/* ---- forms & filters ---- */
.field input, .field select, .field textarea,
.filter-field input, .filter-field select,
.search-bar select, .search-bar input{
  transition:border-color .25s ease, box-shadow .25s ease;
}
.field input:hover, .field select:hover, .field textarea:hover,
.filter-field input:hover, .filter-field select:hover,
.search-bar select:hover, .search-bar input:hover{
  border-color:var(--brass-light);
}
.field input:focus, .field select:focus, .field textarea:focus,
.filter-field input:focus, .filter-field select:focus,
.search-bar select:focus, .search-bar input:focus{
  outline:none;
  border-color:var(--brass);
  box-shadow:0 0 0 3px rgba(174,138,78,0.18);
}

/* ---- stats counter ---- */
.stats strong{ display:inline-block; }
.stats div{ transition:background .3s ease; }
.stats div:hover{ background:rgba(255,255,255,0.03); }

/* ---- footer ---- */
.footer-grid a{ transition:color .25s ease, padding-left .25s ease; display:inline-block; }
.footer-grid a:hover{ color:var(--brass-light); padding-left:4px; }

/* ---- section headers subtle underline draw-in ---- */
.eyebrow{ position:relative; }

/* ---- image fade-in-on-load (applied via main.js to dynamically-rendered cards) ---- */
img{ transition:opacity .5s ease; }

@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
  .hero-content > *, .page-band .container > *{ opacity:1; animation:none; }
  .card, .card-media img, .team-card, .team-card img, .post-card, .post-card img,
  .testi-slide, .feature-media img, .gallery-grid img, .btn{ transition:none; }
}
