:root{
  --dark:#300F31;
  --light:#502450;
  --light-soft: rgba(80,36,80,0.07);
  --bg:#FCFAFB;
  --text:#241521;
  --muted:#736476;
  --gold:#B08D57;
  --line:#e7dfe6;
  --radius:14px;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Inter', sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
}
h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:600;
  margin:0;
  letter-spacing:-0.01em;
}
a{color:inherit;}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

/* ---- Header ---- */
.site-header{
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  padding:1.1rem clamp(1.2rem,4vw,3rem);
  background:var(--dark); color:#fff;
  position:sticky; top:0; z-index:40;
}
.logo{font-family:'Fraunces',serif; font-size:1.35rem; text-decoration:none; color:#fff;}
.logo em{font-style:italic; color:var(--gold);}
.site-nav{display:flex; gap:1.6rem; flex-wrap:wrap; font-size:0.88rem;}
.site-nav a{text-decoration:none; color:rgba(255,255,255,0.82); padding-bottom:2px; border-bottom:2px solid transparent;}
.site-nav a:hover, .site-nav a.active{color:#fff; border-bottom-color:var(--gold);}
.staff-link{
  font-size:0.8rem; text-decoration:none; color:#fff;
  border:1px solid rgba(255,255,255,0.4); padding:0.45rem 0.9rem; border-radius:999px;
  white-space:nowrap;
}
.staff-link:hover{background:rgba(255,255,255,0.12);}

/* ---- Footer ---- */
.site-footer{
  background:var(--dark); color:rgba(255,255,255,0.75);
  padding:2rem clamp(1.2rem,4vw,3rem);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  font-size:0.82rem;
}
.footer-links{display:flex; gap:1.2rem;}
.footer-links a{text-decoration:none; color:rgba(255,255,255,0.75);}
.footer-links a:hover{color:#fff;}

/* ---- Page shell ---- */
.page-hero{
  background: linear-gradient(180deg, var(--light) 0%, var(--dark) 140%);
  color:#fff; padding: clamp(2.5rem,6vw,4rem) clamp(1.2rem,4vw,3rem);
}
.page-hero .eyebrow{text-transform:uppercase; letter-spacing:0.18em; font-size:0.72rem; color:#e6d3c9;}
.page-hero h1{font-size:clamp(2rem,4.5vw,3.2rem); margin-top:0.5rem; max-width:20ch;}
.page-hero p{color:rgba(255,255,255,0.82); max-width:50ch; margin-top:0.8rem;}

.container{max-width:1200px; margin:0 auto; padding: clamp(2rem,5vw,3.5rem) clamp(1.2rem,4vw,3rem);}

/* ---- Location group ---- */
.location-group{margin-bottom:3rem;}
.location-group h2{font-size:1.5rem; color:var(--light); display:flex; align-items:baseline; gap:0.8rem;}
.location-group .loc-meta{font-size:0.85rem; color:var(--muted); font-weight:400; font-family:'Inter',sans-serif;}

/* ---- Therapist card ---- */
.card-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:1.5rem;
}
.t-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  display:flex; flex-direction:column; transition:box-shadow .2s ease, transform .2s ease;
}
.t-card:hover{box-shadow:0 10px 26px rgba(48,15,49,0.14); transform:translateY(-2px);}
.t-card .photo-wrap{
  width:100%; aspect-ratio:2/3; background:var(--light-soft); position:relative; overflow:hidden;
}
.t-card .photo-wrap img{width:100%; height:100%; object-fit:cover; display:block;}
.t-card .photo-wrap .no-photo{
  display:flex; align-items:center; justify-content:center; height:100%; color:var(--light); font-family:'Fraunces',serif; font-size:2rem;
}
.t-card .flag{
  position:absolute; top:0.6rem; right:0.6rem; font-size:1.3rem;
  background:rgba(255,255,255,0.9); border-radius:6px; padding:0.15rem 0.35rem; line-height:1;
}
.t-card .available-badge{
  position:absolute; top:0.6rem; left:0.6rem; background:var(--gold); color:#fff;
  font-size:0.68rem; text-transform:uppercase; letter-spacing:0.05em; padding:0.25rem 0.5rem; border-radius:999px;
}
.t-card .body{padding:1rem 1.1rem 1.2rem; display:flex; flex-direction:column; flex:1;}
.t-card h3{font-size:1.15rem;}
.t-card .loc{font-size:0.82rem; color:var(--muted); margin-top:0.2rem;}
.t-card .sched{font-size:0.82rem; color:var(--light); margin-top:0.5rem; font-weight:500;}
.t-card .btn{
  margin-top:1rem; text-align:center; text-decoration:none;
  background:var(--light); color:#fff; padding:0.6rem 0.8rem; border-radius:8px; font-size:0.85rem;
}
.t-card .btn:hover{background:var(--dark);}

.empty-note{color:var(--muted); font-style:italic; padding:1rem 0;}

/* ---- Filter bar ---- */
.filter-bar{
  display:flex; flex-wrap:wrap; gap:0.6rem; align-items:center; margin-bottom:2rem;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1rem 1.2rem;
}
.filter-bar .label{font-size:0.85rem; color:var(--muted); margin-right:0.4rem;}
.filter-chip{
  font-size:0.82rem; border:1px solid var(--line); border-radius:999px; padding:0.4rem 0.9rem;
  cursor:pointer; background:#fff; user-select:none;
}
.filter-chip.active{background:var(--light); color:#fff; border-color:var(--light);}

@media (max-width:880px){
  .site-nav{display:none;}
}
