:root {
  --ink: #1f2523;
  --paper: #f3f0ea;
  --warm: #ded7cd;
  --line: #c8c1b6;
  --signal: #bc4f35;
  --muted: #626661;
  --serif: "Instrument Serif", Georgia, serif;
  --sans: "Instrument Sans", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); line-height: 1.5; }
a { color: inherit; }
.skip-link { position: absolute; left: -999px; top: 0; z-index: 10; background: var(--ink); color: white; padding: 12px 16px; }
.skip-link:focus { left: 12px; }
.site-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px clamp(20px,5vw,72px); background:var(--ink); color:#fff; }
.brand { font-weight:700; letter-spacing:.02em; text-decoration:none; }
.brand span { color:#d97859; }
.back { color:#fff; text-underline-offset:4px; font-size:.92rem; }
.hero, .section, .footer-inner { max-width:1180px; margin:0 auto; padding-left:clamp(20px,5vw,72px); padding-right:clamp(20px,5vw,72px); }
.hero { padding-top:clamp(60px,10vw,130px); padding-bottom:clamp(60px,10vw,120px); min-height:62vh; display:grid; align-content:center; gap:24px; }
.eyebrow { font-size:.77rem; text-transform:uppercase; letter-spacing:.13em; color:var(--signal); font-weight:700; margin:0; }
h1,h2,h3,p { margin-top:0; }
h1 { font-family:var(--serif); font-weight:400; font-size:clamp(3.1rem,8vw,7.3rem); line-height:.88; max-width:950px; letter-spacing:-.045em; margin-bottom:26px; }
h1 em { color:var(--signal); font-style:italic; }
h2 { font-family:var(--serif); font-weight:400; font-size:clamp(2.2rem,5vw,4.3rem); line-height:.96; letter-spacing:-.035em; margin-bottom:22px; }
h3 { font-size:1.12rem; margin-bottom:8px; }
.lead { font-size:clamp(1.1rem,2vw,1.38rem); max-width:690px; color:#414743; }
.intro-note { border-left:2px solid var(--signal); padding-left:16px; max-width:650px; color:var(--muted); }
.section { padding-top:clamp(58px,8vw,110px); padding-bottom:clamp(58px,8vw,110px); border-top:1px solid var(--line); }
.dark { background:var(--ink); color:#fff; max-width:none; }
.dark h2,.dark .lead { color:#fff; }
.dark .eyebrow { color:#d97859; }
.button { display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--ink); padding:14px 20px; background:var(--ink); color:#fff; text-decoration:none; font-weight:650; cursor:pointer; font:inherit; }
.button:hover { background:var(--signal); border-color:var(--signal); }
.button.light { background:transparent; color:var(--ink); }
.button.light:hover { color:#fff; }
.button-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.card { border:1px solid var(--line); padding:24px; background:#f8f6f2; }
.card p { color:var(--muted); margin-bottom:0; }
.steps { counter-reset:step; display:grid; gap:0; max-width:820px; }
.step { display:grid; grid-template-columns:90px 1fr; gap:22px; padding:22px 0; border-top:1px solid rgba(255,255,255,.24); }
.step:before { counter-increment:step; content:"0" counter(step); color:#d97859; font-family:var(--serif); font-size:2.5rem; line-height:1; }
.step p { margin-bottom:0; color:#d8d9d6; }
.scope { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.scope > div { padding:26px; border:1px solid var(--line); }
.scope ul { padding-left:19px; margin:0; }
.scope li { margin:8px 0; }
.included { background:#e6ece5; }
.excluded { background:#eee8e1; }
.price { font-family:var(--serif); font-size:clamp(3.2rem,6vw,5.2rem); line-height:.9; margin:16px 0; }
.fine { color:var(--muted); font-size:.9rem; max-width:760px; }
.form-wrap { max-width:760px; }
form { display:grid; gap:18px; }
label { display:block; font-weight:650; margin-bottom:7px; }
input,select,textarea { width:100%; border:1px solid #969188; background:#fffefa; color:var(--ink); font:inherit; padding:13px; border-radius:0; }
textarea { min-height:130px; resize:vertical; }
.choice { display:flex; gap:10px; align-items:flex-start; font-size:.94rem; color:#484e49; }
.choice input { width:auto; margin-top:4px; }
.form-status { min-height:24px; margin:0; font-size:.94rem; }
.notice { border:1px solid #bcb5ab; padding:16px; background:#eeebe5; font-size:.93rem; }
.faq { display:grid; gap:0; border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); padding:18px 0; }
summary { cursor:pointer; font-weight:650; }
details p { padding-top:12px; margin-bottom:0; color:var(--muted); max-width:780px; }
footer { background:var(--ink); color:#fff; }
.footer-inner { padding-top:38px; padding-bottom:38px; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; font-size:.92rem; }
.footer-inner a { color:#fff; text-underline-offset:4px; }
@media (max-width:700px) { .grid,.scope { grid-template-columns:1fr; } .step { grid-template-columns:58px 1fr; gap:14px; } .site-header { padding-top:17px; padding-bottom:17px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
