:root{
  /* GYC brand: sky-blue masthead, navy bar, gold rule, red headings/buttons —
     matches gyc.org.gg and the other club booking sites. */
  --sky-pale:#A9D2F2; --sky:#4C93D9; --navy:#1E5088; --navy-dark:#17406E;
  --gold:#E9B84A; --red:#C13A2E; --red-dark:#A32E24;
  --ink:#333333; --body:#58585A; --muted:#7A7A7C;
  --link:#2E6DB4; --card:#F0F0F0; --rule:#DDDDDD; --white:#FFFFFF;
  --ok:#1A7A4C; --ok-bg:#E7F5EC;
  --err-bg:#FBEAE8;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--body);
  font-family:"Open Sans",-apple-system,"Segoe UI",system-ui,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
.wrap{max-width:640px;margin:0 auto;padding:0 18px}

/* ---- Masthead: sky band, navy bar, gold rule ---- */
.masthead{background:linear-gradient(180deg,var(--sky-pale) 0%,var(--sky) 100%);padding:24px 0 26px}
.wordmark{font-size:clamp(19px,5.6vw,26px);font-weight:300;color:var(--white);
  letter-spacing:.01em;margin:0;display:flex;align-items:center;gap:10px}
.burgee-mark{width:28px;height:18px;flex:none}
.navbar{background:var(--navy);padding:12px 0}
.navbar p{margin:0;color:var(--white);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.goldrule{height:4px;background:var(--gold)}

main{padding-top:30px;padding-bottom:60px}
h1{font-weight:400;color:var(--red);font-size:clamp(27px,7.4vw,36px);
  line-height:1.15;margin:0 0 8px;letter-spacing:-.005em}
.standfirst{font-size:16.5px;margin:0 0 6px;color:var(--body);max-width:56ch}
.standfirst strong{color:var(--ink);font-weight:600}
.standfirst.free{color:var(--navy);font-weight:600}
section{padding:0 0 8px}
h2{font-weight:700;color:var(--ink);font-size:19px;margin:30px 0 4px;letter-spacing:-.005em}
.note{color:var(--muted);font-size:14.5px;margin:0 0 14px}
a{color:var(--link)}

/* ---- Form basics ---- */
fieldset{border:0;margin:0 0 22px;padding:0}
legend{font-weight:700;color:var(--ink);font-size:16px;padding:0;margin-bottom:10px}
label{display:block;font-size:14px;color:var(--ink);margin:0 0 5px;font-weight:600}
label span.opt{color:var(--muted);font-weight:400}
input[type=text],input[type=email],input[type=tel],select,textarea{
  width:100%;padding:13px 12px;background:var(--white);
  border:1px solid #C4C4C4;border-radius:3px;color:var(--ink);
  font-family:inherit;font-size:16px;min-height:48px}
textarea{min-height:84px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--navy);outline-offset:1px;border-color:var(--navy)}
.field{margin-bottom:16px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:480px){.row{grid-template-columns:1fr}}
.errline{color:var(--red);font-size:13px;margin-top:6px;display:none}
.field.invalid .errline{display:block}
.field.invalid input,.field.invalid textarea{border-color:var(--red)}

/* ---- Night cards ---- */
.night{border:1px solid var(--rule);border-radius:6px;padding:16px;margin-bottom:16px;background:var(--white)}
.night.locked{background:var(--card);opacity:.7}
.night h3{margin:0 0 2px;font-size:17px;color:var(--navy);font-weight:700}
.night .occ{margin:0 0 2px;font-size:14px;color:var(--body)}
.night .when{margin:0 0 12px;font-size:13px;color:var(--muted)}
.night .closed-tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--red);border:1px solid var(--red);border-radius:2px;
  padding:2px 6px;margin-left:8px;vertical-align:middle}

.qty{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;
  padding:12px 0;border-bottom:1px solid var(--rule)}
.qty:first-of-type{border-top:1px solid var(--rule)}
.qty .name{font-weight:600;color:var(--ink)}
.qty .price{font-size:13px;color:var(--muted);display:block;font-weight:400}
.stepper{display:flex;align-items:center;gap:2px}
.stepper button{width:44px;height:44px;border:1px solid #C4C4C4;background:var(--white);
  color:var(--red);font-size:22px;line-height:1;cursor:pointer;border-radius:6px;
  font-family:inherit;font-weight:700;touch-action:manipulation}
.stepper button:hover{background:var(--red);border-color:var(--red);color:var(--white)}
.stepper button:disabled{opacity:.35;cursor:not-allowed;background:var(--white);color:var(--red)}
.stepper button:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.stepper output{width:36px;text-align:center;font-size:18px;font-weight:700;
  color:var(--ink);font-variant-numeric:tabular-nums}

/* ---- Buttons ---- */
button.submit,a.submit{display:block;width:100%;padding:16px 24px;background:var(--red);
  color:var(--white);border:0;border-radius:4px;font-family:inherit;text-align:center;
  text-transform:uppercase;letter-spacing:.06em;font-size:15.5px;font-weight:700;
  cursor:pointer;text-decoration:none;min-height:52px}
button.submit:hover,a.submit:hover{background:var(--red-dark)}
button.submit:disabled{opacity:.45;cursor:not-allowed}
button.submit:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
button.ghost{display:block;width:100%;padding:14px 24px;background:var(--white);
  color:var(--navy);border:1.5px solid var(--navy);border-radius:4px;font-family:inherit;
  font-size:15px;font-weight:700;cursor:pointer;min-height:48px}
button.ghost:hover{background:var(--card)}
button.danger{display:block;width:100%;padding:14px 24px;background:var(--white);
  color:var(--red);border:1.5px solid var(--red);border-radius:4px;font-family:inherit;
  font-size:15px;font-weight:700;cursor:pointer;min-height:48px;margin-top:10px}
button.danger:hover{background:var(--err-bg)}

.callout{background:var(--card);border-left:4px solid var(--navy);padding:14px 16px;
  margin:0 0 18px;font-size:14.5px;color:var(--body)}
.callout strong{color:var(--ink)}
.error{color:var(--red);font-size:15px;margin-top:14px;display:none;
  background:var(--err-bg);border-left:4px solid var(--red);padding:12px 14px;border-radius:3px}
.error.show{display:block}
.success-box{color:var(--ok);font-size:15px;background:var(--ok-bg);
  border-left:4px solid var(--ok);padding:12px 14px;border-radius:3px;margin:0 0 18px}

footer{border-top:1px solid var(--rule);padding:22px 0 46px;margin-top:14px;
  font-size:14px;color:var(--muted)}

/* ---- Confirmation ---- */
#done{display:none;padding:6px 0 60px}
.ref{color:var(--red);font-size:20px;font-weight:700;letter-spacing:.02em;
  display:inline-block;background:var(--card);border-radius:4px;padding:8px 14px;margin:6px 0 16px}
.editlink{word-break:break-all;font-size:14px;background:var(--card);border-radius:4px;
  padding:12px 14px;display:block;margin:0 0 16px}

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