:root{
  --bg:#e8e8e8; --panel:#f4f2ef; --ink:#342e2e; --muted:#6c6462;
  --accent:#790102; --line:#d6d2cd; --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:Georgia,"Times New Roman",Times,serif;
  font-size:17px; line-height:1.75; -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block}
a{color:var(--accent)}
h1,h2,h3,h4{
  font-family:"PT Serif",Georgia,"Times New Roman",serif;
  font-weight:400; letter-spacing:.01em; line-height:1.2; margin:0 0 .5em;
}
h1{font-size:clamp(2rem,4.4vw,3.1rem)}
h2{font-size:clamp(1.5rem,3vw,2.2rem)}
h3{font-size:1.25rem}
p{margin:0 0 1.1em}

/* header */
.site-header{background:var(--bg); padding:26px 20px 18px; text-align:center; border-bottom:1px solid var(--line)}
.logo{display:inline-block}
.logo img{width:104px; height:auto; margin:0 auto}
.nav{margin-top:16px; display:flex; flex-wrap:wrap; justify-content:center; gap:4px 26px; padding:0; list-style:none}
.nav a{
  color:var(--ink); text-decoration:none; font-size:1.02rem;
  letter-spacing:.07em; padding:4px 2px; border-bottom:1px solid transparent;
}
.nav a:hover{border-bottom-color:var(--accent)}
.nav a[aria-current="page"]{border-bottom-color:var(--accent); color:var(--accent)}

/* hero */
.hero{
  position:relative; min-height:clamp(340px,64vh,560px);
  display:flex; align-items:center; justify-content:center; text-align:center;
  background-size:cover; background-position:center; color:#fbfbfb;
}
.hero::after{content:""; position:absolute; inset:0; background:rgba(22,18,18,.48)}
.hero .inner{position:relative; z-index:1; padding:60px 24px; max-width:860px}
.hero h1{color:#fbfbfb; text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero p{color:#efe9e6; font-style:italic; font-size:1.12rem; margin-bottom:1.6em}
.hero.small{min-height:clamp(220px,34vh,320px)}
.hero.small h1{font-size:clamp(1.8rem,3.6vw,2.6rem)}

/* layout */
.wrap{max-width:var(--max); margin:0 auto; padding:0 24px}
section.band{padding:68px 0}
section.band.tint{background:var(--panel); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.lead{font-size:1.1rem; color:var(--muted); max-width:70ch}
.center{text-align:center}
.center .lead{margin-left:auto; margin-right:auto}

/* buttons */
.btn{
  display:inline-block; font-family:Georgia,serif; font-weight:700;
  letter-spacing:.06em; font-size:.97rem; text-decoration:none;
  padding:13px 30px; border:1px solid var(--accent); color:var(--accent);
  background:transparent; transition:background .18s ease,color .18s ease;
}
.btn:hover{background:var(--accent); color:#fff}
.btn.light{border-color:#f2eeec; color:#f8f5f4}
.btn.light:hover{background:#f8f5f4; color:#2b2423}
.btn.solid{background:var(--accent); color:#fff}
.btn.solid:hover{background:#5d0001}

/* feature split */
.split{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center}
.split img{width:100%; height:100%; object-fit:cover; min-height:300px}

/* cards */
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:26px}
.card{background:var(--panel); text-decoration:none; color:var(--ink); border:1px solid var(--line); display:block}
.card img{aspect-ratio:4/5; object-fit:cover; width:100%}
.card .label{padding:16px 18px; text-align:center; font-family:"PT Serif",Georgia,serif; font-size:1.2rem; letter-spacing:.04em; text-transform:capitalize}
.card:hover .label{color:var(--accent)}

/* gallery grid */
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px}
.grid button{padding:0; border:1px solid var(--line); background:#fff; cursor:zoom-in; display:block}
.grid img{aspect-ratio:3/4; object-fit:cover; width:100%; transition:opacity .2s ease}
.grid button:hover img{opacity:.88}

/* content lists */
.prose ul{padding-left:1.1em; margin:0 0 1.4em}
.prose li{margin-bottom:.5em}
.prose h3{margin-top:1.8em; color:var(--accent)}
.subhead{font-family:"PT Serif",Georgia,serif; font-size:1.15rem; margin:1.8em 0 .4em; color:var(--ink)}
.rule{border:0; border-top:1px solid var(--line); margin:46px 0}

/* faq */
.faq{border-bottom:1px solid var(--line); padding:20px 0}
.faq h3{font-size:1.1rem; margin-bottom:.4em}
.faq p{margin:0; color:var(--muted)}

/* quotes */
.quote{background:var(--panel); border-left:3px solid var(--accent); padding:26px 30px; margin:0 0 26px}
.quote p{margin:0 0 .8em}
.quote cite{font-style:normal; color:var(--muted); font-size:.95rem}

/* contact */
.contact-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:30px}
.contact-grid a{color:var(--accent); text-decoration:none}
.contact-grid a:hover{text-decoration:underline}
.kv{font-size:1.05rem}
.kv strong{display:block; font-family:"PT Serif",Georgia,serif; font-weight:400; font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:6px}

/* footer */
.site-footer{background:#2b2423; color:#ded7d4; margin-top:0; padding:54px 24px 40px; text-align:center}
.site-footer a{color:#f0e9e6}
.site-footer .name{font-family:"PT Serif",Georgia,serif; font-size:1.4rem; color:#fff; margin-bottom:6px}
.site-footer .note{color:#b5aba7; font-size:.92rem; font-style:italic}
.site-footer .cols{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:26px; max-width:860px; margin:26px auto 0; text-align:center}
.site-footer .social{margin-top:24px; display:flex; gap:20px; justify-content:center}
.copyright{margin-top:30px; font-size:.84rem; color:#9a908c}

/* lightbox */
#lb{position:fixed; inset:0; background:rgba(18,14,14,.93); display:none; align-items:center; justify-content:center; z-index:60; padding:30px}
#lb.on{display:flex}
#lb img{max-width:92vw; max-height:88vh; object-fit:contain}
#lb .x{position:absolute; top:18px; right:26px; color:#fff; font-size:2.2rem; cursor:pointer; line-height:1; font-family:Georgia,serif}

@media (max-width:820px){
  .split{grid-template-columns:1fr; gap:26px}
  section.band{padding:48px 0}
  .nav{gap:2px 16px}
  .nav a{font-size:.95rem}
  .logo img{width:84px}
  .site-header{padding:20px 16px 14px}
}
