@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400&family=Jost:wght@300;400;500;600&display=swap');

:root{
  --white:#ffffff;
  --ivory:#faf7f4;
  --graphite:#2b2a28;
  --graphite-soft:#4a4744;
  --copper:#b47456;
  --copper-dark:#8f5a41;
  --rose-light:#ecd3c6;
  --line:#e8ddd5;
  --shadow: 0 20px 50px -25px rgba(43,42,40,.35);
  --max: 1160px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--white);
  color:var(--graphite);
  font-family:'Jost',sans-serif;
  font-weight:300;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.serif{
  font-family:'Playfair Display',serif;
  font-weight:500;
  color:var(--graphite);
  margin:0 0 .5em;
  line-height:1.15;
}
h1{font-size:clamp(2.2rem,4vw,3.4rem);}
h2{font-size:clamp(1.7rem,3vw,2.4rem);}
h3{font-size:1.3rem;}
p{margin:0 0 1.1em; color:var(--graphite-soft);}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 28px;}
.eyebrow{
  font-family:'Jost',sans-serif;
  font-size:.78rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--copper);
  font-weight:500;
  display:inline-block;
  margin-bottom:.9em;
}

/* divider signature element - echoes the crest mark under the logo */
.divider{
  display:flex; align-items:center; justify-content:center;
  gap:14px; margin:0 auto; width:100%; max-width:220px;
}
.divider .ln{height:1px; flex:1; background:var(--line);}
.divider .mk{
  width:7px;height:7px; transform:rotate(45deg);
  background:var(--copper); flex-shrink:0;
}
.divider.left{justify-content:flex-start; max-width:none;}
.divider.left .ln{flex:0 0 60px;}

/* header */
header.site{
  position:sticky; top:0; z-index:40;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
header.site .bar{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 28px; max-width:var(--max); margin:0 auto;
}
header.site .brand{display:flex; align-items:center; gap:12px;}
header.site .brand img{height:52px; width:auto;}
nav.main{display:flex; align-items:center; gap:30px;}
nav.main a{
  font-size:.86rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--graphite-soft); font-weight:500; position:relative;
  padding:6px 0;
}
nav.main a:hover, nav.main a.active{color:var(--copper);}
.btn{
  display:inline-flex; align-items:center; gap:9px;
  background:var(--copper); color:#fff !important;
  padding:13px 26px; border-radius:2px;
  font-size:.82rem; letter-spacing:.08em; text-transform:uppercase;
  font-weight:500; border:1px solid var(--copper);
  transition:.25s ease;
}
.btn:hover{background:var(--copper-dark); border-color:var(--copper-dark);}
.btn.ghost{background:transparent; color:var(--graphite) !important; border:1px solid var(--graphite);}
.btn.ghost:hover{background:var(--graphite); color:#fff !important;}
.btn svg{width:16px; height:16px;}
.navbtn{display:none;}
@media (max-width:880px){
  nav.main{position:fixed; inset:64px 0 0 0; background:#fff; flex-direction:column;
    padding:40px 28px; gap:22px; transform:translateX(100%); transition:.3s ease; overflow:auto;}
  nav.main.open{transform:translateX(0);}
  nav.main a{font-size:1.05rem;}
  .navbtn{display:block; background:none; border:none; cursor:pointer;}
  .navbtn span{display:block; width:24px; height:2px; background:var(--graphite); margin:5px 0;}
  header.site .btn.top{display:none;}
}

/* hero */
.hero{
  display:grid; grid-template-columns:1.05fr .95fr; align-items:stretch; min-height:640px;
}
.hero .txt{
  display:flex; flex-direction:column; justify-content:center;
  padding:70px 60px; max-width:600px;
}
.hero .txt p.lead{font-size:1.08rem; max-width:460px;}
.hero .img{
  position:relative; overflow:hidden; background:var(--ivory);
}
.hero .img img{width:100%; height:100%; object-fit:cover; object-position:top center;}
.hero .ctas{display:flex; gap:16px; margin-top:10px; flex-wrap:wrap;}
@media (max-width:880px){
  .hero{grid-template-columns:1fr;}
  .hero .txt{padding:50px 24px 36px; max-width:none;}
  .hero .img{height:380px;}
}

/* page hero (interior pages) */
.page-hero{
  display:grid; grid-template-columns:1fr 1fr; align-items:stretch; background:var(--ivory);
}
.page-hero .txt{padding:80px 60px; display:flex; flex-direction:column; justify-content:center;}
.page-hero .img{overflow:hidden;}
.page-hero .img img{width:100%; height:100%; object-fit:cover; object-position:top center; min-height:360px;}
@media (max-width:880px){
  .page-hero{grid-template-columns:1fr;}
  .page-hero .txt{padding:50px 24px 36px;}
  .page-hero .img img{min-height:320px;}
}

/* sections */
section{padding:90px 0;}
section.tight{padding:60px 0;}
section.alt{background:var(--ivory);}
.center{text-align:center; max-width:680px; margin:0 auto;}

/* area cards grid */
.grid4{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line); margin-top:50px;
}
.grid4 .card{
  background:#fff; padding:44px 30px; transition:.25s ease;
}
.grid4 .card:hover{background:var(--ivory);}
.grid4 .card .num{font-family:'Playfair Display',serif; font-style:italic; color:var(--rose-light); font-size:1.6rem;}
.grid4 .card h3{margin:.5em 0 .5em; font-size:1.15rem;}
.grid4 .card p{font-size:.93rem; margin-bottom:1.4em;}
.grid4 .card a.more{
  font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--copper); font-weight:500;
}
@media (max-width:880px){.grid4{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.grid4{grid-template-columns:1fr;}}

/* about teaser */
.split{display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:center;}
.split .img{overflow:hidden;}
.split .img img{width:100%; object-fit:cover;}
@media (max-width:880px){.split{grid-template-columns:1fr; gap:36px;}}

/* list of practice topics */
.topics{list-style:none; margin:26px 0 0; padding:0; display:grid; gap:14px;}
.topics li{
  display:flex; gap:14px; align-items:flex-start; font-size:1rem; color:var(--graphite-soft);
  padding-bottom:14px; border-bottom:1px solid var(--line);
}
.topics li:last-child{border-bottom:none;}
.topics li .dot{width:6px; height:6px; border-radius:50%; background:var(--copper); margin-top:9px; flex-shrink:0;}

/* CTA band */
.cta-band{
  background:var(--graphite); color:#fff; text-align:center; padding:80px 28px;
}
.cta-band h2{color:#fff;}
.cta-band p{color:#d8d3ce;}
.cta-band .btn{margin-top:10px;}

/* footer */
footer.site{background:var(--white); border-top:1px solid var(--line); padding:56px 0 30px;}
footer.site .foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px;}
footer.site img.logo{height:46px; margin-bottom:14px;}
footer.site h4{font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--copper); margin:0 0 16px; font-weight:500;}
footer.site ul{list-style:none; padding:0; margin:0; display:grid; gap:10px;}
footer.site a{color:var(--graphite-soft); font-size:.94rem;}
footer.site a:hover{color:var(--copper);}
footer.site .bottom{
  margin-top:46px; padding-top:22px; border-top:1px solid var(--line);
  font-size:.8rem; color:#a19a92; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
}
@media (max-width:700px){footer.site .foot-grid{grid-template-columns:1fr;}}

/* floating whatsapp */
.wa-float{
  position:fixed; right:22px; bottom:22px; z-index:50;
  width:58px; height:58px; border-radius:50%;
  background:var(--copper); color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow); transition:.25s ease;
}
.wa-float:hover{background:var(--copper-dark); transform:translateY(-2px);}
.wa-float svg{width:28px; height:28px;}

/* generic content */
.prose{max-width:760px;}
.prose p{font-size:1.03rem;}
.values{display:grid; grid-template-columns:repeat(3,1fr); gap:34px; margin-top:50px;}
.values.cols3{max-width:920px !important;}
.values .v h3{font-size:1.05rem;}
.values .v p{font-size:.94rem;}
@media (max-width:760px){.values{grid-template-columns:1fr;}}
