:root {
    --site-ink: #2d2118;
    --site-muted: #6f6255;
    --site-paper: #fffdf8;
    --site-canvas: #f4efe5;
    --site-border: #ded2c0;
    --site-gold: #a97825;
    --site-gold-dark: #765119;
    --bs-primary: #765119;
    --bs-primary-rgb: 118, 81, 25;
    --bs-link-color: #765119;
    --bs-link-hover-color: #50350f;
    --bs-body-color: var(--site-ink);
    --bs-body-bg: var(--site-canvas);
    --bs-border-color: var(--site-border);
}

body {
    min-height: 100vh;
    background:
        radial-gradient(circle at top, rgba(213, 182, 124, .22), transparent 34rem),
        var(--site-canvas);
}

.site-navbar {
    border-bottom: 1px solid rgba(118, 81, 25, .22);
    background: rgba(255, 253, 248, .96);
    box-shadow: 0 .25rem 1rem rgba(62, 42, 18, .08);
    backdrop-filter: blur(12px);
}

.site-navbar .navbar-brand {
    color: var(--site-ink);
    font-weight: 700;
}

.site-navbar .navbar-brand:hover,
.site-navbar .navbar-brand:focus {
    color: var(--site-gold-dark);
}

.site-brand-logo {
    width: 3rem;
    height: 3rem;
    object-fit: contain;
}

.site-navbar .nav-link {
    color: #4f4236;
    font-weight: 600;
}

.site-navbar .nav-link.active,
.site-navbar .nav-link:hover,
.site-navbar .nav-link:focus {
    color: var(--site-gold-dark);
}

.site-main {
    min-height: calc(100vh - 10rem);
}

.site-hero {
    max-width: 56rem;
    margin-inline: auto;
    text-align: center;
}

.site-hero-logo {
    width: clamp(7rem, 18vw, 11rem);
    height: auto;
}

.site-hero-title {
    color: var(--site-ink);
    font-size: clamp(2rem, 5vw, 3.7rem);
    line-height: 1.16;
}

.site-card {
    border: 1px solid var(--site-border);
    border-radius: 1.25rem;
    background: var(--site-paper);
    box-shadow: 0 1rem 2.5rem rgba(62, 42, 18, .09);
}

.site-card h2,
.site-card h3 {
    color: var(--site-ink);
}

.site-contact-list {
    display: grid;
    gap: 1rem;
    margin: 0;
}

.site-contact-list dt {
    color: var(--site-muted);
    font-size: .8rem;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.site-contact-list dd {
    margin: .15rem 0 0;
}

.site-map {
    min-height: 24rem;
    overflow: hidden;
    border: 1px solid var(--site-border);
    border-radius: 1rem;
    background: #e8e0d3;
}

.site-map iframe {
    display: block;
    width: 100%;
    min-height: 24rem;
    border: 0;
}

.site-policy {
    max-width: 54rem;
    margin-inline: auto;
}

.site-policy h2 {
    margin-top: 2rem;
    font-size: 1.35rem;
}

.site-policy p,
.site-policy address {
    color: #4e443b;
    line-height: 1.75;
}

.site-footer {
    color: var(--site-muted);
    font-size: .9rem;
}

.site-footer a {
    color: inherit;
}

.btn-primary {
    --bs-btn-bg: var(--site-gold-dark);
    --bs-btn-border-color: var(--site-gold-dark);
    --bs-btn-hover-bg: #50350f;
    --bs-btn-hover-border-color: #50350f;
    --bs-btn-active-bg: #3f290b;
    --bs-btn-active-border-color: #3f290b;
}

@media (max-width: 991.98px) {
    .site-navbar .navbar-collapse {
        padding: 1rem 0 .25rem;
    }

    .site-navbar .btn {
        margin-top: .5rem;
        width: 100%;
    }
}

.auth-page {
    display: flex;
    min-height: 100vh;
    align-items: center;
    padding-block: 2rem;
}

.auth-card {
    width: min(100% - 2rem, 30rem);
    margin-inline: auto;
}

.auth-logo {
    width: 6rem;
    height: 6rem;
    object-fit: contain;
}

.office-navbar {
    --bs-navbar-color: rgba(255, 255, 255, .82);
    --bs-navbar-hover-color: #fff;
    --bs-navbar-active-color: #fff;
    --bs-navbar-brand-color: #fff;
    --bs-navbar-brand-hover-color: #fff;
    background: #33261d;
    box-shadow: 0 .35rem 1rem rgba(45, 33, 24, .16);
}

.office-navbar .dropdown-menu {
    --bs-dropdown-link-active-bg: var(--site-gold-dark);
}

.office-navbar .navbar-toggler {
    border-color: rgba(255, 255, 255, .35);
}

.office-navbar .navbar-toggler-icon {
    filter: invert(1);
}

.office-shell {
    width: min(100% - 2rem, 100rem);
    margin-inline: auto;
}

.office-page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.office-page-header p {
    color: var(--site-muted);
}

.office-date-panel {
    min-width: 16rem;
    text-align: right;
}

.office-clock {
    display: block;
    color: var(--site-gold-dark);
    font-size: 2rem;
    font-weight: 700;
}

.office-dashboard-card {
    height: 100%;
    border: 1px solid var(--site-border);
    border-radius: 1rem;
    background: var(--site-paper);
    box-shadow: 0 .5rem 1.4rem rgba(62, 42, 18, .07);
    transition: transform .15s ease, box-shadow .15s ease;
}

.office-dashboard-card:hover,
.office-dashboard-card:focus-within {
    transform: translateY(-2px);
    box-shadow: 0 .8rem 1.7rem rgba(62, 42, 18, .12);
}

.office-dashboard-card a {
    color: var(--site-ink);
    font-size: 1.05rem;
    font-weight: 700;
    text-decoration: none;
}

@media (max-width: 767.98px) {
    .office-page-header {
        display: block;
    }

    .office-date-panel {
        margin-top: 1rem;
        text-align: left;
    }
}

.home-welcome {
    max-width: 72rem;
    margin-inline: auto;
    text-align: center;
}

.home-welcome-title {
    font-size: clamp(2.2rem, 7vw, 5rem);
    line-height: 1;
}

.home-date-panel {
    display: inline-grid;
    gap: .2rem;
    min-width: min(100%, 24rem);
    padding: 1rem 1.5rem;
    border: 1px solid var(--site-border);
    border-radius: 1rem;
    background: rgba(255, 253, 248, .82);
}

.home-live-clock {
    color: var(--site-gold-dark);
    font-size: clamp(1.8rem, 5vw, 2.8rem);
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.home-zmanim-list {
    margin: 0;
}

.home-zmanim-list > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem 0;
    border-bottom: 1px solid rgba(118, 81, 25, .14);
}

.home-zmanim-list > div:last-child {
    border-bottom: 0;
}

.home-zmanim-list dt {
    font-weight: 600;
}

.home-zmanim-list dd {
    flex: 0 0 auto;
    margin: 0;
    color: var(--site-gold-dark);
    font-weight: 700;
}

.home-zman-note {
    color: var(--site-muted);
    font-size: .78rem;
    font-weight: 400;
}

.home-campaign-card {
    border: 1px solid var(--site-border);
    border-radius: .9rem;
    background: #fff;
}

.office-legacy-page {
    background:
        radial-gradient(circle at top, rgba(213, 182, 124, .15), transparent 34rem),
        var(--site-canvas);
}

.office-legacy-page > .container,
.office-legacy-page > main.container {
    margin-top: 2rem;
    margin-bottom: 3rem;
}

.office-legacy-page .card {
    border: 1px solid var(--site-border);
    border-radius: 1rem;
    background: var(--site-paper);
    box-shadow: 0 .6rem 1.7rem rgba(62, 42, 18, .08);
}

.office-legacy-page .card h1:first-child,
.office-legacy-page .settings-heading h1 {
    color: var(--site-ink);
    font-weight: 700;
}

.office-legacy-page .form-control,
.office-legacy-page .form-select {
    border-color: #cfc1ae;
    background-color: #fff;
}

.office-legacy-page .form-control:focus,
.office-legacy-page .form-select:focus {
    border-color: var(--site-gold);
    box-shadow: 0 0 0 .2rem rgba(169, 120, 37, .18);
}

.office-legacy-page .form-check-input:checked {
    border-color: var(--site-gold-dark);
    background-color: var(--site-gold-dark);
}

.office-legacy-page .table {
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(169, 120, 37, .055);
    --bs-table-hover-bg: rgba(169, 120, 37, .095);
    margin-bottom: 0;
}

.office-legacy-page .table th {
    color: #554332;
    font-size: .8rem;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.office-legacy-page .settings-table-wrap,
.office-legacy-page .report-table-wrap,
.office-legacy-page .payment-table-wrap {
    border: 1px solid var(--site-border);
    border-radius: .75rem;
    background: #fff;
}

.office-legacy-page .btn {
    text-decoration: none;
}

.special-poster-settings {
    padding: 1.25rem;
}

.special-poster-holiday {
    display: grid;
    grid-template-columns: auto auto 1fr auto;
    align-items: baseline;
    gap: .35rem 1rem;
    margin-top: 1rem;
    padding: 1rem 1.15rem;
    border: 1px solid var(--site-border);
    border-radius: .8rem;
    background: rgba(255, 250, 239, .82);
}

.special-poster-holiday strong {
    color: var(--site-gold-dark);
    font-size: 1.4rem;
}

.special-poster-label {
    color: var(--site-muted);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.special-poster-current {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(12rem, 20rem);
    gap: 1.25rem;
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid #b9d2b8;
    border-radius: .8rem;
    background: #f2f8ef;
}

.special-poster-current p {
    margin: .45rem 0 .8rem;
    color: var(--site-muted);
}

.special-poster-current img,
.special-poster-current object {
    display: block;
    width: 100%;
    max-height: 18rem;
    border: 1px solid var(--site-border);
    border-radius: .55rem;
    object-fit: contain;
    background: #fff;
}

.special-poster-current object {
    height: 18rem;
}

.special-poster-form {
    display: grid;
    grid-template-columns: minmax(11rem, .55fr) minmax(18rem, 1.45fr) auto;
    align-items: end;
    gap: 1rem;
    margin-top: 1rem;
}

.special-poster-form label {
    display: grid;
    gap: .35rem;
    min-width: 0;
    color: #57483a;
    font-size: .86rem;
    font-weight: 700;
}

.special-poster-form input[type="number"] {
    width: 8rem;
}

.special-poster-file-field input {
    width: 100%;
    max-width: none;
}

.special-poster-remove {
    margin-top: .75rem;
    text-align: right;
}

@media (max-width: 900px) {
    .special-poster-holiday,
    .special-poster-current,
    .special-poster-form {
        grid-template-columns: 1fr;
    }

    .special-poster-form button {
        justify-self: start;
    }

    .special-poster-current img,
    .special-poster-current object {
        max-width: 22rem;
    }
}

/* Homepage: preserve the warm, traditional shul presentation within the shared shell. */
.home-page {
    background: #2b170c;
}

.home-page .site-navbar {
    --bs-navbar-color: rgba(255, 247, 225, .84);
    --bs-navbar-hover-color: #fff8df;
    --bs-navbar-active-color: #f2c96e;
    --bs-navbar-brand-color: #fff8df;
    --bs-navbar-brand-hover-color: #f2c96e;
    border-bottom-color: rgba(226, 183, 92, .58);
    background:
        linear-gradient(90deg, rgba(255, 215, 130, .08), transparent 28% 72%, rgba(255, 215, 130, .08)),
        linear-gradient(180deg, #4d2a16, #2e170c);
    box-shadow: 0 .45rem 1.4rem rgba(28, 12, 4, .35);
    backdrop-filter: none;
}

.home-page .site-navbar .navbar-brand,
.home-page .site-navbar .nav-link {
    color: rgba(255, 247, 225, .88);
}

.home-page .site-navbar .nav-link.active,
.home-page .site-navbar .nav-link:hover,
.home-page .site-navbar .nav-link:focus,
.home-page .site-navbar .navbar-brand:hover,
.home-page .site-navbar .navbar-brand:focus {
    color: #f2c96e;
}

.home-page .site-navbar .navbar-toggler {
    border-color: rgba(255, 247, 225, .46);
}

.home-page .site-navbar .navbar-toggler-icon {
    filter: invert(1) sepia(.2);
}

.home-page .site-navbar .btn-primary {
    --bs-btn-bg: #a97825;
    --bs-btn-border-color: #d3a750;
    --bs-btn-hover-bg: #c18c31;
    --bs-btn-hover-border-color: #f0cd7b;
}

.home-shell {
    min-height: calc(100vh - 5rem);
    padding: clamp(.75rem, 1.8vw, 1.65rem);
    background:
        linear-gradient(90deg, #211006, #8b542c 2.4%, #3b2113 4.5%, transparent 5.2% 94.8%, #3b2113 95.5%, #8b542c 97.6%, #211006),
        linear-gradient(180deg, #211006, #8b542c 2.4%, #3b2113 4.5%, transparent 5.2% 94.8%, #3b2113 95.5%, #8b542c 97.6%, #211006),
        #2b170c;
}

.home-hero {
    position: relative;
    isolation: isolate;
    width: min(100%, 92rem);
    min-height: calc(100vh - 8rem);
    margin-inline: auto;
    overflow: hidden;
    padding: 0 clamp(5.25rem, 7.5vw, 7.5rem) 2.4rem;
    border: 3px solid rgba(178, 124, 43, .82);
    border-radius: 1.9rem;
    background:
        radial-gradient(ellipse at 15% 12%, rgba(255, 255, 255, .94), transparent 29%),
        linear-gradient(123deg, transparent 0 16%, rgba(196, 154, 69, .22) 16.25%, transparent 17.2% 40%, rgba(219, 184, 89, .17) 40.3%, transparent 41.3%),
        linear-gradient(47deg, transparent 0 36%, rgba(176, 135, 50, .14) 36.2%, transparent 37.4% 70%, rgba(232, 200, 113, .17) 70.3%, transparent 71%),
        linear-gradient(145deg, #fffefa, #fff7e5 55%, #f4e2bc);
    box-shadow:
        inset 0 0 0 8px rgba(255, 244, 209, .48),
        inset 0 0 4rem rgba(116, 70, 31, .2),
        0 1.2rem 3.2rem rgba(20, 8, 2, .42);
}

.home-hero::before,
.home-hero::after {
    position: absolute;
    z-index: -1;
    top: 8.7rem;
    bottom: 1.5rem;
    width: 3.65rem;
    border: 2px solid rgba(219, 176, 77, .9);
    border-radius: 1.75rem .45rem .45rem 1.75rem;
    background:
        linear-gradient(90deg, rgba(255, 226, 134, .48), transparent 17%, rgba(255, 226, 134, .34) 50%, transparent 78%, rgba(55, 26, 10, .55)),
        repeating-linear-gradient(84deg, rgba(255, 255, 255, .08) 0 7px, rgba(36, 18, 8, .1) 7px 15px),
        radial-gradient(ellipse at 38% 18%, rgba(255, 224, 141, .35), transparent 24%),
        linear-gradient(90deg, #2d1609 0%, #5c2e14 18%, #9a5b29 34%, #c78945 50%, #7a3d1d 68%, #35190b 100%);
    box-shadow:
        inset 11px 0 18px rgba(255, 255, 255, .18),
        inset -13px 0 22px rgba(0, 0, 0, .42),
        0 0 0 6px rgba(120, 70, 23, .22),
        0 14px 28px rgba(42, 22, 11, .36);
    content: "";
}

.home-hero::before {
    left: clamp(1.2rem, 2.8vw, 3rem);
}

.home-hero::after {
    right: clamp(1.2rem, 2.8vw, 3rem);
    transform: scaleX(-1);
}

.home-hero-content {
    position: relative;
    z-index: 1;
}

.home-welcome {
    width: min(100%, 72rem);
    margin-inline: auto;
    text-align: center;
}

.home-arch {
    width: min(100%, 59rem);
    height: clamp(6.6rem, 11vw, 8.7rem);
    margin: 0 auto -1rem;
}

.home-arch svg {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.home-arch text {
    fill: #754613;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 3.5rem;
    font-weight: 800;
    letter-spacing: .025rem;
    paint-order: stroke;
    stroke: rgba(255, 250, 230, .98);
    stroke-width: 6px;
}

.home-top-logo {
    width: min(10.75rem, 34vw);
    max-height: 8.2rem;
    object-fit: contain;
    filter: drop-shadow(0 .75rem 1.1rem rgba(64, 36, 18, .25));
}

.home-page .home-welcome-title {
    color: #a66f19;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.5rem, 7vw, 7rem);
    line-height: .92;
    text-shadow: 0 3px 0 #fff6db, 0 .65rem 1.5rem rgba(94, 57, 15, .22);
}

.home-page .home-date-panel {
    gap: .3rem;
    min-width: min(100%, 26rem);
    padding: .85rem 1.5rem 1.1rem;
    border: 1px solid rgba(169, 120, 37, .56);
    background: linear-gradient(145deg, rgba(255, 255, 255, .84), rgba(249, 234, 201, .86));
    box-shadow: inset 0 0 1.4rem rgba(196, 154, 69, .12), 0 .75rem 1.8rem rgba(58, 31, 18, .12);
}

.home-page .home-live-clock {
    width: min(100%, 20rem);
    margin: .15rem auto;
    padding: .3rem .75rem;
    border: 2px solid #b88835;
    border-radius: .55rem;
    color: #ffd97c;
    background: linear-gradient(180deg, #382116, #180c07);
    box-shadow: inset 0 0 .8rem rgba(0, 0, 0, .65), 0 .25rem .65rem rgba(48, 25, 10, .22);
    font-family: "Courier New", monospace;
    font-size: clamp(1.75rem, 3.4vw, 2.4rem);
    letter-spacing: .04em;
    white-space: nowrap;
    text-shadow: 0 0 .45rem rgba(255, 205, 91, .46);
}

.home-fast-notice {
    max-width: 44rem;
}

.home-page .home-panel {
    border-color: rgba(173, 126, 45, .56);
    background:
        radial-gradient(circle at 20% 10%, rgba(196, 154, 69, .16), transparent 29%),
        linear-gradient(135deg, rgba(255, 255, 255, .92), rgba(255, 248, 230, .94));
    box-shadow: 0 .9rem 2.1rem rgba(58, 31, 18, .16);
}

.home-page .home-panel > header {
    border-color: rgba(169, 120, 37, .25) !important;
}

.home-page .home-member-panel .auth-logo {
    width: 7.5rem;
    height: 7.5rem;
    filter: drop-shadow(0 .55rem .75rem rgba(64, 36, 18, .18));
}

.home-page .home-zmanim-list > div {
    border-bottom-color: rgba(118, 81, 25, .18);
}

.home-page .home-campaign-card {
    border-color: rgba(173, 126, 45, .44);
    background: rgba(255, 253, 247, .84);
    box-shadow: inset 0 0 1.2rem rgba(196, 154, 69, .08);
}

.home-special-poster {
    width: min(100%, 62rem);
    margin-inline: auto;
    overflow: hidden;
    padding: clamp(1rem, 2vw, 1.5rem);
}

.home-special-poster-heading {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(169, 120, 37, .24);
}

.home-special-poster-heading > p:first-child {
    color: var(--site-gold-dark);
    letter-spacing: .09em;
}

.home-special-poster-link,
.home-special-poster-image {
    display: block;
}

.home-special-poster-image {
    width: auto;
    max-width: 100%;
    max-height: 75rem;
    margin-inline: auto;
    border: 1px solid rgba(118, 81, 25, .2);
    border-radius: .75rem;
    box-shadow: 0 .75rem 2rem rgba(58, 31, 18, .15);
}

.home-special-poster-pdf {
    display: block;
    width: 100%;
    height: clamp(34rem, 72vw, 68rem);
    border: 1px solid rgba(118, 81, 25, .24);
    border-radius: .75rem;
    background: #fff;
}

.home-special-poster-open {
    margin-top: 1rem;
}

.home-page .site-footer {
    color: #ead9b6;
    border-top-color: rgba(226, 183, 92, .4) !important;
    background: linear-gradient(180deg, #321a0d, #211006);
}

@media (max-width: 1199.98px) {
    .home-hero {
        padding-inline: clamp(4.6rem, 9vw, 6.5rem);
    }

    .home-page .home-panel {
        width: min(100%, 42rem);
        margin-inline: auto;
    }
}

@media (max-width: 767.98px) {
    .home-shell {
        padding: .55rem;
    }

    .home-hero {
        min-height: auto;
        padding: .25rem .8rem 1.25rem;
        border-radius: 1.2rem;
        box-shadow:
            inset 0 0 0 5px rgba(255, 244, 209, .44),
            inset 0 0 2.5rem rgba(116, 70, 31, .16),
            0 .8rem 2rem rgba(20, 8, 2, .36);
    }

    .home-hero::before,
    .home-hero::after {
        display: none;
    }

    .home-arch {
        height: 6.5rem;
        margin-bottom: -.65rem;
    }

    .home-arch text {
        font-size: 2.5rem;
        stroke-width: 5px;
    }

    .home-page .home-welcome-title {
        font-size: clamp(3.25rem, 17vw, 5rem);
    }

    .home-page .home-live-clock {
        letter-spacing: .025em;
    }
}

@media (max-width: 420px) {
    .home-arch {
        height: 5.8rem;
    }

    .home-arch text {
        font-size: 2rem;
        stroke-width: 4px;
    }

    .home-page .home-date-panel {
        padding-inline: .85rem;
    }
}

.settings-heading-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.holiday-setup-reminder {
    display: grid;
    grid-template-columns: minmax(16rem, 1fr) auto auto;
    align-items: center;
    gap: 1.25rem;
    margin: 1.25rem 0;
    padding: 1.15rem 1.25rem;
    border: 1px solid #d6a94f;
    border-radius: .9rem;
    background: linear-gradient(135deg, #fff7da, #fffdf5);
    box-shadow: 0 .5rem 1.2rem rgba(91, 57, 11, .1);
}

.holiday-setup-reminder h2 {
    margin: .15rem 0;
    color: var(--site-ink);
    font-size: 1.4rem;
}

.holiday-setup-reminder h2 small {
    margin-left: .5rem;
    color: var(--site-muted);
    font-size: .8em;
    font-weight: 500;
}

.holiday-setup-reminder p,
.holiday-setup-reminder ul {
    margin: 0;
}

.holiday-setup-reminder ul {
    min-width: 13rem;
    padding: 0;
    list-style: none;
}

.holiday-setup-reminder li {
    padding: .18rem 0;
    font-weight: 700;
}

.holiday-setup-reminder li::before {
    display: inline-block;
    width: 1.25rem;
}

.holiday-setup-reminder .is-ready {
    color: #2f6c38;
}

.holiday-setup-reminder .is-ready::before {
    content: "✓";
}

.holiday-setup-reminder .needs-setup {
    color: #9b3d2f;
}

.holiday-setup-reminder .needs-setup::before {
    content: "!";
}

.holiday-zmanim-page {
    width: min(100% - 2rem, 86rem);
    max-width: none;
}

.holiday-upcoming-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
    gap: .85rem;
    margin: 1.25rem 0;
}

.holiday-upcoming-card {
    display: grid;
    grid-template-columns: 5.25rem 1fr;
    align-items: center;
    gap: .85rem;
    min-height: 6.5rem;
    padding: .65rem;
    overflow: hidden;
    border: 1px solid var(--site-border);
    border-radius: .9rem;
    background: #fffdf8;
    color: inherit;
    text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.holiday-upcoming-card:hover,
.holiday-upcoming-card.is-selected {
    border-color: var(--site-gold);
    box-shadow: 0 .45rem 1.2rem rgba(88, 57, 18, .12);
    transform: translateY(-1px);
}

.holiday-upcoming-card img {
    width: 5.25rem;
    height: 5.25rem;
    border-radius: .7rem;
    object-fit: cover;
}

.holiday-upcoming-card span,
.holiday-upcoming-card small {
    display: block;
}

.holiday-upcoming-card strong {
    color: var(--site-gold-dark);
    font-size: 1.15rem;
}

.holiday-upcoming-card small {
    margin-top: .18rem;
    color: var(--site-muted);
    line-height: 1.3;
}

.holiday-editor-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.25rem;
    padding: 1.15rem 1.25rem;
    border: 1px solid var(--site-border);
    border-radius: .9rem;
    background: linear-gradient(135deg, #fffaf0, #fff);
}

.holiday-editor-heading h2 {
    margin: .15rem 0;
    color: var(--site-gold-dark);
    font-size: 1.8rem;
}

.holiday-editor-heading p {
    margin: 0;
    color: var(--site-muted);
}

.holiday-schedule-editor {
    margin-top: 1.25rem;
}

.holiday-schedule-options {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 1.25rem;
    margin: .8rem 0;
}

.holiday-schedule-options label {
    display: grid;
    gap: .35rem;
    color: #57483a;
    font-size: .86rem;
    font-weight: 700;
}

.holiday-schedule-options input[type="number"] {
    width: 7rem;
}

.holiday-schedule-options .holiday-active-option {
    display: flex;
    align-items: center;
    gap: .5rem;
    min-height: 2.4rem;
}

.holiday-picture-picker {
    display: grid;
    grid-template-columns: minmax(16rem, 1fr) 15rem;
    align-items: center;
    gap: 1.25rem;
    margin: 1rem 0 1.35rem;
    padding: 1rem;
    border: 1px solid rgba(169, 120, 37, .28);
    border-radius: .9rem;
    background: #fffdf8;
}

.holiday-picture-picker > div {
    display: grid;
    gap: .45rem;
}

.holiday-picture-picker select {
    width: min(100%, 28rem);
    font-size: 1rem;
}

.holiday-picture-picker small {
    color: var(--site-muted);
}

.holiday-picture-picker img {
    width: 15rem;
    aspect-ratio: 3 / 2;
    border-radius: .75rem;
    box-shadow: 0 .35rem 1rem rgba(64, 41, 15, .16);
    object-fit: cover;
}

.holiday-fixed-schedule {
    padding: 1rem;
    border: 1px solid var(--site-border);
    border-radius: .9rem;
}

.holiday-fixed-schedule > h3 {
    margin-bottom: .25rem;
    color: var(--site-gold-dark);
}

.holiday-fixed-schedule > p {
    margin-bottom: .8rem;
    color: var(--site-muted);
}

.holiday-fixed-schedule > button {
    margin-top: 1rem;
}

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

.holiday-zmanim-table {
    min-width: 32rem;
}

.holiday-zmanim-table th:first-child,
.holiday-zmanim-table td:first-child {
    width: 4rem;
    text-align: center;
}

.holiday-zmanim-table select {
    width: 100%;
    min-width: 18rem;
    font-size: 1rem;
}

.holiday-zmanim-table input[type="time"] {
    width: 9rem;
    min-width: 8rem;
    font-size: 1rem;
}

.home-holiday-zmanim {
    width: min(100%, 56rem);
    margin-inline: auto;
    padding: clamp(1rem, 2.5vw, 1.75rem);
}

.home-holiday-zmanim > header {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(169, 120, 37, .24);
}

.home-holiday-zmanim > header > p:first-child {
    color: var(--site-gold-dark);
    letter-spacing: .08em;
}

.home-holiday-zmanim-content {
    display: grid;
    grid-template-columns: minmax(13rem, 17rem) minmax(0, 1fr);
    align-items: start;
    gap: 1.25rem;
}

.home-holiday-picture {
    margin: 0;
}

.home-holiday-picture img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    border-radius: .9rem;
    box-shadow: 0 .45rem 1.2rem rgba(72, 45, 14, .16);
    object-fit: cover;
}

.home-holiday-zmanim-days {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
    gap: 1rem;
}

.home-holiday-zmanim-day {
    padding: 1rem;
    border: 1px solid rgba(169, 120, 37, .28);
    border-radius: .8rem;
    background: rgba(255, 253, 247, .78);
}

.home-holiday-zmanim-day h3 {
    padding-bottom: .65rem;
    border-bottom: 1px solid rgba(169, 120, 37, .2);
    text-align: center;
}

.home-holiday-zmanim-day dl {
    margin: 0;
}

.home-holiday-zmanim-day dl > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .55rem 0;
    border-bottom: 1px solid rgba(118, 81, 25, .14);
}

.home-holiday-zmanim-day dl > div:last-child {
    border-bottom: 0;
}

.home-holiday-zmanim-day dt small {
    display: block;
    color: var(--site-muted);
    font-weight: 400;
}

.home-holiday-zmanim-day dd {
    flex: 0 0 auto;
    margin: 0;
    color: var(--site-gold-dark);
    font-weight: 800;
}

@media (max-width: 800px) {
    .holiday-setup-reminder {
        grid-template-columns: 1fr;
    }

    .holiday-editor-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .holiday-picture-picker,
    .home-holiday-zmanim-content {
        grid-template-columns: 1fr;
    }

    .holiday-picture-picker img {
        width: min(100%, 24rem);
    }
}

/* Seat reservations: office setup */
.seat-admin-page.container {
    width: min(calc(100% - 2rem), 108rem);
    max-width: none;
}

.seat-admin-page .settings-section {
    margin-bottom: 1.25rem;
}

.seat-sale-tabs,
.seat-map-upload-form,
.settings-row-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
}

.seat-sale-settings-form {
    display: grid;
    grid-template-columns: repeat(4, minmax(11rem, 1fr));
    gap: 1rem;
    align-items: end;
}

.seat-sale-settings-form label,
.seat-add-form label {
    display: grid;
    gap: .35rem;
}

.seat-sale-settings-form label > span,
.seat-add-form label > span {
    color: #625346;
    font-size: .82rem;
    font-weight: 700;
}

.seat-sale-settings-form .seat-sale-title {
    grid-column: span 2;
}

.seat-sale-settings-form fieldset {
    display: grid;
    grid-column: span 2;
    grid-template-columns: repeat(2, minmax(9rem, 1fr));
    gap: .75rem;
    min-width: 0;
    margin: 0;
    padding: .8rem 1rem 1rem;
    border: 1px solid var(--site-border);
    border-radius: .75rem;
    background: #fffaf0;
}

.seat-sale-settings-form fieldset legend {
    width: auto;
    margin: 0;
    padding: 0 .35rem;
    color: var(--site-gold-dark);
    font-size: 1rem;
    font-weight: 800;
}

.seat-sale-settings-form .seat-sale-active {
    display: flex;
    grid-column: span 3;
    align-items: center;
    gap: .55rem;
    font-weight: 700;
}

.seat-sale-settings-form > button {
    justify-self: end;
}

.seat-section-add-form {
    display: grid;
    grid-template-columns: minmax(10rem, 1fr) minmax(12rem, 1.3fr) minmax(11rem, 1fr) 6rem auto;
    gap: .65rem;
    align-items: end;
    margin-bottom: 1rem;
}

.seat-map-editor,
.seat-map-member {
    position: relative;
    overflow: hidden;
    border: 1px solid #c9bdad;
    border-radius: .8rem;
    background: #f2eee7;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .65);
}

.seat-map-editor {
    width: 100%;
    margin-bottom: 1rem;
    cursor: crosshair;
}

.seat-map-editor > img,
.seat-map-member > img {
    display: block;
    width: 100%;
    height: auto;
    user-select: none;
}

.seat-map-marker,
.seat-map-seat {
    position: absolute;
    left: var(--seat-x);
    top: var(--seat-y);
    display: inline-flex;
    min-width: 1.85rem;
    min-height: 1.85rem;
    transform: translate(-50%, -50%);
    align-items: center;
    justify-content: center;
    padding: .15rem .35rem;
    border: 2px solid #fff;
    border-radius: 999px;
    color: #fff;
    font-size: .72rem;
    font-weight: 800;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 .16rem .45rem rgba(0, 0, 0, .35);
}

.seat-map-marker:hover,
.seat-map-marker:focus {
    z-index: 3;
    color: #fff;
    transform: translate(-50%, -50%) scale(1.22);
}

.seat-map-marker.seat-type-men {
    background: #2563a7;
}

.seat-map-marker.seat-type-women {
    background: #a83f78;
}

.seat-map-marker.seat-type-children {
    background: #b06a15;
}

.seat-add-form {
    display: grid;
    grid-template-columns: minmax(10rem, 1.4fr) repeat(5, minmax(5.5rem, .65fr)) auto;
    gap: .65rem;
    align-items: end;
}

.seat-admin-list-table,
.seat-sections-table {
    min-width: 75rem;
}

.seat-admin-list-table input,
.seat-admin-list-table select,
.seat-sections-table input,
.seat-sections-table select {
    min-width: 4.5rem;
}

.seat-admin-list-table .seat-member-select {
    min-width: 18rem;
}

.seat-position-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(5.25rem, 1fr));
    gap: .35rem;
}

/* Seat reservations: member map and checkout */
.seat-member-page,
.seat-checkout-page {
    max-width: 92rem;
}

.seat-member-heading,
.seat-map-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.seat-sale-year {
    display: grid;
    min-width: 9rem;
    padding: .8rem 1rem;
    border: 1px solid rgba(118, 81, 25, .22);
    border-radius: .85rem;
    background: #fff8e8;
    text-align: center;
}

.seat-sale-year strong {
    color: var(--site-gold-dark);
    font-size: 1.45rem;
}

.seat-sale-year span {
    color: var(--site-muted);
    font-size: .82rem;
}

.seat-price-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(12rem, 1fr));
    gap: .75rem;
}

.seat-price-card {
    display: grid;
    gap: .2rem;
    padding: .85rem 1rem;
    border: 1px solid var(--site-border);
    border-left: .35rem solid #2563a7;
    border-radius: .75rem;
    background: #fffaf0;
}

.seat-price-card.seat-type-women {
    border-left-color: #a83f78;
}

.seat-price-card.seat-type-children {
    border-left-color: #b06a15;
}

.seat-price-card strong {
    font-size: 1.08rem;
}

.seat-price-card span {
    color: var(--site-muted);
    font-size: .88rem;
}

.seat-map-toolbar {
    margin-bottom: 1rem;
}

.seat-map-legend {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1rem;
    color: #554b42;
    font-size: .78rem;
}

.seat-map-legend span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.seat-legend-swatch {
    width: .85rem;
    height: .85rem;
    border-radius: 50%;
    background: #7a7f87;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .16);
}

.seat-map-scroll {
    overflow-x: auto;
    padding-bottom: .35rem;
}

.seat-map-member {
    width: 100%;
    min-width: 47rem;
}

.seat-map-seat {
    cursor: pointer;
    transition: transform .13s ease, background-color .13s ease, box-shadow .13s ease;
}

.seat-map-seat:hover:not(:disabled),
.seat-map-seat:focus-visible:not(:disabled) {
    z-index: 4;
    transform: translate(-50%, -50%) scale(1.18);
}

.seat-map-seat.is-available,
.seat-legend-swatch.is-available {
    background: #21863a;
}

.seat-map-seat.is-prior,
.seat-legend-swatch.is-prior {
    background: #2563d6;
}

.seat-map-seat.is-selected,
.seat-legend-swatch.is-selected {
    background: #efb21d;
    color: #2d2118;
    box-shadow: 0 0 0 .2rem rgba(239, 178, 29, .34), 0 .16rem .45rem rgba(0, 0, 0, .35);
}

.seat-map-seat.is-unavailable,
.seat-legend-swatch.is-unavailable {
    background: #777c83;
}

.seat-map-seat.is-paid,
.seat-legend-swatch.is-paid {
    background: #6d3cc2;
}

.seat-map-seat:disabled {
    cursor: not-allowed;
    opacity: .82;
}

.seat-selection-total {
    color: var(--site-gold-dark);
    font-size: 1.65rem;
}

.seat-selection-empty {
    padding: 1rem;
    border: 1px dashed #cdbfa9;
    border-radius: .75rem;
    color: var(--site-muted);
    text-align: center;
}

.seat-selection-items {
    display: grid;
    gap: .65rem;
}

.seat-selection-item {
    display: grid;
    grid-template-columns: minmax(14rem, 1fr) minmax(13rem, .8fr);
    gap: 1rem;
    align-items: center;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(118, 81, 25, .14);
}

.seat-selection-item > div {
    display: grid;
    gap: .15rem;
}

.seat-selection-item span {
    color: var(--site-muted);
    font-size: .86rem;
}

.seat-selection-item input,
.seat-payment-form .form-control,
.seat-payment-form .form-select {
    border-color: #cfc1ae;
}

.seat-checkout-items {
    display: grid;
}

.seat-checkout-items article,
.seat-checkout-total {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 0;
    border-bottom: 1px solid rgba(118, 81, 25, .14);
}

.seat-checkout-items article > div {
    display: grid;
    gap: .15rem;
}

.seat-checkout-items article span {
    color: var(--site-muted);
    font-size: .84rem;
}

.seat-checkout-total {
    align-items: center;
    padding-top: 1rem;
    border-bottom: 0;
    font-size: 1.2rem;
}

.seat-checkout-total strong {
    color: var(--site-gold-dark);
    font-size: 1.55rem;
}

.seat-payment-form .payment-captcha {
    margin-top: 1.25rem;
}

.seat-payment-success-mark {
    display: grid;
    width: 4rem;
    height: 4rem;
    margin: 0 auto 1rem;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #21863a;
    font-size: 2rem;
    font-weight: 800;
}

@media (max-width: 991.98px) {
    .seat-sale-settings-form {
        grid-template-columns: repeat(2, minmax(10rem, 1fr));
    }

    .seat-sale-settings-form .seat-sale-active {
        grid-column: span 1;
    }

    .seat-section-add-form,
    .seat-add-form {
        grid-template-columns: repeat(2, minmax(9rem, 1fr));
    }

    .seat-section-add-form button,
    .seat-add-form button {
        grid-column: span 2;
    }
}

@media (max-width: 575.98px) {
    .seat-sale-settings-form,
    .seat-section-add-form,
    .seat-add-form,
    .seat-price-grid,
    .seat-selection-item {
        grid-template-columns: 1fr;
    }

    .seat-sale-settings-form .seat-sale-title,
    .seat-sale-settings-form fieldset,
    .seat-sale-settings-form .seat-sale-active,
    .seat-section-add-form button,
    .seat-add-form button {
        grid-column: span 1;
    }

    .seat-sale-settings-form fieldset {
        grid-template-columns: 1fr;
    }

    .seat-map-member {
        min-width: 40rem;
    }
}
