:root {
    --color-crimson: #8f1537;
    --color-crimson-deep: #671028;
    --color-gold: #c9a96b;
    --color-ink: #22161b;
    --color-plum: #43202c;
    --color-sand: #f7f1ea;
    --color-surface: #fffaf6;
    --color-white: #ffffff;
    --color-border: rgba(103, 16, 40, 0.12);
    --shadow-soft: 0 24px 60px rgba(34, 22, 27, 0.08);
    --shadow-card: 0 18px 40px rgba(103, 16, 40, 0.12);
    --radius-lg: 28px;
    --radius-md: 18px;
    --site-width: 1180px;
}

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

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    color: var(--color-ink);
    background:
        radial-gradient(circle at top left, rgba(201, 169, 107, 0.15), transparent 26%),
        linear-gradient(180deg, #fff7f2 0%, #fffdfa 30%, #f8f0ea 100%);
    line-height: 1.7;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: var(--color-crimson);
    text-decoration: none;
}

a:hover,
a:focus {
    color: var(--color-crimson-deep);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0 0 0.75rem;
    font-weight: 700;
    line-height: 1.15;
    color: var(--color-plum);
}

p,
ul,
ol,
blockquote {
    margin: 0 0 1rem;
}

.site-shell {
    width: min(var(--site-width), calc(100% - 2rem));
    margin: 0 auto;
}

.section-space {
    padding: 5rem 0;
}

.section-surface {
    background: rgba(255, 255, 255, 0.56);
    backdrop-filter: blur(10px);
}

.section-kicker,
.site-footer__kicker,
.card__meta,
.hero__card-label {
    margin-bottom: 0.9rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--color-crimson);
}

.button-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.75rem;
}

.button,
button,
input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0.8rem 1.35rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--color-crimson), var(--color-crimson-deep));
    color: var(--color-white);
    font-weight: 700;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.button:hover,
.button:focus,
button:hover,
button:focus,
input[type="submit"]:hover,
input[type="submit"]:focus {
    color: var(--color-white);
    transform: translateY(-2px);
    box-shadow: var(--shadow-card);
}

.button--ghost {
    background: transparent;
    border-color: rgba(143, 21, 55, 0.22);
    color: var(--color-crimson);
}

.button--ghost:hover,
.button--ghost:focus {
    color: var(--color-crimson-deep);
    background: rgba(143, 21, 55, 0.06);
}

.text-link {
    font-weight: 700;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    backdrop-filter: blur(18px);
    background: rgba(255, 250, 246, 0.92);
    border-bottom: 1px solid rgba(143, 21, 55, 0.08);
}

.site-header__secondary {
    border-bottom: 1px solid var(--header_top_border_color, rgba(143, 21, 55, 0.08));
    background-color: var(--header_top_bg_color, rgba(255, 255, 255, 0.38));
}

.site-header__secondary-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 43px;
    font-size: 0.82rem;
    line-height: 1.4;
}

.site-header__secondary-left,
.site-header__secondary-right {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1 1 0;
    min-width: 0;
}

.site-header__secondary-right {
    justify-content: flex-end;
}

.site-header__secondary .fusion-contact-info,
.site-header__secondary .fusion-social-links-header,
.site-header__secondary .fusion-secondary-menu > ul {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0;
}

.site-header__secondary .fusion-contact-info {
    line-height: 43px;
}

.site-header__secondary .fusion-header-separator {
    display: inline-block;
    padding: 0 0.4rem;
    color: var(--snav_color, var(--header_top_menu_sub_color, var(--color-plum)));
    opacity: 0.55;
}

.site-header__secondary .fusion-secondary-menu ul {
    list-style: none;
    padding: 0;
}

.site-header__secondary .fusion-secondary-menu > ul {
    line-height: var(--sec_menu_lh, 43px);
}

.site-header__secondary .fusion-secondary-menu > ul > li {
    position: relative;
}

.site-header__secondary .fusion-secondary-menu > ul > li > a {
    display: inline-flex;
    align-items: center;
    min-height: 43px;
    background-color: transparent;
    color: var(--snav_color, var(--header_top_menu_sub_color, var(--color-plum)));
}

.site-header__secondary .fusion-secondary-menu > ul > li:hover > a,
.site-header__secondary .fusion-secondary-menu > ul > li:focus-within > a,
.site-header__secondary .fusion-secondary-menu > ul > li > a:hover,
.site-header__secondary .fusion-secondary-menu > ul > li > a:focus {
    background-color: var(--header_top_menu_bg_hover_color, transparent);
}

.site-header__secondary .fusion-secondary-menu .sub-menu {
    position: absolute;
    top: 100%;
    right: 0;
    left: auto;
    z-index: 1002;
    min-width: 220px;
    margin: 0;
    padding: 0.6rem 0;
    border: 1px solid var(--header_top_border_color, var(--color-border));
    border-radius: 14px;
    background: var(--header_top_sub_bg_color, var(--header_top_bg_color, rgba(255, 255, 255, 0.98)));
    box-shadow: var(--shadow-soft);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: all 0.2s ease;
}

.site-header__secondary .fusion-secondary-menu li:hover > .sub-menu,
.site-header__secondary .fusion-secondary-menu li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.site-header__secondary .fusion-secondary-menu .sub-menu a {
    display: block;
    padding: 0.45rem 1rem;
    color: var(--header_top_menu_sub_color, var(--color-plum));
    white-space: nowrap;
}

.site-header__secondary .fusion-secondary-menu .sub-menu li + li {
    border-top: 1px solid var(--header_top_menu_sub_sep_color, var(--header_top_border_color, var(--color-border)));
}

.site-header__secondary .fusion-social-links-header .fusion-social-networks {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-height: var(--sec_menu_lh, 43px);
}

.site-header__secondary .fusion-social-links-header a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--sec_menu_lh, 43px);
    min-width: 1.9rem;
    padding: var(--header_social_links_boxed_padding, 0);
    border-radius: var(--header_social_links_boxed_radius, 999px);
    background-color: var(--header_social_links_box_color, transparent);
    color: var(--header_social_links_icon_color, var(--header_top_menu_sub_color, var(--color-plum)));
    font-size: var(--header_social_links_font_size, 1rem);
}

.site-header__secondary a,
.site-header__secondary span,
.site-header__secondary .fusion-contact-info,
.site-header__secondary .fusion-contact-info a {
    color: var(--header_top_menu_sub_color, var(--color-plum));
}

.site-header__secondary a:hover,
.site-header__secondary a:focus,
.site-header__secondary .fusion-secondary-menu > ul > li > a:hover,
.site-header__secondary .fusion-secondary-menu > ul > li > a:focus,
.site-header__secondary .fusion-secondary-menu .sub-menu a:hover,
.site-header__secondary .fusion-secondary-menu .sub-menu a:focus,
.site-header__secondary .fusion-contact-info a:hover,
.site-header__secondary .fusion-contact-info a:focus {
    color: var(--header_top_menu_sub_hover_color, var(--color-crimson-deep));
}

.site-header__secondary .fusion-secondary-menu .sub-menu a:hover,
.site-header__secondary .fusion-secondary-menu .sub-menu a:focus {
    background-color: var(--header_top_menu_bg_hover_color, color-mix(in srgb, var(--header_top_bg_color, #ffffff) 88%, #000 12%));
}

.site-header__secondary .fusion-social-links-header a:hover,
.site-header__secondary .fusion-social-links-header a:focus {
    color: var(--header_top_menu_sub_hover_color, var(--header_social_links_icon_color, var(--color-crimson-deep)));
    background-color: var(--header_top_menu_bg_hover_color, var(--header_social_links_box_color, transparent));
}

.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 92px;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    color: inherit;
}

.brand__mark img,
.brand .custom-logo {
    width: 76px;
    height: auto;
}

.brand__text {
    display: grid;
    gap: 0.15rem;
}

.brand__eyebrow {
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-crimson);
}

.brand__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-plum);
}

.site-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.site-navigation > ul,
.site-navigation .menu {
    display: flex;
    align-items: center;
    gap: 1.4rem;
}

.site-navigation li {
    position: relative;
}

.site-navigation a,
.site-navigation span {
    display: inline-block;
    padding: 0.65rem 0;
    font-weight: 700;
    color: var(--color-plum);
}

.site-navigation .sub-menu {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    min-width: 230px;
    padding: 0.9rem;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: var(--shadow-soft);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: all 0.2s ease;
}

.site-navigation li:hover > .sub-menu,
.site-navigation li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.site-navigation .sub-menu li + li {
    border-top: 1px solid rgba(143, 21, 55, 0.08);
}

.nav-toggle {
    display: none;
    flex-direction: column;
    gap: 0.3rem;
    padding: 0;
    background: transparent;
    border: 0;
}

.nav-toggle span {
    width: 28px;
    height: 2px;
    background: var(--color-plum);
}

.hero,
.page-hero {
    position: relative;
    overflow: hidden;
}

.hero::before,
.page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(135deg, rgba(143, 21, 55, 0.95), rgba(67, 32, 44, 0.88)),
        radial-gradient(circle at top right, rgba(201, 169, 107, 0.45), transparent 28%);
}

.hero__grid,
.page-hero .site-shell {
    position: relative;
    z-index: 1;
}

.hero__grid {
    display: grid;
    grid-template-columns: 1.5fr 0.9fr;
    gap: 2rem;
    align-items: center;
    min-height: 72vh;
    padding: 5.5rem 0;
}

.hero h1,
.page-hero h1 {
    color: var(--color-white);
    font-size: clamp(2.6rem, 6vw, 5rem);
}

.hero__lead,
.page-hero p,
.archive-description {
    max-width: 60ch;
    color: rgba(255, 255, 255, 0.92);
    font-size: 1.08rem;
}

.hero .section-kicker,
.page-hero .section-kicker,
.breadcrumbs a,
.breadcrumbs span {
    color: rgba(255, 255, 255, 0.84);
}

.hero__card {
    padding: 2rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.1);
    box-shadow: var(--shadow-soft);
}

.hero__list {
    padding-left: 1.15rem;
    color: var(--color-white);
}

.page-hero {
    padding: 3.5rem 0;
}

.page-hero--compact {
    padding: 2.8rem 0;
}

.breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-bottom: 1rem;
    font-size: 0.92rem;
}

.breadcrumbs__item:not(:last-child)::after {
    content: "/";
    margin-left: 0.65rem;
    opacity: 0.65;
}

.feature-split,
.section-heading,
.page-layout,
.content-grid {
    display: grid;
    gap: 1.5rem;
}

.feature-split {
    grid-template-columns: 0.95fr 1.25fr;
}

.section-heading {
    grid-template-columns: 1fr auto;
    align-items: end;
    margin-bottom: 1.75rem;
}

.card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.4rem;
}

.card-grid--news {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.card,
.entry-card,
.section-nav,
.widget {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.88);
    box-shadow: var(--shadow-soft);
}

.card {
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.card:hover,
.card:focus-within {
    transform: translateY(-4px);
    box-shadow: var(--shadow-card);
}

.card__image-link img,
.entry-card__media img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.card__body,
.entry-card__content,
.section-nav,
.widget {
    padding: 1.6rem;
}

.card--wide {
    grid-column: 1 / -1;
}

.content-grid,
.page-layout {
    grid-template-columns: minmax(0, 1fr) 300px;
    align-items: start;
}

.content-grid > article:only-child,
.page-layout > article:only-child {
    grid-column: 1 / 2;
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
    margin-top: 1.6rem;
}

.entry-content ul,
.entry-content ol {
    padding-left: 1.4rem;
}

.entry-content table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1.5rem;
}

.entry-content th,
.entry-content td {
    padding: 0.8rem;
    border: 1px solid rgba(103, 16, 40, 0.1);
    text-align: left;
}

.section-nav h2,
.widget-title {
    font-size: 1.05rem;
}

.section-nav ul,
.site-footer ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.section-nav li + li,
.site-footer li + li {
    margin-top: 0.75rem;
}

.section-nav .is-current a {
    color: var(--color-crimson-deep);
    text-decoration: underline;
}

.sidebar {
    display: grid;
    gap: 1rem;
}

.site-footer,
.fusion-footer .site-footer {
    margin-top: 3rem;
    padding-top: 4rem;
    color: rgba(255, 255, 255, 0.82);
    background: linear-gradient(180deg, var(--color-plum), #1b1014);
}

.fusion-footer .site-footer .fusion-builder-row,
.fusion-footer .site-footer .fusion-builder-column {
    background: transparent;
}

.site-footer h2,
.site-footer h3,
.site-footer a,
.fusion-footer .site-footer h2,
.fusion-footer .site-footer h3,
.fusion-footer .site-footer a {
    color: var(--color-white);
}

.site-footer__grid {
    display: grid;
    grid-template-columns: 1.25fr 1fr 1fr;
    gap: 2rem;
    padding-bottom: 2.5rem;
}

.site-footer__meta {
    padding: 1.1rem 0 1.8rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.search-form {
    display: flex;
    gap: 0.75rem;
    margin-top: 1rem;
}

.search-field,
input[type="text"],
input[type="email"],
input[type="search"],
textarea {
    width: 100%;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(103, 16, 40, 0.16);
    border-radius: 14px;
    background: var(--color-white);
    color: var(--color-ink);
    font: inherit;
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.front-page-builder {
    padding: 0 0 5rem;
}

.front-page-builder__content > *:not(.alignfull) {
    width: min(var(--site-width), calc(100% - 2rem));
    margin-right: auto;
    margin-left: auto;
}

.front-page-builder__content > .alignwide {
    width: min(calc(var(--site-width) + 140px), calc(100% - 2rem));
}

.front-page-builder__content > .alignfull {
    width: 100%;
}

.front-page-builder__content > .wp-block-group,
.front-page-builder__content > .wp-block-cover,
.front-page-builder__content > .wp-block-columns,
.front-page-builder__content .wp-block-media-text,
.front-page-builder__content .wp-block-query,
.front-page-builder__content .wp-block-gallery {
    margin-top: 0;
    margin-bottom: 0;
}

.front-page-builder__content > .wp-block-cover,
.front-page-builder__content > .wp-block-cover-image {
    min-height: 560px;
}

.front-page-builder__content > .wp-block-cover + .wp-block-group,
.front-page-builder__content > .wp-block-group + .wp-block-group {
    margin-top: 0;
}

.front-page-builder__content .wp-block-buttons {
    margin-top: 1.5rem;
    margin-bottom: 1rem;
}

.front-page-builder__content .wp-block-button__link {
    border-radius: 999px;
    padding: 0.9rem 1.45rem;
    background: linear-gradient(135deg, var(--color-crimson), var(--color-crimson-deep));
}

.front-page-builder__content .wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent;
    border-color: rgba(143, 21, 55, 0.22);
    color: var(--color-crimson);
}

.front-page-builder__content .wp-block-columns {
    gap: 1.4rem;
}

.front-page-builder__content .wp-block-column {
    min-width: 0;
}

.front-page-builder__content .wp-block-image img,
.front-page-builder__content .wp-block-post-featured-image img {
    border-radius: var(--radius-md);
}

.front-page-builder__content .wp-block-query .wp-block-post,
.front-page-builder__content .wp-block-group.is-style-default,
.front-page-builder__content .is-layout-constrained > .wp-block-group.has-background {
    border-radius: var(--radius-lg);
}

.front-page-builder__content .hero,
.front-page-builder__content .section-space,
.front-page-builder__content .section-surface {
    margin-top: 0;
    margin-bottom: 0;
}

.front-page-builder__content .section-space {
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.front-page-builder__content .button .wp-block-button__link {
    min-height: 48px;
    border-radius: 999px;
    padding: 0.8rem 1.35rem;
    background: linear-gradient(135deg, var(--color-crimson), var(--color-crimson-deep));
    color: var(--color-white);
    font-weight: 700;
}

.front-page-builder__content .button.button--ghost .wp-block-button__link {
    background: transparent;
    border: 1px solid rgba(143, 21, 55, 0.22);
    color: var(--color-crimson);
}

.front-page-builder__content .card-grid {
    gap: 1.4rem;
}

.front-page-builder__content .card-grid .wp-block-column {
    display: flex;
}

.front-page-builder__content .card-grid .card {
    width: 100%;
}

.front-page-builder__content .card .wp-block-image {
    margin: 0;
}

.front-page-builder__content .card__image-link img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 0;
}

.front-page-builder__content .card__body {
    padding: 1.6rem;
}

.front-page-builder__content .homepage-program-grid + .homepage-program-grid {
    margin-top: 1.4rem;
}

.front-page-builder__content .homepage-news-layout {
    align-items: stretch;
    gap: 1.5rem;
}

.front-page-builder__content .homepage-contact-card {
    height: 100%;
    padding: 1.75rem;
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, var(--color-plum), #1b1014);
    color: var(--color-white);
    box-shadow: var(--shadow-soft);
}

.front-page-builder__content .homepage-contact-card h3,
.front-page-builder__content .homepage-contact-card a,
.front-page-builder__content .homepage-contact-card p {
    color: var(--color-white);
}

@media (max-width: 980px) {
    .hero__grid,
    .feature-split,
    .section-heading,
    .content-grid,
    .page-layout,
    .site-footer__grid,
    .card-grid,
    .card-grid--news {
        grid-template-columns: 1fr;
    }

    .site-navigation {
        display: none;
        width: 100%;
        padding-bottom: 1rem;
    }

    .site-navigation.is-open {
        display: block;
    }

    .site-navigation > ul,
    .site-navigation .menu {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .site-navigation a,
    .site-navigation span {
        display: block;
        width: 100%;
    }

    .site-navigation .sub-menu {
        display: none;
        position: static;
        visibility: visible;
        opacity: 1;
        transform: none;
        min-width: auto;
        margin-bottom: 0.75rem;
        box-shadow: none;
    }

    .site-navigation .menu-item-has-children.is-open > .sub-menu {
        display: block;
    }

    .site-header__secondary-inner,
    .site-header__secondary-left,
    .site-header__secondary-right,
    .site-header__secondary .fusion-contact-info,
    .site-header__secondary .fusion-social-links-header {
        flex-wrap: wrap;
    }

    .site-header__secondary-inner {
        justify-content: center;
        padding: 0.5rem 0;
    }

    .site-header__secondary-left,
    .site-header__secondary-right {
        width: 100%;
        justify-content: center;
    }

    .site-header__secondary .fusion-secondary-menu {
        display: none;
    }

    .site-header__secondary .fusion-contact-info {
        justify-content: center;
        line-height: 1.5;
    }

    .site-header__inner {
        flex-wrap: wrap;
        padding: 0.85rem 0;
    }

    .nav-toggle {
        display: inline-flex;
    }

    .hero__grid {
        min-height: auto;
    }

    .front-page-builder__content > .wp-block-cover,
    .front-page-builder__content > .wp-block-cover-image {
        min-height: 420px;
    }

    .front-page-builder__content .homepage-news-layout,
    .front-page-builder__content .homepage-program-grid {
        display: grid;
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .brand__text {
        display: none;
    }

    .site-shell {
        width: min(var(--site-width), calc(100% - 1.25rem));
    }

    .section-space {
        padding: 3.8rem 0;
    }

    .card__body,
    .entry-card__content,
    .section-nav,
    .widget {
        padding: 1.25rem;
    }
}