:root{
  /* Core palette */
  --bg:#0f0f0f; --card:#161616; --muted:#a3a3a3; --text:#f5f5f5;
  --accent:#c8a45d; --accent-contrast:#0b0b0b;
  --ring:rgba(255,255,255,.12); --ring-strong:rgba(255,255,255,.2);

  /* Light nav so dark logo pops */
  --nav-bg:#f7f7f7;
  --nav-text:#1b1b1b;
  --nav-muted:#535353;
  --logo-chip-bg:#ffffff;

  /* Header sizing */
  --nav-py: 4px;
  --nav-logo: 34px;
  --nav-chip: 48px;
  --nav-btn-h: 32px;
  --nav-radius: 12px;
}

*{box-sizing:border-box}
html,body{
  margin:0;padding:0;
  max-width:100%;
  overflow-x:hidden;
}
body{
  background:var(--bg);
  color:var(--text);
  font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica,Arial,sans-serif;
}
a{
  color:inherit;
  text-decoration:none;
}

/* Focus accessibility */
a:focus-visible,
button:focus-visible,
.btn:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}

.container{
  max-width:1200px;
  width:100%;
  margin:auto;
  padding:0 16px;
}
.muted{color:var(--muted)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  height:44px;padding:0 18px;border-radius:14px;font-weight:600;
  border:1px solid transparent;transition:.2s ease;
  cursor:pointer;
}
.btn-primary{background:var(--accent);color:var(--accent-contrast)}
.btn-primary:hover{opacity:.9}
.btn-ghost{background:rgba(255,255,255,.06);border:1px solid var(--ring)}
.btn-ghost:hover{background:rgba(255,255,255,.1)}

.card{
  background:var(--card);
  border:1px solid var(--ring);
  border-radius:22px;
}
.grid{display:grid;gap:20px}
.grid-2{grid-template-columns:1fr 1fr}
.grid-3{grid-template-columns:repeat(3,1fr)}

@media(max-width:900px){
  .grid-2,.grid-3{grid-template-columns:1fr}
}

/* NAV */
header.nav{
  position:sticky;top:0;z-index:50;
  background:var(--nav-bg);
  border-bottom:1px solid #e9e9e9;
  backdrop-filter:saturate(1.2) blur(6px);
}
.nav-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:var(--nav-py) 0;
  gap:16px;
  flex-wrap:wrap;
}
.brand{display:flex;align-items:center;gap:10px}
.logo-chip{
  width:var(--nav-chip);height:var(--nav-chip);border-radius:999px;
  background:var(--logo-chip-bg);
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:0 1px 4px rgba(0,0,0,.18);
  flex-shrink:0;
}
.brand img{height:var(--nav-logo);width:var(--nav-logo);display:block}
.brand strong{color:var(--nav-text);white-space:nowrap}
.menu{
  display:flex;align-items:center;gap:20px;font-size:14px;
  flex-wrap:wrap;
}
.menu a{color:var(--nav-muted)}
.menu a:hover{color:var(--nav-text)}
.menu .book{margin-left:6px}
header.nav .btn{
  height:var(--nav-btn-h);
  border-radius:var(--nav-radius);
  padding:0 14px;
}
@media(max-width:640px){
  .menu{
    justify-content:flex-end;
    gap:12px;
    font-size:13px;
  }
  .menu .book{order:-1;}
}

/* HERO (index) */
.hero{
  position:relative;isolation:isolate;
  min-height:72vh;display:flex;align-items:center;
}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-2;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  filter:grayscale(15%) brightness(.72);
}
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg, rgba(15,15,15,.85) 0%, rgba(15,15,15,.35) 40%, rgba(15,15,15,.85) 100%);
}
.hero-inner{
  padding:72px 0 80px;
}
.hero h1{
  font-size:clamp(30px,6vw,52px);
  line-height:1.05;
  margin:10px 0 0;
}
.hero p{max-width:680px}

@media(max-width:768px){
  .hero-inner{
    padding:60px 0 56px;
    text-align:center;
  }
  .hero p{
    margin-inline:auto;
  }
  .hero-cta{
    justify-content:center;
  }
}

/* ABOUT (index) */
.about{padding:70px 0}
.about .portrait{
  aspect-ratio:4/5;border-radius:24px;overflow:hidden;
  border:1px solid var(--ring);
}
.about .portrait div{
  width:100%;height:100%;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  filter:grayscale(10%);
}
@media(max-width:768px){
  .about{padding:60px 0}
}

/* SERVICES (index + services page) */
.services{padding:70px 0}
.services .head{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-bottom:20px;gap:10px;
}
.service-card{overflow:hidden}
.service-content{padding:18px}
.service-title{font-size:18px;font-weight:600;margin:0}
.service-desc{color:var(--muted);font-size:14px;margin:10px 0 0}
.service-actions{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:14px;gap:12px;
}
.price{font-weight:700;white-space:nowrap}

@media(max-width:768px){
  .services{padding:60px 0}
  .services .head{flex-direction:column;align-items:flex-start}
}

/* EXPERIENCE STRIP */
.exp{
  position:relative;isolation:isolate;
  padding:64px 0;margin:20px 0;
}
.exp::before{
  content:"";position:absolute;inset:0;z-index:-2;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  filter:grayscale(18%) brightness(.62);
}
.exp::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:rgba(15,15,15,.6);
}

/* BOOK SECTION (index) */
.book{padding:70px 0}
.form{display:grid;gap:12px}
.field{display:grid;gap:8px}
.input{
  height:44px;border-radius:12px;
  background:rgba(255,255,255,.06);
  border:1px solid var(--ring);
  padding:0 12px;color:var(--text);outline:none;
  width:100%;
}
.input:focus{border-color:var(--ring-strong)}
textarea.input{
  min-height:80px;
  padding-top:10px;
  padding-bottom:10px;
  resize:vertical;
}
.select{
  height:46px;border-radius:12px;border:1px solid #cfcfcf;
  background:#ffffff;color:#111;
  padding:0 12px;outline:none;font-size:16px;line-height:1.25;
  color-scheme: light;
  width:100%;
}
.select:focus{border-color:#b8b8b8;box-shadow:0 0 0 3px rgba(200,200,200,.25)}
select option{color:#111;background:#fff}
select optgroup{color:#444;font-weight:600}
select option[disabled]{color:#9a9a9a !important}
.note{font-size:14px;color:var(--muted)}
.note code{white-space:normal;}

@media(max-width:768px){
  .book{
    padding:56px 0 64px;
  }
  .book .grid-2{
    grid-template-columns:1fr;
    gap:24px;
  }
  .book .grid-2 > div:first-child{
    order:1;
    text-align:left;
  }
  .book .grid-2 > .card{
    order:2;
    width:100%;
    max-width:480px;
    margin:0 auto;
  }
}

/* LOCATION & FOOTER (index + services + booking) */
.location{padding:70px 0}
footer{border-top:1px solid var(--ring);margin-top:20px}
.foot-a{
  display:grid;gap:20px;
  grid-template-columns:2fr 1fr 1fr;
  padding:28px 0;
}
.foot-brand{display:flex;align-items:center;gap:10px}
.foot-brand .logo-chip{width:36px;height:36px}
.foot-brand img{height:24px;width:24px}
.soc a{
  display:inline-flex;align-items:center;justify-content:center;
  height:36px;padding:0 12px;border-radius:10px;
  background:rgba(255,255,255,.06);
  border:1px solid var(--ring);margin-right:8px;
}
.soc a:hover{background:rgba(255,255,255,.1)}
.foot-b{color:var(--muted);font-size:12px;padding-bottom:26px;text-align:center}
@media(max-width:900px){
  .location{padding:60px 0}
  .foot-a{grid-template-columns:1fr}
}

/* SERVICES PAGE EXTRAS */
.page-hero{
  padding:60px 0 30px;
}
.page-hero h1{
  font-size:clamp(28px,4vw,40px);
  margin:0 0 8px;
}
.chip{
  display:inline-flex;align-items:center;justify-content:center;
  padding:0 10px;height:24px;border-radius:999px;
  border:1px solid var(--ring);font-size:12px;color:var(--muted);
}
.section{
  padding:10px 0 50px;
}
.section h2{
  font-size:clamp(20px,2.6vw,26px);
  margin:0 0 12px;
}
.services-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
@media(max-width:900px){
  .services-grid{
    grid-template-columns:1fr;
  }
}
.service-header{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.service-price{
  font-weight:700;
  white-space:nowrap;
}
.service-footer{
  margin-top:10px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.pill{
  padding:4px 10px;
  border-radius:999px;
  border:1px solid var(--ring);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
}
.btn-mini{
  height:34px;
  padding:0 14px;
  border-radius:999px;
  font-size:13px;
}

/* BOOKING PAGE EXTRAS */
main{
  padding:50px 0 70px;
}
h1{
  font-size:clamp(26px,3vw,32px);
  margin:0 0 8px;
}
.summary-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-bottom:4px;
  font-size:14px;
}
.summary-label{
  color:var(--muted);
}
.summary-value{
  text-align:right;
}
@media(max-width:640px){
  .summary-row{
    flex-direction:column;
    align-items:flex-start;
  }
  .summary-value{
    text-align:left;
  }
}
.error-list{
  margin:0 0 14px;
  padding-left:18px;
  color:#ffb3b3;
  font-size:14px;
}

/* Booking footer (simple variant) */
.booking-footer{
  border-top:1px solid var(--ring);
  margin-top:20px;
  padding:18px 0 26px;
  text-align:center;
  color:var(--muted);
  font-size:12px;
}
