
:root{
  --cream:#f3efeb;
  --paper:#f7f3ef;
  --paper-2:#efe6dd;
  --tan:#bd8f68;
  --tan-dark:#986d4d;
  --brown:#4b372c;
  --text:#5d4738;
  --line:#d6c6b8;
  --shadow:0 10px 24px rgba(75,55,44,.08);
  --radius:6px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Montserrat",Arial,sans-serif;
  background:
    linear-gradient(rgba(247,243,239,.96), rgba(243,237,231,.98)),
    radial-gradient(circle at top left, rgba(189,143,104,.06), transparent 24%);
  color:var(--text);
  line-height:1.6;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.container{width:min(1180px,92%);margin:0 auto}

.site-header{
  position:sticky;top:0;z-index:40;
  background:rgba(247,243,239,.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:52px;width:auto}
.brand-text{
  font-family:"Playfair Display",Georgia,serif;
  color:var(--tan);
  font-size:1.32rem;
  font-weight:600;
}
.nav-links a.active,.nav-links a:hover{
  border-color:var(--tan-dark);
  color:var(--brown);
}
.btn{
  display:inline-block;
  padding:12px 22px;
  border-radius:var(--radius);
  background:linear-gradient(180deg,var(--tan),var(--tan-dark));
  color:#fff;
  font-weight:600;
  box-shadow:var(--shadow);
}
.btn.alt{background:#4a3428}
.page{padding:18px 0 32px}

.hero{
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid var(--line);
}
.hero-top{
  min-height:430px;
  display:grid;
  grid-template-columns:1fr 1.08fr;
  background:
    linear-gradient(rgba(80,56,40,.48), rgba(80,56,40,.48)),
    linear-gradient(180deg,#9f744f 0%, #8b6243 100%);
}
.hero-copy{
  padding:56px 48px;
  color:#fff9f3;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.hero-copy h1{
  margin:0 0 10px;
  font-family:"Playfair Display",Georgia,serif;
  font-size:clamp(2.5rem,4vw,4rem);
  line-height:1.02;
  font-weight:500;
}
.hero-copy p{max-width:520px;margin:0 0 18px}
.hero-copy .kicker{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:1.18rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-bottom:14px;
}
.hero-art{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 70% 20%, rgba(255,255,255,.32), transparent 18%),
    linear-gradient(180deg,#d8bfab 0%, #b58862 100%);
}
.hero-art::before{
  content:"";
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 80% 18%, rgba(255,255,255,.32), transparent 18%),
    linear-gradient(rgba(243,231,218,.54), rgba(243,231,218,.54));
}
.hero-scene{
  position:absolute; inset:0;
  display:grid; place-items:center;
}
.hero-silhouette{
  width:min(78%,520px);
  height:min(78%,320px);
  border-radius:30px;
  opacity:.18;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.55), transparent 18%),
    linear-gradient(135deg,#fff 0%, rgba(255,255,255,.25) 55%, rgba(255,255,255,.05) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);
}
.hero-bottom-bar{
  background:linear-gradient(180deg,#b88863 0%, #b3835d 100%);
  height:74px;
}

.section{padding:42px 0}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}
.card{
  background:rgba(255,253,251,.78);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.about-preview{padding:28px 34px}
.about-preview h2,.center-title h2,.cta-title,.page-title{
  font-family:"Playfair Display",Georgia,serif;
  color:var(--brown);
  font-weight:600;
}
.about-preview .eyebrow,.center-eyebrow{
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.75rem;
  color:var(--tan);
  font-weight:700;
}
.circle-photo{
  width:min(340px,90%);
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:50%;
  margin:0 auto;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:#e7ddd3;
}
.circle-photo img{
  width:100%;height:100%;object-fit:cover;
}
.bullets{margin:18px 0 0;padding:0;list-style:none}
.bullets li{margin:10px 0;padding-left:24px;position:relative}
.bullets li::before{content:"◌";position:absolute;left:0;color:var(--tan)}

.services-wrap{
  padding:42px 0 22px;
  background:linear-gradient(180deg,#b78761 0%, #b48460 100%);
  border-top:1px solid #b17d56;
  border-bottom:1px solid #b17d56;
}
.center-title{text-align:center;color:#fffdfb}
.center-title .center-eyebrow{color:#f6e7d9}
.center-title h2{
  margin:.3rem 0 1.25rem;
  font-size:clamp(2rem,3vw,2.8rem);
  font-weight:500;
}
.service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.service-card{
  background:rgba(255,252,248,.98);
  border:1px solid rgba(255,255,255,.35);
  box-shadow:var(--shadow);
}
.service-card img{
  width:100%;
  aspect-ratio:1/.82;
  object-fit:cover;
}
.service-body{padding:14px 16px 18px}
.service-label{
  display:flex;
  justify-content:space-between;
  font-size:.78rem;
  color:#6f5a4c;
}
.service-title{
  margin:.45rem 0 .4rem;
  font-family:"Playfair Display",Georgia,serif;
  font-size:1.22rem;
  color:var(--brown);
}
.small-note{font-size:.92rem;color:#6f5a4c}

.cta-band{
  margin-top:26px;
  background:
    linear-gradient(rgba(60,40,29,.58), rgba(60,40,29,.58)),
    linear-gradient(180deg,#6e4f3c 0%, #533a2d 100%);
  color:#fff;
  text-align:center;
  padding:48px 22px;
  box-shadow:var(--shadow);
}
.cta-band .cta-title{
  color:#fff;
  font-size:clamp(2rem,3vw,3rem);
  margin:0 0 10px;
}

.page-hero{
  min-height:220px;
  display:grid;
  place-items:center;
  text-align:center;
  color:#fff;
  background:
    linear-gradient(rgba(90,63,45,.48), rgba(90,63,45,.48)),
    linear-gradient(180deg,#bb8d67 0%, #9f734f 100%);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.page-hero h1{
  font-family:"Playfair Display",Georgia,serif;
  font-size:clamp(2.3rem,4vw,4rem);
  font-weight:500;
  margin:0;
}

.stats{
  margin-top:24px;
  background:
    linear-gradient(rgba(60,40,29,.68), rgba(60,40,29,.68)),
    linear-gradient(180deg,#5b4031 0%, #432e22 100%);
  color:#fff;
  padding:26px 0;
}
.stats-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  text-align:center;
}
.stats-grid h3{
  margin:0;
  font-family:"Playfair Display",Georgia,serif;
  font-size:2rem;
}
.stats-grid p{
  margin:.2rem 0 0;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:.7rem;
}

.clients{
  padding:40px 0;
  text-align:center;
  background:linear-gradient(rgba(248,242,234,.92), rgba(248,242,234,.92));
}
.clients h2{
  font-family:"Playfair Display",Georgia,serif;
  color:var(--tan);
  margin:0 0 10px;
}
.clients .avatar{
  width:72px;height:72px;border-radius:50%;overflow:hidden;
  margin:22px auto 0;border:1px solid var(--line)
}
.clients .avatar img{width:100%;height:100%;object-fit:cover}

.membership-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.contact-grid{
  display:grid;
  grid-template-columns:1.2fr .9fr;
  gap:0;
}
.contact-left .service-card{height:100%}
.contact-card{
  background:rgba(255,253,251,.95);
  border-left:1px solid var(--line);
  padding:26px 24px;
}
.contact-card h3{
  font-family:"Playfair Display",Georgia,serif;
  color:var(--brown);
  margin-top:0;
}
.contact-list{list-style:none;padding:0;margin:18px 0}
.contact-list li{margin:14px 0}
.form-group{margin-bottom:12px}
.form-group label{
  display:block;
  font-size:.85rem;
  font-weight:600;
  margin-bottom:6px;
}
.form-group input,.form-group textarea{
  width:100%;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:6px;
  font:inherit;
  background:#fffdfa;
}
.form-group textarea{min-height:130px;resize:vertical}

.faq-list{max-width:780px}
.faq-box{
  margin-bottom:12px;
  background:rgba(255,253,251,.92);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.faq-question{
  width:100%;
  padding:16px 18px;
  border:none;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font:inherit;
  cursor:pointer;
  color:var(--brown);
  font-weight:600;
}
.faq-answer{display:none;padding:0 18px 18px}
.faq-box.active .faq-answer{display:block}

.site-footer{
  margin-top:28px;
  padding:26px 0;
  border-top:1px solid var(--line);
  background:rgba(247,243,239,.96)
}
.footer-wrap{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.footer-brand{display:flex;align-items:center;gap:12px}
.footer-brand img{height:44px}
.footer-links{display:flex;gap:14px;flex-wrap:wrap;font-size:.9rem}

@media (max-width:980px){
  .hero-top,.grid-2,.service-grid,.membership-grid,.stats-grid,.contact-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
      .hero-copy,.about-preview,.contact-card{padding:22px}
}


.pricing-section{
  background:linear-gradient(rgba(248,242,234,.82), rgba(248,242,234,.82));
}
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.pricing-card{
  position:relative;
  background:rgba(255,253,251,.96);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  padding:28px 24px;
  border-radius:8px;
}
.pricing-card.featured{
  border:2px solid var(--tan);
  transform:translateY(-6px);
}
.pricing-badge{
  position:absolute;
  top:-12px;
  right:18px;
  background:linear-gradient(180deg,var(--tan),var(--tan-dark));
  color:#fff;
  font-size:.74rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:6px 10px;
  border-radius:999px;
  box-shadow:var(--shadow);
}
.pricing-label{
  color:var(--tan);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.76rem;
  font-weight:700;
  margin-bottom:10px;
}
.pricing-card h3{
  font-family:"Playfair Display",Georgia,serif;
  color:var(--brown);
  font-size:1.7rem;
  margin:0 0 10px;
}
.price{
  font-family:"Playfair Display",Georgia,serif;
  color:var(--brown);
  font-size:2.4rem;
  line-height:1;
  margin-bottom:12px;
}
.price span{
  font-size:1rem;
  color:#7a6557;
  margin-left:4px;
}
.pricing-list{
  list-style:none;
  padding:0;
  margin:18px 0 22px;
}
.pricing-list li{
  margin:10px 0;
  padding-left:22px;
  position:relative;
}
.pricing-list li::before{
  content:"✓";
  position:absolute;
  left:0;
  color:var(--tan);
  font-weight:700;
}
@media (max-width:980px){
  .pricing-grid{grid-template-columns:1fr;}
  .pricing-card.featured{transform:none;}
}


.account-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,253,251,.9);
  box-shadow:var(--shadow);
  font-size:1.1rem;
  color:var(--brown);
}
.account-icon.active,.account-icon:hover{
  border-color:var(--tan-dark);
  color:var(--tan-dark);
}
.account-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  align-items:start;
}
@media (max-width:980px){
  .account-grid{grid-template-columns:1fr;}
}




@media (max-width: 640px){
  .brand{
    width:100%;
    justify-content:center;
  }
    }


/* Header spacing fix */
.site-header{
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(255,251,247,.97);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  min-height:92px;
}
.brand{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
  flex:0 0 auto;
}
.brand img{
  width:42px;
  height:42px;
  object-fit:contain;
}
.brand-text{
  line-height:1.1;
  white-space:nowrap;
}
.site-header nav{
  flex:1 1 auto;
  display:flex;
  justify-content:center;
}
.nav-links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:38px;
  list-style:none;
  margin:0;
  padding:0;
}
.nav-links li{
  margin:0;
  padding:0;
}
.nav-links a{
  display:inline-block;
  white-space:nowrap;
  letter-spacing:1px;
  text-transform:uppercase;
  font-size:.92rem;
}
.nav-actions{
  display:flex;
  align-items:center;
  gap:14px;
  flex:0 0 auto;
}
@media (max-width:1080px){
  .nav-wrap{
    flex-wrap:wrap;
    justify-content:center;
    padding-top:14px;
    padding-bottom:14px;
  }
  .brand{width:auto;justify-content:center;}
  .site-header nav{
    order:3;
    width:100%;
  }
  .nav-links{
    flex-wrap:wrap;
    gap:18px 24px;
  }
}
@media (max-width:640px){
  .brand,.nav-actions{
    width:100%;
    justify-content:center;
  }
  .nav-links{
    gap:14px 18px;
    font-size:.88rem;
  }
}


.split-section{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  align-items:start;
}
.split-image-card img{
  width:100%;
  height:100%;
  min-height:520px;
  object-fit:cover;
  border-radius:12px;
  box-shadow:var(--shadow);
}
.contact-form textarea{
  width:100%;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fffdfa;
  font:inherit;
  resize:vertical;
}
@media (max-width: 980px){
  .split-section{
    grid-template-columns:1fr;
  }
  .split-image-card img{
    min-height:320px;
  }
}


/* Consistent page/header width fix */
.container{
  width:min(1280px, calc(100% - 64px));
  margin-inline:auto;
}
.site-header .container.nav-wrap{
  width:min(1280px, calc(100% - 64px));
  margin-inline:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  min-height:92px;
}
.site-header nav{
  flex:1 1 auto;
  display:flex;
  justify-content:center;
}
.nav-links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:30px;
  list-style:none;
  margin:0;
  padding:0;
}
.nav-links a{
  display:inline-block;
  white-space:nowrap;
  letter-spacing:.8px;
  text-transform:uppercase;
  font-size:.92rem;
}
.nav-actions{
  display:flex;
  align-items:center;
  gap:14px;
  flex:0 0 auto;
}
@media (max-width: 900px){
  .container,
  .site-header .container.nav-wrap{
    width:min(100%, calc(100% - 32px));
  }
  .site-header .container.nav-wrap{
    flex-wrap:wrap;
    justify-content:center;
    padding-top:14px;
    padding-bottom:14px;
  }
  .site-header nav{
    order:3;
    width:100%;
  }
  .nav-links{
    flex-wrap:wrap;
    gap:16px 18px;
  }
}


/* Match contact-page header spacing on about/membership/blog */
.site-header .nav-links {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 30px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.site-header .nav-links li {
  display: list-item !important;
  margin: 0 !important;
  padding: 0 !important;
}
.site-header .nav-links a {
  display: inline-block !important;
  white-space: nowrap !important;
  letter-spacing: 0.8px !important;
  text-transform: uppercase !important;
  font-size: 0.92rem !important;
}


/* Social links */
.social-links{
  margin-top: 12px;
  display:flex;
  gap:16px;
  justify-content:center;
}
.social-links a{
  text-decoration:none;
  font-size:0.9rem;
  color:#6b4a3a;
  font-weight:500;
}
.social-links a:hover{
  text-decoration:underline;
}

/* Aesthetic social icons */
.social-links{
  margin-top: 16px;
  display:flex;
  justify-content:center;
  gap:18px;
}
.social-links a{
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#f5efe9;
  color:#6b4a3a;
  font-size:18px;
  transition:all 0.3s ease;
  box-shadow:0 4px 10px rgba(0,0,0,0.08);
}
.social-links a:hover{
  background:#6b4a3a;
  color:white;
  transform:translateY(-3px);
  box-shadow:0 6px 16px rgba(0,0,0,0.15);
}
