/* Hallmark · shape: Ledger (a registry desk) · genre: civic-utility · theme: Furrow, NSEG indigo for action, red only from the logo · redesign: new · job: register and pay
 * hero: survey sheet (generated contour map under a notebook card of open registrations) · nav: masthead · footer: help line then four columns · imagery: the NSEG logo and FonePay QR as supplied, no photographs · signature: the open-registrations card on a contour sheet, and the three-step journey that marks where you are on every page
 * axes: light/humanist-sans/chromatic-indigo · posture: quiet · contrast: pass · fold: pass · v1.3.1 */
/* Hallmark · pre-emit critique: P4 H4 E5 S4 R5 V4 · weakest: P, a registration desk argues nothing; it leads with what is open and when it closes instead */
/* Hallmark · motion: none beyond state changes; the contour sheet is drawn once and is still */
/*
Theme Name: NSEG Registration
Theme URI: https://register.nseg.org.np
Author: Nepal Society of Engineering Geology (NSEG)
Author URI: https://nseg.org.np
Description: Block theme for register.nseg.org.np: registration and payment for NSEG membership, the Himalayan Field School and future NSEG conferences. Styled WPForms forms, a page per registration, a payment page with FonePay, bank transfer and an online-payment slot, and a one-step setup that creates the starter forms and pages. Every page is ordinary editable blocks.
Version: 1.3.1
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nseg-register
Tags: block-theme, full-site-editing, education, one-column
*/
@import url("assets/css/tokens.css");
@import url("assets/css/base.css");

/* ------------------------------------------------------------ page frame */
.wp-site-blocks { min-height: 100vh; display: flex; flex-direction: column; }
.site-main { flex: 1 0 auto; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-block-post-content > .alignfull { margin-block: 0; max-width: none; width: 100%; }
.wp-block-post-content > :not(.alignfull) { margin-block: var(--space-lg); }
.wp-block-post-content > :not(.alignfull):first-child { margin-block-start: var(--space-2xl); }
.wp-block-post-content > :not(.alignfull):last-child { margin-block-end: var(--space-3xl); }
.wp-block-post-content { padding-inline: var(--gutter); }
.wp-block-post-content > .alignfull { margin-inline: calc(var(--gutter) * -1) !important; width: calc(100% + var(--gutter) * 2); }
.sec { padding-block: var(--space-3xl); }
.sec > .container > * + *, .pagehead__grid > * + * { margin-block-start: 0; }
.sec--sheet { background: var(--color-paper-2); border-block: var(--rule-hair) solid var(--color-rule); }
.sec--ink { background: var(--color-accent); color: var(--color-accent-ink); }
.sec--ink a:not(.wp-block-button__link) { color: inherit; }
.head { display: grid; gap: var(--space-md); margin-block-end: var(--space-xl); }
.head > * { margin: 0; }
@media (min-width: 60rem) { .head--split { grid-template-columns: 1fr 1fr; align-items: end; gap: var(--gap-columns); } }
.small-note { font-size: var(--text-sm); color: var(--color-muted); }
mark { background: none; color: inherit; }
code { font-family: var(--font-outlier); font-size: 0.95em; font-weight: 500; letter-spacing: 0.01em; }
.wp-block-group.is-layout-flow > * { margin-block: 0; }
.wp-block-group.is-layout-flow > * + * { margin-block-start: var(--space-md); }
h2.wp-block-heading { font-size: var(--text-2xl); max-width: 32ch; }
h3.wp-block-heading { font-size: var(--text-lg); line-height: 1.25; }
h1.wp-block-heading { font-size: var(--text-display-s); }
.wp-block-post-content a:not(.wp-block-button__link) { color: var(--color-accent); }
.wp-block-post-content a:not(.wp-block-button__link):hover { color: var(--color-accent-hover); text-decoration-thickness: 2px; }

/* ------------------------------------------------------------ controls: moulded keys, indigo primary */
.wp-block-button__link, .wp-element-button {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-xs);
  min-height: 48px; padding: 0 var(--space-lg); border: var(--rule-hair) solid var(--color-accent-hover); border-radius: var(--radius-pill);
  background: var(--color-accent); color: var(--color-accent-ink); font-family: var(--font-body); font-weight: 500; font-size: var(--text-md); line-height: 1.2; text-decoration: none;
  box-shadow: inset 0 1px 0 oklch(100% 0 0 / 0.16), 0 1px 0 var(--color-accent-hover), 0 2px 6px -2px oklch(18% 0.006 60 / 0.35);
  transition: background-color var(--dur-micro) var(--ease-out), box-shadow var(--dur-micro) var(--ease-out), transform var(--dur-micro) var(--ease-out);
}
.wp-block-button__link:hover { background: var(--color-accent-hover); color: var(--color-accent-ink); }
.wp-block-button__link:active { transform: translateY(1px); box-shadow: inset 0 1px 2px oklch(18% 0.006 60 / 0.3); }
.is-style-outline > .wp-block-button__link, .wp-block-button__link.is-style-outline {
  background: var(--color-paper-2); color: var(--color-ink); border-color: var(--color-grid-strong);
  box-shadow: inset 0 1px 0 oklch(100% 0 0 / 0.8), 0 1px 0 var(--color-grid-strong), 0 2px 5px -3px oklch(18% 0.006 60 / 0.25);
}
.is-style-outline > .wp-block-button__link:hover { background: var(--color-paper); color: var(--color-ink); border-color: var(--color-muted); }
.sec--ink .wp-block-button__link { background: var(--color-paper-2); color: var(--color-accent); border-color: var(--color-paper-2); box-shadow: 0 2px 6px -2px oklch(10% 0.05 275 / 0.5); }
.sec--ink .wp-block-button__link:hover { background: var(--color-accent-soft); color: var(--color-accent-hover); }
.wp-block-buttons { gap: var(--space-sm); }

/* ------------------------------------------------------------ status chips */
.is-style-status-open, .is-style-status-soon, mark.status {
  display: inline-flex; align-items: center; gap: var(--space-xs); width: fit-content; max-width: none;
  padding: var(--space-3xs) var(--space-sm) var(--space-3xs) var(--space-xs); border-radius: var(--radius-pill);
  font-size: var(--text-sm); font-weight: 500; line-height: 1.5;
}
.is-style-status-open::before, .is-style-status-soon::before, mark.status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex: none; }
.is-style-status-open, mark.status--open { background: var(--color-green-soft); color: var(--color-green); }
.is-style-status-soon, mark.status--soon { background: var(--color-amber-soft); color: var(--color-amber); }
.is-style-status-soon::before, mark.status--soon::before { background: transparent; box-shadow: inset 0 0 0 2px currentColor; }

/* ------------------------------------------------------------ cards */
.is-style-card { background: var(--color-sheet); border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-card); box-shadow: var(--shadow-card); padding: var(--space-xl); }
@media (max-width: 40rem) { .is-style-card { padding: var(--space-lg); } }

/* ------------------------------------------------------------ masthead */
.site-head { position: sticky; top: 0; z-index: var(--z-sticky-nav); }
.admin-bar .site-head { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-head { top: 0; position: relative; } }
.masthead { background: color-mix(in oklab, var(--color-paper-2) 92%, transparent); backdrop-filter: blur(10px); border-block-end: var(--rule-hair) solid var(--color-rule); }
.masthead__row { display: flex; align-items: center; gap: var(--space-lg); min-height: var(--nav-h); }
.masthead__row > * { margin: 0 !important; }
.skip { position: absolute; left: var(--space-md); top: -100px; z-index: var(--z-toast); padding: var(--space-xs) var(--space-md); background: var(--color-ink); color: var(--color-paper); border-radius: var(--radius-pill); }
.skip:focus { top: var(--space-xs); }
.brand { display: inline-flex; align-items: center; gap: var(--space-sm); text-decoration: none; color: var(--color-ink); flex: none; }
.brand__mark { width: 44px; height: 44px; }
.brand__name { display: grid; font-family: var(--font-display); font-weight: 600; font-size: var(--text-lg); letter-spacing: -0.015em; line-height: 1.1; }
.brand__sub { font-family: var(--font-body); font-weight: 400; font-size: var(--text-xs); letter-spacing: 0; color: var(--color-muted); }
.masthead__nav { margin-inline-start: auto !important; font-size: var(--text-md); }
.masthead__nav .wp-block-navigation__container { gap: var(--space-3xs); }
.masthead__nav .wp-block-navigation-item__content { display: block; padding: var(--space-xs) var(--space-sm); border-radius: var(--radius-pill); color: var(--color-ink-2); text-decoration: none; transition: background-color var(--dur-micro) var(--ease-out); }
.masthead__nav .wp-block-navigation-item__content:hover { background: var(--color-paper-3); color: var(--color-ink); }
.masthead__nav .current-menu-item > .wp-block-navigation-item__content { background: var(--color-accent-soft); color: var(--color-accent); }
.masthead__cta .wp-block-button__link { min-height: 40px; padding-inline: var(--space-md); font-size: var(--text-sm); }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { width: 44px; height: 44px; display: inline-grid; place-items: center; border-radius: var(--radius-pill); }
.wp-block-navigation__responsive-container-open { border: var(--rule-hair) solid var(--color-grid-strong); background: var(--color-paper-2); }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--color-paper-2) !important; padding: var(--space-lg) var(--gutter) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: var(--space-2xl); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: var(--space-xs) !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-family: var(--font-display); font-size: var(--text-xl); padding: var(--space-sm) 0; width: 100%; border-block-end: var(--rule-hair) solid var(--color-rule); border-radius: 0; }
@media (max-width: 40rem) {
  .masthead__cta { display: none; }
  .brand__sub { display: none; }
  .brand__mark { width: 38px; height: 38px; }
  .masthead__row { min-height: 64px; }
}

/* ------------------------------------------------------------ home hero: survey sheet */
.hero { position: relative; overflow: hidden; isolation: isolate; background: var(--color-paper); border-block-end: var(--rule-hair) solid var(--color-rule); }
.hero > .wp-block-html, .hero > * + * { margin: 0 !important; }
.survey { position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px);
  background-size: 96px 96px; background-position: -1px -1px; }
.survey__canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.survey::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--color-paper) 0%, color-mix(in oklab, var(--color-paper) 70%, transparent) 45%, transparent 75%); }
.hero__grid { display: grid; gap: var(--space-2xl); padding-block: var(--space-3xl) var(--space-3xl); align-items: center; }
@media (min-width: 64rem) { .hero__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: var(--gap-columns); padding-block: var(--space-4xl); } }
.hero__text { display: grid; gap: var(--space-lg); }
.hero__text > * { margin: 0 !important; }
.hero__title { font-size: var(--text-display); max-width: 12ch; }
.hero__lead { color: var(--color-ink-2); max-width: 38ch; }
.hero__actions { margin-block-start: var(--space-xs) !important; }

/* the open-registrations card, ruled like a register */
.entry { padding: 0; overflow: hidden; border-radius: var(--radius-entry); box-shadow: var(--shadow-lift); }
.entry > * { margin: 0 !important; }
.entry__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-md); flex-wrap: wrap; padding: var(--space-md) var(--space-xl); background: var(--color-paper-3); border-block-end: var(--rule-hair) solid var(--color-grid-strong); }
.entry__head > * { margin: 0 !important; }
.entry__kind { font-family: var(--font-display); font-weight: 600; font-size: var(--text-md); }
.entry__meta { font-size: var(--text-sm); color: var(--color-muted); }
.entry__row { position: relative; display: grid; gap: var(--space-xs); padding: var(--space-lg) var(--space-xl); }
.entry__row + .entry__row { border-block-start: var(--rule-hair) solid var(--color-rule); }
.entry__row > * { margin: 0 !important; }
.entry__row > .is-style-status-open, .entry__row > .is-style-status-soon { margin-block-end: var(--space-2xs) !important; }
.entry__title { font-size: var(--text-xl) !important; }
.entry__title a { text-decoration: none; color: var(--color-ink) !important; }
.entry__title a::after { content: ""; position: absolute; inset: 0; }
.entry__row:has(a):hover { background: var(--color-paper); }
.entry__row:has(a):hover .entry__title a { color: var(--color-accent) !important; }
.entry__row:has(a:focus-visible) { outline: 2px solid var(--color-focus); outline-offset: -4px; }
.entry__title a:focus-visible { outline: none; }
.entry__text { color: var(--color-ink-2); max-width: 52ch; }
.entry__date { font-family: var(--font-outlier); font-size: var(--text-sm); color: var(--color-ink); }
@media (max-width: 40rem) { .entry__row, .entry__head { padding-inline: var(--space-lg); } }

/* ------------------------------------------------------------ steps (home) */
.steps { list-style: none; counter-reset: step; margin: 0; padding: 0; display: grid; gap: var(--gap-columns); }
@media (min-width: 52rem) { .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.steps > li { counter-increment: step; display: grid; gap: var(--space-xs); padding-block-start: var(--space-lg); border-block-start: 2px solid var(--color-ink); color: var(--color-ink-2); max-width: 40ch; }
.steps > li::before { content: counter(step); font-family: var(--font-outlier); font-size: var(--text-sm); color: var(--color-accent); }
.steps > li strong { display: block; font-family: var(--font-display); font-weight: 600; font-size: var(--text-lg); color: var(--color-ink); letter-spacing: -0.015em; }

/* ways to pay */
.ways { display: grid; gap: 0; border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-card); background: var(--color-sheet); overflow: hidden; }
@media (min-width: 48rem) { .ways { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 72rem) { .ways { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ways > .way { margin: 0 !important; padding: var(--space-lg); display: grid; align-content: start; gap: var(--space-xs); border-block-end: var(--rule-hair) solid var(--color-rule); }
@media (min-width: 48rem) { .ways > .way { border-inline-end: var(--rule-hair) solid var(--color-rule); } }
.way > * { margin: 0 !important; }
.way p { color: var(--color-ink-2); }
.ways__more { margin-block-start: var(--space-lg) !important; }

/* ------------------------------------------------------------ page head + journey */
.pagehead { background: var(--color-paper-2); border-block-end: var(--rule-hair) solid var(--color-rule);
  background-image: linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px); background-size: 48px 48px; background-position: -1px -1px; }
.pagehead__grid { display: grid; gap: var(--space-lg); padding-block: var(--space-2xl) var(--space-xl); }
.pagehead__grid > * { margin: 0 !important; }
@media (min-width: 64rem) {
  .pagehead__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: auto auto 1fr auto; column-gap: var(--gap-columns); padding-block: var(--space-3xl) var(--space-xl); }
  .pagehead__grid > * { grid-column: 1; }
  .pagehead__grid > .is-style-facts { grid-column: 2; grid-row: 1 / span 3; align-self: end; }
  .pagehead__grid > .lead { align-self: start; }
  .pagehead__grid > .journey { grid-column: 1 / -1; }
}
.pagehead__title { font-size: var(--text-display-s) !important; max-width: 18ch; }
.pagehead .lead { color: var(--color-ink-2); }
.crumbs { font-size: var(--text-sm); color: var(--color-muted); }
.crumbs a { color: var(--color-ink-2) !important; }

/* facts: a small register of label and value */
.is-style-facts { margin: 0; background: var(--color-sheet); border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-card); box-shadow: var(--shadow-card); padding: var(--space-2xs) var(--space-lg); }
.is-style-facts table { width: 100%; border-collapse: collapse; }
.is-style-facts td { border: 0; padding: var(--space-sm) 0; vertical-align: baseline; }
.is-style-facts tr + tr td { border-block-start: var(--rule-hair) solid var(--color-rule); }
.is-style-facts td:first-child { width: 42%; padding-inline-end: var(--space-md); font-size: var(--text-sm); color: var(--color-muted); }
.is-style-facts td:last-child { font-weight: 500; }

/* the three steps, with the current one marked */
.journey { list-style: none; margin: var(--space-md) 0 0 !important; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); counter-reset: j; border-block-start: var(--rule-hair) solid var(--color-grid-strong); }
.journey > li { counter-increment: j; position: relative; display: grid; gap: 2px; padding: var(--space-md) var(--space-md) 0 0; font-size: var(--text-sm); color: var(--color-muted); }
.journey > li::before { content: counter(j); position: absolute; top: -13px; left: 0; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--color-paper-2); border: var(--rule-hair) solid var(--color-grid-strong); font-family: var(--font-outlier); font-size: var(--text-xs); color: var(--color-muted); }
.journey > li { padding-block-start: var(--space-lg); }
.journey > li strong { font-family: var(--font-display); font-weight: 600; font-size: var(--text-md); color: var(--color-ink-2); }
.journey--1 > li:nth-child(1), .journey--2 > li:nth-child(2), .journey--3 > li:nth-child(3) { color: var(--color-ink-2); }
.journey--1 > li:nth-child(1) strong, .journey--2 > li:nth-child(2) strong, .journey--3 > li:nth-child(3) strong { color: var(--color-accent); }
.journey--1 > li:nth-child(1)::before, .journey--2 > li:nth-child(2)::before, .journey--3 > li:nth-child(3)::before { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-accent-ink); }
.journey--2 > li:nth-child(1)::before, .journey--3 > li:nth-child(-n+2)::before { content: "✓"; background: var(--color-green-soft); border-color: var(--color-green); color: var(--color-green); }
@media (max-width: 30rem) { .journey > li { font-size: var(--text-xs); } .journey > li strong { font-size: var(--text-sm); } }

/* ------------------------------------------------------------ registration body */
.sec--reg { padding-block: var(--space-2xl) var(--space-3xl); }
.reg { gap: var(--space-2xl) var(--gap-columns) !important; margin: 0 !important; align-items: flex-start !important; }
.reg__main { display: grid; gap: var(--space-xl); min-width: 0; }
.reg__main > * { margin: 0 !important; }
.reg__aside { display: grid; gap: 0; min-width: 0; }
.reg__aside > * { margin: 0 !important; }
@media (min-width: 782px) { .reg__aside { position: sticky; top: calc(var(--nav-h) + var(--space-lg)); } }
.aside__block { padding-block: var(--space-lg); border-block-start: var(--rule-hair) solid var(--color-grid-strong); }
.aside__block:first-child { border-block-start: 2px solid var(--color-ink); }
.aside__block h3 { font-size: var(--text-md) !important; margin-block-end: var(--space-sm) !important; }
.aside__block p { font-size: var(--text-sm); color: var(--color-ink-2); }
.checklist { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--space-xs); font-size: var(--text-sm); color: var(--color-ink-2); }
.checklist > li { position: relative; padding-inline-start: var(--space-lg); }
.checklist > li::before { content: ""; position: absolute; left: 0; top: 0.3em; width: 12px; height: 12px; border: 1.5px solid var(--color-muted); border-radius: 3px; }
.is-style-ruled { margin: 0; }
.is-style-ruled table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.is-style-ruled td, .is-style-ruled th { border: 0; border-block-end: var(--rule-hair) solid var(--color-rule); padding: var(--space-xs) 0; text-align: left; vertical-align: baseline; }
.is-style-ruled td:last-child { text-align: right; padding-inline-start: var(--space-md); font-variant-numeric: tabular-nums; font-weight: 500; }
.is-style-ruled tr:first-child td { border-block-start: 0; }

.formcard { display: grid; gap: var(--space-xs); }
.formcard > * { margin: 0 !important; }
.formcard__title { font-size: var(--text-xl) !important; }
.formcard__note { font-size: var(--text-sm); color: var(--color-muted); margin-block-end: var(--space-md) !important; }

.elig { display: grid; gap: var(--space-sm); padding-block-end: var(--space-xl); border-block-end: var(--rule-hair) solid var(--color-rule); }
.elig > * { margin: 0 !important; }
.elig__title { font-size: var(--text-xl) !important; }
.wp-block-details { border: var(--rule-hair) solid var(--color-grid-strong); border-radius: var(--radius-card); background: var(--color-sheet); }
.wp-block-details > summary { cursor: pointer; padding: var(--space-sm) var(--space-md); font-weight: 500; list-style-position: inside; border-radius: var(--radius-card); }
.wp-block-details > summary:hover { background: var(--color-paper); }
.wp-block-details[open] > summary { border-block-end: var(--rule-hair) solid var(--color-rule); border-end-start-radius: 0; border-end-end-radius: 0; }
.wp-block-details > :not(summary) { margin: 0; padding: var(--space-sm) var(--space-md) var(--space-md); }
.rows { list-style: none; margin: 0; padding: 0; counter-reset: r; }
.rows > li { counter-increment: r; display: grid; grid-template-columns: 2.5ch 1fr; gap: var(--space-sm); padding-block: var(--space-xs); border-block-end: var(--rule-hair) solid var(--color-rule); font-size: var(--text-sm); }
.rows > li:last-child { border-block-end: 0; }
.rows > li::before { content: counter(r); font-family: var(--font-outlier); color: var(--color-muted); text-align: right; }

/* notes for editors: seen only by people who can edit pages (filtered in functions.php) */
.editor-note { padding: var(--space-md) var(--space-lg); border: 1.5px dashed var(--color-amber); border-radius: var(--radius-card); background: var(--color-amber-soft); color: var(--color-ink); font-size: var(--text-sm); }
.editor-note p { max-width: 60ch; }

/* ------------------------------------------------------------ payment */
.sec--pay { padding-block: var(--space-2xl) var(--space-3xl); }
.paygrid { display: grid; gap: var(--gap-columns); }
.paygrid > * { margin: 0 !important; }
@media (min-width: 60rem) {
  .paygrid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .paycard--online { grid-column: 1 / -1; }
  .paycard--qr { grid-column: span 5; }
  .paycard--bank { grid-column: span 7; }
  .paycard--cash { grid-column: 1 / -1; }
}
.paycard { display: grid; align-content: start; gap: var(--space-sm); }
.paycard > * { margin: 0 !important; }
.paycard h2 { font-size: var(--text-xl) !important; }
.paycard p { color: var(--color-ink-2); }
.paycard--online { border-inline-start: 4px solid var(--color-accent); }
.paycard--cash { box-shadow: none; background: transparent; }
.qr { margin: var(--space-sm) 0 0 !important; }
.qr img { width: 100%; max-width: 280px; border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-card); background: #fff; }
.qr figcaption { margin-block-start: var(--space-sm); font-size: var(--text-sm); color: var(--color-muted); }
.bank td:first-child { color: var(--color-muted); }
.bank td:last-child { text-align: left !important; font-size: var(--text-md); }
.bank code { font-size: var(--text-md); }
.copy { margin-inline-start: var(--space-xs); padding: 2px var(--space-xs); min-height: 28px; border: var(--rule-hair) solid var(--color-grid-strong); border-radius: 4px; background: var(--color-paper-2); color: var(--color-ink-2); font-size: var(--text-xs); cursor: pointer; vertical-align: middle; }
.copy:hover { background: var(--color-paper-3); }
.copy[data-done] { color: var(--color-green); border-color: var(--color-green); }
.sec--slip .container { display: grid; gap: var(--space-md); }
.sec--slip .container > * { margin: 0 !important; }
.sec--slip h2 { font-size: var(--text-section) !important; }
.sec--slip .lead { max-width: 56ch; }
.sec--slip .wp-block-buttons { margin-block-start: var(--space-sm) !important; }
.pagehead--done .pagehead__grid { padding-block: var(--space-4xl); }
.pagehead--done .pagehead__grid > * { grid-column: 1 / -1; }

/* ------------------------------------------------------------ small sections */
.sec--notice .container, .sec--fees .container { display: grid; gap: var(--space-md); }
.sec--notice .container > *, .sec--fees .container > * { margin: 0 !important; }
.sec--notice { background: var(--color-amber-soft); }
.sec--fees .is-style-ruled { max-width: 640px; }
.sec--fees .is-style-ruled table { font-size: var(--text-md); }

/* ------------------------------------------------------------ footer */
.site-foot { background: var(--color-ink); color: oklch(88% 0.01 85); padding-block: var(--space-3xl) var(--space-xl); margin-block-start: 0; }
.site-foot a { color: var(--color-paper-2); }
.site-foot a:hover { color: var(--color-accent-soft); }
.site-foot .container > * { margin: 0 !important; }
.site-foot .container > * + * { margin-block-start: var(--space-2xl) !important; }
.foot-help { display: grid; gap: var(--space-sm); padding-block-end: var(--space-2xl); border-block-end: var(--rule-hair) solid oklch(35% 0.01 60); }
.foot-help > * { margin: 0 !important; }
.foot-help__title { color: var(--color-paper-2); font-size: var(--text-section) !important; max-width: 22ch; }
.foot-help__line { font-size: var(--text-lead); max-width: 52ch; }
.foot-grid { display: grid; gap: var(--space-xl) var(--gap-columns); }
@media (min-width: 48rem) { .foot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 72rem) { .foot-grid { grid-template-columns: 4fr 3fr 2fr 2fr; } }
.foot-grid > * { margin: 0 !important; }
.foot-col { display: grid; align-content: start; gap: var(--space-sm); font-size: var(--text-sm); line-height: 1.7; }
.foot-col > * { margin: 0 !important; }
.foot-name { font-family: var(--font-display); font-weight: 600; font-size: var(--text-lg); color: var(--color-paper-2); }
.foot-h { color: var(--color-paper-2); font-size: var(--text-md) !important; }
.foot-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2xs); }
.foot-legal { font-size: var(--text-xs); color: oklch(70% 0.01 85); padding-block-start: var(--space-lg); border-block-start: var(--rule-hair) solid oklch(35% 0.01 60); }

/* ------------------------------------------------------------ plain pages, notices, 404 */
.plain-head { padding-block: var(--space-3xl) var(--space-lg); }
.notices { padding-block-end: var(--space-3xl); }
.notices .wp-block-post-template { list-style: none; padding: 0; margin: 0; display: grid; }
.notices .wp-block-post-template > li { display: grid; gap: var(--space-xs); padding-block: var(--space-lg); border-block-start: var(--rule-hair) solid var(--color-rule); }
.notices .wp-block-post-date { font-family: var(--font-outlier); font-size: var(--text-sm); color: var(--color-muted); }
.notices .wp-block-post-title { font-size: var(--text-xl); }
.notices .wp-block-post-title a { text-decoration: none; }
.prose { padding-block: var(--space-3xl); }
.prose > * + * { margin-block-start: var(--space-md); }

/* ------------------------------------------------------------ WPForms (modern markup variables, classic fallbacks) */
.wp-site-blocks div.wpforms-container-full, .editor-styles-wrapper div.wpforms-container-full {
  --wpforms-field-border-radius: 6px;
  --wpforms-field-border-style: solid;
  --wpforms-field-border-size: 1px;
  --wpforms-field-background-color: var(--color-paper-2);
  --wpforms-field-border-color: var(--color-grid-strong);
  --wpforms-field-border-color-spare: var(--color-grid-strong);
  --wpforms-field-text-color: var(--color-ink);
  --wpforms-field-menu-color: var(--color-paper-2);
  --wpforms-label-color: var(--color-ink);
  --wpforms-label-sublabel-color: var(--color-muted);
  --wpforms-label-error-color: var(--color-error);
  --wpforms-button-border-radius: 6px;
  --wpforms-button-border-style: solid;
  --wpforms-button-border-size: 1px;
  --wpforms-button-background-color: var(--color-accent);
  --wpforms-button-border-color: var(--color-accent-hover);
  --wpforms-button-text-color: var(--color-accent-ink);
  --wpforms-page-break-color: var(--color-accent);
  --wpforms-field-size-input-height: 46px;
  --wpforms-field-size-input-spacing: 12px;
  --wpforms-field-size-font-size: 16px;
  --wpforms-field-size-line-height: 22px;
  --wpforms-field-size-padding-h: 14px;
  --wpforms-field-size-checkbox-size: 18px;
  --wpforms-field-size-sublabel-spacing: 6px;
  --wpforms-field-size-icon-size: 1;
  --wpforms-label-size-font-size: 15px;
  --wpforms-label-size-line-height: 20px;
  --wpforms-label-size-sublabel-font-size: 13px;
  --wpforms-label-size-sublabel-line-height: 17px;
  --wpforms-button-size-font-size: 16px;
  --wpforms-button-size-height: 48px;
  --wpforms-button-size-padding-h: 24px;
  --wpforms-button-size-margin-top: 8px;
  --wpforms-container-padding: 0px;
  --wpforms-container-shadow-size-box-shadow: none;
  margin: 0;
  font-family: var(--font-body);
}
.wp-site-blocks .wpforms-container .wpforms-form .wpforms-field { padding-block: 10px; }
.wp-site-blocks .wpforms-container .wpforms-field-label { font-family: var(--font-body); font-weight: 500 !important; }
.wp-site-blocks .wpforms-container .wpforms-field-description { font-size: var(--text-sm) !important; color: var(--color-muted) !important; line-height: 1.45 !important; max-width: 62ch; }
.wp-site-blocks .wpforms-container .wpforms-required-label { color: var(--color-brand-red); }
.wp-site-blocks .wpforms-container input[type="text"], .wp-site-blocks .wpforms-container input[type="email"], .wp-site-blocks .wpforms-container input[type="number"], .wp-site-blocks .wpforms-container input[type="tel"], .wp-site-blocks .wpforms-container input[type="url"], .wp-site-blocks .wpforms-container select, .wp-site-blocks .wpforms-container textarea {
  box-shadow: inset 0 1px 2px oklch(18% 0.006 60 / 0.06);
  transition: border-color var(--dur-micro) var(--ease-out), box-shadow var(--dur-micro) var(--ease-out);
}
.wp-site-blocks .wpforms-container input:hover:not(:focus), .wp-site-blocks .wpforms-container select:hover:not(:focus), .wp-site-blocks .wpforms-container textarea:hover:not(:focus) { border-color: var(--color-muted) !important; }
.wp-site-blocks .wpforms-container input:focus, .wp-site-blocks .wpforms-container select:focus, .wp-site-blocks .wpforms-container textarea:focus { border-color: var(--color-accent) !important; box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-focus) 28%, transparent) !important; outline: none; }
.wp-site-blocks .wpforms-container input[type="checkbox"], .wp-site-blocks .wpforms-container input[type="radio"] { accent-color: var(--color-accent); }
.wp-site-blocks .wpforms-container .wpforms-field-checkbox li, .wp-site-blocks .wpforms-container .wpforms-field-radio li { margin-block-end: 6px !important; }
.wp-site-blocks .wpforms-container .wpforms-field-checkbox li label, .wp-site-blocks .wpforms-container .wpforms-field-radio li label { line-height: 1.45 !important; }
.wp-site-blocks .wpforms-container .wpforms-field-sublabel { color: var(--color-muted) !important; }
.wp-site-blocks .wpforms-container .nsegr-section .wpforms-field-label, .wp-site-blocks .wpforms-container .nsegr-section > label { font-family: var(--font-display) !important; font-weight: 600 !important; font-size: var(--text-lg) !important; letter-spacing: -0.015em; }
.wp-site-blocks .wpforms-container .wpforms-field-html { padding-block: var(--space-lg) 4px !important; }
.wp-site-blocks .wpforms-container .wpforms-field-html h3 { font-size: var(--text-lg); margin: 0 0 4px; padding-block-start: var(--space-lg); border-block-start: var(--rule-hair) solid var(--color-rule); }
.wp-site-blocks .wpforms-container .wpforms-field-html p { font-size: var(--text-sm); color: var(--color-muted); margin: 0; }
.wp-site-blocks .wpforms-container .wpforms-field:first-child.wpforms-field-html h3 { border: 0; padding-block-start: 0; }
.wp-site-blocks .wpforms-container .wpforms-submit-container { margin-block-start: var(--space-lg) !important; padding-block-start: var(--space-lg) !important; border-block-start: var(--rule-hair) solid var(--color-rule); }
.wp-site-blocks .wpforms-container button[type="submit"] {
  font-family: var(--font-body) !important; font-weight: 500 !important; min-width: 200px;
  box-shadow: inset 0 1px 0 oklch(100% 0 0 / 0.16), 0 1px 0 var(--color-accent-hover), 0 2px 6px -2px oklch(18% 0.006 60 / 0.35) !important;
}
.wp-site-blocks .wpforms-container button[type="submit"]:hover { background: var(--color-accent-hover) !important; }
.wp-site-blocks .wpforms-container button[type="submit"]:focus-visible { outline: 2px solid var(--color-focus) !important; outline-offset: 2px; }
.wp-site-blocks .wpforms-container .wpforms-error-container, .wp-site-blocks .wpforms-container label.wpforms-error, .wp-site-blocks .wpforms-container em.wpforms-error { color: var(--color-error) !important; font-size: var(--text-sm) !important; font-weight: 500; }
.wp-site-blocks .wpforms-container .wpforms-has-error input, .wp-site-blocks .wpforms-container .wpforms-has-error select, .wp-site-blocks .wpforms-container .wpforms-has-error textarea, .wp-site-blocks .wpforms-container input.wpforms-error, .wp-site-blocks .wpforms-container select.wpforms-error, .wp-site-blocks .wpforms-container textarea.wpforms-error { border-color: var(--color-error) !important; background: var(--color-error-soft) !important; }
.wp-site-blocks .wpforms-confirmation-container-full, .wp-site-blocks div[submit-success] > .wpforms-confirmation-container-full {
  background: var(--color-green-soft) !important; border: var(--rule-hair) solid var(--color-green) !important; border-radius: var(--radius-card) !important; color: var(--color-ink) !important; padding: var(--space-lg) !important; font-size: var(--text-md);
}
.wp-site-blocks .wpforms-confirmation-container-full p { margin: 0 0 var(--space-xs) !important; }
.wp-site-blocks .wpforms-confirmation-container-full a { color: var(--color-accent) !important; font-weight: 500; }
.nsegr-error-summary { margin-block-end: var(--space-lg); padding: var(--space-md) var(--space-lg); border: var(--rule-hair) solid var(--color-error); border-inline-start-width: 4px; border-radius: var(--radius-card); background: var(--color-error-soft); }
.nsegr-error-summary:focus { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.nsegr-error-summary h3 { font-size: var(--text-md); margin-block-end: var(--space-2xs); }
.nsegr-error-summary ul { margin: 0; padding-inline-start: var(--space-lg); font-size: var(--text-sm); }
.nsegr-error-summary a { color: var(--color-error); }

/* ------------------------------------------------------------ editor */
.editor-styles-wrapper .site-head { position: relative; top: 0; }
.editor-styles-wrapper .editor-note { display: block; }
.editor-styles-wrapper .entry__title a::after { display: none; }
.editor-styles-wrapper .survey { display: none; }
.editor-styles-wrapper .hero { background-image: linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px); background-size: 96px 96px; }
.editor-styles-wrapper .wp-block-post-content > .alignfull { margin-inline: 0 !important; width: 100%; }
.editor-styles-wrapper .is-root-container > .alignfull { margin-block: 0; }
.editor-styles-wrapper .reg__aside { position: static; }

/* ------------------------------------------------------------ print: the payment details on paper */
@media print {
  .site-head, .site-foot, .survey, .wp-block-buttons, .editor-note, .copy { display: none !important; }
  .is-style-card { box-shadow: none; }
  body { background: #fff; }
}

/* ------------------------------------------------------------ late fixes */
.wp-block-post-content .sec--ink a:not(.wp-block-button__link), .wp-block-post-content .sec--ink a:not(.wp-block-button__link):hover { color: var(--color-accent-ink); }
.qr figcaption { text-align: left; }
@media (max-width: 40rem) { .masthead .masthead__cta { display: none; } }
.wp-site-blocks .wpforms-container .nsegr-error-summary { margin: 0 0 var(--space-lg); padding: var(--space-md) var(--space-lg); border: var(--rule-hair) solid var(--color-error); border-inline-start-width: 4px; border-radius: var(--radius-card); background: var(--color-error-soft); scroll-margin-top: calc(var(--nav-h) + var(--space-lg)); }
.wp-site-blocks .wpforms-container .nsegr-error-summary h3 { font-size: var(--text-md); margin: 0 0 var(--space-xs); color: var(--color-error); }
.wp-site-blocks .wpforms-container .nsegr-error-summary ul { display: flex; flex-wrap: wrap; gap: var(--space-2xs) var(--space-md); margin: 0; padding: 0; list-style: none; font-size: var(--text-sm); }
.wp-site-blocks .wpforms-container .nsegr-error-summary li { margin: 0; padding: 0; list-style: none; }
.wp-site-blocks .wpforms-container .nsegr-error-summary li::before { content: none; }
.wp-site-blocks .wpforms-container .nsegr-error-summary a { color: var(--color-error); }

/* ------------------------------------------------------------ Conference Registrations plugin (Nabil Bank payments)
   Its stylesheet is themed with --cpp-* properties; these point them at the theme's tokens. Its bank
   confirmation form (#paymentForm) has no styles of its own, so it borrows the open payment form's look. */
:root {
  --cpp-accent: var(--color-accent); --cpp-accent-dark: var(--color-accent-hover); --cpp-accent-soft: var(--color-accent-soft);
  --cpp-ink: var(--color-ink); --cpp-muted: var(--color-muted); --cpp-border: var(--color-rule);
  --cpp-surface: var(--color-sheet); --cpp-canvas: var(--color-paper); --cpp-radius: var(--radius-card); --cpp-radius-sm: 6px;
  --cpp-shadow: var(--shadow-card);
}
.checkout { max-width: 760px; display: grid; gap: var(--space-md); }
.checkout > * { margin: 0 !important; }
.checkout .cpp-card, .paycard .cpp-card { margin: 0; font-family: var(--font-body); }
.paycard .cpp-card { padding: 0; border: 0; box-shadow: none; background: transparent; }
.paycard .cpp-card > .cpp-card-title { display: none; }
.cpp-card-title { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.015em; font-size: var(--text-xl); }
.cpp-card-subtitle { color: var(--color-muted); }
.cpp-notice { border-inline-start: 4px solid var(--color-amber); }
#paymentForm, #emptyPaymentForm { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-md) var(--space-lg); position: relative; margin-block-start: var(--space-md); }
#paymentForm .cpp-field, #emptyPaymentForm .cpp-field { display: grid; gap: 6px; min-width: 0; }
#paymentForm .cpp-field-full, #emptyPaymentForm .cpp-field-full, #paymentForm button[type="submit"], #emptyPaymentFormBankSubmit { grid-column: 1 / -1; }
#paymentForm label, #emptyPaymentForm label { font-weight: 500; font-size: 15px; color: var(--color-ink); }
#paymentForm input, #paymentForm textarea, #emptyPaymentForm input:not([type="radio"]), #emptyPaymentForm textarea {
  width: 100%; min-height: 46px; padding: 10px 14px; border: 1px solid var(--color-grid-strong); border-radius: 6px; background: var(--color-paper-2); color: var(--color-ink); font: inherit; font-size: 16px;
  box-shadow: inset 0 1px 2px oklch(18% 0.006 60 / 0.06); transition: border-color var(--dur-micro) var(--ease-out), box-shadow var(--dur-micro) var(--ease-out);
}
#paymentForm textarea, #emptyPaymentForm textarea { min-height: 88px; resize: vertical; }
#paymentForm input:focus, #paymentForm textarea:focus, #emptyPaymentForm input:focus, #emptyPaymentForm textarea:focus { outline: none; border-color: var(--color-accent); box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-focus) 28%, transparent); }
#paymentForm input[readonly], #emptyPaymentForm input[readonly] { background: var(--color-paper-3); color: var(--color-ink-2); }
#paymentForm #cpp-amount { font-family: var(--font-outlier); font-weight: 500; }
#paymentForm button[type="submit"], #emptyPaymentForm button[type="submit"] {
  justify-self: start; min-height: 48px; padding: 0 var(--space-lg); border: 1px solid var(--color-accent-hover); border-radius: 6px; background: var(--color-accent); color: var(--color-accent-ink); font: inherit; font-weight: 500; cursor: pointer;
  box-shadow: inset 0 1px 0 oklch(100% 0 0 / 0.16), 0 1px 0 var(--color-accent-hover), 0 2px 6px -2px oklch(18% 0.006 60 / 0.35);
}
#paymentForm button[type="submit"]:hover, #emptyPaymentForm button[type="submit"]:hover { background: var(--color-accent-hover); }
#paymentForm button[type="submit"]:focus-visible, #emptyPaymentForm button[type="submit"]:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
#emptyPaymentForm .cpp-currency-option { border-color: var(--color-grid-strong); background: var(--color-paper-2); min-height: 44px; }
#emptyPaymentForm .cpp-currency-option:has(input:checked), #emptyPaymentForm .cpp-currency-option-selected { border-color: var(--color-accent); background: var(--color-accent-soft); color: var(--color-accent); }
#emptyPaymentForm .cpp-currency-option input { accent-color: var(--color-accent); }
@media (max-width: 560px) { #paymentForm, #emptyPaymentForm { grid-template-columns: minmax(0, 1fr); } }
.cpp-npr-qr-notice { border-radius: var(--radius-card); }
.cpp-npr-qr-notice h3 { font-family: var(--font-display); font-weight: 600; }
.cpp-npr-qr-details th { color: var(--color-muted); font-weight: 400; text-align: left; }
.cpp-npr-qr-details td { font-weight: 500; }
.cpp-loading-overlay { border-radius: var(--radius-card); background: color-mix(in oklab, var(--color-sheet) 88%, transparent); }
#total_price_display, #conference-pricing-display { display: inline-block; margin-block: var(--space-md) 0; padding: var(--space-sm) var(--space-md); border: 1px solid var(--color-accent); border-radius: 6px; background: var(--color-accent-soft); color: var(--color-accent); font-variant-numeric: tabular-nums; }
#total_price_display:empty { display: none; }
#cr-payment-modal-overlay { background: oklch(18% 0.006 60 / 0.55); backdrop-filter: blur(2px); z-index: var(--z-modal); }
#cr-payment-modal-content { border-radius: var(--radius-entry); background: var(--color-paper); box-shadow: var(--shadow-lift); }
#cr-payment-modal-close { border-radius: 6px; }
#cr-payment-modal-close:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.checkout .cpp-card { max-width: none; }

/* ------------------------------------------------------------ NSEG Forms */
.wp-site-blocks .nsegf-container, .editor-styles-wrapper .nsegf-container {
  --nsegf-accent: var(--color-accent);
  --nsegf-accent-hover: var(--color-accent-hover);
  --nsegf-accent-text: var(--color-accent-ink);
  --nsegf-text: var(--color-ink);
  --nsegf-muted: var(--color-muted);
  --nsegf-border: var(--color-grid-strong);
  --nsegf-border-hover: var(--color-muted);
  --nsegf-field-bg: var(--color-paper-2);
  --nsegf-error: var(--color-error);
  --nsegf-error-bg: var(--color-error-soft);
  --nsegf-success-bg: var(--color-green-soft);
  --nsegf-success-border: var(--color-green);
  --nsegf-focus: var(--color-focus);
  --nsegf-radius: 6px;
  --nsegf-gap: 18px;
  --nsegf-font: var(--font-body);
}
.wp-site-blocks .nsegf-label { font-family: var(--font-body); font-weight: 500; }
.wp-site-blocks .nsegf-req { color: var(--color-brand-red); }
.wp-site-blocks .nsegf-input { box-shadow: inset 0 1px 2px oklch(18% 0.006 60 / 0.06); }
.wp-site-blocks .nsegf-section-title { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.015em; font-size: var(--text-lg); }
.wp-site-blocks .nsegf-field--section { border-top-color: var(--color-rule); }
.wp-site-blocks .nsegf-submit { padding-top: var(--space-lg); border-top: var(--rule-hair) solid var(--color-rule); }
.wp-site-blocks .nsegf-button { font-family: var(--font-body); font-weight: 500; box-shadow: inset 0 1px 0 oklch(100% 0 0 / 0.16), 0 1px 0 var(--color-accent-hover), 0 2px 6px -2px oklch(18% 0.006 60 / 0.35); }
.wp-site-blocks .nsegf-summary h3 { font-family: var(--font-body); font-weight: 600; letter-spacing: 0; }
.wp-site-blocks .nsegf-confirmation { font-size: var(--text-md); }
.wp-site-blocks .nsegf-confirmation a { color: var(--color-accent); }
.wp-site-blocks .nsegf-container .nsegf-desc a { color: var(--color-accent); }
.formcard .nsegf-container { margin-top: var(--space-xs); }
.wp-site-blocks .nsegf-summary { scroll-margin-top: calc(var(--nav-h) + var(--space-lg)); }
.wp-site-blocks .nsegf-summary a, .wp-block-post-content .nsegf-summary a:not(.wp-block-button__link) { color: var(--color-error); }
.wp-site-blocks .nsegf-field { scroll-margin-top: calc(var(--nav-h) + var(--space-lg)); }
#cr-payment-modal-content .cpp-card { max-width: none; width: 100%; margin: 0; box-shadow: none; border: 0; }

/* ------------------------------------------------------------ closed registrations (inc/status.php) */
.entry__row--closed .entry__title { color: var(--color-ink-2); }
.entry__row--closed .entry__date { color: var(--color-muted); }
.formcard--closed { display: grid; gap: var(--space-sm); }
.formcard--closed > * { margin: 0 !important; }
.formcard--closed .wp-block-button__link { margin-top: var(--space-xs); }
