:root{
  --cream:#fbf8f3;
  --teal:#77926f;
  --teal-deep:#5f8061;
  --white:#ffffff;
  --clay:#b8794f;
  --rule:rgba(119,146,111,0.25);
  --focus:#5f8061;
  --maxw:720px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; height:100%;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

body{
  margin:0;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  background:var(--cream);
  color:var(--teal);
  font-family:'Montserrat',-apple-system,BlinkMacSystemFont,sans-serif;
  font-weight:300;
  line-height:1.65;
  padding-inline:clamp(20px, 5vw, 64px);
}

h1,h2,h3{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:600;
  color:var(--teal);
  text-wrap:balance;
  margin:0;
}

strong, b{font-weight:600;}

a{color:var(--teal-deep); text-decoration:none;}
a:hover{color:var(--teal);}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--focus); outline-offset:2px;
}

/* ---------- home: single-screen menu ---------- */
.site-tag{
  display:block;
  padding-block:1rem 0;
  font-size:.78rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--teal-deep);
}
.menu-screen{
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  gap:2.5rem;
  max-width:1040px;
  margin-inline:auto;
  padding-block:clamp(1.4rem, 3.5vw, 2rem) clamp(1.6rem, 4vw, 2.4rem);
}
.menu-photo{
  flex:0 0 340px;
  width:340px;
  height:450px;
  overflow:hidden;
  background:var(--teal-deep);
}
.menu-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center bottom;
  display:block;
}
.menu-content{
  flex:1 1 320px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  text-align:left;
  gap:.85rem;
  padding-top:.3rem;
  max-width:560px;
}
.menu-logo{height:44px; width:auto; margin-bottom:.2rem;}
.menu-eyebrow{
  font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--clay);
}
.menu-question{
  font-size:clamp(1.8rem, 3vw + 1rem, 2.6rem);
  margin-top:.2rem;
}
.menu-options{
  display:flex;
  flex-direction:column;
  gap:1rem;
  width:100%;
  margin-top:1.5rem;
}
.menu-option{
  display:flex;
  flex-direction:column;
  gap:.3rem;
  padding:1.1rem 1.3rem;
  border-radius:16px;
  border:1px solid var(--rule);
  background:var(--white);
  text-align:left;
  transition:border-color .2s, transform .2s;
}
.menu-option:hover{border-color:var(--teal-deep); transform:translateY(-2px); color:var(--teal-deep);}
.menu-option-title{
  font-family:'Cormorant Garamond',serif;
  font-weight:600;
  font-size:1.3rem;
  color:var(--teal-deep);
}
.menu-option-sub{
  font-size:.88rem;
  color:var(--teal);
  line-height:1.5;
}
.menu-more{
  margin-top:1.4rem;
  font-size:.82rem;
  letter-spacing:.03em;
  border-bottom:1px solid var(--teal-deep);
  padding-bottom:2px;
}
@media (max-width: 720px){
  .menu-screen{flex-direction:column; align-items:center; padding-block:1.4rem 1.8rem;}
  .menu-photo{flex:0 0 auto; width:260px; height:340px;}
  .menu-content{
    align-items:center;
    text-align:center;
    max-width:none;
    padding-top:1.4rem;
  }
  .menu-more{align-self:center;}
}

/* ---------- header ---------- */
header{
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  row-gap:.75rem;
  padding-block:1.2rem;
  background:rgba(251,248,243,0.9);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--rule);
}
.brand-group{display:flex; flex-direction:column; gap:.35rem;}
.brand{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  font-family:'Cormorant Garamond',serif;
  font-size:1.1rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--teal-deep);
}
.brand img{height:44px; width:auto; display:block;}
.brand-tagline{font-size:.72rem; letter-spacing:.03em; color:var(--teal);}
header nav ul{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:clamp(1rem, 2vw, 1.75rem);
  margin:0;
  padding:0;
  font-size:.8rem;
  letter-spacing:.03em;
}
header nav a{padding:.3rem 0; border-bottom:1px solid transparent; color:var(--teal-deep);}
header nav a:hover{border-color:var(--teal-deep);}
header nav a.current{border-color:var(--teal-deep);}

main{max-width:1040px; margin-inline:auto;}
.measure{max-width:var(--maxw);}

/* ---------- hero (home) ---------- */
.hero{
  padding-block:clamp(4rem, 10vw, 7rem) clamp(3rem, 8vw, 5rem);
  background:linear-gradient(160deg, var(--teal-deep), var(--teal));
  color:var(--white);
  margin-inline:calc(-1 * clamp(20px, 5vw, 64px));
  padding-inline:clamp(20px, 5vw, 64px);
}
.hero .eyebrow{display:flex; align-items:center; gap:.7rem; font-size:.85rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:1.2rem; color:rgba(255,255,255,.85);}
.hero .eyebrow img{height:52px; width:auto; filter:brightness(0) invert(1);}
.hero h1{color:var(--white); font-size:clamp(2.2rem, 4vw + 1rem, 4rem); line-height:1.1;}
.hero p.lede{margin-top:1.4rem; max-width:56ch; color:rgba(255,255,255,.92); font-size:1.05rem;}
.hero .actions{margin-top:2.2rem; display:flex; gap:1.25rem; flex-wrap:wrap;}

.btn{
  display:inline-block;
  padding:.8rem 1.7rem;
  border-radius:999px;
  border:1px solid var(--white);
  color:var(--white);
  font-size:.85rem;
  letter-spacing:.03em;
  transition:background .2s, color .2s;
}
.btn:hover{background:var(--white); color:var(--teal-deep);}
.btn.solid{background:var(--white); color:var(--teal-deep);}
.btn.solid:hover{background:transparent; color:var(--white);}

/* ---------- sub-page hero ---------- */
.page-hero{
  padding-block:clamp(1.8rem, 4.5vw, 2.6rem) clamp(.8rem, 2vw, 1.1rem);
  border-bottom:1px solid var(--rule);
}
.page-hero .eyebrow{
  font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--teal-deep);
}
.page-hero h1{margin-top:.6rem; font-size:clamp(2rem, 3vw + 1rem, 3.2rem);}
.page-hero-sub{margin-top:.7rem; font-size:.95rem; color:var(--teal-deep);}

section{padding-block:clamp(.9rem, 2vw, 1.3rem);}
section+section{border-top:1px solid var(--rule);}

/* ---------- philosophy intro ---------- */
.intro{display:flex; flex-wrap:wrap; gap:2.5rem; align-items:flex-start;}
.intro .eyebrow{
  display:block; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--clay);
  margin-bottom:.8rem;
}
.intro h2{flex:1 1 280px;}
.intro p{flex:1 1 320px; margin-top:0; font-size:1.05rem; align-self:center;}

/* ---------- three domains ---------- */
.domains{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:2.5rem;
  margin-top:1rem;
}
.domain-icon{color:var(--clay); margin-bottom:1rem;}
.domain .tag{
  display:block; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--clay);
}
.domain h3{font-size:1.4rem; margin-top:.6rem;}
.domain p{margin-top:.9rem; font-size:.95rem;}
.domain a.more{display:inline-block; margin-top:1rem; font-size:.82rem; letter-spacing:.03em; border-bottom:1px solid var(--teal-deep);}

.about-preview{display:flex; flex-wrap:wrap; gap:2.5rem; align-items:flex-start;}

/* ---------- stub / placeholder pages ---------- */
.stub p{margin-top:1rem; max-width:60ch; font-size:1rem;}
.stub-tag{
  display:inline-block; margin-top:1.4rem; font-size:.75rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--teal-deep);
}

/* ---------- bio / origin story ---------- */
.bio-name{font-size:1.5rem; margin-bottom:.6rem;}
.bio p.measure{margin-top:1rem;}
.credential-tag{
  display:inline-block; margin-top:1.4rem; font-size:.75rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--teal-deep);
}
.origin-layout{display:flex; flex-wrap:wrap; gap:2.5rem; align-items:flex-start; margin-top:1.4rem;}
.origin-photo{
  flex:0 0 280px;
  width:280px;
  height:400px;
  overflow:hidden;
  border-radius:4px;
  background:var(--teal-deep);
}
.origin-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 15%;
  display:block;
}
.origin-text{flex:1 1 380px; max-width:620px;}
.origin-text p.measure{margin-top:1rem;}
.origin-text p.measure:first-child{margin-top:0;}
@media (max-width: 720px){
  .origin-photo{flex:0 0 auto; width:220px; height:320px; margin-inline:auto;}
}
.origin-close{
  margin-top:1.2rem;
  padding-top:1.1rem;
  border-top:1px solid var(--rule);
  max-width:46ch;
  margin-inline:auto;
  text-align:center;
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.3rem, 1.5vw + 1rem, 1.6rem);
  line-height:1.5;
  color:var(--teal-deep);
}
.contact-email{
  display:block; margin-top:1.6rem; font-size:.95rem;
}
.contact-email a{border-bottom:1px solid var(--teal-deep); padding-bottom:1px;}

.terapia-layout{display:flex; flex-wrap:wrap; gap:3rem; align-items:flex-start;}
.terapia-text{flex:1 1 380px; max-width:620px;}
.terapia-form{flex:1 1 320px; max-width:640px;}
.schedule-heading{margin-top:0; font-size:1.6rem;}

/* ---------- contact form ---------- */
.schedule-copy{margin-top:.8rem; font-size:.95rem; max-width:40ch;}
.terapia-logo{display:block; margin-top:3.5rem; width:150px; height:auto; opacity:.4;}
@media (max-width: 720px){ .terapia-logo{display:none;} }
.form-cta{
  display:inline-block;
  margin-top:1.4rem;
  padding:.9rem 1.9rem;
  border-radius:999px;
  background:var(--teal-deep);
  color:var(--white);
  font-size:.9rem;
  letter-spacing:.03em;
  transition:background .2s;
}
.form-cta:hover{background:var(--teal); color:var(--white);}
form{display:grid; gap:1.1rem; max-width:520px; margin-top:2rem;}
label{display:block; font-size:.82rem; letter-spacing:.03em; margin-bottom:.4rem; color:var(--teal-deep);}
input, textarea{
  width:100%;
  padding:.75rem .9rem;
  border-radius:10px;
  border:1px solid var(--rule);
  background:var(--white);
  color:var(--teal-deep);
  font-family:inherit;
  font-size:.95rem;
}
.field-note{
  display:block;
  margin-top:.5rem;
  font-size:.78rem;
  color:var(--teal);
}
button[type="submit"]{
  justify-self:start;
  padding:.85rem 1.8rem;
  border-radius:999px;
  border:1px solid var(--teal-deep);
  background:var(--teal-deep);
  color:var(--white);
  font-size:.85rem;
  letter-spacing:.03em;
  cursor:pointer;
  transition:background .2s, color .2s;
}
button[type="submit"]:hover{background:transparent; color:var(--teal-deep);}

footer{
  border-top:1px solid var(--rule);
  padding-block:1.6rem;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.7rem;
  text-align:center;
  font-size:.82rem;
  color:var(--teal-deep);
  width:100%;
  max-width:1040px;
  margin-inline:auto;
  margin-top:auto;
}
footer nav ul{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.6rem 1.6rem;
  list-style:none;
  padding:0;
  margin:0;
  font-size:.85rem;
}
footer nav a{padding-bottom:2px; border-bottom:1px solid transparent;}
footer nav a:hover{border-color:var(--teal-deep);}
.footer-contact{max-width:40ch; font-size:.85rem;}
.footer-contact a{border-bottom:1px solid var(--teal-deep); padding-bottom:1px;}
.footer-social{color:var(--teal-deep); display:inline-flex; align-items:center; gap:.5rem; font-size:.85rem; transition:color .2s;}
.footer-social:hover{color:var(--clay);}
.footer-privacy{font-size:.78rem; border-bottom:1px solid var(--teal-deep); padding-bottom:2px;}
