*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--forest:#14261e;--pine:#1e3f2e;--canopy:#2a5c40;--sage:#6b9e7e;--moss:#a3c9a8;
  --bark:#3a2e28;--bark-lt:#7a6b62;--cream:#faf7f2;--linen:#f0ebe3;
  --gold:#c8a64a;--gold-lt:#e2cc7e;--gold-dk:#9a7e34;--white:#fff;--red:#c0392b;
  --heading:'Cormorant Garamond',Georgia,serif;--body:'DM Sans','Segoe UI',sans-serif;
  --shadow:0 4px 24px rgba(20,38,30,.1)}
body{font-family:var(--body);background:var(--cream);color:var(--bark);line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:var(--canopy);text-decoration:none}a:hover{color:var(--gold-dk)}
h1,h2,h3{font-family:var(--heading);color:var(--forest);font-weight:700;line-height:1.2}

.nav{background:rgba(20,38,30,.97);box-shadow:0 2px 20px rgba(0,0,0,.25);position:sticky;top:0;z-index:1000}
.nav .ctn{max-width:1200px;margin:0 auto;padding:.9rem 2rem;display:flex;align-items:center;justify-content:space-between}
.nav-brand span{font-family:var(--heading);font-size:1.05rem;font-weight:700;color:var(--white)}
.nav-links{display:flex;align-items:center;list-style:none;gap:.15rem}
.nav-links a{color:rgba(255,255,255,.8);font-size:.86rem;font-weight:500;padding:.45rem .7rem;border-radius:5px}
.nav-links a:hover,.nav-links a.active{color:#fff;background:rgba(255,255,255,.1)}
.nav-links .btn-nav{background:var(--gold);color:var(--forest);padding:.5rem 1.2rem;font-weight:700;border-radius:5px;margin-left:.4rem}
.hamburger{display:none;background:none;border:none;cursor:pointer}
.hamburger span{display:block;width:24px;height:2px;background:#fff;margin:5px 0}
.nav-close{display:none;position:absolute;top:1.2rem;right:1.2rem;background:none;border:none;color:rgba(255,255,255,.6);font-size:2rem;cursor:pointer}
@media(max-width:980px){.hamburger{display:block}.nav-links{position:fixed;top:0;right:-100%;width:280px;height:100vh;background:var(--forest);flex-direction:column;align-items:stretch;padding:5rem 1.5rem 2rem;gap:0;transition:.4s;z-index:2000;overflow-y:auto}.nav-links.open{right:0}.nav-links a{padding:.9rem 0;font-size:1.05rem;border-bottom:1px solid rgba(255,255,255,.07);border-radius:0}.nav-close{display:block}}

.hero{background:linear-gradient(135deg,var(--forest),var(--pine) 55%,var(--canopy));padding:2.6rem 2rem;text-align:center;color:#fff}
.hero h1{color:#fff;font-size:clamp(1.7rem,4vw,2.4rem);margin-bottom:.3rem}
.hero p{color:rgba(255,255,255,.72);font-size:.95rem}

.page{max-width:900px;margin:0 auto;padding:2rem 1.5rem 4rem}
.card{background:var(--white);border-radius:14px;box-shadow:var(--shadow);border:1px solid rgba(0,0,0,.04);margin-bottom:1.5rem;overflow:hidden}
.card-h{padding:1.1rem 1.5rem;border-bottom:1px solid var(--linen);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.card-h h2{font-size:1.2rem}
.card-b{padding:1.5rem}

.fld{margin-bottom:1rem}
.fld label{display:block;font-size:.8rem;font-weight:600;color:var(--bark);margin-bottom:.3rem}
.fld input,.fld select,.fld textarea{width:100%;padding:.68rem .9rem;border:1.5px solid #ddd;border-radius:8px;font-family:inherit;font-size:.92rem;background:var(--white)}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--canopy);box-shadow:0 0 0 3px rgba(42,92,64,.1)}
.fld .hint{font-size:.76rem;color:var(--bark-lt);margin-top:.28rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:560px){.row2{grid-template-columns:1fr}}

.btn{border:none;padding:.75rem 1.5rem;border-radius:8px;font-family:inherit;font-size:.92rem;font-weight:700;cursor:pointer;transition:.25s}
.btn-p{background:linear-gradient(135deg,var(--canopy),var(--forest));color:#fff;width:100%}
.btn-p:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px rgba(20,38,30,.22)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-s{background:none;border:1.5px solid var(--canopy);color:var(--canopy);padding:.5rem 1.1rem;font-size:.86rem}
.btn-s:hover{background:var(--canopy);color:#fff}
.or-line{text-align:center;color:var(--bark-lt);font-size:.82rem;margin:.7rem 0}
.btn-g{background:var(--white);border:1.5px solid #ccc;color:var(--forest);width:100%}
.btn-g:hover:not(:disabled){border-color:var(--canopy)}
.ts-steps{margin:.4rem 0 1rem 1.2rem;line-height:1.7}
.ts-qr{display:block;margin:.6rem 0;width:200px;height:200px;image-rendering:pixelated}
.ts-key{font-family:monospace;font-size:1rem;background:var(--linen);padding:.4rem .6rem;border-radius:6px;word-break:break-all}
.linkbtn{background:none;border:none;color:var(--sage);font-family:inherit;font-size:.85rem;cursor:pointer;text-decoration:underline;padding:0}

.alert{padding:.85rem 1.1rem;border-radius:8px;font-size:.88rem;line-height:1.55;margin-bottom:1rem;display:none}
.alert.show{display:block}
.alert.err{background:#ffebee;color:#c62828;border:1px solid #ef9a9a}
.alert.ok{background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7}
.alert.info{background:#e3f2fd;color:#1565c0;border:1px solid #90caf9}
.alert.warn{background:#fff3e0;color:#e65100;border:1px solid #ffcc80}

.pill{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.18rem .55rem;border-radius:4px}
.pill.active,.pill.approved,.pill.confirmed{background:#e8f5e9;color:#2e7d32}
.pill.submitted,.pill.screening,.pill.pending,.pill.awaiting_payment{background:#fff3e0;color:#e65100}
.pill.denied,.pill.cancelled,.pill.rejected,.pill.withdrawn{background:#ffebee;color:#c62828}
.pill.none{background:var(--linen);color:var(--bark-lt)}

.member-band{background:linear-gradient(135deg,#1a3d2b,var(--canopy));color:#fff;border-radius:12px;padding:1.4rem 1.6rem;margin-bottom:1.2rem}
.member-band h3{color:#fff;font-size:1.25rem;margin-bottom:.2rem}
.member-band p{font-size:.88rem;color:rgba(255,255,255,.8)}
.member-band .tierline{font-family:var(--heading);font-size:1.6rem;font-weight:700;color:var(--gold-lt)}

table{width:100%;border-collapse:collapse;font-size:.86rem}
thead tr{background:var(--linen);text-align:left}
th{padding:.55rem .6rem;font-weight:600}
td{padding:.55rem .6rem;border-bottom:1px solid #f0ebe3;vertical-align:top}
.muted{color:var(--bark-lt);font-size:.87rem}
.tbl-wrap{overflow-x:auto}

.footer{background:var(--forest);color:rgba(255,255,255,.6);padding:2rem;text-align:center;font-size:.82rem}
.footer a{color:var(--gold-lt)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

/* --- nav alignment --- */
/* Each item is aligned explicitly. Relying on inline baselines meant the one
   link carrying a caret glyph sat off-centre from its neighbours. */
.nav-links > li{display:flex;align-items:center}
.nav-links > li > a{display:inline-flex;align-items:center;line-height:1.25;white-space:nowrap}
.nav-links .has-sub > a{gap:.3rem}
.nav-links .caret{line-height:1;position:relative;top:1px}
.nav-links .sub li{display:block}
.nav-links .sub a{display:block;line-height:1.3}

@media(max-width:980px){
  /* In the slide-in panel the item must stack its link above its submenu,
     so the desktop row layout is turned off. */
  .nav-links > li{display:block}
  .nav-links > li > a{display:block;white-space:normal}
}
