:root {
    --plum:#26185f;
    --purple:#4a2b91;
    --pink:#d9468d;
    --lavender:#f2eefc;
    --paper:#f8f6fc;
    --ink:#201a35;
    --muted:#6b6577;
    --green:#2d7d69;
    --border:#ded9e8;
    --white:#fff;
    --shadow:0 14px 40px rgba(38,24,95,.09);
    font-family:"Source Sans 3",sans-serif;
    color:var(--ink);
    background:var(--paper);
}
* {
    box-sizing:border-box;
}
body {
    margin:0;
    background:var(--paper);
    line-height:1.55;
}
a {
    color:var(--purple);
    text-decoration:none;
}
a:hover {
    text-decoration:underline;
}
h1,h2,h3,.wordmark {
    font-family:Fraunces,serif;
    line-height:1.12;
}
h1 {
    font-size:clamp(2.35rem,5vw,4.8rem);
    margin:.3em 0;
}
h2 {
    font-size:clamp(1.5rem,3vw,2.4rem);
}
h3 {
    font-size:1.25rem;
}
p {
    color:var(--muted);
}
img {
    max-width:100%;
    display:block;
}
.eyebrow {
    text-transform:uppercase;
    letter-spacing:.16em;
    font-size:.75rem;
    font-weight:700;
    color:var(--pink);
}
.lead {
    font-size:1.18rem;
    max-width:42rem;
}
.muted,small {
    color:var(--muted);
}
.wordmark {
    font-size:1.35rem;
    font-weight:500;
    color:var(--plum);
}
.wordmark span {
    font-style:italic;
}
.wordmark.light {
    color:#fff;
}
.button,button.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:999px;
    background:var(--plum);
    color:#fff;
    padding:.8rem 1.3rem;
    font:600 .95rem "Source Sans 3";
    cursor:pointer;
    text-decoration:none;
    transition:.18s;
}
.button:hover {
    background:var(--purple);
    text-decoration:none;
    transform:translateY(-1px);
}
.button.secondary {
    background:#fff;
    color:var(--plum);
    border:1px solid var(--border);
}
.button.light {
    background:#fff;
    color:var(--plum);
}
.button.small {
    padding:.5rem .85rem;
    font-size:.85rem;
}
.button.full,.full {
    width:100%;
    grid-column:1/-1;
}
.danger-button {
    background:#8e2946;
}
.actions {
    display:flex;
    gap:.75rem;
    flex-wrap:wrap;
    margin-top:2rem;
}
.site-header {
    height:78px;
    padding:0 max(1.25rem,calc((100vw - 1280px)/2));
    display:flex;
    align-items:center;
    gap:2rem;
    position:sticky;
    top:0;
    z-index:20;
    background:rgba(248,246,252,.94);
    backdrop-filter:blur(12px);
    border-bottom:1px solid var(--border);
}
.site-nav {
    margin-left:auto;
    display:flex;
    gap:1.7rem;
}
.site-nav a,.header-actions a {
    font-size:.9rem;
    font-weight:600;
}
.header-actions {
    display:flex;
    align-items:center;
    gap:1rem;
}
.menu-toggle {
    display:none;
}
.hero {
    max-width:1440px;
    margin:auto;
    display:grid;
    grid-template-columns:1.05fr .95fr;
    min-height:680px;
}
.hero-copy {
    /*padding:7rem 5rem 5rem max(2rem,calc((100vw - 1280px)/2));*/
    padding:7rem 5rem 5rem 0rem;
}
.hero h1 em {
    color:var(--pink);
    font-weight:400;
}
.hero>img {
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:0 0 0 90px;
}
.trust-row {
    display:flex;
    gap:1.6rem;
    margin-top:3rem;
    color:var(--muted);
    font-size:.86rem;
}
.trust-row span:before {
    content:"✓";
    color:var(--green);
    margin-right:.4rem;
}
.section {
    max-width:1280px;
    margin:auto;
    padding:6rem 2rem;
}
.section.compact {
    padding:3rem 0;
}
.section>h2 {
    max-width:760px;
}
.tinted {
    background:var(--lavender);
    max-width:none;
    padding-left:max(2rem,calc((100vw - 1280px)/2));
    padding-right:max(2rem,calc((100vw - 1280px)/2));
}
.surface {
    background:#fff;
    border:1px solid var(--border);
    border-radius:20px;
    padding:1.6rem;
    box-shadow:0 5px 18px rgba(38,24,95,.04);
}
.feature-grid,.card-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1.4rem;
    margin-top:2.5rem;
}
.step {
    width:2.4rem;
    height:2.4rem;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--lavender);
    color:var(--purple);
    font-weight:700;
}
.section-heading,.page-heading {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:1rem;
}
.event-card {
    background:#fff;
    border:1px solid var(--border);
    border-radius:20px;
    overflow:hidden;
}
.event-card img {
    width:100%;
    height:210px;
    object-fit:cover;
}
.event-card>div {
    padding:1.4rem;
}
.event-card h2,.event-card h3 {
    margin:.4rem 0;
}
.cta {
    padding:6rem 2rem;
    text-align:center;
    background:var(--plum);
    color:#fff;
}
.cta h2 {
    max-width:720px;
    margin:1rem auto 2rem;
    font-size:clamp(2rem,4vw,3.8rem);
}
.page-hero {
    padding:6rem max(2rem,calc((100vw - 1000px)/2));
    background:linear-gradient(135deg,var(--lavender),var(--paper));
    text-align:center;
}
.page-hero .lead {
    margin:auto;
}
.site-footer {
    background:var(--plum);
    color:#fff;
    padding:4rem max(2rem,calc((100vw - 1280px)/2));
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:3rem;
}
.site-footer div {
    display:flex;
    flex-direction:column;
    gap:.55rem;
}
.site-footer p,.site-footer a,.site-footer span {
    color:#ddd7f1;
}
.split {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:4rem;
    align-items:center;
}
.rounded-image {
    border-radius:30px;
    max-height:520px;
    width:100%;
    object-fit:cover;
}
.plans {
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:900px;
    margin-inline:auto;
}
.plan .price {
    font:500 2.5rem Fraunces;
    color:var(--plum);
}
.plan li {
    margin:.7rem 0;
    list-style:none;
}
.timeline {
    max-width:760px;
}
.timeline article {
    display:flex;
    gap:1.4rem;
    border-left:2px solid var(--lavender);
    padding:0 0 2rem 1.5rem;
}
.form {
    display:grid;
    gap:1rem;
}
.form.two-col {
    grid-template-columns:1fr 1fr;
}
.form label,.form legend {
    font-weight:600;
    color:var(--ink);
}
input,textarea,select {
    width:100%;
    margin-top:.35rem;
    padding:.75rem .85rem;
    border:1px solid var(--border);
    border-radius:10px;
    background:#fff;
    font:inherit;
    color:var(--ink);
}
input:focus,textarea:focus,select:focus {
    outline:2px solid rgba(74,43,145,.2);
    border-color:var(--purple);
}
label small,.error-text {
    display:block;
    color:#a32949;
}
.checkbox {
    display:flex;
    gap:.7rem;
    align-items:flex-start;
}
.checkbox input,.radio-card input {
    width:auto;
    margin-top:.3rem;
}
.radio-card {
    display:flex;
    gap:.7rem;
    padding:1rem;
    border:1px solid var(--border);
    border-radius:12px;
    margin:.5rem 0;
}
.auth-wrap,.center-card {
    min-height:calc(100vh - 78px);
    display:grid;
    place-items:center;
    padding:3rem 1.5rem;
}
.auth-card {
    width:min(100%,480px);
    padding:2.5rem;
}
.wide-card {
    width:min(100%,820px);
}
.form-links {
    text-align:center;
}
.flash {
    position:relative;
    z-index:40;
    padding:.8rem 1.2rem;
    text-align:center;
    font-weight:600;
}
.flash.success {
    background:#dbf1e9;
    color:#1e604f;
}
.flash.error {
    background:#fde7ec;
    color:#8e2946;
}
.app-body {
    display:flex;
    min-height:100vh;
}
.sidebar {
    width:260px;
    position:fixed;
    inset:0 auto 0 0;
    background:var(--plum);
    padding:2rem 1rem;
    display:flex;
    flex-direction:column;
    z-index:30;
}
.sidebar-label {
    color:#d7cdea;
    text-transform:uppercase;
    letter-spacing:.16em;
    font-size:.7rem;
    margin:1rem .7rem 2rem;
}
.sidebar nav {
    display:grid;
    gap:.35rem;
}
.sidebar nav a {
    padding:.7rem .8rem;
    border-radius:10px;
    color:#d9d3e8;
}
.sidebar nav a.active,.sidebar nav a:hover {
    background:#fff;
    color:var(--plum);
    text-decoration:none;
}
.sidebar-help {
    margin-top:auto;
    background:rgba(255,255,255,.09);
    padding:1rem;
    border-radius:12px;
    color:#d9d3e8;
    font-size:.8rem;
}
.app-main {
    margin-left:260px;
    width:calc(100% - 260px);
}
.app-header {
    height:64px;
    position:sticky;
    top:0;
    background:rgba(248,246,252,.94);
    backdrop-filter:blur(10px);
    z-index:15;
    border-bottom:1px solid var(--border);
    padding:0 2rem;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:1.5rem;
}
.link-button {
    background:none;
    border:0;
    color:var(--purple);
    font:600 .9rem inherit;
    cursor:pointer;
    padding:.4rem;
}
.link-button.danger {
    color:#a32949;
}
.app-content {
    max-width:1200px;
    margin:auto;
    padding:3rem 2rem;
}
.app-content.wide {
    max-width:1450px;
}
.page-heading {
    margin-bottom:2rem;
}
.page-heading h1 {
    font-size:clamp(2rem,4vw,3.4rem);
    margin:.2rem 0;
}
.dashboard-grid {
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:1.4rem;
    margin:1.4rem 0;
}
.span-2 {
    min-width:0;
}
.progress {
    height:10px;
    border-radius:999px;
    background:var(--lavender);
    overflow:hidden;
}
.progress span {
    height:100%;
    display:block;
    background:var(--green);
}
.status-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.7rem;
    margin:1.3rem 0;
}
.status-grid div {
    display:flex;
    justify-content:space-between;
    padding:.8rem;
    border:1px solid var(--border);
    border-radius:10px;
}
.status-grid strong {
    text-transform:capitalize;
}
.pill {
    display:inline-flex;
    padding:.28rem .65rem;
    border-radius:999px;
    background:var(--lavender);
    color:var(--purple);
    font-size:.78rem;
    font-weight:700;
    text-transform:capitalize;
}
.pill.success {
    background:#dff1eb;
    color:var(--green);
}
.pill.pending {
    background:#f7edf3;
    color:#92345e;
}
.callout {
    background:var(--lavender);
    padding:1rem;
    border-radius:12px;
    margin-top:1rem;
}
.highlight {
    background:linear-gradient(135deg,#fff,var(--lavender));
}
.stats {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1rem;
}
.stats article strong {
    font:500 2.4rem Fraunces;
    color:var(--plum);
}
.stats article p {
    margin:0;
}
.questionnaire-layout {
    display:grid;
    grid-template-columns:260px 1fr;
    gap:1.5rem;
}
.step-nav {
    display:grid;
    gap:.4rem;
    align-content:start;
}
.step-nav a {
    display:flex;
    align-items:center;
    gap:.7rem;
    padding:.65rem;
    border-radius:9px;
    color:var(--muted);
}
.step-nav a span {
    width:1.7rem;
    height:1.7rem;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fff;
    border:1px solid var(--border);
    font-size:.78rem;
}
.step-nav a.active {
    background:var(--lavender);
    color:var(--plum);
    font-weight:700;
}
.form-actions {
    display:flex;
    justify-content:flex-end;
    gap:.6rem;
}
.slot-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:.8rem;
}
.slot {
    width:100%;
    padding:1rem;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fff;
    color:var(--ink);
    cursor:pointer;
}
.slot span {
    display:block;
    color:var(--muted);
}
.tracker article {
    display:flex;
    gap:1rem;
    padding:0 0 2rem;
    border-left:2px solid var(--border);
    margin-left:1rem;
}
.tracker-icon {
    width:2rem;
    height:2rem;
    margin-left:-1.05rem;
    display:grid;
    place-items:center;
    background:#fff;
    border:2px solid var(--border);
    border-radius:50%;
}
.tracker article.done {
    border-color:var(--green);
}
.tracker article.done .tracker-icon {
    background:var(--green);
    border-color:var(--green);
    color:#fff;
}
.tracker h2 {
    margin:0;
}
.filter-bar {
    display:flex;
    gap:.7rem;
    margin:1rem 0 2rem;
}
.filter-bar input,.filter-bar select {
    margin:0;
    max-width:300px;
}
.event-detail {
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:3rem;
    align-items:start;
}
.event-detail>img {
    border-radius:24px;
    width:100%;
    max-height:650px;
    object-fit:cover;
}
.event-detail h1 {
    font-size:clamp(2.2rem,4vw,4rem);
}
dl {
    display:grid;
    grid-template-columns:auto 1fr;
    gap:.6rem 1rem;
}
dt {
    color:var(--muted);
}
dd {
    margin:0;
    font-weight:600;
}
.stack {
    display:grid;
    gap:1rem;
}
.booking-row,.mini-row {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
}
.booking-row>div:last-child {
    display:flex;
    align-items:center;
    gap:.8rem;
}
.warning {
    color:#9a5b12;
}
.empty-state {
    text-align:center;
    padding:4rem 2rem;
    background:#fff;
    border:1px dashed var(--border);
    border-radius:18px;
}
.ticket {
    max-width:680px;
    margin:2rem auto;
    background:#fff;
    border-radius:22px;
    overflow:hidden;
    box-shadow:var(--shadow);
}
.ticket-brand {
    background:var(--plum);
    padding:1.4rem;
    display:flex;
    justify-content:space-between;
    color:#fff;
}
.ticket-body {
    padding:2.5rem;
}
.ticket-code {
    width:180px;
    height:180px;
    margin:2rem auto;
    background:repeating-linear-gradient(45deg,var(--plum) 0 5px,#fff 5px 10px);
    border:14px solid #fff;
    box-shadow:0 0 0 1px var(--border);
}
.detail-list {
    grid-template-columns:180px 1fr;
    border-top:1px solid var(--border);
    padding:1rem 0;
}
table {
    width:100%;
    border-collapse:collapse;
}
th,td {
    text-align:left;
    padding:.8rem;
    border-bottom:1px solid var(--border);
    vertical-align:top;
}
th {
    color:var(--muted);
    font-size:.75rem;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.table-wrap {
    overflow-x:auto;
    margin:1.2rem 0;
}
.mini-row {
    padding:.8rem 0;
    border-bottom:1px solid var(--border);
}
.mini-row small {
    display:block;
}
.note {
    padding:1rem 0;
    border-bottom:1px solid var(--border);
}
details {
    border-bottom:1px solid var(--border);
    padding:1rem 0;
}
summary {
    cursor:pointer;
}
.email-preview {
    padding:1rem;
    background:var(--paper);
    margin-top:1rem;
    border-radius:10px;
}
.dialog {
    border:0;
    border-radius:20px;
    padding:2rem;
    width:min(850px,calc(100% - 2rem));
    box-shadow:var(--shadow);
}
.dialog::backdrop {
    background:rgba(23,15,56,.55);
}
pre {
    white-space:pre-wrap;
    background:var(--paper);
    padding:1rem;
    border-radius:10px;
}
.back-link {
    display:inline-block;
    margin-bottom:1rem;
}
@media(max-width:900px) {
    .site-nav {
        display:none;
        position:absolute;
        top:78px;
        left:0;
        right:0;
        background:#fff;
        padding:1rem;
        flex-direction:column;
    }
    .site-nav.open {
        display:flex;
    }
    .menu-toggle {
        display:inline-flex;
        align-items:center;
        justify-content:center;
        border:1px solid var(--border);
        border-radius:999px;
        background:#fff;
        color:var(--plum);
        padding:.45rem .75rem;
        font:600 .82rem "Source Sans 3";
        cursor:pointer;
    }
    .header-actions>a:first-child {
        display:none;
    }
    .hero {
        grid-template-columns:1fr;
    }
    .hero-copy {
        padding:5rem 2rem;
    }
    .hero>img {
        height:430px;
        border-radius:0;
    }
    .feature-grid,.card-grid,.stats {
        grid-template-columns:1fr 1fr;
    }
    .sidebar {
        transform:translateX(-100%);
        transition:.2s;
    }
    .sidebar.open {
        transform:none;
    }
    .app-main {
        margin-left:0;
        width:100%;
    }
    .questionnaire-layout,.event-detail,.split {
        grid-template-columns:1fr;
    }
    .app-header {
        justify-content:space-between;
    }
    .dashboard-grid {
        grid-template-columns:1fr;
    }
}
@media(max-width:600px) {
    .site-header {
        gap:.6rem;
        padding:0 1rem;
    }
    .wordmark {
        font-size:1.05rem;
    }
    .header-actions {
        margin-left:auto;
    }
    .hero-copy,.section,.app-content {
        padding:3rem 1rem;
    }
    .feature-grid,.card-grid,.plans,.stats,.status-grid,.form.two-col,.slot-grid {
        grid-template-columns:1fr;
    }
    .site-footer {
        grid-template-columns:1fr;
        padding:3rem 1.5rem;
    }
    .trust-row {
        flex-direction:column;
        gap:.5rem;
    }
    .page-heading,.section-heading,.booking-row {
        flex-direction:column;
    }
    .filter-bar {
        display:grid;
    }
    .event-card img {
        height:190px;
    }
    .app-header {
        padding:0 1rem;
    }
    .booking-row>div:last-child {
        flex-wrap:wrap;
    }
    .questionnaire-layout {
        display:block;
    }
    .step-nav {
        display:flex;
        overflow-x:auto;
        margin-bottom:1rem;
    }
    .step-nav a {
        min-width:max-content;
    }
    .step-nav a:not(.active) {
        font-size:0;
    }
    .table-wrap {
        padding:.6rem;
    }
    h1 {
        font-size:2.25rem;
    }
}
.demo-credentials {
    margin-top:1.5rem;
    padding-top:1.5rem;
    border-top:1px solid var(--border);
}
.demo-credentials article {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:.8rem 0;
    border-bottom:1px solid var(--border);
}
.demo-credentials code {
    display:block;
    color:var(--muted);
    font-size:.78rem;
}
.qr-image {
    width:220px;
    height:220px;
    margin:2rem auto;
}
@media print {
    .sidebar,.app-header,.site-header,.site-footer,.button {
        display:none!important;
    }
    .app-main {
        margin:0;
        width:100%;
    }
    .ticket {
        box-shadow:none;
        border:1px solid #ddd;
    }
}
/* Private member questionnaire */
.q-page-head {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:1rem;
}
.q-page-head h1 {
    font-size:clamp(2.4rem,5vw,4.4rem);
    margin:.2rem 0;
}
.q-page-head p {
    margin:.4rem 0;
}
.q-intro {
    display:grid;
    grid-template-columns:1.5fr 1fr;
    gap:2rem;
    padding:1.6rem 1.8rem;
    margin:1.5rem 0;
    background:linear-gradient(135deg,#fff,#f4effc);
    border:1px solid var(--border);
    border-radius:20px;
}
.q-intro h2 {
    margin:0 0 .5rem;
}
.q-intro p {
    margin:0;
}
.q-privacy {
    align-self:center;
    display:grid;
    gap:.2rem;
    padding:1rem 1.1rem;
    border-left:3px solid var(--pink);
    background:rgba(255,255,255,.72);
    border-radius:0 12px 12px 0;
}
.q-privacy span {
    color:var(--muted);
    font-size:.9rem;
}
.q-progress {
    margin:0 0 1.5rem;
}
.q-progress>div {
    display:flex;
    justify-content:space-between;
    margin-bottom:.5rem;
    color:var(--muted);
    font-size:.88rem;
}
.q-progress strong {
    color:var(--plum);
}
.q-progress>i {
    display:block;
    height:8px;
    border-radius:999px;
    background:linear-gradient(90deg,var(--pink),var(--purple));
    transition:width .2s;
}
.q-progress:after {
    content:"";
    display:block;
    height:8px;
    margin-top:-8px;
    border-radius:999px;
    background:#e9e3f2;
    position:relative;
    z-index:-1;
}
.q-layout {
    grid-template-columns:190px minmax(0,1fr);
}
.q-step-nav {
    position:sticky;
    top:84px;
}
.q-step-nav a {
    padding:.7rem;
}
.q-step-nav a em {
    font-style:normal;
}
.q-step-nav a.complete span {
    background:#e2f1ec;
    border-color:#b7dbcf;
    color:var(--green);
}
.q-shell {
    padding:clamp(1.4rem,3vw,2.5rem);
}
.q-step-heading {
    padding-bottom:1.4rem;
    margin-bottom:1.5rem;
    border-bottom:1px solid var(--border);
}
.q-step-heading h2 {
    margin:.25rem 0;
    font-size:clamp(1.8rem,3vw,2.7rem);
}
.q-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1.15rem;
}
.q-field {
    min-width:0;
    font-weight:600;
    color:var(--ink);
}
.q-field>span,.q-field legend {
    display:block;
    margin-bottom:.25rem;
}
.q-field b {
    color:var(--pink);
}
.q-field textarea {
    min-height:115px;
    resize:vertical;
}
.q-field small {
    margin-top:.3rem;
    font-weight:400;
}
.q-span-2 {
    grid-column:1/-1;
}
.q-grid fieldset {
    border:0;
    padding:0;
    margin:0;
}
.q-choices {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.65rem;
    margin-top:.5rem;
}
.q-choice {
    position:relative;
}
.q-choice input {
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.q-choice span {
    display:flex;
    align-items:center;
    min-height:48px;
    padding:.7rem .85rem;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fff;
    color:var(--muted);
    font-weight:500;
    cursor:pointer;
    transition:.15s;
}
.q-choice input:checked+span {
    border-color:var(--purple);
    background:var(--lavender);
    color:var(--plum);
    box-shadow:inset 0 0 0 1px var(--purple);
}
.q-choice input:focus-visible+span {
    outline:3px solid rgba(74,43,145,.2);
}
.q-choices.invalid {
    padding:.5rem;
    border:1px solid #a32949;
    border-radius:14px;
}
.q-consent {
    display:flex;
    gap:.8rem;
    align-items:flex-start;
    padding:1rem;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fcfbfe;
    font-weight:500;
}
.q-consent input {
    width:auto;
    flex:0 0 auto;
    margin:.25rem 0 0;
}
.q-consent:has(input:checked) {
    border-color:#b8a9d9;
    background:var(--lavender);
}
.q-notice {
    display:flex;
    gap:.5rem 1rem;
    flex-wrap:wrap;
    padding:1rem 1.1rem;
    margin-top:1rem;
    border-radius:12px;
    background:#eef7f4;
    color:var(--green);
}
.q-notice span {
    color:#48645c;
}
.q-notice.warning {
    background:#fff6e8;
    color:#8b5412;
}
.q-notice.warning span {
    color:#755d40;
}
.q-actions {
    margin-top:2rem;
    padding-top:1.4rem;
    border-top:1px solid var(--border);
}
.q-review {
    display:none;
}
.q-priority {
    display:grid;
}
.q-form :invalid:not(:focus):not(:placeholder-shown) {
    border-color:#cf7692;
}
@media(max-width:900px) {
    .q-intro {
        grid-template-columns:1fr;
    }
    .q-layout {
        grid-template-columns:1fr;
    }
    .q-step-nav {
        position:static;
        display:flex;
        overflow:auto;
        padding-bottom:.4rem;
    }
    .q-step-nav a {
        min-width:max-content;
    }
    .q-step-nav a em {
        display:none;
    }
}
@media(max-width:600px) {
    .q-page-head {
        display:block;
    }
    .q-page-head .pill {
        margin-top:1rem;
    }
    .q-intro {
        padding:1.2rem;
        gap:1rem;
    }
    .q-grid,.q-choices {
        grid-template-columns:1fr;
    }
    .q-span-2 {
        grid-column:auto;
    }
    .q-shell {
        padding:1.2rem;
    }
    .q-progress>div span {
        display:none;
    }
    .q-actions {
        display:grid;
        grid-template-columns:1fr;
    }
    .q-actions .button {
        width:100%;
    }
}
.q-review {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.65rem;
    margin-top:1rem;
}
.q-review a {
    display:grid;
    grid-template-columns:1fr auto;
    gap:.1rem .75rem;
    padding:.8rem .9rem;
    border:1px solid var(--border);
    border-radius:10px;
    background:#fff;
}
.q-review a span {
    color:var(--muted);
    font-size:.82rem;
}
.q-review a em {
    grid-row:1/3;
    grid-column:2;
    font-style:normal;
    align-self:center;
    color:var(--purple);
    font-size:.8rem;
}
@media(max-width:600px) {
    .q-review {
        grid-template-columns:1fr;
    }
}
.membership-tiers {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1.2rem;
}
.tier-column {
    display:flex;
    flex-direction:column;
}
.tier-column h2 {
    margin:.2rem 0;
}
.tier-options {
    display:grid;
    gap:.7rem;
    margin-top:1rem;
}
.tier-options article {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:.8rem;
    padding:.85rem 0;
    border-top:1px solid var(--border);
}
.tier-options article div {
    display:grid;
}
.tier-options article span {
    color:var(--muted);
}
.membership-note {
    text-align:center;
    margin-top:1.5rem;
}
.policy {
    max-width:900px;
}
.policy h2 {
    font-size:1.55rem;
    margin-top:2.3rem;
}
.policy p {
    max-width:800px;
}
.site-footer:has(>div:nth-child(4)) {
    grid-template-columns:2fr 1fr 1fr 1fr;
}
@media(max-width:900px) {
    .membership-tiers {
        grid-template-columns:1fr;
    }
    .site-footer:has(>div:nth-child(4)) {
        grid-template-columns:1fr 1fr;
    }
}
@media(max-width:600px) {
    .site-footer:has(>div:nth-child(4)) {
        grid-template-columns:1fr;
    }
}
/* Admin questionnaire review */
.questionnaire-heading {
    margin-top:2rem;
}
.questionnaire-heading h3 {
    margin-bottom:.2rem;
}
.questionnaire-heading p {
    margin:0;
}
.questionnaire-review {
    display:grid;
    gap:.8rem;
    margin-top:1rem;
}
.questionnaire-review details {
    padding:0;
    border:1px solid var(--border);
    border-radius:14px;
    overflow:hidden;
    background:#fcfbfe;
}
.questionnaire-review summary {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    padding:1rem 1.15rem;
    background:var(--lavender);
    font-weight:700;
    color:var(--plum);
    list-style:none;
}
.questionnaire-review summary::-webkit-details-marker {
    display:none;
}
.questionnaire-review summary:before {
    content:"+";
    width:1.4rem;
    height:1.4rem;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#fff;
    color:var(--purple);
    flex:0 0 auto;
}
.questionnaire-review details[open] summary:before {
    content:"−";
}
.questionnaire-review summary span {
    margin-right:auto;
}
.questionnaire-review summary small {
    font-weight:600;
}
.questionnaire-answers {
    display:block;
    margin:0;
    padding:.3rem 1.15rem;
}
.questionnaire-answer {
    display:grid;
    grid-template-columns:minmax(180px,38%) 1fr;
    gap:1rem;
    padding:.9rem 0;
    border-bottom:1px solid var(--border);
}
.questionnaire-answer:last-child {
    border-bottom:0;
}
.questionnaire-answer dt {
    color:var(--muted);
    font-weight:600;
}
.questionnaire-answer dd {
    font-weight:600;
    min-width:0;
    overflow-wrap:anywhere;
}
.questionnaire-answer ul {
    margin:0;
    padding-left:1.15rem;
}
.questionnaire-answer li+li {
    margin-top:.2rem;
}
.questionnaire-empty {
    padding:0 1.15rem 1rem;
}
@media(max-width:600px) {
    .questionnaire-answer {
        grid-template-columns:1fr;
        gap:.25rem;
    }
    .questionnaire-review summary {
        align-items:flex-start;
    }
    .questionnaire-review summary small {
        white-space:nowrap;
    }
}
/* Admin workflow actions */
.admin-actions {
    padding:0;
    overflow:hidden;
}
.admin-actions-head {
    padding:1.5rem 1.5rem 1rem;
    background:linear-gradient(135deg,#fff,var(--lavender));
}
.admin-actions-head h2 {
    margin:.2rem 0;
}
.admin-actions-head p:last-child {
    margin:.4rem 0 0;
}
.admin-action-group {
    padding:1.15rem 1.5rem;
    border-top:1px solid var(--border);
}
.admin-action-group>div:first-child {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.7rem;
}
.admin-action-group>p {
    font-size:.9rem;
    margin:.55rem 0;
}
.admin-action-group form {
    display:grid;
    gap:.7rem;
    margin-top:.75rem;
}
.admin-action-group label {
    font-size:.85rem;
    font-weight:600;
}
.admin-action-group input,.admin-action-group textarea {
    margin-top:.3rem;
}
.admin-action-group .link-button {
    padding:.35rem 0;
    text-align:left;
}
.final-actions {
    display:grid;
    gap:.7rem;
    background:#fcfbfe;
}
.final-actions form {
    margin:0;
}
.event-edit-form {
    min-width:360px;
}
.verification-report {
    margin-bottom:1.4rem;
}
.meeting-complete-form {
    display:flex;
    align-items:end;
    gap:.6rem;
}
.meeting-complete-form input {
    margin:0;
}
@media(max-width:600px) {
    .admin-action-group,.admin-actions-head {
        padding-inline:1rem;
    }
    .event-edit-form {
        min-width:280px;
    }
    .meeting-complete-form {
        display:grid;
    }
}


/* =========================================================
   LAYOUT SYSTEM — 1260px CONTENT WIDTH
   Content aligns to a shared 1260px box.
   Horizontal padding is added only where it is needed.
   ========================================================= */

:root {
    --content-width: 1260px;
    --page-gutter: 1rem;
}

/* Prevent padding and borders from expanding layout widths. */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* Main public-site hero */
.hero {
    width: min(100%, var(--content-width));
    max-width: var(--content-width);
    margin-inline: auto;
}

/* Keep hero copy flush with the content box; no extra right padding. */
.hero-copy {
    min-width: 0;
    padding: 7rem 0 5rem 0;
}

/* Standard content sections */
.section {
    width: min(100%, var(--content-width));
    max-width: var(--content-width);
    margin-inline: auto;
    padding: 6rem 0;
}

/* Compact sections retain their smaller vertical spacing. */
.section.compact {
    padding: 3rem 0;
}

/* Tinted sections stay inside the same 1260px box. */
.tinted {
    width: min(100%, var(--content-width));
    max-width: var(--content-width);
    margin-inline: auto;
    padding: 6rem 0;
}

/* Inner content blocks should not create accidental horizontal overflow. */
.section > *,
.hero-copy > *,
.app-content > *,
.q-shell > * {
    min-width: 0;
}

/* Page hero content uses the same 1260px layout width. */
.page-hero {
    width: min(100%, var(--content-width));
    max-width: var(--content-width);
    margin-inline: auto;
    padding: 6rem 0;
}

/* Footer content aligns to the same box. */
.site-footer {
    width: min(100%, var(--content-width));
    max-width: var(--content-width);
    margin-inline: auto;
    padding: 4rem 0;
}

/* Dashboard and portal content use the same maximum width. */
.app-content,
.app-content.wide {
    width: min(100%, var(--content-width));
    max-width: var(--content-width);
    margin-inline: auto;
    padding: 3rem 0;
}

/* Keep page-level layouts within the viewport. */
.app-main {
    min-width: 0;
}

/* Responsive gutters are added only when the viewport is narrower
   than the 1260px content box. */
@media (max-width: 1292px) {
    .hero,
    .section,
    .page-hero,
    .site-footer,
    .app-content,
    .app-content.wide {
        width: calc(100% - 2rem);
    }

    .tinted {
        width: calc(100% - 2rem);
    }
}

@media (max-width: 900px) {
    .hero-copy {
        padding: 5rem 0;
    }

    .section,
    .tinted {
        padding-block: 4rem;
    }

    .page-hero {
        padding-block: 4rem;
    }

    .site-footer {
        padding-block: 3rem;
    }

    .app-content,
    .app-content.wide {
        padding-block: 2rem;
    }
}

@media (max-width: 600px) {
    .hero,
    .section,
    .tinted,
    .page-hero,
    .site-footer,
    .app-content,
    .app-content.wide {
        width: calc(100% - 2rem);
    }

    .hero-copy {
        padding: 3rem 0;
    }

    .section,
    .tinted,
    .page-hero {
        padding-block: 3rem;
    }

    .site-footer {
        padding-block: 3rem;
    }

    .app-content,
    .app-content.wide {
        padding-block: 2rem;
    }
}


/* Footer: full-width background with 1260px-aligned inner content */
.site-footer {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding: 4rem max(1rem, calc((100% - var(--content-width)) / 2));
}

/* Preserve footer layout on smaller screens */
@media (max-width: 900px) {
    .site-footer {
        padding: 3rem 1rem;
    }
}

@media (max-width: 600px) {
    .site-footer {
        padding: 3rem 1rem;
    }
}
