/* Overland Cabinetry — site-wide styles (dark editorial system) */
:root{
  --bg:#0f0e0c; --bg2:#161411; --paper:#f4f1ec; --ink:#efeae2;
  --soft:#a89f92; --oak:#c8955c; --line:rgba(244,241,236,.14);
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{background:var(--bg);color:var(--ink);overflow-x:clip}
body{font-family:'Inter',system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,.serif{font-family:'Fraunces',Georgia,serif;font-weight:400;line-height:1.06}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.k{font-size:.72rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--oak)}

/* nav */
nav.site{position:fixed;top:0;left:0;right:0;z-index:90;display:flex;justify-content:space-between;
  align-items:center;padding:18px 4vw;mix-blend-mode:difference}
nav.site .logo{font-family:'Fraunces',serif;font-size:1.05rem;letter-spacing:.12em}
nav.site .links{display:flex;gap:26px;align-items:center;font-size:.8rem;font-weight:500;letter-spacing:.1em}
nav.site .links a{opacity:.85}
nav.site .links a:hover,nav.site .links a.on{opacity:1;text-decoration:underline;text-underline-offset:6px}
nav.site .cta{font-size:.75rem;font-weight:600;letter-spacing:.12em;border:1px solid rgba(255,255,255,.5);
  border-radius:99px;padding:8px 18px}
@media (max-width:900px){nav.site .links{display:none}}

/* page hero (subpages) */
.page-hero{position:relative;padding:24vh 4vw 10vh;border-bottom:1px solid var(--line);overflow:hidden}
.page-hero .k{margin-bottom:14px;display:block}
.page-hero h1{font-size:clamp(2.6rem,7.5vw,6rem)}
.page-hero p.lead{color:var(--soft);max-width:560px;margin-top:22px;font-size:1.05rem}

/* generic content blocks */
.wrap{max-width:1240px;margin:0 auto;padding:0 4vw}
.split{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;padding:12vh 4vw}
.split .frame{overflow:hidden;border-radius:4px}
.split .frame img{width:100%;height:100%;object-fit:cover}
.split h2{font-size:clamp(1.9rem,4vw,3.2rem);margin-bottom:18px}
.split p{color:var(--soft);margin-bottom:16px}
.split .btn-line{display:inline-block;font-family:'Fraunces',serif;border:1px solid var(--oak);
  color:var(--oak);border-radius:99px;padding:13px 30px;margin-top:10px;transition:all .3s ease}
.split .btn-line:hover{background:var(--oak);color:var(--bg)}
.split.rev .frame{order:2}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:6vh}.split.rev .frame{order:0}}

/* buttons */
.btn-solid{display:inline-block;font-family:'Fraunces',serif;font-size:1.05rem;color:var(--bg);
  background:var(--paper);border-radius:99px;padding:16px 40px;transition:transform .3s ease}
.btn-solid:hover{transform:scale(1.05)}

/* forms */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-grid .full{grid-column:1/-1}
label{display:block;font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--soft);margin-bottom:8px}
input[type=text],input[type=tel],input[type=email],textarea{
  width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:6px;
  color:var(--ink);font:inherit;padding:14px 16px;transition:border-color .2s}
input:focus,textarea:focus{outline:none;border-color:var(--oak)}
textarea{min-height:150px;resize:vertical}
.fineprint{font-size:.75rem;color:var(--soft);line-height:1.5}
@media (max-width:700px){.form-grid{grid-template-columns:1fr}}

/* gallery grid page */
.masonry{columns:3;column-gap:2vw;padding:8vh 4vw 14vh}
.masonry figure{break-inside:avoid;margin-bottom:2vw;overflow:hidden;border-radius:4px;position:relative}
.masonry img{width:100%;transition:transform .6s ease}
.masonry figure:hover img{transform:scale(1.04)}
.masonry figcaption{padding:10px 2px 4px;color:var(--soft);font-size:.85rem}
@media (max-width:1000px){.masonry{columns:2}}
@media (max-width:640px){.masonry{columns:1}}

/* prose (legal) */
.prose{max-width:820px;margin:0 auto;padding:10vh 4vw 16vh;color:var(--soft)}
.prose h1,.prose h2,.prose h3{color:var(--ink);margin:2.2em 0 .6em;line-height:1.2}
.prose h1{font-size:2.2rem}.prose h2{font-size:1.6rem}.prose h3{font-size:1.15rem}
.prose p,.prose li{margin-bottom:.8em;font-size:.95rem}
.prose ul,.prose ol{padding-left:1.4em;margin-bottom:1em}
.prose a{color:var(--oak)}
.prose hr{border:none;border-top:1px solid var(--line);margin:3em 0}

/* footer */
footer.site{border-top:1px solid var(--line);padding:10vh 4vw 5vh;color:var(--soft)}
footer.site .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:4vw;margin-bottom:8vh}
footer.site .brand{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--ink);margin-bottom:14px}
footer.site h4{font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  color:var(--oak);margin-bottom:16px}
footer.site li{list-style:none;margin-bottom:9px;font-size:.9rem}
footer.site a:hover{color:var(--ink)}
footer.site .base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  border-top:1px solid var(--line);padding-top:22px;font-size:.78rem}
@media (max-width:860px){footer.site .cols{grid-template-columns:1fr 1fr}}

/* reveal helper */
.rv{opacity:0;transform:translateY(40px)}
