@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&family=Outfit:wght@400;500;600&display=swap");
:root{--ink:#1d241c;--moss:#3f5340;--sage:#7c9274;--sand:#efe6d6;--paper:#f7f1e6;--copper:#b56a3a;--line:#d9d0c0}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 Outfit,system-ui,sans-serif}
a{color:inherit}
img{max-width:100%;display:block}
.demo-banner{background:var(--ink);color:#f3eadc;text-align:center;padding:.55rem 1rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.demo-banner a{color:#e2c39a}
.wrap{max-width:1180px;margin:0 auto;padding:0 6%}
.nav{display:flex;align-items:center;gap:1.6rem;padding:1.1rem 0;position:sticky;top:0;background:rgba(247,241,230,.92);backdrop-filter:blur(12px);z-index:6;border-bottom:1px solid transparent}
.word{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.45rem;text-decoration:none;line-height:1}
.word small{display:block;font-family:Outfit,sans-serif;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);margin-top:.28rem}
.nav nav{margin-left:auto;display:flex;gap:1.4rem;font-size:.82rem;font-weight:500}
.nav nav a{text-decoration:none}
.cta{margin-left:.4rem;background:var(--ink);color:var(--sand);text-decoration:none;padding:.65rem 1rem;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.hero{min-height:78vh;display:grid;grid-template-columns:1fr 1.15fr;gap:0}
.hero-copy{padding:clamp(3rem,8vh,6rem) 8% 4rem 0;display:flex;flex-direction:column;justify-content:center}
.kicker{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--moss);margin:0 0 1rem}
h1,h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;letter-spacing:-.03em;line-height:.95;margin:0 0 1.1rem}
h1{font-size:clamp(3.2rem,8vw,5.8rem);max-width:9ch}
h2{font-size:clamp(2.2rem,4vw,3.4rem)}
.lede{max-width:28rem;font-size:1.08rem;color:#445043}
.row{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.6rem}
.btn{display:inline-block;padding:.85rem 1.15rem;text-decoration:none;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.btn.dark{background:var(--ink);color:#f7f1e6}
.btn.ghost{border:1px solid var(--ink);color:var(--ink);background:transparent}
.hero-photo{min-height:78vh;background:#cfc3ad center/cover no-repeat}
.section{padding:clamp(4rem,8vw,6.5rem) 0}
.intro{max-width:34rem;margin-bottom:2.2rem}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.card{background:#fff;padding:1.4rem 1.3rem 1.6rem;border:1px solid var(--line);min-height:180px}
.card h3{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.55rem;margin:.2rem 0 .5rem}
.card p{margin:0;color:#5b6558;font-size:.95rem}
.gallery{display:grid;grid-template-columns:1.4fr 1fr;gap:.7rem}
.gallery img{width:100%;height:100%;object-fit:cover;min-height:240px}
.visit{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:start}
.map{min-height:280px;background:var(--sand);border:1px solid var(--line);display:grid;place-items:center;text-align:center;padding:2rem;color:#5b6558}
.hours{white-space:pre-line;color:#5b6558}
form{display:grid;gap:.7rem}
input,textarea,select{width:100%;border:1px solid var(--line);background:#fff;padding:.8rem .85rem;font:inherit}
label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--moss)}
.note{font-size:.8rem;color:#6a7366}
footer{padding:2rem 0 3rem;border-top:1px solid var(--line);display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:1.2rem;font-size:.82rem;color:#5b6558}
.toast{display:none;margin-top:.8rem;padding:.8rem;background:var(--moss);color:#fff}
@media(max-width:860px){
  .hero,.gallery,.visit,.grid3,footer,.nav nav{grid-template-columns:1fr;display:block}
  .nav nav{display:none}
  .hero-photo{min-height:42vh}
  .hero-copy{padding:2.4rem 0 2rem}
  footer{display:grid;gap:1rem}
}
@media(prefers-reduced-motion:no-preference){
  .hero-copy{animation:rise .9s ease both}
  @keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
}
