/* Bern Site Studio — sub-page styles (matches index brand) */
:root {
  --plaster: #EDE9DF; --plaster-2: #E3DECF;
  --board: #0F221C; --board-2: #16302A; --board-3: #1D3B33;
  --moss: #375F50; --oak: #C9873B; --oak-2: #E4AC63; --oak-ink: #96601C;
  --ink: #14211C; --ink-soft: #33403A;
  --chalk: #F1EEE4; --chalk-soft: rgba(241,238,228,0.85);
  --line: rgba(20,33,28,0.3); --line-strong: rgba(20,33,28,0.85); --line-dark: rgba(241,238,228,0.18);
  --display: 'Bricolage Grotesque', sans-serif;
  --body-f: 'Instrument Sans', sans-serif;
  --mono: 'Spline Sans Mono', monospace;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--body-f); background:var(--plaster); color:var(--ink); line-height:1.65; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
::selection { background:var(--oak); color:var(--board); }
:focus-visible { outline:2px solid var(--oak); outline-offset:3px; }
.wrap { max-width:1080px; margin:0 auto; padding:0 28px; }
.spec { font-family:var(--mono); font-size:.78rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; }

nav { position:sticky; top:0; z-index:50; background:var(--plaster); border-bottom:1px solid var(--line); }
.nav-inner { display:flex; align-items:center; justify-content:space-between; padding:16px 0; }
.logo { font-family:var(--display); font-weight:800; font-size:1.15rem; display:flex; align-items:center; gap:10px; }
.logo .mark { width:14px; height:14px; background:var(--oak); display:inline-block; }
.nav-links { display:flex; gap:22px; list-style:none; font-size:.92rem; font-weight:500; align-items:center; }
.nav-cta { background:var(--board); color:var(--chalk); padding:10px 18px; }
@media (max-width:760px){ .nav-links a:not(.nav-cta){ display:none; } }

.hero-sub { padding:72px 0 56px; border-bottom:1px solid var(--line); }
.crumbs { font-family:var(--mono); font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:22px; color:var(--ink-soft); }
.crumbs a:hover { color:var(--oak-ink); }
h1 { font-family:var(--display); font-weight:800; font-size:clamp(2.1rem,5.2vw,3.4rem); line-height:1.06; letter-spacing:-.02em; margin-bottom:18px; }
h1 .oak { color:var(--oak-ink); }
.hero-sub .sub { font-size:1.12rem; max-width:640px; color:var(--ink-soft); margin-bottom:26px; }
.btn { display:inline-block; background:var(--board); color:var(--chalk); font-weight:600; padding:14px 26px; border:1px solid var(--board); transition:.2s; }
.btn:hover { background:var(--oak); border-color:var(--oak); color:var(--board); }
.btn-ghost { background:transparent; color:var(--ink); border:1px solid var(--line-strong); }
.btn-ghost:hover { background:var(--board); color:var(--chalk); border-color:var(--board); }
.hero-ctas { display:flex; gap:14px; flex-wrap:wrap; }
.fast-facts { display:flex; gap:26px; flex-wrap:wrap; margin-top:30px; font-family:var(--mono); font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); }
.fast-facts b { color:var(--oak-ink); }

section { padding:60px 0; }
section + section { border-top:1px solid var(--line); }
h2 { font-family:var(--display); font-weight:800; font-size:clamp(1.5rem,3.4vw,2.2rem); letter-spacing:-.01em; margin-bottom:18px; }
.prose p { max-width:70ch; margin-bottom:16px; color:var(--ink-soft); }
.prose strong { color:var(--ink); }
.cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:22px; margin-top:26px; }
.card { border:1px solid var(--line); padding:22px; background:var(--chalk); }
.card h3 { font-family:var(--display); font-size:1.08rem; font-weight:700; margin-bottom:8px; }
.card p { font-size:.95rem; color:var(--ink-soft); }
ul.ticks { list-style:none; margin-top:18px; max-width:70ch; }
ul.ticks li { padding:9px 0 9px 30px; position:relative; border-bottom:1px dashed var(--line); color:var(--ink-soft); }
ul.ticks li::before { content:'✓'; position:absolute; left:0; color:var(--oak-ink); font-weight:700; }

.price-band { background:var(--board); color:var(--chalk); }
.price-band h2 { color:var(--chalk); }
.price-band p { color:var(--chalk-soft); max-width:70ch; }
.price-amt { font-family:var(--display); font-weight:800; font-size:2.6rem; color:var(--oak-2); margin:12px 0 4px; }
.price-amt small { font-size:1rem; color:var(--chalk-soft); font-weight:500; margin-left:6px; }

details { border:1px solid var(--line); background:var(--chalk); margin-bottom:12px; }
details summary { cursor:pointer; padding:16px 20px; font-weight:600; font-family:var(--display); list-style:none; position:relative; padding-right:44px; }
details summary::after { content:'+'; position:absolute; right:20px; top:50%; transform:translateY(-50%); font-family:var(--mono); color:var(--oak-ink); font-size:1.2rem; }
details[open] summary::after { content:'–'; }
details .a { padding:0 20px 18px; color:var(--ink-soft); max-width:75ch; }

.other-trades { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.other-trades a { border:1px solid var(--line-strong); padding:8px 16px; font-size:.9rem; font-weight:500; transition:.2s; }
.other-trades a:hover { background:var(--board); color:var(--chalk); border-color:var(--board); }

footer { background:var(--board); color:var(--chalk-soft); padding:44px 0 30px; margin-top:0; }
footer a:hover { color:var(--oak-2); }
.foot-grid { display:flex; flex-wrap:wrap; gap:34px; justify-content:space-between; padding-bottom:26px; border-bottom:1px solid var(--line-dark); }
.foot-grid h4 { font-family:var(--display); color:var(--chalk); margin-bottom:10px; font-size:.98rem; }
.foot-grid .col a { display:block; font-size:.9rem; padding:3px 0; }
.foot-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:18px; font-size:.85rem; }
