@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Playfair+Display:wght@400;600;700&display=swap");

:root{
  --bg:#fbf6ee;
  --cream:#f3eadc;
  --accent:#f0dfd6;
  --pill:#ead9d2;

  --text:#3b2a28;
  --muted:#6b5753;

  --brand:#c98279;
  --brand-dark:#b77068;

  --border: rgba(59,42,40,.18);
  --radius:20px;
  --shadow:0 18px 35px rgba(0,0,0,.08);

  --serif:"Playfair Display", serif;
  --sans:"DM Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--serif);
}
a{ color:inherit; }
img{ display:block; max-width:100%; }

.container{ width:min(860px,92vw); margin:0 auto; }
.section{ padding:34px 0; }
.section-cream{ background:var(--cream); }
.section-accent{ background:var(--accent); }
.section-soft{ background:transparent; }

/* HEADER */
.site-header{
  padding:16px 0 10px;
  background:var(--bg);
  position:sticky;
  top:0;
  z-index:50;
  border-bottom:1px solid rgba(0,0,0,.05);
  backdrop-filter: blur(6px);
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:14px; }
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; }
.brand-logo{
  width:46px; height:46px; border-radius:999px; object-fit:cover;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
}
.brand-text{ line-height:1.05; letter-spacing:.02em; }
.brand-name{ display:block; font-family:var(--sans); font-weight:800; font-size:18px; }

.header-actions{ display:flex; align-items:center; gap:10px; }
.icon-btn{
  width:42px; height:42px; border-radius:999px;
  background:#fff; border:1px solid var(--border);
  display:grid; place-items:center; text-decoration:none;
}
.icon-btn svg{ width:20px; height:20px; fill:var(--brand); }

.header-sub{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; margin-top:10px; flex-wrap:wrap;
}
.btn-outline{
  display:inline-flex; justify-content:center; align-items:center;
  padding:12px 18px; border:1px solid var(--text);
  background:transparent; text-decoration:none;
  font-family:var(--serif); font-size:20px; border-radius:10px;
}
.header-strip{
  font-size:18px; color:var(--muted);
  display:flex; flex-wrap:wrap; gap:10px; align-items:center;
}
.header-strip a{ text-decoration:none; border-bottom:1px solid rgba(0,0,0,.12); }
.dot{ opacity:.65; }

/* TYPO */
.h1{ font-size:clamp(44px,6vw,76px); line-height:.95; margin:0 0 14px; }
.h2{ font-size:clamp(34px,4.6vw,54px); line-height:1.02; margin:0 0 12px; }
.lead{ font-size:20px; line-height:1.35; margin:0 0 20px; color:var(--muted); }
.kicker{
  font-family:var(--sans); letter-spacing:.22em; font-size:14px;
  font-weight:500; color:rgba(59,42,40,.65); margin:18px 0 14px;
}
.kicker.light{ color:rgba(255,255,255,.85); }

/* BUTTONS */
.btn-primary{
  display:inline-flex; justify-content:center; align-items:center;
  width:min(360px,100%); padding:18px 20px;
  background:var(--brand); border:0; color:#fff;
  text-decoration:none; font-size:20px; border-radius:10px;
  box-shadow:0 10px 24px rgba(201,130,121,.28);
  transition:transform .12s ease, background .12s ease;
  cursor:pointer;
}
.btn-primary:hover{ background:var(--brand-dark); transform:translateY(-1px); }
.btn-outline-brand{
  display:inline-flex; justify-content:center; align-items:center;
  width:min(360px,100%); padding:18px 20px;
  background:transparent; color:var(--brand);
  text-decoration:none; font-size:20px; border-radius:10px;
  border:2px solid var(--brand); cursor:pointer;
}

/* MEDIA CARDS */
.media-card{
  margin:0;
  overflow:hidden;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  border:1px solid rgba(0,0,0,.06);
  background:#fff;
}
.media-img{
  width:100%;
  height:clamp(240px,46vw,520px);
  object-fit:contain;
  background:#fff;
}
.clickable{ cursor:zoom-in; }

/* ACCORDION */
.accordion{ display:flex; flex-direction:column; gap:14px; }
.pill{
  width:100%;
  text-align:left;
  padding:20px 22px;
  border-radius:18px;
  border:1px solid rgba(0,0,0,.05);
  background:var(--pill);
  font-size:20px;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.chev{ font-family:var(--sans); opacity:.65; }
.acc-panel{
  background:rgba(255,255,255,.60);
  border:1px solid rgba(0,0,0,.06);
  border-radius:16px;
  padding:14px 16px;
  box-shadow:var(--shadow);
  margin-top:-6px;
}
.price-list{ list-style:none; padding:0; margin:0; font-family:var(--sans); }
.price-list li{
  display:flex; justify-content:space-between; gap:14px;
  padding:10px 0;
  border-bottom:1px solid rgba(0,0,0,.06);
}
.price-list li:last-child{ border-bottom:0; }
.price-list .divider{ border-bottom:0; padding-top:14px; padding-bottom:4px; opacity:.9; }
.note{ margin:14px 0 0; font-size:15px; color:rgba(59,42,40,.68); font-family:var(--sans); }

/* BOOKING */
.book-card{
  margin-top:18px;
  background:rgba(255,255,255,.60);
  border:1px solid rgba(0,0,0,.06);
  border-radius:16px;
  padding:18px;
  box-shadow:var(--shadow);
}
.book-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.book-form label{
  display:block;
  font-family:var(--sans);
  font-size:14px;
  color:rgba(59,42,40,.8);
  margin-bottom:12px;
}
.book-form input,
.book-form select,
.book-form textarea{
  width:100%;
  margin-top:6px;
  padding:12px 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  background:rgba(255,255,255,.85);
  font-family:var(--sans);
  font-size:16px;
  outline:none;
}
.book-form input:focus,
.book-form select:focus,
.book-form textarea:focus{
  border-color:rgba(201,130,121,.65);
  box-shadow:0 0 0 4px rgba(201,130,121,.15);
}
.book-form .grid{ display:grid; grid-template-columns:1fr; gap:12px; }
.call-help{ margin:10px 0 0; color:rgba(59,42,40,.7); font-size:14px; font-family:var(--sans); }

/* GALLERY */
.gallery{
  margin-top:18px;
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
.gallery-item{
  overflow:hidden;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  border:1px solid rgba(0,0,0,.06);
  background:#fff;
}
.gallery-item img{
  width:100%;
  height:clamp(240px,46vw,520px);
  object-fit:contain;
  background:#fff;
}

/* LOCATION */
.location-section{ background:var(--cream); }
.location-grid{ display:grid; gap:20px; align-items:start; }
.location-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:10px; }
.btn-icon{
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 18px;
  border-radius:10px;
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  text-decoration:none;
  font-family:var(--sans);
  box-shadow:var(--shadow);
}
.icon-wrap{
  width:34px; height:34px; border-radius:999px;
  background:rgba(201,130,121,.12);
  display:grid; place-items:center;
}
.icon-wrap svg{ width:18px; height:18px; fill:var(--brand); }
.map-container{
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid rgba(0,0,0,.06);
  box-shadow:var(--shadow);
  background:#fff;
}
.map-container iframe{ width:100%; height:340px; border:0; display:block; }

/* CONTACT */
.contact-block{ padding-top:16px; }
.contact-title{ margin:10px 0 6px; font-size:18px; font-family:var(--sans); }
.muted{ color:rgba(59,42,40,.62); font-family:var(--sans); }

/* FOOTER */
.footer{ padding-bottom:42px; }
.deposit-card{
  background:#e7c9c0;
  color:#fff;
  border-radius:10px;
  padding:22px 18px;
  box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.18);
  margin-bottom:18px;
}
.small{ margin:8px 0 0; font-size:16px; line-height:1.35; opacity:.95; font-family:var(--sans); }
.footer-brand{
  display:flex; align-items:center; justify-content:center;
  gap:12px; margin-top:18px; font-family:var(--sans);
}
.footer-brand img{
  width:46px; height:46px; object-fit:cover;
  border-radius:999px; border:1px solid rgba(0,0,0,.08);
  background:#fff;
}
.footer-line{ height:1px; background:rgba(59,42,40,.22); margin-top:20px; }

/* LIGHTBOX */
.lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.88);
  display:none;
  place-items:center;
  z-index:9999;
  padding:18px;
}
.lightbox.open{ display:grid; }
.lightbox-img{
  max-width:min(1100px,94vw);
  max-height:86vh;
  object-fit:contain;
  border-radius:14px;
  background:#111;
}
.lightbox-close{
  position:fixed;
  top:14px;
  right:14px;
  width:46px;
  height:46px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(0,0,0,.35);
  color:#fff;
  font-size:28px;
  cursor:pointer;
}

/* SCROLL REVEAL */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity .65s ease, transform .65s ease; }
.reveal.show{ opacity:1; transform:translateY(0); }

@media(min-width:860px){
  .header-sub{ flex-wrap:nowrap; }
  .gallery{ grid-template-columns:repeat(2,1fr); }
  .book-form .grid{ grid-template-columns:1fr 1fr; }
  .location-grid{ grid-template-columns:1fr 1fr; gap:28px; align-items:center; }
}