@font-face{font-family:'Prompt';src:url('assets/fonts/Prompt-LIGHT.ttf') format('truetype');font-weight:300;font-display:swap;}
@font-face{font-family:'Prompt';src:url('assets/fonts/Prompt-REGULAR.ttf') format('truetype');font-weight:400;font-display:swap;}
@font-face{font-family:'Prompt';src:url('assets/fonts/Prompt-MEDIUM.ttf') format('truetype');font-weight:500;font-display:swap;}
@font-face{font-family:'Prompt';src:url('assets/fonts/Prompt-SEMIBOLD.ttf') format('truetype');font-weight:600;font-display:swap;}

:root{
  --brown:#543217;
  --cream:#f4eae0;
  --white:#ffffff;
  --rule:rgba(84,50,23,.30);
  --font:'Prompt',system-ui,sans-serif;
  --gutter:4.2%;
  --maxw:1180px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--cream);
  color:var(--brown);
  font-family:var(--font);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{text-decoration:none;color:inherit;}
img{display:block;max-width:100%;}
[hidden]{display:none !important;}

section{
  max-width:var(--maxw);
  margin:0 auto;
  padding:clamp(20px,3.4vw,34px) var(--gutter) 0;
}
section h2{
  font-weight:600;
  font-size:clamp(15px,2.9vw,26px);
  color:var(--brown);
  margin:0;
  letter-spacing:.01em;
}
.section-rule{
  height:1px;
  background:var(--rule);
  margin:clamp(8px,1.2vw,12px) 0 clamp(14px,2.2vw,22px);
}

/* ---------- HEADER ---------- */
.site-header{
  display:flex;
  align-items:stretch;
  background:var(--cream);
}
.logo-box{
  background:var(--white);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(6px,1.1vw,10px) clamp(12px,2.4vw,24px);
  flex:none;
}
.logo-box img{height:clamp(30px,5.4vw,50px);width:auto;}
.main-nav{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:clamp(7px,1.6vw,18px);
  padding:0 clamp(8px,1.8vw,18px);
  min-width:0;
}
.main-nav a{
  font-size:clamp(7.5px,1.36vw,12px);
  font-weight:500;
  letter-spacing:.02em;
  white-space:nowrap;
}
.main-nav a[data-missing="1"]{opacity:.6;}
.icon-btn{
  background:none;border:none;padding:0;
  color:var(--brown);
  cursor:pointer;
  display:flex;align-items:center;
  flex:none;
}
.icon-btn svg{width:clamp(12px,1.9vw,18px);height:clamp(12px,1.9vw,18px);}
.book-btn{
  border:1px solid var(--brown);
  border-radius:999px;
  padding:clamp(4px,.85vw,9px) clamp(9px,1.9vw,20px);
  font-weight:600;
  white-space:nowrap;
  flex:none;
  transition:.2s;
}
.book-btn:hover{background:var(--brown);color:var(--white);}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  max-width:none;
  padding:0;
}
.hero-cover{width:100%;height:auto;}
.hero-dots{
  position:absolute;
  left:50%;bottom:clamp(8px,1.6vw,18px);
  transform:translateX(-50%);
  display:flex;
  gap:clamp(5px,.9vw,9px);
}
.hero-dots span{
  width:clamp(6px,.95vw,9px);
  height:clamp(6px,.95vw,9px);
  border-radius:50%;
  border:1px solid var(--brown);
}
.hero-dots span.active{background:var(--brown);}

/* ---------- INTRO ---------- */
.intro p{
  font-size:inherit;
  line-height:1.9;
  font-weight:300;
  margin:clamp(8px,1.4vw,16px) 0 0;
}
.intro p:first-child{margin-top:0;}
.intro h2{margin-bottom:clamp(6px,1.2vw,14px);}
.intro-body{
  font-size:clamp(9px,1.58vw,14.5px);
  overflow:hidden;
  transition:max-height .45s ease;
}
.intro-body.is-collapsed{
  position:relative;
  max-height:9.5em;
}
.intro-body.is-collapsed::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:4.5em;
  background:linear-gradient(to bottom,rgba(244,234,224,0),var(--cream) 85%);
  pointer-events:none;
}
.read-more-wrap{margin-top:clamp(6px,1.2vw,12px);}

@media (prefers-reduced-motion:reduce){
  .intro-body{transition:none;}
}

/* ---------- CARDS / GRIDS ---------- */
.services-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(7px,1.5vw,18px);
}
.services-more{margin-top:clamp(7px,1.5vw,18px);grid-template-columns:repeat(4,1fr);}
.card{
  position:relative;
  aspect-ratio:1/1.32;
  border-radius:clamp(4px,.85vw,10px);
  overflow:hidden;
  background:#e7d8cb;
}
.card img{width:100%;height:100%;object-fit:cover;}
.pill{
  position:absolute;
  left:50%;bottom:clamp(6px,1.1vw,13px);
  transform:translateX(-50%);
  background:var(--brown);
  color:var(--white);
  font-size:clamp(7px,1.28vw,13px);
  font-weight:500;
  line-height:1;
  padding:clamp(4px,.75vw,8px) clamp(8px,1.7vw,20px);
  border-radius:999px;
  white-space:nowrap;
}
.btn-wrap{
  display:flex;
  justify-content:center;
  margin:clamp(12px,2.2vw,24px) 0 0;
}
.pill-btn{
  display:inline-flex;
  align-items:center;
  gap:clamp(4px,.8vw,9px);
  border:1px solid var(--brown);
  background:transparent;
  color:var(--brown);
  font-family:var(--font);
  font-size:clamp(8px,1.32vw,12.5px);
  font-weight:600;
  letter-spacing:.03em;
  padding:clamp(5px,.95vw,10px) clamp(12px,2.3vw,26px);
  border-radius:999px;
  cursor:pointer;
  transition:.2s;
}
.pill-btn:hover{background:var(--brown);color:var(--white);}
.pill-btn.solid{background:var(--brown);color:var(--white);}
.pill-btn.solid .btn-icon{filter:brightness(0) invert(1);}
.pill-btn:hover .btn-icon{filter:brightness(0) invert(1);}
.btn-icon{
  width:clamp(10px,1.5vw,15px);
  height:clamp(10px,1.5vw,15px);
  object-fit:contain;
}

/* ---------- INSTAGRAM / GOOGLE ---------- */
.head-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.head-icons{display:flex;gap:clamp(7px,1.4vw,16px);}
.head-icons img{
  width:clamp(13px,2.2vw,22px);
  height:clamp(13px,2.2vw,22px);
  object-fit:contain;
}
.ig-profile{
  display:flex;
  align-items:center;
  gap:clamp(7px,1.4vw,15px);
  margin-bottom:clamp(10px,1.9vw,20px);
}
.ig-avatar{
  width:clamp(30px,5vw,54px);
  height:clamp(30px,5vw,54px);
  border-radius:50%;
  background:#000;
  padding:clamp(4px,.75vw,8px);
  object-fit:contain;
  flex:none;
}
.ig-profile strong{font-size:clamp(9px,1.6vw,15px);font-weight:600;}
.ig-profile p{margin:2px 0 0;font-size:clamp(7.5px,1.35vw,13px);font-weight:300;}
.ig-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(7px,1.5vw,18px);
}
.ig-tile{
  position:relative;
  aspect-ratio:1/1.16;
  border-radius:clamp(3px,.6vw,8px);
  overflow:hidden;
  background:#ddd0c4;
  border:none;
  padding:0;
  margin:0;
  display:block;
  width:100%;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.ig-tile:focus-visible{outline:2px solid var(--brown);outline-offset:2px;}
.ig-tile video{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
  display:block;
}
.play-badge{
  position:absolute;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  width:clamp(22px,3.8vw,40px);
  height:clamp(22px,3.8vw,40px);
  border-radius:50%;
  background:rgba(255,255,255,.34);
  backdrop-filter:blur(2px);
  pointer-events:none;
}
.play-badge::after{
  content:"";
  position:absolute;
  left:56%;top:50%;
  transform:translate(-50%,-50%);
  border-style:solid;
  border-width:clamp(5px,.85vw,9px) 0 clamp(5px,.85vw,9px) clamp(8px,1.4vw,15px);
  border-color:transparent transparent transparent #fff;
}
.ig-tile.is-sounding .play-badge{
  left:auto;right:clamp(4px,.7vw,8px);
  top:auto;bottom:clamp(4px,.7vw,8px);
  transform:none;
  width:clamp(14px,2.3vw,24px);
  height:clamp(14px,2.3vw,24px);
  background:rgba(84,50,23,.72);
}
.ig-tile.is-sounding .play-badge::after{
  left:50%;
  border:none;
  width:56%;height:56%;
  background:#fff;
  -webkit-mask:var(--speaker) center/contain no-repeat;
  mask:var(--speaker) center/contain no-repeat;
}
:root{
  --speaker:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 5 6 9H3v6h3l5 4V5z'/%3E%3Cpath d='M15.5 8.5a5 5 0 0 1 0 7' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M18.5 5.5a9 9 0 0 1 0 13' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* ---------- BRANCHES ---------- */
.branches{padding-bottom:clamp(20px,3.4vw,40px);}
.branches-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(8px,1.8vw,24px);
}
.branch-card{aspect-ratio:1/1.05;}
.branch-links{
  position:absolute;
  right:clamp(4px,.8vw,9px);
  top:clamp(4px,.8vw,9px);
  display:flex;
  flex-direction:column;
  gap:clamp(3px,.6vw,7px);
}
.branch-links a{
  width:clamp(15px,2.5vw,26px);
  height:clamp(15px,2.5vw,26px);
  border-radius:50%;
  background:rgba(255,255,255,.88);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:.2s;
}
.branch-links a:hover{background:#fff;transform:scale(1.08);}
.branch-links img{
  width:58%;height:58%;
  object-fit:contain;
}

/* ---------- FOOTER ---------- */
.site-footer{
  background:var(--brown);
  color:var(--white);
  padding:clamp(12px,2.2vw,24px) var(--gutter) clamp(14px,2.6vw,28px);
  margin-top:clamp(16px,2.8vw,30px);
}
.footer-icons{
  display:flex;
  justify-content:flex-end;
  gap:clamp(8px,1.6vw,18px);
  margin-bottom:clamp(8px,1.6vw,18px);
}
.footer-icons img{
  width:clamp(12px,2vw,20px);
  height:clamp(12px,2vw,20px);
  object-fit:contain;
  filter:brightness(0) invert(1);
}
.footer-nav{
  display:flex;
  justify-content:flex-end;
  gap:clamp(9px,2vw,28px);
  flex-wrap:wrap;
}
.footer-nav a{
  font-size:clamp(7.5px,1.36vw,12.5px);
  font-weight:500;
  letter-spacing:.02em;
  white-space:nowrap;
}
.footer-nav a[data-missing="1"]{opacity:.65;}
