:root{--iv:#f6f1e7;--iv2:#fbf8f2;--ch:#1f1f1d;--sg:#8a9a86;--sgd:#4f5f4c;--cb:#d8c7a8;--mut:#625e56;--line:#e3d9c5;--r:4px;--hh:74px}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font:400 1.0625rem/1.65 "Hanken Grotesk",system-ui,sans-serif;background:var(--iv);color:var(--ch)}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;line-height:1.1}
h1{font-size:clamp(2.9rem,6.5vw,5.4rem)}
h2{font-size:clamp(2rem,3.6vw,3rem);margin-bottom:1rem}
h3{font-size:1.5rem}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--sgd);outline-offset:3px}
.wrap{max-width:1180px;margin:0 auto;padding:0 1.5rem}
.narrow{max-width:820px}
section{padding:5.5rem 0}
section[id]{scroll-margin-top:var(--hh)}
.alt{background:var(--iv2)}
.muted{color:var(--mut)}
.intro{margin-bottom:2rem;max-width:36rem}
.gap{margin:1.5rem 0 .5rem}.gap2{margin:2rem 0 .5rem}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem;z-index:99}

/* Header: transparent over hero, solid after scroll */
header{position:fixed;inset:0 0 auto 0;z-index:30;color:#fff;transition:background .3s,color .3s,box-shadow .3s}
header.solid{background:rgba(246,241,231,.94);color:var(--ch);backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;height:var(--hh)}
.logo{font:500 1.7rem "Cormorant Garamond",serif;text-decoration:none;letter-spacing:.03em}
nav ul{display:flex;gap:2rem;list-style:none;padding:0;align-items:center}
nav a{text-decoration:none;font-size:.95rem;padding:.3rem 0;border-bottom:1px solid transparent}
nav a:not(.btn):hover{border-color:currentColor}
.menu{display:none;background:none;border:0;font:inherit;color:inherit;cursor:pointer;padding:.5rem}

/* Buttons */
.btn{display:inline-block;background:var(--ch);color:var(--iv2);padding:.9rem 1.8rem;border:1px solid var(--ch);border-radius:var(--r);text-decoration:none;font:500 .95rem "Hanken Grotesk",sans-serif;cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.btn:hover{background:var(--sgd);border-color:var(--sgd);color:#fff}
.btn.sm{padding:.55rem 1.2rem}
header:not(.solid) .btn.sm{background:#fff;color:var(--ch);border-color:#fff}
header:not(.solid) .btn.sm:hover{background:var(--cb);border-color:var(--cb);color:var(--ch)}
.btn.ghost{background:transparent;color:var(--ch)}.btn.ghost:hover{background:var(--ch);border-color:var(--ch);color:var(--iv2)}
.btn.light{background:#fff;color:var(--ch);border-color:#fff}.btn.light:hover{background:var(--cb);border-color:var(--cb);color:var(--ch)}
.btn.outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}.btn.outline:hover{background:#fff;color:var(--ch);border-color:#fff}

/* Photographic backgrounds. Each section's real photo is set below (.bg-hero, .bg-cta).
   To use your own photo instead, put it in assets/photos/ and change the url(). */
.photo{position:relative;color:#fff;background:
  linear-gradient(180deg,rgba(18,18,16,.55),rgba(18,18,16,.35) 40%,rgba(18,18,16,.72)),
  var(--img) center/cover no-repeat,
  linear-gradient(135deg,#2a2d28,#4a5546 55%,#6b7867)}
.hero{min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;padding:calc(var(--hh) + 3rem) 0 5rem}
.hero-in{width:100%}
.eyebrow{font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;opacity:.85;margin-bottom:1.2rem}
.hero h1{max-width:14ch;text-shadow:0 2px 30px rgba(0,0,0,.25)}
.lead{max-width:32rem;margin:1.5rem 0 2.2rem;font-size:1.2rem;opacity:.92}
.actions{display:flex;gap:.8rem;flex-wrap:wrap}
.band{text-align:center;padding:7rem 0;background:
  linear-gradient(rgba(18,18,16,.62),rgba(18,18,16,.62)),
  var(--img) center/cover no-repeat fixed,
  linear-gradient(135deg,#2a2d28,#4a5546)}
.band p{max-width:34rem;margin:0 auto 2rem;opacity:.9}

/* Facts strip */
.facts{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0;transform:translateY(-50%);margin-bottom:-2rem;position:relative;z-index:2}
.facts li{background:var(--iv2);padding:1.5rem 1.8rem;border:1px solid var(--line);display:flex;flex-direction:column}
.facts li+li{border-left:0}
.facts strong{font:500 1.35rem "Cormorant Garamond",serif}
.facts span{color:var(--mut);font-size:.95rem}

/* Photos in layout */
.ph{position:relative;overflow:hidden;border-radius:var(--r);background:linear-gradient(135deg,#e6dcc6,#c9d0c4)}
.ph img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.r43{aspect-ratio:4/3}.r45{aspect-ratio:4/5}.r11{aspect-ratio:1}
.split{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.split.top{align-items:start}
.svcs{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.5rem}
.svc{padding:1.5rem;border-top:2px solid var(--cb);background:var(--iv2)}
.svc p{color:var(--mut);margin-top:.5rem;font-size:.98rem}
.owner{display:grid;grid-template-columns:150px 1fr;gap:1.5rem;margin-top:2rem;align-items:start}

/* FAQ / legal */
details{border-bottom:1px solid #ddd2bb;padding:1.1rem 0}
summary{cursor:pointer;font:500 1.3rem "Cormorant Garamond",serif}
details p{margin-top:.6rem;color:var(--mut);max-width:44rem}
.legal{max-width:46rem}.legal h2{font-size:1.7rem}.legal>p{margin-bottom:.8rem}

/* Catalog */
.tools{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;align-items:end}.tools>div{flex:1 1 180px}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.2rem}
.chip{border:1px solid #cdbf9f;background:none;padding:.45rem 1rem;border-radius:99px;font:inherit;font-size:.95rem;cursor:pointer;color:inherit}
.chip[aria-pressed=true]{background:var(--ch);color:var(--iv2);border-color:var(--ch)}
.count{margin-bottom:1rem;font-size:.95rem}
.grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.card{background:var(--iv2);border:1px solid #e6dcc8;border-radius:var(--r);overflow:hidden;transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column;text-align:left;font:inherit;color:inherit;padding:0;cursor:pointer}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 36px -22px rgba(31,31,29,.45)}
.card .ph{border-radius:0}
.card .t{padding:1rem 1.25rem 1.3rem}.card small{color:var(--mut)}
.nophoto{background:repeating-linear-gradient(45deg,#ece4d3 0 14px,#e6ddca 14px 28px)}

/* Dialog */
dialog{border:0;border-radius:var(--r);padding:0;max-width:780px;width:92%;background:var(--iv2);color:var(--ch);margin:auto}
dialog::backdrop{background:rgba(31,31,29,.6)}
.dg{display:grid;grid-template-columns:1fr 1fr}.dg .ph{border-radius:0;height:100%;min-height:320px}.dg .t{padding:2rem}
.dg dl{margin:1rem 0 1.5rem;display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem}.dg dt{color:var(--mut)}
.x{float:right;background:none;border:0;font-size:1.8rem;cursor:pointer;line-height:1;color:inherit}

/* Form */
input,select,textarea{font:inherit;padding:.75rem .9rem;border:1px solid #cdbf9f;border-radius:var(--r);background:#fff;color:var(--ch);width:100%}
label{display:block;font-size:.9rem;margin-bottom:.3rem}
.form{display:grid;gap:1rem}.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.err{color:#9a3b2f;font-size:.85rem;min-height:1.1em}
input[aria-invalid=true],textarea[aria-invalid=true]{border-color:#9a3b2f}
.ok{background:#e6ede3;padding:1rem 1.25rem;border-left:3px solid var(--sgd);display:none}
table{border-collapse:collapse;width:100%}td{padding:.6rem 0;border-bottom:1px solid #ddd2bb}

/* Footer */
footer{background:var(--ch);color:#d9d3c5;padding:4rem 0 2rem;font-size:.95rem}
footer .g{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
footer a{display:block;text-decoration:none;padding:.2rem 0}footer a:hover{color:var(--cb)}
footer .logo{color:#fbf8f2;padding:0}footer .addr{margin-top:.8rem}footer a.inl{display:inline}
footer .copy{margin-top:2.5rem;opacity:.6;font-size:.85rem}

/* Reveal on scroll */
.rv{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.rv.in{opacity:1;transform:none}

@media(max-width:860px){
  .split,.dg,footer .g,.svcs,.two{grid-template-columns:1fr}
  .split{gap:2.5rem}
  .menu{display:block}
  nav{display:none;position:absolute;left:0;right:0;top:var(--hh);background:var(--iv2);color:var(--ch);padding:1.5rem;border-bottom:1px solid var(--line)}
  nav.open{display:block}nav ul{flex-direction:column;align-items:flex-start;gap:1rem}
  header:not(.solid) nav .btn.sm{background:var(--ch);color:var(--iv2);border-color:var(--ch)}
  section{padding:3.5rem 0}
  .facts{grid-template-columns:1fr;transform:none;margin:1.5rem auto -1rem}.facts li+li{border-left:1px solid var(--line);border-top:0}
  .band{background-attachment:scroll}
  .owner{grid-template-columns:110px 1fr}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}.band{background-attachment:scroll}}

/* Real photos (Unsplash, free licence; credits in CREDITS.md) */
.bg-hero{--img:url("https://images.unsplash.com/photo-1788347101988-bf40abcbb2c7?auto=format&fit=crop&w=2000&q=75")}
.bg-cta{--img:url("https://images.unsplash.com/photo-1486250944723-86bca2b15b06?auto=format&fit=crop&w=2000&q=75")}
