:root{
  --teal:#2F7F96;
  --teal-soft:#C5E2EA;
  --deep:#1A3344;
  --cream:#FBF7F1;
  --sand:#F3EBE0;
  --accent:#E8A87C;
  --ink:#243038;
  --ink-soft:#5A6B74;
  --line:#e6dccb;
  --white:#fff;
  --radius:16px;
  --shadow:0 8px 28px rgba(26,51,68,.07);
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:"Source Sans 3",system-ui,sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:Fraunces,Georgia,serif;color:var(--deep);line-height:1.15;margin:.2em 0 .4em;font-weight:600;letter-spacing:-.01em}
a{color:var(--teal)}

/* Header — aligned with homepage */
header.top{
  background:var(--deep);
  color:#fff;
  padding:1rem 1.5rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
}
header.top a{color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;opacity:.92}
header.top a:hover{opacity:1}
header.top .brand{
  font-family:Fraunces,Georgia,serif;
  font-size:1.3rem;
  font-weight:700;
  letter-spacing:.04em;
  opacity:1;
}
header.top .brand span{
  font-family:"Source Sans 3",sans-serif;
  font-weight:500;
  letter-spacing:0;
  opacity:.8;
  margin-left:.3rem;
  font-size:.78rem;
}
header.top .back{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.4rem .85rem;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.25);
  font-size:.9rem;
}
header.top .back:hover{background:rgba(255,255,255,.1)}

/* Hero — warmer photo overlay, homepage kinship */
.hero{
  background:
    linear-gradient(105deg, rgba(15,35,48,.62) 0%, rgba(15,35,48,.4) 55%, rgba(15,35,48,.35) 100%),
    url(hero-pool.jpg?v=4) center 42%/cover;
  color:#fff;
  padding:3.5rem 1.5rem 3rem;
  text-align:left;
}
.hero-inner{max-width:960px;margin:0 auto}
.hero .eyebrow{
  display:inline-block;
  background:rgba(232,168,124,.95);
  color:#3a2415;
  font-weight:700;
  font-size:.75rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:.35rem .75rem;
  border-radius:999px;
  margin-bottom:.9rem;
}
.hero h1{color:#fff;font-size:clamp(1.85rem,4.5vw,2.6rem);margin:0 0 .6rem;max-width:18ch}
.hero p{margin:0;max-width:42ch;color:rgba(255,255,255,.92);font-size:1.08rem}

main{max-width:960px;margin:0 auto;padding:2rem 1.25rem 4rem}

.card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.5rem 1.4rem;
  margin-bottom:1.15rem;
  box-shadow:var(--shadow);
}
.meta{color:var(--ink-soft);margin:.2em 0}
.price{font-family:Fraunces,Georgia,serif;font-size:1.45rem;color:var(--teal);font-weight:600}
.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:.85rem;font-weight:700;background:#e3f0f5;color:var(--teal)}
.badge.full{background:#fbe6d4;color:#a2521a}
.badge.low{background:#fff1dc;color:#9a5a00}
.badge.paid{background:#e1f3e8;color:#1d5a35}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent);color:#2c1a0d;border:0;border-radius:99px;
  padding:12px 22px;font-weight:700;font-size:1rem;cursor:pointer;
  text-decoration:none;font-family:inherit;
  transition:background .15s ease,transform .15s ease;
}
.btn:hover{background:#f0b58c}
.btn.alt{background:var(--teal);color:#fff}
.btn.alt:hover{background:#3A91A8}
.btn.ghost{background:transparent;border:2px solid var(--teal);color:var(--teal)}
.btn.sm{padding:6px 12px;font-size:.85rem}

form.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
form.grid .full{grid-column:1/-1}
label{font-weight:600;font-size:.92rem;display:block}
input,textarea,select{
  width:100%;padding:10px 12px;border:1px solid #cdbfa8;border-radius:10px;
  font:inherit;background:#fffdf9;margin-top:4px;
}
input:focus,textarea:focus,select:focus{
  outline:2px solid rgba(47,127,150,.35);border-color:var(--teal);
}
.msg{padding:14px 16px;border-radius:12px;margin-top:14px}
.msg.ok{background:#e1f3e8;color:#1d5a35}
.msg.err{background:#fde7e3;color:#8a2a1a}

table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
tr.cancelled td{opacity:.45;text-decoration:line-through}
tr.waitlist td{background:#fff8ec}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.hidden{display:none}

.sess-mini{margin:8px 0 0;padding-left:1.2em;font-size:.92rem;color:#5b6b75}
.sess-box{background:#f4f8fa;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:12px 0}
.sess-box strong{color:var(--deep)}
#calList table tr:hover{background:#f7f1e6}
#sessDetail .btn.sm.alt{box-shadow:0 0 0 2px rgba(47,127,150,.25)}

/* Booking page footer */
.site-foot{
  max-width:960px;margin:0 auto;padding:0 1.25rem 2.5rem;
  font-size:.88rem;color:var(--ink-soft);
  border-top:1px solid rgba(220,205,185,.55);padding-top:1.5rem;
  display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;
}
.site-foot a{color:var(--ink-soft);font-weight:600;text-decoration:none}
.site-foot a:hover{color:var(--teal)}

@media(max-width:640px){
  form.grid{grid-template-columns:1fr}
  .hero{padding:2.5rem 1.25rem 2rem}
}
