:root{
  --green-900:#0e3d29;
  --green-700:#1b7a4d;
  --green-600:#22935c;
  --green-100:#e6f5ec;
  --mint-50:#f1f9f3;
  --teal-600:#0e9594;
  --blue-600:#2d6cdf;
  --ink-900:#12261c;
  --ink-700:#33473d;
  --muted-500:#68796f;
  --line-200:#dfe9e2;
  --white:#ffffff;
  --amber-600:#c9821f;
  --amber-100:#fbeed9;
  --red-600:#c94a3b;
  --red-100:#fbe4e0;
  --radius-s:10px;
  --radius-m:16px;
  --radius-l:24px;
  --shadow-card:0 1px 2px rgba(18,38,28,.06),0 10px 30px -18px rgba(18,38,28,.25);
  --font-head:"Fraunces",serif;
  --font-body:"Inter",sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink-900);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none;margin:0;padding:0}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit}
h1,h2,h3,h4{font-family:var(--font-head);margin:0;line-height:1.15;color:var(--ink-900);font-weight:600}
p{margin:0;color:var(--muted-500);line-height:1.6}

:focus-visible{outline:3px solid var(--teal-600);outline-offset:2px}

.wrap{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:0 24px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:13px 24px;
  border-radius:999px;
  border:1px solid transparent;
  font-size:15px;
  font-weight:600;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--green-700);color:var(--white)}
.btn-primary:hover{background:var(--green-900);box-shadow:0 8px 20px -8px rgba(27,122,77,.55)}
.btn-outline{background:transparent;color:var(--green-700);border-color:var(--green-700)}
.btn-outline:hover{background:var(--green-100)}
.btn-ghost{background:transparent;color:var(--ink-700)}
.btn-ghost:hover{background:var(--mint-50)}
.btn-block{width:100%}
.btn-sm{padding:9px 16px;font-size:13.5px}

.badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 12px;
  border-radius:999px;
  font-size:12.5px;
  font-weight:600;
}
.badge-upcoming{background:var(--amber-100);color:var(--amber-600)}
.badge-completed{background:var(--green-100);color:var(--green-700)}
.badge-cancelled{background:var(--red-100);color:var(--red-600)}

.card{
  background:var(--white);
  border:1px solid var(--line-200);
  border-radius:var(--radius-m);
  box-shadow:var(--shadow-card);
}

.section{padding:88px 0}
.section-tight{padding:56px 0}

.section-head{
  max-width:560px;
  margin-bottom:44px;
}
.section-head p{margin-top:10px;font-size:17px}
.section-head h2{font-size:clamp(28px,3.4vw,38px)}

@media (max-width:900px){
  .section{padding:60px 0}
  .section-tight{padding:40px 0}
}