/* ==========================================================================
   Exeter Social Circle — stylesheet
   Clean, minimal, modern. One accent color, one type pairing, no clutter.
   ========================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap");

:root{
  /* Color */
  --bg:#faf9f6;
  --surface:#ffffff;
  --surface-muted:#f2f1ec;
  --ink:#15161a;
  --ink-soft:#4b4d54;
  --muted:#84868d;
  --line:rgba(21,22,26,.10);
  --line-strong:rgba(21,22,26,.18);
  --accent:#ff5a36;
  --accent-hover:#eb4a27;
  --accent-ink:#ffffff;
  --accent-soft:#ffe6dc;
  --success:#1e8e5a;
  --success-soft:#e1f3e8;
  --danger:#e5484d;
  --danger-soft:#fbe4e3;

  /* Shape */
  --radius-sm:12px;
  --radius:18px;
  --radius-lg:26px;
  --radius-pill:999px;

  /* Elevation */
  --shadow-sm:0 1px 2px rgba(15,15,20,.05);
  --shadow:0 10px 30px rgba(15,15,20,.07);
  --shadow-lg:0 24px 56px rgba(15,15,20,.12);

  /* Type */
  --display:'Space Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --body:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;

  --ease:cubic-bezier(.16,1,.3,1);
}

/* ---------- Reset & base ---------- */
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  font-family:var(--body);
  background:var(--bg);
  color:var(--ink);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.dialog-open, body.menu-open{ overflow:hidden; }

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button, input, select, textarea{ font:inherit; color:inherit; }
button{ cursor:pointer; }

h1,h2,h3{ font-family:var(--display); font-weight:600; letter-spacing:-.01em; line-height:1.08; }
h1{ font-size:clamp(2.6rem,5.4vw,4.6rem); font-weight:700; letter-spacing:-.02em; }
h2{ font-size:clamp(1.7rem,3vw,2.5rem); }
h3{ font-size:1.15rem; }
p{ color:var(--ink-soft); }

:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }

/* ---------- Layout helpers ---------- */
.container{ max-width:1180px; margin:0 auto; padding:0 24px; }
.narrow{ max-width:640px; }
.page{ padding-top:88px; }
.muted{ color:var(--muted); }

.micro{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--body); font-size:.78rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; color:var(--accent);
}
.micro::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--accent); }

/* ---------- Scroll reveal (JS-driven) ---------- */
[data-reveal]{
  opacity:var(--reveal-o,1);
  transform:translateY(var(--reveal-y,0px));
  transition:opacity .5s var(--ease), transform .5s var(--ease);
  will-change:opacity, transform;
}
@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1 !important; transform:none !important; transition:none; }
}

.scroll-progress{
  position:fixed; top:0; left:0; right:0; height:3px; z-index:200;
  background:var(--accent); transform-origin:0 50%;
  transform:scaleX(0);
}

/* ---------- Nav ---------- */
.topbar{
  position:sticky; top:0; z-index:100;
  background:rgba(250,249,246,.82);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .25s var(--ease), background .25s var(--ease);
}
.topbar.is-scrolled{ border-bottom-color:var(--line); background:rgba(250,249,246,.95); }
.nav-inner{
  max-width:1180px; margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.logo{ display:flex; align-items:center; }
.logo img{ height:40px; width:auto; display:block; }

.nav-links{
  display:flex; align-items:center; gap:2px;
  background:var(--surface-muted); border-radius:var(--radius-pill);
  padding:4px; border:1px solid var(--line);
}
.nav-links a{
  padding:9px 16px; border-radius:var(--radius-pill);
  font-size:.92rem; font-weight:600; color:var(--ink-soft);
  transition:background .2s var(--ease), color .2s var(--ease);
}
.nav-links a:hover{ color:var(--ink); }
.nav-links a.active{ background:var(--ink); color:#fff; }

.nav-actions{ display:flex; align-items:center; gap:10px; }
.menu-button{
  display:none; width:42px; height:42px; align-items:center; justify-content:center;
  border-radius:var(--radius-pill); border:1px solid var(--line); background:var(--surface);
  font-size:1.1rem;
}
.mobile-menu{
  display:none; position:fixed; inset:70px 12px auto 12px; z-index:99;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg); padding:10px;
  flex-direction:column; gap:2px;
  opacity:0; transform:translateY(-8px); pointer-events:none;
  transition:opacity .2s var(--ease), transform .2s var(--ease);
}
.mobile-menu.is-open{ opacity:1; transform:translateY(0); pointer-events:auto; }
.mobile-menu a, .mobile-menu button{
  padding:13px 14px; border-radius:var(--radius); font-weight:600; text-align:left;
  border:none; background:transparent; font-size:1rem;
}
.mobile-menu a.active{ background:var(--surface-muted); }
.mobile-menu button{ background:var(--ink); color:#fff; margin-top:6px; }

/* ---------- Buttons & links ---------- */
.button{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:13px 24px; border-radius:var(--radius-pill);
  border:1px solid var(--line-strong); background:var(--surface);
  font-family:var(--body); font-weight:700; font-size:.95rem; color:var(--ink);
  transition:transform .15s var(--ease), box-shadow .15s var(--ease), background .15s var(--ease), border-color .15s var(--ease);
  white-space:nowrap;
}
.button:hover{ transform:translateY(-1px); box-shadow:var(--shadow); }
.button:active{ transform:translateY(0); }
.button.primary{ background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
.button.primary:hover{ background:var(--accent-hover); border-color:var(--accent-hover); }
.button.ghost{ background:transparent; border-color:var(--line-strong); }
.button.full{ width:100%; }
.button:disabled{ opacity:.6; cursor:default; transform:none; box-shadow:none; }

.text-link{ font-weight:700; color:var(--accent); border-bottom:1px solid transparent; }
.text-link:hover{ border-bottom-color:currentColor; }

.plain-button{
  border:none; background:var(--surface-muted); color:var(--ink);
  padding:10px 16px; border-radius:var(--radius-pill); font-weight:700; font-size:.88rem;
}
.plain-button:hover{ background:var(--line-strong); }

.checkbox{ display:flex; align-items:flex-start; gap:10px; font-size:.9rem; color:var(--ink-soft); }
.checkbox input{ margin-top:3px; accent-color:var(--accent); width:17px; height:17px; flex-shrink:0; }

.mobile-sticky-invite{
  display:none; position:fixed; left:16px; right:16px; bottom:16px; z-index:80;
  padding:15px; border-radius:var(--radius-pill); border:none;
  background:var(--ink); color:#fff; font-family:var(--body); font-weight:700; font-size:1rem;
  box-shadow:var(--shadow-lg);
}

/* ---------- Generic sections ---------- */
.section{ padding:72px 0; }
.section-head, .section-heading{ max-width:640px; margin-bottom:36px; }
.section-head.center, .section-heading-centered{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2, .section-heading h2{ margin:10px 0 12px; }
.section-head p, .section-heading p{ font-size:1.02rem; }

.page-hero{ padding:64px 0 40px; }
.page-hero h1{ margin:12px 0 14px; }
.page-hero p{ font-size:1.08rem; max-width:600px; }
.page-layout{ padding-bottom:80px; }

/* ---------- Homepage hero ---------- */
.hero-social{ padding:52px 0 60px; }
.hero-social-grid{
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.85fr);
  gap:48px; align-items:start;
}
.hero-social-copy{ max-width:620px; }
.hero-social-copy h1{ margin:14px 0 16px; }
.hero-lede{ font-size:1.12rem; margin-bottom:26px; max-width:520px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:30px; }

.hero-stats{ display:flex; gap:28px; margin-bottom:0; }
.stat-tile strong{ display:block; font-family:var(--display); font-size:1.7rem; font-weight:700; }
.stat-tile span{ font-size:.82rem; color:var(--muted); font-weight:600; }

/* Next event card (single) — used in events.html hero + homepage inline mentions */
.next-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:22px; display:flex; flex-direction:column; gap:6px; box-shadow:var(--shadow-sm);
}
.next-card strong{ font-family:var(--display); font-size:1.15rem; font-weight:600; }
.next-card span{ font-size:.92rem; color:var(--ink-soft); }
.next-card .text-link{ margin-top:6px; font-size:.88rem; }

/* Next TWO events strip — homepage hero signature widget */
.hero-next-events{ display:flex; flex-direction:column; gap:12px; }
.hero-next-events-head{ display:flex; align-items:center; justify-content:space-between; }
.hero-next-events-head .text-link{ font-size:.85rem; }
.next-event-row{
  display:grid; grid-template-columns:56px 1fr; gap:16px; align-items:center;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:14px 16px; box-shadow:var(--shadow-sm);
  transition:border-color .2s var(--ease), transform .2s var(--ease);
}
.next-event-row:hover{ border-color:var(--line-strong); transform:translateY(-1px); }
.next-event-row + .next-event-row{ margin-top:0; }
.next-event-date{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:var(--accent-soft); border-radius:var(--radius-sm); padding:8px 4px; line-height:1;
}
.next-event-date strong{ font-family:var(--display); font-size:1.3rem; font-weight:700; color:var(--accent-hover); }
.next-event-date span{ font-size:.62rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--accent-hover); margin-top:3px; }
.next-event-row h3{ font-size:.98rem; margin-bottom:2px; }
.next-event-row p{ font-size:.84rem; color:var(--muted); }
.hero-next-events .empty-panel{ padding:20px; }

.hero-photo-board{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.hero-photo-main{ grid-column:1 / -1; position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); aspect-ratio:16/10.5; }
.hero-photo-small{ position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); aspect-ratio:1/1; }
.hero-photo-card img{ width:100%; height:100%; object-fit:cover; transition:transform .4s var(--ease); }
.hero-photo-card:hover img{ transform:scale(1.04); }
.hero-photo-card span{
  position:absolute; left:12px; bottom:12px; right:12px;
  background:rgba(21,22,26,.72); backdrop-filter:blur(6px);
  color:#fff; padding:9px 12px; border-radius:var(--radius-sm); font-size:.8rem; font-weight:700;
}
.hero-photo-card span strong{ display:block; font-family:var(--display); font-size:.92rem; font-weight:600; }
.hero-photo-card span small{ display:block; font-weight:500; opacity:.85; margin-top:2px; }
.hero-note-card{
  grid-column:1 / -1; background:var(--surface-muted); border-radius:var(--radius); padding:14px 16px;
  display:flex; flex-direction:column; gap:2px;
}
.hero-note-card strong{ font-family:var(--display); font-size:.95rem; }
.hero-note-card span{ font-size:.85rem; color:var(--ink-soft); }

/* ---------- Social proof strip ---------- */
.social-proof-strip{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--surface-muted); }
.social-proof-inner{
  display:flex; flex-wrap:wrap; gap:12px 28px; justify-content:center;
  padding:20px 24px; font-size:.85rem; font-weight:700; color:var(--ink-soft);
}

/* ---------- Reassurance ---------- */
.reassurance-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:28px; align-items:stretch; }
.reassurance-card{
  background:var(--ink); color:#fff; border-radius:var(--radius-lg); padding:40px;
  display:flex; flex-direction:column; gap:14px; align-items:flex-start;
}
.reassurance-card .micro{ color:var(--accent); }
.reassurance-card h2{ color:#fff; }
.reassurance-card p{ color:rgba(255,255,255,.78); max-width:420px; }
.reason-stack{ display:flex; flex-direction:column; gap:14px; justify-content:center; }
.reason-stack article{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px;
}
.reason-stack strong{ display:block; font-family:var(--display); font-size:1rem; margin-bottom:4px; }
.reason-stack span{ font-size:.9rem; color:var(--ink-soft); }

/* ---------- Gallery proof (homepage) ---------- */
.home-gallery-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.home-gallery-card{ border-radius:var(--radius-lg); overflow:hidden; background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.home-gallery-card img{ aspect-ratio:4/3; object-fit:cover; width:100%; transition:transform .4s var(--ease); }
.home-gallery-card:hover img{ transform:scale(1.05); }
.home-gallery-card-copy{ padding:16px 18px 20px; }
.home-gallery-card-copy h3{ font-size:1rem; margin:6px 0 4px; }
.home-gallery-card-copy p{ font-size:.86rem; }

/* ---------- Activity bento ---------- */
.bento, .activity-bento{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.bento-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:26px; display:flex; flex-direction:column; gap:10px;
}
.bento-card strong{ font-family:var(--display); font-size:.85rem; font-weight:700; color:var(--accent); }
.bento-card h3{ font-size:1.1rem; }
.bento-card p{ font-size:.9rem; }

/* ---------- Steps ---------- */
.steps-compact-head{ max-width:620px; margin-bottom:32px; }
.step-rail{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.step-pill{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:22px; transition:border-color .25s var(--ease), transform .25s var(--ease);
}
.step-pill span{ font-family:var(--display); font-weight:700; font-size:.85rem; color:var(--accent); display:block; margin-bottom:10px; }
.step-pill h3{ font-size:1rem; margin-bottom:6px; }
.step-pill p{ font-size:.87rem; }
.step-pill.is-active{ border-color:var(--accent); transform:translateY(-3px); }

/* ---------- Intro preview (homepage) ---------- */
.intro-preview-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:center; }
.intro-sample-cards{ display:flex; flex-direction:column; gap:14px; }
.intro-sample-cards article{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px; }
.intro-sample-cards h3{ font-size:1rem; margin:6px 0 4px; }
.intro-sample-cards p{ font-size:.9rem; color:var(--ink-soft); }

/* ---------- FAQ preview (homepage) ---------- */
.faq-preview-grid{ display:flex; justify-content:space-between; align-items:flex-start; gap:32px; flex-wrap:wrap; }
.faq-preview-list{ display:flex; flex-direction:column; gap:2px; min-width:260px; }
.faq-preview-list a{ padding:12px 0; border-bottom:1px solid var(--line); font-weight:700; font-size:.95rem; }
.faq-preview-list a:hover{ color:var(--accent); }

/* ---------- Rules summary (homepage — replaces the old rules page) ---------- */
.rules-mini-section{ background:var(--surface-muted); border-radius:var(--radius-lg); }
.rules-mini-head{ max-width:640px; margin-bottom:28px; }
.rules-mini-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.rules-mini-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px;
}
.rules-mini-card h3{ font-size:.98rem; margin-bottom:6px; }
.rules-mini-card p{ font-size:.86rem; }
.rules-mini-foot{ margin-top:24px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }

/* ---------- Final CTA ---------- */
.final-cta{
  background:var(--ink); color:#fff; border-radius:var(--radius-lg);
  padding:52px 44px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:14px;
}
.final-cta .micro{ color:var(--accent); }
.final-cta h2{ color:#fff; }
.final-cta p{ color:rgba(255,255,255,.78); max-width:480px; }
.final-cta > div{ display:flex; gap:12px; margin-top:8px; flex-wrap:wrap; justify-content:center; }
.final-cta .button:not(.primary){ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.22); color:#fff; }

/* ---------- Callouts (gallery / contact privacy) ---------- */
.callout{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.callout-panel{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px;
  display:flex; flex-direction:column; gap:12px; align-items:flex-start;
}
.callout-panel h2{ font-size:1.4rem; }
.callout-note{ background:var(--surface-muted); }

/* ---------- Footer ---------- */
.footer{ border-top:1px solid var(--line); margin-top:40px; padding:56px 0 28px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; }
.footer-brand{ display:flex; gap:12px; align-items:flex-start; }
.footer-brand img{ width:36px; height:36px; border-radius:10px; flex-shrink:0; margin-top:2px; }
.footer-brand strong{ font-family:var(--display); font-size:1.05rem; }
.footer-brand p{ font-size:.86rem; margin-top:4px; max-width:220px; }
.footer h4{ font-family:var(--body); font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin-bottom:14px; }
.footer div > a{ display:block; padding:6px 0; font-size:.92rem; color:var(--ink-soft); }
.footer div > a:hover{ color:var(--accent); }
.footer div > p{ font-size:.88rem; margin-bottom:12px; }
.footer-bottom{ margin-top:40px; padding-top:20px; border-top:1px solid var(--line); font-size:.82rem; color:var(--muted); }

/* ---------- Dialogs (join / event / event idea) ---------- */
.dialog{
  position:fixed; inset:0; z-index:150; display:flex; align-items:center; justify-content:center;
  padding:20px; background:rgba(21,22,26,.5); backdrop-filter:blur(4px);
  opacity:0; pointer-events:none; transition:opacity .2s var(--ease);
}
.dialog.is-open{ opacity:1; pointer-events:auto; }
.dialog-card{
  width:100%; max-width:520px; max-height:88vh; overflow-y:auto;
  background:var(--surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg);
  padding:32px; position:relative;
  transform:translateY(10px); transition:transform .2s var(--ease);
}
.dialog.is-open .dialog-card{ transform:translateY(0); }
.close-x{
  position:absolute; top:16px; right:16px; width:34px; height:34px; border-radius:50%;
  border:1px solid var(--line); background:var(--surface); font-size:1.1rem; line-height:1;
  display:flex; align-items:center; justify-content:center; color:var(--muted);
}
.close-x:hover{ background:var(--surface-muted); color:var(--ink); }
.dialog-card h2{ font-size:1.4rem; }
.dialog-card > .micro{ margin-bottom:6px; }
.dialog-card > p{ margin:10px 0 18px; font-size:.94rem; }

.success-box{ display:none; text-align:center; padding:12px 4px; }
.success-box.is-visible{ display:block; }
.success-box h2{ margin:10px 0 10px; }
.success-box p{ font-size:.94rem; margin-bottom:22px; }
.success-actions{ display:flex; flex-direction:column; gap:10px; }
.success-actions .whatsapp-fallback{ font-size:.82rem; color:var(--muted); margin-top:2px; }

/* ---------- Forms ---------- */
.form-progress-wrap{ margin-bottom:20px; }
.form-progress-meta{ display:flex; justify-content:space-between; font-size:.78rem; font-weight:700; color:var(--muted); margin-bottom:6px; }
.form-progress{ height:6px; border-radius:var(--radius-pill); background:var(--surface-muted); overflow:hidden; }
.form-progress span{
  display:block; height:100%; width:var(--form-progress,0%); background:var(--accent);
  border-radius:var(--radius-pill); transition:width .3s var(--ease);
}
.form-grid{ display:grid; gap:14px; margin-bottom:14px; }
.form-grid.two{ grid-template-columns:1fr 1fr; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field.full{ grid-column:1 / -1; }
.field label{ font-size:.85rem; font-weight:700; color:var(--ink-soft); }
.field input, .field select, .field textarea{
  border:1px solid var(--line-strong); border-radius:var(--radius-sm); padding:12px 14px;
  background:var(--surface); font-size:.96rem; width:100%;
  transition:border-color .18s var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--accent); }
.field textarea{ min-height:90px; resize:vertical; }
.field-hint{ font-size:.78rem; color:var(--muted); }
.form-step-head{ margin-bottom:16px; }
.form-step-head span{ font-size:.78rem; font-weight:800; color:var(--accent); text-transform:uppercase; letter-spacing:.06em; }
.form-step-head strong{ display:block; font-family:var(--display); font-size:1.15rem; margin:4px 0 4px; }
.form-step-head p{ font-size:.88rem; }
.form-note{ font-size:.86rem; min-height:1.2em; margin:10px 0; }
.form-note.success{ color:var(--success); }
.form-note.error{ color:var(--danger); }
.join-step{ display:none !important; }
.join-step.is-current{ display:flex !important; flex-direction:column; gap:14px; }
.join-step-actions{ display:flex; gap:10px; }
.join-step-actions .button:first-child{ flex:0 0 auto; }
.join-step-actions .button:last-child{ flex:1; }

/* Rules-agree step inside the join dialog */
.join-rules-list{ display:flex; flex-direction:column; gap:10px; margin:16px 0 20px; }
.join-rules-list div{ display:flex; gap:10px; align-items:flex-start; font-size:.9rem; color:var(--ink-soft); }
.join-rules-list div::before{ content:"—"; color:var(--accent); font-weight:700; flex-shrink:0; }

.empty-panel{
  background:var(--surface-muted); border:1px dashed var(--line-strong); border-radius:var(--radius);
  padding:22px; text-align:center; font-size:.92rem; color:var(--ink-soft);
}
.empty-panel strong{ display:block; margin-bottom:4px; font-family:var(--display); }

/* ---------- Events page ---------- */
.events-hero-v46-grid{ display:grid; grid-template-columns:1.1fr .8fr; gap:32px; align-items:start; padding:48px 0 12px; }
.events-hero-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:18px; }
.events-live-section-v46{ padding-bottom:80px; }
.joined-notice{
  display:none; background:var(--success-soft); border:1px solid rgba(30,142,90,.25);
  border-radius:var(--radius); padding:16px 20px; margin-bottom:24px; font-size:.92rem;
}
.joined-notice.is-visible{ display:block; }
.events-schedule-panel{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:28px; margin-bottom:28px;
}
.events-toolbar{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:22px; }
.events-toolbar-actions{ display:flex; align-items:center; gap:14px; }
.events-status{ font-size:.86rem; color:var(--muted); font-weight:700; }
.events-note-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:24px; }
.events-note-row article{ background:var(--surface-muted); border-radius:var(--radius); padding:16px; }
.events-note-row strong{ display:block; font-size:.9rem; margin-bottom:4px; }
.events-note-row span{ font-size:.82rem; color:var(--ink-soft); }
.events-board{ display:flex; flex-direction:column; gap:10px; }
.event-row{
  display:grid; grid-template-columns:64px 1fr auto; gap:18px; align-items:center;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px;
  transition:border-color .2s var(--ease);
}
.event-row:hover{ border-color:var(--line-strong); }
.date-block{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:var(--accent-soft); border-radius:var(--radius-sm); padding:8px 4px; line-height:1.1;
}
.date-block strong{ font-family:var(--display); font-size:1.05rem; font-weight:700; color:var(--accent-hover); }
.date-block span{ font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--accent-hover); margin-top:2px; }
.event-row h3{ font-size:1.02rem; margin:2px 0 3px; }
.event-row p{ font-size:.86rem; }
.event-row.past-event-row{ opacity:.72; }
.past-events-banner{
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  background:var(--surface-muted); border-radius:var(--radius-lg); padding:24px 28px; margin-bottom:16px;
}
.past-events-panel[hidden]{ display:none; }
.past-events-board{ margin-top:14px; }
.detail-list{ display:flex; flex-direction:column; gap:10px; margin:16px 0; }
.detail-list > div{ display:flex; justify-content:space-between; gap:12px; padding-bottom:10px; border-bottom:1px solid var(--line); font-size:.92rem; }
.detail-list dt{ color:var(--muted); font-weight:700; }
.detail-list dd{ font-weight:600; text-align:right; }

/* ---------- FAQ page ---------- */
.faq-tools{ display:flex; gap:14px; align-items:flex-end; margin-bottom:28px; flex-wrap:wrap; }
.faq-search{ flex:1; min-width:240px; }
.faq-search input{
  width:100%; border:1px solid var(--line-strong); border-radius:var(--radius-pill);
  padding:12px 18px; background:var(--surface); font-size:.95rem;
}
.faq-grid{ display:flex; flex-direction:column; gap:10px; }
.faq-item{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:6px 20px; }
.faq-item summary{ padding:14px 0; font-weight:700; font-size:.98rem; cursor:pointer; list-style:none; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:"+"; float:right; color:var(--accent); font-weight:700; }
.faq-item[open] summary::after{ content:"–"; }
.faq-item p{ padding-bottom:16px; font-size:.92rem; }

/* ---------- Contact page ---------- */
.contact-grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:28px; align-items:start; }
.contact-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px; }
.contact-side{ display:flex; flex-direction:column; gap:16px; }
.contact-mini-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:24px; }
.contact-mini-card h3{ font-size:1.05rem; margin:6px 0 8px; }
.contact-mini-card p{ font-size:.9rem; margin-bottom:14px; }
.privacy-callout{ margin-top:8px; }

/* ---------- Gallery page ---------- */
.gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.gallery-card{ border-radius:var(--radius); overflow:hidden; background:var(--surface); border:1px solid var(--line); }
.gallery-card img{ aspect-ratio:4/3; object-fit:cover; width:100%; transition:transform .4s var(--ease); }
.gallery-card:hover img{ transform:scale(1.06); }
.gallery-label{ padding:12px 14px 14px; }
.gallery-label h3{ font-size:.9rem; margin-bottom:2px; }
.gallery-label p{ font-size:.78rem; }

/* ---------- Introductions page ---------- */
.intro-hero-actions{ display:flex; gap:12px; margin-top:18px; flex-wrap:wrap; }
.gate-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:36px; }
.gate-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; align-items:center; }
.intro-jump-bar{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.intro-jump-actions{ display:flex; gap:10px; }
.intro-layout{ display:grid; grid-template-columns:1.2fr 1fr; gap:28px; align-items:start; }
.intro-layout.is-hidden, .intro-gate.is-hidden{ display:none; }
.intro-list-panel{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; }
.intro-list-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:20px; flex-wrap:wrap; }
.member-list{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.member-card{ background:var(--surface-muted); border-radius:var(--radius); padding:18px; }
.member-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:10px; }
.member-top h3{ font-size:1rem; margin-top:2px; }
.member-top img{ width:52px; height:52px; border-radius:var(--radius-sm); object-fit:cover; flex-shrink:0; }
.member-card p{ font-size:.85rem; margin-bottom:6px; }
.intro-panel{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); padding:28px; }

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .nav-links{ display:none; }
  .menu-button{ display:flex; }
  .mobile-menu{ display:flex; }
  .hero-social-grid, .events-hero-v46-grid, .reassurance-grid, .intro-preview-grid,
  .contact-grid, .callout, .gate-grid, .intro-layout{ grid-template-columns:1fr; }
  .home-gallery-cards, .step-rail, .events-note-row, .rules-mini-grid{ grid-template-columns:repeat(2,1fr); }
  .gallery-grid{ grid-template-columns:repeat(3,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .mobile-sticky-invite{ display:block; }
}
@media (max-width:640px){
  .container{ padding:0 18px; }
  .page{ padding-top:76px; }
  .form-grid.two, .bento, .activity-bento, .member-list{ grid-template-columns:1fr; }
  .home-gallery-cards, .step-rail, .events-note-row, .rules-mini-grid, .gallery-grid{ grid-template-columns:1fr 1fr; }
  .hero-photo-board{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .events-toolbar, .intro-list-head, .past-events-banner, .faq-preview-grid{ flex-direction:column; align-items:flex-start; }
  .dialog-card{ padding:24px; }
}


/* Final layout polish */
.home-page .hero-social{min-height:calc(100svh - 81px);display:flex;align-items:center;padding:clamp(32px,5vh,64px) 0 28px;overflow:hidden}
.hero-social-container{position:relative;width:100%}
.home-page .hero-social-grid{grid-template-columns:minmax(0,1fr) minmax(380px,.88fr);gap:clamp(36px,6vw,76px);align-items:center}
.home-page .hero-social-copy{max-width:650px}.home-page .hero-social-copy h1{max-width:650px}
.home-page .hero-lede{max-width:620px;font-size:clamp(1.02rem,1.4vw,1.16rem);line-height:1.72;margin-bottom:24px}
.hero-reassurance{display:flex;flex-wrap:wrap;gap:7px;margin:-8px 0 22px;font-size:.82rem;font-weight:700;color:var(--muted)}
.home-page .hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;max-width:610px;padding:18px 4px;background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.home-page .stat-tile{min-width:0;padding:0 18px}.home-page .stat-tile+.stat-tile{border-left:1px solid var(--line)}
.home-page .stat-tile strong{font-size:clamp(1.45rem,2.2vw,1.9rem);line-height:1;margin-bottom:7px}.home-page .stat-tile span{display:block;line-height:1.25}
.hero-visual{position:relative;width:100%;max-width:510px;justify-self:end;padding-bottom:74px}
.hero-feature-photo{position:relative;overflow:hidden;min-height:440px;aspect-ratio:4/4.7;border-radius:32px;background:var(--surface-muted);border:1px solid rgba(21,22,26,.08);box-shadow:var(--shadow-lg)}
.hero-feature-photo::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(to bottom,transparent,rgba(10,10,14,.72));pointer-events:none}
.hero-feature-photo img{width:100%;height:100%;object-fit:cover}.hero-feature-photo figcaption{position:absolute;z-index:1;left:24px;right:24px;bottom:24px;color:#fff}.hero-feature-photo figcaption strong{display:block;font-family:var(--display);font-size:1.05rem}.hero-feature-photo figcaption span{display:block;margin-top:3px;font-size:.82rem;opacity:.86}
.hero-events-panel{position:absolute;z-index:2;left:22px;right:22px;bottom:0;padding:17px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-lg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.hero-events-panel .hero-next-events-head{margin-bottom:10px}.hero-events-panel .hero-next-events{gap:8px}.hero-events-panel .next-event-row{grid-template-columns:48px 1fr;gap:12px;padding:10px 12px}.hero-events-panel .next-event-date{padding:7px 3px}.hero-events-panel .next-event-date strong{font-size:1.05rem}.hero-events-panel .next-event-row h3{font-size:.9rem;margin-bottom:2px}.hero-events-panel .next-event-row p{font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-events-panel .empty-panel{padding:14px}
.hero-scroll-cue{width:max-content;margin:22px auto 0;display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.hero-scroll-cue i{display:block;width:1px;height:22px;background:var(--line-strong);position:relative;overflow:hidden}.hero-scroll-cue i::after{content:"";position:absolute;inset:0;background:var(--accent);transform:translateY(-100%);animation:scrollCue 1.8s ease-in-out infinite}@keyframes scrollCue{0%{transform:translateY(-100%)}55%,100%{transform:translateY(100%)}}
.rules-mini-inner{padding:28px}.final-cta-actions{display:flex;flex-wrap:wrap;gap:12px}
.gallery-page-hero{text-align:center}.gallery-page-hero .narrow{max-width:720px;margin-inline:auto}.gallery-page-hero p{max-width:690px;margin-inline:auto}.gallery-page .gallery-grid{align-items:start}.gallery-page .gallery-card{height:100%}
@media(max-width:980px){.home-page .hero-social{min-height:auto;padding:56px 0 72px}.home-page .hero-social-grid{grid-template-columns:1fr;gap:42px}.home-page .hero-social-copy{max-width:720px}.home-page .hero-lede{max-width:690px}.hero-visual{justify-self:center;max-width:680px;width:100%}.hero-feature-photo{min-height:0;aspect-ratio:16/10}.hero-scroll-cue{display:none}}
@media(max-width:640px){.home-page .hero-social{min-height:calc(100svh - 81px);align-items:flex-start;padding:34px 0 58px}.home-page .hero-social-grid{gap:34px}.home-page .hero-social-copy h1{font-size:clamp(2.55rem,13vw,3.65rem)}.home-page .hero-lede{line-height:1.62}.home-page .hero-actions{display:grid;grid-template-columns:1fr;margin-bottom:22px}.home-page .hero-actions .button{width:100%}.hero-reassurance{margin-top:-2px}.home-page .hero-stats{padding:15px 0}.home-page .stat-tile{padding:0 10px}.home-page .stat-tile strong{font-size:1.35rem}.home-page .stat-tile span{font-size:.7rem}.hero-visual{padding-bottom:92px}.hero-feature-photo{aspect-ratio:4/3.25;border-radius:24px}.hero-feature-photo figcaption{left:18px;right:18px;bottom:18px}.hero-events-panel{left:10px;right:10px;padding:14px}.hero-events-panel .next-event-row:nth-child(n+2){display:none}.rules-mini-inner{padding:18px}.gallery-page-hero{padding:44px 0 34px}}
@media(max-width:520px){.gallery-page .gallery-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.hero-scroll-cue i::after{animation:none;display:none}}

.home-page .mobile-sticky-invite{opacity:0;transform:translateY(calc(100% + 24px));pointer-events:none;transition:opacity .22s var(--ease),transform .22s var(--ease)}
.home-page.has-scrolled .mobile-sticky-invite{opacity:1;transform:translateY(0);pointer-events:auto}


/* Standalone-preview and cross-device compatibility fixes */
html,body{width:100%;overflow-x:hidden}
.home-page .hero-social{scroll-margin-top:82px}
.home-page #why-join{scroll-margin-top:82px}
.home-page .hero-social-container{padding-top:2px}
.home-page .hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px}
.home-page .hero-reassurance span{white-space:nowrap}
.home-page .hero-feature-photo img{object-position:center center}
.home-page .hero-events-panel{max-height:210px;overflow:hidden}
.gallery-page-hero{padding-inline:18px}
.gallery-page-hero .narrow{width:100%}
.gallery-page-hero h1,.gallery-page-hero p{text-align:center}
@media (min-width:981px){
  .home-page .hero-social{height:calc(100svh - 81px);min-height:650px;max-height:920px}
  .home-page .hero-social-container{display:flex;flex-direction:column;justify-content:center;height:100%}
  .home-page .hero-scroll-cue{position:absolute;left:50%;bottom:0;transform:translateX(-50%)}
}
@media (max-width:980px){
  .home-page .hero-social-grid{grid-template-columns:1fr}
  .home-page .hero-visual{justify-self:stretch;max-width:720px;margin-inline:auto}
}
@media (max-width:640px){
  .home-page .hero-social{padding-top:28px}
  .home-page .hero-social-copy{text-align:left}
  .home-page .hero-reassurance{font-size:.76rem;gap:5px}
  .home-page .hero-reassurance span[aria-hidden="true"]{display:none}
  .home-page .hero-reassurance span{white-space:normal;width:100%}
  .home-page .hero-reassurance span:not([aria-hidden="true"])::before{content:"✓";margin-right:7px;color:var(--accent)}
  .home-page .hero-stats{width:100%}
  .home-page .stat-tile span{word-break:normal}
  .home-page .hero-feature-photo{min-height:0}
  .home-page .hero-events-panel{max-height:160px}
  .gallery-page-hero{padding-top:38px}
}
@media (max-width:390px){
  .home-page .hero-stats{grid-template-columns:1fr;gap:0;padding:5px 16px}
  .home-page .stat-tile{display:flex;align-items:center;justify-content:space-between;padding:11px 0}
  .home-page .stat-tile+.stat-tile{border-left:0;border-top:1px solid var(--line)}
  .home-page .stat-tile strong{margin:0}
  .home-page .stat-tile span{text-align:right;max-width:58%}
}


/* ---------- August 2026 positioning and navigation fixes ---------- */
.logo-wordmark-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-width:0;
  text-decoration:none;
}
.logo-mark{
  width:42px;
  height:42px;
  border-radius:12px;
  object-fit:cover;
  flex:0 0 auto;
}
.logo-text{
  font-family:var(--display);
  font-size:1.02rem;
  font-weight:700;
  color:var(--ink);
  white-space:nowrap;
}

/* Events: remove the redundant next-gathering card and give the schedule breathing room. */
.events-page-main .events-hero-v46-grid{
  grid-template-columns:minmax(0, 780px);
  justify-content:start;
  padding:56px 0 38px;
}
.events-page-main .events-hero-copy-v46{ max-width:780px; }
.events-page-main .events-live-section-v46{ padding-top:26px; }
.events-page-main #schedule{ scroll-margin-top:96px; }

/* Home-page final call to action: keep copy and actions properly centred. */
.home-page .final-cta{ width:100%; }
.home-page .final-cta > .container{
  display:block;
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding-inline:24px;
}
.home-page .final-cta > .container > div{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  width:100%;
  text-align:center;
}
.home-page .final-cta p{
  width:100%;
  max-width:560px;
  margin:0 auto;
  text-align:center;
}
.home-page .final-cta-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  width:100%;
  margin-top:6px;
}

/* Introductions: centred hero, clear controls, readable list and stable desktop grid. */
.introductions-page .page-hero{
  padding:64px 24px 44px;
  text-align:center;
}
.introductions-page .page-hero .narrow{
  width:100%;
  max-width:760px;
  margin-inline:auto;
}
.introductions-page .page-hero p{
  max-width:680px;
  margin-inline:auto;
}
.introductions-page .intro-hero-actions{
  justify-content:center;
  align-items:center;
}
.introductions-page .page-layout > .container{ max-width:1180px; }
.introductions-page .intro-layout{
  display:block;
  width:100%;
}
.introductions-page .intro-layout.is-hidden{ display:none; }
.introductions-page .intro-jump-bar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:18px;
  width:100%;
  margin:0 0 26px;
  padding:20px 22px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
}
.introductions-page .intro-jump-copy strong{
  display:block;
  margin-top:4px;
  font-family:var(--display);
  font-size:1.05rem;
}
.introductions-page .intro-count-stat{
  min-width:150px;
  padding:12px 16px;
  border-radius:var(--radius);
  background:var(--accent-soft);
  text-align:center;
}
.introductions-page .intro-count-stat strong{
  display:block;
  font-family:var(--display);
  font-size:1.7rem;
  line-height:1;
  color:var(--accent-hover);
}
.introductions-page .intro-count-stat span{
  display:block;
  margin-top:5px;
  font-size:.74rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.introductions-page .intro-jump-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.introductions-page .intro-content-grid{
  display:grid;
  grid-template-columns:minmax(0,1.38fr) minmax(330px,.82fr);
  gap:28px;
  align-items:start;
}
.introductions-page .intro-list-panel,
.introductions-page .intro-panel{ min-width:0; }
.introductions-page .intro-list-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:20px;
  margin-bottom:22px;
}
.introductions-page .intro-list-head p{ max-width:650px; }
.introductions-page .member-list{
  grid-template-columns:1fr;
  gap:14px;
}
.introductions-page .member-card{
  padding:22px;
  border:1px solid var(--line);
  box-shadow:0 4px 16px rgba(31,26,20,.04);
}
.introductions-page .member-top{
  align-items:center;
  margin-bottom:14px;
}
.introductions-page .member-top h3{
  margin-top:4px;
  font-size:1.15rem;
}
.introductions-page .member-top img{
  width:60px;
  height:60px;
  border-radius:16px;
}
.introductions-page .member-card p{
  margin-bottom:8px;
  line-height:1.55;
}
.introductions-page .member-card p:last-child{ margin-bottom:0; }
.introductions-page .intro-form-panel-v43{
  position:sticky;
  top:104px;
}

@media (max-width:980px){
  .logo-text{ font-size:.96rem; }
  .events-page-main .events-hero-v46-grid{
    grid-template-columns:1fr;
    padding:44px 0 30px;
  }
  .events-page-main .events-live-section-v46{ padding-top:20px; }
  .introductions-page .intro-jump-bar{
    grid-template-columns:1fr auto;
  }
  .introductions-page .intro-jump-actions{
    grid-column:1 / -1;
    justify-content:flex-start;
  }
  .introductions-page .intro-content-grid{
    grid-template-columns:1fr;
  }
  .introductions-page .intro-form-panel-v43{
    position:static;
  }
}

@media (max-width:640px){
  .logo-mark{ width:36px; height:36px; border-radius:10px; }
  .logo-text{ font-size:.88rem; }
  .events-page-main .events-hero-v46-grid{
    padding:36px 0 28px;
  }
  .events-page-main .events-live-section-v46{ padding-top:18px; }
  .events-page-main .events-hero-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .events-page-main .events-hero-actions .button{ width:100%; }
  .home-page .final-cta{ padding:42px 18px; }
  .home-page .final-cta > .container{ padding-inline:0; }
  .home-page .final-cta-actions{
    flex-direction:column;
  }
  .home-page .final-cta-actions .button{
    width:min(100%, 300px);
  }
  .introductions-page .page-hero{
    padding:42px 18px 34px;
  }
  .introductions-page .intro-hero-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .introductions-page .intro-hero-actions .button{ width:100%; }
  .introductions-page .intro-jump-bar{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:14px;
    padding:18px;
    text-align:center;
  }
  .introductions-page .intro-count-stat{
    width:100%;
    min-width:0;
  }
  .introductions-page .intro-jump-actions{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  .introductions-page .intro-jump-actions .button{ width:100%; }
  .introductions-page .intro-list-panel,
  .introductions-page .intro-panel,
  .introductions-page .gate-card{
    padding:20px;
    border-radius:20px;
  }
  .introductions-page .intro-list-head{
    grid-template-columns:1fr;
    text-align:left;
  }
  .introductions-page .intro-list-head .button{ width:100%; }
  .introductions-page .member-card{ padding:18px; }
  .introductions-page .member-top img{ width:52px; height:52px; }
}

@media (max-width:410px){
  .logo-text{ display:none; }
}

/* --------------------------------------------------------------------------
   Extra polish: more breathing room in forms, centered controls, clearer cards.
   -------------------------------------------------------------------------- */

/* Logo treatment */
.logo-wordmark-link{ gap:12px; }
.logo-mark{
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-sm);
  object-fit:cover;
}
.footer-brand img{
  background:var(--surface);
  border:1px solid var(--line);
  object-fit:cover;
}

/* Dialog / join form spacing */
.dialog-card.form-shell{
  width:min(100%, 680px);
  max-width:680px;
  padding:clamp(26px, 4vw, 38px);
}
.dialog-card.form-shell .form-progress-wrap{ margin-bottom:24px; }
.dialog-card.form-shell .form-step-head{ margin-bottom:18px; }
.dialog-card.form-shell .field{ gap:8px; }
.dialog-card.form-shell .field input,
.dialog-card.form-shell .field select,
.dialog-card.form-shell .field textarea{
  padding:14px 16px;
}
.dialog-card.form-shell .form-grid{ gap:16px; margin-bottom:16px; }
.dialog-card.form-shell .form-grid.two{ gap:16px; }
.dialog-card.form-shell .password-form,
.dialog-card.form-shell .event-idea-form,
.dialog-card.form-shell .intro-form{
  display:flex;
  flex-direction:column;
  gap:14px;
}
/* Only the active join step is visible — other steps stay hidden */
.dialog-card.form-shell .join-step{
  display:none;
  flex-direction:column;
  gap:14px;
}
.dialog-card.form-shell .join-step.is-current{
  display:flex;
}
[data-join-body].is-hidden{
  display:none !important;
}
.dialog-card.form-shell .join-rules-list{
  gap:12px;
  margin:18px 0 22px;
}
.dialog-card.form-shell .join-step-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.dialog-card.form-shell .join-step-actions .button{
  min-height:48px;
}
.dialog-card.form-shell .join-step-actions .button:first-child{
  flex:0 0 auto;
}
.dialog-card.form-shell .join-step-actions .button:last-child{
  flex:1 1 220px;
}
.dialog-card.form-shell .checkbox{
  align-items:flex-start;
  gap:10px;
}
.dialog-card.form-shell .checkbox span{
  line-height:1.45;
}

/* Final join / cta card */
.home-page .final-cta{
  padding:56px 44px;
}
.home-page .final-cta > .container > div{
  max-width:760px;
}
.home-page .final-cta-actions{
  gap:14px;
}

/* Introductions page: centered and readable */
.introductions-page .page-hero{
  padding:64px 24px 42px;
  text-align:center;
}
.introductions-page .page-hero .narrow{
  width:100%;
  max-width:760px;
  margin-inline:auto;
}
.introductions-page .page-hero p{
  margin-inline:auto;
  max-width:700px;
}
.introductions-page .intro-hero-actions{
  justify-content:center;
  align-items:center;
}
.introductions-page .intro-jump-bar{
  justify-items:center;
}
.introductions-page .intro-jump-copy{
  text-align:center;
}
.introductions-page .intro-jump-copy strong{
  display:block;
  margin-top:4px;
}
.introductions-page .intro-count-stat{
  min-width:150px;
}
.introductions-page .intro-content-grid{
  gap:32px;
}
.introductions-page .intro-list-head{
  align-items:center;
}
.introductions-page .intro-list-head .button{
  align-self:center;
}
.introductions-page .member-list{
  gap:16px;
}
.introductions-page .member-card{
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-sm);
}
.introductions-page .member-card p{
  line-height:1.65;
}
.introductions-page .intro-form-panel-v43{
  padding:30px;
}

/* Slightly more room for event idea and password forms too */
.password-form,
.event-idea-form,
.intro-form{
  gap:14px;
}

@media (max-width:980px){
  .dialog-card.form-shell{
    width:min(100%, 640px);
  }
  .dialog-card.form-shell .join-step-actions .button{
    flex:1 1 180px;
  }
  .introductions-page .intro-jump-bar{
    justify-items:stretch;
  }
  .introductions-page .intro-jump-copy,
  .introductions-page .intro-count-stat,
  .introductions-page .intro-jump-actions{
    width:100%;
  }
  .introductions-page .intro-jump-actions{
    justify-content:center;
  }
}

@media (max-width:640px){
  .dialog-card.form-shell{
    padding:22px;
  }
  .dialog-card.form-shell .join-step-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .dialog-card.form-shell .join-step-actions .button{
    width:100%;
    flex:unset;
  }
  .dialog-card.form-shell .form-grid.two,
  .dialog-card.form-shell .form-grid{
    gap:14px;
  }
  .home-page .final-cta{
    padding:44px 18px;
  }
  .home-page .final-cta-actions{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  .home-page .final-cta-actions .button{
    width:100%;
  }
  .introductions-page .page-hero{
    padding:42px 18px 34px;
  }
  .introductions-page .intro-hero-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .introductions-page .intro-hero-actions .button{
    width:100%;
  }
  .introductions-page .intro-jump-bar{
    padding:18px;
  }
  .introductions-page .intro-jump-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .introductions-page .intro-jump-actions .button{
    width:100%;
  }
  .introductions-page .intro-list-panel,
  .introductions-page .intro-panel{
    padding:20px;
  }
}


/* ---------- August 2026 cleanup pass ---------- */
/* Events: centre the hero block and keep the schedule aligned on desktop/mobile. */
.events-page-main .events-hero-v46-grid{
  grid-template-columns:minmax(0, 1fr);
  justify-content:center;
  max-width:920px;
  margin-inline:auto;
  padding:56px 24px 40px;
}
.events-page-main .events-hero-copy-v46{
  max-width:760px;
  margin-inline:auto;
}
.events-page-main .events-hero-actions{ justify-content:flex-start; }
.events-page-main .events-schedule-panel-v46{
  margin-top:10px;
}
.events-page-main .events-toolbar-v46{
  align-items:flex-start;
}
.events-page-main .events-toolbar-actions{
  margin-left:auto;
}
.events-page-main .events-note-row{
  gap:18px;
}
@media (max-width:700px){
  .events-page-main .events-toolbar-actions{ margin-left:0; width:100%; }
  .events-page-main .events-toolbar-actions .button{ width:100%; }
}

/* Home CTA: ensure the text and buttons are properly centred. */
.home-page .final-cta > .container{
  display:flex;
  justify-content:center;
}
.home-page .final-cta > .container > div{
  max-width:760px;
  width:100%;
  text-align:center;
}
.home-page .final-cta p{
  max-width:620px;
}
.home-page .final-cta-actions{
  justify-content:center;
}

/* Join form: keep sections visually separate with more breathing room. */
.dialog-card{
  padding:32px 28px;
}
.form-progress-wrap{
  margin-bottom:24px;
}
.join-form{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.join-step{
  padding:2px 0 6px;
}
.join-step + .join-step{
  margin-top:8px;
}
.form-grid{
  gap:16px;
  margin-bottom:16px;
}
.form-step-head{
  margin-bottom:18px;
}
.join-rules-list{
  gap:12px;
  margin:18px 0 24px;
}
.checkbox{
  margin-top:2px;
}
.join-step .button.full{
  margin-top:2px;
}
@media (max-width:700px){
  .dialog-card{ padding:26px 18px; }
  .form-grid.two{ grid-template-columns:1fr; }
}
