:root{
  --paper:#faf6f0; --paper-2:#f2ebe1; --ink:#2a2520; --ink-soft:#5d554c;
  --clay:#b0563c; --clay-dark:#8e4229; --line:#e2d8ca; --card:#fffdfa;
  --green:#4f7357; --amber:#a8761d;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font:17px/1.65 ui-serif,Georgia,"Iowan Old Style","Times New Roman",serif;
}
a{color:var(--clay-dark)}
h1,h2,h3{line-height:1.15; letter-spacing:-.015em; margin:0 0 .5em}
h1{font-size:clamp(2rem,5vw,3.3rem); font-weight:600}
h2{font-size:clamp(1.3rem,3vw,1.85rem); font-weight:600}
h3{font-size:1.1rem}
p{margin:0 0 1rem}

.top{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  flex-wrap:wrap; padding:1.1rem clamp(1rem,5vw,3rem);
  border-bottom:1px solid var(--line); background:var(--paper);
}
.brand{font-weight:600; text-decoration:none; color:var(--ink); font-size:1.05rem}
.brand-mark{color:var(--clay); font-size:1.3rem; vertical-align:-2px}
.top nav{display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap}
.top nav a{text-decoration:none; color:var(--ink-soft); font-size:.95rem}
.top nav a:hover{color:var(--clay-dark)}
.top nav a.btn{color:#fff}

main{max-width:60rem; margin:0 auto; padding:0 clamp(1rem,5vw,3rem)}
main.narrow{max-width:44rem}
main.wide{max-width:78rem}

.hero{padding:clamp(3rem,9vw,6rem) 0 clamp(2rem,5vw,3.5rem); max-width:34em}
.small-hero{padding-bottom:1rem}
.eyebrow{
  text-transform:uppercase; letter-spacing:.12em; font-size:.75rem;
  color:var(--clay); font-family:ui-sans-serif,system-ui,sans-serif; margin-bottom:1rem;
}
.lede{font-size:1.12rem; color:var(--ink-soft)}
.hero-actions{display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:1.5rem}
.from{color:var(--ink-soft); font-size:.95rem}

.band{padding:clamp(2rem,5vw,3.2rem) 0; border-top:1px solid var(--line)}
.band.alt{
  background:var(--paper-2); border-radius:14px; padding-left:clamp(1rem,4vw,2.4rem);
  padding-right:clamp(1rem,4vw,2.4rem); margin:1.5rem 0; border-top:0;
}
.note{color:var(--ink-soft); font-size:.98rem; max-width:38em}
.small{font-size:.83rem; color:var(--ink-soft)}
.opt{color:var(--ink-soft); font-weight:400; font-size:.85em}

.topics{list-style:none; padding:0; margin:0; display:grid; gap:.55rem;
  grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}
.topics li{
  background:var(--card); border:1px solid var(--line); border-radius:10px;
  padding:.85rem 1rem; font-size:.98rem;
}
.steps{margin:0; padding-left:1.2rem; max-width:40em}
.steps li{margin-bottom:.8rem}

.prices{display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:1.2rem}
.price{
  background:var(--card); border:1px solid var(--line); border-radius:12px;
  padding:1.1rem 1.5rem; min-width:10rem;
}
.price .mins{margin:0; color:var(--ink-soft); font-size:.9rem}
.price .amount{margin:.2rem 0 0; font-size:1.7rem; font-weight:600}

.btn{
  display:inline-block; background:var(--clay); color:#fff; text-decoration:none;
  border:0; border-radius:999px; padding:.72rem 1.5rem; font:inherit;
  font-size:1rem; cursor:pointer;
}
.btn:hover{background:var(--clay-dark)}
.btn-small{padding:.4rem 1rem; font-size:.88rem}
.btn-quiet{background:transparent; color:var(--clay-dark); border:1px solid var(--line)}
.btn-quiet:hover{background:var(--paper-2); color:var(--clay-dark)}

.card{
  background:var(--card); border:1px solid var(--line); border-radius:14px;
  padding:clamp(1.1rem,3vw,1.8rem);
}
.form{display:grid; gap:1rem; max-width:38rem}
.form label{display:grid; gap:.35rem; font-size:.92rem; font-weight:600}
.form .row{display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}
input,textarea,select{
  font:inherit; font-size:.97rem; font-weight:400; padding:.6rem .7rem;
  border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--ink);
  width:100%;
}
textarea{resize:vertical}
input:focus,textarea:focus,select:focus{outline:2px solid var(--clay); outline-offset:1px}
fieldset{border:0; padding:0; margin:0}
legend{font-size:.92rem; font-weight:600; padding:0 0 .35rem}
.radios{display:flex; gap:.6rem; flex-wrap:wrap}
.radio{display:flex; align-items:center; gap:.45rem; font-weight:400;
  border:1px solid var(--line); border-radius:999px; padding:.45rem .9rem; background:#fff}
.radio input{width:auto}
.hp{position:absolute; left:-9999px; height:0; overflow:hidden}
.inline{display:inline-flex; gap:.4rem; align-items:center; margin:0}
.error{color:#a3311f; font-weight:600}
.ok{color:var(--green); font-weight:600}
hr{border:0; border-top:1px solid var(--line); margin:.5rem 0}

.summary{display:grid; gap:.8rem; grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}
.summary span{display:block; font-size:.8rem; color:var(--ink-soft);
  text-transform:uppercase; letter-spacing:.08em}
.bank{
  background:var(--card); border:1px solid var(--line); border-radius:10px;
  padding:1rem; white-space:pre-wrap; font:14px/1.6 ui-monospace,Menlo,Consolas,monospace;
}

.stats{display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(11rem,1fr)); margin:1.5rem 0}
.stat{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:1.1rem}
.stat-value{margin:0; font-size:1.9rem; font-weight:600}
.stat-label{margin:.15rem 0 0; font-size:.85rem; color:var(--ink-soft)}
.table-wrap{overflow-x:auto}
table{border-collapse:collapse; width:100%; font-size:.92rem; background:var(--card)}
th,td{text-align:left; padding:.7rem .8rem; border-bottom:1px solid var(--line); vertical-align:top}
th{font-size:.78rem; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-soft)}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace}
.quote{font-style:italic}
.pill{display:inline-block; padding:.15rem .6rem; border-radius:999px; font-size:.78rem;
  background:var(--paper-2); border:1px solid var(--line)}
.pill-paid{background:#e6f0e7; border-color:#c6dcc9; color:var(--green)}
.pill-confirmed{background:#fbf0da; border-color:#ecd9ab; color:var(--amber)}
.pill-cancelled{text-decoration:line-through; color:var(--ink-soft)}
tr.st-cancelled{opacity:.55}

.foot{
  border-top:1px solid var(--line); margin-top:3rem;
  padding:2rem clamp(1rem,5vw,3rem) 3rem; color:var(--ink-soft); font-size:.9rem;
}
.foot .care{max-width:44em; background:var(--paper-2); border-radius:10px; padding:.9rem 1rem}
.foot a{color:var(--clay-dark)}

.pay{margin:0 0 1rem}
.paytag{margin:.6rem 0 0; color:var(--ink-soft); font-size:.95rem}
.paytag strong{font-family:ui-monospace,Menlo,Consolas,monospace}

.rule{
  max-width:38em; margin:0 0 1.2rem; padding:.85rem 1.1rem; font-size:.98rem;
  background:#fff; border:1px solid var(--line); border-left:4px solid var(--clay);
  border-radius:0 10px 10px 0;
}
.rule strong{color:var(--clay-dark)}
