/* ---------- Base ---------- */
:root{
  --black:#12100e;
  --near-black:#181512;
  --charcoal:#211d18;
  --gold:#cda75d;
  --gold-light:#e8cf9c;
  --cream:#f5efe2;
  --cream-dim:#cfc7b6;
  --serif:'Cormorant Garamond', serif;
  --script:'Alex Brush', cursive;
  --sans:'Jost', sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0;}

html{scroll-behavior:smooth;}

body{
  font-family:var(--sans);
  background:var(--cream);
  color:var(--charcoal);
  line-height:1.6;
  overflow-x:hidden;
}

h1,h2,h3{font-family:var(--serif);font-weight:600;color:var(--near-black);}

img{max-width:100%;display:block;}

a{color:inherit;text-decoration:none;}

.eyebrow{
  font-family:var(--sans);
  text-transform:uppercase;
  letter-spacing:0.2em;
  font-size:0.75rem;
  color:var(--gold);
  font-weight:600;
  margin-bottom:0.75rem;
}
.eyebrow-light{color:var(--gold-light);}

.section-sub{
  max-width:600px;
  color:var(--cream-dim);
  font-size:1.05rem;
}
.intro-text .section-sub, .location .section-sub{color:#5c5648;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  padding:0.85rem 2rem;
  border-radius:2px;
  font-family:var(--sans);
  font-size:0.85rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  font-weight:500;
  border:1px solid transparent;
  cursor:pointer;
  transition:all 0.25s ease;
}
.btn-gold{
  background:var(--gold);
  color:var(--black);
}
.btn-gold:hover{background:var(--gold-light);}
.btn-outline{
  border-color:rgba(245,239,226,0.6);
  color:var(--cream);
}
.btn-outline:hover{border-color:var(--gold);color:var(--gold);}
.btn-outline-dark{
  border-color:var(--gold);
  color:var(--near-black);
  background:transparent;
}
.btn-outline-dark:hover{background:var(--gold);color:var(--black);}

/* ---------- Topbar ---------- */
.topbar{
  background:var(--black);
  color:var(--cream-dim);
  text-align:center;
  font-size:0.75rem;
  letter-spacing:0.05em;
  padding:0.5rem 1rem;
}
.topbar-sep{margin:0 0.6rem;color:var(--gold);}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(18,16,14,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(205,167,93,0.2);
}
.header-inner{
  max-width:1200px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:0.7rem 1.5rem;
}
.brand{display:flex;align-items:center;gap:0.6rem;}
.brand-logo{width:44px;height:44px;border-radius:50%;object-fit:cover;}
.brand-text{
  font-family:var(--serif);
  color:var(--cream);
  font-size:1.4rem;
  line-height:1;
  display:flex;flex-direction:column;
}
.brand-text small{
  font-family:var(--sans);
  font-size:0.55rem;
  letter-spacing:0.25em;
  color:var(--gold);
  text-transform:uppercase;
  margin-top:2px;
}
.main-nav{display:flex;align-items:center;gap:2rem;}
.main-nav a{
  color:var(--cream-dim);
  font-size:0.85rem;
  letter-spacing:0.03em;
  transition:color 0.2s;
}
.main-nav a:hover{color:var(--gold);}
.main-nav .nav-cta{
  border:1px solid var(--gold);
  color:var(--gold);
  padding:0.5rem 1.2rem;
  border-radius:2px;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:0.75rem;
}
.main-nav .nav-cta:hover{background:var(--gold);color:var(--black);}

.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;border:none;cursor:pointer;padding:0.5rem;
}
.nav-toggle span{width:24px;height:2px;background:var(--gold);}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:92vh;
  display:flex;align-items:center;justify-content:center;
  text-align:center;
  overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;
  background-size:cover;
  background-position:center 30%;
  transform:scale(1.05);
}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(12,10,8,0.75) 0%, rgba(12,10,8,0.55) 40%, rgba(12,10,8,0.85) 100%);
}
.hero-content{
  position:relative;z-index:2;
  padding:2rem 1.5rem;
  max-width:800px;
}
.hero-mark{
  width:110px;height:110px;
  border-radius:50%;
  margin:0 auto 1.5rem;
  object-fit:cover;
  box-shadow:0 0 60px rgba(205,167,93,0.35);
}
.hero-title{
  font-family:var(--script);
  font-weight:400;
  color:var(--gold-light);
  font-size:5rem;
  line-height:1;
  text-shadow:0 4px 30px rgba(0,0,0,0.5);
}
.hero-title span{
  display:block;
  font-family:var(--sans);
  font-size:1rem;
  letter-spacing:0.5em;
  text-transform:uppercase;
  color:var(--cream);
  margin-top:0.8rem;
}
.hero-tag{
  color:var(--cream-dim);
  font-size:1.15rem;
  margin:1.8rem auto 2.2rem;
  font-family:var(--serif);
  font-style:italic;
}
.hero-actions{
  display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;
}
.hero-meta{
  margin-top:2.2rem;
  color:var(--cream-dim);
  font-size:0.85rem;
  letter-spacing:0.03em;
}
.hero-meta-sep{margin:0 0.7rem;color:var(--gold);}

.scroll-cue{
  position:absolute;bottom:1.8rem;left:50%;transform:translateX(-50%);
  color:var(--gold);font-size:1.4rem;
  z-index:2;
  animation:bob 2s infinite;
}
@keyframes bob{
  0%,100%{transform:translate(-50%,0);}
  50%{transform:translate(-50%,8px);}
}

/* ---------- Intro / About ---------- */
.intro{padding:6rem 1.5rem;background:var(--cream);}
.intro-inner{
  max-width:1150px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;
}
.intro-image{position:relative;}
.intro-image img{
  border-radius:4px;
  box-shadow:0 25px 50px -20px rgba(0,0,0,0.4);
}
.intro-image-badge{
  position:absolute;bottom:-1.5rem;right:-1.5rem;
  background:var(--black);color:var(--gold);
  padding:1.2rem 1.6rem;
  text-align:center;
  border-radius:4px;
  box-shadow:0 15px 30px -10px rgba(0,0,0,0.5);
}
.intro-image-badge strong{display:block;font-family:var(--serif);font-size:2rem;line-height:1;}
.intro-image-badge span{font-size:0.65rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--cream-dim);}
.intro-text h2{font-size:2.4rem;margin-bottom:1.2rem;}
.intro-text p{color:#4a4436;margin-bottom:1rem;}
.intro-points{list-style:none;margin-top:1.3rem;}
.intro-points li{
  padding-left:1.6rem;position:relative;
  color:#4a4436;margin-bottom:0.6rem;font-size:0.95rem;
}
.intro-points li::before{
  content:'\2726';
  position:absolute;left:0;color:var(--gold);font-size:0.8rem;top:0.2rem;
}

/* ---------- Services ---------- */
.services{
  background:var(--black);
  padding:6rem 1.5rem;
}
.section-head{
  max-width:700px;margin:0 auto 3.5rem;text-align:center;
}
.section-head h2{color:var(--cream);font-size:2.4rem;margin-bottom:1rem;}
.section-head .section-sub{margin:0 auto;}
.services-grid{
  max-width:1200px;margin:0 auto;
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;
}
.service-card{
  background:var(--near-black);
  border:1px solid rgba(205,167,93,0.15);
  padding:2.2rem 1.6rem;
  border-radius:6px;
  transition:transform 0.25s ease, border-color 0.25s ease;
}
.service-card:hover{
  transform:translateY(-6px);
  border-color:var(--gold);
}
.service-icon{
  font-size:1.6rem;color:var(--gold);
  margin-bottom:1rem;
}
.service-card h3{
  color:var(--cream);font-size:1.15rem;margin-bottom:0.6rem;
}
.service-card p{color:var(--cream-dim);font-size:0.88rem;}

/* ---------- Practitioner ---------- */
.practitioner{
  padding:6rem 1.5rem;
  background:var(--cream);
}
.practitioner-inner{
  max-width:1150px;margin:0 auto;
  display:grid;grid-template-columns:1.3fr 1fr;gap:4rem;align-items:center;
}
.practitioner-text h2{font-size:2.2rem;margin-bottom:0.6rem;}
.rating-line{color:var(--gold);font-weight:600;margin-bottom:1rem;letter-spacing:0.02em;}
.practitioner-text p{color:#4a4436;margin-bottom:1.3rem;}
.price-table{width:100%;border-collapse:collapse;margin-bottom:1.8rem;}
.price-table td{
  padding:0.7rem 0;
  border-bottom:1px solid rgba(0,0,0,0.08);
  color:#3a352a;
  font-size:0.95rem;
}
.price-table td span{display:block;font-size:0.75rem;color:#8a8371;}
.price-table td:last-child{text-align:right;font-family:var(--serif);font-weight:600;color:var(--near-black);font-size:1.1rem;}
.practitioner-quote{
  background:var(--black);
  padding:3rem 2.5rem;
  border-radius:6px;
  border-left:3px solid var(--gold);
}
.practitioner-quote p{
  font-family:var(--serif);
  font-style:italic;
  color:var(--cream);
  font-size:1.3rem;
  margin-bottom:1.2rem;
}
.practitioner-quote cite{color:var(--gold);font-size:0.85rem;letter-spacing:0.05em;}

/* ---------- Facilities ---------- */
.facilities{
  background:var(--charcoal);
  padding:5rem 1.5rem;
  text-align:center;
}
.facilities-grid{
  max-width:900px;margin:0 auto 2rem;
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;
}
.facility{
  background:rgba(205,167,93,0.06);
  border:1px solid rgba(205,167,93,0.2);
  padding:1.8rem 1rem;
  border-radius:6px;
}
.facility strong{
  display:block;font-family:var(--serif);color:var(--gold);font-size:1.8rem;
}
.facility span{color:var(--cream-dim);font-size:0.8rem;letter-spacing:0.02em;}
.facilities-note{
  color:var(--cream-dim);max-width:600px;margin:0 auto;font-size:0.9rem;
}

/* ---------- Location ---------- */
.location{padding:6rem 1.5rem;background:var(--cream);}
.location-inner{
  max-width:1150px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1.2fr;gap:4rem;align-items:center;
}
.location-info h2{font-size:2.2rem;margin-bottom:1rem;}
.location-address{color:#4a4436;font-size:1.05rem;margin-bottom:1.5rem;}
.hours-table{width:100%;margin-bottom:2rem;border-collapse:collapse;}
.hours-table td{
  padding:0.5rem 0;
  border-bottom:1px solid rgba(0,0,0,0.08);
  font-size:0.9rem;color:#3a352a;
}
.hours-table td:last-child{text-align:right;color:var(--gold);font-weight:600;}
.location-map{
  height:420px;border-radius:6px;overflow:hidden;
  box-shadow:0 25px 50px -20px rgba(0,0,0,0.35);
}

/* ---------- Contact ---------- */
.contact{
  background:var(--black);
  padding:6rem 1.5rem;
  text-align:center;
}
.contact-inner{max-width:640px;margin:0 auto;}
.contact h2{color:var(--cream);font-size:2.2rem;margin-bottom:1rem;}
.contact .section-sub{margin:0 auto 2.5rem;}
.contact-form{text-align:left;display:flex;flex-direction:column;gap:1rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.contact-form input,.contact-form textarea{
  width:100%;
  background:var(--near-black);
  border:1px solid rgba(205,167,93,0.25);
  color:var(--cream);
  padding:0.9rem 1rem;
  border-radius:4px;
  font-family:var(--sans);
  font-size:0.9rem;
  resize:vertical;
}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#8a8371;}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--gold);}
.contact-form button{margin-top:0.5rem;align-self:flex-start;}
.form-note{color:var(--gold);margin-top:1rem;font-size:0.9rem;}

/* ---------- Footer ---------- */
.site-footer{
  background:var(--near-black);
  padding:3.5rem 1.5rem 2rem;
  text-align:center;
  border-top:1px solid rgba(205,167,93,0.15);
}
.footer-inner{max-width:700px;margin:0 auto;}
.footer-inner .brand{display:inline-flex;margin-bottom:1rem;}
.footer-inner p{color:var(--cream-dim);font-size:0.9rem;margin-bottom:1rem;}
.footer-nav{display:flex;gap:1.5rem;justify-content:center;margin-bottom:1.5rem;flex-wrap:wrap;}
.footer-nav a{color:var(--cream-dim);font-size:0.85rem;}
.footer-nav a:hover{color:var(--gold);}
.footer-copy{font-size:0.75rem;color:#6a6455;}

/* ---------- Responsive ---------- */
@media(max-width:960px){
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .facilities-grid{grid-template-columns:repeat(2,1fr);}
  .intro-inner,.practitioner-inner,.location-inner{grid-template-columns:1fr;}
  .practitioner-quote{order:-1;}
}

@media(max-width:768px){
  .main-nav{
    position:fixed;top:0;right:0;bottom:0;
    width:70%;max-width:320px;
    background:var(--black);
    flex-direction:column;
    align-items:flex-start;
    padding:6rem 2rem 2rem;
    gap:1.5rem;
    transform:translateX(100%);
    transition:transform 0.3s ease;
  }
  .main-nav.open{transform:translateX(0);}
  .nav-toggle{display:flex;}
  .hero-title{font-size:3.2rem;}
  .hero-title span{font-size:0.75rem;letter-spacing:0.35em;}
  .form-row{grid-template-columns:1fr;}
  .intro-image-badge{right:0.5rem;}
}
