:root{--copper:#B87333;--copper-dark:#8A4F1C;--cream:#F5F5DC;--ink:#2D2D2D;--olive-dark:#4F6B19;--error:#B3261E}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',system-ui,sans-serif;color:var(--ink);background:#fff}
h1,h2,h3,.font-serif{font-family:'Playfair Display',Georgia,serif}
*:focus-visible{outline:3px solid var(--olive-dark);outline-offset:3px;border-radius:3px}
.skip-link{position:absolute;left:1rem;top:-4rem;z-index:100;background:var(--ink);color:#fff;padding:.75rem 1.25rem;border-radius:.5rem;font-weight:600;transition:top .15s ease}
.skip-link:focus{top:1rem}
.section{padding:4rem 0}
@media(min-width:768px){.section{padding:5.5rem 0}}
.section-cream{background:var(--cream)}
.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--copper-dark)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.85rem 1.6rem;border-radius:.6rem;font-weight:600;line-height:1.2;border:2px solid transparent;cursor:pointer;transition:background-color .15s ease,color .15s ease}
.btn-sm{padding:.55rem 1.1rem;font-size:.9rem}
.btn-primary{background:var(--copper-dark);color:#fff}
.btn-primary:hover{background:#6f3f14}
.btn-secondary{background:#fff;color:var(--copper-dark);border-color:currentColor}
.btn-secondary:hover{background:var(--cream)}
.btn-ghost{color:#fff;border-color:#fff}
.btn-ghost:hover{background:#fff;color:var(--ink)}
.btn[disabled]{opacity:.65;cursor:not-allowed}
.card{background:#fff;border:1px solid rgba(184,115,51,.28);border-radius:1rem;padding:1.75rem;box-shadow:0 1px 2px rgba(45,45,45,.06);transition:box-shadow .2s ease,transform .2s ease}
.card:hover{box-shadow:0 14px 32px rgba(45,45,45,.13);transform:translateY(-2px)}
.link,.link-arrow{color:var(--copper-dark);text-decoration:underline;text-underline-offset:3px;font-weight:600}
.link:hover,.link-arrow:hover{color:var(--ink)}
.link-arrow{display:inline-block}
.nav-link{display:block;padding:.6rem .1rem;font-weight:600;border-bottom:2px solid transparent}
.nav-link:hover{color:var(--copper-dark)}
.nav-link[aria-current="page"]{color:var(--copper-dark);border-bottom-color:var(--copper-dark)}
.nav-toggle{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border:2px solid var(--copper-dark);border-radius:.6rem;font-weight:600;color:var(--copper-dark);background:#fff}
.footer-heading{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.footer-link{text-decoration:underline;text-underline-offset:3px}
.footer-link:hover{color:#fff}
.check{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:1.5rem;height:1.5rem;border-radius:9999px;background:var(--olive-dark);color:#fff;font-size:.8rem;font-weight:700}
.step{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:2.25rem;height:2.25rem;border-radius:9999px;background:var(--copper-dark);color:#fff;font-weight:700}
.timeline-dot{position:absolute;left:-1.9rem;top:.6rem;width:.85rem;height:.85rem;border-radius:9999px;background:var(--copper-dark);box-shadow:0 0 0 4px #fff}
.form-label{display:block;font-weight:600;margin-bottom:.4rem}
.form-input{width:100%;padding:.8rem 1rem;border:2px solid rgba(45,45,45,.35);border-radius:.6rem;background:#fff;color:var(--ink);font:inherit}
.form-input:hover{border-color:var(--copper-dark)}
.form-input[aria-invalid="true"]{border-color:var(--error);background:#fff5f4}
.form-error{margin-top:.45rem;color:var(--error);font-size:.9rem;font-weight:600}
.form-alert{padding:1rem 1.15rem;border-radius:.6rem;border:2px solid var(--error);background:#fff5f4;color:var(--error);font-weight:600}
.form-success{margin-top:2rem;padding:1.75rem;border-radius:1rem;border:2px solid var(--olive-dark);background:#f4f7ea}
.spinner{width:1.1rem;height:1.1rem;border:3px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:9999px;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.legal h2{margin-top:2.5rem;font-size:1.4rem;font-weight:700}
.legal h3{margin-top:1.5rem;font-size:1.1rem;font-weight:700}
.legal p{margin-top:.9rem;line-height:1.75;color:rgba(45,45,45,.9)}
.legal ul{margin-top:.9rem;padding-left:1.25rem;list-style:disc;line-height:1.75;color:rgba(45,45,45,.9)}
.legal .note{padding:1rem 1.15rem;border-left:4px solid var(--copper-dark);background:var(--cream);font-size:.95rem}
.gap{background:#ffe9a8;padding:0 .25rem;color:var(--ink);font-weight:600}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
