@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Syne:wght@600;700;800&display=swap');

:root{
  --yellow:#ffd36d;
  --blue:#673de6;
  --blue-ink:#5429c4;
  --black:#0a0a0a;
  --white:#ffffff;
  --paper:#f7f7f5;
  --ink:var(--black);
  --surface:var(--white);
  --muted:#5a5a5a;
  --line:#e4e4e2;
  --line-strong:#cfcfcb;
  --danger:#b42318;
  --success:#1b7a3d;
  --radius:14px;
  --radius-lg:20px;
  --radius-sm:8px;
  --shadow:0 1px 0 rgba(10,10,10,0.04), 0 12px 28px rgba(10,10,10,0.08);
  --shadow-soft:0 1px 0 rgba(10,10,10,0.03), 0 8px 18px rgba(10,10,10,0.06);
  --space-0:0;
  --space-0-5:4px;
  --space-1:8px;
  --space-1-5:12px;
  --space-2:12px;
  --space-3:16px;
  --space-4:24px;
  --space-5:32px;
  --space-6:40px;
  --space-7:48px;
  --space-8:64px;
  --page-pad:24px;
  --nav-h:72px;
  --max:1160px;
  --font-display:'Syne', sans-serif;
  --font-body:'DM Sans', sans-serif;
  --type-body:1rem;
  --type-body-line:1.6;
  --type-label:0.92rem;
  --type-caption:0.8rem;
  --type-button:0.94rem;
  --type-h1:clamp(2rem, 4vw, 3rem);
  --type-h2:clamp(1.5rem, 2.6vw, 2rem);
  --type-h3:clamp(1.15rem, 2vw, 1.4rem);
  --type-h4:1.05rem;
  --type-hero:clamp(2.6rem, 6vw, 4.4rem);
  --type-lead:1.08rem;
  --primary:var(--blue);
  --primary-dark:var(--blue-ink);
  --accent:var(--yellow);
  --paper-old:var(--paper);
}

*{box-sizing:border-box; margin:0; padding:0;}

html{scroll-behavior:smooth;}

body{
  min-height:100vh;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--type-body);
  line-height:var(--type-body-line);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:clip;
  display:flex;
  flex-direction:column;
}

body > main,
.page-shell-fill{
  flex:1;
}

a{
  color:var(--blue);
  text-decoration:none;
  transition:color .15s ease;
}

a:hover{color:var(--blue-ink);}

img{max-width:100%; display:block;}

button, input, select, textarea{font:inherit;}

h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);
  letter-spacing:-0.03em;
  line-height:1.12;
  margin:0;
  color:var(--ink);
}

h1{font-size:var(--type-h1); margin-bottom:var(--space-2);}
h2{font-size:var(--type-h2); margin-bottom:var(--space-2);}
h3{font-size:var(--type-h3); margin-bottom:var(--space-1);}
h4,h5,h6{font-size:var(--type-h4); margin-bottom:var(--space-1);}

p{color:var(--muted);}

.display{font-family:var(--font-display);}

.icon{
  width:1.15em;
  height:1.15em;
  display:inline-block;
  vertical-align:-0.15em;
  flex-shrink:0;
  stroke:currentColor;
  fill:none;
  stroke-width:1.75;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.icon-sm{width:1em; height:1em;}
.icon-lg{width:1.5em; height:1.5em;}
.icon-xl{width:2rem; height:2rem;}

.hidden{display:none !important;}
.hidden-inline{display:none;}
.text-muted{color:var(--muted);}
.text-center{text-align:center;}

/* ---------- Buttons ---------- */
.btn,
button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-1);
  padding:0.7rem 1.15rem;
  border-radius:var(--radius-sm);
  font-weight:600;
  font-size:var(--type-button);
  cursor:pointer;
  border:1px solid transparent;
  transition:background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
  text-decoration:none;
  line-height:1.2;
  white-space:nowrap;
}

.btn:visited,
.btn-primary:visited,
.btn-ghost:visited,
.btn-blue:visited{
  color:inherit;
}

.btn-primary,
.btn-primary:visited,
button[type='submit'],
.checkout-btn,
#organise-event{
  background:var(--black);
  color:var(--white);
  border-color:var(--black);
}

.btn-primary:hover,
button[type='submit']:hover,
.checkout-btn:hover:not(:disabled),
#organise-event:hover{
  background:#222;
  color:var(--white);
  transform:translateY(-1px);
}

.btn-blue{
  background:var(--blue);
  color:var(--white);
  border-color:var(--blue);
}

.btn-blue:hover{
  background:var(--blue-ink);
  color:var(--white);
}

.btn-yellow,
.btn-yellow:visited,
.btn-yellow:hover{
  background:var(--yellow);
  color:var(--black);
  border-color:var(--yellow);
}

.btn-yellow:hover{
  background:#ffc84a;
  color:var(--black);
}

.btn-ghost{
  background:transparent;
  color:var(--ink);
  border-color:var(--line-strong);
}

.btn-ghost-light{
  background:transparent;
  color:var(--white);
  border-color:rgba(255,255,255,0.35);
}

.btn-ghost-light:hover{
  border-color:var(--white);
  background:rgba(255,255,255,0.08);
  color:var(--white);
}

button[type='submit']:disabled,
.checkout-btn:disabled{
  opacity:0.45;
  cursor:not-allowed;
  transform:none;
}

/* ---------- Site header ---------- */
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:var(--white);
  border-bottom:1px solid var(--line);
}

.nav-inner{
  width:min(100%, var(--max));
  margin:0 auto;
  min-height:var(--nav-h);
  padding:0 var(--page-pad);
  display:flex;
  align-items:center;
  gap:var(--space-4);
}

.logo,
.logo:visited{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.35rem;
  letter-spacing:-0.04em;
  color:var(--black);
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
  text-decoration:none;
}

.logo:hover{color:var(--black);}

.logo-img{
  display:block;
  height:32px;
  width:auto;
  max-width:40px;
  object-fit:contain;
  flex-shrink:0;
}

.logo-wordmark{
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.2rem;
  letter-spacing:-0.04em;
  line-height:1;
  white-space:nowrap;
}

.dash-gate-logo .logo-img,
.dash-sidebar-logo .logo-img{
  height:28px;
  max-width:34px;
}

.dash-sidebar-logo .logo-wordmark{
  font-size:1.15rem;
}

.logo-img-hero,
.brand-lockup .logo-img{
  height:38px;
  max-width:44px;
}

.brand-lockup .logo-wordmark{
  font-size:clamp(1.15rem, 2vw, 1.4rem);
  color:var(--yellow);
}

.logo-img-mark{
  height:28px;
  max-width:34px;
}

.logo-mark{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  background:var(--yellow);
  color:var(--black);
  border-radius:7px;
  flex-shrink:0;
}

.logo-mark svg{
  width:16px;
  height:16px;
}

.nav-toggle{
  display:none;
  margin-left:auto;
  width:42px;
  height:42px;
  padding:0;
  border:1px solid var(--line);
  background:var(--white);
  color:var(--black);
  border-radius:var(--radius-sm);
}

.nav-toggle:hover{border-color:var(--black);}

.nav-cluster{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:var(--space-3);
  min-width:0;
}

.nav-links{
  display:flex;
  align-items:center;
  gap:0.2rem;
  margin-left:0;
  list-style:none;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.nav-link,
.nav-links > a,
.nav-dropdown-toggle{
  color:var(--muted);
  font-weight:550;
  font-size:var(--type-label);
  padding:0.55rem 0.75rem;
  border-radius:var(--radius-sm);
  text-decoration:none;
  background:transparent;
  border:none;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:inherit;
}

.nav-link:hover,
.nav-links > a:hover,
.nav-dropdown-toggle:hover,
.nav-link.is-active,
.nav-links > a.is-active,
.nav-links > a[aria-current="page"],
.nav-item.is-active > .nav-dropdown-toggle,
.nav-dropdown a[aria-current="page"]{
  color:var(--blue);
  background:rgba(31,104,235,0.08);
}

.nav-item{
  position:relative;
}

.nav-caret{
  transition:transform .15s ease;
}

.nav-item.is-open .nav-caret{
  transform:rotate(180deg);
}

.nav-dropdown{
  display:none;
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  min-width:210px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow);
  padding:6px;
  z-index:120;
}

.nav-item.is-open .nav-dropdown{
  display:grid;
}

.nav-dropdown a{
  color:var(--ink);
  font-weight:550;
  font-size:var(--type-label);
  padding:0.65rem 0.75rem;
  border-radius:6px;
  text-decoration:none;
}

.nav-dropdown a:hover,
.nav-dropdown a[aria-current="page"]{
  background:rgba(31,104,235,0.08);
  color:var(--blue);
}

.nav-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
  padding-left:var(--space-2);
  border-left:1px solid var(--line);
}

.nav-actions .btn-primary,
.nav-actions .btn-primary:visited,
.nav-actions .btn-primary:hover{
  color:var(--white) !important;
}

.nav-actions [data-header-welcome="true"],
#organiser-welcome{
  font-weight:600;
  font-size:var(--type-caption);
  color:var(--muted);
  max-width:140px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* ---------- Site footer ---------- */
.site-footer{
  margin-top:auto;
  background:var(--black);
  color:#c8c8c8;
  padding:var(--space-8) var(--page-pad) var(--space-5);
}

.footer-grid{
  width:min(100%, var(--max));
  margin:0 auto;
  display:grid;
  grid-template-columns:1.4fr repeat(3, 1fr);
  gap:var(--space-6);
}

.footer-brand .logo,
.footer-brand .logo:visited,
.footer-brand .logo:hover{
  color:var(--white);
}

.footer-brand p{
  margin-top:var(--space-3);
  max-width:28ch;
  color:#9a9a9a;
  font-size:var(--type-label);
  line-height:1.55;
}

.footer-col h3{
  font-family:var(--font-body);
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--yellow);
  margin-bottom:var(--space-3);
}

.footer-col a{
  display:block;
  color:#bdbdbd;
  font-size:var(--type-label);
  padding:0.35rem 0;
  text-decoration:none;
}

.footer-col a:hover{color:var(--white);}

.footer-bottom{
  width:min(100%, var(--max));
  margin:var(--space-7) auto 0;
  padding-top:var(--space-4);
  border-top:1px solid #2a2a2a;
  display:flex;
  justify-content:space-between;
  gap:var(--space-3);
  flex-wrap:wrap;
  font-size:var(--type-caption);
  color:#7a7a7a;
}

/* Back-compat aliases for pages using plain footer markup */

footer:not(.site-footer),
.footer:not(.site-footer){
  margin-top:auto;
  background:var(--black);
  color:#c8c8c8;
  padding:var(--space-6) var(--page-pad);
}

.footer-inner{
  width:min(100%, var(--max));
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-3);
  flex-wrap:wrap;
}

.footer-links{
  display:flex;
  gap:var(--space-3);
  flex-wrap:wrap;
}

.footer-links a,
.footer-links a:visited{
  color:#bdbdbd;
  text-decoration:none;
  font-size:var(--type-label);
}

.footer-links a:hover{color:var(--white);}

footer:not(.site-footer) .logo,
.footer:not(.site-footer) .logo{
  color:var(--white);
}

/* ---------- Layout helpers ---------- */
.page-container,
.page-container-wide,
.page-container-narrow{
  width:min(100%, var(--max));
  margin-inline:auto;
  padding-inline:var(--page-pad);
}

.page-container-narrow{max-width:560px;}
.page-stack{margin-top:var(--space-5); padding-bottom:var(--space-8);}

.discover-filters{
  display:grid;
  grid-template-columns:minmax(240px, 1.8fr) repeat(3, minmax(150px, 1fr));
  gap:16px;
  align-items:end;
  width:100%;
  max-width:none;
  margin:0 0 var(--space-4);
  padding:var(--space-4);
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-sizing:border-box;
}

.discover-filters .filter-field{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}

.discover-filters .filter-actions{
  grid-column:1 / -1;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

.discover-filters label{
  display:block;
  margin:0;
  font-size:0.75rem;
  font-weight:700;
  color:var(--muted);
  letter-spacing:0.04em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.discover-filters input,
.discover-filters select{
  width:100%;
  min-width:0;
  min-height:46px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:12px 14px;
  background:var(--white);
  color:var(--ink);
  font:inherit;
  box-sizing:border-box;
}

.discover-filters input[type="date"]{
  min-width:0;
  appearance:none;
}

.discover-filters input:focus,
.discover-filters select:focus{
  outline:2px solid rgba(31,104,235,0.25);
  border-color:var(--blue);
}

.discover-filters .btn{
  margin:0;
  width:auto;
}

.discover-results-head{
  margin-bottom:var(--space-3);
}

.discover-results-head p{margin:0;}

.pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin:var(--space-5) 0 var(--space-2);
}

.page-numbers{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}

.page-btn{
  min-width:42px;
  height:42px;
  padding:0 14px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--white);
  color:var(--ink);
  font-weight:600;
  cursor:pointer;
}

.page-btn:hover:not(:disabled){
  border-color:var(--blue);
  color:var(--blue);
}

.page-btn.is-active{
  background:var(--blue);
  border-color:var(--blue);
  color:var(--white);
}

.page-btn:disabled{
  opacity:0.4;
  cursor:not-allowed;
}

@media (max-width: 1100px){
  .discover-filters{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .discover-filters .filter-search{
    grid-column:1 / -1;
  }
}

@media (max-width: 640px){
  .discover-filters{
    grid-template-columns:1fr;
  }
}

.page-intro{
  padding:var(--space-6) 0 var(--space-4);
}

.page-intro h1{margin-bottom:var(--space-1);}
.page-intro p{max-width:52ch;}

.section{
  width:min(100%, var(--max));
  margin-inline:auto;
  padding:var(--space-7) var(--page-pad);
}

.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:var(--space-4);
  margin-bottom:var(--space-4);
}

.section-head h2{margin:0;}

.section-head a{
  font-size:var(--type-label);
  font-weight:700;
  color:var(--blue);
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.section-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  flex-wrap:wrap;
}

.section-header h1,
.section-header h2,
.section-header h3,
.page-intro h1,
.page-intro h2,
.page-intro h3,
.auth-shell h1,
.policy-shell h1{
  margin-top:0;
}

.section-subtitle{color:var(--muted);}

.rhythm-body > * + *{margin-top:var(--space-2);}
.stack-sm > * + *{margin-top:8px;}
.stack-md > * + *{margin-top:var(--space-2);}
.stack-lg > * + *{margin-top:var(--space-3);}

.breadcrumb{
  width:min(100%, var(--max));
  margin:var(--space-4) auto 0;
  padding:0 var(--page-pad);
  color:var(--muted);
  font-size:var(--type-caption);
}

.breadcrumb a{color:var(--blue);}
.breadcrumb a:hover{color:var(--black);}

/* ---------- Hero ---------- */
.hero{
  background:var(--black);
  color:var(--white);
  position:relative;
  overflow:visible;
  z-index:2;
}

.hero:has(.category-combo.is-open){
  z-index:50;
}

.hero-media{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}

.hero-media video,
.hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.hero-scrim{
  position:absolute;
  inset:0;
  background:rgba(10,10,10,0.62);
}

.hero-inner{
  position:relative;
  z-index:1;
  width:min(100%, var(--max));
  margin:0 auto;
  padding:clamp(3rem, 8vw, 5.5rem) var(--page-pad);
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:clamp(2rem, 5vw, 4rem);
  align-items:center;
  min-height:calc(100vh - var(--nav-h));
  min-height:min(720px, calc(100dvh - var(--nav-h)));
}

.hero-copy .brand-lockup{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:var(--space-4);
}

.hero-copy .brand-lockup .logo-img-hero{
  height:clamp(36px, 5vw, 48px);
  max-width:48px;
  filter:brightness(1.05);
}

.hero h1{
  font-size:var(--type-hero);
  color:var(--white);
  max-width:11ch;
  margin-bottom:var(--space-3);
}

.hero h1 .mark{
  color:var(--yellow);
}

.hero-lead{
  color:#e4e4e4;
  font-size:var(--type-lead);
  max-width:38ch;
  margin-bottom:var(--space-5);
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.hero-compact .hero-inner{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  min-height:auto;
  padding-block:clamp(2rem, 5.5vw, 3.4rem);
  gap:var(--space-4);
  overflow:visible;
  position:relative;
  z-index:1;
}

.hero-compact .hero-copy{
  max-width:42rem;
}

.hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 var(--space-3);
  padding:0.4rem 0.75rem;
  border-radius:999px;
  background:var(--yellow);
  color:var(--black);
  font-size:var(--type-caption);
  font-weight:700;
  letter-spacing:0.04em;
  text-transform:uppercase;
}

.hero-compact h1{
  max-width:14ch;
}

.hero-compact .hero-lead{
  margin-bottom:0;
}

.hero-search{
  margin:0;
  width:100%;
  max-width:100%;
  position:relative;
  z-index:3;
}

.hero-search:has(.category-combo.is-open){
  z-index:60;
  overflow:visible;
}

.region-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.region-pill{
  display:inline-flex;
  align-items:center;
  padding:0.45rem 0.85rem;
  border-radius:999px;
  font-size:var(--type-caption);
  font-weight:700;
  background:rgba(255,255,255,0.12);
  color:var(--white);
  border:1px solid rgba(255,255,255,0.22);
}

.region-pill.is-active{
  background:var(--yellow);
  color:var(--black);
  border-color:var(--yellow);
}

.region-pill.is-disabled{
  opacity:0.7;
  font-weight:600;
}

.section-discover{
  padding-top:var(--space-6);
}

.family-points{
  padding-top:0;
}

.ticket-guest-note{
  margin:10px 0 0;
  color:var(--muted);
  font-size:0.85rem;
  line-height:1.4;
}

.checkout-lead{
  margin:0 0 var(--space-4);
  color:var(--muted);
}

.checkout-login-row{
  margin:0 0 var(--space-3);
  font-size:var(--type-label);
}

.checkout-opt-in{
  display:flex !important;
  align-items:flex-start;
  gap:10px;
  margin:var(--space-3) 0 var(--space-2);
  font-weight:600;
  cursor:pointer;
}

.checkout-shell input[type="checkbox"]{
  width:auto !important;
  min-width:18px;
  margin-top:3px;
}

#create-account-fields{
  margin-bottom:var(--space-3);
}

.hero-visual{
  position:relative;
  min-height:460px;
}

.hero-accent{
  position:absolute;
  width:42%;
  height:38%;
  right:-4%;
  bottom:-6%;
  background:var(--yellow);
  border-radius:var(--radius-lg);
  z-index:0;
}

.hero-panel{
  position:absolute;
  inset:0;
  z-index:1;
  background:var(--white);
  border-radius:var(--radius-lg);
  overflow:hidden;
  display:grid;
  grid-template-rows:1.15fr 0.85fr;
  box-shadow:var(--shadow);
  text-decoration:none;
  color:inherit;
}

a.hero-panel:hover{
  color:inherit;
}

.hero-panel-image{
  position:relative;
  min-height:220px;
  background:var(--blue);
}

.hero-panel-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero-panel-body{
  background:var(--black);
  color:var(--white);
  padding:var(--space-4);
  display:flex;
  flex-direction:column;
}

.hero-panel-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:var(--space-2);
}

.hero-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--yellow);
  color:var(--black);
  font-weight:700;
  font-size:var(--type-caption);
  padding:0.45rem 0.75rem;
  border-radius:var(--radius-sm);
}

.hero-panel h3{
  color:var(--white);
  font-size:clamp(1.35rem, 2.4vw, 1.75rem);
  max-width:14ch;
  margin-top:var(--space-3);
}

.hero-panel-meta{
  margin-top:auto;
  display:grid;
  gap:10px;
  color:rgba(255,255,255,0.88);
  font-size:var(--type-label);
}

.hero-panel-meta div{
  display:flex;
  align-items:center;
  gap:10px;
}

.hero-panel-foot{
  margin-top:var(--space-3);
  padding-top:var(--space-3);
  border-top:1px solid rgba(255,255,255,0.22);
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:var(--white);
}

.hero-panel-foot .price{
  font-family:var(--font-display);
  font-size:1.6rem;
  font-weight:800;
  color:var(--yellow);
}

/* ---------- Discovery split ---------- */
.discover-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--space-3);
}

.discover-block{
  padding:clamp(1.75rem, 4vw, 2.75rem);
  border-radius:var(--radius-lg);
  min-height:280px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  text-decoration:none;
  transition:transform .18s ease;
  color:inherit;
}

.discover-block:hover{transform:translateY(-3px);}

.discover-block.kids{
  background:var(--yellow);
  color:var(--black);
}

.discover-block.general{
  background:var(--blue);
  color:var(--white);
}

.discover-block .eyebrow{
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  opacity:0.75;
  margin-bottom:var(--space-2);
}

.discover-block h3{
  font-size:clamp(1.6rem, 3vw, 2.1rem);
  margin-bottom:var(--space-2);
  color:inherit;
}

.discover-block p{
  color:inherit;
  opacity:0.85;
  max-width:32ch;
  margin-bottom:var(--space-4);
  font-size:var(--type-label);
}

.discover-block .cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:700;
  font-size:var(--type-label);
}

/* ---------- Organiser value strip ---------- */
.value-strip{
  background:var(--white);
  border-block:1px solid var(--line);
}

.value-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:var(--space-4);
}

.value-item{
  padding:var(--space-2) 0;
}

.value-icon{
  width:44px;
  height:44px;
  border-radius:var(--radius-sm);
  background:var(--yellow);
  color:var(--black);
  display:grid;
  place-items:center;
  margin-bottom:var(--space-3);
}

.value-item h3{
  font-size:1.15rem;
  margin-bottom:var(--space-1);
}

.value-item p{
  font-size:var(--type-label);
  max-width:34ch;
}

/* ---------- Search / category combo ---------- */
.search-bar{
  margin:0 0 var(--space-4);
  display:flex;
  align-items:stretch;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  position:relative;
  z-index:2;
}

.search-bar:has(.category-combo.is-open){
  overflow:visible;
  z-index:60;
}

.search-bar input[type="text"],
.search-bar input[type="search"]:not(.category-combo-search),
.search-bar input[type="date"],
.search-bar select{
  border:none;
  outline:none;
  padding:16px 18px;
  background:transparent;
  color:var(--ink);
  min-width:0;
  border-radius:0;
  box-shadow:none;
  width:auto;
  flex:1;
}

.search-bar select{
  flex:0 1 200px;
  border-left:1px solid var(--line);
  color:var(--muted);
  cursor:pointer;
  min-width:150px;
}

.search-bar input[type="date"]{
  flex:0 0 156px;
  width:156px;
  border-left:1px solid var(--line);
  color:var(--muted);
  cursor:pointer;
}

.category-combo{
  position:relative;
  flex:0 1 220px;
  min-width:168px;
  border-left:1px solid var(--line);
  display:flex;
  align-items:stretch;
  z-index:1;
}

.category-combo.is-open{
  z-index:70;
}

.category-combo-block{
  flex:none;
  width:100%;
  min-width:0;
  border-left:none;
  display:block;
}

.category-combo-trigger{
  width:100%;
  min-height:54px;
  display:flex !important;
  align-items:center;
  justify-content:space-between !important;
  gap:10px;
  padding:14px 16px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--muted) !important;
  font:inherit;
  font-weight:600;
  text-align:left;
  cursor:pointer;
  white-space:nowrap;
}

.category-combo-block .category-combo-trigger{
  min-height:48px;
  border:1px solid var(--line) !important;
  border-radius:var(--radius-sm) !important;
  background:var(--white) !important;
  color:var(--ink) !important;
}

.category-combo.is-open .category-combo-trigger{
  color:var(--ink) !important;
}

.category-combo-label{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.category-combo-panel{
  position:absolute;
  top:calc(100% + 8px);
  left:0;
  right:0;
  z-index:80;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:var(--shadow);
  overflow:hidden;
  min-width:240px;
}

.category-combo-block .category-combo-panel{
  left:0;
  right:0;
  min-width:0;
}

.category-combo-search{
  width:100% !important;
  border:0 !important;
  border-bottom:1px solid var(--line) !important;
  border-radius:0 !important;
  padding:12px 14px !important;
  outline:none;
  background:var(--white) !important;
  font:inherit;
  box-shadow:none !important;
}

.category-combo-list{
  list-style:none;
  margin:0;
  padding:6px;
  max-height:240px;
  overflow:auto;
}

.category-combo-list [role="option"]{
  padding:10px 12px;
  border-radius:8px;
  cursor:pointer;
  font-weight:600;
  color:var(--ink);
}

.category-combo-list [role="option"]:hover,
.category-combo-list [role="option"][aria-selected="true"]{
  background:#f3f3f1;
}

.category-combo-empty{
  padding:12px;
  color:var(--muted);
  font-size:0.92rem;
}

.search-bar > button[type="submit"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-radius:0;
  background:var(--blue);
  color:var(--white);
  padding:0 26px;
  border:none;
  flex-shrink:0;
}

.search-bar > button[type="submit"]:hover{background:var(--blue-ink);}

.categories{
  display:flex;
  gap:var(--space-1);
  flex-wrap:wrap;
  margin-bottom:var(--space-4);
}

.chip{
  padding:0.55rem 0.95rem;
  border-radius:var(--radius-sm);
  font-size:var(--type-label);
  font-weight:600;
  border:1px solid var(--line);
  background:var(--white);
  cursor:pointer;
  color:var(--muted);
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}

.chip.active,
.chip:hover{
  background:var(--black);
  color:var(--white);
  border-color:var(--black);
}

/* ---------- Event grid ---------- */
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(270px, 1fr));
  gap:var(--space-4);
  padding-bottom:var(--space-4);
}

.event-card,
.event-card:visited{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  overflow:hidden;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  display:flex;
  flex-direction:column;
  color:inherit;
  text-decoration:none;
}

.event-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow);
  border-color:var(--line-strong);
  color:inherit;
}

.event-card .thumb{
  height:158px;
  position:relative;
  background:var(--blue);
  display:flex;
  align-items:flex-end;
  padding:12px;
  overflow:hidden;
}

.event-card .thumb img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.event-card .thumb::after{
  content:'';
  position:absolute;
  inset:0;
  background:rgba(10,10,10,0.18);
  pointer-events:none;
}

.event-card .date-badge,
.event-card .category-tag{
  z-index:1;
}

.event-card:nth-child(3n) .thumb{background:var(--black);}
.event-card:nth-child(3n+2) .thumb{background:#5429c4;}

.event-card .date-badge{
  position:relative;
  background:var(--white);
  color:var(--ink);
  border-radius:var(--radius-sm);
  padding:6px 10px;
  font-size:0.75rem;
  line-height:1.1;
  text-align:center;
  font-weight:600;
}

.event-card .date-badge strong{
  display:block;
  font-size:1.05rem;
  font-family:var(--font-display);
}

.event-card .category-tag{
  position:absolute;
  top:12px;
  right:12px;
  background:var(--yellow);
  color:var(--black);
  font-size:0.72rem;
  font-weight:700;
  padding:4px 10px;
  border-radius:6px;
}

.event-card .body{
  padding:16px 18px 18px;
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:1;
}

.event-card h3{
  font-size:1.05rem;
  line-height:1.3;
}

.event-card .loc{
  font-size:var(--type-caption);
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:6px;
}

.event-card .foot{
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.event-card .foot .from{
  font-size:var(--type-caption);
  color:var(--muted);
}

.event-card .foot .amount{
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.05rem;
}

.event-card .foot .amount.free{color:var(--blue);}

.skeleton{
  background:var(--line);
  animation:pulse 1.2s ease-in-out infinite;
}

.skeleton-thumb{background:var(--line-strong);}
.skeleton-line-lg{height:18px; width:80%; border-radius:6px;}
.skeleton-line-sm{height:14px; width:50%; border-radius:6px; margin-top:8px;}

@keyframes pulse{
  0%,100%{opacity:1;}
  50%{opacity:0.45;}
}

.empty-state{
  text-align:center;
  padding:var(--space-8) var(--space-4);
  color:var(--muted);
}

.empty-state h3{color:var(--ink); margin-bottom:var(--space-1);}
.empty-state-full{grid-column:1/-1;}

/* ---------- Auth ---------- */
.auth-shell{
  width:min(100%, 560px);
  margin:52px auto;
  padding:var(--space-5);
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
}

.auth-shell h1{margin:0 0 var(--space-1);}
.auth-shell p{margin-top:var(--space-1);}
.auth-shell form{margin-top:var(--space-4);}

.auth-footer{
  margin-top:var(--space-3);
  color:var(--muted);
  font-size:var(--type-label);
}

.auth-footer a{color:var(--blue); font-weight:600;}

.auth-footer .btn{
  padding:0;
  border:0;
  background:none;
  color:var(--blue);
  font-weight:600;
  font-size:inherit;
}

#verify-code{
  letter-spacing:0.35em;
  font-size:1.35rem;
  font-weight:700;
  text-align:center;
}

.password-field{
  display:flex;
  align-items:center;
  width:100%;
  min-height:46px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--white);
  overflow:hidden;
}

.password-field:focus-within{
  border-color:var(--blue);
}

.password-field input,
.password-field input:focus{
  flex:1 1 auto;
  width:100%;
  min-width:0;
  border:none !important;
  outline:none !important;
  box-shadow:none !important;
  background:transparent;
  padding:13px 8px 13px 14px;
  margin:0;
  border-radius:0;
}

.password-toggle,
.password-field .password-toggle,
form:not(.search-bar):not(.discover-filters) .password-toggle,
.org-signup-card .password-toggle{
  position:static !important;
  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
  flex:0 0 40px;
  width:40px !important;
  min-width:40px !important;
  height:40px !important;
  margin:0 4px 0 0 !important;
  padding:0 !important;
  border:none !important;
  border-radius:6px;
  background:transparent !important;
  color:var(--muted);
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  box-shadow:none !important;
  line-height:1;
}

.password-toggle .icon{
  width:18px;
  height:18px;
  display:block;
}

.password-toggle:hover,
.org-signup-card .password-toggle:hover{
  color:var(--ink);
  background:var(--paper) !important;
  transform:none !important;
}

.inline-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:var(--space-2);
}

.inline-row .link{
  color:var(--blue);
  font-size:var(--type-label);
  font-weight:600;
}

.helper-text{
  margin-top:var(--space-1);
  color:var(--muted);
  font-size:var(--type-caption);
}

.notice,
.success-box{
  margin-top:var(--space-3);
  padding:var(--space-2) var(--space-3);
  border-radius:var(--radius-sm);
  border:1px solid rgba(31,104,235,0.2);
  background:rgba(31,104,235,0.06);
  color:var(--ink);
}

.success-box{
  border-color:rgba(27,122,61,0.25);
  background:rgba(27,122,61,0.08);
}

.form-notice{
  margin-top:var(--space-2);
  padding:var(--space-2);
  border-radius:var(--radius-sm);
  border:1px solid rgba(31,104,235,0.18);
  background:rgba(31,104,235,0.06);
  display:none;
}

.form-notice.success{
  border-color:rgba(27,122,61,0.25);
  background:rgba(27,122,61,0.1);
  color:#164627;
  display:block;
}

.form-notice.error{
  border-color:rgba(180,35,24,0.28);
  background:rgba(180,35,24,0.08);
  color:#7b1e16;
  display:block;
}

/* ---------- Forms ---------- */
form:not(.search-bar):not(.discover-filters){
  display:grid;
  gap:12px;
  max-width:640px;
}

form:not(.search-bar):not(.discover-filters) label{
  margin-top:var(--space-0-5);
  font-size:var(--type-label);
  font-weight:600;
  color:var(--ink);
}

form:not(.search-bar):not(.discover-filters) input,
form:not(.search-bar):not(.discover-filters) select,
form:not(.search-bar):not(.discover-filters) textarea{
  border:1px solid var(--line);
  outline:none;
  padding:13px 14px;
  border-radius:var(--radius-sm);
  background:var(--white);
  color:var(--ink);
  min-width:0;
}

form:not(.search-bar):not(.discover-filters) input,
form:not(.search-bar):not(.discover-filters) select,
form:not(.search-bar):not(.discover-filters) textarea{width:100%;}

form:not(.search-bar):not(.discover-filters) input:focus,
form:not(.search-bar):not(.discover-filters) select:focus,
form:not(.search-bar):not(.discover-filters) textarea:focus{
  border-color:var(--blue);
}

form:not(.search-bar):not(.discover-filters) textarea{
  min-height:128px;
  resize:vertical;
}

form:not(.search-bar):not(.discover-filters) button{width:fit-content; margin-top:var(--space-1);}

.org-signup-card form:not(.search-bar):not(.discover-filters){
  max-width:none;
  width:100%;
  margin-top:var(--space-3);
}

.org-signup-card form:not(.search-bar):not(.discover-filters) label{
  margin-top:0;
}

.org-signup-card form:not(.search-bar):not(.discover-filters) button[type="submit"]{
  width:100%;
  margin-top:4px;
}

.checkline{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:var(--type-label);
}

.ticket-type-row{
  display:flex;
  gap:var(--space-1);
  margin-bottom:var(--space-1);
  align-items:center;
}

.ticket-type-row .tt-name{flex:2;}
.ticket-type-row .tt-price,
.ticket-type-row .tt-qty{flex:1;}

fieldset{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:var(--space-3);
}

legend{padding:0 6px; font-weight:600;}

/* ---------- Cards / panels ---------- */
.surface-card,
.panel-card,
.record-card,
.metric-card,
.filter-card,
.confirmation-card,
.policy-shell,
.page-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
}

.surface-card,
.panel-card,
.record-card,
.metric-card,
.filter-card,
.confirmation-card,
.policy-shell,
.page-card{padding:20px;}

.policy-shell{
  max-width:980px;
  margin:var(--space-6) auto;
}

.policy-shell h1{margin-top:0;}
.policy-shell h2,
.policy-shell h3{margin-top:var(--space-4);}

.metric-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:12px;
  margin:var(--space-3) 0 var(--space-4);
}

.metric-card h2{
  margin:0;
  font-family:var(--font-body);
  font-size:var(--type-caption);
  color:var(--muted);
  letter-spacing:0.05em;
  text-transform:uppercase;
}

.metric-value{
  margin-top:var(--space-1);
  font-family:var(--font-display);
  font-size:2rem;
  line-height:1.1;
  color:var(--ink);
}

.split-layout{
  display:grid;
  grid-template-columns:1.1fr 1.9fr;
  gap:14px;
  align-items:start;
}

.record-list,
.result-list,
.info-grid{display:grid; gap:12px;}

.record-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:var(--space-1);
  flex-wrap:wrap;
}

.record-head h3{margin:0; font-size:var(--type-h4);}

.record-meta{
  color:var(--muted);
  font-size:var(--type-label);
  display:flex;
  align-items:center;
  gap:6px;
}

.record-total{
  margin-top:var(--space-1);
  font-weight:700;
  font-family:var(--font-display);
}

.status-pill,
.pill{
  font-size:var(--type-caption);
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--ink);
  padding:4px 10px;
  border-radius:6px;
  text-transform:capitalize;
  font-weight:600;
}

.status-pill-draft,
.pill{
  border-color:#e2c56a;
  background:#fff6da;
  color:#6f5200;
}

.draft-banner{
  max-width:var(--max);
  margin:16px auto 0;
  padding:0 var(--page-pad);
}

.draft-banner .inner{
  background:#fff6da;
  border:1px solid #e2c56a;
  color:#6f5200;
  border-radius:var(--radius-sm);
  padding:12px 18px;
  font-size:0.88rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.draft-banner .inner strong{font-weight:700;}

.draft-banner .actions{display:flex; gap:10px;}

.draft-banner .actions a{
  font-weight:600;
  padding:6px 14px;
  border-radius:6px;
  background:var(--black);
  color:var(--white);
  font-size:0.82rem;
  text-decoration:none;
}

.button-row{
  display:flex;
  gap:var(--space-1);
  flex-wrap:wrap;
  margin-top:var(--space-2);
}

.border-top-soft{
  border-top:1px solid var(--line);
  padding-top:var(--space-3);
}

.checkout-shell,
.bookings-shell,
.sales-shell,
.confirmation-shell{margin-top:var(--space-5); padding-bottom:var(--space-8);}

.checkout-shell > h1:first-child,
.bookings-shell > h1:first-child,
.sales-shell > h1:first-child,
.page-container > h1:first-child,
.page-container-wide > h1:first-child,
.page-container-narrow > h1:first-child{margin-top:0;}

.order-lines p,
.result-list p,
.record-card p{margin:var(--space-1) 0 0;}

.inline-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:var(--space-4);
}

.quick-links-list{
  list-style:none;
  padding-left:0;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:12px;
}

.quick-links-list li a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:var(--space-2) var(--space-3);
  border-radius:var(--radius-sm);
  border:1px solid var(--line);
  background:var(--white);
  color:var(--blue);
  font-weight:600;
}

.quick-links-list li a:hover{
  border-color:var(--blue);
  background:rgba(31,104,235,0.04);
}

.dashboard-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:var(--space-2);
  flex-wrap:wrap;
  margin-bottom:var(--space-2);
  padding-bottom:var(--space-1);
  border-bottom:1px solid var(--line);
}

.dashboard-event-grid,
.shortcut-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:var(--space-2);
}

.shortcut-card{display:block; color:inherit;}
.shortcut-card h3{margin-top:0;}

/* ---------- Dashboard ---------- */
.dash-page{
  background:#f3f3f1;
  min-height:100vh;
}

.dash-page.is-dash-ready{
  overflow:hidden;
  height:100vh;
}

.dash-gate,
.dash-app{min-height:100vh;}

.dash-gate{
  display:grid;
  place-items:center;
  padding:var(--page-pad);
}

.dash-gate[hidden],
.dash-app[hidden],
.dash-boot[hidden],
.dash-section[hidden],
.dash-nav-item[hidden],
.dash-backdrop[hidden]{display:none !important;}

/* Boot / skeleton */
.dash-boot{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  gap:18px;
  padding:24px;
}

.dash-boot-shell{
  display:grid;
  grid-template-columns:268px minmax(0, 1fr);
  flex:1;
  min-height:calc(100vh - 80px);
  background:var(--white);
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
}

.dash-boot-sidebar{
  display:grid;
  align-content:start;
  gap:12px;
  padding:24px 18px;
  background:var(--white);
  border-right:1px solid var(--line);
}

.dash-boot-main{
  display:grid;
  align-content:start;
  gap:14px;
  padding:32px 36px;
  background:#f3f3f1;
}

.dash-boot-metrics{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  margin-top:8px;
}

.dash-skel{
  border-radius:12px;
  background:linear-gradient(90deg, #ebebe8 25%, #f6f6f4 37%, #ebebe8 63%);
  background-size:400% 100%;
  animation:dash-skel-shine 1.2s ease-in-out infinite;
}

.dash-skel-logo{
  height:auto;
  width:auto;
  min-height:28px;
  background:none;
  animation:none;
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.dash-skel-logo .logo-img{
  height:28px;
  max-width:34px;
  opacity:0.9;
}

.dash-skel-logo .logo-wordmark{
  opacity:0.75;
}
.dash-skel-user{height:72px; width:100%; margin-top:8px;}
.dash-skel-nav{height:42px; width:100%;}
.dash-skel-cta{height:44px; width:100%; margin-top:24px;}
.dash-skel-eyebrow{height:12px; width:72px;}
.dash-skel-title{height:36px; width:min(280px, 60%);}
.dash-skel-lead{height:16px; width:min(420px, 80%);}
.dash-skel-metric{height:110px; width:100%; border-radius:16px;}
.dash-skel-panel{height:280px; width:100%; margin-top:4px; border-radius:16px;}

.dash-boot-label{
  text-align:center;
  color:var(--muted);
  font-size:0.92rem;
  font-weight:600;
  margin:0;
}

@keyframes dash-skel-shine{
  0%{background-position:100% 0;}
  100%{background-position:0 0;}
}

@media (max-width: 960px){
  .dash-boot-shell{grid-template-columns:1fr;}
  .dash-boot-sidebar{display:none;}
  .dash-boot-metrics{grid-template-columns:1fr;}
}

.dash-gate-card{
  width:min(100%, 440px);
  background:var(--white);
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow-soft);
  padding:36px 28px;
  text-align:center;
}

.dash-gate-logo{justify-content:center; margin-bottom:22px;}
.dash-gate-card h1{margin-bottom:10px; font-size:clamp(1.8rem, 4vw, 2.4rem);}
.dash-gate-card p{color:var(--muted); margin-bottom:22px;}
.dash-gate-card .button-row{justify-content:center;}

.dash-app{
  display:grid;
  grid-template-columns:268px minmax(0, 1fr);
  height:100vh;
  max-height:100vh;
}

.dash-sidebar{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:28px;
  padding:24px 18px;
  background:var(--white);
  border-right:1px solid var(--line);
  overflow:auto;
}

.dash-sidebar-top{
  display:flex;
  flex-direction:column;
  gap:24px;
}

.dash-sidebar-logo{
  font-size:1.28rem;
  padding:4px 10px;
}

.dash-user-card{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:14px 12px;
  border-radius:16px;
  background:#f7f7f5;
  border:1px solid var(--line);
}

.dash-avatar{
  flex:0 0 auto;
  width:42px;
  height:42px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:var(--yellow);
  color:var(--black);
  font-family:var(--font-display);
  font-weight:700;
  font-size:1.05rem;
}

.dash-user-copy{
  min-width:0;
  display:grid;
  gap:2px;
}

.dash-user-card strong{
  font-family:var(--font-display);
  font-size:1rem;
  letter-spacing:-0.02em;
  line-height:1.25;
  overflow-wrap:anywhere;
}

.dash-user-email{
  color:var(--muted);
  font-size:0.84rem;
  overflow-wrap:anywhere;
}

.dash-plan-pill{
  justify-self:start;
  margin-top:6px;
  display:inline-flex;
  align-items:center;
  padding:3px 8px;
  border-radius:6px;
  background:var(--white);
  border:1px solid var(--line);
  color:var(--muted);
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
}

.dash-side-nav{
  display:grid;
  gap:4px;
}

.dash-nav-item{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  width:100%;
  border:0;
  background:transparent;
  color:#3a3a3a;
  font:inherit;
  font-weight:600;
  font-size:0.95rem;
  text-align:left;
  padding:11px 12px;
  border-radius:12px;
  cursor:pointer;
  transition:background .15s ease, color .15s ease;
  white-space:normal;
  text-decoration:none;
}

a.dash-nav-item:visited{color:#3a3a3a;}
a.dash-nav-item.is-active,
a.dash-nav-item.is-active:visited{color:var(--white);}
a.dash-nav-item:hover{color:var(--ink);}
a.dash-nav-item.is-active:hover{color:var(--white);}

.dash-nav-item:hover{
  background:#f3f3f1;
  color:var(--ink);
}

.dash-nav-item.is-active{
  background:var(--black);
  color:var(--white);
}

.dash-nav-ico{
  width:28px;
  height:28px;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:rgba(10,10,10,0.06);
  color:inherit;
  flex-shrink:0;
}

.dash-nav-item.is-active .dash-nav-ico{
  background:rgba(255,255,255,0.14);
}

.dash-nav-ico .icon{
  width:15px;
  height:15px;
}

.dash-sidebar-foot{
  display:grid;
  gap:8px;
  padding-top:4px;
}

.dash-side-cta,
.dash-logout-btn{
  width:100%;
  justify-content:center;
  border-radius:12px;
}

.dash-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  background:#f3f3f1;
  overflow:hidden;
}

.dash-mobile-bar{
  display:none;
  align-items:center;
  gap:12px;
  padding:14px 18px;
  background:var(--white);
  border-bottom:1px solid var(--line);
}

.dash-menu-btn{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  background:var(--white);
  border-radius:12px;
  padding:0;
  color:var(--ink);
  cursor:pointer;
}

.dash-menu-btn .icon{
  width:20px;
  height:20px;
}

.dash-main-scroll{
  flex:1;
  overflow:auto;
  padding:32px 36px 48px;
  width:100%;
}

.dash-page-head{
  width:100%;
  margin-bottom:24px;
}

.dash-eyebrow{
  margin:0 0 8px;
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--muted);
}

.dash-page-head h1{
  margin:0 0 8px;
  font-size:clamp(1.9rem, 3.4vw, 2.6rem);
  letter-spacing:-0.035em;
}

.dash-lead{
  margin:0;
  max-width:46rem;
  color:var(--muted);
  font-size:1rem;
  line-height:1.55;
}

.dash-section{
  display:grid;
  gap:16px;
  width:100%;
  min-width:0;
}

#section-impact{
  min-width:0;
}

.dash-app .metric-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(170px, 1fr));
  gap:12px;
  margin:0;
}

.dash-metric{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px;
  box-shadow:0 1px 0 rgba(10,10,10,0.03);
}

.dash-metric-top{
  display:flex;
  align-items:center;
  gap:10px;
}

.dash-metric-icon{
  width:34px;
  height:34px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:var(--yellow);
  color:var(--black);
  flex-shrink:0;
}

.dash-metric-icon .icon{width:16px; height:16px;}

.dash-metric h2{
  margin:0;
  font-family:var(--font-body);
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--muted);
}

.dash-metric-value{
  margin:14px 0 0;
  font-family:var(--font-display);
  font-size:1.9rem;
  line-height:1;
  letter-spacing:-0.03em;
}

.dash-metric-hint{
  margin:8px 0 0;
  color:var(--muted);
  font-size:0.82rem;
}

.dash-overview-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.7fr) minmax(280px, 0.9fr);
  gap:12px;
  align-items:start;
  width:100%;
}

.dash-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:16px;
  padding:20px;
  box-shadow:0 1px 0 rgba(10,10,10,0.03);
}

.dash-card-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px solid var(--line);
}

.dash-card-head h2{
  margin:0;
  font-size:1.1rem;
}

.dash-text-link{
  border:0;
  background:none;
  color:var(--blue);
  font:inherit;
  font-weight:600;
  font-size:0.92rem;
  cursor:pointer;
  padding:0;
  text-decoration:none;
  white-space:nowrap;
}

.dash-text-link:hover{color:var(--blue-ink);}

.dash-card-copy{
  color:var(--muted);
  margin:0 0 16px;
}

.dash-list{display:grid; gap:0;}

.dash-list-item{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}

.dash-list-item:first-child{padding-top:2px;}
.dash-list-item:last-child{border-bottom:0; padding-bottom:0;}
.dash-list-item h3{margin:4px 0 6px; font-size:1.02rem;}

.dash-list-tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.dash-list-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
  flex-shrink:0;
}

.dash-empty{
  text-align:center;
  padding:28px 12px 18px;
}

.dash-empty-icon{
  width:52px;
  height:52px;
  margin:0 auto 14px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:#f3f3f1;
  color:var(--muted);
}

.dash-empty-icon .icon{width:22px; height:22px;}
.dash-empty h3{margin-bottom:6px;}
.dash-empty p{color:var(--muted); margin-bottom:16px; max-width:28rem; margin-left:auto; margin-right:auto;}

.dash-quick-links{
  display:grid;
  gap:8px;
}

.dash-quick-links a,
.dash-quick-links button{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  width:100%;
  padding:12px 12px;
  border-radius:12px;
  border:1px solid var(--line);
  background:var(--white);
  color:var(--ink);
  font:inherit;
  font-weight:600;
  font-size:0.94rem;
  text-align:left;
  cursor:pointer;
  text-decoration:none;
  transition:border-color .15s ease, background .15s ease;
  white-space:normal;
}

.dash-quick-links a:hover,
.dash-quick-links button:hover{
  border-color:#cfcfcb;
  background:#f7f7f5;
  color:var(--ink);
}

.dash-link-ico{
  width:30px;
  height:30px;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:var(--yellow);
  color:var(--black);
  flex-shrink:0;
}

.dash-link-ico .icon{width:15px; height:15px;}

.dash-discover-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

a.dash-discover-card{
  display:grid;
  gap:8px;
  color:inherit;
  transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

a.dash-discover-card:hover{
  border-color:#d6d6d2;
  color:inherit;
  transform:translateY(-1px);
  box-shadow:var(--shadow-soft);
}

.dash-discover-ico{
  width:40px;
  height:40px;
  border-radius:11px;
  display:grid;
  place-items:center;
  background:var(--yellow);
  color:var(--black);
}

.dash-discover-ico .icon{width:18px; height:18px;}

a.dash-discover-card strong{
  font-family:var(--font-display);
  font-size:1.12rem;
  letter-spacing:-0.02em;
}

a.dash-discover-card span:last-child{
  color:var(--muted);
  line-height:1.45;
  font-size:0.94rem;
}

.dash-settings-stack{
  display:grid;
  gap:14px;
  width:100%;
  max-width:none;
}

.dash-settings-card{max-width:none;}

.dash-account-hero{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:18px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}

.dash-account-avatar{
  width:56px;
  height:56px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:var(--yellow);
  color:var(--black);
  font-family:var(--font-display);
  font-size:1.35rem;
  font-weight:700;
  flex-shrink:0;
}

.dash-account-hero strong{
  display:block;
  font-family:var(--font-display);
  font-size:1.15rem;
  letter-spacing:-0.02em;
  margin-bottom:2px;
}

.dash-account-hero .text-muted{
  margin:0 0 8px;
  font-size:0.92rem;
}

.dash-field-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}

.dash-field-readonly{
  display:grid;
  gap:4px;
  padding:12px 14px;
  border-radius:12px;
  background:#f7f7f5;
  border:1px solid var(--line);
}

.dash-field-label{
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--muted);
}

.dash-field-value{
  color:var(--ink);
  font-weight:600;
  font-size:0.98rem;
  overflow-wrap:anywhere;
}

.dash-field{
  display:grid;
  gap:6px;
}

.dash-field-hint{
  display:flex;
  justify-content:flex-end;
}

form.dash-profile-form:not(.search-bar):not(.discover-filters){
  display:grid;
  gap:16px;
  max-width:none;
  width:100%;
}

.dash-profile-form label{
  margin-top:0;
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--muted);
}

form.dash-profile-form:not(.search-bar):not(.discover-filters) input,
form.dash-profile-form:not(.search-bar):not(.discover-filters) textarea{
  width:100%;
  min-height:0;
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px 14px;
  background:var(--white);
  color:var(--ink);
  font:inherit;
}

form.dash-profile-form:not(.search-bar):not(.discover-filters) textarea{
  min-height:120px;
  resize:vertical;
}

form.dash-profile-form:not(.search-bar):not(.discover-filters) button{
  width:auto;
  margin-top:0;
}

form.dash-profile-form:not(.search-bar):not(.discover-filters) input:focus,
form.dash-profile-form:not(.search-bar):not(.discover-filters) textarea:focus{
  outline:none;
  border-color:var(--blue);
}

.dash-profile-foot{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
  margin-top:4px;
  flex-wrap:wrap;
}

.dash-profile-foot .helper-text{
  margin-right:auto;
}

.dash-backdrop{
  position:fixed;
  inset:0;
  background:rgba(10,10,10,0.28);
  z-index:30;
}

/* Organiser create workspace */
.organise-workspace{
  display:grid;
  grid-template-columns:minmax(0, 1.45fr) minmax(280px, 0.85fr);
  gap:14px;
  align-items:start;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

.dash-app #event-preview{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

.organise-form-card,
.organise-preview-card{
  width:100%;
}

.organise-form{
  display:grid;
  gap:18px;
  max-width:none;
  width:100%;
}

.organise-form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}

.organise-field-span{grid-column:1 / -1;}

form.organise-form:not(.search-bar):not(.discover-filters){
  max-width:none;
  width:100%;
  display:grid;
  gap:18px;
}

form.organise-form:not(.search-bar):not(.discover-filters) label{
  margin-top:0;
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--muted);
}

form.organise-form:not(.search-bar):not(.discover-filters) input,
form.organise-form:not(.search-bar):not(.discover-filters) select,
form.organise-form:not(.search-bar):not(.discover-filters) textarea{
  width:100%;
  border-radius:12px;
}

form.organise-form:not(.search-bar):not(.discover-filters) button{
  width:auto;
  margin-top:0;
}

.organise-draft-check{
  display:flex !important;
  align-items:center;
  justify-content:flex-start !important;
  gap:12px;
  margin:0;
  padding:14px 16px;
  border-radius:12px;
  background:#f7f7f5;
  border:1px solid var(--line);
  cursor:pointer;
  width:100%;
  text-transform:none !important;
  letter-spacing:normal !important;
  font-size:0.95rem !important;
  font-weight:600 !important;
  color:var(--ink) !important;
}

.organise-draft-check input[type="checkbox"]{
  width:18px !important;
  height:18px;
  min-width:18px;
  margin:0;
  flex-shrink:0;
  accent-color:var(--black);
}

.organise-draft-copy{
  display:grid;
  gap:2px;
  text-align:left;
}

.organise-draft-copy strong{
  font-size:0.95rem;
  font-weight:700;
  color:var(--ink);
  letter-spacing:-0.01em;
}

.organise-draft-copy small{
  color:var(--muted);
  font-size:0.82rem;
  font-weight:500;
}

.organise-tickets{
  margin:0;
  padding:16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fafafa;
}

.organise-tickets legend{
  padding:0 6px;
  font-weight:700;
}

.organise-form-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  padding-top:4px;
}

.organise-preview h3{
  margin:0 0 12px;
  font-size:1.25rem;
}

.organise-preview .record-meta{margin:8px 0;}

.organise-preview-desc{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--line);
  color:var(--muted);
  line-height:1.55;
  white-space:pre-wrap;
}

@media (max-width: 960px){
  .organise-workspace,
  .organise-form-grid{grid-template-columns:1fr;}
}

@media (max-width: 960px){
  .dash-page.is-dash-ready{height:auto; overflow:auto;}

  .dash-app{
    grid-template-columns:1fr;
    height:auto;
    max-height:none;
    min-height:100vh;
  }

  .dash-sidebar{
    position:fixed;
    inset:0 auto 0 0;
    width:min(300px, 88vw);
    z-index:40;
    transform:translateX(-105%);
    transition:transform .2s ease;
    box-shadow:var(--shadow);
  }

  body.dash-sidebar-open .dash-sidebar{transform:translateX(0);}

  .dash-mobile-bar{display:flex;}
  .dash-main-scroll{padding:22px 16px 36px;}
  .dash-overview-grid,
  .dash-discover-grid,
  .dash-field-grid{grid-template-columns:1fr;}
}

@media (max-width: 600px){
  .dash-list-item{flex-direction:column;}
  .dash-list-meta{
    flex-direction:row;
    align-items:center;
    width:100%;
    justify-content:space-between;
  }
}

#custom-category-wrapper{margin:var(--space-1) 0 var(--space-2);}
#event-filter{max-width:420px; width:100%;}

/* ---------- Generic content ---------- */
#page-content,
#event-preview,
body > .event-list,
body > .testimonials,
body > .social-media,
body > form,
body > dialog,
body > #order-summary,
body > #faqs,
body > #qr-code,
body > .event-details,
body > nav:not(.nav-links){
  width:min(100%, var(--max));
  margin:var(--space-4) auto;
  padding:var(--space-4) var(--page-pad);
}

body > form{
  width:min(100%, 460px);
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:var(--space-4);
}

body > ul#category-list,
#category-list{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:12px;
  padding:0;
}

#category-list li a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-radius:var(--radius-sm);
  border:1px solid var(--line);
  background:var(--white);
  color:var(--blue);
  font-weight:600;
}

#category-list li a:hover{
  border-color:var(--blue);
  background:rgba(31,104,235,0.04);
}

.event-item,
.testimonial,
.event-details,
#event-preview,
#order-summary,
#faqs,
#qr-code,
dialog{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
}

.event-item,
.testimonial{padding:20px;}

.event-item h3{margin-bottom:var(--space-1);}

body > .event-list{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:18px;
  background:transparent;
  border:none;
  box-shadow:none;
  padding-inline:var(--page-pad);
}

.testimonials{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:18px;
}

.testimonial p:first-child{color:var(--muted); line-height:1.7;}
.testimonial p:last-child{
  margin-top:var(--space-2);
  font-size:0.95rem;
  font-weight:700;
  color:var(--ink);
  font-family:var(--font-display);
}

.social-media{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.social-media a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 14px;
  border:1px solid var(--line);
  background:var(--white);
  border-radius:var(--radius-sm);
  color:var(--ink);
  font-weight:600;
}

.social-media a:hover{border-color:var(--black);}

dialog{
  max-width:640px;
  padding:var(--space-4);
  margin:var(--space-4) auto;
  box-shadow:var(--shadow);
}

dialog::backdrop{background:rgba(10,10,10,0.5);}

#confirmation-message{
  background:rgba(31,104,235,0.08);
  color:var(--ink);
  border:1px solid rgba(31,104,235,0.16);
  border-radius:var(--radius-sm);
  padding:var(--space-3);
}

/* ---------- Event detail ---------- */
.event-layout{
  max-width:var(--max);
  margin:0 auto;
  padding:var(--space-4) var(--page-pad) calc(var(--space-8) + var(--space-2));
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:36px;
  align-items:start;
}

.banner{
  height:280px;
  border-radius:var(--radius-lg);
  background:var(--blue);
  position:relative;
  overflow:hidden;
}

.banner::after{
  content:'';
  position:absolute;
  inset:0;
  background:rgba(10,10,10,0.28);
  pointer-events:none;
}

.banner .category-tag,
.banner-actions{
  z-index:1;
}

.banner .category-tag{
  position:absolute;
  top:18px;
  left:18px;
  background:var(--yellow);
  color:var(--black);
  font-size:0.78rem;
  font-weight:700;
  padding:6px 12px;
  border-radius:6px;
}

.banner .save-btn{
  width:40px;
  height:40px;
  border-radius:var(--radius-sm);
  background:var(--white);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  border:none;
  color:var(--black);
  padding:0;
}

.banner-actions{
  position:absolute;
  top:18px;
  right:18px;
  display:inline-flex;
  gap:var(--space-1);
  align-items:center;
}

.banner-actions .save-btn{position:static;}

.title-block{margin-top:var(--space-5);}

.title-block h1{
  font-size:clamp(1.8rem, 3.2vw, 2.6rem);
  line-height:1.12;
}

.meta-row{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-4);
  margin-top:var(--space-3);
}

.meta-item{
  display:flex;
  gap:12px;
  align-items:flex-start;
}

.meta-icon{
  width:38px;
  height:38px;
  border-radius:var(--radius-sm);
  background:var(--yellow);
  color:var(--black);
  border:none;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}

.meta-item .label{
  font-size:var(--type-caption);
  color:var(--muted);
}

.meta-item .value{
  font-weight:600;
  font-size:var(--type-label);
  margin-top:var(--space-0-5);
  color:var(--ink);
}

.organiser-card{
  margin-top:var(--space-5);
  padding:var(--space-3);
  border:1px solid var(--line);
  border-radius:var(--radius);
  display:flex;
  align-items:center;
  gap:var(--space-2);
  background:var(--white);
}

.organiser-avatar{
  width:44px;
  height:44px;
  border-radius:var(--radius-sm);
  background:var(--black);
  color:var(--yellow);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-display);
  font-weight:700;
}

.organiser-card .name{font-weight:600; font-size:0.92rem;}
.organiser-card .role{font-size:var(--type-caption); color:var(--muted);}
.organiser-card .btn-ghost{margin-left:auto; padding:8px 16px; font-size:var(--type-caption);}

.section-title{
  font-family:var(--font-display);
  font-size:var(--type-h3);
  margin:var(--space-6) 0 var(--space-2);
}

.description{
  color:var(--muted);
  line-height:1.75;
  font-size:var(--type-body);
}

.description p + p{margin-top:var(--space-2);}

.venue-box{
  margin-top:var(--space-2);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--white);
}

.venue-map{
  height:160px;
  background:var(--paper);
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:var(--muted);
  font-size:0.85rem;
}

.venue-info{padding:var(--space-2) var(--space-3);}
.venue-info .name{font-weight:600; font-size:0.94rem; color:var(--ink);}
.venue-info .address{font-size:0.85rem; color:var(--muted); margin-top:var(--space-0-5);}

.ticket-panel{
  position:sticky;
  top:96px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:var(--space-4);
  box-shadow:var(--shadow-soft);
}

.ticket-panel h2{
  font-size:var(--type-h3);
  margin-bottom:var(--space-3);
}

.ticket-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 0;
  border-top:1px solid var(--line);
  gap:12px;
}

.ticket-row:first-of-type{border-top:none;}

.ticket-row .info .name{font-weight:600; font-size:0.94rem;}
.ticket-row .info .price{
  font-family:var(--font-display);
  font-weight:700;
  margin-top:var(--space-0-5);
}
.ticket-row .info .price.free{color:var(--blue);}
.ticket-row .info .stock{
  font-size:var(--type-caption);
  color:var(--muted);
  margin-top:var(--space-0-5);
}

.ticket-row.is-sold-out{
  opacity:0.72;
}

.ticket-row.is-sold-out .stock{
  color:#b42318;
  font-weight:600;
}

.ticket-soldout-banner{
  padding:12px 14px;
  margin-bottom:8px;
  border-radius:12px;
  background:#fff4f2;
  border:1px solid #f5c2c0;
}

.ticket-soldout-banner strong{
  display:block;
  color:#b42318;
  margin-bottom:4px;
}

.ticket-panel.is-unavailable .checkout-btn:disabled{
  opacity:0.85;
}

.qty-control{
  display:flex;
  align-items:center;
  gap:var(--space-1);
  flex-shrink:0;
}

.qty-btn{
  width:30px;
  height:30px;
  border-radius:var(--radius-sm);
  border:1px solid var(--line);
  background:var(--white);
  cursor:pointer;
  font-size:1rem;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  color:var(--ink);
  padding:0;
}

.qty-btn:hover{background:var(--paper);}
.qty-btn:disabled{opacity:0.35; cursor:not-allowed;}

.qty-btn.minus::before{
  content:'';
  display:block;
  width:12px;
  height:2px;
  background:currentColor;
  border-radius:1px;
}

.qty-value{
  width:22px;
  text-align:center;
  font-weight:600;
}

.summary-row{
  display:flex;
  justify-content:space-between;
  font-size:var(--type-label);
  color:var(--muted);
  margin-bottom:var(--space-1);
}

.summary-row.total{
  color:var(--ink);
  font-weight:700;
  font-size:var(--type-h4);
  font-family:var(--font-display);
}

.checkout-btn{
  width:100%;
  margin-top:var(--space-3);
  padding:var(--space-2);
  border-radius:var(--radius-sm);
}

.low-stock-note{
  font-size:var(--type-caption);
  color:var(--danger);
  margin-top:var(--space-1);
  text-align:center;
}

.loading-block{
  color:var(--muted);
  font-size:var(--type-label);
  padding:40px 0;
  text-align:center;
}

.error-block{
  max-width:640px;
  margin:60px auto;
  text-align:center;
  color:var(--muted);
}

.error-block h2{
  color:var(--ink);
  margin-bottom:10px;
}

.perforation{
  position:relative;
  margin:18px 0;
  height:0;
  border-top:1px dashed var(--line);
}

/* Organise preview */
#event-preview{
  max-width:640px;
}

/* Search event widget on event page */
#search-event{
  width:min(100%, var(--max));
  margin:0 auto var(--space-6);
  padding:0 var(--page-pad);
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

#search-event select{flex:1; min-width:200px;}

/* Focus */
:focus-visible{
  outline:2px solid var(--blue);
  outline-offset:3px;
}

/* ---------- Responsive ---------- */
@media (max-width: 960px){
  .hero-compact .hero-inner,
  .hero-inner,
  .event-layout,
  .split-layout,
  .discover-split,
  .value-grid,
  .footer-grid{
    grid-template-columns:1fr;
  }

  .hero-inner{
    min-height:auto;
    padding-block:var(--space-7);
  }

  .hero-visual{
    display:none;
  }

  .nav-toggle{display:inline-flex;}

  .nav-cluster,
  .nav-links,
  .nav-actions{
    display:none;
  }

  .site-header.is-open .nav-cluster{
    display:flex;
    order:3;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:var(--space-2);
    margin-left:0;
    padding-top:var(--space-2);
    border-top:1px solid var(--line);
  }

  .site-header.is-open .nav-links,
  .site-header.is-open .nav-actions{
    display:flex;
  }

  .site-header.is-open .nav-inner{
    flex-wrap:wrap;
    padding-bottom:var(--space-3);
  }

  .site-header.is-open .nav-links{
    width:100%;
    flex-direction:column;
    align-items:stretch;
    margin-left:0;
  }

  .site-header.is-open .nav-item{
    width:100%;
  }

  .site-header.is-open .nav-dropdown-toggle,
  .site-header.is-open .nav-link{
    width:100%;
    justify-content:space-between;
  }

  .site-header.is-open .nav-dropdown{
    position:static;
    display:none;
    box-shadow:none;
    border:none;
    padding:0 0 0 0.75rem;
    min-width:0;
  }

  .site-header.is-open .nav-item.is-open .nav-dropdown{
    display:grid;
  }

  .site-header.is-open .nav-actions{
    width:100%;
    padding-left:0;
    border-left:none;
    padding-top:var(--space-1);
  }

  .site-header.is-open .nav-actions .btn{
    flex:1;
  }

  .search-bar{
    flex-direction:column;
    align-items:stretch;
    overflow:hidden;
  }
  .search-bar:has(.category-combo.is-open){
    overflow:visible;
  }
  .search-bar > input[type="text"],
  .search-bar > input[type="search"],
  .search-bar > input[type="date"],
  .search-bar > select,
  .search-bar > .category-combo,
  .search-bar > button[type="submit"],
  .search-bar .category-combo-trigger{
    width:100%;
    min-width:0;
    border-radius:0 !important;
    box-sizing:border-box;
  }
  .search-bar > .category-combo{
    border-left:none;
    border-top:1px solid var(--line);
    flex:none;
  }
  .search-bar .category-combo-trigger{
    min-height:52px;
    background:var(--white) !important;
    color:var(--ink) !important;
    justify-content:space-between !important;
  }
  .search-bar .category-combo-panel{
    left:0;
    right:0;
    width:100%;
    min-width:0;
  }
  .search-bar > input[type="date"]{
    width:100%;
    flex:none;
    border-left:none;
    border-top:1px solid var(--line);
  }
  .search-bar > select{
    border-left:none;
    border-top:1px solid var(--line);
  }
  .search-bar > button[type="submit"]{
    padding:14px 18px;
    border-top:1px solid transparent;
  }

  .section-head{
    align-items:flex-start;
    flex-wrap:wrap;
    gap:var(--space-2);
  }
  .section-head a{
    margin-top:2px;
  }

  .ticket-panel{position:static;}
  .banner{height:220px;}
  .auth-shell{margin-top:36px;}
}

@media (max-width: 720px){
  :root{--page-pad:16px; --nav-h:64px;}

  .hero h1{max-width:none;}
  .hero-panel{border-radius:var(--radius);}
  .hero-accent{display:none;}
  .event-card .thumb{height:144px;}
  .footer-bottom{flex-direction:column;}
}

/* ---------- Become an Organiser landing ---------- */
.org-hero{
  background:var(--black);
  color:var(--white);
}

.org-hero-inner,
.org-section-inner,
.org-signup-inner{
  width:min(100%, var(--max));
  margin:0 auto;
  padding:clamp(2.5rem, 6vw, 4.5rem) var(--page-pad);
}

.org-hero-inner{
  display:grid;
  grid-template-columns:1.05fr 0.95fr;
  gap:clamp(1.5rem, 4vw, 3rem);
  align-items:center;
}

.org-kicker{
  color:var(--yellow);
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  margin-bottom:var(--space-3);
}

.org-hero h1{
  color:var(--white);
  font-size:clamp(2.2rem, 5vw, 3.4rem);
  max-width:12ch;
  margin-bottom:var(--space-3);
}

.org-lead{
  color:#d4d4d4;
  font-size:1.05rem;
  max-width:42ch;
  margin-bottom:var(--space-5);
}

.org-hero-actions .btn-yellow,
.org-hero-actions .btn-yellow:visited,
.org-hero-actions .btn-yellow:hover{
  color:#0a0a0a !important;
}

.org-trust-list{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  padding:0;
  margin:0;
  color:#bdbdbd;
  font-size:var(--type-label);
}

.org-trust-list li{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.org-trust-list li::before{
  content:'';
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--yellow);
  flex-shrink:0;
}

.org-hero-visual{
  position:relative;
  min-height:420px;
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:var(--blue);
}

.org-hero-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  min-height:420px;
}

.org-hero-caption{
  position:absolute;
  left:16px;
  right:16px;
  bottom:16px;
  background:var(--white);
  color:var(--black);
  padding:14px 16px;
  border-radius:var(--radius-sm);
  display:grid;
  gap:4px;
}

.org-hero-caption strong{
  font-family:var(--font-display);
  font-size:1.05rem;
}

.org-hero-caption span{
  color:var(--muted);
  font-size:var(--type-label);
}

.org-section{
  background:var(--paper);
  border-top:1px solid var(--line);
}

.org-section h2{
  margin-bottom:var(--space-2);
}

.org-section-lead{
  max-width:52ch;
  margin-bottom:var(--space-5);
}

.org-who{
  background:var(--white);
}

.org-who-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:var(--space-3);
}

.org-who-grid article{
  padding:var(--space-4);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--paper);
}

.org-who-grid h3{
  margin-bottom:var(--space-1);
  font-size:1.15rem;
}

.org-who-grid p{
  font-size:var(--type-label);
}

.org-steps{
  list-style:none;
  display:grid;
  gap:var(--space-3);
  padding:0;
  margin:0;
}

.org-steps li{
  display:grid;
  grid-template-columns:56px 1fr;
  gap:var(--space-3);
  align-items:start;
  padding:var(--space-4);
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
}

.org-step-num{
  width:56px;
  height:56px;
  border-radius:var(--radius-sm);
  background:var(--yellow);
  color:var(--black);
  display:grid;
  place-items:center;
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.35rem;
}

.org-steps h3{
  margin-bottom:6px;
  font-size:1.15rem;
}

.org-steps p{
  font-size:var(--type-label);
}

.org-benefits{
  background:var(--white);
}

.org-benefit-rows{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--space-3);
}

.org-benefit{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:var(--space-3);
  padding:var(--space-4);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--paper);
}

.org-benefit-icon{
  width:48px;
  height:48px;
  border-radius:var(--radius-sm);
  background:var(--yellow);
  color:var(--black);
  display:grid;
  place-items:center;
}

.org-benefit h3{
  margin-bottom:6px;
  font-size:1.1rem;
}

.org-benefit p{
  font-size:var(--type-label);
}

.org-signup{
  background:var(--blue);
  color:var(--white);
  border-top:none;
}

.org-signup-inner{
  display:grid;
  grid-template-columns:1fr 0.95fr;
  gap:clamp(1.5rem, 4vw, 3rem);
  align-items:start;
}

.org-signup h2,
.org-signup h3{
  color:var(--white);
}

.org-signup-copy > p{
  color:rgba(255,255,255,0.88);
  max-width:40ch;
  margin-bottom:var(--space-4);
}

.org-signup-points{
  list-style:none;
  padding:0;
  margin:0 0 var(--space-4);
  display:grid;
  gap:10px;
}

.org-signup-points li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:rgba(255,255,255,0.92);
  font-size:var(--type-label);
}

.org-signup-points li::before{
  content:'';
  width:8px;
  height:8px;
  margin-top:0.45em;
  border-radius:50%;
  background:var(--yellow);
  flex-shrink:0;
}

.org-signup-note{
  color:rgba(255,255,255,0.78);
  font-size:var(--type-label);
}

.org-signup-note a{
  color:var(--yellow);
  font-weight:600;
}

.org-signup-card{
  background:var(--white);
  color:var(--ink);
  border-radius:var(--radius-lg);
  padding:var(--space-5);
  box-shadow:var(--shadow);
}

.org-signup-card h3{
  color:var(--ink);
  margin-bottom:var(--space-1);
}

.org-signup-card form,
form:not(.search-bar):not(.discover-filters).org-signup-form,
.org-signup-card #register-form{
  margin-top:var(--space-3);
  display:grid;
  gap:12px;
  max-width:none !important;
  width:100%;
}

.org-signup-card label{
  margin:0 !important;
  font-size:var(--type-label);
  font-weight:600;
  color:var(--ink);
}

.org-signup-card input:not([type="hidden"]){
  width:100%;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:13px 14px;
  background:var(--white);
}

.org-signup-card .password-field{
  border:1px solid var(--line);
  background:var(--white);
}

.org-signup-card .password-field input{
  border:none !important;
  padding:13px 8px 13px 14px;
}

.org-signup-card button[type="submit"]{
  width:100%;
  margin-top:4px;
}

.org-faq{
  background:var(--paper);
}

.org-faq-inner{
  max-width:760px;
}

.org-faq-list{
  display:grid;
  gap:12px;
}

.org-faq-list details{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:16px 18px;
}

.org-faq-list summary{
  cursor:pointer;
  font-weight:700;
  font-family:var(--font-display);
  list-style:none;
}

.org-faq-list summary::-webkit-details-marker{display:none;}

.org-faq-list summary::after{
  content:'+';
  float:right;
  color:var(--blue);
  font-weight:700;
}

.org-faq-list details[open] summary::after{content:'';}

.org-faq-list details p{
  margin-top:10px;
  font-size:var(--type-label);
}

@media (max-width: 960px){
  .org-hero-inner,
  .org-who-grid,
  .org-benefit-rows,
  .org-signup-inner{
    grid-template-columns:1fr;
  }

  .org-hero-visual,
  .org-hero-visual img{
    min-height:280px;
  }

  .org-hero h1{max-width:none;}
}

/* -- Impact report (organiser dashboard) -- */
.impact-grid,
.impact-steps{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-bottom:12px;
}

.impact-step-label{
  margin:0 0 10px;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
}

.impact-step .dash-card-head{margin-top:-4px;}

.impact-analyze-bar{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  margin-bottom:12px;
  padding:18px 20px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fafaf8;
}

.impact-analyze-bar .btn-lg{
  padding:12px 22px;
  font-size:1rem;
}

.impact-upload-form{margin-top:4px;}

.impact-dropzone{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:28px 18px;
  border:2px dashed var(--line);
  border-radius:14px;
  background:#fafaf8;
  cursor:pointer;
  text-align:center;
  transition:border-color .15s, background .15s;
}

.impact-dropzone.is-dragover,
.impact-dropzone:hover{
  border-color:var(--blue);
  background:#f3f7ff;
}

.impact-dropzone-icon{
  width:44px;
  height:44px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:#eef2ff;
  color:var(--blue);
}

.impact-dropzone-hint,
.impact-file-name{
  color:var(--muted);
  font-size:0.92rem;
}

.impact-file-name{margin-top:4px;}

.impact-upload-meta{margin-top:14px;}
.impact-detected p{margin:4px 0; font-size:0.92rem; color:var(--muted);}

.impact-goal-fields{align-items:end;}

.impact-operator-row{
  display:grid;
  grid-template-columns:minmax(110px, 0.9fr) minmax(0, 1fr);
  gap:8px;
}

.impact-goals-list{margin-top:18px;}

.impact-goals-cards,
.impact-report-goals{
  display:grid;
  gap:10px;
}

.impact-goal-card,
.impact-report-goal{
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px 16px;
  background:#fafaf8;
}

.impact-goal-card-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:6px;
}

.impact-goal-badge{
  display:inline-flex;
  align-items:center;
  padding:3px 10px;
  border-radius:999px;
  font-size:0.78rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
}

.impact-goal-met .impact-goal-badge,
.impact-report-goal.impact-goal-met .impact-goal-badge{background:#e8f7ee; color:#1b7a43;}
.impact-goal-track .impact-goal-badge{background:#fff6dd; color:#9a6b00;}
.impact-goal-miss .impact-goal-badge,
.impact-report-goal.impact-goal-miss .impact-goal-badge{background:#fdeeee; color:#b42318;}
.impact-goal-muted .impact-goal-badge{background:#f3f3f1; color:var(--muted);}

.impact-goal-met{border-color:#b8e6c8;}
.impact-goal-miss{border-color:#f5c2c0;}
.impact-goal-track{border-color:#f2df9a;}

.impact-goal-metric,
.impact-goal-msg{
  margin:4px 0;
  font-size:0.92rem;
  color:var(--muted);
}

.impact-goal-desc{
  margin:0 0 8px;
  white-space:pre-wrap;
  line-height:1.45;
}

.impact-report-card{margin-top:0;}

.impact-summary-lead{
  font-size:1.05rem;
  line-height:1.55;
  margin:0 0 16px;
}

.impact-report-metrics{margin-bottom:20px;}

.impact-report-section h3{
  margin:0 0 12px;
  font-size:1rem;
}

.impact-chart-caption{
  margin:0 0 10px;
  font-size:0.92rem;
  color:var(--muted);
}

.impact-chart-shell{
  border:1px solid var(--line);
  border-radius:12px;
  padding:16px 12px 8px;
  background:#fafaf8;
  overflow:hidden;
}

.impact-chart-grid{
  display:grid;
  grid-template-columns:repeat(var(--impact-bars, 12), minmax(0, 1fr));
  gap:6px;
  align-items:end;
  height:200px;
  width:100%;
}

.impact-chart-cell{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  height:100%;
  min-width:0;
}

.impact-chart-bar-track{
  flex:1;
  width:100%;
  max-width:28px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}

.impact-chart-bar{
  width:100%;
  border-radius:6px 6px 3px 3px;
  background:linear-gradient(180deg, #5b8def 0%, #3b6fd4 100%);
  min-height:4px;
}

.impact-warnings{margin-bottom:14px;}

.impact-warning{
  margin:0 0 8px;
  padding:12px 14px;
  border-radius:10px;
  background:#fff8e6;
  border:1px solid #f2df9a;
  color:#7a5b00;
  font-size:0.92rem;
}

.impact-assessment-card{
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafaf8;
}

.impact-assessment-headline{
  margin:10px 0 8px;
  font-weight:600;
}

.impact-assessment-copy,
.impact-assessment-quote{
  margin:0 0 10px;
  color:var(--muted);
  line-height:1.5;
}

.impact-assessment-supports ul{
  margin:8px 0 0;
  padding-left:1.2rem;
  color:var(--muted);
}

.impact-assessment-supports li{margin-bottom:4px;}

.impact-assessment-ai-note{
  margin:12px 0 0;
  font-size:0.82rem;
  color:var(--muted);
}

.impact-assessment-ai-warn{color:#9a6b00;}

.impact-empty{
  padding:48px 24px;
}

.impact-empty-inner{
  max-width:420px;
  margin:0 auto;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
}

.impact-empty-icon{
  width:64px;
  height:64px;
  border-radius:16px;
  background:#eef4ff;
  color:#2f6fed;
  display:grid;
  place-items:center;
  margin-bottom:4px;
}

.impact-empty-icon .icon{
  width:32px;
  height:32px;
}

.impact-empty h2{
  margin:0;
  font-size:1.35rem;
}

.impact-list-head{
  align-items:center;
}

.impact-list-head .btn{
  flex-shrink:0;
  white-space:nowrap;
}

#impact-hub,
#impact-list-wrap,
#impact-cards-grid,
#impact-create-panel,
#impact-detail-panel{
  min-width:0;
  width:100%;
}

#section-impact .dash-card{
  width:100%;
  max-width:none;
}

.impact-back-btn{
  align-self:flex-start;
  padding:0;
  margin:0 0 16px;
  min-height:auto;
  font-size:0.92rem;
  font-weight:600;
}

.impact-form-card .dash-card-copy{
  margin:0 0 20px;
  max-width:52rem;
  line-height:1.55;
}

form.impact-form{
  display:grid;
  gap:18px;
  width:100%;
  max-width:none;
}

form.impact-form .dash-field{
  width:100%;
}

form.impact-form .impact-dropzone{
  width:100%;
  box-sizing:border-box;
}

form.impact-form .button-row{
  margin-top:4px;
}

.impact-detail-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:16px;
}

.impact-report-card .impact-back-btn{
  margin-bottom:0;
}

.impact-date-block{
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--paper);
  margin-bottom:20px;
}

.impact-date-range{
  margin:0;
  font-size:1.25rem;
  font-weight:700;
}

.impact-report-card .impact-report-body{
  padding-top:0;
  border-top:0;
}

.impact-cards-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap:16px;
  margin-top:4px;
  justify-content:start;
  align-items:stretch;
}

.impact-card{
  appearance:none;
  font:inherit;
  color:inherit;
  text-align:left;
  width:100%;
  min-width:0;
  max-width:100%;
  padding:18px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fafaf8;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  overflow:hidden;
  box-sizing:border-box;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.impact-card:hover{
  border-color:#c8d9ff;
  box-shadow:0 8px 24px rgba(10,10,10,0.06);
  transform:translateY(-2px);
}

.impact-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}

.impact-card-icon{
  width:36px;
  height:36px;
  border-radius:10px;
  background:#eef4ff;
  color:#2f6fed;
  display:grid;
  place-items:center;
  flex-shrink:0;
}

.impact-card-date{
  font-size:0.8rem;
  color:var(--muted);
  white-space:nowrap;
  flex-shrink:0;
}

.impact-card-title{
  display:block;
  font-size:0.95rem;
  line-height:1.35;
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.impact-card-meta{
  display:block;
  font-size:0.82rem;
  color:var(--muted);
  min-width:0;
}

.impact-card-goals{
  font-size:0.84rem;
  color:var(--muted);
  line-height:1.45;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  overflow-wrap:anywhere;
  word-break:break-word;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}

.impact-card-action{
  margin-top:auto;
  padding-top:4px;
  font-size:0.84rem;
  font-weight:600;
  color:#2f6fed;
}

.impact-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid var(--line);
}

.impact-page-numbers{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.impact-page-btn{
  min-width:36px;
  height:36px;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  cursor:pointer;
  font-size:0.88rem;
}

.impact-page-btn:hover:not(:disabled){
  background:#f3f3f1;
}

.impact-page-btn.is-active{
  background:var(--black, #111);
  color:#fff;
  border-color:var(--black, #111);
}

.impact-page-btn:disabled{
  opacity:0.45;
  cursor:not-allowed;
}

.impact-report-body{
  padding-top:4px;
}

.impact-report-placeholder{
  margin:0;
  padding:8px 0 4px;
}

.impact-pie-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:16px;
}

.impact-pie-card{
  padding:16px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafaf8;
}

.impact-pie-card h4{
  margin:0 0 12px;
  font-size:0.95rem;
}

.impact-pie-layout{
  display:flex;
  align-items:center;
  gap:16px;
}

.impact-pie{
  width:120px;
  height:120px;
  border-radius:50%;
  flex-shrink:0;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,0.06);
}

.impact-pie-legend{
  list-style:none;
  margin:0;
  padding:0;
  flex:1;
  min-width:0;
}

.impact-pie-legend li{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:6px;
  font-size:0.82rem;
}

.impact-pie-swatch{
  width:10px;
  height:10px;
  border-radius:2px;
  flex-shrink:0;
}

.impact-pie-label{
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.impact-pie-value{color:var(--muted); white-space:nowrap;}

.impact-pie-total{
  margin:10px 0 0;
  font-size:0.8rem;
  color:var(--muted);
}

.impact-chart-label{
  font-size:0.72rem;
  color:var(--muted);
  text-align:center;
  line-height:1.2;
}

.impact-form-card{margin-bottom:0;}

.impact-stated-goals{
  padding:16px 18px;
  border-radius:12px;
  background:#fafaf8;
  border:1px solid var(--line);
  white-space:pre-wrap;
  line-height:1.55;
}

@media (max-width: 900px){
  .impact-grid,
  .impact-steps{grid-template-columns:1fr;}
  .impact-operator-row{grid-template-columns:1fr;}
}

/* ---------- Pricing ---------- */
.pricing-page{
  background:var(--paper);
  overflow-x:hidden;
}

.pricing-hero{
  background:var(--black);
  color:var(--white);
}

.pricing-hero-inner{
  width:min(100%, var(--max));
  margin:0 auto;
  padding:clamp(2.5rem, 6vw, 4rem) var(--page-pad);
}

.pricing-kicker{
  display:inline-flex;
  margin:0 0 var(--space-3);
  padding:0.4rem 0.75rem;
  border-radius:999px;
  background:var(--yellow);
  color:var(--black);
  font-size:var(--type-caption);
  font-weight:700;
  letter-spacing:0.04em;
  text-transform:uppercase;
}

.pricing-hero h1{
  color:var(--white);
  max-width:18ch;
  margin-bottom:var(--space-3);
}

.pricing-lead{
  color:#e4e4e4;
  font-size:var(--type-lead);
  max-width:52ch;
  margin:0;
}

.pricing-plans{
  padding-top:var(--space-6);
}

.pricing-compare-note{
  margin:0 0 1.25rem;
  color:var(--muted);
  font-size:var(--type-label);
}

.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:var(--space-3);
  align-items:stretch;
}

.pricing-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:100%;
  height:100%;
  box-sizing:border-box;
  gap:12px;
  padding:clamp(1.25rem, 2.4vw, 1.85rem);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:var(--white);
}

.pricing-card-featured{
  border-color:var(--blue);
  background:#f7f9ff;
}

.pricing-badge{
  align-self:flex-start;
  min-height:1.55rem;
  margin:0;
  padding:0.3rem 0.6rem;
  border-radius:999px;
  background:var(--yellow);
  color:var(--black);
  font-size:0.72rem;
  font-weight:700;
  line-height:1.2;
}

.pricing-badge-spacer{
  visibility:hidden;
}

.pricing-tier{
  margin:0;
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--muted);
}

.pricing-price{
  margin:0;
  font-size:clamp(2.2rem, 3.5vw, 3rem);
  line-height:1;
}

.pricing-cadence,
.pricing-card-copy{
  margin:0;
  color:var(--muted);
  font-size:var(--type-label);
}

.pricing-features{
  list-style:none;
  padding:0;
  margin:8px 0 auto;
  display:grid;
  gap:10px;
}

.pricing-features li{
  position:relative;
  padding-left:1.15rem;
  font-size:var(--type-label);
  color:var(--ink);
}

.pricing-features li::before{
  content:'';
  position:absolute;
  left:0;
  top:0.55em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--blue);
}

.pricing-card .btn{
  width:100%;
  justify-content:center;
  margin-top:auto;
}

.pricing-fees{
  padding-top:var(--space-6);
}

.pricing-fees-card{
  display:grid;
  grid-template-columns:1.1fr 1.4fr;
  gap:var(--space-4);
  align-items:center;
  padding:clamp(1.4rem, 3vw, 2rem);
  border-radius:var(--radius-lg);
  border:1px solid var(--line);
  background:var(--white);
}

.pricing-fees-card h2{
  margin:0 0 8px;
}

.pricing-fees-card > div > p{
  margin:0;
  color:var(--muted);
  max-width:36ch;
}

.pricing-fee-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  margin:0;
}

.pricing-fee-grid div{
  padding:14px;
  border-radius:var(--radius);
  background:var(--paper);
  border:1px solid var(--line);
}

.pricing-fee-grid dt{
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:6px;
}

.pricing-fee-grid dd{
  margin:0;
  font-size:1.15rem;
  font-weight:700;
}

.pricing-notes{
  padding-top:var(--space-6);
  padding-bottom:var(--space-8);
}

.pricing-notes-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:var(--space-3);
  margin-bottom:var(--space-5);
}

.pricing-notes-grid article{
  padding:var(--space-4);
  border-radius:var(--radius);
  border:1px solid var(--line);
  background:var(--white);
}

.pricing-notes-grid h3{
  margin:0 0 8px;
  font-size:1.1rem;
}

.pricing-notes-grid p{
  margin:0;
  color:var(--muted);
  font-size:var(--type-label);
}

.pricing-cta-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

@media (max-width: 900px){
  .pricing-grid{
    gap:10px;
  }

  .pricing-card{
    padding:1.1rem;
  }

  .pricing-price{
    font-size:2.1rem;
  }

  .pricing-fees-card,
  .pricing-fee-grid,
  .pricing-notes-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 720px){
  .pricing-grid{
    grid-template-columns:1fr;
  }

  .pricing-cta-row .btn{
    width:100%;
    justify-content:center;
  }
}
