/* ==========================================================================
   DONAVITA - Public Site
   ========================================================================== */

:root {
    --color-primary: #005b8f;
    --color-primary-dark: #00466e;
    --color-secondary: #0e7490;
    --color-accent: #ffb84d;
    --color-dark: #15202b;
    --color-light: #f4f8fb;
    --color-surface: #ffffff;
    --color-text: #21313f;
    --color-text-muted: #66727e;
    --color-border: #dde8f0;
    --shadow-sm: 0 8px 24px rgba(0, 34, 58, 0.06);
    --shadow-md: 0 18px 42px rgba(0, 34, 58, 0.1);
    --shadow-lg: 0 26px 60px rgba(0, 34, 58, 0.16);
    --transition: all 0.28s ease;
    --font-primary: 'Manrope', sans-serif;
    --font-body: 'Source Sans 3', sans-serif;
    --header-offset: 106px;
}

body {
    font-family: var(--font-body);
    color: var(--color-text);
    background: linear-gradient(180deg, #ffffff 0%, #f7fafc 100%);
    line-height: 1.65;
}

h1,
h2,
h3,
h4,
h5,
h6,
.navbar-brand,
.section-kicker,
.btn {
    font-family: var(--font-primary);
}

a {
    color: var(--color-primary);
    transition: var(--transition);
}

a:hover {
    color: var(--color-primary-dark);
}

.btn {
    font-weight: 700;
    border-radius: 999px;
    padding: 0.8rem 1.4rem;
}

.btn-primary {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
    color: var(--contrast-color);
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: color-mix(in srgb, var(--accent-color), black 14%);
    border-color: color-mix(in srgb, var(--accent-color), black 14%);
    color: var(--contrast-color);
}

.btn-outline-primary {
    color: var(--accent-color);
    border-color: color-mix(in srgb, var(--accent-color), transparent 42%);
    background-color: #ffffff;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
    color: var(--contrast-color);
}

.btn-outline-light {
    border-width: 2px;
}

.btn-secondary,
.btn-outline-secondary,
.btn-soft,
.stack-link {
    color: var(--accent-color);
    background-color: #ffffff;
    border-color: color-mix(in srgb, var(--accent-color), transparent 42%);
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-soft:hover,
.btn-soft:focus,
.stack-link:hover,
.stack-link:focus {
    color: var(--contrast-color);
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

.header .btn-getstarted,
.header .btn-getstarted:focus,
.btn-main,
.mini-btn,
.btn-search,
.btn-submit,
.btn-cta,
.btn-success,
.btn-success:focus,
.btn-home {
    background-color: var(--accent-color) !important;
    border-color: var(--accent-color) !important;
    color: var(--contrast-color) !important;
}

.header .btn-getstarted:hover,
.header .btn-getstarted:focus:hover,
.btn-main:hover,
.mini-btn:hover,
.btn-search:hover,
.btn-submit:hover,
.btn-cta:hover,
.btn-success:hover,
.btn-home:hover {
    background-color: color-mix(in srgb, var(--accent-color), black 14%) !important;
    border-color: color-mix(in srgb, var(--accent-color), black 14%) !important;
    color: var(--contrast-color) !important;
}

.btn-service,
.service-link,
.hero-action-link {
    color: var(--accent-color);
}

.btn-service:hover,
.service-link:hover,
.hero-action-link:hover {
    color: color-mix(in srgb, var(--accent-color), black 14%);
}

.donavita-navbar {
    padding: 0.85rem 0;
}

.brand-wordmark {
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-dark);
}

.nav-link {
    font-weight: 600;
    padding: 0.5rem 0.9rem !important;
    color: var(--color-text-muted) !important;
}

.nav-link:hover,
.nav-link.active {
    color: var(--color-primary) !important;
}

.hero-shell,
.page-hero {
    padding: 4rem 0 3rem;
}

.hero-panel,
.page-hero .container {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(0, 91, 143, 0.08);
    border-radius: 32px;
    background:
        radial-gradient(circle at top right, rgba(255, 184, 77, 0.16), transparent 32%),
        radial-gradient(circle at 20% 20%, rgba(0, 91, 143, 0.1), transparent 40%),
        linear-gradient(135deg, #ffffff 0%, #eef6fb 100%);
    box-shadow: var(--shadow-md);
    padding: 3.5rem;
}

.hero-eyebrow,
.section-kicker {
    display: inline-flex;
    margin-bottom: 1rem;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-primary);
}

.hero-copy,
.page-hero-copy {
    max-width: 780px;
    font-size: 1.15rem;
    color: var(--color-text-muted);
}

.hero-aside {
    padding: 1.5rem;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.76);
    border: 1px solid rgba(0, 91, 143, 0.1);
    backdrop-filter: blur(8px);
}

.stat-grid,
.hero-stat-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.stat-card,
.hero-stat-card {
    padding: 1.2rem 1.1rem;
    border-radius: 20px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
}

.stat-value,
.hero-stat-value {
    display: block;
    font-family: var(--font-primary);
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
    color: var(--color-dark);
}

.stat-label,
.hero-stat-label {
    display: block;
    margin-top: 0.4rem;
    color: var(--color-text-muted);
    font-size: 0.95rem;
}

.hero-contact-card {
    padding: 1rem 1.1rem;
    border-radius: 18px;
    border: 1px dashed rgba(0, 91, 143, 0.25);
}

.hero-contact-link {
    display: inline-block;
    margin-bottom: 0.3rem;
    font-size: 1.35rem;
    font-weight: 800;
    text-decoration: none;
}

.content-section {
    padding: 4.5rem 0;
}

.section-soft {
    background: var(--color-light);
}

.section-heading {
    max-width: 760px;
    margin-bottom: 2rem;
}

.section-heading.narrow {
    max-width: 680px;
}

.section-heading h2 {
    font-size: clamp(2rem, 4vw, 2.8rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--color-dark);
}

.section-heading p {
    color: var(--color-text-muted);
    font-size: 1.08rem;
}

.info-card,
.journey-card,
.catalog-card,
.lead-form-card,
.empty-state {
    height: 100%;
    border: 1px solid var(--color-border);
    border-radius: 24px;
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
}

.info-card,
.journey-card,
.lead-form-card,
.empty-state {
    padding: 1.6rem;
}

.info-card h2,
.info-card h3,
.journey-card h3,
.catalog-card h2,
.catalog-card h3,
.lead-form-title {
    color: var(--color-dark);
    font-weight: 800;
    letter-spacing: -0.02em;
}

.icon-badge {
    width: 3.2rem;
    height: 3.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    border-radius: 18px;
    background: rgba(0, 91, 143, 0.12);
    color: var(--color-primary);
    font-size: 1.4rem;
}

.journey-card {
    background: linear-gradient(180deg, #ffffff 0%, #f7fbfe 100%);
}

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

.catalog-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
}

.catalog-card-image {
    width: 100%;
    height: 230px;
    object-fit: cover;
}

.catalog-card-body {
    padding: 1.4rem;
}

.catalog-meta,
.lead-form-intro,
.contact-sidebar,
.empty-state p {
    color: var(--color-text-muted);
}

.catalog-value {
    font-size: 1.05rem;
    color: var(--color-dark);
}

.pill,
.mini-tag {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 700;
}

.pill {
    padding: 0.35rem 0.8rem;
    background: rgba(0, 91, 143, 0.08);
    color: var(--color-primary);
}

.pill-outline {
    border: 1px solid rgba(0, 91, 143, 0.2);
    background: transparent;
}

.mini-tag {
    padding: 0.25rem 0.7rem;
    background: #eef6fb;
    color: var(--color-text-muted);
}

.pill-status.status-available {
    background: rgba(32, 165, 89, 0.14);
    color: #187443;
}

.pill-status.status-in_process {
    background: rgba(240, 173, 78, 0.18);
    color: #8b5e10;
}

.pill-status.status-reserved {
    background: rgba(122, 85, 255, 0.12);
    color: #5b42b0;
}

.pill-status.status-delivered {
    background: rgba(86, 102, 117, 0.16);
    color: #42505d;
}

.filter-panel {
    padding: 1.25rem;
    border-radius: 24px;
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
}

.check-list {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.check-list li {
    position: relative;
    padding-left: 1.8rem;
    margin-bottom: 0.85rem;
    color: var(--color-text);
}

.check-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.52rem;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    background: var(--color-accent);
    box-shadow: 0 0 0 6px rgba(255, 184, 77, 0.18);
}

.lead-form-card {
    padding: 1.8rem;
}

.lead-form-title {
    margin-bottom: 0.6rem;
}

.lead-form-intro {
    margin-bottom: 1.3rem;
}

.faq-accordion .accordion-item {
    margin-bottom: 0.35rem;
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: 20px;
    box-shadow: var(--shadow-sm);
}

.faq-accordion .accordion-item:last-child {
    margin-bottom: 0;
}

.faq-accordion .accordion-button {
    font-weight: 700;
    padding: 0.95rem 1.1rem;
}

.faq-accordion .accordion-button:not(.collapsed) {
    color: var(--color-primary-dark);
    background: rgba(0, 91, 143, 0.07);
}

.faq-accordion .accordion-body {
    color: var(--color-text-muted);
    padding: 0.85rem 1.1rem 1rem;
    line-height: 1.55;
}

.faq-hub {
    padding-top: 26px;
    padding-bottom: 32px;
}

.faq-hub-intro {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 16px;
}

.faq-hub-copy {
    max-width: 760px;
}

.faq-hub-copy h2 {
    margin-bottom: 8px;
    font-size: clamp(1.36rem, 2.2vw, 1.95rem);
    letter-spacing: -0.02em;
    color: var(--heading-color);
}

.faq-hub-copy p {
    margin: 0;
    color: #4f6a6e;
    font-size: 0.98rem;
}

.faq-hub-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    min-width: 280px;
}

.faq-hub-stat {
    padding: 11px 12px;
    border-radius: 14px;
    border: 1px solid rgba(29, 124, 120, 0.18);
    background: #ffffff;
    text-align: center;
}

.faq-hub-stat strong {
    display: block;
    font-size: 1.12rem;
    line-height: 1.2;
    color: var(--accent-color);
}

.faq-hub-stat span {
    color: #5f767a;
    font-size: 0.8rem;
    font-weight: 600;
}

.faq-topic-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.faq-topic-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 13px;
    border-radius: 999px;
    border: 1px solid rgba(29, 124, 120, 0.2);
    background: #ffffff;
    color: var(--heading-color);
    font-size: 0.84rem;
    font-weight: 700;
    text-decoration: none;
    transition: 0.2s ease;
}

.faq-topic-chip:hover {
    border-color: color-mix(in srgb, var(--accent-color), transparent 45%);
    color: var(--accent-color);
    transform: translateY(-1px);
}

.faq-topic-chip small {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    border-radius: 999px;
    background: rgba(29, 124, 120, 0.12);
    color: var(--accent-color);
    font-size: 0.74rem;
    font-weight: 800;
}

.faq-highlight-panel {
    margin-bottom: 16px;
    padding: 18px;
    border-radius: 20px;
    border: 1px solid rgba(29, 124, 120, 0.12);
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(22, 53, 53, 0.06);
}

.faq-highlight-panel h3 {
    margin: 0 0 12px;
    font-size: 1.05rem;
    color: var(--heading-color);
}

.faq-highlight-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.faq-highlight-link {
    display: block;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    color: #2f5054;
    font-size: 0.86rem;
    font-weight: 600;
    text-decoration: none;
    background: #f9fbfc;
    line-height: 1.5;
}

.faq-highlight-link:hover {
    border-color: color-mix(in srgb, var(--accent-color), transparent 45%);
    color: var(--accent-color);
    background: #ffffff;
}

.faq-topic-block + .faq-topic-block {
    margin-top: 2px;
}

.faq-topic-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 3px;
}

.faq-topic-head h3 {
    margin: 0;
    font-size: 1.1rem;
    color: var(--heading-color);
}

.faq-topic-head span {
    display: inline-flex;
    align-items: center;
    height: 28px;
    padding: 0 11px;
    border-radius: 999px;
    border: 1px solid rgba(29, 124, 120, 0.18);
    background: rgba(29, 124, 120, 0.08);
    color: #326367;
    font-size: 0.78rem;
    font-weight: 700;
}

.faq-help-panel {
    padding: 18px;
    border-radius: 18px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(22, 53, 53, 0.07);
}

.faq-help-kicker {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    margin-bottom: 8px;
    border-radius: 999px;
    font-size: 0.73rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    color: var(--accent-color);
    background: rgba(29, 124, 120, 0.1);
}

.faq-help-panel h4 {
    margin: 0 0 8px;
    color: var(--heading-color);
    font-size: 1rem;
}

.faq-help-panel p {
    margin: 0 0 12px;
    color: #587175;
    font-size: 0.9rem;
}

.faq-help-list {
    display: grid;
    gap: 9px;
    margin-bottom: 14px;
}

.faq-help-item {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #35575b;
    font-size: 0.88rem;
}

.faq-help-item i {
    width: 28px;
    height: 28px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(29, 124, 120, 0.1);
    color: var(--accent-color);
    font-size: 0.9rem;
}

.faq-help-actions {
    display: grid;
    gap: 8px;
}

@media (max-width: 1199.98px) {
    .faq-highlight-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991.98px) {
    .faq-hub {
        padding-top: 20px;
        padding-bottom: 34px;
    }

    .faq-hub-intro {
        flex-direction: column;
    }

    .faq-hub-stats {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 767.98px) {
    .faq-topic-nav {
        gap: 6px;
        margin-bottom: 14px;
    }

    .faq-topic-chip {
        width: 100%;
        justify-content: space-between;
    }

    .faq-highlight-panel,
    .faq-help-panel {
        padding: 14px;
        border-radius: 14px;
    }

    .faq-hub-copy p,
    .faq-accordion .accordion-body,
    .faq-help-panel p,
    .faq-help-item {
        font-size: 0.84rem;
    }

    .faq-accordion .accordion-button {
        padding: 0.8rem 0.9rem;
    }

    .faq-topic-head h3 {
        font-size: 1rem;
    }

    .faq-topic-block + .faq-topic-block {
        margin-top: 0;
    }
}

.cta-band {
    padding: 4rem 0;
    background:
        radial-gradient(circle at top left, rgba(255, 255, 255, 0.1), transparent 28%),
        linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
}

.site-footer {
    background: var(--color-dark);
}

.footer-links li {
    margin-bottom: 0.6rem;
}

.footer-links a,
.social-links a {
    color: rgba(255, 255, 255, 0.72);
    text-decoration: none;
}

.footer-links a:hover,
.social-links a:hover {
    color: #ffffff;
}

.empty-state {
    padding: 2rem;
    text-align: center;
}

.pagination {
    gap: 0.35rem;
}

.pagination .page-link {
    border: none;
    border-radius: 999px !important;
    color: var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.pagination .active > .page-link,
.pagination .page-link.active {
    background: var(--color-primary);
    color: #ffffff;
}

.form-control,
.form-select {
    min-height: 3rem;
    border-radius: 14px;
    border-color: var(--color-border);
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(0, 91, 143, 0.35);
    box-shadow: 0 0 0 0.25rem rgba(0, 91, 143, 0.12);
}

.alert {
    border-radius: 18px;
}

:focus-visible {
    outline: 3px solid rgba(0, 91, 143, 0.35);
    outline-offset: 2px;
}

.visually-hidden-focusable:not(:focus):not(:focus-within) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

@media (max-width: 991.98px) {
    .hero-panel,
    .page-hero .container {
        padding: 2.2rem;
    }

    .stat-grid,
    .hero-stat-row {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 767.98px) {
    .hero-shell,
    .page-hero,
    .content-section,
    .cta-band {
        padding: 3rem 0;
    }

    .hero-panel,
    .page-hero .container {
        border-radius: 24px;
        padding: 1.5rem;
    }

    .stat-grid,
    .hero-stat-row {
        grid-template-columns: 1fr;
    }

    .catalog-card-image {
        height: 210px;
    }
}

@media print {
    .navbar,
    .footer,
    .whatsapp-float,
    .cookie-banner {
        display: none !important;
    }
}

/* ==========================================================================
   DONAVITA + THEPROPERTY OVERRIDES
   ========================================================================== */

:root {
    --default-font: 'Source Sans 3', sans-serif;
    --heading-font: 'Manrope', sans-serif;
    --nav-font: 'Manrope', sans-serif;
    --background-color: #f4fbfa;
    --default-color: #35565c;
    --heading-color: #163535;
    --accent-color: #1d7c78;
    --surface-color: #ffffff;
    --contrast-color: #ffffff;
    --nav-color: #264548;
    --nav-hover-color: #1d7c78;
    --nav-dropdown-color: #264548;
    --nav-dropdown-hover-color: #1d7c78;
}

body {
    background:
        radial-gradient(circle at top left, rgba(29, 124, 120, 0.08), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #f4fbfa 100%);
}

.page-title .page-kicker {
    display: inline-flex;
    margin-bottom: 18px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(29, 124, 120, 0.1);
    color: var(--accent-color);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.header .header-container {
    border: 1px solid rgba(29, 124, 120, 0.08);
    backdrop-filter: blur(18px);
}

.header .logo img,
.footer .logo img {
    max-height: 42px;
    margin-right: 12px;
}

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

.header .brand-lockup .sitename {
    letter-spacing: -0.03em;
}

.site-note {
    color: #6b8083;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.header-meta {
    gap: 0;
}

.navmenu > ul {
    gap: 8px;
}

.navmenu a,
.navmenu a:focus {
    font-size: 1.02rem;
}

.header .btn-getstarted,
.header .btn-getstarted:focus {
    margin-left: 18px;
}

@media (max-width: 1199.98px) {
    .header {
        padding-top: 10px;
    }

    .header .header-container {
        min-height: 68px;
        margin-inline: 12px;
        padding: 10px 12px;
        border-radius: 22px;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    .header .logo {
        flex: 1 1 auto;
        max-width: calc(100% - 66px);
        min-width: 0;
    }

    .header .logo img {
        max-height: 34px;
        margin-right: 10px;
    }

    .header .brand-lockup {
        min-width: 0;
    }

    .header .brand-lockup .sitename {
        margin: 0;
        font-size: 1.7rem;
        line-height: 1;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .header .site-note {
        display: none;
    }

    .header .navmenu {
        margin-left: auto;
    }

    .mobile-nav-toggle {
        width: 42px;
        height: 42px;
        margin-right: 0;
        padding: 0;
        border: 0;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        line-height: 1;
        font-size: 1.55rem;
        color: var(--accent-color);
        background: rgba(29, 124, 120, 0.12);
    }

    .mobile-nav-toggle:hover,
    .mobile-nav-toggle:focus {
        color: color-mix(in srgb, var(--accent-color), black 10%);
        background: rgba(29, 124, 120, 0.2);
    }

    .navmenu ul {
        top: 82px;
        left: 14px;
        right: 14px;
        bottom: auto;
        padding: 8px 12px;
        border-radius: 16px;
        border: 1px solid rgba(29, 124, 120, 0.14);
        box-shadow: 0 18px 40px rgba(12, 34, 36, 0.16);
        max-height: min(520px, calc(100dvh - 110px));
    }

    .navmenu li + li {
        border-top: 1px solid rgba(29, 124, 120, 0.12);
    }

    .navmenu a,
    .navmenu a:focus {
        padding: 11px 12px;
        font-size: 0.98rem;
        font-weight: 700;
        white-space: normal;
    }

    .navmenu .navmenu-mobile-cta {
        margin-top: 10px;
        border-top: 0;
    }

    .navmenu .navmenu-mobile-cta a,
    .navmenu .navmenu-mobile-cta a:focus {
        justify-content: center;
        border-radius: 999px;
        background: var(--accent-color);
        color: #ffffff;
        font-weight: 800;
    }

    .navmenu .navmenu-mobile-cta a:hover {
        color: #ffffff;
        background: color-mix(in srgb, var(--accent-color), black 10%);
    }

    .mobile-nav-active .navmenu {
        background: rgba(13, 29, 33, 0.5);
        backdrop-filter: blur(4px);
    }

    .navmenu.is-open {
        position: fixed;
        inset: 0;
        z-index: 10020;
        background: rgba(13, 29, 33, 0.5);
        backdrop-filter: blur(4px);
    }

    .mobile-nav-active .navmenu > ul {
        position: fixed;
        top: 82px;
        left: 14px;
        right: 14px;
        bottom: auto;
        display: flex !important;
        flex-direction: column;
        align-items: stretch;
        overflow-y: auto;
        z-index: 10001;
        background: #ffffff;
        opacity: 1;
        visibility: visible;
        max-height: min(520px, calc(100dvh - 110px));
    }

    .navmenu.is-open > ul {
        position: fixed;
        top: 82px;
        left: 14px;
        right: 14px;
        bottom: auto;
        display: flex !important;
        flex-direction: column;
        align-items: stretch;
        overflow-y: auto;
        z-index: 10021;
        background: #ffffff;
        opacity: 1;
        visibility: visible;
        max-height: min(520px, calc(100dvh - 110px));
    }

    .mobile-nav-active .mobile-nav-toggle {
        top: 18px;
        right: 18px;
        width: 40px;
        height: 40px;
        font-size: 1.3rem;
        color: var(--accent-color);
        background: #ffffff;
    }

    .navmenu.is-open .mobile-nav-toggle {
        position: fixed;
        top: 18px;
        right: 18px;
        width: 40px;
        height: 40px;
        font-size: 1.3rem;
        color: var(--accent-color);
        background: #ffffff;
    }
}

@media (max-width: 767.98px) {
    .header .header-container {
        min-height: 64px;
        margin-inline: 8px;
        padding: 9px 10px;
        border-radius: 18px;
    }

    .header .brand-lockup .sitename {
        font-size: 1.5rem;
    }

    .navmenu ul {
        top: 76px;
        left: 10px;
        right: 10px;
        bottom: auto;
        padding: 10px;
        max-height: min(460px, calc(100dvh - 96px));
    }

    .mobile-nav-active .navmenu > ul {
        top: 76px;
        left: 10px;
        right: 10px;
        bottom: auto;
        max-height: min(460px, calc(100dvh - 96px));
    }

    .navmenu.is-open > ul {
        top: 76px;
        left: 10px;
        right: 10px;
        bottom: auto;
        max-height: min(460px, calc(100dvh - 96px));
    }

    .navmenu a,
    .navmenu a:focus {
        padding: 10px 10px;
        font-size: 0.94rem;
    }
}

.section-title p,
.page-title .heading p {
    max-width: 760px;
    margin: 0 auto;
}

.page-title nav .container {
    display: flex;
    justify-content: center;
}

.page-title nav {
    background-color: rgba(255, 255, 255, 0.62);
    border-top: 1px solid rgba(29, 124, 120, 0.08);
    border-bottom: 1px solid rgba(29, 124, 120, 0.08);
}

.page-title nav ol {
    justify-content: center;
    align-items: center;
    text-align: center;
    margin-inline: auto;
}

.page-title nav ol li {
    display: inline-flex;
    align-items: center;
}

/* ==========================================================================
   Inner Page Vertical Rhythm
   ========================================================================== */

:where(body:not(.index-page)) .page-title {
    padding-top: calc(var(--header-offset, 106px) + 10px);
}

:where(body:not(.index-page)) .page-title nav {
    padding: 12px 0;
}

:where(body:not(.index-page)) .page-title .heading {
    padding: 34px 0 26px;
}

:where(body:not(.index-page)) .page-title .heading h1 {
    margin-bottom: 10px;
    font-size: clamp(1.9rem, 3.1vw, 2.5rem);
}

:where(body:not(.index-page)) .page-title .heading p {
    font-size: 1rem;
    line-height: 1.55;
}

:where(body:not(.index-page)) .page-title + .section,
:where(body:not(.index-page)) .page-title + section.section {
    padding-top: 22px;
}

:where(body:not(.index-page)) main .section,
:where(body:not(.index-page)) main section.section {
    padding-top: 30px;
    padding-bottom: 26px;
}

:where(body:not(.index-page)) .section-title {
    padding-bottom: 32px;
}

:where(body:not(.index-page)) .section-title h2 {
    margin-bottom: 12px;
    padding-bottom: 12px;
}

.logo-avatar {
    object-fit: contain;
    background: #ffffff;
    padding: 10px;
}

.donavita-contact-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.donavita-contact-pills a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.88);
}

.donavita-contact-pills a:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.14);
}

.footer .footer-contact .contact-info a {
    color: rgba(255, 255, 255, 0.85);
}

.footer .footer-contact .contact-info a:hover {
    color: #ffffff;
}

.footer .credits {
    margin-top: 8px;
    color: rgba(255, 255, 255, 0.55);
    font-size: 13px;
}

.footer .credits a {
    color: rgba(255, 255, 255, 0.76);
}

.footer .credits a:hover {
    color: #ffffff;
}

.featured-properties .quick-specs span {
    font-size: 13px;
}

.stack-specs {
    list-style: none;
    padding: 0;
    margin: 18px 0 0;
}

.stack-specs li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 14px;
    margin-bottom: 8px;
    color: #5d7478;
    font-size: 14px;
}

.services .service-card .feature-list {
    margin-top: 18px;
}

.services .service-card .feature-list .feature-item {
    display: flex;
    align-items: center;
    gap: 10px;
}

.donavita-card-grid,
.donavita-bullet-grid {
    display: grid;
    gap: 16px;
    margin-top: 24px;
}

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

.donavita-bullet-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.donavita-mini-panel {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 18px 20px;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid rgba(22, 53, 53, 0.08);
    box-shadow: 0 12px 30px rgba(22, 53, 53, 0.08);
    color: #577074;
}

.donavita-mini-panel i {
    color: var(--accent-color);
    font-size: 18px;
}

.donavita-bullet-panel {
    padding: 32px;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(29, 124, 120, 0.08);
}

.donavita-bullet-panel h4 {
    margin-bottom: 18px;
}

.donavita-form-intro h2 {
    font-size: clamp(2rem, 3vw, 2.6rem);
    margin-top: 14px;
    margin-bottom: 16px;
}

.donavita-form-intro p {
    color: #60797c;
    font-size: 1.05rem;
}

.contact-form-wrapper.donavita-form-card {
    background: #ffffff;
    border: 1px solid rgba(29, 124, 120, 0.08);
    box-shadow: 0 18px 48px rgba(22, 53, 53, 0.12);
    border-radius: 24px;
    padding: clamp(22px, 2.4vw, 34px);
}

.contact-form-wrapper.donavita-form-card .form-intro {
    max-width: 720px;
    margin: 0 auto 22px;
    color: #60797c;
    font-size: 0.97rem;
}

.contact-page-main .php-email-form,
.donate-page .php-email-form {
    margin-top: 4px;
}

.contact-page-main .php-email-form .row.g-3,
.donate-page .php-email-form .row.g-3 {
    --bs-gutter-y: 0.95rem;
}

.contact-page-main .form-group,
.donate-page .form-group {
    margin-bottom: 0;
}

.contact-page-main .form-label-simple,
.donate-page .form-label-simple {
    display: block;
    margin-bottom: 7px;
    font-size: 0.9rem;
    font-weight: 700;
    color: #2f4c51;
}

.contact-page-main .input-with-icon,
.donate-page .input-with-icon {
    position: relative;
}

.contact-page-main .input-with-icon i,
.donate-page .input-with-icon i {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    color: #789095;
    font-size: 15px;
    pointer-events: none;
    transition: color 0.2s ease;
}

.contact-page-main .input-with-icon i.message-icon,
.donate-page .input-with-icon i.message-icon {
    top: 18px;
    transform: none;
}

.contact-page-main .input-with-icon .form-control,
.contact-page-main .input-with-icon .form-select,
.donate-page .input-with-icon .form-control,
.donate-page .input-with-icon .form-select {
    min-height: 3.25rem;
    height: 3.25rem;
    border-radius: 14px;
    border: 1px solid rgba(22, 53, 53, 0.16);
    background: #ffffff;
    color: #1f373c;
    font-size: 0.98rem;
    padding-left: 42px;
    box-shadow: none;
}

.contact-page-main .input-with-icon .form-select,
.donate-page .input-with-icon .form-select {
    padding-right: 2.5rem;
}

.contact-page-main .input-with-icon textarea.form-control,
.donate-page .input-with-icon textarea.form-control {
    min-height: 144px;
    height: auto;
    line-height: 1.5;
    resize: vertical;
    padding-top: 13px;
}

.contact-page-main .input-with-icon .form-control::placeholder,
.contact-page-main .input-with-icon .form-select::placeholder,
.donate-page .input-with-icon .form-control::placeholder,
.donate-page .input-with-icon .form-select::placeholder {
    color: #8ca1a5;
}

.contact-page-main .input-with-icon:focus-within i,
.donate-page .input-with-icon:focus-within i {
    color: var(--accent-color);
}

.contact-page-main .input-with-icon .form-control:focus,
.contact-page-main .input-with-icon .form-select:focus,
.donate-page .input-with-icon .form-control:focus,
.donate-page .input-with-icon .form-select:focus {
    border-color: color-mix(in srgb, var(--accent-color), transparent 35%);
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--accent-color), transparent 84%);
}

.contact-page-main .lead-field-help,
.donate-page .lead-field-help {
    display: block;
    margin-top: 6px;
    color: #71898d;
    font-size: 0.8rem;
}

.contact-page-main .lead-response-note,
.donate-page .lead-response-note {
    margin: 0 0 10px;
    font-size: 0.82rem;
    color: #728a8e;
}

.contact-page-main .donavita-form-card .invalid-feedback,
.donate-page .donavita-form-card .invalid-feedback {
    margin-top: 8px;
    font-size: 0.82rem;
}

.contact-page-main .donavita-form-card .btn-submit,
.donate-page .donavita-form-card .btn-submit {
    min-width: 280px;
    min-height: 3.2rem;
    border-radius: 999px;
    font-size: 1rem;
    letter-spacing: 0;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--accent-color), transparent 72%);
}

.contact-page-main {
    padding-top: 34px;
    padding-bottom: 44px;
}

.contact-overview {
    padding: 26px 24px;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(29, 124, 120, 0.12);
    box-shadow: 0 14px 36px rgba(22, 53, 53, 0.08);
}

.contact-overview h2 {
    margin-bottom: 12px;
}

.contact-overview-intro {
    margin: 0 0 20px;
    color: #60797c;
}

.contact-channel-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 14px;
}

.contact-channel-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(22, 53, 53, 0.08);
}

.contact-channel-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.contact-channel-icon {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(29, 124, 120, 0.1);
    color: var(--accent-color);
    font-size: 16px;
}

.contact-channel-content {
    display: grid;
    gap: 4px;
}

.contact-channel-label {
    font-weight: 700;
    color: var(--heading-color);
}

.contact-channel-content a {
    color: var(--heading-color);
    font-weight: 500;
}

.contact-channel-content a:hover {
    color: var(--accent-color);
}

.contact-channel-content p {
    margin: 0;
    color: #60797c;
}

.contact-flow-block {
    margin-top: 34px;
    margin-bottom: 22px;
    padding: 24px;
    border-radius: 24px;
    background: #ffffff;
    border: 1px solid rgba(29, 124, 120, 0.12);
}

.contact-flow-block h2 {
    margin-bottom: 16px;
}

.contact-step-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 14px;
}

.contact-step-item {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 12px 0;
    border-bottom: 1px solid rgba(22, 53, 53, 0.08);
}

.contact-step-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.contact-step-index {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(29, 124, 120, 0.12);
    color: var(--accent-color);
    font-weight: 700;
    font-size: 14px;
}

.contact-step-content h3 {
    font-size: 1.06rem;
    margin-bottom: 6px;
}

.contact-step-content p {
    margin: 0;
    color: #60797c;
}

.contact-mini-faq,
.contact-legal-note {
    height: 100%;
    padding: 22px;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid rgba(29, 124, 120, 0.12);
}

.contact-mini-faq h3,
.contact-legal-note h3 {
    margin-bottom: 14px;
}

.contact-mini-faq-item + .contact-mini-faq-item {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(22, 53, 53, 0.08);
}

.contact-mini-faq-item h4 {
    margin: 0 0 6px;
    font-size: 1rem;
}

.contact-mini-faq-item p,
.contact-legal-note p {
    margin: 0;
    color: #60797c;
}

.contact-legal-link {
    display: inline-flex;
    margin-top: 14px;
    font-weight: 600;
}

.donavita-consent-check {
    text-align: left;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(29, 124, 120, 0.05);
    border: 1px solid rgba(29, 124, 120, 0.12);
}

.donavita-consent-check .form-check-input {
    width: 1.05rem;
    height: 1.05rem;
    margin-top: 0.17rem;
    margin-left: 0;
    margin-right: 10px;
    float: none;
    flex-shrink: 0;
}

.donavita-consent-check .form-check-label {
    color: #5f7579;
    font-size: 0.86rem;
    line-height: 1.5;
}

.donavita-consent-check .form-check-label a {
    color: var(--accent-color);
    font-weight: 600;
}

.donavita-coverage-panel {
    position: relative;
    padding: 110px 0 140px;
    background:
        linear-gradient(135deg, rgba(22, 53, 53, 0.92), rgba(29, 124, 120, 0.82)),
        url('/images/wordpress/160d0d14739a6bf21a35a156cf7fdad4-logos_bienes-solidarios.png') center/cover no-repeat;
}

.coverage-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 28px;
    align-items: center;
    color: #ffffff;
}

.coverage-kicker {
    display: inline-flex;
    margin-bottom: 16px;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.14);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.coverage-copy h2 {
    color: #ffffff;
    margin-bottom: 16px;
}

.coverage-copy p {
    margin: 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 1.05rem;
}

.coverage-cards {
    display: grid;
    gap: 16px;
}

.coverage-card {
    padding: 22px 24px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(10px);
}

.coverage-card strong {
    display: block;
    margin-bottom: 6px;
    font-size: 1.15rem;
    color: #ffffff;
}

.coverage-card span {
    color: rgba(255, 255, 255, 0.8);
}

.donavita-filter-sidebar {
    position: sticky;
    top: 120px;
    padding: 26px;
    border-radius: 24px;
    background: #ffffff;
    border: 1px solid rgba(29, 124, 120, 0.08);
    box-shadow: 0 16px 44px rgba(22, 53, 53, 0.08);
}

.donavita-filter-header h3 {
    margin-bottom: 10px;
}

.donavita-filter-header p,
.donavita-results-count,
.story-grid-excerpt,
.privacy-note-box p {
    color: #60797c;
}

.donavita-filter-stats {
    display: grid;
    gap: 12px;
    margin-top: 24px;
}

.donavita-filter-stats .stat-card {
    padding: 16px 18px;
    border-radius: 18px;
    background: rgba(29, 124, 120, 0.06);
    border: 1px solid rgba(29, 124, 120, 0.08);
    box-shadow: none;
}

.donavita-filter-stats .stat-card strong {
    display: block;
    color: var(--heading-color);
    font-size: 1.4rem;
    line-height: 1;
}

.donavita-filter-stats .stat-card span {
    display: block;
    margin-top: 6px;
    color: #60797c;
    font-size: 14px;
}

.properties .property-card .property-content .property-excerpt {
    margin: 14px 0 18px;
    color: #60797c;
}

.properties .property-card .property-image .property-badges .badge.status-available {
    background: #1d7c78;
}

.properties .property-card .property-image .property-badges .badge.status-in_process {
    background: #c88a22;
}

.properties .property-card .property-image .property-badges .badge.status-reserved {
    background: #7257d5;
}

.properties .property-card .property-image .property-badges .badge.status-delivered {
    background: #5d7478;
}

.donavita-empty-state {
    padding: 48px 24px;
    border-radius: 24px;
    background: #ffffff;
    border: 1px solid rgba(29, 124, 120, 0.08);
    text-align: center;
    box-shadow: 0 16px 40px rgba(22, 53, 53, 0.08);
}

.donavita-filter-strip {
    padding-top: 0;
}

.donavita-filter-strip form {
    padding: 24px;
    border-radius: 24px;
    background: #ffffff;
    border: 1px solid rgba(29, 124, 120, 0.08);
    box-shadow: 0 16px 40px rgba(22, 53, 53, 0.08);
}

.story-grid-excerpt {
    min-height: 72px;
    margin-bottom: 14px;
}

.privacy-note-box {
    padding: 30px 34px;
    border-radius: 24px;
    background: rgba(29, 124, 120, 0.06);
    border: 1px solid rgba(29, 124, 120, 0.1);
}

.faq-side-card {
    position: sticky;
    top: 120px;
}

.contact-2 .contact-info-box .info-content a {
    color: var(--heading-color);
    font-weight: 600;
}

.contact-2 .contact-info-box .info-content a:hover {
    color: var(--accent-color);
}

@media (max-width: 1199.98px) {
    .header-meta {
        display: none !important;
    }

    .donavita-filter-sidebar,
    .faq-side-card {
        position: static;
        top: auto;
    }
}

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

    .donavita-card-grid,
    .donavita-bullet-grid {
        grid-template-columns: 1fr;
    }

    .donavita-coverage-panel {
        padding: 80px 0 110px;
    }

    .contact-overview,
    .contact-flow-block,
    .contact-mini-faq,
    .contact-legal-note {
        padding: 20px;
    }

    .contact-form-wrapper.donavita-form-card {
        padding: 22px;
    }
}

@media (max-width: 767.98px) {
    .brand-lockup .site-note {
        display: none;
    }

    .donavita-filter-sidebar,
    .donavita-filter-strip form,
    .privacy-note-box,
    .donavita-bullet-panel {
        padding: 20px;
    }

    .coverage-card strong {
        font-size: 1rem;
        word-break: break-word;
    }

    .contact-page-main {
        padding-top: 26px;
        padding-bottom: 34px;
    }

    .donate-page .donate-page-main {
        padding-top: 24px;
        padding-bottom: 12px;
    }

    .donate-page .donate-section-compact {
        padding-top: 8px;
        padding-bottom: 12px;
    }

    .contact-step-index {
        width: 34px;
        height: 34px;
    }

    .donavita-form-card .btn-submit {
        width: 100%;
        min-width: 0;
    }

    .contact-page-main .input-with-icon .form-control,
    .contact-page-main .input-with-icon .form-select,
    .donate-page .input-with-icon .form-control,
    .donate-page .input-with-icon .form-select {
        min-height: 3.05rem;
        height: 3.05rem;
        font-size: 0.95rem;
    }

    .contact-page-main .input-with-icon textarea.form-control,
    .donate-page .input-with-icon textarea.form-control {
        min-height: 128px;
    }

    .contact-page-main .form-label-simple,
    .donate-page .form-label-simple {
        font-size: 0.86rem;
    }

    .footer .footer-bottom-links {
        flex-wrap: wrap;
        gap: 12px;
    }
}

/* ==========================================================================
   Home Hero Refresh
   ========================================================================== */

.hero {
    min-height: auto;
    padding-bottom: 72px;
}

.hero-content-clean {
    display: grid;
    gap: 30px;
}

.hero .hero-text h1 {
    max-width: 13ch;
    margin-bottom: 20px;
    font-size: clamp(2.2rem, 4.1vw, 3rem);
    line-height: 1.12;
}

.hero .hero-text .hero-intro {
    max-width: 58ch;
    margin-bottom: 22px;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-bottom: 14px;
}

.hero-actions .btn {
    min-height: 52px;
    padding-inline: 1.45rem;
}

.hero-actions .btn-outline-primary {
    background: rgba(255, 255, 255, 0.76);
}

.hero-action-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-primary);
    font-weight: 800;
    color: var(--color-dark);
    text-decoration: none;
}

.hero-action-link:hover {
    color: var(--color-primary);
}

.hero-support-note {
    margin: 0;
    max-width: 62ch;
    color: var(--color-text-muted);
    font-size: 1rem;
    line-height: 1.7;
    margin-bottom: 4px;
}

.hero-media-card {
    position: relative;
    border-radius: 28px;
    padding: 16px;
    background: linear-gradient(155deg, rgba(255, 255, 255, 0.92), rgba(228, 242, 247, 0.9));
    border: 1px solid rgba(0, 91, 143, 0.12);
    box-shadow: 0 28px 62px rgba(24, 52, 71, 0.14);
}

.hero-media-main {
    margin: 0;
    overflow: hidden;
    border-radius: 22px;
}

.hero-media-main img {
    width: 100%;
    height: 500px;
    object-fit: cover;
}

.hero-media-chip {
    position: absolute;
    top: 24px;
    right: 24px;
    width: min(66%, 280px);
    padding: 16px 18px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(0, 91, 143, 0.12);
    box-shadow: 0 20px 38px rgba(17, 50, 70, 0.14);
}

.chip-eyebrow {
    display: inline-flex;
    margin-bottom: 8px;
    color: var(--color-primary);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.hero-media-chip strong {
    display: block;
    font-family: var(--font-primary);
    font-size: 1.06rem;
    line-height: 1.3;
    color: var(--color-dark);
}

.hero-media-chip small {
    display: block;
    margin-top: 8px;
    color: var(--color-text-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}

.hero-media-contact {
    position: absolute;
    left: 24px;
    bottom: 24px;
    width: min(72%, 340px);
    padding: 16px 18px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(0, 91, 143, 0.12);
    box-shadow: 0 20px 38px rgba(17, 50, 70, 0.14);
}

.hero-media-contact h5 {
    margin: 0 0 8px;
    font-size: 1.04rem;
}

.hero-media-contact p {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.94rem;
    line-height: 1.5;
}

.hero-media-contact a {
    display: inline-flex;
    margin-top: 8px;
    font-family: var(--font-primary);
    font-weight: 800;
    text-decoration: none;
}

.hero-media-support {
    margin-top: 14px;
    display: grid;
    grid-template-columns: 156px 1fr;
    gap: 14px;
    align-items: stretch;
}

.hero-media-support-image {
    margin: 0;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(0, 91, 143, 0.12);
}

.hero-media-support-image img {
    width: 100%;
    height: 100%;
    min-height: 154px;
    object-fit: cover;
}

.hero-media-support-copy {
    padding: 14px 16px;
    border-radius: 18px;
    border: 1px solid rgba(0, 91, 143, 0.12);
    background: rgba(255, 255, 255, 0.92);
}

.hero-media-support-copy strong {
    display: block;
    margin-bottom: 10px;
    font-family: var(--font-primary);
    font-size: 0.98rem;
    color: var(--color-dark);
}

.hero-media-support-copy ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
}

.hero-media-support-copy li {
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(14, 116, 144, 0.12);
    color: #0f4f65;
    font-size: 0.84rem;
    font-weight: 700;
}

.hero-media-support-copy p {
    margin: 0;
    color: var(--color-text-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}

.hero-metrics .hero-metric-card {
    height: 100%;
    padding: 20px 18px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(0, 91, 143, 0.12);
    box-shadow: 0 14px 30px rgba(20, 49, 68, 0.09);
    text-align: center;
}

.hero-metric-card h3 {
    margin: 0 0 7px;
    font-size: 2rem;
    color: #1b6b6f;
}

.hero-metric-card p {
    margin: 0;
    color: var(--color-text-muted);
    font-weight: 600;
}

.hero-flow {
    padding: 26px;
    border-radius: 24px;
    border: 1px solid rgba(0, 91, 143, 0.12);
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 20px 42px rgba(20, 49, 68, 0.1);
}

.hero-flow-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
}

.hero-flow-head h3 {
    margin: 0;
    font-size: clamp(1.25rem, 2vw, 1.6rem);
}

.hero-flow-step {
    height: 100%;
    padding: 20px 18px;
    border-radius: 18px;
    border: 1px solid rgba(0, 91, 143, 0.12);
    background: #ffffff;
}

.hero-step-index {
    display: inline-flex;
    margin-bottom: 10px;
    color: #1b6b6f;
    font-family: var(--font-primary);
    font-weight: 800;
    font-size: 0.85rem;
    letter-spacing: 0.08em;
}

.hero-flow-step h4 {
    margin: 0 0 10px;
    font-size: 1.08rem;
}

.hero-flow-step p {
    margin: 0 0 14px;
    color: var(--color-text-muted);
    font-size: 0.95rem;
    line-height: 1.55;
}

.hero-flow-step a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    font-weight: 700;
}

.featured-donor-case {
    padding-top: 26px;
    padding-bottom: 30px;
}

.featured-donor-case-shell {
    padding: 20px;
    border-radius: 24px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background:
        radial-gradient(circle at 100% 0%, rgba(29, 124, 120, 0.08), transparent 38%),
        #ffffff;
    box-shadow: 0 16px 36px rgba(22, 53, 53, 0.09);
}

.featured-donor-media {
    margin: 0;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(29, 124, 120, 0.14);
}

.featured-donor-media img {
    width: 100%;
    height: 100%;
    min-height: 310px;
    object-fit: cover;
}

.featured-donor-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.featured-donor-badge {
    align-self: flex-start;
    display: inline-flex;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(29, 124, 120, 0.12);
    color: #145c59;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.featured-donor-content h2 {
    margin: 0;
    font-size: clamp(1.45rem, 2.5vw, 2rem);
    line-height: 1.22;
}

.featured-donor-content p {
    margin: 0;
    color: #577276;
    font-size: 0.98rem;
    line-height: 1.58;
}

.featured-donor-content blockquote {
    margin: 4px 0 0;
    padding: 12px 14px;
    border-left: 4px solid rgba(29, 124, 120, 0.7);
    border-radius: 12px;
    background: rgba(29, 124, 120, 0.08);
    color: #214548;
    font-family: var(--font-primary);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.5;
}

.featured-donor-author {
    color: #33595d;
    font-size: 0.9rem;
    font-weight: 700;
}

.featured-donor-actions {
    margin-top: 4px;
}

.donation-showcase-note {
    margin: 0 auto 26px;
    max-width: 860px;
    padding: 14px 18px;
    border-radius: 14px;
    background: rgba(29, 124, 120, 0.08);
    border: 1px solid rgba(29, 124, 120, 0.14);
    color: #35565c;
    text-align: center;
    font-weight: 600;
}

.donation-item-card {
    height: 100%;
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid rgba(29, 124, 120, 0.12);
    box-shadow: 0 12px 34px rgba(22, 53, 53, 0.08);
    overflow: hidden;
}

.donation-item-media {
    margin: 0;
    height: 180px;
    overflow: hidden;
}

.donation-item-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.donation-item-body {
    padding: 18px 18px 16px;
}

.donation-item-body h3 {
    margin: 0 0 10px;
    font-size: 1.2rem;
    line-height: 1.28;
}

.donation-item-body p {
    margin: 0 0 12px;
    color: #60797c;
    font-size: 0.96rem;
    line-height: 1.55;
}

.donation-item-body ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.donation-item-body li {
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(29, 124, 120, 0.12);
    color: #145c59;
    font-size: 0.8rem;
    font-weight: 700;
}

.home-guarantees .section-title p {
    max-width: 820px;
}

.guarantee-card {
    height: 100%;
    padding: 24px 22px;
    border-radius: 20px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(22, 53, 53, 0.08);
}

.guarantee-icon {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    border-radius: 14px;
    background: rgba(29, 124, 120, 0.12);
    color: var(--accent-color);
    font-size: 1.2rem;
}

.guarantee-card h3 {
    margin: 0 0 10px;
    font-size: 1.12rem;
}

.guarantee-card p {
    margin: 0;
    color: #60797c;
    font-size: 0.95rem;
    line-height: 1.58;
}

.home-guarantees-footnote {
    margin-top: 22px;
    padding: 14px 18px;
    border-radius: 14px;
    border: 1px solid rgba(29, 124, 120, 0.16);
    background: rgba(29, 124, 120, 0.08);
    display: flex;
    align-items: center;
    gap: 10px;
    color: #35565c;
    font-weight: 600;
}

.home-guarantees-footnote i {
    color: var(--accent-color);
    font-size: 1rem;
}

.testimonials-intro {
    margin: 0 auto 24px;
    max-width: 820px;
    color: #60797c;
    text-align: center;
    font-size: 1.02rem;
}

.testimonials-section .section-title {
    padding-bottom: 18px;
}

.testimonials-section .section-title h2 {
    margin-bottom: 10px;
    padding-bottom: 12px;
}

.testimonial-highlight-card {
    height: 100%;
    border-radius: 20px;
    border: 1px solid rgba(29, 124, 120, 0.12);
    background: #ffffff;
    box-shadow: 0 14px 34px rgba(22, 53, 53, 0.08);
    overflow: hidden;
}

.testimonial-highlight-media {
    margin: 0;
    height: 210px;
    overflow: hidden;
}

.testimonial-highlight-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.testimonial-highlight-body {
    padding: 18px 18px 20px;
}

.testimonial-highlight-body h3 {
    margin: 8px 0 10px;
    font-size: 1.15rem;
    line-height: 1.3;
}

.testimonial-stars {
    display: inline-flex;
    gap: 4px;
    color: #d19a1f;
    font-size: 0.88rem;
}

.testimonial-stars-sm {
    font-size: 0.8rem;
}

.testimonial-quote {
    margin: 0 0 10px;
    color: #35565c;
    font-size: 0.95rem;
    line-height: 1.58;
}

.testimonial-person {
    margin: 0 0 6px;
    font-weight: 700;
    color: #19393c;
    font-size: 0.92rem;
}

.testimonial-meta {
    margin: 0;
    color: #6a8084;
    font-size: 0.85rem;
}

.testimonials-archive {
    margin-top: 36px;
    padding: 26px;
    border-radius: 24px;
    border: 1px solid rgba(29, 124, 120, 0.12);
    background: rgba(255, 255, 255, 0.86);
    box-shadow: 0 18px 44px rgba(22, 53, 53, 0.08);
}

.testimonials-archive-head {
    margin-bottom: 16px;
}

.testimonials-archive-head h3 {
    margin: 0 0 6px;
    font-size: clamp(1.3rem, 2.2vw, 1.65rem);
}

.testimonials-archive-head p {
    margin: 0;
    color: #60797c;
}

.testimonials-archive-filters .btn {
    min-height: 3rem;
}

.testimonials-archive-count {
    margin: 14px 0 18px;
    color: #516c70;
    font-weight: 600;
}

.testimonial-archive-card {
    height: 100%;
    padding: 18px;
    border-radius: 18px;
    border: 1px solid rgba(29, 124, 120, 0.12);
    background: #ffffff;
}

.testimonial-archive-card h4 {
    margin: 0 0 10px;
    font-size: 1.03rem;
    line-height: 1.3;
}

.testimonial-archive-quote {
    margin: 0 0 10px;
    color: #4d686c;
    line-height: 1.55;
    font-size: 0.92rem;
}

.testimonial-archive-person {
    margin: 10px 0 4px;
    font-weight: 700;
    color: #163535;
    font-size: 0.88rem;
}

.testimonial-archive-meta {
    margin: 0;
    color: #6a8084;
    font-size: 0.82rem;
}

.testimonials-empty {
    margin-top: 18px;
    padding: 18px;
    border-radius: 14px;
    border: 1px dashed rgba(29, 124, 120, 0.3);
    background: rgba(29, 124, 120, 0.05);
}

.testimonials-empty h4 {
    margin: 0 0 6px;
    font-size: 1.02rem;
}

.testimonials-empty p {
    margin: 0;
    color: #60797c;
}

.testimonials-archive-action {
    margin-top: 22px;
    text-align: center;
}

.story-rating {
    display: inline-flex;
    gap: 3px;
    margin-bottom: 8px;
    color: #d19a1f;
    font-size: 0.86rem;
}

.story-grid-quote,
.story-hero-quote {
    margin: 0 0 10px;
    color: #4e686c;
    font-size: 0.95rem;
    line-height: 1.55;
}

.story-reviewer {
    margin: 0 0 10px;
    color: #163535;
    font-weight: 700;
    font-size: 0.9rem;
}

/* ==========================================================================
   Stories Page
   ========================================================================== */

.stories-hub-intro {
    padding-top: 20px;
    padding-bottom: 8px;
}

.stories-hub-shell {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border-radius: 18px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(22, 53, 53, 0.06);
}

.stories-hub-copy {
    max-width: 780px;
}

.stories-hub-copy h2 {
    margin: 0 0 8px;
    color: #173b3e;
    font-size: clamp(1.35rem, 2.2vw, 1.9rem);
}

.stories-hub-copy p {
    margin: 0;
    color: #5f797d;
    font-size: 0.95rem;
    line-height: 1.58;
}

.stories-hub-stats {
    display: grid;
    gap: 8px;
    min-width: 260px;
}

.stories-hub-stats span {
    padding: 8px 10px;
    border-radius: 12px;
    border: 1px solid rgba(29, 124, 120, 0.16);
    background: rgba(29, 124, 120, 0.06);
    color: #385d61;
    font-size: 0.84rem;
}

.stories-hub-stats strong {
    color: #0f3b3f;
}

.stories-filter-bar {
    padding-top: 8px;
    padding-bottom: 12px;
}

.stories-featured {
    padding-top: 8px;
    padding-bottom: 14px;
}

.stories-archive-section {
    padding-top: 8px;
    padding-bottom: 14px;
}

.stories-year-stack {
    display: grid;
    gap: 10px;
}

.stories-year-group {
    border: 1px solid rgba(29, 124, 120, 0.14);
    border-radius: 14px;
    background: #ffffff;
    overflow: hidden;
}

.stories-year-group summary {
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 14px;
    cursor: pointer;
    color: #1b4144;
    font-weight: 700;
    border-bottom: 1px solid rgba(29, 124, 120, 0.1);
}

.stories-year-group summary::-webkit-details-marker {
    display: none;
}

.stories-year-group summary small {
    color: #5f7a7d;
    font-weight: 600;
    font-size: 0.82rem;
}

.stories-year-group > .row {
    padding: 0 12px 12px;
}

@media (max-width: 1199.98px) {
    .hero-media-main img {
        height: 470px;
    }
}

@media (max-width: 991.98px) {
    .hero-actions {
        margin-bottom: 12px;
    }

    .hero-media-chip,
    .hero-media-contact {
        position: static;
        width: 100%;
        margin-top: 14px;
        box-shadow: none;
    }

    .hero-media-main img {
        height: 420px;
    }

    .hero-flow-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .stories-hub-shell {
        flex-direction: column;
    }

    .stories-hub-stats {
        min-width: 0;
        width: 100%;
    }
}

@media (max-width: 767.98px) {
    .hero {
        padding-top: 112px;
    }

    .hero .hero-text h1 {
        max-width: 100%;
    }

    .hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .hero-action-link {
        justify-content: center;
    }

    .hero-media-main img {
        height: 320px;
    }

    .hero-media-support {
        grid-template-columns: 1fr;
    }

    .hero-media-support-image img {
        min-height: 170px;
    }

    .hero-flow {
        padding: 20px;
    }

    .featured-donor-case {
        padding-top: 18px;
        padding-bottom: 20px;
    }

    .featured-donor-case-shell {
        padding: 14px;
        border-radius: 16px;
    }

    .featured-donor-media img {
        min-height: 220px;
    }

    .donation-item-media {
        height: 210px;
    }

    .donation-showcase-note {
        text-align: left;
    }

    .home-guarantees-footnote {
        align-items: flex-start;
    }

    .testimonials-archive {
        padding: 20px;
    }

    .testimonial-highlight-media {
        height: 220px;
    }

    .stories-hub-intro {
        padding-top: 14px;
        padding-bottom: 4px;
    }

    .stories-hub-shell {
        padding: 14px;
        border-radius: 14px;
    }

    .stories-hub-copy p,
    .stories-hub-stats span {
        font-size: 0.84rem;
    }

    .stories-filter-bar,
    .stories-featured,
    .stories-archive-section {
        padding-top: 6px;
        padding-bottom: 10px;
    }

    .stories-year-group summary {
        padding: 10px 12px;
        font-size: 0.9rem;
    }
}

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

.donavita-footer {
    margin-top: 56px;
    padding: 68px 0 0;
    background:
        radial-gradient(circle at top right, rgba(29, 124, 120, 0.08), transparent 34%),
        linear-gradient(180deg, #edf7f5 0%, #e5f1ef 100%);
    border-top: 1px solid rgba(29, 124, 120, 0.16);
}

.donavita-footer .footer-block {
    height: 100%;
}

.donavita-footer .footer-content .logo span {
    font-size: clamp(1.7rem, 2.8vw, 2.05rem);
    letter-spacing: -0.03em;
}

.donavita-footer .footer-lead,
.donavita-footer .footer-note {
    color: #4c666a;
    font-size: 0.98rem;
    line-height: 1.62;
}

.donavita-footer h4 {
    margin-bottom: 18px;
    color: #1b3d40;
    font-size: 1.22rem;
}

.donavita-footer h4::after {
    background-color: var(--accent-color);
    width: 42px;
}

.donavita-footer .footer-links ul li {
    padding: 7px 0;
}

.donavita-footer .footer-links ul li:hover {
    transform: translateX(3px);
}

.donavita-footer .footer-links ul a {
    color: #2e5357;
    font-size: 0.99rem;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.donavita-footer .footer-links ul a:hover {
    color: var(--accent-color);
}

.donavita-footer .footer-links ul a i {
    color: color-mix(in srgb, var(--accent-color), black 8%);
    margin-right: 9px;
}

.donavita-footer .footer-contact .contact-item {
    margin-bottom: 16px;
}

.donavita-footer .footer-contact .contact-item .contact-icon {
    width: 48px;
    height: 48px;
    margin-right: 12px;
    background: rgba(29, 124, 120, 0.1);
    border: 1px solid rgba(29, 124, 120, 0.18);
}

.donavita-footer .footer-contact .contact-item .contact-icon i {
    font-size: 1.07rem;
    color: var(--accent-color);
}

.donavita-footer .footer-contact .contact-item .contact-info p {
    color: #2f5357;
    font-size: 0.98rem;
    line-height: 1.45;
}

.donavita-footer .footer-contact .contact-item .contact-info a {
    color: #1f3f43;
    font-weight: 700;
    text-decoration: none;
}

.donavita-footer .footer-contact .contact-item .contact-info a:hover {
    color: var(--accent-color);
}

.donavita-footer .social-links {
    margin-top: 18px;
}

.donavita-footer .social-links a {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(29, 124, 120, 0.18);
    background: #ffffff;
    color: var(--accent-color);
    box-shadow: none;
}

.donavita-footer .social-links a:hover {
    background: var(--accent-color);
    color: var(--contrast-color);
    transform: translateY(-2px);
}

.donavita-footer .footer-bottom {
    margin-top: 42px;
    padding: 20px 0;
    background: rgba(29, 124, 120, 0.12);
    border-top: 1px solid rgba(29, 124, 120, 0.12);
}

.donavita-footer .footer-bottom .copyright p {
    color: #36595d;
    font-size: 0.88rem;
    font-weight: 600;
}

.donavita-footer .footer-bottom .footer-bottom-links {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 6px;
    text-align: right;
}

.donavita-footer .footer-bottom .footer-bottom-links a {
    margin-left: 0;
    color: #1f3f43;
    font-size: 0.88rem;
    font-weight: 700;
}

.donavita-footer .footer-bottom .footer-bottom-links a:hover {
    color: var(--accent-color);
}

.donavita-footer .footer-bottom .footer-bottom-links .browser-translate-link {
    color: #2c6361;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.donavita-footer .footer-bottom .footer-bottom-links .browser-translate-link:hover {
    color: color-mix(in srgb, var(--accent-color), black 10%);
}

.donavita-footer .credits {
    color: #527377;
    font-size: 0.84rem;
}

.donavita-footer .credits a {
    color: #365f63;
    font-weight: 600;
}

.donavita-footer .credits a:hover {
    color: var(--accent-color);
}

@media (max-width: 991.98px) {
    .donavita-footer {
        padding-top: 54px;
    }

    .donavita-footer .footer-content .logo span {
        font-size: clamp(1.55rem, 7vw, 1.9rem);
    }

    .donavita-footer .footer-bottom .copyright p,
    .donavita-footer .credits {
        text-align: center;
    }

    .donavita-footer .footer-bottom .footer-bottom-links {
        justify-content: center;
        text-align: center;
        gap: 12px;
        margin-bottom: 10px;
    }
}

@media (max-width: 767.98px) {
    .donavita-footer h4 {
        font-size: 1.1rem;
        margin-bottom: 14px;
    }

    .donavita-footer .footer-lead,
    .donavita-footer .footer-note {
        font-size: 0.94rem;
    }

    .donavita-footer .footer-links ul a,
    .donavita-footer .footer-contact .contact-item .contact-info p {
        font-size: 0.94rem;
    }
}

/* ==========================================================================
   About Page (Clean)
   ========================================================================== */

.donavita-about-clean .donavita-about-copy h2 {
    margin-bottom: 14px;
    color: var(--heading-color);
    font-size: clamp(1.65rem, 2.3vw, 2.15rem);
    letter-spacing: -0.02em;
}

.donavita-about-clean .donavita-about-lead {
    margin-bottom: 14px;
    color: #2f4f53;
    font-size: 1.04rem;
}

.donavita-about-clean .donavita-about-copy p {
    color: #4c666a;
    line-height: 1.68;
}

.donavita-about-commitments {
    list-style: none;
    margin: 20px 0 0;
    padding: 0;
    display: grid;
    gap: 10px;
}

.donavita-about-commitments li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: #244346;
    font-weight: 600;
}

.donavita-about-commitments i {
    margin-top: 2px;
    color: var(--accent-color);
}

.donavita-about-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.donavita-about-visual {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    border: 1px solid rgba(29, 124, 120, 0.18);
    box-shadow: 0 20px 45px rgba(17, 53, 53, 0.12);
}

.donavita-about-visual img {
    width: 100%;
    height: 100%;
    min-height: 330px;
    object-fit: cover;
}

.donavita-about-visual-note {
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 16px;
    background: rgba(255, 255, 255, 0.93);
    border: 1px solid rgba(29, 124, 120, 0.18);
    border-radius: 14px;
    padding: 10px 12px;
    display: grid;
    gap: 3px;
}

.donavita-about-visual-note strong {
    color: #173b3e;
    font-size: 0.95rem;
}

.donavita-about-visual-note span {
    color: #4b666a;
    font-size: 0.84rem;
    line-height: 1.4;
}

.donavita-about-stats .donavita-about-stat {
    height: 100%;
    border-radius: 16px;
    border: 1px solid rgba(29, 124, 120, 0.16);
    background: #ffffff;
    padding: 18px;
    text-align: center;
}

.donavita-about-stats .donavita-about-stat strong {
    display: block;
    color: var(--accent-color);
    font-size: 1.5rem;
    line-height: 1;
}

.donavita-about-stats .donavita-about-stat span {
    display: block;
    margin-top: 7px;
    color: #4b676b;
    font-size: 0.92rem;
    font-weight: 600;
}

.donavita-about-method h3 {
    margin-bottom: 8px;
    color: var(--heading-color);
    font-size: clamp(1.45rem, 2vw, 1.85rem);
    letter-spacing: -0.01em;
}

.donavita-about-method > .container > .row > .col-lg-7 > p {
    margin-bottom: 16px;
    color: #4d676b;
}

.donavita-about-steps {
    counter-reset: aboutStep;
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 12px;
}

.donavita-about-steps li {
    position: relative;
    padding: 16px 16px 16px 54px;
    border-radius: 14px;
    border: 1px solid rgba(29, 124, 120, 0.16);
    background: #ffffff;
}

.donavita-about-steps li::before {
    counter-increment: aboutStep;
    content: counter(aboutStep);
    position: absolute;
    left: 16px;
    top: 16px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 800;
    color: #ffffff;
    background: var(--accent-color);
}

.donavita-about-steps h4 {
    margin: 0 0 4px;
    color: #173b3e;
    font-size: 1rem;
}

.donavita-about-steps p {
    margin: 0;
    color: #526c70;
    font-size: 0.92rem;
    line-height: 1.52;
}

.donavita-about-panel {
    border-radius: 16px;
    border: 1px solid rgba(29, 124, 120, 0.18);
    background: rgba(255, 255, 255, 0.86);
    padding: 20px;
}

.donavita-about-panel h4 {
    margin: 0 0 8px;
    color: #173c3f;
    font-size: 1.08rem;
}

.donavita-about-panel p {
    margin: 0 0 10px;
    color: #4d686b;
    font-size: 0.93rem;
    line-height: 1.58;
}

.donavita-about-panel ul {
    margin: 0;
    padding-left: 1rem;
    color: #2f5357;
}

.donavita-about-panel li {
    margin-bottom: 6px;
    font-size: 0.9rem;
    line-height: 1.45;
}

.about-page .donavita-about-clean {
    padding-top: 30px;
    padding-bottom: 18px;
}

.about-page .donavita-about-method {
    padding-top: 6px !important;
    padding-bottom: 20px;
}

.about-page #page-cta.call-to-action {
    padding-top: 24px;
    padding-bottom: 34px;
}

.about-page .donavita-about-clean .donavita-about-copy h2 {
    margin-bottom: 10px;
}

.about-page .donavita-about-clean .donavita-about-lead {
    margin-bottom: 10px;
}

.about-page .donavita-about-commitments {
    margin-top: 16px;
}

.about-page .donavita-about-actions {
    margin-top: 16px;
}

@media (max-width: 991.98px) {
    .donavita-about-visual img {
        min-height: 280px;
    }

    .donavita-about-panel {
        margin-top: 4px;
    }
}

@media (max-width: 767.98px) {
    :where(body:not(.index-page)) .page-title {
        padding-top: calc(var(--header-offset, 90px) + 6px);
    }

    :where(body:not(.index-page)) .page-title nav {
        padding: 10px 0;
    }

    :where(body:not(.index-page)) .page-title .heading {
        padding: 24px 0 18px;
    }

    :where(body:not(.index-page)) .page-title .heading h1 {
        margin-bottom: 8px;
        font-size: 1.7rem;
    }

    :where(body:not(.index-page)) .page-title + .section,
    :where(body:not(.index-page)) .page-title + section.section {
        padding-top: 16px;
    }

    :where(body:not(.index-page)) main .section,
    :where(body:not(.index-page)) main section.section {
        padding-top: 24px;
        padding-bottom: 20px;
    }

    :where(body:not(.index-page)) .section-title {
        padding-bottom: 22px;
    }

    .about-page .donavita-about-clean {
        padding-top: 24px;
        padding-bottom: 14px;
    }

    .about-page .donavita-about-method {
        padding-top: 4px !important;
        padding-bottom: 16px;
    }

    .about-page #page-cta.call-to-action {
        padding-top: 18px;
        padding-bottom: 24px;
    }

    .donavita-about-clean .donavita-about-copy h2 {
        font-size: 1.45rem;
    }

    .donavita-about-clean .donavita-about-lead,
    .donavita-about-clean .donavita-about-copy p {
        font-size: 0.94rem;
    }

    .donavita-about-steps li {
        padding: 14px 12px 14px 48px;
    }

    .donavita-about-steps p,
    .donavita-about-panel p,
    .donavita-about-panel li {
        font-size: 0.88rem;
    }
}

/* ==========================================================================
   Process Page (Simple)
   ========================================================================== */

.process-page .donavita-process-simple {
    padding-top: 30px;
    padding-bottom: 22px;
}

.donavita-process-copy h2 {
    margin: 0 0 12px;
    color: #163535;
    font-size: clamp(1.55rem, 2.6vw, 2.05rem);
    letter-spacing: -0.01em;
}

.donavita-process-lead {
    margin: 0;
    color: #4c676b;
    font-size: 1rem;
    line-height: 1.62;
}

.donavita-process-flow {
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.donavita-process-flow li {
    padding: 14px 0 14px 20px;
    border-bottom: 1px solid rgba(29, 124, 120, 0.12);
    position: relative;
}

.donavita-process-flow li::before {
    content: '';
    position: absolute;
    top: 22px;
    left: 0;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent-color);
}

.donavita-process-flow h3 {
    margin: 0 0 4px;
    color: #193c3f;
    font-size: 1.03rem;
}

.donavita-process-flow p {
    margin: 0;
    color: #546e72;
    font-size: 0.94rem;
    line-height: 1.55;
}

.donavita-process-side {
    padding: 18px 18px 14px;
    border-radius: 16px;
    border: 1px solid rgba(29, 124, 120, 0.16);
    background: #ffffff;
}

.donavita-process-side h3 {
    margin: 0 0 10px;
    color: #173b3e;
    font-size: 1.1rem;
}

.donavita-process-types {
    margin: 0;
    padding: 0;
    list-style: none;
}

.donavita-process-types li {
    padding: 10px 0;
    border-top: 1px solid rgba(29, 124, 120, 0.12);
}

.donavita-process-types li:first-child {
    border-top: 0;
    padding-top: 0;
}

.donavita-process-types strong {
    display: block;
    margin: 0 0 3px;
    color: #1b4044;
    font-size: 0.95rem;
}

.donavita-process-types span {
    display: block;
    color: #5a7478;
    font-size: 0.9rem;
    line-height: 1.5;
}

.donavita-process-assurances {
    margin-top: 18px;
    padding: 16px 18px;
    border-radius: 14px;
    background: rgba(29, 124, 120, 0.08);
    border: 1px solid rgba(29, 124, 120, 0.14);
}

.donavita-process-assurances h3 {
    margin: 0 0 8px;
    color: #173c3f;
    font-size: 1.04rem;
}

.donavita-process-assurances ul {
    margin: 0;
    padding-left: 1rem;
    color: #2f5559;
}

.donavita-process-assurances li {
    margin-bottom: 4px;
    font-size: 0.91rem;
}

.donavita-process-actions {
    margin-top: 16px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.process-page #page-cta.call-to-action {
    padding-top: 20px;
    padding-bottom: 32px;
}

/* ==========================================================================
   Need Page
   ========================================================================== */

.need-page .need-page-main {
    padding-top: 28px;
    padding-bottom: 14px;
}

.need-hero-copy h2 {
    margin: 0 0 10px;
    color: #163535;
    font-size: clamp(1.55rem, 2.7vw, 2.1rem);
    letter-spacing: -0.01em;
}

.need-hero-lead {
    margin: 0;
    color: #4d676b;
    font-size: 1rem;
    line-height: 1.62;
}

.need-hero-points {
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}

.need-hero-points li {
    position: relative;
    padding-left: 22px;
    margin-bottom: 8px;
    color: #365a5e;
    font-size: 0.93rem;
}

.need-hero-points li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent-color);
}

.need-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.need-hero-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.need-hero-media {
    margin: 0;
}

.need-hero-media img {
    width: 100%;
    border-radius: 18px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    box-shadow: 0 18px 42px rgba(22, 53, 53, 0.1);
}

.need-request-types {
    padding-top: 8px;
    padding-bottom: 12px;
}

.need-section-head h3 {
    margin: 0 0 6px;
    color: #173b3e;
    font-size: clamp(1.3rem, 2.2vw, 1.65rem);
}

.need-section-head p {
    margin: 0;
    color: #5a7276;
    font-size: 0.95rem;
}

.need-types-list {
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 24px;
}

.need-types-list li {
    padding: 8px 0;
    border-bottom: 1px solid rgba(29, 124, 120, 0.14);
    color: #294d51;
    font-size: 0.92rem;
}

.need-process {
    padding-top: 8px;
    padding-bottom: 12px;
}

.need-process-list {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}

.need-process-list li {
    padding: 12px 0 12px 18px;
    border-bottom: 1px solid rgba(29, 124, 120, 0.12);
    position: relative;
}

.need-process-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 19px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent-color);
}

.need-process-list h4 {
    margin: 0 0 4px;
    color: #1a3f43;
    font-size: 1rem;
}

.need-process-list p {
    margin: 0;
    color: #587074;
    font-size: 0.92rem;
    line-height: 1.52;
}

.need-checklist {
    padding: 16px 16px 12px;
    border-radius: 16px;
    border: 1px solid rgba(29, 124, 120, 0.16);
    background: rgba(255, 255, 255, 0.92);
}

.need-checklist h4 {
    margin: 0 0 10px;
    color: #1a3f43;
    font-size: 1rem;
}

.need-checklist ul {
    margin: 0;
    padding-left: 18px;
    color: #3b5d61;
    font-size: 0.9rem;
}

.need-checklist li + li {
    margin-top: 6px;
}

.need-form-section {
    padding-top: 8px;
    padding-bottom: 12px;
}

.need-form-followup {
    margin-top: 12px;
}

.need-form-intro h3 {
    margin: 10px 0 8px;
    color: #173c3f;
    font-size: 1.25rem;
}

.need-form-intro p {
    margin: 0;
    color: #5f767a;
    font-size: 0.93rem;
    line-height: 1.58;
}

.need-assurances-wrap {
    padding: 16px 18px;
    border-radius: 14px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: rgba(29, 124, 120, 0.08);
}

.need-assurances-wrap h3 {
    margin: 0 0 8px;
    color: #173c3f;
    font-size: 1.02rem;
}

.need-assurances-wrap ul {
    margin: 0;
    padding-left: 18px;
    color: #31565a;
}

.need-assurances-wrap li {
    margin-bottom: 4px;
    font-size: 0.9rem;
}

.need-support-strip {
    margin-top: 10px;
    padding: 14px 16px;
    border-radius: 14px;
    border: 1px solid rgba(29, 124, 120, 0.16);
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.need-support-strip h4 {
    margin: 0 0 4px;
    color: #193d40;
    font-size: 0.98rem;
}

.need-support-strip p {
    margin: 0;
    color: #5a7377;
    font-size: 0.88rem;
    line-height: 1.5;
}

.need-support-contact {
    display: grid;
    gap: 5px;
    text-align: right;
}

.need-support-contact a {
    color: #175f5c;
    font-weight: 700;
    text-decoration: none;
    font-size: 0.9rem;
}

.need-support-contact a:hover {
    color: #134e4a;
}

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

.donate-page .donate-page-main {
    padding-top: 30px;
    padding-bottom: 16px;
}

.donate-page .donate-section-compact {
    padding-top: 10px;
    padding-bottom: 16px;
}

.donate-hero-copy h2 {
    margin: 0 0 10px;
    color: #163535;
    font-size: clamp(1.6rem, 2.7vw, 2.15rem);
    letter-spacing: -0.01em;
}

.donate-hero-lead {
    margin: 0;
    color: #4d676b;
    font-size: 0.98rem;
    line-height: 1.6;
}

.donate-inline-points {
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
}

.donate-inline-points li {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

.donate-inline-points li i {
    color: var(--accent-color);
    margin-top: 2px;
}

.donate-inline-points li span {
    color: #3f5f63;
    font-size: 0.92rem;
    line-height: 1.5;
}

.donate-hero-visual {
    margin: 0;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(29, 124, 120, 0.14);
    box-shadow: 0 16px 36px rgba(22, 53, 53, 0.12);
}

.donate-hero-visual img {
    width: 100%;
    display: block;
    aspect-ratio: 5 / 4;
    object-fit: cover;
}

.donate-list-panel,
.donate-flow-panel,
.donate-plain-panel,
.donate-faq-panel,
.donate-final-panel,
.donate-form-intro {
    padding: 18px 20px;
    border-radius: 16px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: #ffffff;
}

.donate-list-panel h3,
.donate-flow-panel h3,
.donate-plain-panel h3,
.donate-faq-panel h3,
.donate-final-panel h3,
.donate-form-intro h3 {
    margin: 0 0 10px;
    color: #173d40;
    font-size: 1.1rem;
}

.donate-list-intro,
.donate-form-intro p,
.donate-final-panel p {
    margin: 0;
    color: #597377;
    font-size: 0.92rem;
    line-height: 1.55;
}

.donate-type-tags {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.donate-type-tags li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 11px;
    border-radius: 999px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: rgba(29, 124, 120, 0.05);
}

.donate-type-tags i {
    color: var(--accent-color);
    font-size: 14px;
}

.donate-type-tags span {
    color: #2f5458;
    font-size: 0.86rem;
    font-weight: 700;
}

.donate-universe-list {
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.donate-universe-list li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 10px 0;
    border-top: 1px solid rgba(29, 124, 120, 0.1);
}

.donate-universe-list li:nth-child(-n + 2) {
    border-top: 0;
    padding-top: 0;
}

.donate-universe-list i {
    color: var(--accent-color);
    font-size: 18px;
    margin-top: 2px;
}

.donate-universe-list h4 {
    margin: 0 0 3px;
    color: #1f4347;
    font-size: 0.95rem;
}

.donate-universe-list p {
    margin: 0;
    color: #5e767a;
    font-size: 0.88rem;
    line-height: 1.46;
}

.donate-simple-list {
    margin: 0;
    padding-left: 1rem;
}

.donate-simple-list li {
    margin-bottom: 6px;
    color: #3f6165;
    font-size: 0.9rem;
    line-height: 1.5;
}

.donate-flow-list {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
}

.donate-flow-list li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 8px 0;
    border-top: 1px solid rgba(29, 124, 120, 0.1);
}

.donate-flow-list li:first-child {
    border-top: 0;
    padding-top: 0;
}

.donate-flow-step {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(29, 124, 120, 0.12);
    color: var(--accent-color);
    font-size: 0.72rem;
    font-weight: 700;
}

.donate-flow-list h4 {
    margin: 0 0 2px;
    color: #1d4246;
    font-size: 0.93rem;
}

.donate-flow-list p {
    margin: 0;
    color: #60787c;
    font-size: 0.87rem;
    line-height: 1.5;
}

.donate-form-intro ul {
    margin: 12px 0 0;
    padding-left: 1rem;
}

.donate-form-intro li {
    margin-bottom: 5px;
    color: #426368;
    font-size: 0.9rem;
}

.donate-page .contact-form-wrapper.donavita-form-card {
    box-shadow: none;
}

.donate-essential-note {
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: rgba(29, 124, 120, 0.05);
}

.donate-essential-note ul {
    margin: 0;
    padding-left: 1rem;
}

.donate-essential-note li {
    margin-bottom: 4px;
    color: #436469;
    font-size: 0.86rem;
}

.donate-essential-note-inline {
    margin-top: 10px;
}

.donate-faq-item + .donate-faq-item {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(29, 124, 120, 0.1);
}

.donate-faq-item h4 {
    margin: 0 0 3px;
    color: #1e4448;
    font-size: 0.93rem;
}

.donate-faq-item p {
    margin: 0;
    color: #5f777b;
    font-size: 0.88rem;
    line-height: 1.5;
}

.donate-final-actions {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.donate-final-actions .btn {
    padding: 0.65rem 1.05rem;
    font-size: 0.9rem;
}

.donate-final-phone {
    margin-top: 12px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #2d4e53;
    font-weight: 700;
    font-size: 0.95rem;
}

.donate-final-phone i {
    color: var(--accent-color);
}

/* ==========================================================================
   Goods Page (Simple Catalog)
   ========================================================================== */

.goods-catalog {
    padding-top: 30px;
    padding-bottom: 20px;
}

.goods-catalog-intro {
    margin-bottom: 18px;
    padding: 18px 20px;
    border-radius: 16px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: #ffffff;
}

.goods-catalog-intro h2 {
    margin: 0 0 8px;
    color: #163535;
    font-size: clamp(1.45rem, 2.2vw, 1.9rem);
}

.goods-catalog-intro p {
    margin: 0;
    color: #506a6e;
    font-size: 0.95rem;
    line-height: 1.55;
}

.goods-universe-list {
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.goods-universe-list li {
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: rgba(29, 124, 120, 0.05);
}

.goods-universe-list strong {
    display: block;
    margin: 0 0 2px;
    color: #184042;
    font-size: 0.93rem;
}

.goods-universe-list span {
    display: block;
    color: #4f6b6f;
    font-size: 0.86rem;
    line-height: 1.45;
}

.goods-toolbar {
    position: sticky;
    top: 96px;
    z-index: 8;
    margin-bottom: 16px;
    padding: 14px;
    border-radius: 14px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(4px);
}

.goods-toolbar-grid {
    display: grid;
    grid-template-columns: 2fr repeat(4, minmax(0, 1fr)) auto;
    gap: 10px;
    align-items: end;
}

.goods-field label {
    display: block;
    margin: 0 0 5px;
    color: #2f5659;
    font-size: 0.82rem;
    font-weight: 700;
}

.goods-field .form-control,
.goods-field .form-select {
    min-height: 42px;
    border-radius: 10px;
    font-size: 0.9rem;
}

.goods-field-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.goods-field-actions .btn {
    min-height: 42px;
    white-space: nowrap;
}

.goods-results-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.goods-results-head h3 {
    margin: 0;
    color: #173b3e;
    font-size: 1.18rem;
}

.goods-results-head span {
    color: #5a7377;
    font-size: 0.9rem;
    font-weight: 700;
}

.goods-list {
    display: grid;
    gap: 12px;
}

.goods-row {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 14px;
    padding: 12px;
    border-radius: 16px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: #ffffff;
}

.goods-row-media {
    margin: 0;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(29, 124, 120, 0.14);
}

.goods-row-media img {
    width: 100%;
    height: 100%;
    min-height: 170px;
    object-fit: cover;
}

.goods-row-top {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}

.goods-status,
.goods-featured {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
}

.goods-status {
    background: rgba(29, 124, 120, 0.12);
    color: #185a57;
}

.goods-status-in_process {
    background: rgba(200, 138, 34, 0.16);
    color: #8f6111;
}

.goods-status-reserved {
    background: rgba(80, 68, 153, 0.16);
    color: #4f3ea0;
}

.goods-status-delivered {
    background: rgba(93, 116, 120, 0.18);
    color: #41575a;
}

.goods-featured {
    background: rgba(9, 88, 142, 0.12);
    color: #0f4e75;
}

.goods-row-content h4 {
    margin: 0 0 8px;
    color: #183b3e;
    font-size: 1.1rem;
}

.goods-row-meta {
    margin: 0 0 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    color: #5a7579;
    font-size: 0.84rem;
}

.goods-row-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.goods-row-excerpt {
    margin: 0 0 6px;
    color: #36585d;
    font-weight: 600;
    font-size: 0.93rem;
}

.goods-row-description {
    margin: 0;
    color: #5b7579;
    font-size: 0.88rem;
    line-height: 1.5;
}

.goods-row-actions {
    margin-top: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.goods-row-actions .btn {
    min-height: 40px;
    padding-inline: 14px;
}

.goods-pagination {
    margin-top: 14px;
}

.goods-pagination nav,
.blog-page .mt-4 nav,
.properties-page .mt-4 nav {
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: #ffffff;
}

.pagination .page-link {
    color: #1b5656;
    border-color: rgba(29, 124, 120, 0.22);
    border-radius: 9px;
    min-width: 36px;
    text-align: center;
}

.pagination .page-link:hover {
    color: #ffffff;
    background: var(--accent-color);
    border-color: var(--accent-color);
}

.pagination .page-item.active .page-link {
    background: var(--accent-color);
    border-color: var(--accent-color);
    color: #ffffff;
}

.pagination .page-item.disabled .page-link {
    color: #85a0a2;
    background: #f7fbfb;
    border-color: rgba(29, 124, 120, 0.16);
}

.goods-assignment-flow {
    margin-top: 18px;
    padding: 16px 18px;
    border-radius: 14px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: rgba(255, 255, 255, 0.9);
}

.goods-assignment-flow h3 {
    margin: 0 0 10px;
    color: #173c3f;
    font-size: 1.06rem;
}

.goods-assignment-flow ol {
    margin: 0;
    padding-left: 1rem;
    color: #2f5559;
}

.goods-assignment-flow li + li {
    margin-top: 8px;
}

.goods-assignment-flow h4 {
    margin: 0 0 2px;
    font-size: 0.95rem;
    color: #1a4043;
}

.goods-assignment-flow p {
    margin: 0;
    font-size: 0.88rem;
    color: #597377;
}

.goods-if-missing {
    margin-top: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: rgba(29, 124, 120, 0.07);
}

.goods-if-missing h3 {
    margin: 0 0 6px;
    color: #173d40;
    font-size: 1rem;
}

.goods-if-missing p {
    margin: 0 0 10px;
    color: #4f6b6f;
    font-size: 0.9rem;
}

.goods-mini-faq {
    padding-top: 0;
    padding-bottom: 18px;
}

.goods-mini-faq h3 {
    margin: 0 0 10px;
    color: #173c3f;
    font-size: 1.15rem;
}

.goods-mini-faq-list {
    display: grid;
    gap: 8px;
}

.goods-mini-faq-list details {
    border-radius: 12px;
    border: 1px solid rgba(29, 124, 120, 0.14);
    background: #ffffff;
    padding: 10px 12px;
}

.goods-mini-faq-list summary {
    cursor: pointer;
    color: #20464a;
    font-weight: 700;
    font-size: 0.92rem;
}

.goods-mini-faq-list details p {
    margin: 8px 0 0;
    color: #5a7478;
    font-size: 0.88rem;
}

@media (max-width: 1199.98px) {
    .goods-toolbar {
        position: static;
        backdrop-filter: none;
    }

    .goods-toolbar-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .goods-field-search,
    .goods-field-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 991.98px) {
    .need-types-list {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .need-support-strip {
        flex-direction: column;
        align-items: flex-start;
    }

    .need-support-contact {
        text-align: left;
    }

    .donate-type-tags {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .donate-universe-list {
        grid-template-columns: 1fr;
    }

    .donate-universe-list li:nth-child(-n + 2) {
        border-top: 1px solid rgba(29, 124, 120, 0.1);
        padding-top: 10px;
    }

    .donate-universe-list li:first-child {
        border-top: 0;
        padding-top: 0;
    }

    .goods-row {
        grid-template-columns: 1fr;
    }

    .goods-row-media img {
        min-height: 210px;
    }
}

@media (max-width: 767.98px) {
    .need-page .need-page-main {
        padding-top: 22px;
        padding-bottom: 12px;
    }

    .need-request-types,
    .need-process,
    .need-form-section {
        padding-top: 6px;
        padding-bottom: 10px;
    }

    .need-hero-copy h2 {
        font-size: 1.4rem;
    }

    .need-hero-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .need-hero-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .need-hero-points li,
    .need-types-list li,
    .need-process-list p,
    .need-checklist ul,
    .need-form-intro p,
    .need-support-strip p,
    .need-support-contact a {
        font-size: 0.85rem;
    }

    .need-checklist,
    .need-assurances-wrap,
    .need-support-strip {
        padding: 12px;
        border-radius: 12px;
    }

    .need-process-list li {
        padding: 10px 0 10px 16px;
    }

    .need-process-list h4 {
        font-size: 0.95rem;
    }

    .need-form-intro h3 {
        font-size: 1.08rem;
    }

    .donate-type-tags {
        grid-template-columns: 1fr;
    }

    .donate-type-tags li {
        border-radius: 12px;
    }

    .donate-hero-copy h2 {
        font-size: 1.42rem;
    }

    .donate-hero-lead,
    .donate-list-intro,
    .donate-simple-list li,
    .donate-flow-list p,
    .donate-form-intro p,
    .donate-form-intro li,
    .donate-faq-item p,
    .donate-final-panel p {
        font-size: 0.86rem;
    }

    .donate-list-panel,
    .donate-flow-panel,
    .donate-plain-panel,
    .donate-faq-panel,
    .donate-final-panel,
    .donate-form-intro {
        padding: 14px;
        border-radius: 14px;
    }

    .donate-final-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .process-page .donavita-process-simple {
        padding-top: 24px;
        padding-bottom: 16px;
    }

    .donavita-process-flow li {
        padding: 12px 0 12px 16px;
    }

    .donavita-process-flow h3 {
        font-size: 0.97rem;
    }

    .donavita-process-flow p,
    .donavita-process-types span,
    .donavita-process-assurances li {
        font-size: 0.87rem;
    }

    .donavita-process-side {
        padding: 14px;
    }

    .goods-catalog {
        padding-top: 22px;
        padding-bottom: 14px;
    }

    .goods-catalog-intro,
    .goods-toolbar,
    .goods-assignment-flow,
    .goods-if-missing {
        padding: 12px;
    }

    .goods-universe-list {
        grid-template-columns: 1fr;
    }

    .goods-toolbar-grid {
        grid-template-columns: 1fr;
    }

    .goods-field-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .goods-field-actions .btn {
        width: 100%;
    }

    .goods-results-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .goods-row-content h4 {
        font-size: 1.02rem;
    }

    .goods-row-excerpt,
    .goods-row-description,
    .goods-row-meta,
    .goods-assignment-flow p,
    .goods-mini-faq-list details p {
        font-size: 0.85rem;
    }

    .goods-row-actions .btn {
        width: 100%;
    }

    .goods-pagination nav,
    .blog-page .mt-4 nav,
    .properties-page .mt-4 nav {
        padding: 10px;
    }

    .goods-pagination nav {
        align-items: flex-start !important;
    }

    .goods-pagination nav > p {
        width: 100%;
    }
}

/* ==========================================================================
   Cookie Banner + WhatsApp Widget
   ========================================================================== */

#cookie-banner.cookie-banner {
    position: fixed;
    left: 50%;
    bottom: 14px;
    transform: translateX(-50%);
    width: min(1100px, calc(100% - 20px));
    z-index: 10010;
}

.cookie-banner__inner {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 14px 18px;
    border-radius: 14px;
    border: 1px solid rgba(29, 124, 120, 0.22);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 12px 32px rgba(22, 53, 53, 0.14);
    backdrop-filter: blur(8px);
}

.cookie-banner__content {
    flex: 1;
    min-width: 0;
}

.cookie-banner__text {
    margin: 0;
    color: #264649;
    font-size: 0.91rem;
    line-height: 1.4;
}

.cookie-banner__text a {
    color: var(--accent-color);
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.cookie-banner__text a:hover {
    color: color-mix(in srgb, var(--accent-color), black 14%);
    text-decoration: underline;
}

.cookie-banner__actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.cookie-banner__actions .btn {
    min-height: 36px;
    min-width: 108px;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 700;
    padding-inline: 0.95rem;
    text-wrap: nowrap;
}

.cookie-banner__actions .btn-outline-primary {
    border-color: color-mix(in srgb, var(--accent-color), transparent 45%);
    color: var(--accent-color);
    background: #ffffff;
}

.cookie-banner__actions .btn-outline-primary:hover,
.cookie-banner__actions .btn-outline-primary:focus {
    border-color: var(--accent-color);
    color: var(--accent-color);
    background: rgba(29, 124, 120, 0.08);
}

.whatsapp-widget {
    position: fixed;
    left: 18px;
    bottom: 22px;
    z-index: 10005;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.whatsapp-widget__bubble {
    position: relative;
    max-width: 220px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(37, 211, 102, 0.28);
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(10, 44, 27, 0.16);
    color: #204239;
}

.whatsapp-widget__bubble p {
    margin: 0;
    font-size: 0.86rem;
    font-weight: 800;
    line-height: 1.2;
}

.whatsapp-widget__bubble small {
    display: block;
    margin-top: 2px;
    font-size: 0.74rem;
    color: #4f7468;
    line-height: 1.3;
}

.whatsapp-widget__close {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 22px;
    height: 22px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #56786d;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
}

.whatsapp-widget__close:hover {
    background: rgba(37, 211, 102, 0.12);
    color: #1f5c48;
}

.whatsapp-float {
    position: relative;
    background-color: #25d366;
    color: #ffffff;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 27px;
    border: 2px solid #ffffff;
    box-shadow: 0 10px 24px rgba(37, 211, 102, 0.35);
    z-index: 2;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    text-decoration: none;
    isolation: isolate;
}

.whatsapp-float__pulse {
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    border: 2px solid rgba(37, 211, 102, 0.4);
    z-index: -1;
    animation: whatsappPulse 1.8s infinite ease-out;
}

.whatsapp-float:hover {
    transform: translateY(-2px) scale(1.04);
    box-shadow: 0 14px 28px rgba(37, 211, 102, 0.45);
    color: #ffffff;
}

.whatsapp-float:focus {
    outline: 3px solid #128c7e;
    outline-offset: 2px;
}

body.cookie-banner-visible .scroll-top.active {
    bottom: 110px;
}

body.cookie-banner-visible .whatsapp-widget {
    bottom: 106px;
}

@media (max-width: 767.98px) {
    #cookie-banner.cookie-banner {
        width: calc(100% - 12px);
        bottom: 6px;
    }

    .cookie-banner__inner {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 12px;
        border-radius: 12px;
    }

    .cookie-banner__text {
        font-size: 0.85rem;
    }

    .cookie-banner__actions {
        width: 100%;
        justify-content: space-between;
        gap: 6px;
    }

    .cookie-banner__actions .btn {
        min-width: 0;
        flex: 1;
        min-height: 36px;
        font-size: 0.79rem;
        padding-inline: 0.4rem;
    }

    .whatsapp-widget {
        left: 12px;
        bottom: 14px;
        gap: 8px;
    }

    .whatsapp-widget__bubble {
        max-width: 180px;
        padding: 8px 10px;
    }

    .whatsapp-widget__bubble p {
        font-size: 0.8rem;
    }

    .whatsapp-widget__bubble small {
        font-size: 0.7rem;
    }

    .whatsapp-float {
        width: 52px;
        height: 52px;
        font-size: 24px;
    }

    body.cookie-banner-visible .scroll-top.active {
        bottom: 96px;
    }

    body.cookie-banner-visible .whatsapp-widget {
        bottom: 90px;
    }
}

@keyframes whatsappPulse {
    0% {
        transform: scale(0.92);
        opacity: 0.75;
    }
    70% {
        transform: scale(1.08);
        opacity: 0;
    }
    100% {
        transform: scale(1.08);
        opacity: 0;
    }
}
