/* Embrace rebuild: base styles. Tokens match brand/embrace.css. */
@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:wght@400;500;600;700&display=swap");

/* Fonts (owner picks, 2026-10-28): Bebas Neue headings and DM Sans text, both free on Google Fonts. Anton is the headline fallback. */
:root{ --display:'Bebas Neue','Anton',Impact,sans-serif; --display-w:400; }
:root{
  --ink:#0b0b0c;
  --panel:#141416;
  --line:#2a2a2e;
  --gold:#F5C518;
  --white:#FAFAF7;
  --muted:#a9a9ad;
}
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
body{
  background:var(--ink); color:var(--white);
  font-family:'DM Sans',system-ui,sans-serif; font-size:16px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
  padding-inline:16px;
}
a{ color:var(--gold); }
img{ max-width:100%; display:block; }
.shell{ max-width:760px; margin:0 auto; padding-block:2rem 4rem; }
header.top{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding-block:1rem 2.5rem; margin-bottom:2.5rem; }
header.top img{ height:32px; width:auto; }
header.top nav a{ color:var(--muted); text-decoration:none; font-size:.9rem; margin-left:1.25rem; }
header.top nav a:hover{ color:var(--white); }
.eyebrow{ font-family:'JetBrains Mono',ui-monospace,monospace; font-size:.68rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); }
h1{ font-family:var(--display); font-weight:var(--display-w); font-synthesis:none; text-transform:uppercase; line-height:.95; font-size:clamp(2.4rem,7vw,3.8rem); margin:.5rem 0 1.25rem; }
h2{ font-family:var(--display); font-weight:var(--display-w); font-synthesis:none; text-transform:uppercase; font-size:1.4rem; letter-spacing:.02em; margin:2.25rem 0 .6rem; }
p,li{ color:#d8d8da; }
p + p{ margin-top:.8rem; }
ul{ padding-left:1.25rem; margin-top:.5rem; }
li + li{ margin-top:.35rem; }
.lede{ color:var(--muted); font-size:1.08rem; max-width:60ch; }

form{ margin-top:2rem; display:grid; gap:1.1rem; background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:1.5rem; }
label{ display:grid; gap:.4rem; font-size:.9rem; color:var(--muted); }
input[type=text],input[type=email],input[type=tel],select{
  width:100%; padding:.75rem .85rem; border-radius:6px; border:1px solid var(--line);
  background:var(--ink); color:var(--white); font:inherit;
}
input:focus,select:focus{ outline:2px solid var(--gold); outline-offset:1px; }
.row{ display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.consent{ display:flex; gap:.7rem; align-items:flex-start; font-size:.85rem; line-height:1.5; color:var(--muted); }
.consent input{ margin-top:.25rem; width:18px; height:18px; flex:none; accent-color:var(--gold); }
button{ justify-self:start; background:var(--gold); color:#000; border:0; border-radius:6px; padding:.85rem 1.6rem; font:600 1rem 'DM Sans',system-ui,sans-serif; cursor:pointer; }
button:hover{ filter:brightness(1.08); }
.hidden{ display:none; }
/* free class page, step 1: pick a location (a card each), then Next Page shows up and goes to that location's next step */
.pick-room{ background:none; border:0; padding:0; margin-top:2rem; gap:1.5rem; }
.rooms{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem; }
.room-pick{ position:relative; display:grid; gap:.3rem; padding:1.4rem 1.5rem; border:1px solid var(--line); border-radius:10px; background:var(--panel); color:var(--white); cursor:pointer; transition:border-color .2s, box-shadow .2s; }
.room-pick input{ position:absolute; opacity:0; pointer-events:none; }
.room-pick:hover{ border-color:rgba(245,197,24,.5); }
.room-pick:has(input:focus-visible){ outline:2px solid var(--gold); outline-offset:2px; }
.room-pick:has(input:checked){ border-color:var(--gold); box-shadow:0 0 0 1px var(--gold); }
.room-pick b{ font-family:var(--display); font-weight:var(--display-w); text-transform:uppercase; font-size:1.9rem; line-height:1; }
.room-pick span{ color:var(--muted); font-size:.9rem; }
.next-page{ justify-self:start; display:inline-block; background:var(--gold); color:#000; text-decoration:none; border-radius:6px; padding:.85rem 1.6rem; font-weight:600; }
.next-page[hidden]{ display:none; }
.next-page:hover{ filter:brightness(1.08); }
/* step 2 */
.back-step{ display:block; width:max-content; color:var(--gold); font-size:.9rem; margin-bottom:1.5rem; }
.shot{ margin:1.25rem 0; border:1px solid var(--line); border-radius:10px; }
blockquote{ margin:.9rem 0; padding:1rem 1.2rem; border-left:3px solid var(--gold); background:var(--panel); color:#d8d8da; font-size:.95rem; }

footer{ margin-top:4rem; padding-top:1.5rem; font-size:.85rem; color:var(--muted); }
footer a{ color:var(--muted); margin-right:1rem; }
