:root { --bg:#101314; --ink:#f0ede6; --mut:#b8bcbc; --dim:#8d9294; --acc:#cfa877; --acc2:#e2c193; }
* { box-sizing: border-box; }
html, body { margin:0; padding:0; background:var(--bg); }
body { color:var(--ink); font-family:'Archivo',system-ui,sans-serif; font-weight:300; -webkit-font-smoothing:antialiased; }
a { color:var(--acc); text-decoration:none; }
a:hover { color:var(--acc2); }
::selection { background:var(--acc); color:var(--bg); }
.wrap { max-width:1280px; margin:0 auto; padding:0 48px; }
header.site { display:flex; align-items:center; justify-content:space-between; padding:28px 48px; max-width:1280px; margin:0 auto; }
header.site img { height:46px; display:block; }
.btn-ghost { font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:var(--acc); border:1px solid rgba(207,168,119,.45); padding:10px 22px; border-radius:2px; }
.btn-ghost:hover { background:rgba(207,168,119,.12); color:var(--acc2); }
.hero { padding-top:96px; padding-bottom:72px; }
.kicker { margin:0 0 20px; font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--acc); }
h1 { margin:0; font-family:'Newsreader',Georgia,serif; font-weight:300; font-size:clamp(40px,6vw,90px); line-height:1.08; letter-spacing:-.01em; max-width:19ch; text-wrap:pretty; }
.lede { margin:28px 0 0; font-size:19px; line-height:1.6; color:var(--mut); max-width:52ch; text-wrap:pretty; }
.photo-band { position:relative; overflow:hidden; height:72vh; min-height:420px; }
.photo-band img { position:absolute; left:0; top:-12%; width:100%; height:124%; object-fit:cover; filter:saturate(.82); will-change:transform; }
.photo-band::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(16,19,20,.55) 0%,rgba(16,19,20,.05) 35%,rgba(16,19,20,.05) 65%,rgba(16,19,20,.55) 100%); }
.contact { padding-top:104px; padding-bottom:120px; display:grid; grid-template-columns:minmax(280px,5fr) minmax(320px,6fr); gap:72px; }
h2 { margin:0; font-family:'Newsreader',Georgia,serif; font-weight:400; font-size:34px; line-height:1.25; max-width:20ch; }
.contact-lede { margin:24px 0 0; font-size:17px; line-height:1.65; max-width:46ch; }
.privacy { margin:28px 0 0; font-size:14px; line-height:1.7; color:var(--dim); max-width:46ch; border-left:1px solid rgba(207,168,119,.4); padding-left:18px; }
form { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
label { display:flex; flex-direction:column; gap:8px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); }
.full { grid-column:1 / -1; }
input, textarea { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.14); border-radius:2px; padding:13px 14px; color:var(--ink); font-size:16px; font-family:'Archivo',sans-serif; outline:none; }
input:focus, textarea:focus { border-color:var(--acc); }
input::placeholder, textarea::placeholder { color:#6b7275; }
textarea { resize:vertical; }
.send-row { grid-column:1 / -1; display:flex; align-items:center; gap:18px; }
button[type=submit] { background:var(--acc); color:var(--bg); border:none; border-radius:2px; padding:15px 34px; font-size:13px; letter-spacing:.18em; text-transform:uppercase; font-weight:600; font-family:'Archivo',sans-serif; cursor:pointer; }
button[type=submit]:hover { background:var(--acc2); }
button[type=submit]:disabled { opacity:.55; cursor:default; }
#form-status { font-size:14px; color:var(--acc); }
.cf-turnstile { min-height:65px; }
footer.site { border-top:1px solid rgba(255,255,255,.1); }
.foot { padding:64px 48px; max-width:1280px; margin:0 auto; display:flex; justify-content:space-between; align-items:flex-start; gap:48px; flex-wrap:wrap; }
.foot > img { height:56px; display:block; opacity:.9; }
.foot-cols { display:flex; gap:72px; flex-wrap:wrap; }
.foot-col { font-size:15px; line-height:1.75; color:var(--mut); }
.foot-col .label { margin:0 0 10px; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--acc); }
.foot-col p { margin:0; }
.foot-col strong { font-weight:500; color:var(--ink); }
@media (max-width:860px) {
  .wrap, header.site { padding-left:24px; padding-right:24px; }
  .hero { padding-top:64px; padding-bottom:48px; }
  .photo-band { height:48vh; min-height:320px; }
  .contact { grid-template-columns:1fr; gap:48px; padding-top:72px; padding-bottom:88px; }
  form { grid-template-columns:1fr; }
  .full { grid-column:auto; }
  .send-row { grid-column:auto; }
  .foot { padding:48px 24px; }
}
