:root{
  --ink:#2b2a26;
  --ink-soft:#5a574f;
  --paper:#f6f3ec;
  --paper-2:#efeadf;
  --sage:#4a5d4e;
  --sage-deep:#36473b;
  --line:#dcd6c8;
  --accent:#8a6d3b;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Georgia","Times New Roman",serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.7;
  font-size:19px;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:760px;margin:0 auto;padding:0 24px}

/* Hero */
header.hero{
  text-align:center;
  padding:96px 24px 72px;
}
header.hero h1{
  font-size:clamp(40px,8vw,68px);
  font-weight:normal;
  letter-spacing:0.5px;
  line-height:1.1;
  margin-bottom:28px;
}
header.hero .intro{
  max-width:600px;
  margin:0 auto 36px;
  color:var(--ink-soft);
  font-size:clamp(18px,2.4vw,21px);
}
.btn{
  display:inline-block;
  background:var(--sage);
  color:#fff;
  text-decoration:none;
  padding:14px 30px;
  border-radius:4px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:16px;
  transition:background .2s;
}
.btn:hover,.btn:focus{background:var(--sage-deep)}
.btn-outline{
  background:transparent;
  color:var(--sage);
  border:1px solid var(--sage);
}
.btn-outline:hover,.btn-outline:focus{background:var(--sage);color:#fff}

/* Sections */
section{padding:64px 0;border-top:1px solid var(--line)}
section.alt{background:var(--paper-2)}
h2{
  font-size:clamp(28px,5vw,38px);
  font-weight:normal;
  text-align:center;
  margin-bottom:36px;
  letter-spacing:0.3px;
}
h3{
  font-size:21px;
  font-weight:normal;
  color:var(--sage-deep);
  margin-bottom:6px;
}

/* Feature list */
ul.features{list-style:none}
ul.features li{
  padding:18px 0;
  border-bottom:1px solid var(--line);
}
ul.features li:last-child{border-bottom:none}
ul.features p{color:var(--ink-soft);font-size:17px}

/* Gallery */
.gallery{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.gallery img{
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  border-radius:6px;
  display:block;
  cursor:pointer;
  transition:opacity .2s;
}
.gallery img:hover,.gallery img:focus{opacity:.85}
@media(max-width:600px){
  .gallery{grid-template-columns:repeat(2,1fr)}
}

/* Lightbox */
.lightbox{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(20,18,14,.9);
  z-index:1000;
  cursor:zoom-out;
  padding:24px;
}
.lightbox.open{display:flex;align-items:center;justify-content:center}
.lightbox img{
  max-width:100%;
  max-height:100%;
  border-radius:6px;
}
.lightbox .close{
  position:absolute;
  top:18px;
  right:24px;
  color:#fff;
  font-family:Arial,Helvetica,sans-serif;
  font-size:34px;
  line-height:1;
  text-decoration:none;
}

/* Prices */
.price-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:6px;
  padding:32px;
  text-align:center;
}
.price-card .big{
  font-size:46px;
  color:var(--sage-deep);
  line-height:1.1;
}
.price-card .big small{font-size:18px;color:var(--ink-soft)}
.price-card ul{list-style:none;margin-top:20px;text-align:left}
.price-card ul li{padding:6px 0;color:var(--ink-soft);font-size:17px}
.price-card .note{margin-top:20px;font-size:16px;color:var(--ink-soft);font-style:italic}

/* Map */
.map{
  margin-top:24px;
  border:1px solid var(--line);
  border-radius:6px;
  overflow:hidden;
  line-height:0;
}
.map iframe{width:100%;height:340px;border:0;display:block}
.place{text-align:center;color:var(--ink-soft);font-size:17px}

/* Contact */
.contact-grid{text-align:center}
.contact-grid a{color:var(--sage-deep)}
.contact-line{font-size:21px;margin:10px 0}
.contact-note{color:var(--ink-soft);font-size:17px;margin-top:24px;max-width:560px;margin-left:auto;margin-right:auto}

/* Footer */
footer{
  background:var(--sage-deep);
  color:#e9ece8;
  text-align:center;
  padding:40px 24px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:15px;
  line-height:1.8;
}
footer a{color:#fff}

@media(max-width:520px){
  body{font-size:18px}
  header.hero{padding:64px 20px 52px}
  section{padding:48px 0}
}
