@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap");

:root{
  --brand-rust:#b85a2a;
  --brand-rust-deep:#9f4514;
  --brand-sage:#6d7151;
  --brand-sand:#b2a287;
  --brand-stone:#d7d6d2;
  --brand-ivory:#faf9f6;
  --brand-porcelain:#f6f4ef;
  --brand-ink:#0d0d0d;
  --charcoal:#1a1a1a;
  --paper:#fbf9f4;
  --text:#222;
  --muted:#666;
  --maxw:1200px;
  --radius:12px;
  --radius-lg:18px;
  --gap:20px;
  --shadow-soft:0 18px 40px rgba(26,26,26,.08);
  --shadow-subtle:0 6px 18px rgba(26,26,26,.05);
  --section-pad:clamp(60px,14vw,120px)
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Manrope","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  color:var(--text);
  background:var(--paper);
  line-height:1.7;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility
}

::selection{background:rgba(184,90,42,.18)}

a{color:var(--brand-rust);text-decoration:none;transition:color .2s ease,opacity .2s ease}
a:hover{color:var(--brand-rust-deep)}
a:focus-visible{outline:3px solid rgba(184,90,42,.35);outline-offset:3px}

img{max-width:100%;height:auto;display:block}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,4vw,32px)}

section{padding:var(--section-pad) 0;position:relative}
section + section{padding-top:0}

h1,h2,h3,h4{
  font-family:"Playfair Display","Times New Roman",serif;
  line-height:1.1;
  margin:0 0 16px;
  letter-spacing:-.01em;
  color:var(--brand-ink)
}

h1{font-size:clamp(2.75rem,5vw,3.75rem)}
h2{font-size:clamp(2rem,3.5vw,2.8rem)}
h3{font-size:clamp(1.4rem,2.5vw,1.8rem)}
h4{font-size:1.25rem;font-weight:600}

p{margin:0 0 18px;color:var(--text);max-width:70ch}

.microcopy{font-size:.95rem;color:var(--muted);letter-spacing:.01em}
.muted{color:var(--muted)}
.small{font-size:.9rem}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-radius:999px;
  padding:14px 24px;
  font-weight:600;
  font-size:1.05rem;
  letter-spacing:.01em;
  border:0;
  cursor:pointer;
  background:linear-gradient(135deg,var(--brand-rust),var(--brand-rust-deep));
  color:#fff;
  box-shadow:var(--shadow-subtle);
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease
}

.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft);filter:brightness(.99);text-decoration:none}
.btn:focus-visible{outline:3px solid rgba(184,90,42,.4);outline-offset:4px}
.btn-primary{color:#fff}
.btn.secondary{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.6);
  color:#fff;
  box-shadow:none
}
.btn.secondary:hover{background:rgba(255,255,255,.2);box-shadow:none}
.btn-ghost{
  background:rgba(184,90,42,.08);
  border:1px solid rgba(184,90,42,.28);
  color:var(--brand-rust-deep);
  box-shadow:none
}
.btn-ghost:hover{
  background:rgba(184,90,42,.14);
  box-shadow:none;
  color:var(--brand-rust-deep)
}

.hero{padding:0}

.card{
  background:#fff;
  border:1px solid rgba(13,13,13,.06);
  padding:24px;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-subtle);
  margin:24px 0
}

.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--gap)}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--gap)}
.link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--gap);padding:0;list-style:none}

label{display:block;margin-bottom:10px;font-weight:500}
input,select,textarea{
  width:100%;
  padding:12px 14px;
  border:1px solid rgba(17,17,17,.15);
  border-radius:10px;
  font-size:16px;
  background:#fff;
  transition:border-color .2s ease,box-shadow .2s ease
}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--brand-rust);box-shadow:0 0 0 4px rgba(184,90,42,.15)}

.checkbox{display:flex;align-items:center;gap:8px}

@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}
