@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --ink:#12203A;
  --ink-2:#1B2E4F;
  --cream:#F1EDE1;
  --cream-2:#E9E3D2;
  --brass:#B08D57;
  --brass-light:#D4B483;
  --slate:#5C6B7A;
  --green:#3E7A57;
  --red:#B24A3C;
  --line: rgba(241,237,225,0.14);
  --line-dark: rgba(18,32,58,0.12);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Inter', sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3{font-family:'Fraunces', serif; font-weight:500; letter-spacing:-0.01em;}
.mono{font-family:'IBM Plex Mono', monospace;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--brass);
}

/* ===== NAV ===== */
header{
  position:sticky; top:0; z-index:60;
  background:rgba(241,237,225,0.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line-dark);
}
nav.wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:76px;
  gap:20px;
}
.nav-left{display:flex; align-items:center; gap:16px;}
.hamburger{
  display:flex; flex-direction:column; justify-content:center; gap:4px;
  width:38px; height:38px;
  border:1px solid var(--ink);
  border-radius:3px;
  background:transparent;
  cursor:pointer;
  padding:0;
  flex-shrink:0;
}
.hamburger span{
  display:block; width:18px; height:2px; background:var(--ink); margin:0 auto;
  transition:transform 0.25s ease, opacity 0.25s ease;
}
.hamburger.active span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.hamburger.active span:nth-child(2){opacity:0;}
.hamburger.active span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

.brand{display:flex; align-items:center; gap:10px;}
.brand-mark{
  width:38px; height:38px; border-radius:6px;
  overflow:hidden;
  background:var(--ink);
  flex-shrink:0;
}
.brand-mark img{width:100%; height:100%; object-fit:cover;}
.brand-name{font-family:'Fraunces', serif; font-size:16px; line-height:1.15;}
.brand-name span{display:block; font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.1em; color:var(--slate); text-transform:uppercase; margin-top:1px;}

.nav-links{display:flex; gap:36px; font-size:14px; color:var(--ink-2);}
.nav-links a{position:relative; padding:4px 0;}
.nav-links a:hover, .nav-links a.active{color:var(--brass);}
.nav-cta{
  font-size:13px;
  padding:9px 18px;
  border:1px solid var(--ink);
  border-radius:2px;
  font-family:'IBM Plex Mono', monospace;
  white-space:nowrap;
}
.nav-cta:hover{background:var(--ink); color:var(--cream);}

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

/* ===== SERVICES DRAWER ===== */
.drawer-overlay{
  position:fixed; inset:0; background:rgba(18,32,58,0.55);
  opacity:0; visibility:hidden; transition:opacity 0.25s ease;
  z-index:70;
}
.drawer-overlay.active{opacity:1; visibility:visible;}
.drawer{
  position:fixed; top:0; left:0; height:100%; width:300px; max-width:84vw;
  background:var(--ink);
  color:var(--cream);
  z-index:80;
  transform:translateX(-100%);
  transition:transform 0.3s ease;
  overflow-y:auto;
  padding:28px 26px;
}
.drawer.active{transform:translateX(0);}
.drawer-head{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:24px;
}
.drawer-head span{font-family:'Fraunces', serif; font-size:18px;}
.drawer-close{
  background:none; border:none; color:var(--cream); font-size:22px; cursor:pointer; line-height:1;
}
.drawer-section-title{
  font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase;
  letter-spacing:0.1em; color:var(--brass-light); margin:20px 0 10px;
}
.drawer-links a{
  display:block; padding:10px 0; font-size:15px; border-bottom:1px solid rgba(241,237,225,0.1);
  color:rgba(241,237,225,0.85);
}
.drawer-links a:hover{color:var(--brass-light);}
.drawer-services a{
  display:block; padding:9px 0; font-size:13.5px; color:rgba(241,237,225,0.65);
}
.drawer-services a:hover{color:var(--brass-light);}

/* ===== WHATSAPP FLOAT ===== */
.whatsapp-float{
  position:fixed; bottom:24px; right:24px; z-index:90;
  width:56px; height:56px; border-radius:50%;
  background:#25D366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 18px rgba(18,32,58,0.35);
  transition:transform 0.2s ease;
}
.whatsapp-float:hover{transform:scale(1.08);}
.whatsapp-float svg{width:28px; height:28px;}

/* ===== PAGE HERO (inner pages) ===== */
.page-hero{
  background:var(--ink);
  color:var(--cream);
  padding:64px 0 56px;
}
.page-hero h1{
  font-size:clamp(32px,4.4vw,46px);
  color:var(--cream);
  margin:14px 0 14px;
}
.page-hero p{
  color:rgba(241,237,225,0.72);
  font-size:16px; line-height:1.65;
  max-width:560px;
}

/* ===== SECTION SHELL ===== */
section{padding:88px 0;}
.section-head{max-width:640px; margin-bottom:52px;}
.section-head h2{font-size:clamp(28px,3.4vw,38px); margin-top:14px; line-height:1.15;}
.section-head p{color:var(--slate); font-size:16px; line-height:1.6; margin-top:16px;}

/* ===== BUTTONS ===== */
.btn-primary{
  display:inline-block;
  background:var(--brass);
  color:var(--ink);
  padding:13px 24px;
  border-radius:2px;
  font-size:14px;
  font-weight:500;
  font-family:'IBM Plex Mono', monospace;
}
.btn-primary:hover{background:var(--brass-light);}
.btn-secondary{
  display:inline-block;
  padding:13px 24px;
  border:1px solid rgba(241,237,225,0.35);
  border-radius:2px;
  font-size:14px;
  font-family:'IBM Plex Mono', monospace;
  color:var(--cream);
}
.btn-secondary:hover{border-color:var(--cream);}
.btn-dark{
  display:inline-block;
  background:var(--ink);
  color:var(--cream);
  padding:13px 24px;
  border-radius:2px;
  font-size:14px;
  font-family:'IBM Plex Mono', monospace;
}
.btn-dark:hover{background:var(--ink-2);}

/* ===== SERVICES (accordion) ===== */
.service-acc{
  border-top:1px solid var(--line-dark);
}
.service-item{
  border-bottom:1px solid var(--line-dark);
}
.service-item-head{
  display:flex; align-items:center; justify-content:space-between;
  gap:20px;
  padding:26px 4px;
  cursor:pointer;
  background:none; border:none; width:100%; text-align:left;
}
.service-item-head:hover{background:var(--cream-2);}
.service-item-num{
  font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--brass);
  min-width:32px;
}
.service-item-title{
  font-family:'Fraunces', serif; font-size:20px; flex:1;
}
.service-item-plus{
  font-family:'IBM Plex Mono', monospace; font-size:20px; color:var(--brass);
  transition:transform 0.25s ease;
  width:24px; text-align:center;
}
.service-item.active .service-item-plus{transform:rotate(45deg);}
.service-item-body{
  max-height:0; overflow:hidden;
  transition:max-height 0.3s ease;
  padding:0 4px;
}
.service-item.active .service-item-body{padding-bottom:26px;}
.service-item-body-inner{
  display:grid; grid-template-columns:1.2fr 1fr; gap:32px;
  padding-top:4px;
}
.service-item-body p{color:var(--slate); font-size:15px; line-height:1.7; margin-bottom:14px;}
.service-item-body ul{list-style:none; padding:0;}
.service-item-body ul li{
  font-size:14px; color:var(--ink-2); padding:8px 0; border-top:1px solid var(--line-dark);
  display:flex; gap:10px;
}
.service-item-body ul li:before{content:"—"; color:var(--brass);}
@media(max-width:700px){
  .service-item-body-inner{grid-template-columns:1fr;}
}

/* ===== BLOG ===== */
.blog-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:36px;
}
.blog-card{
  background:var(--cream-2);
  border:1px solid var(--line-dark);
  border-radius:4px;
  overflow:hidden;
}
.blog-cover{
  height:180px;
  background:var(--ink);
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.blog-cover svg{width:64px; height:64px;}
.blog-body{padding:26px 26px 30px;}
.blog-tag{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--brass); letter-spacing:0.06em; text-transform:uppercase;}
.blog-body h3{font-size:20px; margin:12px 0 10px; line-height:1.3;}
.blog-body p{color:var(--slate); font-size:14.5px; line-height:1.65; margin-bottom:16px;}
.blog-read{font-family:'IBM Plex Mono', monospace; font-size:13px; color:var(--ink); border-bottom:1px solid var(--ink); padding-bottom:2px;}
@media(max-width:760px){ .blog-grid{grid-template-columns:1fr;} }

/* Quote block */
.quote-block{
  background:var(--ink);
  color:var(--cream);
  border-radius:4px;
  padding:44px 40px;
  display:grid; grid-template-columns:auto 1fr; gap:24px; align-items:start;
}
.quote-block svg{width:38px; height:38px; flex-shrink:0;}
.quote-block p{font-family:'Fraunces', serif; font-size:22px; line-height:1.5; font-style:italic; color:var(--cream);}
.quote-block span{display:block; margin-top:14px; font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--brass-light); font-style:normal;}
@media(max-width:700px){ .quote-block{grid-template-columns:1fr; padding:32px 26px;} }

/* ===== ABOUT ===== */
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.about-card{
  background:var(--ink);
  color:var(--cream);
  padding:36px;
  border-radius:4px;
}
.about-card .init{
  width:52px; height:52px; border-radius:50%;
  background:var(--brass); color:var(--ink);
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces', serif; font-size:18px; margin-bottom:18px;
}
.about-card h3{color:var(--cream); font-size:19px; margin-bottom:4px;}
.about-card .role{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--brass-light);}
.about-card p{margin-top:16px; font-size:14.5px; line-height:1.7; color:rgba(241,237,225,0.75);}
.about-text p{font-size:16px; line-height:1.75; color:var(--ink-2); margin-bottom:16px;}
@media(max-width:860px){ .about-grid{grid-template-columns:1fr;} }

.mission-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line-dark); border:1px solid var(--line-dark);
}
.mission-card{background:var(--cream); padding:30px 26px;}
.mission-card svg{width:30px; height:30px; margin-bottom:14px;}
.mission-card h3{font-size:17px; margin-bottom:8px;}
.mission-card p{font-size:14px; color:var(--slate); line-height:1.6;}
@media(max-width:760px){ .mission-grid{grid-template-columns:1fr;} }

.cred-grid{
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:1px;
  background:var(--line-dark); border:1px solid var(--line-dark);
}
@media(max-width:760px){ .cred-grid{grid-template-columns:1fr;} }

.cert-block{
  margin-top:1px; display:grid; grid-template-columns:130px 1fr; gap:32px; align-items:center;
  background:var(--cream); border:1px solid var(--line-dark); border-top:none; padding:28px 30px;
}
@media(max-width:600px){ .cert-block{grid-template-columns:1fr; text-align:center;} .cert-block a{margin:0 auto;} }

/* ===== CONTACT ===== */
.contact{background:var(--ink); color:var(--cream);}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
.contact h2{color:var(--cream); font-size:clamp(28px,3.4vw,38px); margin-bottom:16px;}
.contact p.lede2{color:rgba(241,237,225,0.7); font-size:16px; line-height:1.65; max-width:440px; margin-bottom:32px;}
.contact-row{
  display:flex; align-items:center; gap:14px;
  padding:16px 0; border-top:1px solid rgba(241,237,225,0.15);
  font-size:14.5px;
}
.contact-row:last-child{border-bottom:1px solid rgba(241,237,225,0.15);}
.contact-row .k{font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:var(--brass-light); min-width:96px;}
.contact-row a:hover{color:var(--brass-light);}
.form{background:var(--ink-2); border:1px solid rgba(241,237,225,0.14); border-radius:4px; padding:32px;}
.form label{display:block; font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.06em; color:rgba(241,237,225,0.5); margin-bottom:8px;}
.form input, .form select, .form textarea{
  width:100%; background:transparent; border:none; border-bottom:1px solid rgba(241,237,225,0.25);
  color:var(--cream); font-family:'Inter', sans-serif; font-size:15px; padding:8px 0 12px; margin-bottom:22px;
  outline:none;
}
.form select option{color:var(--ink);}
.form input:focus, .form textarea:focus, .form select:focus{border-bottom-color:var(--brass-light);}
.form textarea{resize:vertical; min-height:80px;}
.form button{
  width:100%; background:var(--brass); color:var(--ink); border:none;
  padding:14px; font-family:'IBM Plex Mono', monospace; font-size:14px; font-weight:500;
  border-radius:2px; cursor:pointer;
}
.form button:hover{background:var(--brass-light);}
@media(max-width:860px){ .contact-grid{grid-template-columns:1fr;} }

/* booking strip on contact page */
.booking-strip{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line-dark); border:1px solid var(--line-dark);
  margin-top:20px;
}
.booking-item{background:var(--cream); padding:24px; text-align:center;}
.booking-item svg{width:26px; height:26px; margin:0 auto 10px;}
.booking-item h4{font-size:15px; margin-bottom:4px;}
.booking-item p{font-size:12.5px; color:var(--slate);}
@media(max-width:700px){ .booking-strip{grid-template-columns:1fr;} }

footer{
  background:var(--ink);
  border-top:1px solid rgba(241,237,225,0.12);
  padding:28px 0;
}
footer .wrap{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
  font-family:'IBM Plex Mono', monospace; font-size:12px; color:rgba(241,237,225,0.45);
}
footer a:hover{color:var(--brass-light);}
