/*
 * Marketing site and dashboard styles. Neutral palette until the brand identity is decided (PRD D-07).
 * RTL rule: only logical properties (margin-inline, padding-block, inset-inline…), never left/right.
 */

:root {
    --color-bg: #faf8f5;
    --color-surface: #ffffff;
    --color-text: #1f1d1a;
    --color-text-muted: #5f5a52;
    --color-border: #e4ded4;
    --color-accent: #7a5c2e;
    --color-accent-hover: #5f4722;
    --color-accent-contrast: #ffffff;
    --color-danger: #a12a2a;
    --color-success: #2f6b3a;
    --color-focus: #2b5fd9;

    --font-latin: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-arabic: "Segoe UI", Tahoma, "Noto Sans Arabic", "Geeza Pro", sans-serif;

    --radius: 12px;
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 1rem;
    --space-4: 1.5rem;
    --space-5: 2.5rem;
    --container: 72rem;
    --container-wide: 90rem;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    min-block-size: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-latin);
    font-size: 1rem;
    line-height: 1.6;
}

html[lang="ar"] body {
    font-family: var(--font-arabic);
    line-height: 1.8;
}

a {
    color: var(--color-accent);
}

a:hover {
    color: var(--color-accent-hover);
}

:focus-visible {
    outline: 3px solid var(--color-focus);
    outline-offset: 2px;
}

.container {
    inline-size: 100%;
    max-inline-size: var(--container);
    margin-inline: auto;
    padding-inline: var(--space-3);
}

main {
    flex: 1;
    padding-block: var(--space-5);
}

.muted {
    color: var(--color-text-muted);
}

.skip-link {
    position: absolute;
    inset-inline-start: var(--space-3);
    inset-block-start: -10rem;
    padding: var(--space-2) var(--space-3);
    background: var(--color-surface);
    border-radius: var(--radius);
    z-index: 10;
}

.skip-link:focus {
    inset-block-start: var(--space-2);
}

/* Header */

.site-header {
    background: var(--color-surface);
    border-block-end: 1px solid var(--color-border);
}

.site-header__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding-block: var(--space-3);
}

.logotype {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-2);
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--color-text);
    text-decoration: none;
}

.logotype [lang="ar"] {
    font-family: var(--font-arabic);
}

.logotype__sep {
    color: var(--color-border);
    font-weight: 400;
}

.site-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
}

.inline-form {
    display: inline;
    margin: 0;
}

.link-button {
    padding: 0;
    border: 0;
    background: none;
    color: var(--color-accent);
    font: inherit;
    text-decoration: underline;
    cursor: pointer;
}

/* Buttons */

.button {
    display: inline-block;
    padding: var(--space-2) var(--space-4);
    border: 0;
    border-radius: 999px;
    background: var(--color-accent);
    color: var(--color-accent-contrast);
    font: inherit;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

.button:hover {
    background: var(--color-accent-hover);
    color: var(--color-accent-contrast);
}

.button--small {
    padding: var(--space-1) var(--space-3);
}

.button--block {
    display: block;
    inline-size: 100%;
}

/* Home */

.hero {
    max-inline-size: 40rem;
    margin-inline: auto;
    text-align: center;
}

.hero h1 {
    font-size: clamp(1.75rem, 5vw, 2.75rem);
    line-height: 1.2;
    margin-block: 0 var(--space-3);
}

.hero__tagline {
    font-size: 1.25rem;
}

/* Forms */

.card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: var(--space-4);
}

.auth-card {
    max-inline-size: 26rem;
    margin-inline: auto;
}

.auth-card h1 {
    margin-block-start: 0;
    font-size: 1.5rem;
}

.field {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    margin-block-end: var(--space-3);
}

.field--checkbox {
    flex-direction: row;
    align-items: center;
    gap: var(--space-2);
}

.field input:not([type="checkbox"]):not([type="radio"]),
.field textarea,
.field select {
    inline-size: 100%;
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: 8px;
    background: var(--color-surface);
    color: var(--color-text);
    font: inherit;
}

/* Keep LTR inputs (email, password) aligned with the reading direction of the page. */
html[dir="rtl"] .field input[dir="ltr"] {
    text-align: end;
}

.field__error,
.form-errors {
    color: var(--color-danger);
    font-size: 0.9375rem;
}

.form-errors ul {
    margin: 0 0 var(--space-3);
    padding-inline-start: var(--space-4);
}

.form-errors.validation-summary-valid {
    display: none;
}

/* Footer */

.site-footer {
    border-block-start: 1px solid var(--color-border);
    padding-block: var(--space-3);
    color: var(--color-text-muted);
    font-size: 0.875rem;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ---------- app (dashboard, editor) ---------- */

.container--wide {
    max-inline-size: var(--container-wide);
}

.visually-hidden {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.lead {
    font-size: 1.125rem;
}

.page-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-block-end: var(--space-4);
}

.page-head h1 {
    margin: 0;
    font-size: 1.75rem;
    inline-size: 100%;
}

.page-head:has(.button) h1 {
    inline-size: auto;
}

.notice {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    margin-block-end: var(--space-4);
    border: 1px solid var(--color-accent);
    border-radius: var(--radius);
    background: #fdf6e8;
}

.button--secondary {
    background: var(--color-surface);
    color: var(--color-accent);
    box-shadow: inset 0 0 0 1.5px var(--color-accent);
}

.button--secondary:hover {
    background: #fdf6e8;
    color: var(--color-accent-hover);
}

.link-button--danger {
    color: var(--color-danger);
}

.external-logins form {
    margin-block-end: var(--space-2);
}

.separator {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--color-text-muted);
    font-size: 0.875rem;
}

.separator::before,
.separator::after {
    content: "";
    flex: 1;
    border-block-start: 1px solid var(--color-border);
}

.empty-state {
    text-align: center;
}

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

.choice-grid {
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    margin-block-end: var(--space-4);
}

.event-card {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-3);
}

.event-card h2 {
    margin: var(--space-1) 0;
    font-size: 1.25rem;
}

.event-card p {
    margin: 0;
}

.event-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.badge {
    display: inline-block;
    padding: 0 var(--space-2);
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 700;
    background: var(--color-border);
}

.badge--published {
    background: #dcefdf;
    color: var(--color-success);
}

.choice {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2);
    color: var(--color-text);
    text-decoration: none;
}

a.choice:hover {
    border-color: var(--color-accent);
}

.choice--selected {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 2px var(--color-accent);
}

.choice form {
    inline-size: 100%;
    margin-block-start: auto;
}

.theme-swatch {
    inline-size: 1.25rem;
    block-size: 1.25rem;
    flex: none;
}

.theme-swatch--large {
    inline-size: 3rem;
    block-size: 3rem;
}

/* ---------- publication, orders, admin ---------- */

.currency-switch,
.admin-nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-block-end: var(--space-4);
}

.chip-link {
    padding: var(--space-1) var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface);
    color: var(--color-text);
    text-decoration: none;
}

.chip-link[aria-current="true"] {
    background: var(--color-text);
    color: var(--color-surface);
}

.publish-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    max-inline-size: 48rem;
}

.publish-form .field input:not([type="radio"]),
.promo-form .field input,
.promo-form .field select,
.card .field input {
    inline-size: 100%;
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: 8px;
    font: inherit;
}

.plans {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: var(--space-3);
    margin: 0;
    padding: 0;
    border: 0;
}

.plan {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    cursor: pointer;
}

.plan:has(input:checked) {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 2px var(--color-accent);
}

.plan--disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.plan__name {
    font-size: 1.25rem;
}

.plan__price {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-accent);
}

.plan__features {
    margin: 0;
    padding-inline-start: var(--space-4);
    color: var(--color-text-muted);
    font-size: 0.9375rem;
}

.inline-field {
    display: flex;
    gap: var(--space-2);
}

.inline-field input {
    flex: 1;
}

.notice-inline {
    margin-block-start: var(--space-2);
    font-size: 0.9375rem;
}

.order__summary {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: var(--space-2) var(--space-4);
    margin: 0 0 var(--space-4);
}

.order__summary dt {
    color: var(--color-text-muted);
}

.order__summary dd {
    margin: 0;
}

.order__instructions {
    padding: var(--space-3);
    border-radius: 8px;
    background: var(--color-bg);
    white-space: pre-line;
}

.badge--pending {
    background: #fdf0d5;
    color: #7a4b00;
}

.badge--paid {
    background: #dcefdf;
    color: var(--color-success);
}

.badge--ended,
.badge--refunded,
.badge--cancelled,
.badge--unpublished {
    background: var(--color-border);
}

.stats {
    list-style: none;
    margin: 0 0 var(--space-4);
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: var(--space-3);
}

.stats li {
    display: flex;
    flex-direction: column;
}

.stats b {
    font-size: 1.5rem;
}

.promo-form {
    margin-block-end: var(--space-4);
}

.table-wrap {
    overflow-x: auto;
}

.table {
    inline-size: 100%;
    border-collapse: collapse;
    background: var(--color-surface);
    font-size: 0.9375rem;
}

.table th,
.table td {
    padding: var(--space-2) var(--space-3);
    border-block-end: 1px solid var(--color-border);
    text-align: start;
    vertical-align: top;
}

fieldset.field {
    margin: 0;
    padding: 0;
    border: 0;
}

.plan input[type="radio"] {
    align-self: flex-start;
    margin: 0;
}

.publish-form .check {
    display: flex;
    align-items: center;
    gap: var(--space-2);
}

/* ---------- guests & RSVP (organizer) ---------- */

.guests-tools {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    gap: var(--space-3);
    margin-block-end: var(--space-4);
}

.guests-tools form {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.guests-tools h2 {
    margin: 0;
    font-size: 1.125rem;
}

.guests-tools textarea,
.guest__edit input {
    inline-size: 100%;
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: 8px;
    font: inherit;
}

.guest-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--space-2);
}

.guest {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3);
}

.guest__main {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.guest__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.guest__edit summary {
    cursor: pointer;
    color: var(--color-accent);
}

.guest__edit form {
    display: grid;
    gap: var(--space-2);
    margin-block-start: var(--space-2);
}

.badge--guest-sent,
.badge--guest-opened {
    background: #e6eefc;
    color: #24479a;
}

.badge--guest-yes,
.badge--answer-attending {
    background: #dcefdf;
    color: var(--color-success);
}

.badge--guest-no,
.badge--answer-declined {
    background: #f6e3e3;
    color: var(--color-danger);
}

.danger-zone {
    margin-block-start: var(--space-5);
    padding-block-start: var(--space-3);
    border-block-start: 1px solid var(--color-border);
}

.guest__main .badge {
    align-self: flex-start;
}

.rsvp-breakdown {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
    gap: var(--space-3);
    margin-block-end: var(--space-4);
}

.rsvp-breakdown h2 {
    margin-block-start: 0;
    font-size: 1.25rem;
}

/* ---------- marketing site (M5) ---------- */

.site-nav__page {
    display: none;
    color: var(--color-text);
    text-decoration: none;
}

.site-nav__page[aria-current="page"] {
    text-decoration: underline;
    text-underline-offset: 0.3em;
}

@media (min-width: 52rem) {
    .site-nav__page {
        display: inline;
    }
}

.site-footer__inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--space-3);
}

.site-footer__links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-3);
}

.site-footer__links a {
    color: var(--color-text-muted);
}

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

.section h2,
.page-intro h1 {
    font-size: clamp(1.4rem, 3.5vw, 2rem);
    line-height: 1.25;
    margin-block: 0 var(--space-3);
}

.section__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-2) var(--space-3);
}

.page-intro {
    margin-block: var(--space-4);
    max-inline-size: 44rem;
}

.eyebrow {
    display: inline-block;
    margin: 0 0 var(--space-3);
    padding: var(--space-1) var(--space-3);
    border-radius: 999px;
    background: #f1e8d8;
    color: var(--color-accent-hover);
    font-weight: 700;
    font-size: 0.875rem;
}

.hero--home {
    display: grid;
    gap: var(--space-4);
    align-items: center;
    max-inline-size: none;
    margin-block: var(--space-4);
    text-align: start;
}

.hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.hero__points,
.ticks,
.crosses {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--space-2);
}

.hero__points li,
.ticks li,
.crosses li {
    padding-inline-start: 1.75rem;
    background: url("/img/check.svg") no-repeat 0 0.2em / 1.2rem;
}

.crosses li {
    background-image: url("/img/cross.svg");
}

[dir="rtl"] .hero__points li,
[dir="rtl"] .ticks li,
[dir="rtl"] .crosses li {
    background-position: 100% 0.2em;
}

.phone {
    justify-self: center;
    inline-size: min(100%, 18rem);
    aspect-ratio: 9 / 16;
    border: 10px solid #1f1d1a;
    border-radius: 2.25rem;
    overflow: hidden;
    background: #1f1d1a;
    box-shadow: 0 1.5rem 3rem rgb(31 29 26 / 18%);
}

.phone img,
.phone iframe {
    display: block;
    inline-size: 100%;
    block-size: 100%;
    border: 0;
    object-fit: cover;
}

@media (min-width: 52rem) {
    .hero--home {
        grid-template-columns: 1.3fr 1fr;
        gap: var(--space-5);
    }

    .demo {
        display: grid;
        grid-template-columns: 1.3fr 1fr;
        gap: var(--space-5);
        align-items: center;
    }
}

.compare__grid,
.steps__list,
.plan-cards,
.theme-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: var(--space-3);
}

.compare__grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
}

.compare__grid h3,
.steps__list b {
    display: block;
    margin-block: 0 var(--space-2);
    font-size: 1.125rem;
}

.compare__us {
    border-color: var(--color-accent);
}

.compare__them {
    color: var(--color-text-muted);
}

.steps__list {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}

.steps__list p {
    margin: 0;
    color: var(--color-text-muted);
}

.demo .phone {
    inline-size: min(100%, 20rem);
}

.theme-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
}

.theme-card {
    display: flex;
    flex-direction: column;
    padding: 0;
    overflow: hidden;
}

.theme-card__preview {
    position: relative;
    display: block;
    aspect-ratio: 3 / 4;
    background: var(--color-border);
    overflow: hidden;
}

.theme-card__preview img {
    display: block;
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
    object-position: top;
}

.theme-card__swatch {
    display: block;
    inline-size: 40%;
    margin: 30% auto 0;
}

.theme-card__preview .badge {
    position: absolute;
    inset-block-start: var(--space-2);
    inset-inline-start: var(--space-2);
}

.theme-card__body {
    padding: var(--space-3);
}

.theme-card__body h3 {
    margin: 0;
    font-size: 1.125rem;
}

.theme-card__body p {
    margin-block: var(--space-1) var(--space-3);
}

.theme-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.badge--new {
    background: var(--color-accent);
    color: var(--color-accent-contrast);
}

.badge--soon {
    background: #ece6f5;
    color: #4a3a73;
    font-weight: 600;
}

.plan-cards {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
    max-inline-size: 48rem;
}

.plan-card {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.plan-card h3 {
    margin: 0;
    font-size: 1.25rem;
}

.plan-card__price {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 700;
}

.plan-card .plan__features {
    flex: 1;
    margin-block: var(--space-2);
}

.plan-card--featured {
    border: 2px solid var(--color-accent);
}

.plan-cards__note {
    margin-block-start: var(--space-3);
}

.compare-table th[scope="row"] {
    font-weight: 400;
}

.compare-table td {
    text-align: center;
}

.icon {
    inline-size: 1.25rem;
    block-size: 1.25rem;
    vertical-align: middle;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.icon--yes {
    color: var(--color-success);
}

.faq {
    display: grid;
    gap: var(--space-2);
    max-inline-size: 48rem;
}

.faq__item {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: var(--space-3);
}

.faq__item summary {
    font-weight: 600;
    cursor: pointer;
}

.faq__item p {
    margin-block: var(--space-2) 0;
    color: var(--color-text-muted);
}

.faq__more {
    margin-block-start: var(--space-4);
}

.cta {
    padding: var(--space-5) var(--space-3);
    border-radius: var(--radius);
    background: #f1e8d8;
    text-align: center;
}

.contact {
    display: grid;
    gap: var(--space-3);
    align-items: start;
}

@media (min-width: 52rem) {
    .contact {
        grid-template-columns: 2fr 1fr;
    }
}

.contact__direct h2 {
    margin-block-start: 0;
    font-size: 1.125rem;
}

.notice--success {
    border-color: var(--color-success);
}

.legal {
    max-inline-size: 48rem;
}

/* ---------- back-office (M5) ---------- */

.admin-nav a[aria-current="page"] {
    font-weight: 700;
    text-decoration: none;
}

.admin-search {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: var(--space-2);
    margin-block-end: var(--space-3);
}

.admin-search .field {
    flex: 1 1 18rem;
    margin: 0;
}

.admin-todo {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-block: var(--space-3);
}

.admin-todo .card {
    flex: 1 1 14rem;
    color: var(--color-text);
    text-decoration: none;
}

.admin-todo b {
    font-size: 1.5rem;
}

.admin-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: start;
}

.moderate summary {
    cursor: pointer;
    color: var(--color-danger);
}

.button--danger {
    background: var(--color-danger);
}

.badge--moderated {
    background: #f6dcdc;
    color: var(--color-danger);
}

.notice-inline--danger {
    color: var(--color-danger);
}

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

.message-list p {
    margin-block: 0 var(--space-2);
}

.message-list__contact {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
}

.message-list__body {
    white-space: pre-line;
}

.verse-form {
    margin-block-end: var(--space-3);
}

.verse-form h2,
.theme-admin h2 {
    margin-block-start: 0;
    font-size: 1.125rem;
}

.verse-form--inactive,
.theme-admin--inactive {
    opacity: 0.7;
}

.field-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
    gap: var(--space-3);
}

.check {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-block: var(--space-2);
}

.check-group {
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    margin-block: var(--space-3);
}

.choice-grid--wide {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
}

.two-factor__qr {
    display: block;
    margin-block: var(--space-2);
    background: #fff;
}

.two-factor__key {
    word-break: break-all;
}

.two-factor__steps {
    padding-inline-start: var(--space-4);
}

.recovery-codes {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-1) var(--space-3);
    padding: var(--space-3);
    list-style: none;
    background: var(--color-bg);
    border-radius: var(--radius);
}

/* Honeypot field: invisible to people and screen readers, filled by robots. */
.rsvp-hp {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
    clip-path: inset(50%);
}
