/**
 * Nor Theme - Main Stylesheet
 *
 * @package Nor
 * @since 1.0.0
 */

/* ==========================================================================
   Fontello Icon Font (for Slider Revolution)
   ========================================================================== */

@font-face {
    font-family: 'fontello';
    src: url('../font-icons/font/fontello.eot');
    src: url('../font-icons/font/fontello.eot#iefix') format('embedded-opentype'),
         url('../font-icons/font/fontello.woff2') format('woff2'),
         url('../font-icons/font/fontello.woff') format('woff'),
         url('../font-icons/font/fontello.ttf') format('truetype'),
         url('../font-icons/font/fontello.svg#fontello') format('svg');
    font-weight: normal;
    font-style: normal;
}

[class^="icon-"]:before,
[class*=" icon-"]:before {
    font-family: "fontello";
    font-style: normal;
    font-weight: normal;
    speak: never;
    display: inline-block;
    text-decoration: inherit;
    text-align: center;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.icon-right:before { content: '\e836'; }
.icon-arrow-right:before { content: '\e911'; }
.icon-arrow-right-alt:before { content: '\e908'; }
.icon-right-arrow:before { content: '\e93a'; }
.icon-right-thin:before { content: '\e94c'; }
.icon-right-big:before { content: '\e92b'; }
.icon-arrow-long:before { content: '\e9b2'; }
.icon-path-3443:before { content: '\e9a4'; }

/* ==========================================================================
   Reveal Link Animation
   Reusable class for "Learn More" style links with arrow reveal effect
   ========================================================================== */

.reveal-link {
    display: inline-flex;
    align-items: center;
    font-weight: 600;
    font-size: .9rem;
    color: var(--nor-color-secondary, #4a3728);
    text-decoration: none;
}

.reveal-link .arrow {
    font-size: 11px;
}

.reveal-link .text {
    display: inline-block;
    max-width: 0;
    opacity: 0;
    white-space: nowrap;
    transition: max-width 0.45s ease, opacity 0.45s ease, margin 0.45s ease;
    margin-right: 0;
    overflow: hidden;
}

.reveal-link .arrow {
    display: inline-flex;
    align-items: center;
    transition: transform 0.45s ease, color 0.45s ease;
}

.reveal-link:hover .text {
    max-width: 100px;
    opacity: 1;
    margin-right: 0.25rem;
}

.reveal-link:hover .arrow {
    color: var(--nor-color-primary, #8b5a2b);
    transform: translateX(4px);
}

/* Card hover triggers reveal-link animation */
.sacrament-card:hover .reveal-link .text,
.bulletin-card:hover .reveal-link .text,
.council-card:hover .reveal-link .text,
.activity-card:hover .reveal-link .text,
.obituary-card:hover .reveal-link .text {
    max-width: 100px;
    opacity: 1;
    margin-right: 0.25rem;
}

.sacrament-card:hover .reveal-link .arrow,
.bulletin-card:hover .reveal-link .arrow,
.council-card:hover .reveal-link .arrow,
.activity-card:hover .reveal-link .arrow,
.obituary-card:hover .reveal-link .arrow {
    color: var(--nor-color-primary, #8b5a2b);
    transform: translateX(4px);
}

/* ==========================================================================
   CSS Custom Properties
   ========================================================================== */

:root {
    /* Colors */
    --nor-color-primary: #ffc64b;
    --nor-color-primary-dark: #cca331;
    --nor-color-primary-light: #ffe4a8;
    --nor-color-secondary: #351a0f;
    --nor-color-secondary-light: #3d2420;
    --nor-color-text: #6B6E71;
    --nor-color-text-dark: #240C00;
    --nor-color-text-light: #666666;
    --nor-color-text-muted: #999999;
    --nor-color-white: #F7F2F0;
    --nor-color-light: #f8f9fa;
    --nor-color-border: #e5e5e5;
    --nor-color-success: #28a745;
    --nor-color-error: #dc3545;

    /* Typography */
    --nor-font-primary: 'Kumbh Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --nor-font-size-base: 16px;
    --nor-font-size-sm: 14px;
    --nor-font-size-xs: 13px;
    --nor-font-size-lg: 18px;
    --nor-font-size-xl: 20px;
    --nor-font-size-2xl: 24px;
    --nor-font-size-3xl: 30px;
    --nor-font-size-4xl: 36px;
    --nor-font-size-5xl: 48px;
    --nor-font-size-6xl: 64px;
    --nor-line-height-base: 1.6;
    --nor-line-height-heading: 1.2;

    /* Spacing */
    --nor-spacing-xs: 0.25rem;
    --nor-spacing-sm: 0.5rem;
    --nor-spacing-md: 1rem;
    --nor-spacing-lg: 1.5rem;
    --nor-spacing-xl: 2rem;
    --nor-spacing-2xl: 3rem;
    --nor-spacing-3xl: 4rem;
    --nor-spacing-4xl: 6rem;

    /* Layout */
    --nor-container-width: 1200px;
    --nor-container-narrow: 800px;
    --nor-container-wide: 1400px;
    --nor-sidebar-width: 300px;
    --nor-header-height: 80px;

    /* Borders */
    --nor-border-radius: 4px;
    --nor-border-radius-lg: 8px;
    --nor-border-radius-xl: 12px;
    --nor-border-radius-full: 9999px;

    /* Shadows */
    --nor-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --nor-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    --nor-shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.1);
    --nor-shadow-xl: 0 20px 40px rgba(0, 0, 0, 0.15);

    /* Transitions */
    --nor-transition-fast: 150ms ease;
    --nor-transition-base: 300ms ease;
    --nor-transition-slow: 500ms ease;

    /* Z-index */
    --nor-z-dropdown: 100;
    --nor-z-sticky: 200;
    --nor-z-fixed: 300;
    --nor-z-modal-backdrop: 400;
    --nor-z-modal: 500;
}

/* ==========================================================================
   Reset & Base Styles
   ========================================================================== */

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

html {
    font-size: var(--nor-font-size-base);
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    font-family: var(--nor-font-primary);
    font-size: 1rem;
    font-weight: 400;
    line-height: var(--nor-line-height-base);
    color: var(--nor-color-text);
    background-color: var(--nor-color-white);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.site {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.site-main {
    flex: 1;
}

h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: var(--nor-spacing-md);
    font-weight: 700;
    line-height: var(--nor-line-height-heading);
    color: var(--nor-color-secondary);
}

h1 { font-size: var(--nor-font-size-5xl); }
h2 { font-size: var(--nor-font-size-4xl); }
h3 { font-size: var(--nor-font-size-3xl); }
h4 { font-size: var(--nor-font-size-2xl); }
h5 { font-size: var(--nor-font-size-xl); }
h6 { font-size: var(--nor-font-size-lg); }

p {
    margin-top: 0;
    margin-bottom: var(--nor-spacing-md);
}

a {
    color: var(--nor-color-secondary);
    text-decoration: none;
    transition: color var(--nor-transition-fast);
}

a:hover {
    color: var(--nor-color-secondary-light);
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

ul, ol {
    margin-top: 0;
    margin-bottom: var(--nor-spacing-md);
    padding-left: var(--nor-spacing-xl);
}

/* ==========================================================================
   Layout Components
   ========================================================================== */

.container {
    width: 100%;
    max-width: var(--nor-container-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--nor-spacing-md);
    padding-right: var(--nor-spacing-md);
}

.container-narrow {
    max-width: var(--nor-container-narrow);
}

.container-wide {
    max-width: var(--nor-container-wide);
}

.content-area {
    display: flex;
    gap: var(--nor-spacing-2xl);
}

.content-area.has-sidebar .main-content {
    flex: 1;
    min-width: 0;
}

.content-area .sidebar {
    width: var(--nor-sidebar-width);
    flex-shrink: 0;
}

/* ==========================================================================
   Header Styles
   ========================================================================== */

.site-header {
    position: relative;
    background-color: #fff;
    box-shadow: var(--nor-shadow-sm);
    z-index: var(--nor-z-sticky);
}

.site-header.header-transparent {
    position: relative;
    background-color: #fff;
    box-shadow: var(--nor-shadow-sm);
}

.site-header.header-transparent .nav-link,
.site-header.header-transparent .site-title {
    color: var(--nor-color-secondary);
}

.site-header.is-sticky {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background-color: #fff;
    box-shadow: var(--nor-shadow);
    animation: slideDown 0.45s ease;
    transition: transform 0.45s ease;
}

.site-header.is-sticky.is-hidden {
    transform: translateY(-100%);
}

@keyframes slideDown {
    from {
        transform: translateY(-100%);
    }
    to {
        transform: translateY(0);
    }
}

.header-inner {
    padding: var(--nor-spacing-md) 0;
}

.header-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--nor-spacing-xl);
}

.site-branding {
    display: flex;
    align-items: center;
    gap: var(--nor-spacing-md);
    flex-shrink: 0;
}

.site-logo img,
.custom-logo {
    height: 60px;
    width: auto;
    max-width: 200px;
}

.header-title-wrap {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    flex-shrink: 0;
}

.header-title {
    display: block;
    font-size: var(--nor-font-size-lg);
    font-weight: 600;
    color: var(--nor-color-secondary);
    line-height: 1.3;
    white-space: nowrap;
}

.header-subtitle {
    display: block;
    font-size: var(--nor-font-size-lg);
    font-weight: 600;
    color: var(--nor-color-secondary);
    line-height: 1.3;
    white-space: nowrap;
}

.header-title-wrap:hover .header-title,
.header-title-wrap:hover .header-subtitle {
    color: var(--nor-color-primary-dark);
}

.site-title {
    margin: 0;
    font-size: var(--nor-font-size-2xl);
    font-weight: 700;
    color: var(--nor-color-secondary);
}

.site-title a {
    color: inherit;
}

.site-description {
    margin: 0;
    font-size: var(--nor-font-size-sm);
    color: var(--nor-color-text-muted);
}

/* Navigation */
.main-navigation {
    flex: 1;
    display: flex;
    justify-content: flex-end;
}

.primary-menu {
    display: flex;
    align-items: center;
    gap: var(--nor-spacing-lg);
    margin: 0;
    padding: 0;
    list-style: none;
}

.primary-menu .nav-item,
.primary-menu .menu-item {
    position: relative;
}

.primary-menu .nav-link,
.primary-menu > li > a {
    display: block;
    padding: var(--nor-spacing-sm) 0;
    font-size: var(--nor-font-size-base);
    font-weight: 500;
    color: var(--nor-color-secondary);
    transition: color var(--nor-transition-fast);
}

.primary-menu > li > a {
    position: relative;
}

.primary-menu > li > a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--nor-color-secondary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.45s ease;
}

.primary-menu > li > a:hover::after,
.primary-menu > li.current-menu-item > a::after,
.primary-menu > li.current-menu-ancestor > a::after {
    transform: scaleX(1);
}

.primary-menu > li:hover > a,
.primary-menu > li.menu-item-has-children:hover > a {
    color: var(--nor-color-secondary);
}

/* Dropdown Menu */
.primary-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 10000;
    min-width: 250px;
    padding: 1.4em 0;
    white-space: nowrap;
    margin: 0;
    background-color: var(--nor-color-secondary);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    list-style: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity 0.45s ease, visibility 0.45s ease, transform 0.45s ease;
}

.primary-menu .has-dropdown:hover .sub-menu,
.primary-menu .menu-item-has-children:hover .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}


.primary-menu .sub-menu li {
    margin: 0;
}

.primary-menu .sub-menu a,
.site-header.header-transparent .primary-menu .sub-menu a {
    display: inline-block;
    padding: 0.6em 1.5em;
    color: rgba(255, 255, 255, 0.8) !important;
    font-size: 0.95em;
    font-weight: 400;
    position: relative;
    transition: color 0.2s ease, padding-left 0.2s ease;
}

.primary-menu .sub-menu li {
    display: block;
}

.primary-menu .sub-menu a::after {
    content: '';
    position: absolute;
    bottom: 0.4em;
    left: 2.5em;
    width: calc(100% - 4em);
    height: 1px;
    background-color: #fff;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.2s ease 0.2s;
}

.primary-menu .sub-menu a:hover,
.site-header.header-transparent .primary-menu .sub-menu a:hover {
    color: #fff !important;
    padding-left: 2.5em;
}

.primary-menu .sub-menu a:hover::after {
    transform: scaleX(1);
}

.primary-menu .sub-menu .current-menu-item > a,
.site-header.header-transparent .primary-menu .sub-menu .current-menu-item > a,
.sub-menu .current-menu-item > a {
    color: #fff !important;
    padding-left: 2.5em;
}

.primary-menu .sub-menu .current-menu-item > a::after {
    transform: scaleX(1);
}

/* Nested submenus */
.primary-menu .sub-menu .sub-menu {
    top: -1.4em;
    left: 100%;
    margin-left: 2px;
}


/* Last item dropdown aligns right */
.primary-menu > li:last-child .sub-menu {
    left: auto;
    right: 0;
}

/* Menu separator */
.primary-menu .menu-item-separator {
    padding: 0.5rem 1.5rem;
    pointer-events: none;
}

.primary-menu .menu-item-separator .separator-line {
    display: block;
    height: 1px;
    background-color: rgba(255, 255, 255, 0.2);
}

/* Mobile Menu Toggle */
.menu-toggle {
    display: none;
    padding: var(--nor-spacing-sm);
    background: none;
    border: none;
    cursor: pointer;
}

.hamburger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    width: 24px;
}

.hamburger-line {
    display: block;
    height: 2px;
    background-color: var(--nor-color-primary, #ffc64b);
    transition: all var(--nor-transition-fast);
}

.header-transparent .hamburger-line {
    background-color: var(--nor-color-primary, #ffc64b);
}

/* Header Actions */
.header-actions {
    display: flex;
    align-items: center;
    gap: var(--nor-spacing-md);
}

.header-donate-btn {
    padding: var(--nor-spacing-sm) var(--nor-spacing-xl);
    color: #fff !important;
}

.header-donate-btn:hover {
    color: #fff !important;
    background-color: var(--nor-color-primary-dark);
    border-color: var(--nor-color-primary-dark);
}

/* ==========================================================================
   Mobile Navigation
   ========================================================================== */

.mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    opacity: 0;
    visibility: hidden;
    transition: all var(--nor-transition-base);
    z-index: var(--nor-z-modal-backdrop);
}

.mobile-menu-overlay.is-active {
    opacity: 1;
    visibility: visible;
}

.mobile-navigation {
    position: fixed;
    top: 0;
    right: 0;
    width: 300px;
    max-width: 100%;
    height: 100vh;
    background-color: var(--nor-color-white);
    transform: translateX(100%);
    transition: transform var(--nor-transition-base);
    z-index: var(--nor-z-modal);
    overflow-y: auto;
}

.mobile-navigation.is-active {
    transform: translateX(0);
}

.mobile-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--nor-spacing-md);
    border-bottom: 1px solid var(--nor-color-border);
}

.mobile-menu-brand {
    display: flex;
    flex-direction: column;
    text-decoration: none;
}

.mobile-menu-brand__title {
    font-size: var(--nor-font-size-xs);
    font-weight: 600;
    color: var(--nor-color-secondary);
    line-height: 1.3;
}

.mobile-menu-brand__subtitle {
    font-size: var(--nor-font-size-xs);
    font-weight: 600;
    color: var(--nor-color-secondary);
    line-height: 1.3;
}

.mobile-menu-close {
    padding: var(--nor-spacing-sm);
    background: none;
    border: none;
    font-size: var(--nor-font-size-2xl);
    cursor: pointer;
}

.mobile-menu-content {
    padding: var(--nor-spacing-md);
}

.mobile-menu {
    margin: 0;
    padding: 0;
    list-style: none;
}

.mobile-menu li {
    border-bottom: 1px solid var(--nor-color-border);
}

.mobile-menu ul,
.mobile-menu .sub-menu {
    margin: 0;
    padding: 0;
    list-style: none;
}

.mobile-menu .sub-menu li {
    border-bottom: none;
}

.mobile-menu .sub-menu a {
    padding-left: calc(var(--nor-spacing-md) + var(--nor-spacing-lg));
    font-size: var(--nor-font-size-sm);
}

.mobile-menu a {
    display: block;
    padding: var(--nor-spacing-md);
    color: var(--nor-color-secondary);
    font-weight: 500;
}

.mobile-menu-donate {
    margin-top: var(--nor-spacing-xl);
}

.mobile-menu-donate .btn {
    display: flex;
    width: 100%;
    justify-content: center;
    text-align: center;
}

/* ==========================================================================
   Buttons
   ========================================================================== */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--nor-spacing-sm);
    padding: var(--nor-spacing-md) var(--nor-spacing-xl);
    font-family: var(--nor-font-primary);
    font-size: var(--nor-font-size-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-decoration: none;
    border: 2px solid transparent;
    border-radius: 0;
    cursor: pointer;
    transition: all var(--nor-transition-fast);
}

.btn-primary {
    color: var(--nor-color-secondary);
    background-color: var(--nor-color-primary);
    border-color: var(--nor-color-primary);
}

.btn-primary:hover {
    color: var(--nor-color-white);
    background-color: var(--nor-color-primary-dark);
    border-color: var(--nor-color-primary-dark);
}

.btn-secondary,
a.btn-secondary {
    color: var(--nor-color-white);
    background-color: var(--nor-color-secondary);
    border-color: var(--nor-color-secondary);
}

.btn-secondary:hover {
    background-color: var(--nor-color-secondary-light);
    border-color: var(--nor-color-secondary-light);
}

.btn-outline {
    color: var(--nor-color-secondary);
    background-color: transparent;
    border-color: var(--nor-color-secondary);
}

.btn-outline:hover {
    color: var(--nor-color-white);
    background-color: var(--nor-color-secondary);
}

.btn-lg {
    padding: var(--nor-spacing-lg) var(--nor-spacing-2xl);
    font-size: var(--nor-font-size-base);
}

.btn-block {
    display: block;
    width: 100%;
}

/* ==========================================================================
   Hero Section
   ========================================================================== */

.hero-section {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 80vh;
    padding: var(--nor-spacing-4xl) 0;
    background-color: var(--nor-color-white);
    background-size: cover;
    background-position: center;
}

.hero-overlay {
    display: none;
}

.hero-content {
    position: relative;
    max-width: 700px;
    margin: 0 auto;
    text-align: center;
    color: var(--nor-color-text);
}

.hero-title {
    margin-bottom: var(--nor-spacing-lg);
    font-size: var(--nor-font-size-6xl);
    color: var(--nor-color-secondary);
}

.hero-subtitle {
    margin-bottom: var(--nor-spacing-xl);
    font-size: var(--nor-font-size-xl);
    line-height: 1.5;
}

.hero-actions {
    display: flex;
    justify-content: center;
    gap: var(--nor-spacing-md);
}

/* Slider Wrapper */
.hero-slider {
    position: relative;
    z-index: 1;
}

.hero-slider-wrap {
    position: relative;
}

.nor-slider-wrap .rs-module-wrap {
    width: 100% !important;
}

/* Fix slider overlap - ensure content flows after slider */
.front-page .hero-slider + .entry-content,
.front-page .hero-slider ~ *:not(.hero-banner) {
    position: relative;
    z-index: 2;
    background-color: var(--nor-color-white);
}

.front-page .site-main {
    overflow: visible;
}

/* Revolution Slider specific fixes */
.rs-module-wrap {
    position: relative !important;
}

.front-page .entry-content {
    position: relative;
    z-index: 2;
}

/* Hero Banner Section */
.hero-banner {
    background-color: #ffc64b;
    background-color: var(--nor-color-primary, #ffc64b);
    color: #fff;
    padding: 120px 1.5rem;
    text-align: center;
    position: relative;
    z-index: 2;
}

.hero-banner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: url('../svg/vagharshabad.svg');
    background-repeat: no-repeat;
    background-position: bottom center;
    background-size: 85% auto;
    opacity: 0.15;
    z-index: 0;
}

.hero-banner__container {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin: 0 auto;
}

.hero-banner__label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 20px;
    color: #fff;
}

.hero-banner__title {
    font-size: 42px;
    font-weight: 700;
    margin: 0 0 30px;
    color: #fff;
    line-height: 1.3;
}

.hero-banner__cycle-word {
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 2px;
}

.hero-banner__footer {
    font-size: 18px;
    font-weight: 700;
    margin-top: 10px;
}

/* Home Page Sections */
.home-section {
    padding: 120px 0;
}

.home-section .section-header {
    text-align: center;
    margin-bottom: 50px;
}

.home-section .section-label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 20px;
}

.home-section .section-title {
    font-size: 36px;
    font-weight: 700;
    margin: 0;
}

.home-section .section-footer {
    text-align: center;
    margin-top: 50px;
}

/* Home Activities Section */
.home-activities {
    background-color: #F7F2F0 !important;
    background-image: url('../svg/gothic-tracery-window-8.svg');
    background-repeat: no-repeat;
    background-position: -10% center;
    background-size: 100% auto;
    position: relative;
}

.home-activities::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(247, 242, 240, 0.96);
    pointer-events: none;
}

.home-activities > .container {
    position: relative;
}

.home-activities .section-label {
    color: var(--nor-color-text);
}

.home-activities .section-title {
    color: var(--nor-color-secondary);
}

.home-activities .activities-home-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
}

.activity-home-card {
    position: relative;
    overflow: hidden;
}

.activity-home-card__link {
    display: block;
    position: relative;
    text-decoration: none;
}

.activity-home-card__link::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.15);
    z-index: 1;
    transition: background-color 0.45s ease;
}

.activity-home-card__link:hover::before {
    background-color: rgba(0, 0, 0, 0.8);
}

.activity-home-card__number {
    position: absolute;
    top: 20px;
    left: 25px;
    font-size: 48px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.5);
    z-index: 2;
    opacity: 0;
    transition: opacity 0.45s ease;
}

.activity-home-card__link:hover .activity-home-card__number {
    opacity: 1;
}

.activity-home-card__image {
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.activity-home-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.activity-home-card__link:hover .activity-home-card__image img {
    transform: scale(1.05);
}

.activity-home-card__image--placeholder {
    background-color: #e5e5e5;
}

.activity-home-card__overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 25px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.4) 0%, transparent 100%);
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 2;
}

.activity-home-card__title {
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    color: #fff;
    flex: 1;
    padding-right: 15px;
}

.activity-home-card__icon {
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    color: #fff;
    flex-shrink: 0;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.activity-home-card__link:hover .activity-home-card__icon {
    background-color: rgba(255, 255, 255, 0.2);
    border-color: #fff;
}

/* Home About Section */
.home-about {
    background-color: #fff !important;
    position: relative;
    z-index: 2;
    margin-bottom: 60px;
}

.home-events {
    margin-bottom: 60px;
    z-index: 2;
}

.home-about::before,
.home-events::before {
    content: '';
    position: absolute;
    top: -80px;
    left: 0;
    width: 100%;
    height: 100px;
    background: url('../images/torn-edge.svg') no-repeat center bottom;
    background-size: 100% auto;
    z-index: 3;
}

.home-about::after,
.home-events::after {
    content: '';
    position: absolute;
    bottom: -80px;
    left: 0;
    width: 100%;
    height: 100px;
    background: url('../images/torn-edge-bottom.svg') no-repeat center top;
    background-size: 100% auto;
    z-index: 3;
}

.home-about .about-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

.home-about .about-image img {
    width: 100%;
    height: auto;
    display: block;
}

.home-about .about-content .section-label {
    color: var(--nor-color-text);
    margin-bottom: 15px;
}

.home-about .about-content .section-title {
    text-align: left;
    margin-bottom: 20px;
    color: var(--nor-color-secondary);
}

.home-about .about-description {
    color: var(--nor-color-text);
    line-height: 1.7;
    margin-bottom: 25px;
}

.home-about .about-schedule {
    font-weight: 600;
    color: rgb(110, 110, 110);
    line-height: 1.8;
    margin-bottom: 30px;
}

.home-about .btn-secondary {
    background-color: var(--nor-color-secondary);
    color: #fff;
    padding: 15px 40px;
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 1px;
    font-size: 14px;
}

.home-about .btn-secondary:hover {
    background-color: #1a0d07;
    color: #fff;
}

/* Homepage Sacraments Section */
.home-sacraments {
    background-color: #F7F2F0 !important;
    /*background-image: url('../svg/gothic-tracery-window-1.svg');*/
    background-image: url('../svg/gothic-tracery-window-8.svg');
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 100% auto;
    position: relative;
}

.home-sacraments::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(247, 242, 240, 0.96);
    pointer-events: none;
}

.home-sacraments > .container {
    position: relative;
}

.home-sacraments .section-label {
    color: var(--nor-color-text);
}

.home-sacraments .section-title {
    color: var(--nor-color-secondary);
}

.home-sacraments .sacraments-home-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--nor-spacing-xl);
}

.home-sacraments .sacrament-card {
    display: flex;
    flex-direction: column;
    background-color: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.45s ease, transform 0.45s ease;
    height: 100%;
}

.home-sacraments .sacrament-card:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    transform: translateY(-6px);
}

.home-sacraments .sacrament-card-thumbnail {
    position: relative;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background-color: var(--nor-color-secondary, #4a3728);
}

.home-sacraments .sacrament-card-thumbnail a {
    display: block;
    width: 100%;
    height: 100%;
}

.home-sacraments .sacrament-card-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.home-sacraments .sacrament-card:hover .sacrament-card-thumbnail img {
    transform: scale(1.05);
}

.home-sacraments .sacrament-card-content {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.5rem;
}

.home-sacraments .sacrament-card .entry-header {
    margin-bottom: 0.75rem;
}

.home-sacraments .sacrament-card .entry-title {
    font-size: 1.25rem;
    margin: 0;
    line-height: 1.3;
}

.home-sacraments .sacrament-card .entry-title a {
    color: var(--nor-color-secondary, #4a3728);
    text-decoration: none;
    transition: color 0.45s ease;
}

.home-sacraments .sacrament-card .entry-title a:hover {
    color: var(--nor-color-primary, #8b5a2b);
}

.home-sacraments .sacrament-card .entry-footer {
    margin-top: auto;
    border: none;
    padding-top: 0;
}

.home-sacraments .section-footer {
    text-align: center;
    margin-top: var(--nor-spacing-xl);
}

.home-sacraments .btn-secondary:hover {
    background-color: #1a0d07;
    color: #fff;
}

/* Homepage Events Section */
.home-events {
    background-color: #fff !important;
    position: relative;
    z-index: 2;
}

.home-events .container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start;
}

.home-events .events-header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
}

.home-events .events-header__left {
    flex-shrink: 0;
}

.home-events .events-header__left .section-label {
    text-align: left;
    margin-bottom: 10px;
}

.home-events .events-header__left .section-title {
    text-align: left;
    margin-bottom: 0;
    color: var(--nor-color-secondary);
}

.home-events .events-header__center {
    max-width: 100%;
}

.home-events .events-description {
    color: var(--nor-color-text-light);
    font-size: 15px;
    line-height: 1.7;
    margin: 0;
}

.home-events .events-header__right {
    margin-top: 10px;
}

.home-events .events-view-more {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--nor-color-secondary);
    font-weight: 500;
    text-decoration: none;
    transition: color 0.2s ease;
}

.home-events .events-view-more:hover {
    color: var(--nor-color-primary);
}

.home-events .events-view-more__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid currentColor;
    border-radius: 50%;
    font-size: 14px;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.home-events .events-view-more:hover .events-view-more__icon {
    background-color: var(--nor-color-primary);
    border-color: var(--nor-color-primary);
    color: #fff;
}

.events-home-list {
    display: flex;
    flex-direction: column;
}

.event-home-item {
    display: flex;
    align-items: center;
    gap: 20px;
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid #eee;
    position: relative;
    cursor: pointer;
}

.event-home-item__title a::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
}

.event-home-item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.event-home-item__date {
    flex-shrink: 0;
    width: 85px;
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.event-home-item__day {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--nor-color-secondary);
    color: #fff;
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
    padding: 12px 0;
    transition: background-color 0.45s ease;
}

.event-home-item:hover .event-home-item__day {
    background-color: var(--nor-color-primary);
}

.event-home-item__month {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #fff;
    color: var(--nor-color-primary);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 8px 0;
}

.event-home-item__content {
    flex: 1;
}

.event-home-item__title {
    font-size: 20px;
    font-weight: 600;
    margin: 0 0 8px;
    color: var(--nor-color-secondary);
}

.event-home-item__title a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

.event-home-item__title a:hover {
    color: var(--nor-color-primary);
}

.event-home-item__excerpt {
    font-size: 14px;
    color: var(--nor-color-text-light);
    margin: 5px 0 8px;
    line-height: 1.5;
}

.event-home-item__venue {
    display: block;
    font-weight: 500;
    color: var(--nor-color-secondary);
    margin-bottom: 5px;
}

.event-home-item__time {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--nor-color-text-light);
}

.event-home-item__calendar-icon {
    color: var(--nor-color-primary);
}

.events-no-results {
    text-align: center;
    padding: 60px 0;
    color: var(--nor-color-text-light);
    border-top: 1px solid #eee;
}

/* Homepage Bulletins */
.home-bulletins {
    background-color: #F7F2F0 !important;
    background-image: url('../svg/communion-decorations-10.svg');
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 80% auto;
    position: relative;
}

.home-bulletins::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(247, 242, 240, 0.96);
    pointer-events: none;
}

.home-bulletins > .container {
    position: relative;
}

.home-bulletins .section-header {
    text-align: center;
    margin-bottom: var(--nor-spacing-xl);
}

.home-bulletins .section-description {
    max-width: 600px;
    margin: var(--nor-spacing-md) auto 0;
    color: var(--nor-color-text-light);
}

.bulletins-home-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.bulletin-home-item {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px 0;
    border-bottom: 1px solid #eee;
    position: relative;
    cursor: pointer;
}

.bulletin-home-item:first-child {
    border-top: 1px solid #eee;
}

.bulletin-home-item__title a::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
}

.bulletin-home-item__date {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 85px;
    text-align: center;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.bulletin-home-item__day {
    background-color: var(--nor-color-secondary);
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    padding: 10px 0;
    width: 100%;
    transition: background-color 0.45s ease;
}

.bulletin-home-item:hover .bulletin-home-item__day {
    background-color: var(--nor-color-primary);
}

.bulletin-home-item__month {
    background-color: #fff;
    color: var(--nor-color-primary);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    padding: 6px 0;
    width: 100%;
    letter-spacing: 0.5px;
}

.bulletin-home-item__content {
    flex: 1;
}

.bulletin-home-item__title {
    font-size: 18px;
    font-weight: 600;
    margin: 0 0 4px 0;
}

.bulletin-home-item__title a {
    color: var(--nor-color-text);
    text-decoration: none;
}

.bulletin-home-item__title a:hover {
    color: var(--nor-color-primary);
}

.bulletin-home-item__excerpt {
    font-size: 14px;
    color: var(--nor-color-text-light);
    margin: 0;
    line-height: 1.5;
}

.bulletin-home-item__download {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: var(--nor-color-secondary);
    color: #fff;
    text-decoration: none;
    transition: background-color 0.45s ease, transform 0.2s ease;
    position: relative;
    z-index: 2;
    flex-shrink: 0;
}

.bulletin-home-item__download:hover {
    background-color: var(--nor-color-primary);
    color: #fff;
    transform: scale(1.05);
}

.bulletins-no-results {
    text-align: center;
    padding: 60px 0;
    color: var(--nor-color-text-light);
}

.home-bulletins .section-footer {
    text-align: center;
    margin-top: var(--nor-spacing-xl);
}

/* Homepage Obituaries CTA */
.home-obituaries-cta {
    position: relative;
    background-color: var(--nor-color-secondary);
    background-size: cover;
    background-position: center calc(50% + 40px);
    background-repeat: no-repeat;
    padding: 180px 0;
}

.obituaries-cta-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(28, 17, 11, 1) 0%, rgba(28, 17, 11, 0.85) 25%, rgba(28, 17, 11, 0.5) 50%, transparent 75%);
}

.home-obituaries-cta .container {
    position: relative;
    z-index: 1;
}

.obituaries-cta-content {
    text-align: center;
    max-width: 700px;
    margin: 0 auto;
}

.obituaries-cta-title {
    color: #fff;
    font-size: 36px;
    font-weight: 700;
    margin: 0 0 var(--nor-spacing-md) 0;
}

.obituaries-cta-text {
    color: rgba(255, 255, 255, 0.9);
    font-size: 18px;
    line-height: 1.6;
    margin: 0 0 var(--nor-spacing-lg) 0;
}

.home-obituaries-cta .btn-secondary {
    background-color: var(--nor-color-primary);
    color: #fff;
    border-color: var(--nor-color-primary);
}

.home-obituaries-cta .btn-secondary:hover {
    background-color: #fff;
    color: var(--nor-color-primary);
    border-color: #fff;
}

/* Single Event */
.tribe-events-schedule {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 15px;
    margin-bottom: var(--nor-spacing-lg);
}

.tribe-events-schedule > div {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

.tribe-events-schedule .tribe-events-cost {
    background-color: var(--nor-color-primary);
    color: #fff;
    padding: 5px 12px;
    border-radius: 4px;
    font-weight: 500;
}

.tribe-events-meta-label {
    display: inline;
    white-space: nowrap;
    margin-right: 5px;
}

.tribe-events-meta-value {
    display: inline;
    white-space: nowrap;
}

.tribe-events-abbr {
    display: inline;
    white-space: nowrap;
}

.tribe-events-start-time,
.tribe-events-end-time {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

.tribe-events-divider {
    display: none;
}

.tribe-events-schedule h2:empty,
.tribe-events-schedule div:empty {
    display: none;
}

/* ==========================================================================
   Page Headers
   ========================================================================== */

.page-header-hero,
.single-post-header,
.archive-header,
.search-header {
    position: relative;
    padding: var(--nor-spacing-4xl) 0 var(--nor-spacing-3xl);
    background-color: var(--nor-color-white);
    background-size: cover;
    background-position: center;
}

.single-post-header {
    padding: calc(var(--nor-header-height) + var(--nor-spacing-4xl)) 0 var(--nor-spacing-3xl);
}

.header-overlay {
    display: none;
}

.page-header-content,
.archive-header .container,
.search-header .container {
    position: relative;
    text-align: center;
    color: var(--nor-color-text);
}

.page-header-hero .page-title,
.single-post-header .entry-title,
.archive-header .page-title,
.search-header .page-title {
    color: var(--nor-color-secondary);
    font-size: var(--nor-font-size-5xl);
}

.single-post-header.no-image {
    padding-top: var(--nor-spacing-4xl);
    background-color: var(--nor-color-light);
}

.single-post-header.no-image .entry-title {
    color: var(--nor-color-secondary);
}

.single-post-header.no-image .entry-meta {
    color: var(--nor-color-text-light);
}

/* ==========================================================================
   Breadcrumbs
   ========================================================================== */

.breadcrumbs {
    margin-top: var(--nor-spacing-md);
}

.breadcrumb-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--nor-spacing-sm);
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--nor-font-size-sm);
}

.breadcrumb-item {
    display: flex;
    align-items: center;
}

.breadcrumb-item::after {
    content: '/';
    margin-left: var(--nor-spacing-sm);
    opacity: 0.5;
}

.breadcrumb-item:last-child::after {
    display: none;
}

.breadcrumb-item a {
    color: inherit;
    opacity: 0.8;
}

.breadcrumb-item a:hover {
    opacity: 1;
}

.breadcrumb-item.active {
    opacity: 1;
}

/* ==========================================================================
   Post Cards
   ========================================================================== */

.posts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: var(--nor-spacing-xl);
}

.post-card {
    background-color: var(--nor-color-white);
    border-radius: var(--nor-border-radius-lg);
    box-shadow: var(--nor-shadow);
    overflow: hidden;
    transition: transform var(--nor-transition-base), box-shadow var(--nor-transition-base);
}

.post-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--nor-shadow-lg);
}

.post-card-thumbnail {
    position: relative;
    overflow: hidden;
}

.post-card-thumbnail img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    transition: transform var(--nor-transition-slow);
}

.post-card:hover .post-card-thumbnail img {
    transform: scale(1.05);
}

.post-card-thumbnail a {
    display: block;
}

.post-card-content {
    padding: var(--nor-spacing-lg);
}

.category-badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--nor-spacing-xs);
    margin-bottom: var(--nor-spacing-sm);
}

.category-badge {
    display: inline-block;
    padding: var(--nor-spacing-xs) var(--nor-spacing-sm);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--nor-color-primary-dark);
    background-color: var(--nor-color-primary-light);
    border-radius: var(--nor-border-radius);
}

.post-card .entry-title {
    margin-bottom: var(--nor-spacing-sm);
    font-size: var(--nor-font-size-xl);
}

.post-card .entry-title a {
    color: var(--nor-color-secondary);
}

.post-card .entry-title a:hover {
    color: var(--nor-color-primary);
}

.entry-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--nor-spacing-md);
    margin-bottom: var(--nor-spacing-md);
    font-size: var(--nor-font-size-sm);
    color: var(--nor-color-text-muted);
}

.entry-meta a {
    color: inherit;
}

.entry-meta a:hover {
    color: var(--nor-color-primary);
}

.entry-excerpt {
    margin-bottom: var(--nor-spacing-md);
    color: var(--nor-color-text-light);
}

.read-more-link {
    display: inline-flex;
    align-items: center;
    gap: var(--nor-spacing-xs);
    font-weight: 600;
    color: var(--nor-color-secondary);
}

.read-more-link:hover {
    color: var(--nor-color-secondary-light);
}

.read-more-link .arrow {
    transition: transform var(--nor-transition-fast);
}

.read-more-link:hover .arrow {
    transform: translateX(3px);
}

/* ==========================================================================
   Single Post
   ========================================================================== */

.single-post .entry-content {
    max-width: var(--nor-container-narrow);
    margin: 0 auto var(--nor-spacing-2xl);
    font-size: var(--nor-font-size-lg);
}

.single-post .entry-content p {
    margin-bottom: var(--nor-spacing-lg);
}

.single-post .entry-content h2,
.single-post .entry-content h3,
.single-post .entry-content h4 {
    margin-top: var(--nor-spacing-2xl);
}

.single-post .entry-content img {
    border-radius: var(--nor-border-radius);
}

.single-post .entry-content blockquote {
    margin: var(--nor-spacing-xl) 0;
    padding: var(--nor-spacing-lg) var(--nor-spacing-xl);
    border-left: 4px solid var(--nor-color-primary);
    background-color: var(--nor-color-light);
    font-style: italic;
}

.single-post .entry-footer {
    padding-top: var(--nor-spacing-xl);
    border-top: 1px solid var(--nor-color-border);
}

.post-navigation {
    margin-top: var(--nor-spacing-2xl);
    padding: var(--nor-spacing-xl) 0;
    border-top: 1px solid var(--nor-color-border);
    border-bottom: 1px solid var(--nor-color-border);
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
    background-color: #1C110B;
    color: #D2D3D5;
}

.footer-main {
    padding: 60px 0 40px;
}

.footer-brand {
    display: flex;
    align-items: center;
    gap: var(--nor-spacing-lg);
}

.footer-logo {
    display: block;
    flex-shrink: 0;
}

.footer-logo-img {
    height: 120px;
    width: auto;
}

.footer-grid {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--nor-spacing-2xl);
}

.footer-column {
    text-align: left;
}

.footer-column-social {
    flex-shrink: 0;
}

.footer-title {
    margin: 0;
    font-size: var(--nor-font-size-4xl);
    font-weight: 600;
    color: #fff;
}

.footer-label {
    display: block;
    margin-bottom: var(--nor-spacing-sm);
    font-size: var(--nor-font-size-sm);
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.7;
}

.footer-column p {
    margin: 0;
    font-size: var(--nor-font-size-lg);
    color: #fff;
}

.footer-social {
    display: flex;
    gap: var(--nor-spacing-md);
    margin-top: var(--nor-spacing-md);
}

.social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--nor-border-radius-full);
    background-color: rgba(255, 255, 255, 0.1);
    color: #D2D3D5;
    transition: all var(--nor-transition-fast);
}

.social-link:hover {
    background-color: var(--nor-color-primary);
    color: #1C110B;
}

.social-link svg {
    width: 20px;
    height: 20px;
}

.footer-email,
.footer-phone {
    display: block;
    font-size: var(--nor-font-size-lg);
    color: #fff;
    text-decoration: none;
    transition: color var(--nor-transition-fast);
    margin-bottom: var(--nor-spacing-xs);
}

.footer-email:hover,
.footer-phone:hover {
    color: var(--nor-color-primary);
}

.footer-navigation {
    margin-top: var(--nor-spacing-xl);
    text-align: center;
}

.footer-menu {
    display: flex;
    justify-content: center;
    gap: var(--nor-spacing-xl);
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer-menu a {
    color: #D2D3D5;
    text-decoration: none;
    transition: color var(--nor-transition-fast);
}

.footer-menu a:hover {
    color: #fff;
}

.footer-bottom {
    padding: var(--nor-spacing-lg) 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-bottom-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.footer-navigation {
    margin: 0;
}

.footer-menu {
    display: flex;
    gap: var(--nor-spacing-lg);
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer-menu a {
    color: #D2D3D5;
    text-decoration: none;
    font-size: var(--nor-font-size-sm);
    transition: color var(--nor-transition-fast);
}

.footer-menu a:hover {
    color: #fff;
}

.copyright {
    margin: 0;
    font-size: var(--nor-font-size-sm);
    opacity: 0.7;
}

@media (max-width: 768px) {
    .footer-grid {
        flex-direction: column;
        gap: var(--nor-spacing-xl);
        align-items: center;
    }

    .footer-column {
        text-align: center;
        width: 100%;
    }

    .footer-brand {
        flex-direction: column;
        text-align: center;
    }

    .footer-logo {
        display: flex;
        justify-content: center;
    }

    .footer-title {
        text-align: center;
    }

    .footer-label {
        text-align: center;
    }

    .footer-column p {
        text-align: center;
    }

    .footer-email,
    .footer-phone {
        text-align: center;
    }

    .footer-social {
        justify-content: center;
    }

    .footer-bottom-content {
        flex-direction: column;
        gap: var(--nor-spacing-md);
        text-align: center;
    }
}

/* ==========================================================================
   Sidebar & Widgets
   ========================================================================== */

.widget {
    margin-bottom: var(--nor-spacing-xl);
    padding: var(--nor-spacing-lg);
    background-color: var(--nor-color-light);
    border-radius: var(--nor-border-radius-lg);
}

.widget-title {
    margin-bottom: var(--nor-spacing-md);
    padding-bottom: var(--nor-spacing-sm);
    font-size: var(--nor-font-size-lg);
    border-bottom: 2px solid var(--nor-color-primary);
}

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

.widget li {
    padding: var(--nor-spacing-sm) 0;
    border-bottom: 1px solid var(--nor-color-border);
}

.widget li:last-child {
    border-bottom: none;
}

/* ==========================================================================
   404 Page
   ========================================================================== */

.error-404-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 80vh;
    text-align: center;
}

.error-code {
    font-size: 150px;
    font-weight: 700;
    line-height: 1;
    color: var(--nor-color-primary);
    margin-bottom: var(--nor-spacing-md);
}

.error-title {
    font-size: var(--nor-font-size-4xl);
    margin-bottom: var(--nor-spacing-md);
}

.error-message {
    max-width: 500px;
    margin: 0 auto var(--nor-spacing-xl);
    color: var(--nor-color-text-light);
}

.error-search {
    margin-top: var(--nor-spacing-2xl);
}

/* ==========================================================================
   Pagination
   ========================================================================== */

.pagination,
.nav-links {
    display: flex;
    justify-content: center;
    gap: var(--nor-spacing-sm);
    margin-top: var(--nor-spacing-2xl);
    margin-bottom: var(--nor-spacing-3xl);
}

.page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 var(--nor-spacing-sm);
    border: 1px solid var(--nor-color-border);
    border-radius: var(--nor-border-radius);
    color: var(--nor-color-text);
    transition: all var(--nor-transition-fast);
}

.page-numbers:hover,
.page-numbers.current {
    background-color: var(--nor-color-secondary);
    border-color: var(--nor-color-secondary);
    color: var(--nor-color-white);
}

/* ==========================================================================
   Forms
   ========================================================================== */

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
textarea,
select {
    width: 100%;
    padding: var(--nor-spacing-md);
    font-family: var(--nor-font-primary);
    font-size: var(--nor-font-size-base);
    color: var(--nor-color-text);
    background-color: var(--nor-color-white);
    border: 1px solid var(--nor-color-border);
    border-radius: var(--nor-border-radius);
    transition: border-color var(--nor-transition-fast);
}

input:focus,
textarea:focus,
select:focus {
    outline: none;
    border-color: var(--nor-color-primary);
}

/* Search Form */
.search-form {
    display: flex;
    gap: var(--nor-spacing-sm);
}

.search-form .search-field {
    flex: 1;
}

.search-form .search-submit {
    padding: var(--nor-spacing-md) var(--nor-spacing-lg);
    background-color: var(--nor-color-primary);
    border: none;
    cursor: pointer;
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

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

.skip-link {
    position: fixed;
    top: -100px;
    left: var(--nor-spacing-md);
    padding: var(--nor-spacing-md);
    background-color: var(--nor-color-primary);
    color: var(--nor-color-secondary);
    z-index: 9999;
}

.skip-link:focus {
    top: var(--nor-spacing-md);
}

/* ==========================================================================
   Responsive Styles
   ========================================================================== */

@media (max-width: 1024px) {
    .footer-widgets-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .content-area {
        flex-direction: column;
    }

    .content-area .sidebar {
        width: 100%;
    }

    h1, .hero-title {
        font-size: var(--nor-font-size-4xl);
    }

    h2 {
        font-size: var(--nor-font-size-3xl);
    }

    .home-activities .activities-home-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0;
    }

    .home-sacraments .sacraments-home-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .home-events .container {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

@media (max-width: 768px) {
    :root {
        --nor-font-size-base: 15px;
    }

    .menu-toggle {
        display: block;
    }

    .main-navigation .primary-menu {
        display: none;
    }

    .header-donate-btn {
        display: none;
    }

    .header-title-wrap {
        display: flex;
    }

    .header-title,
    .header-subtitle {
        font-size: var(--nor-font-size-sm);
        white-space: normal;
    }

    .hero-section {
        min-height: 60vh;
    }

    .hero-title {
        font-size: var(--nor-font-size-3xl);
    }

    .hero-banner {
        padding: 60px 1rem;
    }

    .hero-banner__title {
        font-size: 28px;
    }

    .hero-banner__label {
        font-size: 12px;
    }

    .home-section {
        padding: 60px 0;
    }

    .home-section .section-header {
        margin-bottom: 30px;
    }

    .home-section .section-label {
        font-size: 12px;
    }

    .home-section .section-title {
        font-size: 28px;
    }

    .home-activities .activities-home-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .activity-home-card__image {
        aspect-ratio: 1 / 1;
    }

    .activity-home-card__title {
        font-size: 18px;
    }

    .activity-home-card__icon {
        width: 32px;
        height: 32px;
    }

    .home-about .about-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .home-about .about-content .section-title {
        font-size: 28px;
    }

    .home-sacraments .sacraments-home-grid {
        grid-template-columns: 1fr;
    }

    .home-sacraments {
        margin-bottom: 50px;
    }

    .event-home-item {
        gap: 15px;
    }

    .event-home-item__date {
        width: 65px;
    }

    .event-home-item__day {
        font-size: 22px;
        padding: 10px 0;
    }

    .event-home-item__month {
        font-size: 9px;
        padding: 6px 0;
    }

    .bulletin-home-item {
        gap: 15px;
    }

    .bulletin-home-item__date {
        min-width: 60px;
    }

    .bulletin-home-item__day {
        font-size: 20px;
        padding: 8px 0;
    }

    .bulletin-home-item__month {
        font-size: 9px;
        padding: 5px 0;
    }

    .bulletin-home-item__title {
        font-size: 16px;
    }

    .bulletin-home-item__download {
        width: 40px;
        height: 40px;
    }

    .bulletin-home-item__download svg {
        width: 18px;
        height: 18px;
    }

    .obituaries-cta-title {
        font-size: 28px;
    }

    .obituaries-cta-text {
        font-size: 16px;
    }

    .hero-banner__footer {
        font-size: 16px;
    }

    .posts-grid {
        grid-template-columns: 1fr;
    }

    .footer-widgets-grid {
        grid-template-columns: 1fr;
    }

    .footer-bottom-content {
        flex-direction: column;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .container {
        padding-left: var(--nor-spacing-md);
        padding-right: var(--nor-spacing-md);
    }

    .hero-actions {
        flex-direction: column;
    }

    .btn {
        width: 100%;
    }
}

/* ==========================================================================
   Sacraments
   ========================================================================== */

.single-sacrament-header,
.single-activity-header {
    padding: var(--nor-spacing-3xl) 0 var(--nor-spacing-xl);
    background-color: transparent;
}

.single-sacrament-header .page-header-content,
.single-activity-header .page-header-content {
    text-align: center;
}

.single-sacrament-header .sacrament-label,
.single-activity-header .activity-label {
    display: block;
    margin-bottom: var(--nor-spacing-sm);
    font-size: var(--nor-font-size-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--nor-color-primary-dark);
}

.single-sacrament-header .entry-title,
.single-activity-header .entry-title {
    margin-bottom: 0;
    font-size: var(--nor-font-size-5xl);
    color: var(--nor-color-secondary);
}

.single-sacrament-header .breadcrumbs,
.single-activity-header .breadcrumbs {
    margin-top: 0;
    margin-bottom: var(--nor-spacing-md);
}

/* Sacrament/Activity/About Layout with Sidebar */
.sacrament-layout,
.activity-layout,
.page-about .about-layout {
    display: flex;
    gap: 40px;
    padding: var(--nor-spacing-2xl) 0;
}

.sacrament-sidebar,
.activity-sidebar,
.about-sidebar {
    width: 410px;
    flex-shrink: 0;
    order: 2;
    position: sticky;
    top: calc(var(--nor-header-height) + 30px);
    align-self: flex-start;
}

.sacrament-content,
.activity-content,
.about-content {
    flex: 1;
    min-width: 0;
    order: 1;
}

/* Sidebar Widget Styling */
.sacrament-sidebar-widget,
.activity-sidebar-widget,
.about-sidebar-widget {
    background-color: #fff;
    overflow: hidden;
    box-shadow: var(--nor-shadow);
}

.sacrament-download-section {
    padding: 30px;
    text-align: center;
}

.sacrament-download-section .download-text {
    margin-bottom: var(--nor-spacing-md);
    font-size: var(--nor-font-size-sm);
    color: var(--nor-color-text);
}

.sacrament-download-section a.btn.btn-secondary {
    gap: var(--nor-spacing-sm);
    background-color: #240C00 !important;
    border-color: #240C00 !important;
}

.sacrament-download-section .dashicons {
    font-size: 20px;
    width: 20px;
    height: 20px;
    line-height: 1;
}

.sacrament-list-section .widget-title,
.sacrament-contact-section .widget-title,
.activity-contact-section .widget-title,
.about-contact-section .widget-title,
.about-navigation-section .widget-title,
.about-ministry-section .widget-title {
    margin: 0;
    padding: 22px 30px;
    font-size: var(--nor-font-size-lg);
    font-weight: 700;
    color: var(--nor-color-secondary);
    background-color: #fff;
    border-bottom: none;
}

.sacrament-download-section + .sacrament-contact-section {
    border-top: none;
}

/* About Navigation Links in Sidebar */
.about-navigation-section .about-nav-links {
    margin: 0;
    padding: 0 30px 30px;
    list-style: none;
}

.about-navigation-section .about-nav-links li {
    padding: var(--nor-spacing-sm) 0;
}

.about-navigation-section .about-nav-links a {
    color: var(--nor-color-text);
    text-decoration: none;
    position: relative;
    display: inline-block;
    transition: color 0.2s ease, padding-left 0.2s ease;
}

.about-navigation-section .about-nav-links a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 8px;
    right: 0;
    height: 2px;
    background-color: var(--nor-color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.45s ease;
}

.about-navigation-section .about-nav-links a:hover {
    color: var(--nor-color-secondary);
    padding-left: 8px;
}

.about-navigation-section .about-nav-links a:hover::after {
    transform: scaleX(1);
}

/* Ministry Links in About Sidebar */
.about-ministry-section .ministry-links {
    margin: 0;
    padding: 0 30px 30px;
    list-style: none;
}

.about-ministry-section .ministry-links li {
    padding: var(--nor-spacing-sm) 0;
}

.about-ministry-section .ministry-links a {
    color: var(--nor-color-text);
    text-decoration: none;
    position: relative;
    display: inline-block;
    transition: color 0.2s ease, padding-left 0.2s ease;
}

.about-ministry-section .ministry-links a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 8px;
    right: 0;
    height: 2px;
    background-color: var(--nor-color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.45s ease;
}

.about-ministry-section .ministry-links a:hover {
    color: var(--nor-color-secondary);
    padding-left: 8px;
}

.about-ministry-section .ministry-links a:hover::after,
.about-ministry-section .ministry-links li.current-menu-item a::after {
    transform: scaleX(1);
}

.about-ministry-section .ministry-links li.current-menu-item a {
    color: var(--nor-color-secondary);
    padding-left: 8px;
}

.sacrament-contact-section .contact-list,
.activity-contact-section .contact-list,
.about-contact-section .contact-list {
    margin: 0;
    padding: 0 30px 30px;
    list-style: none;
}

.sacrament-contact-section .contact-item,
.activity-contact-section .contact-item,
.about-contact-section .contact-item {
    display: flex;
    align-items: flex-start;
    gap: var(--nor-spacing-sm);
    padding: var(--nor-spacing-sm) 0;
    color: var(--nor-color-text);
    font-size: var(--nor-font-size-sm);
}

.sacrament-contact-section .contact-item .dashicons,
.activity-contact-section .contact-item .dashicons {
    color: var(--nor-color-primary-dark);
    font-size: 18px;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 2px;
}

.sacrament-contact-section .contact-item a,
.activity-contact-section .contact-item a {
    color: var(--nor-color-text);
}

.sacrament-contact-section .contact-item a:hover,
.activity-contact-section .contact-item a:hover {
    color: var(--nor-color-secondary);
}

.sacrament-nav-list {
    margin: 0;
    padding: 30px;
    padding-top: 0;
    list-style: none;
}

.sacrament-nav-list li {
    border-bottom: 1px solid #E3D6D3;
}

.sacrament-nav-list li:last-child {
    border-bottom: none;
}

.sacrament-nav-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 0;
    color: #7C6D66;
    font-weight: 500;
    transition: all var(--nor-transition-fast);
}

.sacrament-nav-list a:hover {
    color: var(--nor-color-secondary);
}

.sacrament-nav-list li.active a,
.sacrament-nav-list li.active .sacrament-nav-item {
    color: var(--nor-color-text-muted);
    font-weight: 600;
}

.sacrament-nav-list .sacrament-nav-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 0;
    cursor: default;
}

.sacrament-nav-arrow {
    opacity: 0;
    transform: translateX(-5px);
    transition: all var(--nor-transition-fast);
}

.sacrament-nav-list a:hover .sacrament-nav-arrow,
.sacrament-nav-list li.active .sacrament-nav-arrow {
    opacity: 1;
    transform: translateX(0);
}

.sacrament-hero-image,
.activity-hero-image {
    margin-bottom: var(--nor-spacing-xl);
    overflow: hidden;
}

.sacrament-hero-image img,
.activity-hero-image img {
    width: 100%;
    height: auto;
    display: block;
}

.single-sacrament .entry-content,
.single-activity .entry-content {
    font-size: var(--nor-font-size-lg);
    line-height: 1.8;
}

.single-sacrament .entry-content p,
.single-activity .entry-content p {
    margin-bottom: var(--nor-spacing-lg);
}

.single-sacrament .entry-content h2,
.single-sacrament .entry-content h3,
.single-sacrament .entry-content h4,
.single-activity .entry-content h2,
.single-activity .entry-content h3,
.single-activity .entry-content h4 {
    margin-top: var(--nor-spacing-2xl);
}


.sacrament-navigation,
.activity-navigation {
    padding: var(--nor-spacing-xl) 0;
    margin-top: var(--nor-spacing-xl);
    border-top: 1px solid var(--nor-color-border);
}

.sacrament-navigation .nav-links,
.activity-navigation .nav-links {
    display: flex;
    justify-content: space-between;
}

.sacrament-navigation .nav-previous,
.sacrament-navigation .nav-next,
.activity-navigation .nav-previous,
.activity-navigation .nav-next {
    max-width: 45%;
}

.sacrament-navigation .nav-next,
.activity-navigation .nav-next {
    text-align: right;
    margin-left: auto;
}

.sacrament-navigation .nav-subtitle,
.activity-navigation .nav-subtitle {
    display: block;
    font-size: var(--nor-font-size-sm);
    color: var(--nor-color-text-muted);
    margin-bottom: var(--nor-spacing-xs);
}

.sacrament-navigation .nav-title,
.activity-navigation .nav-title {
    display: block;
    font-weight: 600;
    color: var(--nor-color-secondary);
}

.sacrament-navigation a:hover .nav-title,
.activity-navigation a:hover .nav-title {
    color: var(--nor-color-secondary-light);
}

/* Sacraments/Activities Grid */
.sacraments-grid,
.nor-sacraments-grid,
.activities-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--nor-spacing-xl);
    padding: var(--nor-spacing-2xl) 0;
}

.nor-sacraments-grid.columns-2 {
    grid-template-columns: repeat(2, 1fr);
}

.nor-sacraments-grid.columns-4 {
    grid-template-columns: repeat(4, 1fr);
}

.sacrament-card,
.nor-sacrament-card,
.activity-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: #fff;
    border-radius: var(--nor-border-radius-lg);
    box-shadow: var(--nor-shadow);
    overflow: hidden;
    transition: transform var(--nor-transition-base), box-shadow var(--nor-transition-base);
}

.sacrament-card-content,
.activity-card-content {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.sacrament-card .entry-footer,
.activity-card .entry-footer {
    margin-top: auto;
    border: none;
    padding-top: 0;
}

.sacrament-card:hover,
.nor-sacrament-card:hover,
.activity-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--nor-shadow-lg);
}

.sacrament-card-thumbnail,
.sacrament-card-image,
.activity-card-thumbnail {
    position: relative;
    overflow: hidden;
    background-color: #351A14;
}

.sacrament-card-thumbnail img,
.sacrament-card-image img,
.activity-card-thumbnail img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    transition: transform var(--nor-transition-slow);
}

.sacrament-card:hover .sacrament-card-thumbnail img,
.nor-sacrament-card:hover .sacrament-card-image img,
.activity-card:hover .activity-card-thumbnail img {
    transform: scale(1.05);
}

.sacrament-card-content,
.sacrament-card-body,
.activity-card-content {
    padding: var(--nor-spacing-lg);
}

.sacrament-card .entry-title,
.sacrament-title,
.activity-card .entry-title {
    margin-bottom: var(--nor-spacing-sm);
    font-size: var(--nor-font-size-xl);
}

.sacrament-card .entry-title a,
.sacrament-title a,
.activity-card .entry-title a {
    color: var(--nor-color-secondary);
}

.sacrament-card .entry-title a:hover,
.sacrament-title a:hover,
.activity-card .entry-title a:hover {
    color: var(--nor-color-primary-dark);
}

.sacrament-card .entry-excerpt,
.sacrament-excerpt,
.activity-card .entry-excerpt {
    margin-bottom: var(--nor-spacing-md);
    color: var(--nor-color-text-light);
    font-size: var(--nor-font-size-sm);
}

.sacrament-link {
    display: inline-flex;
    align-items: center;
    gap: var(--nor-spacing-xs);
    font-weight: 600;
    color: var(--nor-color-primary-dark);
}

.sacrament-link:hover {
    color: var(--nor-color-primary);
}

/* Sacraments Archive Card Styles */
.sacraments-grid .sacrament-card {
    display: flex;
    flex-direction: column;
    background-color: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.45s ease, transform 0.45s ease;
    height: 100%;
}

.sacraments-grid .sacrament-card:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    transform: translateY(-6px);
}

.sacraments-grid .sacrament-card-thumbnail {
    position: relative;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background-color: var(--nor-color-secondary, #4a3728);
}

.sacraments-grid .sacrament-card-thumbnail a {
    display: block;
    width: 100%;
    height: 100%;
}

.sacraments-grid .sacrament-card-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.sacraments-grid .sacrament-card:hover .sacrament-card-thumbnail img {
    transform: scale(1.05);
}

.sacraments-grid .sacrament-card-content {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.5rem;
}

.sacraments-grid .sacrament-card .entry-header {
    margin-bottom: 0.75rem;
}

.sacraments-grid .sacrament-card .entry-title {
    font-size: 1.25rem;
    margin: 0;
    line-height: 1.3;
}

.sacraments-grid .sacrament-card .entry-title a {
    color: var(--nor-color-secondary, #4a3728);
    text-decoration: none;
    transition: color 0.45s ease;
}

.sacraments-grid .sacrament-card .entry-title a:hover {
    color: var(--nor-color-primary, #8b5a2b);
}

.sacraments-grid .sacrament-card .entry-excerpt {
    font-size: 0.875rem;
    color: var(--nor-color-text-light, #6b6b6b);
    margin-bottom: 1rem;
    line-height: 1.5;
}

.sacraments-grid .sacrament-card .entry-excerpt p {
    margin: 0;
}

.sacraments-grid .sacrament-card .entry-footer {
    margin-top: auto;
    border: none;
    padding-top: 0;
}

.sacrament-link .arrow {
    transition: transform var(--nor-transition-fast);
}

.sacrament-link:hover .arrow {
    transform: translateX(3px);
}

/* Sacraments/Activities Archive Header */
.sacraments-header,
.activities-header {
    padding: var(--nor-spacing-3xl) 0;
    background-color: transparent;
    text-align: center;
}

.sacraments-header .page-title,
.activities-header .page-title {
    margin-bottom: var(--nor-spacing-sm);
}

.sacraments-header .archive-description,
.activities-header .archive-description {
    max-width: 600px;
    margin: 0 auto var(--nor-spacing-md);
    color: var(--nor-color-text-light);
}

@media (max-width: 1024px) {
    .sacraments-grid,
    .nor-sacraments-grid,
    .activities-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .nor-sacraments-grid.columns-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 1024px) {
    .sacrament-layout,
    .activity-layout,
    .about-layout {
        flex-direction: column;
    }

    .sacrament-sidebar,
    .activity-sidebar,
    .about-sidebar {
        width: 100%;
        order: 2;
        margin-top: var(--nor-spacing-xl);
        position: relative;
        top: 0;
    }

    .sacrament-content,
    .activity-content,
    .about-content {
        order: 1;
    }
}

@media (max-width: 768px) {
    .single-sacrament-header .entry-title,
    .single-activity-header .entry-title {
        font-size: var(--nor-font-size-3xl);
    }

    .sacraments-grid,
    .nor-sacraments-grid,
    .nor-sacraments-grid.columns-2,
    .nor-sacraments-grid.columns-4,
    .activities-grid {
        grid-template-columns: 1fr;
    }

    .sacrament-navigation .nav-links,
    .activity-navigation .nav-links {
        flex-direction: column;
        gap: var(--nor-spacing-lg);
    }

    .sacrament-navigation .nav-previous,
    .sacrament-navigation .nav-next,
    .activity-navigation .nav-previous,
    .activity-navigation .nav-next {
        max-width: 100%;
        text-align: left;
    }

    .sacrament-download-section .btn {
        width: 100%;
    }
}

/* ==========================================================================
   Contact Page
   ========================================================================== */

.contact-header {
    padding: var(--nor-spacing-3xl) 0 var(--nor-spacing-xl);
    background-color: transparent;
}

.contact-header .page-header-content {
    text-align: center;
}

.contact-header .entry-title {
    margin-bottom: 0;
    font-size: var(--nor-font-size-5xl);
    color: var(--nor-color-secondary);
}

.contact-header .page-description {
    margin-top: var(--nor-spacing-md);
    margin-bottom: 0;
    font-size: var(--nor-font-size-lg);
    color: var(--nor-color-text-light);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.contact-header .breadcrumbs {
    margin-top: var(--nor-spacing-md);
    margin-bottom: 0;
}

.contact-layout {
    display: flex;
    gap: 40px;
    padding: var(--nor-spacing-2xl) 0;
}

.contact-content {
    flex: 1;
    min-width: 0;
    order: 1;
}

.contact-sidebar {
    width: 410px;
    flex-shrink: 0;
    order: 2;
    position: sticky;
    top: calc(var(--nor-header-height) + 30px);
    align-self: flex-start;
}

.contact-sidebar-widget {
    background-color: #fff;
    overflow: hidden;
    box-shadow: var(--nor-shadow);
}

.contact-sidebar-intro {
    padding: var(--nor-spacing-lg);
    border-bottom: 1px solid var(--nor-color-border);
}

.contact-sidebar-intro p {
    margin: 0;
    font-size: var(--nor-font-size-base);
    color: var(--nor-color-text);
    line-height: 1.7;
}

.contact-info-section .widget-title,
.contact-map-section .widget-title {
    margin: 0;
    padding: 22px 30px;
    font-size: var(--nor-font-size-lg);
    font-weight: 700;
    color: var(--nor-color-secondary);
    background-color: #fff;
    border-bottom: none;
}

.contact-info-section .contact-list {
    margin: 0;
    padding: 0 30px 30px;
    list-style: none;
}

.contact-info-section .contact-item {
    display: flex;
    align-items: flex-start;
    gap: var(--nor-spacing-sm);
    padding: var(--nor-spacing-sm) 0;
    color: var(--nor-color-text);
    font-size: var(--nor-font-size-sm);
}

.contact-info-section .contact-item .dashicons {
    color: var(--nor-color-primary-dark);
    font-size: 18px;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 2px;
}

.contact-info-section .contact-item a {
    color: var(--nor-color-text);
}

.contact-info-section .contact-item a:hover {
    color: var(--nor-color-secondary);
}

.contact-map-section {
    border-top: 1px solid var(--nor-color-border);
}

.contact-map-wrapper {
    padding: 0 30px 30px;
}

.contact-map-wrapper iframe {
    width: 100%;
    height: 250px;
    border: none;
    display: block;
}

.page-contact .entry-content {
    font-size: var(--nor-font-size-base);
    line-height: 1.7;
}

.page-contact .wpcf7 {
    background-color: #fff;
    padding: var(--nor-spacing-xl);
    box-shadow: var(--nor-shadow);
}

.page-contact .wpcf7-form-control {
    width: 100%;
    padding: var(--nor-spacing-sm) var(--nor-spacing-md);
    border: 1px solid var(--nor-color-border);
    border-radius: var(--nor-border-radius);
    font-size: var(--nor-font-size-base);
}

.page-contact .wpcf7-form-control:focus {
    outline: none;
    border-color: var(--nor-color-primary);
    box-shadow: 0 0 0 3px rgba(255, 198, 75, 0.2);
}

.page-contact .wpcf7-textarea {
    min-height: 150px;
    resize: vertical;
}

.page-contact .wpcf7-submit {
    background-color: var(--nor-color-secondary);
    color: #fff;
    border: none;
    padding: var(--nor-spacing-md) var(--nor-spacing-xl);
    cursor: pointer;
    transition: background-color var(--nor-transition-base);
}

.page-contact .wpcf7-submit:hover {
    background-color: var(--nor-color-secondary-light);
}

.page-contact .form-row {
    display: flex;
    gap: var(--nor-spacing-lg);
}

.page-contact .form-group {
    margin-bottom: var(--nor-spacing-lg);
}

.page-contact .form-group-half {
    flex: 1;
}

.page-contact .form-group label {
    display: block;
    margin-bottom: var(--nor-spacing-xs);
    font-weight: 500;
    color: var(--nor-color-secondary);
}

.page-contact .form-group label .required {
    color: #c00;
}

.page-contact .wpcf7-not-valid-tip {
    color: #c00;
    font-size: var(--nor-font-size-sm);
    margin-top: var(--nor-spacing-xs);
}

.page-contact .wpcf7-response-output {
    margin: var(--nor-spacing-lg) 0 0;
    padding: var(--nor-spacing-md);
    border-radius: var(--nor-border-radius);
}

.page-contact .wpcf7-mail-sent-ok {
    background-color: #d4edda;
    border-color: #c3e6cb;
    color: #155724;
}

.page-contact .wpcf7-validation-errors {
    background-color: #f8d7da;
    border-color: #f5c6cb;
    color: #721c24;
}

@media (max-width: 768px) {
    .page-contact .form-row {
        flex-direction: column;
        gap: 0;
    }
}

@media (max-width: 1024px) {
    .contact-layout,
    .about-layout {
        flex-direction: column;
    }

    .contact-sidebar,
    .about-sidebar {
        width: 100%;
        order: 1;
        position: static;
    }

    .contact-content,
    .about-content {
        order: 2;
    }
}

/* ==========================================================================
   About Page
   ========================================================================== */

.about-header {
    padding: var(--nor-spacing-3xl) 0 var(--nor-spacing-xl);
    background-color: transparent;
}

.about-header .page-header-content {
    text-align: center;
}

.about-header .entry-title {
    margin-bottom: 0;
    font-size: var(--nor-font-size-5xl);
    color: var(--nor-color-secondary);
}

.about-header .page-description {
    margin-top: var(--nor-spacing-md);
    margin-bottom: 0;
    font-size: var(--nor-font-size-lg);
    color: var(--nor-color-text-light);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.about-header .breadcrumbs {
    margin-top: var(--nor-spacing-md);
    margin-bottom: 0;
}

.about-sidebar-intro {
    padding: var(--nor-spacing-lg);
    border-bottom: 1px solid var(--nor-color-border);
}

.about-sidebar-intro p {
    margin: 0;
    font-size: var(--nor-font-size-base);
    color: var(--nor-color-text);
    line-height: 1.7;
}

/* ==========================================================================
   Bulletins
   ========================================================================== */

/* Bulletins Archive */
.bulletins-header {
    padding: var(--nor-spacing-3xl) 0;
    background-color: var(--nor-color-light);
    text-align: center;
}

.bulletins-header .page-title {
    margin-bottom: var(--nor-spacing-sm);
}

.bulletins-header .archive-description {
    max-width: 600px;
    margin: 0 auto var(--nor-spacing-md);
    color: var(--nor-color-text-light);
}

.bulletins-list {
    padding: var(--nor-spacing-2xl) 0;
}

.bulletin-item {
    display: flex;
    align-items: center;
    gap: var(--nor-spacing-xl);
    padding: var(--nor-spacing-lg);
    margin-bottom: var(--nor-spacing-md);
    background-color: var(--nor-color-white);
    border-radius: var(--nor-border-radius);
    box-shadow: var(--nor-shadow-sm);
    transition: box-shadow var(--nor-transition-fast);
}

.bulletin-item:hover {
    box-shadow: var(--nor-shadow);
}

.bulletin-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 80px;
    padding: var(--nor-spacing-md);
    background-color: var(--nor-color-primary);
    border-radius: var(--nor-border-radius);
    text-align: center;
}

.bulletin-date .date-day {
    display: block;
    font-size: var(--nor-font-size-2xl);
    font-weight: 700;
    line-height: 1;
    color: var(--nor-color-secondary);
}

.bulletin-date .date-month {
    display: block;
    font-size: var(--nor-font-size-sm);
    font-weight: 600;
    text-transform: uppercase;
    color: var(--nor-color-secondary);
}

.bulletin-date .date-year {
    display: block;
    font-size: var(--nor-font-size-xs);
    color: var(--nor-color-secondary);
    opacity: 0.7;
}

.bulletin-content {
    flex: 1;
    min-width: 0;
}

.bulletin-title {
    margin: 0 0 var(--nor-spacing-xs);
    font-size: var(--nor-font-size-lg);
}

.bulletin-title a {
    color: var(--nor-color-secondary);
}

.bulletin-title a:hover {
    color: var(--nor-color-secondary-light);
}

.bulletin-excerpt {
    margin: 0;
    color: var(--nor-color-text-light);
    font-size: var(--nor-font-size-sm);
}

.bulletin-actions {
    display: flex;
    gap: var(--nor-spacing-sm);
    flex-shrink: 0;
}

/* Bulletin Card (Grid View) */
.bulletin-card .bulletin-card-thumbnail {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 150px;
    background-color: var(--nor-color-secondary);
}

.bulletin-card .bulletin-card-thumbnail a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.bulletin-card .bulletin-date-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--nor-spacing-lg);
    text-align: center;
}

.bulletin-card .bulletin-date-badge .date-day {
    display: block;
    font-size: var(--nor-font-size-5xl);
    font-weight: 700;
    line-height: 1;
    color: var(--nor-color-primary);
}

.bulletin-card .bulletin-date-badge .date-month {
    display: block;
    font-size: var(--nor-font-size-xl);
    font-weight: 600;
    text-transform: uppercase;
    color: var(--nor-color-white);
    margin-top: var(--nor-spacing-xs);
}

.bulletin-card .bulletin-date-badge .date-year {
    display: block;
    font-size: var(--nor-font-size-base);
    color: var(--nor-color-white);
    opacity: 0.8;
}

.bulletin-card .entry-footer {
    display: flex;
    flex-wrap: wrap;
    gap: var(--nor-spacing-md);
    align-items: center;
}

.bulletin-card .download-link {
    color: var(--nor-color-secondary);
}

.bulletin-card .download-link .dashicons {
    font-size: 16px;
    width: 16px;
    height: 16px;
    vertical-align: middle;
}

/* Single Bulletin */
.single-bulletin-header {
    padding: var(--nor-spacing-3xl) 0;
    background-color: var(--nor-color-light);
}

.single-bulletin-header .page-header-content {
    text-align: center;
}

.bulletin-label {
    display: inline-block;
    margin-bottom: var(--nor-spacing-sm);
    padding: var(--nor-spacing-xs) var(--nor-spacing-md);
    font-size: var(--nor-font-size-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--nor-color-secondary);
    background-color: var(--nor-color-primary);
    border-radius: var(--nor-border-radius);
}

.single-bulletin-header .entry-title {
    margin-bottom: var(--nor-spacing-sm);
}

.single-bulletin-header .bulletin-excerpt {
    max-width: 600px;
    margin: 0 auto var(--nor-spacing-md);
    color: var(--nor-color-text-light);
    font-size: var(--nor-font-size-lg);
}

.bulletin-meta {
    color: var(--nor-color-text-light);
}

.bulletin-date-full {
    font-size: var(--nor-font-size-lg);
}

.bulletin-layout {
    padding: var(--nor-spacing-2xl) 0;
}

.bulletin-main-content {
    max-width: 900px;
    margin: 0 auto;
}

.bulletin-pdf-viewer {
    margin-bottom: var(--nor-spacing-xl);
    border-radius: var(--nor-border-radius);
    overflow: hidden;
    box-shadow: var(--nor-shadow);
}

.bulletin-pdf-viewer iframe {
    display: block;
    border: none;
}

.bulletin-pdf-missing {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 300px;
    margin-bottom: var(--nor-spacing-xl);
    padding: var(--nor-spacing-2xl);
    text-align: center;
}

.bulletin-pdf-missing p {
    margin: 0;
    color: var(--nor-color-text-muted);
    font-size: var(--nor-font-size-lg);
}

.bulletin-download-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--nor-spacing-lg);
    padding: var(--nor-spacing-lg);
    background-color: var(--nor-color-light);
    border-radius: var(--nor-border-radius);
    margin-bottom: var(--nor-spacing-xl);
}

.bulletin-download-bar p {
    margin: 0;
    color: var(--nor-color-text-light);
}

.bulletin-download-bar .btn {
    display: inline-flex;
    align-items: center;
    gap: var(--nor-spacing-sm);
}

.bulletin-navigation {
    padding: var(--nor-spacing-xl) 0;
    margin-top: var(--nor-spacing-xl);
    border-top: 1px solid var(--nor-color-border);
}

.bulletin-navigation .nav-links {
    display: flex;
    justify-content: space-between;
}

.bulletin-navigation .nav-previous,
.bulletin-navigation .nav-next {
    max-width: 45%;
}

.bulletin-navigation .nav-next {
    text-align: right;
    margin-left: auto;
}

.bulletin-navigation .nav-subtitle {
    display: block;
    font-size: var(--nor-font-size-sm);
    color: var(--nor-color-text-muted);
    margin-bottom: var(--nor-spacing-xs);
}

.bulletin-navigation .nav-title {
    display: block;
    font-weight: 600;
    color: var(--nor-color-secondary);
}

.bulletin-navigation a:hover .nav-title {
    color: var(--nor-color-secondary-light);
}

@media (max-width: 768px) {
    .bulletin-item {
        flex-direction: column;
        text-align: center;
    }

    .bulletin-date {
        width: 100%;
        flex-direction: row;
        gap: var(--nor-spacing-sm);
    }

    .bulletin-actions {
        width: 100%;
        justify-content: center;
    }

    .bulletin-download-bar {
        flex-direction: column;
        text-align: center;
    }

    .bulletin-navigation .nav-links {
        flex-direction: column;
        gap: var(--nor-spacing-lg);
    }

    .bulletin-navigation .nav-previous,
    .bulletin-navigation .nav-next {
        max-width: 100%;
        text-align: left;
    }
}

/* ==========================================================================
   Obituary Single
   ========================================================================== */

.single-obituary-header {
    padding: var(--nor-spacing-2xl) 0;
    background-color: var(--nor-color-bg-alt);
}

.single-obituary-header .page-header-content {
    text-align: center;
}

.single-obituary-header .obituary-label {
    display: block;
    margin-bottom: var(--nor-spacing-sm);
    font-size: var(--nor-font-size-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--nor-color-primary-dark);
}

.single-obituary-header .entry-title {
    margin-bottom: var(--nor-spacing-sm);
    font-size: var(--nor-font-size-5xl);
    color: var(--nor-color-secondary);
}

.single-obituary-header .obituary-dates {
    margin: 0;
    font-size: var(--nor-font-size-lg);
    color: var(--nor-color-text-light);
}

.single-obituary-header .breadcrumbs {
    margin-top: 0;
    margin-bottom: var(--nor-spacing-md);
}

.obituary-layout {
    display: flex;
    gap: 40px;
    padding: var(--nor-spacing-2xl) 0;
}

.obituary-sidebar {
    width: 350px;
    flex-shrink: 0;
    order: 2;
    position: sticky;
    top: calc(var(--nor-header-height) + 30px);
    align-self: flex-start;
}

.obituary-content {
    flex: 1;
    min-width: 0;
    order: 1;
}

.obituary-sidebar-widget {
    background-color: #fff;
    overflow: hidden;
    box-shadow: var(--nor-shadow);
}

.obituary-photo {
    margin: 0 auto var(--nor-spacing-xl);
    text-align: center;
    max-width: 400px;
}

.obituary-photo img {
    width: 100%;
    height: auto;
    display: block;
}

.obituary-download-section {
    padding: 30px;
    text-align: center;
}

.obituary-download-section .btn {
    display: inline-flex;
    align-items: center;
    gap: var(--nor-spacing-sm);
    width: 100%;
    justify-content: center;
    background-color: #240C00 !important;
    border-color: #240C00 !important;
}

.obituary-download-section .dashicons {
    font-size: 20px;
    width: 20px;
    height: 20px;
    line-height: 1;
}

.obituary-contact-section .widget-title {
    margin: 0;
    padding: 22px 30px;
    font-size: var(--nor-font-size-lg);
    font-weight: 700;
    color: var(--nor-color-secondary);
    background-color: #fff;
    border-bottom: none;
}

.obituary-contact-section .contact-list {
    margin: 0;
    padding: 0 30px 30px;
    list-style: none;
}

.obituary-contact-section .contact-item {
    display: flex;
    align-items: flex-start;
    gap: var(--nor-spacing-sm);
    padding: var(--nor-spacing-sm) 0;
    color: var(--nor-color-text);
    font-size: var(--nor-font-size-sm);
}

.obituary-contact-section .contact-item .dashicons {
    color: var(--nor-color-primary-dark);
    font-size: 18px;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    margin-top: 2px;
}

.obituary-contact-section .contact-item a {
    color: var(--nor-color-text);
}

.obituary-contact-section .contact-item a:hover {
    color: var(--nor-color-secondary);
}

.obituary-pdf-embed {
    margin-top: var(--nor-spacing-xl);
    border: 1px solid var(--nor-color-border);
}

.obituary-pdf-embed iframe {
    display: block;
    border: none;
}

.obituary-navigation {
    margin-top: var(--nor-spacing-2xl);
    padding-top: var(--nor-spacing-xl);
    border-top: 1px solid var(--nor-color-border);
}

.obituary-navigation .nav-links {
    display: flex;
    justify-content: space-between;
}

.obituary-navigation .nav-previous,
.obituary-navigation .nav-next {
    max-width: 45%;
}

.obituary-navigation .nav-next {
    text-align: right;
    margin-left: auto;
}

.obituary-navigation .nav-subtitle {
    display: block;
    font-size: var(--nor-font-size-sm);
    color: var(--nor-color-text-light);
    margin-bottom: var(--nor-spacing-xs);
}

.obituary-navigation .nav-title {
    font-weight: 600;
    color: var(--nor-color-secondary);
    transition: color var(--nor-transition-fast);
}

.obituary-navigation a:hover .nav-title {
    color: var(--nor-color-secondary);
}

@media (max-width: 991px) {
    .obituary-layout {
        flex-direction: column;
    }

    .obituary-sidebar {
        width: 100%;
        max-width: 350px;
        margin: 0 auto;
        order: 1;
        position: static;
    }

    .obituary-content {
        order: 2;
    }
}

@media (max-width: 767px) {
    .single-obituary-header .entry-title {
        font-size: var(--nor-font-size-3xl);
    }

    .obituary-navigation .nav-links {
        flex-direction: column;
        gap: var(--nor-spacing-lg);
    }

    .obituary-navigation .nav-previous,
    .obituary-navigation .nav-next {
        max-width: 100%;
        text-align: left;
    }
}

/* ==========================================================================
   Obituary Archive
   ========================================================================== */

.obituaries-header {
    padding: var(--nor-spacing-3xl) 0;
    background-color: transparent;
    text-align: center;
}

.obituaries-header .page-title {
    margin-bottom: var(--nor-spacing-sm);
}

.obituaries-header .archive-description {
    max-width: 600px;
    margin: 0 auto var(--nor-spacing-md);
    color: var(--nor-color-text-light);
}

.obituaries-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--nor-spacing-xl);
    padding: var(--nor-spacing-2xl) 0;
}

.obituary-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background-color: #fff;
    border-radius: var(--nor-border-radius-lg);
    box-shadow: var(--nor-shadow);
    overflow: hidden;
    transition: transform var(--nor-transition-base), box-shadow var(--nor-transition-base);
}

.obituary-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--nor-shadow-lg);
}

.obituary-card-content {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: var(--nor-spacing-lg);
}

.obituary-card .entry-footer {
    margin-top: auto;
    border: none;
    padding-top: 0;
}

.obituary-card-thumbnail {
    position: relative;
    overflow: hidden;
    background-color: #351A14;
    height: 200px;
}

.obituary-card-thumbnail a {
    display: block;
    height: 100%;
}

.obituary-card-thumbnail img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    transition: transform var(--nor-transition-slow);
}

.obituary-card:hover .obituary-card-thumbnail img {
    transform: scale(1.05);
}

.obituary-card-content {
    padding: var(--nor-spacing-lg);
}

.obituary-card .entry-title {
    margin-bottom: var(--nor-spacing-sm);
    font-size: var(--nor-font-size-xl);
}

.obituary-card .entry-title a {
    color: var(--nor-color-secondary);
}

.obituary-card .entry-title a:hover {
    color: var(--nor-color-primary-dark);
}

.obituary-card-dates {
    margin-bottom: var(--nor-spacing-md);
    color: var(--nor-color-text-light);
    font-size: var(--nor-font-size-sm);
}

.obituary-card .read-more-link {
    display: inline-flex;
    align-items: center;
    gap: var(--nor-spacing-xs);
    font-weight: 600;
    color: var(--nor-color-primary-dark);
}

.obituary-card .read-more-link:hover {
    color: var(--nor-color-primary);
}

.obituary-card .read-more-link .arrow {
    transition: transform var(--nor-transition-fast);
}

.obituary-card .read-more-link:hover .arrow {
    transform: translateX(3px);
}

@media (max-width: 1024px) {
    .obituaries-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .obituaries-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Ministry Archive
   ========================================================================== */

.council-header {
    padding: var(--nor-spacing-3xl) 0;
    background-color: transparent;
    text-align: center;
}

.council-header .page-title {
    margin-bottom: var(--nor-spacing-sm);
}

.council-header .archive-description {
    max-width: 600px;
    margin: 0 auto var(--nor-spacing-md);
    color: var(--nor-color-text-light);
}

.council-anchor-nav {
    margin-top: var(--nor-spacing-lg);
}

.council-anchor-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--nor-spacing-sm);
    list-style: none;
    padding: 0;
    margin: 0;
}

.council-anchor-list li a {
    display: inline-block;
    padding: var(--nor-spacing-xs) var(--nor-spacing-md);
    background-color: #351A14;
    color: #fff;
    border-radius: var(--nor-border-radius);
    font-size: var(--nor-font-size-sm);
    font-weight: 500;
    transition: background-color var(--nor-transition-fast);
}

.council-anchor-list li a:hover {
    background-color: var(--nor-color-primary-dark);
    color: #fff;
}

.council-section {
    scroll-margin-top: calc(var(--nor-header-height) + var(--nor-spacing-xl));
    margin-bottom: var(--nor-spacing-3xl);
}

.council-section:last-child {
    margin-bottom: 0;
}

.council-section-title {
    text-align: center;
    font-size: var(--nor-font-size-2xl);
    color: var(--nor-color-secondary);
    margin-bottom: var(--nor-spacing-sm);
    padding-bottom: var(--nor-spacing-md);
    border-bottom: 2px solid #351A14;
}

.council-section-description {
    text-align: center;
    color: var(--nor-color-text-light);
    margin-bottom: var(--nor-spacing-xl);
}

.council-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--nor-spacing-xl);
    padding: var(--nor-spacing-2xl) 0;
}

.council-grid .council-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.council-grid .council-card .sacrament-card-content {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.council-grid .council-card .entry-footer {
    margin-top: auto;
    border: none;
    padding-top: 0;
}

.council-card .council-photo {
    width: 100%;
    height: 200px;
    object-fit: cover;
}

.council-card .council-photo-placeholder {
    width: 100%;
    height: 200px;
    background-color: #351A14;
}

.council-position {
    font-size: var(--nor-font-size-sm);
    color: var(--nor-color-primary-dark);
    font-weight: 500;
    margin: 0;
}

@media (max-width: 1024px) {
    .council-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .council-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Single Ministry Member
   ========================================================================== */

.single-ministry-header {
    padding: var(--nor-spacing-3xl) 0 var(--nor-spacing-xl);
    text-align: center;
}

.single-ministry-header .page-header-content {
    max-width: 800px;
    margin: 0 auto;
}

.ministry-label {
    display: inline-block;
    font-size: var(--nor-font-size-sm);
    font-weight: 600;
    color: var(--nor-color-primary-dark);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--nor-spacing-sm);
}

.single-ministry-header .entry-title {
    font-size: var(--nor-font-size-4xl);
    margin-bottom: 0;
}

@media (max-width: 767px) {
    .single-ministry-header .entry-title {
        font-size: var(--nor-font-size-3xl);
    }
}

/* ==========================================================================
   Donate Page
   ========================================================================== */

.donate-header {
    padding: var(--nor-spacing-3xl) 0 var(--nor-spacing-xl);
    background-color: transparent;
}

.donate-header .page-header-content {
    text-align: center;
}

.donate-header .entry-title {
    margin-bottom: 0;
    font-size: var(--nor-font-size-5xl);
    color: var(--nor-color-secondary);
}

.donate-header .page-description {
    margin-top: var(--nor-spacing-md);
    margin-bottom: 0;
    font-size: var(--nor-font-size-lg);
    color: var(--nor-color-text-light);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.donate-header .breadcrumbs {
    margin-top: var(--nor-spacing-md);
    margin-bottom: 0;
}

.donate-layout {
    display: flex;
    gap: 40px;
    padding: var(--nor-spacing-2xl) 0;
}

.donate-content {
    flex: 1;
    min-width: 0;
    order: 1;
}

.donate-sidebar {
    width: 410px;
    flex-shrink: 0;
    order: 2;
    position: sticky;
    top: calc(var(--nor-header-height) + 30px);
    align-self: flex-start;
}

.donate-sidebar-widget {
    background-color: #fff;
    overflow: hidden;
    box-shadow: var(--nor-shadow);
}

.donate-sidebar-intro {
    padding: var(--nor-spacing-lg);
    border-bottom: 1px solid var(--nor-color-border);
}

.donate-sidebar-intro p {
    margin: 0;
    font-size: var(--nor-font-size-base);
    color: var(--nor-color-text);
    line-height: 1.7;
}

.donate-impact-section .widget-title,
.donate-secure-section .widget-title,
.donate-contact-section .widget-title {
    margin: 0;
    padding: 22px 30px;
    font-size: var(--nor-font-size-lg);
    font-weight: 700;
    color: var(--nor-color-secondary);
    background-color: var(--nor-color-light);
    border-bottom: 1px solid var(--nor-color-border);
}

.donate-impact-section .impact-stats {
    padding: var(--nor-spacing-lg) 30px;
}

.donate-impact-section .impact-stat {
    text-align: center;
    padding: var(--nor-spacing-md) 0;
}

.donate-impact-section .impact-stat:first-child {
    padding-top: 0;
}

.donate-impact-section .impact-stat:last-child {
    padding-bottom: 0;
}

.donate-impact-section .impact-stat + .impact-stat {
    border-top: 1px solid var(--nor-color-border);
}

.donate-impact-section .stat-number {
    display: block;
    font-size: var(--nor-font-size-3xl);
    font-weight: 700;
    color: var(--nor-color-primary-dark);
}

.donate-impact-section .stat-label {
    display: block;
    font-size: var(--nor-font-size-sm);
    color: var(--nor-color-text-light);
    margin-top: var(--nor-spacing-xs);
}

.donate-secure-section .secure-info,
.donate-contact-section .contact-info {
    padding: var(--nor-spacing-lg) 30px;
}

.donate-secure-section .secure-info p {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0 0 var(--nor-spacing-md);
    font-size: var(--nor-font-size-sm);
    color: var(--nor-color-text);
}

.donate-secure-section .secure-info p:last-child {
    margin-bottom: 0;
}

.donate-secure-section .dashicons {
    color: var(--nor-color-primary);
    flex-shrink: 0;
}

.donate-contact-section .contact-info p {
    margin: 0 0 var(--nor-spacing-md);
    color: var(--nor-color-text);
}

.donate-contact-section .contact-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--nor-color-text);
    text-decoration: none;
    transition: color 0.2s ease;
}

.donate-contact-section .contact-link:hover {
    color: var(--nor-color-primary);
}

.donate-contact-section .contact-link .dashicons {
    color: var(--nor-color-primary);
}

.donate-notice {
    padding: var(--nor-spacing-lg);
    background-color: var(--nor-color-light);
    border-left: 4px solid var(--nor-color-primary);
    color: var(--nor-color-text);
}

@media (max-width: 1024px) {
    .donate-layout {
        flex-direction: column;
    }

    .donate-sidebar {
        width: 100%;
        order: 1;
        position: static;
    }

    .donate-content {
        order: 2;
    }
}

/* ==========================================================================
   Scroll to Top
   ========================================================================== */

.scroll-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--nor-scroll-top-bg, #1f242e);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: opacity 0.45s ease, visibility 0.45s ease, transform 0.45s ease, background-color 0.2s ease;
    z-index: 9999;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.scroll-to-top.visible {
    opacity: 0.4;
    visibility: visible;
    transform: translateY(0);
}

.scroll-to-top:hover {
    opacity: 1;
    background-color: var(--nor-scroll-top-icon, #ffc64b);
}

.scroll-to-top:hover .scroll-to-top-icon {
    border-color: var(--nor-scroll-top-bg, #1f242e);
}

.scroll-to-top-icon {
    width: 10px;
    height: 10px;
    border-left: 2px solid var(--nor-scroll-top-icon, #ffc64b);
    border-top: 2px solid var(--nor-scroll-top-icon, #ffc64b);
    transform: rotate(45deg);
    margin-top: 4px;
    transition: border-color 0.2s ease;
}

@media (max-width: 768px) {
    .scroll-to-top {
        bottom: 20px;
        right: 20px;
        width: 44px;
        height: 44px;
    }

    .scroll-to-top-icon {
        width: 10px;
        height: 10px;
    }
}
