/* Town of Alma WordPress replica. Loaded only when municipality slug is toa. */
.ms-theme-alma {
    --alma-navy: #0f172a;
    --alma-dark: #020617;
    --alma-gold: #d7a948;
    --alma-gold-nav: #d4af37;
    --alma-cream: #f8fafc;
    --alma-soft: #eef2f7;
    --alma-border: #d8ddcf;
    --alma-green: #234f2f;
    --alma-muted: #5b6470;
    --alma-danger: #b91c1c;
    --alma-footer: #522197;
    --site-primary: var(--alma-navy);
    --site-primary-dark: var(--alma-dark);
    --site-secondary: var(--alma-green);
    --site-accent: var(--alma-gold);
    --site-on-primary: #f8fafc;
    --site-on-accent: var(--alma-dark);
    --ms-ink: #263128;
    --ms-muted: var(--alma-muted);
    --ms-paper: #f4f6f2;
    --ms-surface: #f8fafc;
    --ms-card: #ffffff;
    --ms-line: #d8ddcf;
    --ms-focus: #d7a948;
    --ms-max: 72rem;
    --ms-header-height: 17.4rem;
    --ms-radius: 1.1rem;
    --ms-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
    font-family: Baskervville, Georgia, "Times New Roman", serif;
    background: #eef2e6;
    color: #263128;
    font-size: 122%;
}

.ms-theme-alma h1,
.ms-theme-alma h2,
.ms-theme-alma h3,
.ms-theme-alma h4,
.ms-theme-alma .ms-hero__title,
.ms-theme-alma .ms-page__title,
.ms-theme-alma .ms-section__title,
.ms-theme-alma .ms-card__title,
.ms-theme-alma .ms-footer__heading,
.ms-theme-alma .ms-brand__name {
    font-family: Cinzel, Georgia, serif;
    font-weight: 900;
    letter-spacing: 0.01em;
}

.ms-theme-alma .ms-header {
    background: var(--alma-navy);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.22);
}

.ms-theme-alma .ms-masthead {
    background: var(--alma-navy);
}

.ms-theme-alma .ms-masthead__inner {
    align-items: center;
    flex-wrap: nowrap;
    justify-content: space-between;
    min-height: 279px;
    padding: 0.4rem 0;
    gap: 1.25rem 1.75rem;
}

.ms-theme-alma .ms-brand {
    flex: 0 0 auto;
}

.ms-theme-alma .ms-nav {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    margin-left: auto;
}

.ms-theme-alma .ms-nav__list {
    justify-content: flex-end;
    flex-wrap: wrap;
}

.ms-theme-alma .ms-brand__logo {
    height: 240px;
    max-height: 279px;
    max-width: 200px;
    width: auto;
    background: transparent;
    border-radius: 0;
    padding: 0;
}

.ms-theme-alma .ms-nav__link,
.ms-theme-alma .ms-nav__toggle,
.ms-theme-alma .ms-nav__label,
.ms-theme-alma .ms-nav-open,
.ms-theme-alma .ms-nav-close {
    font-family: Lato, sans-serif;
    font-weight: 900;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--alma-gold-nav);
    background: transparent;
}

.ms-theme-alma .ms-nav__link:hover,
.ms-theme-alma .ms-nav__toggle:hover,
.ms-theme-alma .ms-nav__link--current,
.ms-theme-alma .ms-nav__item--current > .ms-nav__toggle {
    color: var(--alma-navy);
    background: var(--alma-gold-nav);
}

.ms-theme-alma .ms-nav__sub {
    background: var(--alma-navy);
    border: 1px solid var(--alma-gold-nav);
    border-radius: 15px;
    color: #fff;
}

.ms-theme-alma .ms-nav__sub-link,
.ms-theme-alma .ms-nav__sub .ms-nav__label {
    color: var(--alma-gold-nav);
    font-family: Lato, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    font-size: 0.78rem;
}

.ms-theme-alma .ms-nav__sub-link:hover,
.ms-theme-alma .ms-nav__sub-link:focus-visible {
    background: var(--alma-gold-nav);
    color: var(--alma-navy);
}

.ms-theme-alma .ms-main {
    padding-top: 1.4rem;
}

.ms-theme-alma .ms-hero {
    background:
        linear-gradient(rgba(2, 6, 23, 0.72), rgba(15, 23, 42, 0.82)),
        url("/images/alma/skyline.jpg");
    background-size: cover;
    background-position: center;
    color: #fff;
    padding: 105px 0;
    border-radius: 20px;
    border-bottom: 8px solid var(--alma-gold);
    text-align: center;
    margin: 0 auto 1.6rem;
    width: min(calc(100% - 2rem), var(--ms-max));
    box-shadow: 0 22px 48px rgba(15, 23, 42, 0.28);
}

.ms-theme-alma .ms-hero--overlay::before {
    display: none;
}

.ms-theme-alma .ms-hero__inner {
    max-width: 54rem;
    margin: 0 auto;
}

.ms-theme-alma .ms-hero__eyebrow {
    color: var(--alma-gold);
    letter-spacing: 0.16em;
    font-size: 0.78rem;
}

.ms-theme-alma .ms-hero__title {
    color: #fff;
    font-size: clamp(2.2rem, 6vw, 3.6rem);
    line-height: 1.05;
    margin: 0;
}

.ms-theme-alma .ms-hero__text {
    color: #e5e7eb;
    font-size: 1.15rem;
    line-height: 1.65;
    max-width: 54rem;
    margin: 1.15rem auto 0;
}

.ms-theme-alma .ms-hero__actions {
    justify-content: center;
    margin-top: 1.7rem;
}

.ms-theme-alma .ms-btn,
.ms-theme-alma .ms-hero__actions .ms-btn {
    border-radius: 9px;
    padding: 0.8rem 1.2rem;
    font-family: Lato, sans-serif;
    font-weight: 900;
    font-size: 0.92rem;
    text-decoration: none;
    border: 0;
    box-shadow: none;
}

.ms-theme-alma .ms-btn--primary {
    background: var(--alma-gold);
    color: var(--alma-dark);
}

.ms-theme-alma .ms-btn--ghost,
.ms-theme-alma .ms-btn--outline {
    background: var(--alma-navy);
    color: #fff;
    box-shadow: inset 0 0 0 0 transparent;
}

.ms-theme-alma .ms-btn:hover,
.ms-theme-alma .ms-btn:focus-visible {
    transform: translateY(-2px);
    background: var(--alma-dark);
    color: #fff;
}

.ms-theme-alma .ms-btn--primary:hover,
.ms-theme-alma .ms-btn--primary:focus-visible {
    background: var(--alma-dark);
    color: #fff;
}

.ms-theme-alma .ms-section {
    padding: 0.4rem 0 1.6rem;
}

.ms-theme-alma .ms-welcome,
.ms-theme-alma .ms-section,
.ms-theme-alma .ms-page {
    font-family: Baskervville, Georgia, serif;
}

.ms-theme-alma .ms-welcome__inner,
.ms-theme-alma .ms-card,
.ms-theme-alma .ms-feature,
.ms-theme-alma .ms-news-card,
.ms-theme-alma .ms-event-card,
.ms-theme-alma .ms-meeting-card,
.ms-theme-alma .ms-document-card,
.ms-theme-alma .ms-official-card,
.ms-theme-alma .ms-alert-card,
.ms-theme-alma .ms-page,
.ms-theme-alma .ms-form,
.ms-theme-alma .ms-empty {
    background: #fff;
    border: 1px solid var(--alma-border);
    border-radius: 18px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.09);
}

.ms-theme-alma .ms-welcome__inner,
.ms-theme-alma .ms-card,
.ms-theme-alma .ms-feature,
.ms-theme-alma .ms-news-card,
.ms-theme-alma .ms-event-card,
.ms-theme-alma .ms-meeting-card,
.ms-theme-alma .ms-document-card,
.ms-theme-alma .ms-official-card,
.ms-theme-alma .ms-alert-card {
    position: relative;
    overflow: hidden;
    padding: 1.6rem;
}

.ms-theme-alma .ms-welcome__inner::before,
.ms-theme-alma .ms-card::before,
.ms-theme-alma .ms-feature::before,
.ms-theme-alma .ms-news-card::before,
.ms-theme-alma .ms-event-card::before,
.ms-theme-alma .ms-meeting-card::before,
.ms-theme-alma .ms-document-card::before,
.ms-theme-alma .ms-official-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 6px;
    background: linear-gradient(90deg, var(--alma-navy), var(--alma-gold));
}

.ms-theme-alma .ms-section__title,
.ms-theme-alma .ms-page__title {
    color: var(--alma-navy);
}

.ms-theme-alma .ms-quick-links,
.ms-theme-alma .ms-features,
.ms-theme-alma .ms-directory {
    gap: 1.1rem;
}

.ms-theme-alma .ms-card.ms-quick-link {
    min-height: 195px;
    border-radius: 20px;
    color: #fff;
    background:
        linear-gradient(180deg, rgba(2, 6, 23, 0.08), rgba(2, 6, 23, 0.88)),
        linear-gradient(135deg, rgba(15, 23, 42, 0.35), rgba(215, 169, 72, 0.22)),
        var(--alma-navy);
    box-shadow: 0 16px 34px rgba(15, 23, 42, 0.22);
    padding: 1.3rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.ms-theme-alma .ms-card.ms-quick-link::before {
    display: none;
}

.ms-theme-alma .ms-card.ms-quick-link .ms-card__title,
.ms-theme-alma .ms-card.ms-quick-link .ms-card__title-link,
.ms-theme-alma .ms-card.ms-quick-link .ms-card__text {
    color: #fff;
}

.ms-theme-alma .ms-card.ms-quick-link:hover {
    transform: translateY(-6px);
}

.ms-theme-alma .ms-badge {
    background: #edf5ea;
    color: var(--alma-green);
    border-radius: 999px;
    font-family: Lato, sans-serif;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ms-theme-alma .ms-alert-banner,
.ms-theme-alma .ms-ticker {
    width: min(calc(100% - 2rem), var(--ms-max));
    margin: 0 auto 1.4rem;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid var(--alma-border);
    box-shadow: 0 16px 36px rgba(15, 23, 42, 0.14);
}

.ms-theme-alma .ms-ticker {
    background: #fff7ed;
}

.ms-theme-alma .ms-page__header {
    border-bottom: 0;
    margin-bottom: 1.2rem;
}

.ms-theme-alma .ms-footer {
    background: var(--alma-footer);
    color: #fff;
    text-align: center;
    padding: 2rem 0 1.2rem;
}

.ms-theme-alma .ms-footer__grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
}

.ms-theme-alma .ms-footer__col:nth-child(2) {
    display: none;
}

.ms-theme-alma .ms-footer__heading {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

.ms-theme-alma .ms-footer__name {
    color: #ffff00;
    font-size: 1.35rem;
    margin: 0.2rem 0;
}

.ms-theme-alma .ms-footer__tagline,
.ms-theme-alma .ms-footer__address,
.ms-theme-alma .ms-footer p,
.ms-theme-alma .ms-footer a,
.ms-theme-alma .ms-footer__home {
    color: #fff;
}

.ms-theme-alma .ms-footer a[href^="tel"] {
    color: #ffff00;
}

.ms-theme-alma .ms-footer__copy {
    color: #fff;
    margin-top: 1.2rem;
    border-top: 0;
}

.ms-theme-alma .ms-footer__credit {
    display: block;
    font-size: 9px;
    margin-top: 0.35rem;
    opacity: 0.9;
}

.ms-theme-alma .ms-prose {
    font-size: 1.02rem;
    line-height: 1.65;
    color: #4b5563;
}

.ms-theme-alma .ms-pay-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    padding: 0.55rem 1.05rem;
    background: var(--alma-gold);
    color: var(--alma-navy);
    font-family: Lato, Arial, sans-serif;
    font-size: 0.82rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 0.2rem;
    white-space: nowrap;
}

.ms-theme-alma .ms-pay-cta:hover,
.ms-theme-alma .ms-pay-cta:focus-visible {
    background: #e3c56a;
    color: var(--alma-navy);
}

.ms-theme-alma .ms-portal-body {
    padding-top: 2rem;
    padding-bottom: 3.5rem;
}

.ms-theme-alma .ms-portal-body .pf-portal-page-title,
.ms-theme-alma .ms-portal-body .pf-portal-greeting {
    font-family: Cinzel, Georgia, serif;
    font-size: 2rem;
    font-weight: 900;
    letter-spacing: 0.01em;
    text-transform: none;
    color: var(--alma-navy);
    margin: 0 0 0.65rem;
}

.ms-theme-alma .ms-portal-body .pf-portal-lead,
.ms-theme-alma .ms-portal-body .pf-portal-hint,
.ms-theme-alma .ms-portal-body .pf-portal-meta,
.ms-theme-alma .ms-portal-body .pf-muted {
    color: var(--alma-muted);
    max-width: 46rem;
}

.ms-theme-alma .ms-portal-body .pf-card,
.ms-theme-alma .ms-portal-body .pf-portal-list-item,
.ms-theme-alma .ms-portal-body .pf-portal-status {
    background: #fff;
    border: 1px solid var(--alma-border);
    border-radius: 1.1rem;
    box-shadow: var(--ms-shadow);
    color: #263128;
}

.ms-theme-alma .ms-portal-body .pf-card {
    padding: 1.35rem 1.5rem;
}

.ms-theme-alma .ms-portal-body .pf-portal-list-item {
    background: #fff;
}

.ms-theme-alma .ms-portal-body .pf-portal-list-item:hover {
    border-color: var(--alma-gold);
}

.ms-theme-alma .ms-portal-body .pf-portal-amount,
.ms-theme-alma .ms-portal-body .pf-portal-pay-hero {
    color: var(--alma-navy);
    font-family: Cinzel, Georgia, serif;
}

.ms-theme-alma .ms-portal-body .pf-subhead-staff,
.ms-theme-alma .ms-portal-body .pf-portal-section h2 {
    font-family: Cinzel, Georgia, serif;
    color: var(--alma-navy);
    text-transform: none;
    letter-spacing: 0.01em;
}

.ms-theme-alma .ms-portal-body .pf-label {
    display: block;
    font-family: Lato, Arial, sans-serif;
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--alma-navy);
    margin-bottom: 0.35rem;
}

.ms-theme-alma .ms-portal-body .pf-field {
    margin-bottom: 1rem;
}

.ms-theme-alma .ms-portal-body .pf-input {
    width: 100%;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--alma-border);
    border-radius: 0.4rem;
    background: #fff;
    color: #263128;
    font: inherit;
}

.ms-theme-alma .ms-portal-body .pf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.7rem 1.15rem;
    border-radius: 0.35rem;
    font-family: Lato, Arial, sans-serif;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
}

.ms-theme-alma .ms-portal-body .pf-btn-primary {
    background: var(--alma-navy);
    border-color: var(--alma-navy);
    color: #fff;
}

.ms-theme-alma .ms-portal-body .pf-btn-secondary {
    background: transparent;
    border-color: var(--alma-navy);
    color: var(--alma-navy);
}

.ms-theme-alma .ms-portal-body .pf-portal-chip {
    background: var(--alma-soft);
    border-color: var(--alma-border);
    color: var(--alma-navy);
}

.ms-theme-alma .ms-portal-body .pf-flash-error {
    color: var(--alma-danger);
}

@media (min-width: 720px) {
    .ms-theme-alma .ms-masthead .ms-wrap {
        width: min(calc(100% - 2rem), 86rem);
    }

    .ms-theme-alma .ms-nav {
        order: 3;
        display: flex;
        justify-content: flex-end;
        align-items: center;
    }

    .ms-theme-alma .ms-pay-cta {
        order: 4;
        flex: 0 0 auto;
        margin-left: 0;
    }
}

@media (max-width: 900px) {
    .ms-theme-alma {
        font-size: 100%;
        --ms-header-height: 5.2rem;
    }

    .ms-theme-alma .ms-masthead__inner {
        min-height: 70px;
    }

    .ms-theme-alma .ms-brand__logo {
        height: 64px;
        max-height: 70px;
        max-width: 70px;
    }

    .ms-theme-alma .ms-hero {
        padding: 75px 0;
    }
}

@media (max-width: 719px) {
    .ms-theme-alma .ms-masthead__inner {
        flex-wrap: wrap;
    }

    .ms-theme-alma .ms-nav {
        flex-basis: 100%;
        margin-left: 0;
    }
}
