:root{
  --fcc-red:#b90700;
  --fcc-red-dark:#8f0500;
  --fcc-blue:#3e61a5;
  --fcc-blue-soft:#edf2fa;
  --fcc-gold:#c9a44b;
  --fcc-cream:#fffaf3;
  --fcc-white:#ffffff;
  --fcc-gray-50:#f7f8fb;
  --fcc-gray-100:#eef1f5;
  --fcc-gray-500:#64748b;
  --fcc-gray-700:#334155;
  --fcc-gray-900:#111827;
  --fcc-shadow:0 20px 60px rgba(15,23,42,.10);
  --fcc-shadow-soft:0 12px 35px rgba(15,23,42,.08);
  --fcc-radius:24px;
  --fcc-radius-sm:16px;
  --fcc-container:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--fcc-gray-900);background:var(--fcc-white);line-height:1.6;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}a:hover{color:var(--fcc-red)}img{max-width:100%;height:auto;display:block}.container{width:min(100% - 32px,var(--fcc-container));margin-inline:auto}.section-pad{padding:92px 0}.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}.skip-link:focus{z-index:9999;clip:auto;width:auto;height:auto;top:12px;left:12px;background:#fff;padding:12px 16px;border-radius:10px}
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
    outline: 3px solid rgba(62, 97, 165, 0.38);
    outline-offset: 3px;
}
.site-header{position:relative;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(226,232,240,.85)}.site-header.is-sticky{position:sticky;top:0}.header-inner{min-height:82px;display:flex;align-items:center;gap:24px}.custom-logo{max-height:58px;width:auto}.brand-fallback{display:flex;gap:12px;align-items:center}.brand-mark{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--fcc-red),var(--fcc-blue));display:grid;place-items:center;color:#fff}.brand-fallback strong{display:block;font-family:Manrope,Inter,sans-serif;font-size:1rem}.brand-fallback small{display:block;color:var(--fcc-gray-500);font-size:.78rem}.main-navigation{margin-left:auto}.main-navigation ul{list-style:none;display:flex;gap:24px;margin:0;padding:0;align-items:center}.main-navigation a{font-weight:700;font-size:.94rem;color:var(--fcc-gray-700)}.header-actions{display:flex;align-items:center;gap:10px}.menu-toggle{display:none;background:transparent;border:0;padding:8px}.menu-toggle span:not(.screen-reader-text){display:block;width:24px;height:2px;background:var(--fcc-gray-900);margin:5px 0;border-radius:2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:12px 18px;font-weight:800;border:1px solid transparent;transition:.2s ease;cursor:pointer;line-height:1}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--fcc-red),var(--fcc-red-dark));color:#fff;box-shadow:0 14px 28px rgba(159,29,47,.22)}.btn-primary:hover{color:#fff;box-shadow:0 18px 36px rgba(159,29,47,.30)}.btn-secondary{background:var(--fcc-blue);color:#fff}.btn-secondary:hover{color:#fff;background:#074d74}.btn-ghost{background:var(--fcc-blue-soft);color:var(--fcc-blue)}.btn-outline{border-color:var(--fcc-gray-100);background:#fff;color:var(--fcc-gray-900)}.btn-lg{padding:15px 22px;font-size:1rem}.text-link{font-weight:800;color:var(--fcc-red)}
.hero{position:relative;overflow:hidden;background:radial-gradient(circle at 15% 20%,rgba(232,245,251,.95),transparent 34%),linear-gradient(135deg,#fff 0%,var(--fcc-cream) 48%,#f3fbff 100%)}.hero:after{content:"";position:absolute;right:-180px;top:80px;width:420px;height:420px;background:rgba(159,29,47,.08);border-radius:50%}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:58px;align-items:center}.eyebrow{display:inline-flex;color:var(--fcc-red);font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;margin-bottom:12px}.hero h1,.section-heading h2,.split-grid h2,.single-hero h1,.page-header h1{font-family:Manrope,Inter,sans-serif;line-height:1.04;margin:0;color:var(--fcc-gray-900)}.hero h1{font-size:clamp(3rem,7vw,5.7rem);letter-spacing:-.065em}.lead{font-size:clamp(1.08rem,2vw,1.3rem);color:var(--fcc-gray-700);max-width:720px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.trust-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:28px;color:var(--fcc-gray-500);font-weight:700;font-size:.92rem}.trust-row span:before{content:"✓";color:var(--fcc-blue);font-weight:900;margin-right:6px}.hero-photo-card{position:relative;background:linear-gradient(145deg,#fff,#eef8fc);border:1px solid rgba(255,255,255,.8);box-shadow:var(--fcc-shadow);border-radius:38px;padding:16px;min-height:520px}.hero-photo-placeholder{height:488px;border-radius:30px;background:linear-gradient(145deg,rgba(11,95,143,.10),rgba(159,29,47,.10)),url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="700" height="700" viewBox="0 0 700 700"><circle cx="350" cy="280" r="120" fill="%23ffffff" opacity="0.58"/><rect x="150" y="390" width="400" height="180" rx="90" fill="%23ffffff" opacity="0.62"/></svg>');display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px;color:var(--fcc-gray-700)}.hero-photo-placeholder span{font-size:5rem;color:var(--fcc-red);line-height:1}.hero-photo-placeholder p{max-width:340px;font-weight:800}.floating-impact-card{position:absolute;left:-22px;bottom:44px;background:#fff;border-radius:22px;padding:18px 20px;box-shadow:var(--fcc-shadow);max-width:210px;border-left:5px solid var(--fcc-gold)}.floating-impact-card strong{display:block;font-size:2rem;color:var(--fcc-red);line-height:1}.floating-impact-card span{display:block;font-weight:700;color:var(--fcc-gray-700)}
.impact-strip{background:linear-gradient(135deg,var(--fcc-red-dark),var(--fcc-red));color:#fff}.impact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px}.impact-grid div{padding:30px 24px;border-left:1px solid rgba(255,255,255,.16)}.impact-grid strong{display:block;font-size:clamp(2rem,4vw,3rem);font-family:Manrope,Inter,sans-serif;line-height:1}.impact-grid span{display:block;color:rgba(255,255,255,.82);font-weight:700;margin-top:6px}
.split-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.split-grid h2,.section-heading h2{font-size:clamp(2rem,4vw,3.25rem);letter-spacing:-.045em}.prose-large{font-size:1.08rem;color:var(--fcc-gray-700)}.services-section,.posts-section,.partners-section{background:var(--fcc-gray-50)}.section-heading{text-align:center;max-width:760px;margin:0 auto 38px}.section-heading p{color:var(--fcc-gray-500);font-size:1.04rem}.section-heading--inline{display:flex;align-items:end;justify-content:space-between;text-align:left;max-width:none;gap:24px}.section-heading--inline>div{max-width:760px}.cards-grid{display:grid;gap:22px}.cards-grid--4{grid-template-columns:repeat(4,1fr)}.cards-grid--3{grid-template-columns:repeat(3,1fr)}.service-card,.testimonial-card,.activity-card,.post-card,.help-card{background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:var(--fcc-radius);box-shadow:var(--fcc-shadow-soft)}.service-card{padding:28px;min-height:280px}.service-icon{width:48px;height:48px;border-radius:16px;background:var(--fcc-blue-soft);color:var(--fcc-blue);display:grid;place-items:center;font-size:1.4rem;font-weight:900;margin-bottom:22px}.service-card h3,.activity-card h3,.post-card h3{font-family:Manrope,Inter,sans-serif;line-height:1.15;margin:0 0 12px}.service-card p,.activity-card p,.post-card p{color:var(--fcc-gray-500);margin:0}.stories-section{background:linear-gradient(180deg,#fff 0%,#fff8f8 100%)}.testimonial-card{padding:30px;background:linear-gradient(145deg,#fff,#fff7f0);border-top:4px solid var(--fcc-red)}.testimonial-card p{font-size:1.08rem;color:var(--fcc-gray-700)}.testimonial-card strong{color:var(--fcc-red)}.activity-card{padding:28px}.post-card{overflow:hidden;display:flex;flex-direction:column}.post-card__media{height:220px;background:linear-gradient(135deg,var(--fcc-blue-soft),#fff0f2);display:grid;place-items:center;overflow:hidden}.post-card__media img{width:100%;height:100%;object-fit:cover;transition:.3s ease}.post-card:hover img{transform:scale(1.04)}.post-card__placeholder{font-size:3rem;color:var(--fcc-red)}.post-card__body{padding:24px}.help-section{background:linear-gradient(135deg,var(--fcc-blue),#073f60);color:#fff}.help-panel{display:grid;grid-template-columns:.85fr 1.15fr;gap:34px;align-items:center}.help-section .section-heading{text-align:left;margin:0}.help-section h2,.help-section p,.help-section .eyebrow{color:#fff}.help-section .eyebrow{opacity:.84}.help-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.help-card{padding:24px;color:var(--fcc-gray-900);transition:.2s ease}.help-card:hover{transform:translateY(-3px);color:var(--fcc-gray-900)}.help-card strong{display:block;font-family:Manrope,Inter,sans-serif;font-size:1.3rem}.help-card span{color:var(--fcc-gray-500)}.logo-carousel{display:flex;gap:16px;overflow:auto;padding-bottom:10px;scroll-snap-type:x mandatory}.logo-carousel div{min-width:190px;height:92px;border:1px solid var(--fcc-gray-100);border-radius:18px;background:#fff;display:grid;place-items:center;color:var(--fcc-gray-500);font-weight:900;scroll-snap-align:start}
/* --- PREMIUM GLOWING SITE FOOTER --- */
.site-footer {
    position: relative;
    background: radial-gradient(circle at 50% 0%, #1e293b 0%, #090d16 100%);
    color: #cbd5e1;
    padding: 92px 0 32px;
    overflow: hidden;
}
/* Glowing top border divider with brand colors */
.site-footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--fcc-red) 0%, var(--fcc-gold) 50%, var(--fcc-blue) 100%);
    box-shadow: 0 4px 20px rgba(159, 29, 47, 0.4);
    z-index: 10;
}
.footer-grid {
    display: grid;
    grid-template-columns: 1.25fr 0.8fr 0.95fr 1fr;
    gap: 42px;
}
.site-footer h3, 
.site-footer h2 {
    font-family: Manrope, Inter, sans-serif;
    color: #ffffff;
    font-size: 1.05rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 0;
    margin-bottom: 26px;
    position: relative;
    display: inline-block;
    padding-bottom: 10px;
}
/* Decorative red accent line under headings */
.site-footer h3::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 32px;
    height: 3px;
    background: var(--fcc-red);
    border-radius: 99px;
    transition: width 0.3s ease;
}
.site-footer h3:hover::after {
    width: 52px;
}
.site-footer p {
    color: #94a3b8;
    line-height: 1.75;
    font-size: 0.96rem;
    margin-bottom: 24px;
}
.footer-brand p {
    max-width: 310px;
}
.site-footer ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* --- QUICK LINKS HOVER ANIMATION --- */
.footer-links ul li {
    margin-bottom: 12px;
}
.footer-links ul a {
    color: #cbd5e1;
    font-size: 0.96rem;
    font-weight: 600;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    display: inline-flex;
    align-items: center;
    position: relative;
}
.footer-links ul a::before {
    content: "❤";
    position: absolute;
    left: -16px;
    color: var(--fcc-red);
    font-size: 0.7rem;
    opacity: 0;
    transform: scale(0.5);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.footer-links ul a:hover {
    color: #ffffff;
    transform: translateX(18px);
}
.footer-links ul a:hover::before {
    opacity: 1;
    transform: scale(1) translateX(4px);
}

/* --- DETAILED CONTACT LIST --- */
.contact-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.contact-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: #94a3b8;
    font-size: 0.96rem;
    line-height: 1.5;
}
.contact-item__icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.05);
    color: var(--fcc-gold);
    display: grid;
    place-items: center;
    flex-shrink: 0;
    transition: all 0.3s ease;
    border: 1px solid rgba(255, 255, 255, 0.06);
}
.contact-item__icon svg {
    width: 16px;
    height: 16px;
}
.contact-item:hover .contact-item__icon {
    background: var(--fcc-gold);
    color: #0f172a;
    transform: translateY(-2px) scale(1.05);
    box-shadow: 0 6px 15px rgba(201, 164, 75, 0.25);
}
.contact-item__text {
    padding-top: 6px;
}
.contact-item__link {
    color: #cbd5e1;
    font-weight: 600;
    transition: all 0.25s ease;
    padding-top: 6px;
}
.contact-item__link:hover {
    color: #ffffff;
    text-decoration: underline;
}

/* --- PREMIUM SOCIAL BUTTONS --- */
.social-links {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 24px;
}
.social-btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: #cbd5e1;
    display: grid;
    place-items: center;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    position: relative;
    overflow: hidden;
    z-index: 1;
}
.social-icon {
    width: 18px;
    height: 18px;
    z-index: 2;
    transition: transform 0.3s ease;
}
.social-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    transform: scale(0);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    z-index: -1;
}
.social-btn--facebook:hover::before {
    background: #1877f2;
    transform: scale(1);
}
.social-btn--instagram:hover::before {
    background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
    transform: scale(1);
}
.social-btn--youtube:hover::before {
    background: #ff0000;
    transform: scale(1);
}
.social-btn:hover {
    color: #ffffff !important;
    transform: translateY(-5px) rotate(8deg);
    box-shadow: 0 10px 20px rgba(15, 23, 42, 0.3);
    border-color: transparent;
}
.social-btn:hover .social-icon {
    transform: scale(1.1);
}

/* --- GLASSMORPHIC CONTACT FORM --- */
.footer-writeus {
    position: relative;
}
.footer-form {
    display: grid;
    gap: 12px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.06);
    padding: 24px;
    border-radius: 22px;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}
.footer-form label {
    display: block;
}
.footer-form label span {
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #94a3b8;
    margin-bottom: 6px;
}
.footer-form input, 
.footer-form textarea {
    width: 100%;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 10px 14px;
    background: rgba(255, 255, 255, 0.05);
    color: #ffffff;
    font-family: Inter, sans-serif;
    font-size: 0.94rem;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.footer-form input::placeholder, 
.footer-form textarea::placeholder {
    color: #64748b;
}
.footer-form input:focus, 
.footer-form textarea:focus {
    outline: none;
    border-color: var(--fcc-blue);
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 0 0 3px rgba(11, 95, 143, 0.25);
}
.footer-form .btn {
    margin-top: 8px;
    padding: 14px;
    font-size: 0.95rem;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

/* --- BALANCED FOOTER BOTTOM --- */
.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    padding: 24px 0;
    margin-top: 64px;
}
.footer-bottom__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}
.footer-bottom__copy, 
.footer-bottom__credit {
    margin: 0 !important;
    font-size: 0.88rem !important;
    color: #64748b !important;
}
.footer-bottom__heart {
    color: var(--fcc-red);
    display: inline-block;
    animation: heartbeat-mini 1.6s infinite ease-in-out;
}
@keyframes heartbeat-mini {
    0% { transform: scale(1); }
    14% { transform: scale(1.15); }
    28% { transform: scale(1); }
    42% { transform: scale(1.15); }
    70% { transform: scale(1); }
}

/* Responsive Footer Overrides */
@media(max-width: 980px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 36px !important;
    }
    .footer-brand {
        grid-column: span 2 !important;
    }
}
@media(max-width: 640px) {
    .footer-grid {
        grid-template-columns: 1fr !important;
        gap: 30px !important;
    }
    .footer-brand {
        grid-column: span 1 !important;
    }
    .footer-bottom__inner {
        flex-direction: column !important;
        text-align: center !important;
    }
}

.whatsapp-float{position:fixed;right:20px;bottom:20px;z-index:120;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;font-size:1.6rem;font-weight:900;box-shadow:0 16px 30px rgba(37,211,102,.35)}
.archive-main,.single-main,.page-main{padding:72px 0}.page-header{max-width:780px;margin-bottom:36px}.single-hero{text-align:center;max-width:850px;margin:0 auto 34px}.single-hero h1,.page-header h1{font-size:clamp(2.2rem,5vw,4.2rem);letter-spacing:-.05em}.single-featured{margin:0 auto 38px;border-radius:30px;overflow:hidden;box-shadow:var(--fcc-shadow)}.prose{font-size:1.08rem;color:var(--fcc-gray-700);max-width:820px;margin-inline:auto}.prose a{text-decoration:underline;color:var(--fcc-red)}.prose img{border-radius:20px}.not-found{text-align:center;min-height:45vh;display:grid;place-items:center;align-content:center}
@media(max-width:980px){.header-inner{min-height:72px}.menu-toggle{display:block;margin-left:auto}.main-navigation,.header-actions{display:none}.site-header.is-open .main-navigation,.site-header.is-open .header-actions{display:flex}.site-header.is-open .header-inner{flex-wrap:wrap}.site-header.is-open .main-navigation{order:5;width:100%}.site-header.is-open .main-navigation ul{flex-direction:column;align-items:flex-start;width:100%;gap:0}.site-header.is-open .main-navigation li{width:100%;border-top:1px solid var(--fcc-gray-100)}.site-header.is-open .main-navigation a{display:block;padding:14px 0}.site-header.is-open .header-actions{order:6;width:100%;padding-bottom:16px}.hero-grid,.split-grid,.help-panel,.footer-grid{grid-template-columns:1fr}.cards-grid--4,.cards-grid--3{grid-template-columns:repeat(2,1fr)}.hero-photo-card{min-height:420px}.hero-photo-placeholder{height:390px}.impact-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.section-pad{padding:64px 0}.hero h1{font-size:3.2rem}.hero-actions,.section-heading--inline{align-items:stretch;flex-direction:column}.cards-grid--4,.cards-grid--3,.help-grid,.impact-grid{grid-template-columns:1fr}.footer-grid{gap:26px}.btn{width:100%}.header-actions .btn,.site-header.is-open .header-actions .btn{width:auto}.floating-impact-card{left:14px;right:14px;bottom:20px;max-width:none}.hero-photo-card{border-radius:28px}.hero-photo-placeholder{border-radius:22px}.post-card__media{height:190px}}

/* Theme options additions */
.btn-whatsapp span{font-weight:700;opacity:.84;margin-left:2px}.hero-photo-card.has-image{background-size:cover;background-position:center;min-height:520px;overflow:hidden}.hero-photo-card.has-image:before{content:"";position:absolute;inset:0;background:linear-gradient(130deg,rgba(255,255,255,.08),rgba(11,95,143,.12));z-index:0}.hero-photo-card.has-image .floating-impact-card{z-index:1}.mission-values{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:24px}.mission-values span{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--fcc-gray-100);border-radius:16px;padding:14px 16px;font-weight:800;color:var(--fcc-gray-700);box-shadow:var(--fcc-shadow-soft)}.mission-values span:before{content:"❤";color:var(--fcc-red)}.service-card .text-link{display:inline-flex;margin-top:18px}.site-footer .custom-logo{filter:brightness(0) invert(1);max-height:70px}.footer-brand .custom-logo-link{display:inline-block;margin-bottom:18px}.admin-bar .site-header{top:32px}@media(max-width:782px){.admin-bar .site-header{top:46px}}@media(max-width:640px){.mission-values{grid-template-columns:1fr}.btn-whatsapp span{display:none}.hero-photo-card.has-image{min-height:430px}}

/* --- MEJORAS DE DISEÑO PREMIUM ADICIONALES --- */

/* Marquesina Continua e Infinita para Aliados */
.logo-carousel {
    overflow: hidden;
    padding: 20px 0;
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}
.logo-carousel::before,
.logo-carousel::after {
    content: "";
    height: 100%;
    width: 120px;
    position: absolute;
    z-index: 2;
    pointer-events: none;
}
.logo-carousel::before {
    left: 0;
    top: 0;
    background: linear-gradient(to right, var(--fcc-gray-50), transparent);
}
.logo-carousel::after {
    right: 0;
    top: 0;
    background: linear-gradient(to left, var(--fcc-gray-50), transparent);
}
.logo-carousel-track {
    display: flex;
    gap: 24px;
    width: max-content;
    animation: fcc-marquee 30s linear infinite;
}
.logo-carousel-track:hover {
    animation-play-state: paused;
}
.logo-item {
    min-width: 190px;
    height: 92px;
    border: 1px solid var(--fcc-gray-100);
    border-radius: 18px;
    background: var(--fcc-white);
    display: grid;
    place-items: center;
    color: var(--fcc-gray-500);
    font-weight: 900;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: var(--fcc-shadow-soft);
    padding: 0 20px;
    text-align: center;
}
.logo-item:hover {
    transform: translateY(-4px);
    border-color: var(--fcc-red);
    color: var(--fcc-red);
    box-shadow: 0 14px 28px rgba(159, 29, 47, 0.08);
}
@keyframes fcc-marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* WhatsApp Flotante Premium */
.whatsapp-float {
    position: fixed;
    right: 30px;
    bottom: 30px;
    z-index: 999;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #25d366;
    color: #fff;
    display: grid;
    place-items: center;
    box-shadow: 0 10px 25px rgba(37, 211, 102, 0.4);
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.whatsapp-float:hover {
    transform: scale(1.1) translateY(-6px);
    color: #fff;
    box-shadow: 0 16px 32px rgba(37, 211, 102, 0.5);
}
.whatsapp-float__pulse {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: #25d366;
    z-index: -1;
    animation: fcc-wa-pulse 2s infinite;
    opacity: 0.45;
}
.whatsapp-float__icon {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
}
.whatsapp-float__icon svg {
    width: 100%;
    height: 100%;
}
@keyframes fcc-wa-pulse {
    0% { transform: scale(1); opacity: 0.5; }
    100% { transform: scale(1.6); opacity: 0; }
}

/* Estilos del Formulario AJAX en el Footer */
.footer-form {
    position: relative;
}
.contact-response-container {
    margin-bottom: 15px;
    border-radius: var(--fcc-radius-sm);
    font-size: 0.9rem;
    font-weight: 700;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    opacity: 0;
    max-height: 0;
    overflow: hidden;
}
.contact-response-container.visible {
    opacity: 1;
    max-height: 200px;
    margin-bottom: 18px;
}
.contact-response-container.success {
    background: rgba(37, 211, 102, 0.12);
    border: 1px solid rgba(37, 211, 102, 0.25);
    color: #25d366;
    padding: 12px 16px;
}
.contact-response-container.error {
    background: rgba(159, 29, 47, 0.12);
    border: 1px solid rgba(159, 29, 47, 0.25);
    color: #f87171;
    padding: 12px 16px;
}

#fcc-contact-submit {
    position: relative;
    overflow: hidden;
}
#fcc-contact-submit.loading {
    pointer-events: none;
}
#fcc-contact-submit.loading .btn-text {
    visibility: hidden;
    opacity: 0;
}
#fcc-contact-submit.loading .btn-spinner {
    display: block;
    position: absolute;
    width: 20px;
    height: 20px;
    border: 3px solid rgba(255, 255, 255, 0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: fcc-spin 0.8s infinite linear;
    left: calc(50% - 10px);
    top: calc(50% - 10px);
}
@keyframes fcc-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Micro-animaciones Generales */
.post-card, .service-card, .testimonial-card, .activity-card, .help-card {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.post-card:hover, .service-card:hover, .testimonial-card:hover, .activity-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 24px 48px rgba(15, 23, 42, 0.12);
    border-color: rgba(159, 29, 47, 0.18);
}
.btn {
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.btn:hover {
    transform: translateY(-3px) scale(1.02);
}

/* --- ESTILOS DE SINGLE TEMPLATES CPT (PACIENTES Y ACTIVIDADES) --- */
.story-hero-header, .activity-hero-header {
    background: radial-gradient(circle at 10% 20%, rgba(232, 245, 251, 0.75), transparent 45%), linear-gradient(135deg, #fff 0%, var(--fcc-cream) 100%);
    padding: 88px 0 64px;
    text-align: center;
    border-bottom: 1px solid var(--fcc-gray-100);
    margin-bottom: 56px;
}
.story-hero-header h1, .activity-hero-header h1 {
    font-family: Manrope, Inter, sans-serif;
    font-size: clamp(2.2rem, 5.5vw, 4rem);
    line-height: 1.08;
    margin-top: 12px;
    color: var(--fcc-gray-900);
    letter-spacing: -0.05em;
    font-weight: 800;
}
.lead-text {
    font-size: clamp(1.1rem, 2vw, 1.28rem);
    color: var(--fcc-gray-700);
    max-width: 820px;
    margin: 18px auto 0;
}
.story-content-grid, .activity-content-grid {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 60px;
    align-items: start;
    margin-bottom: 92px;
}
.story-body, .activity-body {
    width: 100%;
}
.story-featured-wrapper, .activity-featured-wrapper {
    border-radius: 30px;
    overflow: hidden;
    box-shadow: var(--fcc-shadow);
    margin-bottom: 44px;
    border: 1px solid rgba(255, 255, 255, 0.8);
}
.story-featured-img, .activity-featured-img {
    width: 100%;
    height: auto;
    object-fit: cover;
}
.story-content, .activity-content {
    font-size: 1.15rem;
    color: var(--fcc-gray-700);
    line-height: 1.85;
}
.story-content p, .activity-content p {
    margin-bottom: 26px;
}
.story-sidebar, .activity-sidebar {
    position: sticky;
    top: 110px;
}
.story-meta-card, .activity-meta-card {
    background: var(--fcc-gray-50);
    border: 1px solid rgba(226, 232, 240, 0.8);
    border-radius: 26px;
    padding: 32px;
    box-shadow: var(--fcc-shadow-soft);
}
.story-meta-card h3, .activity-meta-card h3 {
    font-family: Manrope, Inter, sans-serif;
    margin-top: 0;
    margin-bottom: 22px;
    font-size: 1.3rem;
    color: var(--fcc-gray-900);
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
    padding-bottom: 14px;
}
.story-meta-list, .activity-meta-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.story-meta-list li, .activity-meta-list li {
    display: flex;
    align-items: center;
    gap: 18px;
}
.meta-icon {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    background: var(--fcc-blue-soft);
    color: var(--fcc-blue);
    display: grid;
    place-items: center;
    font-size: 1.25rem;
    flex-shrink: 0;
}
.meta-info {
    display: flex;
    flex-direction: column;
}
.meta-label {
    font-size: 0.78rem;
    text-transform: uppercase;
    color: var(--fcc-gray-500);
    font-weight: 800;
    letter-spacing: 0.05em;
}
.meta-value {
    font-size: 1.05rem;
    color: var(--fcc-gray-900);
    font-weight: 800;
}
.story-footer-cta, .activity-footer-cta {
    margin-top: 64px;
    background: linear-gradient(135deg, var(--fcc-blue-soft), #fff5f6);
    border: 1px dashed rgba(159, 29, 47, 0.25);
    border-radius: 30px;
    padding: 44px;
    text-align: center;
    box-shadow: var(--fcc-shadow-soft);
}
.story-footer-cta h3, .activity-footer-cta h3 {
    font-family: Manrope, Inter, sans-serif;
    font-size: 1.7rem;
    margin-top: 0;
    margin-bottom: 12px;
    color: var(--fcc-gray-900);
}
.story-footer-cta p, .activity-footer-cta p {
    max-width: 620px;
    margin: 0 auto 28px;
    color: var(--fcc-gray-700);
    font-size: 1.05rem;
}
.activity-cta-actions {
    display: flex;
    justify-content: center;
    gap: 18px;
    flex-wrap: wrap;
}

@media(max-width:980px){
    .story-content-grid, .activity-content-grid {
        grid-template-columns: 1fr;
        gap: 44px;
    }
    .story-sidebar, .activity-sidebar {
        position: static;
    }
}

/* --- MENÚ MÓVIL DRAWER PREMIUM (SLIDE-OUT) --- */
@media(max-width:980px){
    .menu-toggle {
        display: block !important;
        z-index: 1001 !important;
        position: relative !important;
        margin-left: auto !important;
    }
    
    /* Animación del botón hamburguesa a "X" */
    .site-header.is-open .menu-toggle span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }
    .site-header.is-open .menu-toggle span:nth-child(2) {
        opacity: 0;
    }
    .site-header.is-open .menu-toggle span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }
    .menu-toggle span {
        transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    }

    /* Drawer de Navegación */
    .main-navigation {
        position: fixed !important;
        top: 0 !important;
        right: -100% !important;
        width: 320px !important;
        height: 100vh !important;
        background: rgba(255, 255, 255, 0.96) !important;
        backdrop-filter: blur(20px) !important;
        -webkit-backdrop-filter: blur(20px) !important;
        box-shadow: -10px 0 40px rgba(15, 23, 42, 0.15) !important;
        padding: 100px 30px 40px !important;
        z-index: 1000 !important;
        display: flex !important;
        flex-direction: column !important;
        transition: right 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
        overflow-y: auto !important;
        margin-left: 0 !important;
    }
    
    .site-header.is-open .main-navigation {
        right: 0 !important;
    }
    
    .main-navigation ul {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0 !important;
        width: 100% !important;
    }
    
    .main-navigation li {
        width: 100% !important;
        border-top: 0 !important;
        border-bottom: 1px solid rgba(15, 23, 42, 0.05) !important;
        opacity: 0;
        transform: translateX(30px);
        transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    }
    
    .site-header.is-open .main-navigation li {
        opacity: 1 !important;
        transform: translateX(0) !important;
    }
    
    /* Cascada de animación en enlaces */
    .site-header.is-open .main-navigation li:nth-child(1) { transition-delay: 0.1s; }
    .site-header.is-open .main-navigation li:nth-child(2) { transition-delay: 0.15s; }
    .site-header.is-open .main-navigation li:nth-child(3) { transition-delay: 0.2s; }
    .site-header.is-open .main-navigation li:nth-child(4) { transition-delay: 0.25s; }
    .site-header.is-open .main-navigation li:nth-child(5) { transition-delay: 0.3s; }
    .site-header.is-open .main-navigation li:nth-child(6) { transition-delay: 0.35s; }

    .main-navigation a {
        display: block !important;
        padding: 16px 0 !important;
        font-size: 1.15rem !important;
        font-weight: 800 !important;
        color: var(--fcc-gray-900) !important;
        transition: color 0.3s ease !important;
    }
    .main-navigation a:hover {
        color: var(--fcc-red) !important;
    }
    
    /* Acciones en Drawer */
    .header-actions {
        position: fixed !important;
        bottom: 0 !important;
        right: -100% !important;
        width: 320px !important;
        padding: 24px 30px 40px !important;
        z-index: 1000 !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
        background: rgba(255, 255, 255, 0.96) !important;
        transition: right 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
        transition-delay: 0.05s;
    }
    
    .site-header.is-open .header-actions {
        right: 0 !important;
    }
    
    .header-actions .btn {
        width: 100% !important;
        padding: 14px 20px !important;
    }
    .header-actions .btn-whatsapp {
        order: 2;
    }
}

/* --- PHASE 3 PREMIUM VISUAL ELEVATION UPGRADES --- */

/* Header menu link hover line micro-interaction */
.main-navigation a {
    position: relative;
    padding-bottom: 4px;
}
.main-navigation a::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2.5px;
    background: var(--fcc-red);
    transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    transform: translateX(-50%);
    border-radius: 99px;
}
.main-navigation a:hover::after,
.main-navigation li.current-menu-item a::after {
    width: 100%;
}

/* Elegant Text Gradient Recorte */
.gradient-text {
    background: linear-gradient(135deg, var(--fcc-red) 20%, var(--fcc-blue) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    display: inline-block;
}

/* Trust check vector icons */
.trust-row span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.trust-row span:before {
    display: none !important; /* Disable ASCII check */
}
.trust-icon {
    width: 16px;
    height: 16px;
    color: var(--fcc-blue);
    flex-shrink: 0;
}

/* Mission section asymmetric pills & values styling */
.mission-values {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 28px;
}
.mission-values span {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #fff;
    border: 1px solid rgba(226, 232, 240, 0.8);
    border-radius: 20px 8px 20px 20px !important; /* Asymmetric organic curved shape */
    padding: 16px 20px;
    font-weight: 800;
    color: var(--fcc-gray-700);
    box-shadow: var(--fcc-shadow-soft);
    transition: all 0.3s ease;
}
.mission-values span:hover {
    transform: translateY(-3px);
    border-color: rgba(159, 29, 47, 0.15);
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
}
.mission-values span:before {
    display: none !important; /* Disable ASCII heart */
}
.val-icon {
    width: 20px;
    height: 20px;
    color: var(--fcc-red);
    flex-shrink: 0;
    animation: fcc-heartbeat 1.6s infinite ease-in-out;
}
@keyframes fcc-heartbeat {
    0% { transform: scale(1); }
    14% { transform: scale(1.12); }
    28% { transform: scale(1); }
    42% { transform: scale(1.12); }
    70% { transform: scale(1); }
}

/* Services custom SVG styling & hover masks */
.srv-icon-svg {
    width: 24px;
    height: 24px;
}
.service-card {
    position: relative;
    overflow: hidden;
    z-index: 1;
}
.service-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 60%, rgba(11, 95, 143, 0.03) 100%);
    z-index: -1;
    opacity: 0;
    transition: opacity 0.4s ease;
}
.service-card:hover::before {
    opacity: 1;
}

/* Fallback testimonials star ratings */
.testi-stars {
    color: #eab308;
    font-size: 1.1rem;
    margin-bottom: 15px;
    letter-spacing: 2px;
}

/* Glassmorphism of High Contrast for Help Cards */
.help-section {
    background: linear-gradient(135deg, #3e61a5, #1d3565) !important;
}
.help-card {
    background: rgba(255, 255, 255, 0.07) !important;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    color: #fff !important;
    position: relative;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.help-card strong {
    color: #fff !important;
    font-size: 1.35rem;
    margin-bottom: 6px;
    z-index: 1;
}
.help-card span {
    color: rgba(255, 255, 255, 0.76) !important;
    z-index: 1;
}
.help-card__icon-wrap {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
    display: grid;
    place-items: center;
    color: var(--fcc-gold);
    transition: all 0.3s ease;
}
.help-arrow-svg {
    width: 14px;
    height: 14px;
}
.help-card:hover {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: var(--fcc-gold) !important;
    transform: translateY(-6px) !important;
}
.help-card:hover .help-card__icon-wrap {
    background: var(--fcc-gold);
    color: #05263a;
    transform: scale(1.1) rotate(45deg);
}

/* Micro-interaction arrow slide on Leer más */
.text-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: all 0.25s ease;
}
.text-link:hover {
    gap: 8px; /* Smooth arrow shifting */
}

/* --- PHASE 4 PREMIUM PAGE TEMPLATES (NOSOTROS & CONTACTO) --- */

/* Hero cabeceras de página */
.nosotros-hero, .contacto-hero {
    background: radial-gradient(circle at 12% 24%, rgba(232, 245, 251, 0.8), transparent 48%), linear-gradient(135deg, #fff 0%, var(--fcc-cream) 100%);
    padding: 92px 0 68px;
    text-align: center;
    border-bottom: 1px solid var(--fcc-gray-100);
    margin-bottom: 58px;
}
.nosotros-hero h1, .contacto-hero h1 {
    font-family: Manrope, Inter, sans-serif;
    font-size: clamp(2.4rem, 6vw, 4.2rem);
    line-height: 1.05;
    margin-top: 12px;
    color: var(--fcc-gray-900);
    letter-spacing: -0.05em;
    font-weight: 800;
}

.section-pad-sm {
    padding: 60px 0;
}

/* Misión & Visión CPT/Páginas */
.nosotros-mv-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin-bottom: 60px;
}
.mv-card {
    background: #fff;
    border: 1px solid rgba(226, 232, 240, 0.8);
    border-radius: 26px;
    padding: 38px;
    box-shadow: var(--fcc-shadow-soft);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.mv-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--fcc-shadow);
    border-color: rgba(159, 29, 47, 0.15);
}
.mv-icon-wrap {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    background: var(--fcc-blue-soft);
    color: var(--fcc-blue);
    display: grid;
    place-items: center;
    margin-bottom: 22px;
}
.mv-svg {
    width: 24px;
    height: 24px;
}
.mv-card h2 {
    font-family: Manrope, Inter, sans-serif;
    margin-top: 0;
    margin-bottom: 14px;
    color: var(--fcc-gray-900);
    font-size: 1.5rem;
}
.mv-card p {
    color: var(--fcc-gray-700);
    margin: 0;
    line-height: 1.75;
    font-size: 1.04rem;
}

/* Timeline Cronológico */
.timeline-container {
    position: relative;
    margin: 50px auto 0;
    max-width: 800px;
    padding: 20px 0;
}
.timeline-line {
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 4px;
    background: rgba(11, 95, 143, 0.15);
    transform: translateX(-50%);
}
.timeline-item {
    position: relative;
    width: 50%;
    padding: 20px 40px;
    box-sizing: border-box;
}
.timeline-item.left {
    left: 0;
    text-align: right;
}
.timeline-item.right {
    left: 50%;
    text-align: left;
}
.timeline-dot {
    position: absolute;
    top: 36px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--fcc-red);
    border: 4px solid #fff;
    box-shadow: 0 0 0 3px rgba(159, 29, 47, 0.2);
    z-index: 2;
}
.timeline-item.left .timeline-dot {
    right: -9px;
}
.timeline-item.right .timeline-dot {
    left: -9px;
}
.timeline-content {
    background: #fff;
    border: 1px solid rgba(226, 232, 240, 0.8);
    padding: 26px;
    border-radius: 22px;
    box-shadow: var(--fcc-shadow-soft);
    transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.timeline-content:hover {
    transform: translateY(-4px);
    box-shadow: var(--fcc-shadow);
    border-color: rgba(11, 95, 143, 0.15);
}
.timeline-year {
    display: inline-block;
    font-weight: 800;
    font-size: 1.45rem;
    color: var(--fcc-red);
    margin-bottom: 8px;
    font-family: 'Quicksand', sans-serif;
}
.timeline-content h3 {
    font-family: Manrope, Inter, sans-serif;
    margin-top: 0;
    margin-bottom: 10px;
    font-size: 1.2rem;
    color: var(--fcc-gray-900);
}
.timeline-content p {
    color: var(--fcc-gray-500);
    margin: 0;
    line-height: 1.6;
    font-size: 0.96rem;
}

/* Equipo de Liderazgo */
.team-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 40px;
}
.team-grid[data-count="1"],
.team-grid.team-grid--count-1 {
    grid-template-columns: minmax(0, 420px);
    justify-content: center;
}
.team-grid[data-count="2"],
.team-grid.team-grid--count-2 {
    grid-template-columns: repeat(2, minmax(0, 420px));
    justify-content: center;
}
.about-link-grid,
.about-context-grid,
.institutional-hero__grid,
.institutional-story-grid,
.program-grid,
.education-grid,
.question-grid {
    display: grid;
    gap: 24px;
}
.about-link-grid {
    grid-template-columns: repeat(3, 1fr);
}
.about-context-grid {
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
}
.about-link-card {
    min-height: 190px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 22px;
    padding: 28px;
    border: 1px solid rgba(226, 232, 240, 0.92);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--fcc-shadow-soft);
    color: var(--fcc-gray-900);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.about-link-card:hover {
    transform: translateY(-4px);
    border-color: rgba(185, 7, 0, .22);
    box-shadow: var(--fcc-shadow);
    color: var(--fcc-gray-900);
}
.about-link-card span,
.program-card span,
.education-card h3,
.institutional-milestones span {
    color: var(--fcc-red);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .78rem;
}
.about-link-card strong {
    font-family: Manrope, Inter, sans-serif;
    font-size: 1.18rem;
    line-height: 1.25;
}
.about-context-card {
    padding: 30px;
    border-radius: 24px;
    background: linear-gradient(180deg, #fff, #f8fbff);
    border: 1px solid rgba(226, 232, 240, .92);
    box-shadow: var(--fcc-shadow-soft);
}
.about-context-card h2 {
    margin: 8px 0 14px;
    font-size: 1.45rem;
    line-height: 1.15;
    letter-spacing: -.02em;
}
.about-context-card p {
    color: var(--fcc-gray-600);
    line-height: 1.68;
    margin: 0;
}
.institutional-page {
    background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
}
.institutional-hero {
    padding: 96px 0 64px;
    background: radial-gradient(circle at 85% 20%, rgba(62, 97, 165, .16), transparent 34%), linear-gradient(135deg, #ffffff 0%, #eef4fb 100%);
}
.institutional-hero__grid {
    grid-template-columns: minmax(0, 1fr) 360px;
    align-items: center;
}
.institutional-hero h1 {
    max-width: 900px;
    margin: 10px 0 20px;
    font-size: clamp(2.5rem, 5vw, 5rem);
    line-height: .94;
    letter-spacing: -.05em;
}
.institutional-hero p {
    max-width: 760px;
    color: var(--fcc-gray-600);
    font-size: 1.15rem;
    line-height: 1.7;
}
.institutional-hero__panel,
.program-card,
.education-card,
.institutional-proof-grid article,
.institutional-milestones article {
    border: 1px solid rgba(226, 232, 240, .92);
    background: rgba(255, 255, 255, .9);
    border-radius: 24px;
    box-shadow: var(--fcc-shadow-soft);
}
.institutional-hero__panel {
    padding: 30px;
}
.institutional-hero__panel strong {
    display: block;
    font-family: Manrope, Inter, sans-serif;
    color: var(--fcc-gray-900);
    font-size: 1.5rem;
    line-height: 1.15;
    margin-bottom: 12px;
}
.institutional-hero__panel span,
.program-card p,
.education-card p,
.institutional-copy p,
.institutional-story-lead p,
.question-grid p {
    color: var(--fcc-gray-600);
    line-height: 1.72;
}
.institutional-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}
.institutional-story-grid {
    grid-template-columns: .82fr 1.18fr;
    align-items: start;
}
.institutional-story-lead h2,
.program-card h2,
.education-card h2,
.question-grid h2 {
    margin: 8px 0 16px;
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1;
    letter-spacing: -.04em;
}
.institutional-copy {
    columns: 2;
    column-gap: 34px;
}
.institutional-copy p {
    break-inside: avoid;
    margin-top: 0;
}
.institutional-timeline-band {
    background: #f4f7fb;
}
.institutional-milestones,
.institutional-proof-grid,
.program-steps {
    display: grid;
    gap: 18px;
}
.institutional-milestones {
    grid-template-columns: repeat(3, 1fr);
}
.institutional-milestones article,
.institutional-proof-grid article,
.program-steps article {
    padding: 24px;
}
.institutional-milestones h3 {
    margin: 10px 0;
    font-family: Manrope, Inter, sans-serif;
}
.institutional-proof-grid {
    grid-template-columns: repeat(3, 1fr);
}
.institutional-proof-grid strong {
    display: block;
    color: var(--fcc-red);
    font-family: Manrope, Inter, sans-serif;
    font-size: clamp(2rem, 4vw, 3.4rem);
    line-height: 1;
    margin-bottom: 10px;
}
.program-grid {
    grid-template-columns: 1.2fr .9fr .9fr;
    align-items: stretch;
}
.program-card {
    padding: 30px;
}
.program-card--primary {
    background: var(--fcc-blue);
    color: #fff;
}
.program-card--primary span,
.program-card--primary p,
.program-card--primary h2 {
    color: #fff;
}
.program-process .section-heading {
    margin-bottom: 30px;
}
.program-steps {
    grid-template-columns: repeat(4, 1fr);
}
.program-steps article {
    border-radius: 22px;
    background: #fff;
    border: 1px solid rgba(226, 232, 240, .92);
}
.program-steps strong {
    display: block;
    color: var(--fcc-red);
    margin-bottom: 14px;
}
.education-grid {
    grid-template-columns: 1.2fr .9fr .9fr;
}
.education-card {
    padding: 30px;
}
.education-card--wide {
    grid-row: span 2;
}
.question-grid {
    grid-template-columns: .85fr 1.15fr;
}
.question-list {
    display: grid;
    gap: 12px;
}
.question-list details {
    background: #fff;
    border: 1px solid rgba(226, 232, 240, .9);
    border-radius: 18px;
    padding: 18px 20px;
}
.question-list summary {
    cursor: pointer;
    font-weight: 900;
    color: var(--fcc-gray-900);
}
.question-list p {
    margin-bottom: 0;
}
.team-card {
    background: #fff;
    border: 1px solid rgba(226, 232, 240, 0.8);
    border-radius: 24px;
    padding: 32px 24px;
    text-align: center;
    box-shadow: var(--fcc-shadow-soft);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.team-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--fcc-shadow);
    border-color: rgba(159, 29, 47, 0.15);
}
.team-photo-placeholder {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: var(--fcc-blue-soft);
    color: var(--fcc-blue);
    display: grid;
    place-items: center;
    font-size: 2.2rem;
    margin: 0 auto 20px;
    box-shadow: var(--fcc-shadow-soft);
    overflow: hidden;
    border: 4px solid #fff;
    outline: 1px solid rgba(226, 232, 240, .95);
}
.team-photo-placeholder.has-photo {
    background: #fff;
}
.team-photo-placeholder img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.team-card h3 {
    font-family: Manrope, Inter, sans-serif;
    margin-top: 0;
    margin-bottom: 6px;
    color: var(--fcc-gray-900);
    font-size: 1.25rem;
}
.team-role {
    display: block;
    font-size: 0.76rem;
    font-weight: 800;
    color: var(--fcc-red);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 14px;
}
.team-card p {
    color: var(--fcc-gray-500);
    margin: 0;
    font-size: 0.94rem;
    line-height: 1.6;
}

/* Contacto Page Split Grid */
.contacto-grid {
    display: grid;
    grid-template-columns: 1fr 450px;
    gap: 50px;
    margin-bottom: 92px;
    align-items: start;
}
.contacto-info-card {
    display: flex;
    gap: 20px;
    background: #fff;
    padding: 24px;
    border: 1px solid rgba(226, 232, 240, 0.8);
    border-radius: 20px;
    box-shadow: var(--fcc-shadow-soft);
    margin-bottom: 18px;
    transition: all 0.35s ease;
}
.contacto-info-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--fcc-shadow);
}
.info-icon {
    width: 46px;
    height: 46px;
    background: var(--fcc-blue-soft);
    border-radius: 14px;
    display: grid;
    place-items: center;
    font-size: 1.3rem;
    color: var(--fcc-blue);
    flex-shrink: 0;
}
.info-content h3 {
    font-family: Manrope, Inter, sans-serif;
    margin-top: 0;
    margin-bottom: 6px;
    font-size: 1.15rem;
    color: var(--fcc-gray-900);
}
.info-content p {
    margin: 0;
    color: var(--fcc-gray-500);
    line-height: 1.5;
    font-size: 0.96rem;
}
.info-content p a {
    color: inherit;
    font-weight: 700;
}
.info-content p a:hover {
    color: var(--fcc-red);
}

.contacto-map-wrapper {
    border-radius: 26px;
    overflow: hidden;
    border: 1px solid rgba(226, 232, 240, 0.9);
    box-shadow: var(--fcc-shadow);
    margin-top: 28px;
    filter: grayscale(0.85) contrast(1.1) brightness(0.96); /* Elegant medical grayscale overlay */
    transition: all 0.4s ease;
}
.contacto-map-wrapper:hover {
    filter: grayscale(0) contrast(1); /* Color reveals on hover */
}
.contacto-map-wrapper iframe {
    display: block;
}

.contacto-form-card {
    background: #fff;
    border: 1px solid rgba(226, 232, 240, 0.8);
    border-radius: 26px;
    padding: 38px;
    box-shadow: var(--fcc-shadow);
    position: sticky;
    top: 110px;
}
.contacto-form-card h2 {
    font-family: Manrope, Inter, sans-serif;
    font-size: 1.6rem;
    color: var(--fcc-gray-900);
    margin-top: 0;
    margin-bottom: 10px;
}
.contacto-form-card p {
    color: var(--fcc-gray-500);
    margin: 0;
    line-height: 1.5;
    font-size: 0.96rem;
}

/* Responsividad para Plantillas */
@media(max-width:980px) {
    .contacto-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .contacto-form-card {
        position: static;
    }
    .nosotros-mv-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .about-link-grid,
    .about-context-grid,
    .institutional-hero__grid,
    .institutional-story-grid,
    .program-grid,
    .education-grid,
    .question-grid,
    .institutional-milestones,
    .institutional-proof-grid,
    .program-steps {
        grid-template-columns: 1fr;
    }
    .institutional-copy {
        columns: 1;
    }
    .institutional-hero {
        padding: 72px 0 48px;
    }
    .team-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

@media(max-width:640px) {
    .timeline-line {
        left: 15px;
    }
    .timeline-item {
        width: 100%;
        left: 0 !important;
        text-align: left !important;
        padding-left: 36px !important;
        padding-right: 0 !important;
    }
    .timeline-item.left .timeline-dot,
    .timeline-item.right .timeline-dot {
        left: 6px !important;
    }
}

/* --- SITE TOP BAR & BACK TO TOP FLOATING BUTTON STYLES --- */
.site-top-bar {
    background: var(--fcc-blue, #3e61a5);
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 600;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.top-bar-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 40px;
    padding: 6px 16px;
    max-width: var(--fcc-container, 1180px);
    margin: 0 auto;
}
.top-bar-info {
    display: flex;
    align-items: center;
    gap: 8px;
}
.top-bar-info a {
    color: #ffffff;
    font-weight: 700;
    text-decoration: none;
    transition: opacity 0.2s;
}
.top-bar-info a:hover {
    opacity: 0.8;
}
.top-bar-icon {
    color: var(--fcc-gold, #c9a44b);
}
.top-bar-social {
    display: flex;
    gap: 16px;
    align-items: center;
}
.top-bar-social a {
    color: #ffffff;
    opacity: 0.8;
    transition: all 0.2s ease;
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;
}
.top-bar-social a:hover {
    opacity: 1;
    color: var(--fcc-gold, #c9a44b);
}
@media (max-width: 768px) {
    .top-bar-inner {
        flex-direction: column;
        gap: 8px;
        text-align: center;
        padding: 10px 16px;
    }
}

.fcc-back-to-top {
    position: fixed;
    right: 20px;
    bottom: 92px; /* Placed above the WhatsApp floating button */
    z-index: 110;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: #ffffff;
    color: var(--fcc-blue, #3e61a5);
    border: 1px solid var(--fcc-gray-100, #eef1f5);
    box-shadow: 0 4px 15px rgba(15,23,42,0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}
.fcc-back-to-top.show {
    opacity: 1;
    visibility: visible;
}
.fcc-back-to-top:hover {
    background: var(--fcc-blue, #3e61a5);
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(11,95,143,0.2);
}
.fcc-back-to-top svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
    transition: transform 0.2s ease;
}

/* WhatsApp Tooltip Bubble addition */
.whatsapp-float__bubble {
    position: absolute;
    right: 72px;
    top: 50%;
    transform: translateY(-50%) translateX(10px);
    background: #ffffff;
    color: #1e293b;
    padding: 8px 14px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
    box-shadow: 0 4px 15px rgba(15,23,42,0.12);
    border: 1px solid var(--fcc-gray-100, #eef1f5);
    opacity: 0;
    transition: all 0.3s ease;
    pointer-events: none;
    line-height: 1.4;
}
.whatsapp-float:hover .whatsapp-float__bubble {
    opacity: 1;
    transform: translateY(-50%) translateX(0);
}
@media (max-width: 640px) {
    .whatsapp-float__bubble {
        display: none !important;
    }
}

/* --- PREMIUM OVERFLOW SAVES, BLOG AND CONTACT ELEVATIONS --- */

/* 1. Global word wrapping and text-overflow protection */
body, h1, h2, h3, h4, h5, h6, p, a, span, strong, div, li, td, textarea, input, label {
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-word;
}

/* Ensure emails, phones, and long links wrap instead of breaking containers */
.contacto-info-card p,
.contacto-info-card a,
.contact-list a,
.site-footer p {
    word-break: break-all;
}

.fcc-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
}

/* 2. Premium Contact Page Forms & Fields styling */
.contacto-form-card .footer-form label span {
    color: var(--fcc-gray-700);
}
.contacto-form-card .footer-form input,
.contacto-form-card .footer-form textarea {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    color: var(--fcc-gray-900);
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.02);
    border-radius: 12px;
    padding: 14px;
    transition: all 0.25s ease;
}
.contacto-form-card .footer-form input::placeholder,
.contacto-form-card .footer-form textarea::placeholder {
    color: var(--fcc-gray-500);
    opacity: 0.7;
}
.contacto-form-card .footer-form input:focus,
.contacto-form-card .footer-form textarea:focus {
    border-color: var(--fcc-blue) !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 4px rgba(11, 95, 143, 0.12) !important;
    outline: none !important;
    color: var(--fcc-gray-900) !important;
}

/* 3. Blog post card elevations */
.post-card {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.post-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--fcc-shadow) !important;
    border-color: rgba(11, 95, 143, 0.2) !important;
}
.post-card__body .eyebrow {
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--fcc-red);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 12px;
}
.post-card__body h3 {
    font-size: 1.25rem !important;
    font-weight: 800 !important;
    margin: 0 0 12px 0 !important;
    line-height: 1.35 !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.post-card__body h3 a {
    color: var(--fcc-gray-900);
    transition: color 0.2s ease;
}
.post-card__body h3 a:hover {
    color: var(--fcc-blue);
}
.post-card__body p {
    font-size: 0.92rem !important;
    color: var(--fcc-gray-500) !important;
    line-height: 1.6 !important;
    margin-bottom: 20px !important;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.post-card__body .text-link {
    font-size: 0.88rem !important;
    font-weight: 800 !important;
    color: var(--fcc-blue) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    transition: gap 0.25s ease, color 0.2s ease !important;
}
.post-card__body .text-link::after {
    content: "→" !important;
    display: inline-block;
    transition: transform 0.25s ease !important;
}
.post-card__body .text-link:hover {
    color: var(--fcc-red) !important;
}
.post-card__body .text-link:hover::after {
    transform: translateX(5px) !important;
}

/* --- PREMIUM MAGAZINE BLOG & PAGINATION --- */

/* Featured Blog Card */
.featured-post-card {
    display: grid;
    grid-template-columns: 1.25fr 0.75fr;
    gap: 48px;
    background: #ffffff;
    border: 1px solid rgba(226, 232, 240, 0.85);
    border-radius: 28px;
    overflow: hidden;
    margin-bottom: 56px;
    box-shadow: var(--fcc-shadow-soft);
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.featured-post-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 30px 60px rgba(15, 23, 42, 0.12);
    border-color: rgba(159, 29, 47, 0.18);
}
.featured-post-card__media {
    height: 460px;
    background: linear-gradient(135deg, var(--fcc-blue-soft), #fff0f2);
    overflow: hidden;
    position: relative;
    display: block;
}
.featured-post-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}
.featured-post-card:hover .featured-post-card__media img {
    transform: scale(1.03);
}
.featured-post-card__placeholder {
    height: 100%;
    display: grid;
    place-items: center;
    font-size: 5rem;
    color: var(--fcc-red);
}
.featured-post-card__body {
    padding: 48px 48px 48px 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}
.featured-post-card__body .eyebrow {
    margin-bottom: 16px;
}
.featured-post-card__body h2 {
    font-family: Manrope, Inter, sans-serif;
    font-size: 2.2rem;
    line-height: 1.15;
    margin-top: 0;
    margin-bottom: 20px;
    letter-spacing: -0.04em;
    font-weight: 800;
}
.featured-post-card__body h2 a {
    color: var(--fcc-gray-900);
    transition: color 0.25s ease;
}
.featured-post-card__body h2 a:hover {
    color: var(--fcc-red);
}
.featured-post-card__body p {
    color: var(--fcc-gray-700);
    font-size: 1.06rem;
    line-height: 1.75;
    margin-top: 0;
    margin-bottom: 30px;
}
.featured-post-card__body .btn {
    padding: 14px 28px;
    font-size: 0.96rem;
}

/* Premium Floating Pagination */
.pagination {
    margin-top: 56px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
}
.pagination .screen-reader-text {
    display: none !important;
}
.pagination .nav-links {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f8fafc;
    border: 1px solid var(--fcc-gray-100);
    padding: 8px 12px;
    border-radius: 999px;
    box-shadow: var(--fcc-shadow-soft);
}
.pagination .page-numbers {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    font-size: 0.94rem;
    font-weight: 800;
    color: var(--fcc-gray-700);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    border: 1px solid transparent;
}
.pagination a.page-numbers:hover {
    background: var(--fcc-blue-soft);
    color: var(--fcc-blue);
    transform: translateY(-2px);
}
.pagination .page-numbers.current {
    background: var(--fcc-red);
    color: #ffffff !important;
    box-shadow: 0 8px 20px rgba(159, 29, 47, 0.3);
}
.pagination .page-numbers.prev,
.pagination .page-numbers.next {
    width: auto;
    padding: 0 20px;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid var(--fcc-gray-100);
    color: var(--fcc-gray-700);
}
.pagination .page-numbers.prev:hover,
.pagination .page-numbers.next:hover {
    background: var(--fcc-blue);
    color: #ffffff !important;
    border-color: var(--fcc-blue);
    box-shadow: 0 8px 16px rgba(11, 95, 143, 0.2);
}
.pagination .page-numbers.dots {
    color: var(--fcc-gray-500);
    cursor: default;
}

/* Card Visual Improvements */
.post-card {
    border: 1px solid rgba(226, 232, 240, 0.8) !important;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border-radius: 24px !important;
    box-shadow: var(--fcc-shadow-soft) !important;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.post-card:hover {
    transform: translateY(-8px) !important;
    box-shadow: 0 24px 48px rgba(15, 23, 42, 0.12) !important;
    border-color: rgba(159, 29, 47, 0.18) !important;
}
.post-card__media {
    overflow: hidden;
    position: relative;
}
.post-card__media img {
    transition: transform 0.4s ease !important;
}
.post-card:hover .post-card__media img {
    transform: scale(1.05) !important;
}

/* Responsive Adaptations */
@media(max-width: 980px) {
    .featured-post-card {
        grid-template-columns: 1fr;
        gap: 0;
    }
    .featured-post-card__media {
        height: 320px;
    }
    .featured-post-card__body {
        padding: 32px;
    }
    .featured-post-card__body h2 {
        font-size: 1.8rem;
    }
}
@media(max-width: 640px) {
    .featured-post-card__media {
        height: 240px;
    }
    .featured-post-card__body {
        padding: 24px;
    }
    .featured-post-card__body h2 {
        font-size: 1.5rem;
        margin-bottom: 12px;
    }
    .featured-post-card__body p {
        font-size: 0.96rem;
        margin-bottom: 20px;
    }
    .pagination .nav-links {
        padding: 6px 8px;
        gap: 4px;
    }
    .pagination .page-numbers {
        width: 38px;
        height: 38px;
        font-size: 0.88rem;
    }
    .pagination .page-numbers.prev,
    .pagination .page-numbers.next {
        padding: 0 12px;
    }
}




/* ============================================================
   TOP BAR — Rediseño completo
   ============================================================ */
.site-top-bar {
    background: linear-gradient(90deg, var(--fcc-gray-900) 0%, #1e293b 100%);
    color: #94a3b8;
    font-size: 0.82rem;
    font-weight: 600;
    padding: 9px 0;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}
.top-bar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
}
.top-bar-items {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: wrap;
}
.top-bar-item {
    display: flex;
    align-items: center;
    gap: 8px;
}
.top-bar-item__icon {
    display: flex;
    align-items: center;
    opacity: 0.7;
}
.top-bar-item__icon svg {
    width: 13px;
    height: 13px;
    fill: var(--fcc-gold);
}
.top-bar-item--highlight .top-bar-item__icon svg {
    fill: var(--fcc-red);
    width: 14px;
    height: 14px;
    opacity: 1;
}
.top-bar-phone {
    color: #e2e8f0;
    font-weight: 800;
    transition: color 0.2s;
}
.top-bar-phone:hover {
    color: #fff;
}
.top-bar-social {
    display: flex;
    align-items: center;
    gap: 14px;
}
.top-bar-social-link {
    display: flex;
    align-items: center;
    color: #64748b;
    transition: color 0.2s ease;
}
.top-bar-social-link svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}
.top-bar-social-link:hover {
    color: #e2e8f0;
}
@media(max-width: 980px) {
    .top-bar-item--address,
    .top-bar-item--schedule {
        display: none;
    }
}
@media(max-width: 640px) {
    .site-top-bar {
        display: none;
    }
}

/* ============================================================
   HEADER — Estado de scroll y mejoras
   ============================================================ */
.site-header {
    transition: box-shadow 0.3s ease, background 0.3s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.site-header.header--scrolled {
    box-shadow: 0 4px 24px rgba(15,23,42,0.10);
    background: rgba(255,255,255,0.97) !important;
}
.site-header.header--hidden {
    transform: translateY(-110%);
}
/* WhatsApp icon in header */
.wa-icon {
    width: 18px;
    height: 18px;
    fill: #25d366;
    flex-shrink: 0;
}
.btn-ghost .wa-icon {
    opacity: 0.9;
}

/* ============================================================
   SCROLL REVEAL ANIMATIONS — .fcc-reveal
   ============================================================ */
.fcc-reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1), transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
}
.fcc-reveal.fcc-revealed {
    opacity: 1;
    transform: translateY(0);
}
/* Stagger: children are observed individually, no wrapper styling needed */

/* Hero animated entrance (fires on load, not scroll) */
.hero-copy--animated .eyebrow,
.hero-copy--animated h1,
.hero-copy--animated .lead,
.hero-copy--animated .hero-actions,
.hero-copy--animated .trust-row {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.hero--animated .hero-copy--animated .eyebrow  { opacity:1;transform:none;transition-delay:0.05s; }
.hero--animated .hero-copy--animated h1         { opacity:1;transform:none;transition-delay:0.15s; }
.hero--animated .hero-copy--animated .lead      { opacity:1;transform:none;transition-delay:0.26s; }
.hero--animated .hero-copy--animated .hero-actions { opacity:1;transform:none;transition-delay:0.36s; }
.hero--animated .hero-copy--animated .trust-row { opacity:1;transform:none;transition-delay:0.46s; }
/* Hero visual slides from right */
.hero-visual {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.2s,
                transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.2s;
}
.hero-visual.fcc-revealed {
    opacity: 1;
    transform: translateX(0);
}

/* ============================================================
   HERO — Blob decoradores de fondo
   ============================================================ */
.hero-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    pointer-events: none;
    z-index: 0;
}
.hero-blob--1 {
    width: 460px;
    height: 460px;
    background: radial-gradient(circle, rgba(185,7,0,0.08) 0%, transparent 70%);
    right: -80px;
    top: -60px;
    animation: fcc-blob-drift 14s ease-in-out infinite alternate;
}
.hero-blob--2 {
    width: 380px;
    height: 380px;
    background: radial-gradient(circle, rgba(62,97,165,0.09) 0%, transparent 70%);
    left: -60px;
    bottom: -40px;
    animation: fcc-blob-drift 18s ease-in-out infinite alternate-reverse;
}
@keyframes fcc-blob-drift {
    0%   { transform: translate(0, 0) scale(1); }
    33%  { transform: translate(24px, -18px) scale(1.06); }
    66%  { transform: translate(-16px, 12px) scale(0.96); }
    100% { transform: translate(8px, 22px) scale(1.04); }
}

/* ============================================================
   HERO — Badge card secundario
   ============================================================ */
.hero-badge-card {
    position: absolute;
    right: -18px;
    top: 44px;
    background: linear-gradient(135deg, var(--fcc-blue), #2d4e8a);
    color: #fff;
    border-radius: 20px;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: 0 12px 30px rgba(62,97,165,0.30);
    font-size: 0.88rem;
    font-weight: 800;
    z-index: 2;
    animation: fcc-badge-float 4s ease-in-out infinite;
}
.hero-badge-icon {
    font-size: 1.2rem;
    animation: fcc-heartbeat 1.6s ease-in-out infinite;
}
@keyframes fcc-badge-float {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-8px); }
}

/* Hero photo card placeholder rediseño */
.hero-photo-placeholder {
    height: 488px;
    border-radius: 30px;
    background: linear-gradient(145deg, rgba(62,97,165,0.06), rgba(185,7,0,0.06));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 36px;
    color: var(--fcc-gray-700);
}
.hero-placeholder-icon {
    width: 90px;
    height: 90px;
    margin: 0 auto 20px;
}
.hero-placeholder-icon svg {
    width: 100%;
    height: 100%;
}
.hero-photo-placeholder p {
    max-width: 300px;
    font-weight: 700;
    color: var(--fcc-gray-500);
    font-size: 0.94rem;
    margin: 0;
}

/* ============================================================
   SERVICIOS — Variantes de color por tarjeta
   ============================================================ */
.service-card--red .service-icon  { background: rgba(185,7,0,0.08); color: var(--fcc-red); }
.service-card--blue .service-icon { background: var(--fcc-blue-soft); color: var(--fcc-blue); }
.service-card--gold .service-icon { background: rgba(201,164,75,0.10); color: var(--fcc-gold); }

.service-card--red  { border-top: 3px solid var(--fcc-red); }
.service-card--blue { border-top: 3px solid var(--fcc-blue); }
.service-card--gold { border-top: 3px solid var(--fcc-gold); }

/* ============================================================
   MISIÓN — Decorador bajo el título
   ============================================================ */
.mission-title-deco {
    width: 56px;
    height: 4px;
    background: linear-gradient(90deg, var(--fcc-red), var(--fcc-blue));
    border-radius: 99px;
    margin: 18px 0 0;
}

/* ============================================================
   TESTIMONIALES — Footer enriquecido
   ============================================================ */
.testi-footer {
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.testi-footer strong {
    font-family: Manrope, Inter, sans-serif;
    font-weight: 800;
    font-size: 0.95rem;
    color: var(--fcc-gray-900);
}
.testi-location {
    font-size: 0.82rem;
    color: var(--fcc-gray-500);
    font-weight: 600;
}

/* ============================================================
   ACTIVIDADES — Tarjeta enriquecida (fallback)
   ============================================================ */
.activity-card--rich {
    position: relative;
    overflow: hidden;
}
.activity-card--rich::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--fcc-blue), var(--fcc-red));
}
.activity-card__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 14px;
}
.activity-card__icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--fcc-blue-soft);
    color: var(--fcc-blue);
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.activity-card__icon svg {
    width: 18px;
    height: 18px;
}

/* ============================================================
   CTA BANNER — Nueva sección antes de "Cómo ayudar"
   ============================================================ */
.cta-banner {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, var(--fcc-red-dark) 0%, var(--fcc-red) 50%, #c42500 100%);
    color: #fff;
    padding: 80px 0;
}
.cta-banner__bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.cta-banner__blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(55px);
}
.cta-banner__blob--1 {
    width: 340px;
    height: 340px;
    background: rgba(255,255,255,0.06);
    top: -80px;
    right: 10%;
}
.cta-banner__blob--2 {
    width: 260px;
    height: 260px;
    background: rgba(0,0,0,0.12);
    bottom: -60px;
    left: 5%;
}
.cta-banner__inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1.4fr 0.6fr;
    gap: 48px;
    align-items: center;
}
.cta-banner__tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.25);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 6px 14px;
    border-radius: 999px;
    margin-bottom: 16px;
}
.cta-banner__title {
    font-family: Manrope, Inter, sans-serif;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.08;
    letter-spacing: -0.04em;
    margin: 0 0 16px;
    color: #fff;
}
.cta-banner__text {
    font-size: 1.05rem;
    color: rgba(255,255,255,0.85);
    line-height: 1.7;
    margin: 0;
    max-width: 640px;
}
.cta-banner__actions {
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-items: flex-start;
}
/* White solid button for CTA banner */
.btn-cta-white {
    background: #fff;
    color: var(--fcc-red);
    font-weight: 900;
    box-shadow: 0 16px 40px rgba(0,0,0,0.20);
    border-color: transparent;
}
.btn-cta-white:hover {
    background: #fff;
    color: var(--fcc-red-dark);
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 22px 50px rgba(0,0,0,0.28);
}
/* Outline button for CTA banner */
.btn-cta-outline {
    background: transparent;
    color: #fff;
    border-color: rgba(255,255,255,0.4);
    font-weight: 800;
}
.btn-cta-outline:hover {
    background: rgba(255,255,255,0.1);
    border-color: rgba(255,255,255,0.7);
    color: #fff;
}
@media(max-width: 980px) {
    .cta-banner__inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .cta-banner__actions {
        flex-direction: row;
        flex-wrap: wrap;
    }
}
@media(max-width: 640px) {
    .cta-banner {
        padding: 60px 0;
    }
    .cta-banner__actions {
        flex-direction: column;
        width: 100%;
    }
    .cta-banner__actions .btn {
        width: 100%;
        justify-content: center;
    }
}

/* ============================================================
   IMPACT STRIP — Separador con línea diagonal
   ============================================================ */
.impact-box {
    position: relative;
}
.impact-box::after {
    content: "";
    position: absolute;
    right: 0;
    top: 25%;
    height: 50%;
    width: 1px;
    background: rgba(255,255,255,0.18);
}
.impact-box:last-child::after {
    display: none;
}

/* ============================================================
   RESPONSIVE — Nuevos elementos
   ============================================================ */
@media(max-width: 980px) {
    .hero-badge-card {
        right: 10px;
        top: 20px;
        font-size: 0.78rem;
        padding: 10px 14px;
    }
    .mission-values {
        grid-template-columns: 1fr;
    }
}
@media(max-width: 640px) {
    .hero-badge-card {
        display: none; /* Ocultar en móvil para evitar desbordamiento */
    }
    .testi-footer {
        margin-top: 14px;
    }
}

/* ============================================================
   HOME VISUAL DEPTH — Texturas, foto institucional y capas
   ============================================================ */
.home-main {
    background:
        linear-gradient(90deg, rgba(62,97,165,0.035) 1px, transparent 1px),
        linear-gradient(0deg, rgba(62,97,165,0.03) 1px, transparent 1px),
        #ffffff;
    background-size: 44px 44px, 44px 44px, auto;
}
.home-main > section {
    position: relative;
    isolation: isolate;
}
.home-main > section > .container {
    position: relative;
    z-index: 2;
}
.hero {
    background:
        linear-gradient(115deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.86) 46%, rgba(237,242,250,0.72) 100%),
        repeating-linear-gradient(135deg, rgba(185,7,0,0.045) 0 1px, transparent 1px 18px),
        var(--fcc-home-photo) center right / cover no-repeat !important;
}
.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255,255,255,0.92), rgba(255,255,255,0.66) 52%, rgba(255,255,255,0.2)),
        linear-gradient(0deg, rgba(17,24,39,0.04), rgba(17,24,39,0));
    z-index: 0;
    pointer-events: none;
}
.hero::after {
    display: none !important;
}
.hero-blob,
.cta-banner__blob {
    display: none !important;
}
.hero-copy {
    background: rgba(255,255,255,0.7);
    border: 1px solid rgba(255,255,255,0.78);
    box-shadow: 0 24px 70px rgba(15,23,42,0.08);
    backdrop-filter: blur(10px);
    border-radius: 8px;
    padding: clamp(24px, 4vw, 44px);
}
.hero-photo-card {
    border-radius: 8px !important;
    border: 10px solid #ffffff !important;
    box-shadow: 0 30px 80px rgba(15,23,42,0.22) !important;
}
.hero-photo-card.has-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, transparent 48%, rgba(15,23,42,0.34)),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.08) 0 1px, transparent 1px 80px);
    pointer-events: none;
}
.floating-impact-card,
.hero-badge-card {
    border-radius: 8px !important;
}
.impact-strip {
    background:
        linear-gradient(135deg, rgba(143,5,0,0.95), rgba(185,7,0,0.92)),
        repeating-linear-gradient(45deg, rgba(255,255,255,0.1) 0 1px, transparent 1px 16px) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.18);
}
.impact-box {
    background: rgba(255,255,255,0.04);
}
.mission-section {
    overflow: hidden;
    background:
        linear-gradient(90deg, #ffffff 0%, rgba(255,255,255,0.96) 55%, rgba(237,242,250,0.78) 100%),
        repeating-linear-gradient(0deg, rgba(51,65,85,0.04) 0 1px, transparent 1px 28px) !important;
}
.mission-section::before {
    content: "";
    position: absolute;
    right: max(24px, calc((100vw - var(--fcc-container)) / 2));
    top: 54px;
    bottom: 54px;
    width: min(34vw, 420px);
    background:
        linear-gradient(180deg, rgba(62,97,165,0.18), rgba(185,7,0,0.12)),
        var(--fcc-home-photo) center / cover no-repeat;
    border-radius: 8px;
    opacity: 0.3;
    filter: saturate(0.92);
    z-index: 0;
}
.mission-section::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(62,97,165,0.2), transparent);
}
.mission-values span {
    border-radius: 8px !important;
}
.services-section {
    background:
        linear-gradient(180deg, rgba(247,248,251,0.96), rgba(237,242,250,0.88)),
        linear-gradient(90deg, rgba(185,7,0,0.05) 1px, transparent 1px),
        linear-gradient(0deg, rgba(62,97,165,0.06) 1px, transparent 1px) !important;
    background-size: auto, 36px 36px, 36px 36px !important;
}
.service-card,
.post-card,
.testimonial-card,
.activity-card,
.help-card {
    border-radius: 8px !important;
}
.service-card {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.9)),
        repeating-linear-gradient(135deg, rgba(62,97,165,0.045) 0 1px, transparent 1px 18px) !important;
    box-shadow: 0 18px 45px rgba(15,23,42,0.08) !important;
}
.stories-section {
    background:
        linear-gradient(90deg, rgba(255,255,255,0.96) 0%, rgba(255,248,248,0.92) 58%, rgba(255,255,255,0.78) 100%),
        var(--fcc-home-photo) center / cover fixed no-repeat !important;
}
.stories-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(135deg, rgba(185,7,0,0.055) 0 1px, transparent 1px 22px),
        linear-gradient(180deg, rgba(255,255,255,0.84), rgba(255,255,255,0.78));
    z-index: 0;
}
.testimonial-card {
    background: rgba(255,255,255,0.88) !important;
    backdrop-filter: blur(8px);
}
.posts-section {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(247,248,251,0.96)),
        repeating-linear-gradient(90deg, rgba(15,23,42,0.035) 0 1px, transparent 1px 26px) !important;
}
.posts-section .post-card {
    background:
        linear-gradient(180deg, #ffffff, #fbfdff),
        repeating-linear-gradient(0deg, rgba(15,23,42,0.035) 0 1px, transparent 1px 22px) !important;
}
.activities-section {
    background:
        linear-gradient(135deg, rgba(237,242,250,0.92), rgba(255,255,255,0.95) 52%, rgba(255,250,243,0.9)),
        repeating-linear-gradient(45deg, rgba(62,97,165,0.05) 0 1px, transparent 1px 18px) !important;
}
.activities-section::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 160px;
    bottom: 72px;
    width: 2px;
    background: linear-gradient(180deg, transparent, rgba(62,97,165,0.24), transparent);
    z-index: 0;
}
.cta-banner {
    background:
        linear-gradient(90deg, rgba(15,23,42,0.78), rgba(143,5,0,0.9)),
        var(--fcc-home-photo) center / cover no-repeat !important;
}
.cta-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(135deg, rgba(255,255,255,0.09) 0 1px, transparent 1px 18px),
        linear-gradient(180deg, rgba(15,23,42,0.08), rgba(15,23,42,0.28));
    z-index: 0;
}
.help-section {
    background:
        linear-gradient(120deg, rgba(29,53,101,0.96), rgba(62,97,165,0.88)),
        var(--fcc-home-photo) center / cover fixed no-repeat !important;
}
.help-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(90deg, rgba(255,255,255,0.06) 0 1px, transparent 1px 24px),
        linear-gradient(180deg, rgba(15,23,42,0.22), rgba(15,23,42,0.14));
    z-index: 0;
}
.partners-section {
    background:
        linear-gradient(180deg, #ffffff, #f7f8fb),
        repeating-linear-gradient(135deg, rgba(201,164,75,0.07) 0 1px, transparent 1px 20px) !important;
}
.logo-item,
.logo-carousel div {
    border-radius: 8px !important;
    box-shadow: 0 12px 30px rgba(15,23,42,0.06);
}
@media(max-width: 980px) {
    .hero-copy {
        padding: 24px;
    }
    .mission-section::before,
    .activities-section::before {
        display: none;
    }
    .stories-section,
    .help-section {
        background-attachment: scroll !important;
    }
}
@media(max-width: 640px) {
    .hero {
        background-position: center !important;
    }
    .hero-copy {
        background: rgba(255,255,255,0.86);
    }
}

/* ============================================================
   SERVICES RESTRUCTURE + IMAGE FIT FIXES
   ============================================================ */
.services-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.65fr);
    gap: 28px;
    align-items: stretch;
    margin-bottom: 28px;
}
.services-intro,
.services-feature {
    border-radius: 8px;
}
.services-intro {
    background: rgba(255,255,255,0.78);
    border: 1px solid rgba(226,232,240,0.9);
    padding: clamp(26px, 4vw, 44px);
    box-shadow: 0 18px 46px rgba(15,23,42,0.07);
}
.services-intro h2 {
    font-family: Manrope, Inter, sans-serif;
    font-size: clamp(2rem, 4vw, 3.2rem);
    line-height: 1.06;
    letter-spacing: 0;
    margin: 0 0 16px;
    color: var(--fcc-gray-900);
    max-width: 820px;
}
.services-intro p {
    color: var(--fcc-gray-700);
    font-size: 1.06rem;
    max-width: 760px;
    margin: 0;
}
.services-path {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin-top: 30px;
    overflow: hidden;
    border-radius: 8px;
    border: 1px solid rgba(62,97,165,0.16);
}
.services-path span {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 58px;
    padding: 14px 16px;
    background: linear-gradient(180deg, #ffffff, #f8fafc);
    color: var(--fcc-blue);
    font-weight: 900;
    font-size: 0.9rem;
}
.services-path span::before {
    content: "";
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--fcc-red);
    margin-right: 10px;
    box-shadow: 0 0 0 5px rgba(185,7,0,0.08);
    flex: 0 0 auto;
}
.services-feature {
    position: relative;
    overflow: hidden;
    min-height: 100%;
    padding: 0;
    color: #fff;
    background: linear-gradient(145deg, rgba(62,97,165,0.96), rgba(29,53,101,0.96)) !important;
    box-shadow: 0 24px 58px rgba(15,23,42,0.18);
}
.services-feature::after {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(135deg, rgba(255,255,255,0.08) 0 1px, transparent 1px 18px);
    pointer-events: none;
}
.services-feature > * {
    position: relative;
    z-index: 1;
}
.services-feature__media {
    min-height: 190px;
    background:
        linear-gradient(180deg, rgba(17,24,39,0), rgba(17,24,39,0.32)),
        var(--fcc-services-photo) center / cover no-repeat;
}
.services-feature__tag {
    display: inline-flex;
    border: 1px solid rgba(255,255,255,0.28);
    background: rgba(255,255,255,0.12);
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 0.74rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 18px;
    margin-left: 30px;
    margin-top: 28px;
}
.services-feature h3 {
    font-family: Manrope, Inter, sans-serif;
    font-size: 1.55rem;
    line-height: 1.18;
    margin: 0 30px 14px;
}
.services-feature p {
    color: rgba(255,255,255,0.82);
    margin: 0 30px 22px;
}
.services-feature .btn {
    margin: 0 30px 30px;
}
.services-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}
.service-card {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    padding: 26px !important;
}
.service-card__list {
    list-style: none;
    display: grid;
    gap: 8px;
    padding: 0;
    margin: 18px 0 20px;
}
.service-card__list li {
    display: flex;
    gap: 8px;
    color: var(--fcc-gray-700);
    font-size: 0.9rem;
    font-weight: 700;
}
.service-card__list li::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--fcc-gold);
    margin-top: 0.62em;
    flex: 0 0 auto;
}
.service-card .text-link {
    margin-top: auto;
}
.post-card__media,
.featured-post-card__media {
    aspect-ratio: 16 / 10;
    height: auto !important;
    background: linear-gradient(135deg, var(--fcc-blue-soft), #fff0f2);
}

.section-heading--visual {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 210px auto;
    align-items: center;
}
.section-heading__copy {
    min-width: 0;
}
.section-heading__visual {
    width: 210px;
    aspect-ratio: 4 / 3;
    border-radius: 24px;
    background-size: cover;
    background-position: center;
    box-shadow: 0 18px 42px rgba(15,23,42,0.12);
    border: 6px solid #fff;
}
.section-heading__visual--stories {
    background-image: linear-gradient(180deg, rgba(255,255,255,0), rgba(185,7,0,0.16)), var(--fcc-stories-photo);
}
.section-heading__visual--activities {
    background-image: linear-gradient(180deg, rgba(255,255,255,0), rgba(62,97,165,0.18)), var(--fcc-activities-photo);
}
.featured-post-card__media {
    min-height: 100%;
}
.post-card__media img,
.featured-post-card__media img,
.post-card__media .wp-post-image,
.featured-post-card__media .wp-post-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
}
.single-featured img,
.story-featured-img,
.activity-featured-img {
    width: 100%;
    max-height: 620px;
    object-fit: cover;
    object-position: center;
}
.custom-logo {
    object-fit: contain;
}
@media(max-width: 1100px) {
    .services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media(max-width: 900px) {
    .services-layout {
        grid-template-columns: 1fr;
    }
    .section-heading--visual {
        grid-template-columns: 1fr;
    }
    .section-heading__visual {
        display: none;
    }
}
@media(max-width: 640px) {
    .services-path,
    .services-grid {
        grid-template-columns: 1fr;
    }
    .services-feature,
    .services-intro {
        padding: 24px;
    }
}

/* ============================================================
   HOME SOFTENING PASS — menos foto repetida, más calidez
   ============================================================ */
.home-main {
    background:
        radial-gradient(circle at 18% 8%, rgba(237,242,250,0.75), transparent 30%),
        radial-gradient(circle at 92% 38%, rgba(255,250,243,0.9), transparent 28%),
        #ffffff;
}
.hero {
    background:
        linear-gradient(110deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.88) 48%, rgba(237,242,250,0.42) 100%),
        var(--fcc-home-photo) center right / cover no-repeat !important;
}
.hero::before {
    background: linear-gradient(90deg, rgba(255,255,255,0.9), rgba(255,255,255,0.52) 58%, rgba(255,255,255,0.12));
}
.hero-copy {
    background: rgba(255,255,255,0.82);
    border-radius: 30px;
    box-shadow: 0 22px 58px rgba(15,23,42,0.08);
}
.hero-photo-card {
    border-radius: 30px !important;
    border: 8px solid #ffffff !important;
}
.floating-impact-card,
.hero-badge-card,
.services-intro,
.services-feature,
.service-card,
.post-card,
.testimonial-card,
.activity-card,
.help-card,
.logo-item,
.logo-carousel div {
    border-radius: 22px !important;
}
.mission-section,
.services-section,
.stories-section,
.posts-section,
.activities-section,
.partners-section {
    background-image: none !important;
}
.mission-section {
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%) !important;
}
.mission-section::before {
    opacity: 0.12;
    border-radius: 28px;
}
.services-section {
    background:
        radial-gradient(circle at 12% 18%, rgba(237,242,250,0.95), transparent 34%),
        linear-gradient(180deg, #f8fafc 0%, #ffffff 100%) !important;
}
.stories-section {
    background:
        radial-gradient(circle at 8% 20%, rgba(185,7,0,0.07), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #fff8f8 100%) !important;
}
.posts-section {
    background: linear-gradient(180deg, #f7f8fb 0%, #ffffff 100%) !important;
}
.activities-section {
    background:
        radial-gradient(circle at 90% 18%, rgba(62,97,165,0.1), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #f7f8fb 100%) !important;
}
.activities-section::before {
    display: none;
}
.help-section {
    background:
        radial-gradient(circle at 16% 22%, rgba(255,255,255,0.13), transparent 28%),
        linear-gradient(135deg, #3e61a5, #1d3565) !important;
}
.help-section::before {
    display: none;
}
.partners-section {
    background: linear-gradient(180deg, #ffffff 0%, #f7f8fb 100%) !important;
}
.cta-banner {
    background:
        linear-gradient(90deg, rgba(143,5,0,0.94), rgba(185,7,0,0.82)),
        var(--fcc-cta-photo) center / cover no-repeat !important;
}
.cta-banner::before {
    background: linear-gradient(180deg, rgba(15,23,42,0.06), rgba(15,23,42,0.16));
}
.services-intro {
    background: #ffffff;
    box-shadow: 0 18px 44px rgba(15,23,42,0.06);
}
.services-feature {
    background:
        linear-gradient(145deg, rgba(62,97,165,0.96), rgba(29,53,101,0.96)) !important;
}
.services-feature::after {
    background:
        radial-gradient(circle at 80% 12%, rgba(255,255,255,0.14), transparent 28%),
        radial-gradient(circle at 12% 88%, rgba(201,164,75,0.18), transparent 30%);
}
.services-path {
    border-radius: 18px;
}
.service-card {
    background: #ffffff !important;
    box-shadow: 0 16px 40px rgba(15,23,42,0.07) !important;
}
.service-card:hover {
    transform: translateY(-5px) !important;
}
.post-card__media,
.featured-post-card__media {
    border-radius: 22px 22px 0 0;
}
@media(max-width: 640px) {
    .hero-copy,
    .hero-photo-card,
    .services-intro,
    .services-feature,
    .service-card,
    .post-card,
    .testimonial-card,
    .activity-card,
    .help-card {
        border-radius: 20px !important;
    }
}

/* ============================================================
   2026 PROFESSIONAL HOMEPAGE REDESIGN PASS
   ============================================================ */
:root {
    --fcc-ink: #121826;
    --fcc-muted: #667085;
    --fcc-line: rgba(18, 24, 38, 0.08);
    --fcc-surface: #ffffff;
    --fcc-surface-soft: #f5f7fb;
    --fcc-card-shadow: 0 18px 50px rgba(18, 24, 38, 0.09);
    --fcc-card-shadow-hover: 0 26px 70px rgba(18, 24, 38, 0.14);
}

body {
    color: var(--fcc-ink);
    background:
        radial-gradient(circle at 10% 0%, rgba(62, 97, 165, 0.08), transparent 34%),
        linear-gradient(180deg, #ffffff 0%, #f7f9fd 100%);
}

html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

.container {
    width: min(100% - 44px, var(--fcc-container));
}

.section-pad {
    padding: clamp(78px, 8vw, 118px) 0;
}

.btn {
    border-radius: 8px !important;
    min-height: 44px;
    letter-spacing: 0;
}

.btn-primary {
    background: linear-gradient(135deg, #c9130b, #8f0500);
    box-shadow: 0 14px 28px rgba(185, 7, 0, 0.22);
}

.btn-secondary {
    background: #203f7c;
}

.btn-ghost {
    background: #eef4ff;
    border-color: rgba(62, 97, 165, 0.15);
    color: #203f7c;
}

.eyebrow {
    color: var(--fcc-red);
    letter-spacing: 0.09em;
    margin-bottom: 14px;
}

.site-top-bar {
    background: #111827 !important;
    border: 0 !important;
}

.top-bar-inner {
    min-height: 34px !important;
}

.top-bar-item,
.top-bar-social-link {
    opacity: 0.9;
}

.site-header {
    background: rgba(255, 255, 255, 0.88) !important;
    border-bottom: 1px solid rgba(18, 24, 38, 0.07) !important;
    box-shadow: 0 14px 32px rgba(18, 24, 38, 0.05);
}

.header-inner {
    min-height: 76px;
}

.custom-logo {
    max-height: 54px;
}

.main-navigation ul {
    gap: 28px;
}

.main-navigation a {
    color: #1f2937;
    font-size: 0.92rem;
}

.hero {
    min-height: calc(100vh - 110px);
    display: grid;
    align-items: center;
    padding: 52px 0 0;
    background:
        linear-gradient(100deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.93) 42%, rgba(245, 247, 251, 0.7) 100%),
        var(--fcc-home-photo) center right / cover no-repeat !important;
}

.hero::before {
    background:
        linear-gradient(90deg, #ffffff 0%, rgba(255, 255, 255, 0.9) 48%, rgba(255, 255, 255, 0.42) 100%),
        radial-gradient(circle at 68% 16%, rgba(62, 97, 165, 0.16), transparent 27%);
}

.hero-grid {
    grid-template-columns: minmax(0, 0.92fr) minmax(420px, 0.88fr);
    gap: clamp(34px, 5vw, 76px);
    align-items: center;
}

.hero-copy {
    padding: 38px 40px !important;
    background: rgba(255, 255, 255, 0.9) !important;
    border: 1px solid rgba(18, 24, 38, 0.07) !important;
    border-radius: 10px !important;
    box-shadow: 0 24px 70px rgba(18, 24, 38, 0.11) !important;
}

.hero h1 {
    font-size: 4.1rem;
    letter-spacing: -0.04em;
    line-height: 0.98;
}

.lead {
    color: #475467;
    font-size: 1.06rem;
    line-height: 1.68;
}

.trust-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 28px;
}

.trust-row span {
    background: #f7f9fd;
    border: 1px solid var(--fcc-line);
    border-radius: 8px;
    padding: 10px 12px;
    color: #344054;
    font-size: 0.84rem;
}

.hero-photo-card.has-image,
.hero-photo-card {
    min-height: min(58vh, 610px) !important;
    border: 0 !important;
    border-radius: 14px !important;
    box-shadow: 0 34px 90px rgba(18, 24, 38, 0.18) !important;
    overflow: hidden;
}

.hero-photo-card::before {
    background:
        linear-gradient(180deg, rgba(18, 24, 38, 0.02) 0%, rgba(18, 24, 38, 0.42) 100%),
        linear-gradient(90deg, rgba(255, 255, 255, 0.08), transparent 38%) !important;
}

.floating-impact-card {
    left: 22px !important;
    bottom: 22px !important;
    max-width: 245px;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-left: 0;
    border-radius: 10px !important;
}

.hero-badge-card {
    right: 22px !important;
    top: 22px !important;
    border-radius: 8px !important;
    background: rgba(32, 63, 124, 0.94);
    box-shadow: 0 14px 32px rgba(32, 63, 124, 0.28);
}

.hero-badge-icon {
    width: 18px;
    height: 18px;
    display: grid;
    place-items: center;
    animation: none !important;
}

.impact-strip {
    background: #b90700 !important;
}

.impact-grid {
    gap: 0;
}

.impact-grid div {
    padding: 32px 30px;
}

.impact-grid strong {
    letter-spacing: -0.03em;
}

.mission-section {
    background:
        radial-gradient(circle at 86% 16%, rgba(62, 97, 165, 0.12), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #f8fafc 100%) !important;
}

.mission-section::before,
.section-heading__visual {
    display: none !important;
}

.split-grid {
    grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
    gap: clamp(40px, 6vw, 86px);
}

.split-grid h2,
.section-heading h2 {
    letter-spacing: -0.025em;
}

.prose-large {
    color: #475467;
    font-size: 1.05rem;
}

.mission-values {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.mission-values span {
    min-height: 72px;
    border-radius: 10px !important;
    box-shadow: 0 12px 34px rgba(18, 24, 38, 0.06);
}

.val-icon {
    animation: none !important;
}

.services-section {
    background:
        linear-gradient(180deg, #f5f7fb 0%, #ffffff 100%) !important;
}

.services-layout {
    grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.72fr);
    gap: 22px;
    margin-bottom: 22px;
}

.services-intro,
.services-feature,
.service-card,
.post-card,
.testimonial-card,
.activity-card,
.help-card,
.logo-item,
.logo-carousel div,
.footer-form {
    border-radius: 10px !important;
}

.services-intro {
    border: 1px solid var(--fcc-line);
    box-shadow: var(--fcc-card-shadow);
}

.services-intro h2 {
    letter-spacing: -0.025em;
}

.services-path {
    border-radius: 8px !important;
}

.services-path span {
    background: #ffffff;
    gap: 9px;
    white-space: nowrap;
    font-size: 0.82rem;
}

.services-feature {
    box-shadow: 0 24px 60px rgba(32, 63, 124, 0.22);
}

.services-feature__media {
    min-height: 220px;
}

.services-grid {
    gap: 18px;
}

.service-card {
    border: 1px solid var(--fcc-line) !important;
    border-top: 0 !important;
    box-shadow: var(--fcc-card-shadow) !important;
}

.service-card::after {
    content: "";
    position: absolute;
    inset: 0;
    border-top: 4px solid var(--fcc-red);
    opacity: 0.9;
    pointer-events: none;
}

.service-card--blue::after {
    border-top-color: var(--fcc-blue);
}

.service-card--gold::after {
    border-top-color: var(--fcc-gold);
}

.service-icon {
    border-radius: 8px;
}

.stories-section {
    background:
        radial-gradient(circle at 12% 16%, rgba(185, 7, 0, 0.06), transparent 28%),
        linear-gradient(180deg, #ffffff 0%, #fffafa 100%) !important;
}

.section-heading {
    margin-bottom: 42px;
}

.section-heading--inline,
.section-heading--visual {
    display: flex !important;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
}

.section-heading__copy {
    max-width: 760px;
}

.testimonial-card {
    background: #ffffff !important;
    border: 1px solid var(--fcc-line) !important;
    border-top: 4px solid var(--fcc-red) !important;
    box-shadow: var(--fcc-card-shadow);
}

.testi-stars {
    color: var(--fcc-gold);
}

.posts-section {
    background: linear-gradient(180deg, #f7f9fd 0%, #ffffff 100%) !important;
}

.activities-section {
    background:
        radial-gradient(circle at 92% 12%, rgba(62, 97, 165, 0.1), transparent 28%),
        linear-gradient(180deg, #ffffff 0%, #f7f9fd 100%) !important;
}

.post-card {
    border: 1px solid var(--fcc-line) !important;
    box-shadow: var(--fcc-card-shadow);
}

.post-card__media {
    background:
        radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.95), transparent 20%),
        linear-gradient(135deg, rgba(62, 97, 165, 0.12), rgba(185, 7, 0, 0.08)) !important;
    border-radius: 10px 10px 0 0 !important;
}

.post-card__placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    color: rgba(62, 97, 165, 0.82);
}

.post-card__placeholder svg {
    width: 46%;
    max-width: 150px;
}

.post-card__body {
    padding: 24px 24px 26px;
}

.post-card__body .eyebrow {
    font-size: 0.7rem;
}

.post-card h3 {
    font-size: 1.16rem;
}

.post-card p {
    line-height: 1.62;
}

.activity-card {
    border: 1px solid var(--fcc-line) !important;
    box-shadow: var(--fcc-card-shadow);
}

.cta-banner {
    padding: clamp(74px, 8vw, 104px) 0;
    background:
        linear-gradient(90deg, rgba(126, 10, 4, 0.96), rgba(185, 7, 0, 0.86)),
        var(--fcc-cta-photo) center / cover no-repeat !important;
}

.cta-banner__inner {
    grid-template-columns: minmax(0, 1fr) auto;
}

.cta-banner__tag,
.btn-cta-white,
.btn-cta-outline {
    border-radius: 8px !important;
}

.help-section {
    background:
        radial-gradient(circle at 18% 24%, rgba(255, 255, 255, 0.12), transparent 30%),
        linear-gradient(135deg, #203f7c 0%, #345b9f 100%) !important;
}

.help-panel {
    grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
    gap: 44px;
}

.help-card {
    min-height: 128px;
    padding: 24px 26px;
}

.partners-section {
    background: #ffffff !important;
}

.logo-carousel {
    margin-top: 10px;
}

.logo-item {
    background: #ffffff;
    border: 1px solid var(--fcc-line);
    color: #475467;
}

.site-footer {
    background:
        radial-gradient(circle at 18% 0%, rgba(62, 97, 165, 0.22), transparent 28%),
        linear-gradient(180deg, #111827 0%, #080d16 100%) !important;
}

.site-footer::before {
    height: 3px;
    box-shadow: none;
}

.footer-grid {
    gap: 52px;
}

.footer-form {
    background: rgba(255, 255, 255, 0.045);
}

.post-card:hover,
.service-card:hover,
.testimonial-card:hover,
.activity-card:hover {
    box-shadow: var(--fcc-card-shadow-hover) !important;
}

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

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

    .hero-photo-card.has-image,
    .hero-photo-card {
        min-height: 460px !important;
    }
}

@media(max-width: 980px) {
    .split-grid,
    .services-layout,
    .help-panel,
    .cta-banner__inner {
        grid-template-columns: 1fr;
    }

    .trust-row,
    .mission-values {
        grid-template-columns: 1fr;
    }

    .section-heading--inline,
    .section-heading--visual {
        align-items: stretch;
        flex-direction: column;
    }
}

@media(max-width: 640px) {
    .container {
        width: min(100% - 30px, var(--fcc-container));
    }

    .section-pad {
        padding: 64px 0;
    }

    .hero {
        padding-top: 54px;
    }

    .hero h1 {
        font-size: clamp(2.5rem, 14vw, 3.35rem);
    }

    .hero-copy {
        padding: 24px !important;
    }

    .hero-photo-card.has-image,
    .hero-photo-card {
        min-height: 380px !important;
    }

    .floating-impact-card {
        left: 14px !important;
        right: 14px !important;
        bottom: 14px !important;
        max-width: none;
    }

    .impact-grid div {
        padding: 26px 22px;
    }

    .services-intro,
    .services-feature {
        padding: 22px !important;
    }

    .services-feature__media {
        margin: -22px -22px 22px;
        min-height: 180px;
    }

    .services-feature__tag,
    .services-feature h3,
    .services-feature p,
    .services-feature .btn {
        margin-left: 0;
        margin-right: 0;
    }
}

/* Final typography guardrails for a calmer institutional finish. */
.hero h1,
.services-intro h2,
.split-grid h2,
.section-heading h2,
.cta-banner__title,
.single-hero h1,
.page-header h1,
.story-hero-header h1,
.activity-hero-header h1,
.nosotros-hero h1,
.contacto-hero h1 {
    letter-spacing: 0 !important;
}

.impact-grid strong {
    letter-spacing: 0 !important;
}

.hero h1 {
    font-size: 4.1rem;
}

.split-grid h2,
.section-heading h2 {
    font-size: 3.05rem;
}

.services-intro h2,
.cta-banner__title {
    font-size: 3rem;
}

@media(max-width: 980px) {
    .hero h1 {
        font-size: 4rem;
    }

    .split-grid h2,
    .section-heading h2,
    .services-intro h2,
    .cta-banner__title {
        font-size: 2.55rem;
    }
}

@media(max-width: 640px) {
    .hero h1 {
        font-size: 3.05rem;
    }

    .split-grid h2,
    .section-heading h2,
    .services-intro h2,
    .cta-banner__title {
        font-size: 2.15rem;
    }
}

/* ============================================================
   PRODUCTION CTA + HELP REFINEMENT
   ============================================================ */
.cta-banner {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding: clamp(62px, 7vw, 88px) 0 !important;
    background:
        linear-gradient(115deg, rgba(116, 9, 5, 0.97) 0%, rgba(185, 7, 0, 0.9) 58%, rgba(32, 63, 124, 0.86) 100%),
        var(--fcc-cta-photo) center / cover no-repeat !important;
}

.cta-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(0, 0, 0, 0.08), transparent 46%),
        repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.08) 0 1px, transparent 1px 22px);
    z-index: -1;
}

.cta-banner__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 420px) !important;
    align-items: center;
    gap: clamp(30px, 5vw, 72px);
}

.cta-banner__copy {
    max-width: 820px;
}

.cta-banner__tag {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 13px;
    border: 1px solid rgba(255, 255, 255, 0.26);
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    border-radius: 8px !important;
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cta-banner__title {
    max-width: 760px;
    margin-top: 20px;
    font-size: clamp(2.45rem, 5.4vw, 4.45rem) !important;
    line-height: 0.98;
    color: #ffffff;
}

.cta-banner__text {
    max-width: 660px;
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.08rem;
    line-height: 1.72;
}

.cta-banner__proof {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 28px;
}

.cta-banner__proof span {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0 12px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.84rem;
    font-weight: 800;
}

.cta-banner__proof span::before {
    content: "";
    width: 7px;
    height: 7px;
    margin-right: 9px;
    border-radius: 50%;
    background: #ffffff;
}

.cta-donation-card {
    position: relative;
    padding: 24px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(255, 255, 255, 0.58);
    box-shadow: 0 28px 80px rgba(18, 24, 38, 0.24);
}

.cta-donation-card__label {
    display: block;
    color: var(--fcc-red);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.cta-donation-card__amounts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 16px;
}

.cta-donation-card__amounts a {
    display: grid;
    place-items: center;
    min-height: 48px;
    padding: 0 8px;
    border-radius: 8px;
    background: #f6f8fc;
    border: 1px solid rgba(18, 24, 38, 0.09);
    color: #203f7c;
    font-size: 0.95rem;
    font-weight: 900;
    white-space: nowrap;
}

.cta-donation-card__amounts a:hover,
.cta-donation-card__amounts a:focus-visible {
    background: #203f7c;
    color: #ffffff;
    outline: none;
}

.cta-donation-card p {
    color: #475467;
    line-height: 1.6;
    margin: 0 0 20px;
}

.cta-banner__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    align-items: stretch;
}

.cta-banner__actions .btn {
    width: 100%;
    justify-content: center;
    min-height: 50px;
}

.btn-cta-white {
    background: #b90700 !important;
    color: #ffffff !important;
    border: 1px solid #b90700 !important;
    box-shadow: 0 14px 28px rgba(185, 7, 0, 0.22);
}

.btn-cta-white:hover,
.btn-cta-white:focus-visible {
    background: #8f0500 !important;
    border-color: #8f0500 !important;
    color: #ffffff !important;
}

.btn-cta-outline {
    background: #ffffff !important;
    color: #203f7c !important;
    border: 1px solid rgba(32, 63, 124, 0.18) !important;
}

.btn-cta-outline:hover,
.btn-cta-outline:focus-visible {
    background: #eef4ff !important;
    color: #203f7c !important;
}

.help-section {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(180deg, #f7f9fd 0%, #ffffff 100%) !important;
    color: var(--fcc-ink) !important;
}

.help-section::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(62, 97, 165, 0.07), transparent 42%);
    pointer-events: none;
}

.help-section > .container {
    position: relative;
    z-index: 1;
}

.help-panel {
    grid-template-columns: minmax(0, 0.74fr) minmax(0, 1.26fr) !important;
    gap: clamp(34px, 5vw, 76px);
    align-items: start;
}

.help-section .section-heading {
    position: sticky;
    top: 120px;
    color: var(--fcc-ink);
}

.help-section .eyebrow {
    color: var(--fcc-red) !important;
}

.help-section h2 {
    color: var(--fcc-ink) !important;
    font-size: clamp(2.25rem, 4.5vw, 4.05rem) !important;
    line-height: 1.02;
}

.help-section p {
    color: #475467 !important;
    line-height: 1.7;
}

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

.help-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 230px !important;
    padding: 24px !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    border: 1px solid rgba(18, 24, 38, 0.08) !important;
    box-shadow: 0 16px 44px rgba(18, 24, 38, 0.08) !important;
    color: var(--fcc-ink) !important;
    overflow: hidden;
}

.help-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: var(--fcc-red);
}

.help-card--2::before {
    background: var(--fcc-blue);
}

.help-card--3::before {
    background: var(--fcc-gold);
}

.help-card--4::before {
    background: #2f855a;
}

.help-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 22px;
}

.help-card__icon-wrap {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #f7f9fd;
    color: var(--fcc-blue);
    border: 1px solid rgba(18, 24, 38, 0.08);
}

.help-card__icon-wrap svg {
    width: 22px;
    height: 22px;
}

.help-card__kicker {
    color: #667085 !important;
    font-size: 0.72rem !important;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.help-card strong {
    display: block;
    color: var(--fcc-ink) !important;
    font-size: 1.45rem !important;
    line-height: 1.14;
    margin-bottom: 10px;
}

.help-card > span:not(.help-card__kicker) {
    color: #475467 !important;
    line-height: 1.62;
    font-weight: 650;
}

.help-card em {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding-top: 22px;
    color: var(--fcc-red);
    font-style: normal;
    font-weight: 900;
}

.help-card em::after {
    content: "→";
    transition: transform 0.18s ease;
}

.help-card:hover,
.help-card:focus-visible {
    transform: translateY(-4px);
    box-shadow: 0 24px 70px rgba(18, 24, 38, 0.13) !important;
    outline: none;
}

.help-card:hover em::after,
.help-card:focus-visible em::after {
    transform: translateX(4px);
}

.partners-section {
    padding-top: clamp(66px, 7vw, 92px) !important;
    border-top: 1px solid rgba(18, 24, 38, 0.06);
}

.partners-section .section-heading {
    max-width: 820px;
}

.logo-carousel {
    border-radius: 8px;
    padding: 8px;
    background: #f7f9fd;
    border: 1px solid rgba(18, 24, 38, 0.06);
}

.logo-item,
.logo-carousel div {
    min-width: 176px;
    border-radius: 8px !important;
}

@media(max-width: 980px) {
    .cta-banner__inner,
    .help-panel {
        grid-template-columns: 1fr !important;
    }

    .help-section .section-heading {
        position: static;
    }
}

@media(max-width: 700px) {
    .cta-donation-card__amounts,
    .help-grid {
        grid-template-columns: 1fr;
    }

    .cta-banner__proof {
        display: grid;
    }

    .cta-donation-card,
    .help-card {
        padding: 20px !important;
    }
}

@media(max-width: 700px) {
    .hero-grid,
    .hero-copy {
        min-width: 0;
        max-width: 100%;
    }

    .hero-copy {
        padding: 22px !important;
    }

    .hero h1 {
        font-size: clamp(2.08rem, 9.8vw, 2.36rem) !important;
        line-height: 1.02;
        max-width: 100%;
        overflow-wrap: break-word;
    }

    .hero h1 .gradient-text {
        display: block !important;
        white-space: normal !important;
        overflow-wrap: break-word;
    }

    .lead {
        font-size: 1rem;
        line-height: 1.62;
    }

    .hero-actions .btn,
    .trust-row span {
        width: 100%;
    }

    .cta-banner__title,
    .help-section h2 {
        font-size: clamp(2rem, 10vw, 2.36rem) !important;
    }
}

/* ============================================================
   HOME RHYTHM COMPACTION PASS
   ============================================================ */
.home-main .section-pad {
    padding-top: clamp(58px, 6vw, 78px) !important;
    padding-bottom: clamp(58px, 6vw, 78px) !important;
}

.home-main .section-heading {
    margin-bottom: clamp(24px, 3vw, 34px) !important;
}

.home-main .section-heading h2,
.home-main .services-intro h2,
.home-main .split-grid h2 {
    font-size: clamp(2.15rem, 3.6vw, 2.74rem) !important;
    line-height: 1.04;
}

.home-main .eyebrow {
    margin-bottom: 10px !important;
}

.hero.section-pad {
    min-height: auto !important;
    padding-top: clamp(36px, 5vw, 54px) !important;
    padding-bottom: clamp(44px, 5vw, 64px) !important;
}

.hero-grid {
    gap: clamp(28px, 4vw, 54px) !important;
}

.hero-copy {
    padding: clamp(28px, 3.4vw, 36px) !important;
}

.hero h1 {
    font-size: clamp(3.35rem, 5.1vw, 3.85rem) !important;
    line-height: 1;
}

.hero .lead {
    margin-top: 14px;
    margin-bottom: 0;
}

.hero-actions {
    margin-top: 22px !important;
}

.trust-row {
    margin-top: 20px !important;
}

.hero-photo-card.has-image,
.hero-photo-card {
    min-height: clamp(390px, 46vw, 500px) !important;
}

.impact-grid div {
    padding: 24px 28px !important;
}

.impact-grid strong {
    font-size: clamp(1.8rem, 3vw, 2.45rem) !important;
}

.mission-section .split-grid {
    gap: clamp(28px, 4vw, 54px) !important;
    align-items: center;
}

.mission-values {
    margin-top: 18px !important;
    gap: 10px !important;
}

.mission-values span {
    min-height: 58px !important;
    padding: 12px 14px !important;
}

.services-layout {
    gap: 18px !important;
    margin-bottom: 18px !important;
    align-items: start !important;
}

.services-intro {
    padding: clamp(24px, 3vw, 34px) !important;
}

.services-path {
    margin-top: 22px !important;
}

.services-path span {
    min-height: 50px !important;
    padding: 11px 13px !important;
}

.services-feature__media {
    min-height: 170px !important;
}

.services-feature__tag {
    margin-top: 22px !important;
    margin-bottom: 14px !important;
}

.services-feature h3 {
    font-size: 1.35rem !important;
    margin-bottom: 10px !important;
}

.services-feature p {
    margin-bottom: 18px !important;
}

.services-grid,
.cards-grid {
    gap: 16px !important;
}

.service-card {
    padding: 22px !important;
}

.service-icon {
    margin-bottom: 16px !important;
}

.service-card__list {
    margin: 14px 0 16px !important;
}

.post-card__media,
.featured-post-card__media {
    aspect-ratio: 16 / 9 !important;
}

.post-card__body {
    padding: 20px 20px 22px !important;
}

.post-card h3 {
    font-size: 1.08rem !important;
}

.post-card p {
    font-size: 0.92rem;
    line-height: 1.52 !important;
}

.testimonial-card {
    padding: 24px !important;
}

.activity-card {
    padding: 24px !important;
}

.cta-banner {
    padding-top: clamp(48px, 5vw, 68px) !important;
    padding-bottom: clamp(48px, 5vw, 68px) !important;
}

.cta-banner__inner {
    gap: clamp(24px, 4vw, 54px) !important;
}

.cta-banner__title {
    font-size: clamp(2.35rem, 4.8vw, 3.75rem) !important;
    margin-top: 16px !important;
}

.cta-banner__text {
    line-height: 1.58 !important;
}

.cta-banner__proof {
    margin-top: 20px !important;
}

.cta-donation-card {
    padding: 20px !important;
}

.cta-donation-card p {
    margin-bottom: 16px !important;
}

.help-panel {
    gap: clamp(28px, 4vw, 54px) !important;
    align-items: center !important;
}

.help-section h2 {
    font-size: clamp(2.25rem, 4vw, 3.2rem) !important;
}

.help-card {
    min-height: 198px !important;
    padding: 20px !important;
}

.help-card__top {
    margin-bottom: 16px !important;
}

.help-card strong {
    font-size: 1.28rem !important;
}

.help-card > span:not(.help-card__kicker) {
    line-height: 1.5 !important;
}

.help-card em {
    padding-top: 16px !important;
}

.partners-section {
    padding-top: clamp(48px, 5vw, 68px) !important;
    padding-bottom: clamp(48px, 5vw, 68px) !important;
}

.logo-carousel {
    margin-top: 0 !important;
}

.logo-item,
.logo-carousel div {
    height: 76px !important;
    min-width: 164px !important;
}

@media(max-width: 980px) {
    .home-main .section-pad {
        padding-top: 54px !important;
        padding-bottom: 54px !important;
    }

    .hero.section-pad {
        padding-top: 40px !important;
    }
}

@media(max-width: 700px) {
    .home-main .section-pad {
        padding-top: 46px !important;
        padding-bottom: 46px !important;
    }

    .hero.section-pad {
        padding-top: 34px !important;
        padding-bottom: 44px !important;
    }

    .hero-copy,
    .services-intro,
    .services-feature,
    .cta-donation-card,
    .help-card {
        padding: 20px !important;
    }

    .hero-photo-card.has-image,
    .hero-photo-card {
        min-height: 300px !important;
    }

    .impact-grid div {
        padding: 20px !important;
    }

    .services-feature__media {
        min-height: 150px !important;
    }

    .help-card {
        min-height: auto !important;
    }
}

/* ============================================================
   EDITORIAL POST CONTENT: IMAGES, GALLERIES AND EMBEDS
   ============================================================ */
.single-main,
.page-main {
    background:
        radial-gradient(circle at 8% 4%, rgba(62, 97, 165, 0.08), transparent 26%),
        linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.single-article,
.page-content {
    position: relative;
}

.single-hero {
    margin-bottom: 46px;
}

.single-featured {
    max-width: 1060px;
    border-radius: 12px !important;
    border: 1px solid var(--fcc-line);
    background: #ffffff;
    box-shadow: 0 24px 70px rgba(18, 24, 38, 0.12) !important;
}

.single-featured img {
    width: 100%;
    max-height: 660px;
    object-fit: cover;
    object-position: center;
}

.entry-content.prose,
.page-content .prose,
.activity-content,
.story-content {
    max-width: 840px;
    margin-inline: auto;
    font-size: 1.08rem;
    line-height: 1.82;
    color: #344054;
}

.prose > *:first-child,
.entry-content > *:first-child {
    margin-top: 0;
}

.prose > *:last-child,
.entry-content > *:last-child {
    margin-bottom: 0;
}

.prose p,
.prose ul,
.prose ol,
.prose blockquote,
.prose table,
.prose figure,
.prose .wp-block-image,
.prose .wp-block-gallery,
.prose .gallery,
.entry-content p,
.entry-content figure {
    margin-top: 0;
    margin-bottom: 1.55em;
}

.prose h2,
.prose h3,
.prose h4,
.entry-content h2,
.entry-content h3,
.entry-content h4 {
    font-family: Manrope, Inter, sans-serif;
    color: var(--fcc-ink);
    line-height: 1.16;
    letter-spacing: 0;
    margin: 2.1em 0 0.75em;
}

.prose h2,
.entry-content h2 {
    font-size: 2rem;
}

.prose h3,
.entry-content h3 {
    font-size: 1.5rem;
}

.prose img,
.entry-content img {
    display: block;
    max-width: 100%;
    height: auto;
}

.prose figure,
.entry-content figure {
    max-width: 100%;
}

.prose .wp-block-image,
.prose .wp-caption,
.prose > p:has(> img),
.entry-content .wp-block-image,
.entry-content .wp-caption,
.entry-content > p:has(> img) {
    overflow: hidden;
    border-radius: 12px;
}

.prose .wp-block-image img,
.prose .wp-caption img,
.prose > p > img,
.entry-content .wp-block-image img,
.entry-content .wp-caption img,
.entry-content > p > img {
    width: 100%;
    border-radius: 12px;
    border: 1px solid rgba(18, 24, 38, 0.08);
    background: #ffffff;
    box-shadow: 0 18px 48px rgba(18, 24, 38, 0.1);
}

.prose figcaption,
.prose .wp-caption-text,
.entry-content figcaption,
.entry-content .wp-caption-text {
    margin: 10px auto 0;
    max-width: 92%;
    color: #667085;
    font-size: 0.9rem;
    line-height: 1.5;
    text-align: center;
}

.prose .aligncenter,
.entry-content .aligncenter {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.prose .alignleft,
.entry-content .alignleft {
    float: left;
    max-width: min(42%, 360px);
    margin: 0.35em 1.6em 1em 0;
}

.prose .alignright,
.entry-content .alignright {
    float: right;
    max-width: min(42%, 360px);
    margin: 0.35em 0 1em 1.6em;
}

.prose .alignwide,
.entry-content .alignwide {
    width: min(1060px, calc(100vw - 44px));
    max-width: none;
    margin-left: 50%;
    transform: translateX(-50%);
}

.prose .alignfull,
.entry-content .alignfull {
    width: 100vw;
    max-width: none;
    margin-left: 50%;
    transform: translateX(-50%);
    border-radius: 0;
}

.prose .wp-block-gallery,
.entry-content .wp-block-gallery,
.prose .gallery,
.entry-content .gallery {
    width: min(1060px, calc(100vw - 44px));
    max-width: none;
    margin-left: 50%;
    transform: translateX(-50%);
}

.prose .wp-block-gallery.has-nested-images,
.entry-content .wp-block-gallery.has-nested-images,
.prose .blocks-gallery-grid,
.entry-content .blocks-gallery-grid,
.prose .gallery,
.entry-content .gallery {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px !important;
    align-items: stretch;
}

.prose .wp-block-gallery.has-nested-images figure.wp-block-image,
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image,
.prose .blocks-gallery-item,
.entry-content .blocks-gallery-item,
.prose .gallery-item,
.entry-content .gallery-item {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

.prose .wp-block-gallery.has-nested-images figure.wp-block-image img,
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image img,
.prose .blocks-gallery-item img,
.entry-content .blocks-gallery-item img,
.prose .gallery-item img,
.entry-content .gallery-item img {
    width: 100%;
    height: 100%;
    min-height: 230px;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 10px;
    border: 1px solid rgba(18, 24, 38, 0.08) !important;
    box-shadow: 0 14px 36px rgba(18, 24, 38, 0.09) !important;
}

.prose .gallery-columns-1,
.entry-content .gallery-columns-1 {
    grid-template-columns: 1fr !important;
}

.prose .gallery-columns-2,
.entry-content .gallery-columns-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.prose .gallery-columns-3,
.entry-content .gallery-columns-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.prose .gallery-columns-4,
.entry-content .gallery-columns-4,
.prose .gallery-columns-5,
.entry-content .gallery-columns-5,
.prose .gallery-columns-6,
.entry-content .gallery-columns-6,
.prose .gallery-columns-7,
.entry-content .gallery-columns-7,
.prose .gallery-columns-8,
.entry-content .gallery-columns-8,
.prose .gallery-columns-9,
.entry-content .gallery-columns-9 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.prose .gallery-caption,
.entry-content .gallery-caption,
.prose .blocks-gallery-item figcaption,
.entry-content .blocks-gallery-item figcaption,
.prose .wp-block-gallery figcaption,
.entry-content .wp-block-gallery figcaption {
    width: auto;
    max-width: none;
    margin: 8px 0 0;
    padding: 0 4px;
    color: #667085;
    font-size: 0.84rem;
    text-align: center;
}

.prose .wp-block-embed,
.entry-content .wp-block-embed,
.prose iframe,
.entry-content iframe,
.prose video,
.entry-content video {
    max-width: 100%;
}

.prose .wp-block-embed,
.entry-content .wp-block-embed {
    width: min(920px, calc(100vw - 44px));
    max-width: none;
    margin-left: 50%;
    transform: translateX(-50%);
}

.prose .wp-block-embed__wrapper,
.entry-content .wp-block-embed__wrapper {
    overflow: hidden;
    border-radius: 12px;
    box-shadow: 0 18px 48px rgba(18, 24, 38, 0.1);
}

.prose blockquote,
.entry-content blockquote {
    border-left: 4px solid var(--fcc-red);
    background: #ffffff;
    border-radius: 10px;
    padding: 24px 28px;
    color: #1f2937;
    box-shadow: 0 14px 36px rgba(18, 24, 38, 0.07);
}

.prose::after,
.entry-content::after {
    content: "";
    display: block;
    clear: both;
}

.featured-post-card__placeholder svg {
    width: 42%;
    max-width: 190px;
}

@media(max-width: 900px) {
    .prose .alignleft,
    .entry-content .alignleft,
    .prose .alignright,
    .entry-content .alignright {
        float: none;
        max-width: 100%;
        margin: 0 0 1.55em;
    }

    .prose .wp-block-gallery.has-nested-images,
    .entry-content .wp-block-gallery.has-nested-images,
    .prose .blocks-gallery-grid,
    .entry-content .blocks-gallery-grid,
    .prose .gallery,
    .entry-content .gallery,
    .prose .gallery-columns-3,
    .entry-content .gallery-columns-3,
    .prose .gallery-columns-4,
    .entry-content .gallery-columns-4,
    .prose .gallery-columns-5,
    .entry-content .gallery-columns-5,
    .prose .gallery-columns-6,
    .entry-content .gallery-columns-6,
    .prose .gallery-columns-7,
    .entry-content .gallery-columns-7,
    .prose .gallery-columns-8,
    .entry-content .gallery-columns-8,
    .prose .gallery-columns-9,
    .entry-content .gallery-columns-9 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media(max-width: 640px) {
    .single-main,
    .page-main {
        padding-top: 48px;
    }

    .entry-content.prose,
    .page-content .prose,
    .activity-content,
    .story-content {
        font-size: 1rem;
        line-height: 1.75;
    }

    .single-featured,
    .prose .alignwide,
    .entry-content .alignwide,
    .prose .wp-block-gallery,
    .entry-content .wp-block-gallery,
    .prose .gallery,
    .entry-content .gallery,
    .prose .wp-block-embed,
    .entry-content .wp-block-embed {
        width: min(100%, calc(100vw - 30px));
    }

    .prose .wp-block-gallery.has-nested-images,
    .entry-content .wp-block-gallery.has-nested-images,
    .prose .blocks-gallery-grid,
    .entry-content .blocks-gallery-grid,
    .prose .gallery,
    .entry-content .gallery,
    .prose .gallery-columns-2,
    .entry-content .gallery-columns-2,
    .prose .gallery-columns-3,
    .entry-content .gallery-columns-3,
    .prose .gallery-columns-4,
    .entry-content .gallery-columns-4 {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .prose .wp-block-gallery.has-nested-images figure.wp-block-image img,
    .entry-content .wp-block-gallery.has-nested-images figure.wp-block-image img,
    .prose .blocks-gallery-item img,
    .entry-content .blocks-gallery-item img,
    .prose .gallery-item img,
    .entry-content .gallery-item img {
        min-height: 210px;
    }
}

/* ============================================================
   SINGLE POST HEADER AND NAVIGATION
   ============================================================ */
.single-main {
    padding-top: 0;
}

.single-article {
    padding-top: clamp(64px, 8vw, 104px);
}

.single-hero {
    position: relative;
    max-width: 980px;
    padding: clamp(34px, 5vw, 58px);
    background:
        radial-gradient(circle at 18% 16%, rgba(62, 97, 165, 0.1), transparent 32%),
        linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border: 1px solid var(--fcc-line);
    border-radius: 14px;
    box-shadow: 0 22px 62px rgba(18, 24, 38, 0.08);
}

.single-breadcrumb {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 22px;
    color: #667085;
    font-size: 0.88rem;
    font-weight: 800;
}

.single-hero > .eyebrow {
    display: inline-flex;
    margin-left: 12px;
}

.single-breadcrumb a {
    color: var(--fcc-blue);
}

.single-breadcrumb a:hover {
    color: var(--fcc-red);
}

.single-hero .eyebrow {
    margin-bottom: 16px;
}

.single-hero h1 {
    max-width: 880px;
    margin-inline: auto;
    font-size: clamp(2.35rem, 4.2vw, 3.85rem);
    line-height: 1.04;
    letter-spacing: 0 !important;
    text-wrap: balance;
}

.single-hero .lead {
    max-width: 760px;
    margin: 22px auto 0;
    color: #475467;
}

.single-post-footer {
    max-width: 1060px;
    margin: clamp(64px, 8vw, 96px) auto 0;
}

.single-share-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 28px;
    background:
        radial-gradient(circle at 88% 20%, rgba(185, 7, 0, 0.08), transparent 26%),
        #ffffff;
    border: 1px solid var(--fcc-line);
    border-radius: 12px;
    box-shadow: 0 18px 50px rgba(18, 24, 38, 0.08);
}

.single-share-card .eyebrow {
    margin: 0 0 6px;
}

.single-share-card h2 {
    max-width: 620px;
    margin: 0;
    font-family: Manrope, Inter, sans-serif;
    font-size: 1.45rem;
    line-height: 1.2;
    color: var(--fcc-ink);
}

.single-post-footer .post-navigation {
    margin-top: 22px;
}

.single-post-footer .nav-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.single-post-footer .nav-links:not(:has(.nav-previous)),
.single-post-footer .nav-links:not(:has(.nav-next)) {
    grid-template-columns: 1fr;
}

.single-post-footer .nav-previous,
.single-post-footer .nav-next {
    min-width: 0;
}

.single-post-footer .nav-next {
    text-align: right;
}

.single-post-footer .nav-previous a,
.single-post-footer .nav-next a {
    min-height: 132px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 24px;
    background: #ffffff;
    border: 1px solid var(--fcc-line);
    border-radius: 12px;
    box-shadow: 0 14px 38px rgba(18, 24, 38, 0.07);
    color: var(--fcc-ink);
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.single-post-footer .nav-previous a:hover,
.single-post-footer .nav-next a:hover {
    transform: translateY(-4px);
    border-color: rgba(185, 7, 0, 0.2);
    box-shadow: 0 22px 52px rgba(18, 24, 38, 0.12);
}

.post-nav-label {
    color: var(--fcc-red);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.single-post-footer .nav-links strong {
    display: -webkit-box;
    overflow: hidden;
    color: var(--fcc-ink);
    font-family: Manrope, Inter, sans-serif;
    font-size: 1.08rem;
    line-height: 1.28;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

@media(max-width: 760px) {
    .single-article {
        padding-top: 40px;
    }

    .single-hero {
        padding: 28px 24px;
    }

    .single-hero h1 {
        font-size: 2rem;
        line-height: 1.08;
    }

    .single-share-card,
    .single-post-footer .nav-links {
        grid-template-columns: 1fr;
    }

    .single-share-card {
        display: grid;
    }

    .single-post-footer .nav-next {
        text-align: left;
    }
}

/* ============================================================
   PROFESSIONAL CONTENT LIGHTBOX
   ============================================================ */
.entry-content img,
.activity-content img,
.story-content img,
.page-content .prose img,
.single-featured img {
    cursor: zoom-in;
}

.fcc-lightbox {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: grid;
    place-items: center;
    padding: 26px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.22s ease, visibility 0.22s ease;
}

.fcc-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.fcc-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 18% 12%, rgba(62, 97, 165, 0.28), transparent 30%),
        rgba(5, 10, 20, 0.9);
    backdrop-filter: blur(14px);
}

.fcc-lightbox__shell {
    position: relative;
    width: min(1180px, 100%);
    height: min(820px, calc(100vh - 52px));
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) 58px;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 16px;
    z-index: 1;
}

.fcc-lightbox__topbar {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    color: #ffffff;
}

.fcc-lightbox__counter {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.08);
    font-weight: 900;
    font-size: 0.9rem;
}

.fcc-lightbox__close,
.fcc-lightbox__nav {
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.1);
    color: #ffffff;
    border-radius: 8px;
    font-family: Inter, system-ui, sans-serif;
    font-weight: 900;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.fcc-lightbox__close {
    min-height: 42px;
    padding: 0 16px;
}

.fcc-lightbox__nav {
    align-self: center;
    min-height: 74px;
    padding: 0 12px;
    writing-mode: vertical-rl;
    text-orientation: mixed;
}

.fcc-lightbox__close:hover,
.fcc-lightbox__nav:hover,
.fcc-lightbox__close:focus-visible,
.fcc-lightbox__nav:focus-visible {
    background: #ffffff;
    border-color: #ffffff;
    color: var(--fcc-ink);
    outline: none;
    transform: translateY(-2px);
}

.fcc-lightbox__figure {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    min-height: 0;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    align-items: center;
    justify-items: center;
    gap: 14px;
    margin: 0;
}

.fcc-lightbox__image {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: 10px;
    box-shadow: 0 30px 90px rgba(0, 0, 0, 0.42);
    background: #0b1220;
}

.fcc-lightbox__caption {
    max-width: min(760px, 100%);
    margin: 0;
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.96rem;
    line-height: 1.55;
    text-align: center;
}

.fcc-lightbox__caption[hidden],
.fcc-lightbox__nav[hidden] {
    display: none;
}

.fcc-lightbox__nav--prev {
    grid-column: 1;
    grid-row: 2;
}

.fcc-lightbox__nav--next {
    grid-column: 3;
    grid-row: 2;
}

@media(max-width: 760px) {
    .fcc-lightbox {
        padding: 14px;
    }

    .fcc-lightbox__shell {
        height: calc(100vh - 28px);
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto minmax(0, 1fr) auto;
        gap: 12px;
    }

    .fcc-lightbox__figure {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .fcc-lightbox__image {
        border-radius: 8px;
    }

    .fcc-lightbox__nav {
        grid-row: 3;
        min-height: 46px;
        writing-mode: horizontal-tb;
        text-orientation: mixed;
    }

    .fcc-lightbox__nav--prev {
        grid-column: 1;
    }

    .fcc-lightbox__nav--next {
        grid-column: 2;
    }

    .fcc-lightbox__caption {
        font-size: 0.88rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Partners logos and services page production pass */
.logo-item {
    text-decoration: none;
}

.logo-item strong,
.logo-item span {
    display: block;
}

.logo-item span {
    margin-top: 4px;
    color: var(--fcc-gray-500);
    font-size: 0.76rem;
    font-weight: 700;
}

.logo-item.has-logo {
    padding: 18px 24px;
}

.logo-item img {
    max-width: 150px;
    max-height: 54px;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: saturate(0.86);
    transition: transform 0.2s ease, filter 0.2s ease;
}

.logo-item:hover img {
    transform: scale(1.04);
    filter: saturate(1);
}

.services-page {
    background: #fff;
}

.services-page [id] {
    scroll-margin-top: 130px;
}

.services-page-hero {
    padding: clamp(72px, 9vw, 124px) 0 clamp(42px, 6vw, 76px);
    background:
        linear-gradient(120deg, rgba(255,255,255,0.96), rgba(237,242,250,0.86)),
        var(--fcc-services-photo) center / cover no-repeat;
    border-bottom: 1px solid rgba(226,232,240,0.85);
}

.services-page-hero__grid,
.services-faq-grid,
.services-referral__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.65fr);
    gap: clamp(28px, 5vw, 70px);
    align-items: center;
}

.services-page-hero h1 {
    max-width: 820px;
    margin: 0 0 18px;
    color: var(--fcc-gray-900);
    font-size: clamp(2.5rem, 5.4vw, 5rem);
    line-height: 0.96;
}

.services-page-hero p,
.services-referral p {
    max-width: 720px;
    color: var(--fcc-gray-700);
    font-size: 1.08rem;
}

.services-page-actions,
.services-referral__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.services-page-summary {
    padding: 28px;
    border: 1px solid rgba(226,232,240,0.95);
    border-radius: 8px;
    background: rgba(255,255,255,0.9);
    box-shadow: 0 22px 60px rgba(15,23,42,0.08);
}

.services-page-summary strong {
    display: block;
    color: var(--fcc-blue);
    font-family: Manrope, Inter, sans-serif;
    font-size: 1.35rem;
}

.services-page-summary span {
    display: block;
    margin-top: 8px;
    color: var(--fcc-gray-600);
}

.services-page-summary ul,
.service-detail-card ul {
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.services-page-summary li,
.service-detail-card li {
    position: relative;
    padding-left: 20px;
    color: var(--fcc-gray-700);
    font-weight: 700;
}

.services-page-summary li + li,
.service-detail-card li + li {
    margin-top: 10px;
}

.services-page-summary li::before,
.service-detail-card li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.7em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--fcc-red);
}

.services-process {
    background: var(--fcc-gray-50);
}

.services-process-grid,
.services-detail-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.process-card,
.service-detail-card {
    border: 1px solid rgba(226,232,240,0.95);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(15,23,42,0.06);
}

.process-card {
    padding: 24px;
}

.process-card span {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--fcc-blue-soft);
    color: var(--fcc-blue);
    font-weight: 900;
}

.process-card h3,
.service-detail-card h3 {
    margin: 18px 0 10px;
    color: var(--fcc-gray-900);
}

.process-card p,
.service-detail-card p,
.faq-list p {
    color: var(--fcc-gray-600);
}

.services-detail-section {
    background: #fff;
}

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

.service-detail-card {
    display: flex;
    flex-direction: column;
    min-height: 360px;
    padding: 30px;
    border-top: 4px solid var(--fcc-red);
}

.service-detail-card.service-card--blue {
    border-top-color: var(--fcc-blue);
}

.service-detail-card.service-card--gold {
    border-top-color: var(--fcc-gold);
}

.service-detail-card__kicker {
    color: var(--fcc-red);
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.service-detail-card .text-link {
    margin-top: auto;
    padding-top: 22px;
}

.services-faq {
    background: linear-gradient(180deg, #f8fafc, #fff);
}

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

.faq-list details {
    border: 1px solid rgba(226,232,240,0.95);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(15,23,42,0.05);
}

.faq-list summary {
    cursor: pointer;
    padding: 18px 20px;
    color: var(--fcc-gray-900);
    font-weight: 900;
}

.faq-list p {
    margin: 0;
    padding: 0 20px 20px;
}

.services-referral {
    padding: clamp(44px, 7vw, 82px) 0;
    background: linear-gradient(135deg, var(--fcc-blue), #1f4d8f);
    color: #fff;
}

.services-referral h2,
.services-referral p,
.services-referral .eyebrow {
    color: #fff;
}

.services-referral .btn-secondary {
    background: rgba(255,255,255,0.12);
    color: #fff;
    border-color: rgba(255,255,255,0.38);
}

.services-page-extra {
    background: #fff;
}

@media(max-width: 980px) {
    .services-page-hero__grid,
    .services-faq-grid,
    .services-referral__inner,
    .services-process-grid,
    .services-detail-grid {
        grid-template-columns: 1fr;
    }

    .services-page-summary {
        max-width: 620px;
    }
}

@media(max-width: 640px) {
    .services-page-actions,
    .services-referral__actions {
        flex-direction: column;
    }

    .services-page-actions .btn,
    .services-referral__actions .btn {
        width: 100%;
        justify-content: center;
    }
}

/* Services page UX audit refinement */
.services-page {
    --services-tight-gap: clamp(18px, 2.4vw, 30px);
}

.services-page-hero {
    padding: clamp(54px, 7vw, 90px) 0 clamp(28px, 4vw, 48px);
    background:
        linear-gradient(115deg, rgba(255,255,255,0.98) 0%, rgba(255,255,255,0.92) 48%, rgba(237,242,250,0.82) 100%),
        var(--fcc-services-photo) center / cover no-repeat;
}

.services-page-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
    gap: clamp(24px, 4vw, 48px);
}

.services-page-hero h1 {
    max-width: 760px;
    margin-bottom: 14px;
    font-size: clamp(2.3rem, 4.6vw, 4.45rem);
    line-height: 1;
}

.services-page-hero p {
    max-width: 680px;
    margin-bottom: 0;
    font-size: 1.03rem;
}

.services-hero-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 22px;
}

.services-hero-metrics span {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    padding: 10px 14px;
    border: 1px solid rgba(226,232,240,0.92);
    border-radius: 8px;
    background: rgba(255,255,255,0.74);
    color: var(--fcc-gray-600);
    font-weight: 800;
}

.services-hero-metrics strong {
    color: var(--fcc-red);
    font-family: Manrope, Inter, sans-serif;
    font-size: 1.32rem;
}

.services-page-summary {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(22px, 3vw, 32px);
}

.services-page-summary__label,
.service-detail-card__kicker {
    color: var(--fcc-red);
    font-size: 0.72rem;
    font-weight: 900;
    text-transform: uppercase;
}

.services-page-summary p {
    margin: 10px 0 16px;
    color: var(--fcc-gray-600);
}

.services-anchor-nav {
    position: sticky;
    top: var(--fcc-sticky-offset, 78px);
    z-index: 25;
    border-bottom: 1px solid rgba(226,232,240,0.9);
    background: rgba(255,255,255,0.94);
    backdrop-filter: blur(14px);
}

.admin-bar .services-anchor-nav {
    top: calc(var(--fcc-sticky-offset, 78px) + 32px);
}

.services-anchor-nav__inner {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 10px 0;
}

.services-anchor-nav a {
    flex: 0 0 auto;
    padding: 9px 13px;
    border: 1px solid rgba(226,232,240,0.95);
    border-radius: 8px;
    background: #fff;
    color: var(--fcc-gray-700);
    font-size: 0.9rem;
    font-weight: 900;
}

.services-anchor-nav a:hover {
    border-color: rgba(185,7,0,0.28);
    color: var(--fcc-red);
}

.services-detail-section,
.services-operations,
.services-faq {
    padding: clamp(44px, 6vw, 72px) 0;
}

.services-detail-section .section-heading {
    margin-bottom: 24px;
}

.services-detail-section .section-heading p,
.services-faq-grid > div > p {
    max-width: 720px;
    margin: 10px 0 0;
    color: var(--fcc-gray-600);
}

.services-detail-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.service-detail-card {
    min-height: 0;
    padding: 22px;
    box-shadow: 0 14px 34px rgba(15,23,42,0.055);
}

.service-detail-card h3 {
    margin: 10px 0 9px;
    font-size: 1.16rem;
}

.service-detail-card p {
    font-size: 0.94rem;
    line-height: 1.58;
}

.service-detail-card ul {
    margin-top: 14px;
}

.service-detail-card li {
    font-size: 0.88rem;
    line-height: 1.45;
}

.service-detail-card .text-link {
    padding-top: 16px;
}

.services-operations {
    background: var(--fcc-gray-50);
}

.services-operations-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
    gap: var(--services-tight-gap);
    align-items: stretch;
}

.services-process-panel,
.services-docs-panel {
    border: 1px solid rgba(226,232,240,0.95);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(15,23,42,0.06);
}

.services-process-panel {
    padding: clamp(24px, 3vw, 34px);
}

.services-process-panel h2,
.services-docs-panel h2,
.services-priority h2 {
    margin: 8px 0 20px;
    font-size: clamp(1.7rem, 3vw, 2.55rem);
    line-height: 1.08;
}

.services-process-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.process-card {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
    padding: 16px;
    box-shadow: none;
}

.process-card span {
    width: 38px;
    height: 38px;
    font-size: 0.86rem;
}

.process-card h3 {
    margin: 0 0 5px;
    font-size: 1rem;
}

.process-card p {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.52;
}

.services-docs-panel {
    padding: clamp(22px, 3vw, 30px);
}

.services-docs-panel ul,
.priority-list {
    display: grid;
    gap: 10px;
    margin: 0 0 22px;
    padding: 0;
    list-style: none;
}

.services-docs-panel li,
.priority-list span {
    position: relative;
    padding: 12px 12px 12px 36px;
    border: 1px solid rgba(226,232,240,0.9);
    border-radius: 8px;
    background: #fff;
    color: var(--fcc-gray-700);
    font-weight: 800;
    line-height: 1.45;
}

.services-docs-panel li::before,
.priority-list span::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 18px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--fcc-red);
}

.services-priority {
    padding: clamp(34px, 5vw, 56px) 0;
    background: #fff;
}

.services-priority-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: var(--services-tight-gap);
    align-items: center;
}

.priority-list {
    margin-bottom: 0;
}

.services-faq {
    background: linear-gradient(180deg, #f8fafc, #fff);
}

.services-faq-grid {
    align-items: start;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: var(--services-tight-gap);
}

.faq-list summary {
    padding: 16px 18px;
}

.services-referral {
    padding: clamp(36px, 5vw, 62px) 0;
}

.services-referral__inner {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
}

.services-page-extra {
    padding: clamp(34px, 5vw, 56px) 0;
}

@media(max-width: 1180px) {
    .services-detail-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media(max-width: 980px) {
    .services-anchor-nav {
        top: 0;
    }

    .admin-bar .services-anchor-nav {
        top: 46px;
    }

    .services-page-hero__grid,
    .services-operations-grid,
    .services-priority-grid,
    .services-faq-grid,
    .services-referral__inner {
        grid-template-columns: 1fr;
    }
}

@media(max-width: 640px) {
    .services-page-hero {
        padding-top: 42px;
    }

    .services-detail-grid,
    .services-process-grid {
        grid-template-columns: 1fr;
    }

    .services-hero-metrics span,
    .services-anchor-nav a {
        font-size: 0.84rem;
    }

    .service-detail-card,
    .services-process-panel,
    .services-docs-panel {
        padding: 18px;
    }
}

/* Front-end quick editing tools for administrators */
.fcc-live-edit-toolbar {
    position: fixed;
    right: 18px;
    bottom: 168px;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 8px;
    pointer-events: none;
}

.fcc-live-edit-toolbar a {
    pointer-events: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 9px 13px;
    border: 1px solid rgba(226,232,240,0.92);
    border-radius: 8px;
    background: #fff;
    color: var(--fcc-gray-900);
    box-shadow: 0 16px 40px rgba(15,23,42,0.16);
    font-size: 0.84rem;
    font-weight: 900;
}

.fcc-live-edit-toolbar a:first-child {
    background: var(--fcc-blue);
    border-color: var(--fcc-blue);
    color: #fff;
}

.fcc-live-edit-toolbar a:hover {
    transform: translateY(-1px);
}

@media(max-width: 640px) {
    .fcc-live-edit-toolbar {
        left: 14px;
        right: 14px;
        bottom: 86px;
        flex-direction: row;
    }

    .fcc-live-edit-toolbar a {
        flex: 1;
    }
}

/* Premium referral close for services page */
.services-referral {
    position: relative;
    isolation: isolate;
    padding: clamp(52px, 7vw, 92px) 0;
    overflow: hidden;
    background:
        radial-gradient(circle at 10% 18%, rgba(255, 255, 255, .15), transparent 26%),
        linear-gradient(135deg, #183f7a 0%, var(--fcc-blue) 52%, #12345f 100%);
    color: #fff;
}

.services-referral::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.06) 1px, transparent 1px);
    background-size: 58px 58px;
    mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent);
    opacity: .45;
}

.services-referral__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);
    gap: clamp(28px, 5vw, 70px);
    align-items: center;
}

.services-referral__copy {
    max-width: 780px;
}

.services-referral .eyebrow {
    display: inline-flex;
    width: fit-content;
    padding: 8px 12px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 999px;
    background: rgba(255,255,255,.1);
    color: #fff;
}

.services-referral h2 {
    max-width: 820px;
    margin: 22px 0 18px;
    color: #fff;
    font-size: clamp(2rem, 4.3vw, 4.1rem);
    line-height: .98;
    letter-spacing: -.045em;
}

.services-referral p {
    max-width: 680px;
    color: rgba(255,255,255,.9);
    font-size: 1.08rem;
    line-height: 1.7;
}

.services-referral__checks {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 28px;
}

.services-referral__checks span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px;
    background: rgba(255,255,255,.1);
    color: #fff;
    font-weight: 800;
    font-size: .9rem;
}

.services-referral__checks span::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(255,255,255,.14);
}

.services-referral-card {
    padding: clamp(24px, 3vw, 34px);
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 8px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 28px 80px rgba(5, 19, 45, .28);
    color: var(--fcc-gray-900);
}

.services-referral-card__icon {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    margin-bottom: 20px;
    border-radius: 8px;
    background: rgba(185, 7, 0, .1);
    color: var(--fcc-red);
}

.services-referral-card__icon svg {
    width: 28px;
    height: 28px;
}

.services-referral-card strong {
    display: block;
    margin-bottom: 12px;
    font-family: Manrope, Inter, sans-serif;
    font-size: 1.35rem;
    line-height: 1.18;
    color: var(--fcc-gray-900);
}

.services-referral-card p {
    margin: 0;
    color: var(--fcc-gray-600);
    font-size: .98rem;
}

.services-referral__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 24px;
}

.services-referral__actions .btn {
    width: 100%;
    justify-content: center;
}

.services-referral__actions .btn-secondary {
    background: #fff;
    color: var(--fcc-blue);
    border-color: rgba(62, 97, 165, .24);
}

.services-referral__actions .btn-secondary:hover {
    background: var(--fcc-blue-soft);
}

@media(max-width: 980px) {
    .services-referral__inner {
        grid-template-columns: 1fr;
    }

    .services-referral-card {
        max-width: 560px;
    }
}

/* Professional institutional footer refresh */
.site-footer {
    padding-top: 58px !important;
    background:
        radial-gradient(circle at 14% 12%, rgba(62, 97, 165, .22), transparent 30%),
        radial-gradient(circle at 86% 4%, rgba(185, 7, 0, .12), transparent 25%),
        linear-gradient(180deg, #101827 0%, #07101d 100%) !important;
}

.footer-impact {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr);
    gap: 28px;
    align-items: center;
    padding: 30px;
    margin-bottom: 50px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.035)),
        radial-gradient(circle at 90% 15%, rgba(201, 164, 75, .18), transparent 34%);
    box-shadow: 0 28px 80px rgba(0,0,0,.22);
}

.footer-impact__copy .eyebrow {
    color: #fca5a5;
}

.footer-impact h2 {
    max-width: 780px;
    margin: 0;
    padding: 0;
    color: #fff;
    text-transform: none;
    letter-spacing: -.04em;
    font-size: clamp(1.9rem, 3.5vw, 3.3rem);
    line-height: 1.02;
}

.footer-impact h2::after {
    display: none;
}

.footer-impact__stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.footer-impact__stats div {
    padding: 16px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 8px;
    background: rgba(255,255,255,.055);
}

.footer-impact__stats strong {
    display: block;
    color: #fff;
    font-family: Manrope, Inter, sans-serif;
    font-size: 1.55rem;
    line-height: 1;
}

.footer-impact__stats span {
    display: block;
    margin-top: 6px;
    color: rgba(255,255,255,.72);
    font-size: .82rem;
    font-weight: 800;
}

.footer-impact__actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.footer-impact__actions .btn-outline {
    border-color: rgba(255,255,255,.22);
    background: rgba(255,255,255,.08);
    color: #fff;
}

.footer-grid {
    grid-template-columns: minmax(250px, 1.1fr) minmax(170px, .65fr) minmax(260px, .9fr) minmax(290px, .95fr) !important;
    align-items: start;
}

.footer-brand,
.footer-links,
.footer-contact,
.footer-writeus {
    min-width: 0;
}

.footer-brand .custom-logo {
    max-height: 82px;
}

.footer-brand p {
    max-width: 360px;
    font-size: 1rem;
}

.footer-contact .contact-list {
    display: grid;
    gap: 14px;
}

.footer-contact .contact-item {
    align-items: flex-start;
}

.footer-contact .contact-item__icon {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
}

.footer-writeus {
    padding: 22px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 8px;
    background: rgba(255,255,255,.035);
}

.footer-writeus h3 {
    margin-bottom: 18px;
}

.footer-form {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.footer-bottom {
    margin-top: 48px;
}

@media(max-width: 1100px) {
    .footer-impact,
    .footer-grid {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media(max-width: 720px) {
    .footer-impact,
    .footer-grid,
    .footer-impact__stats {
        grid-template-columns: 1fr !important;
    }

    .footer-impact {
        padding: 22px;
    }

    .footer-impact__actions .btn {
        width: 100%;
    }
}

/* Refined about page narrative */
.about-overview {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(310px, .48fr);
    gap: clamp(28px, 5vw, 64px);
    align-items: start;
    padding-top: 38px;
}

.about-overview__copy h2 {
    max-width: 850px;
    margin: 0 0 18px;
    font-size: clamp(2rem, 4vw, 3.45rem);
    line-height: 1.02;
    letter-spacing: -.045em;
}

.about-overview__copy p {
    max-width: 780px;
    color: var(--fcc-gray-600);
    font-size: 1.05rem;
}

.about-overview__stats {
    display: grid;
    gap: 12px;
    padding: 18px;
    border: 1px solid rgba(226, 232, 240, .92);
    border-radius: 8px;
    background: linear-gradient(180deg, #fff, #f8fbff);
    box-shadow: var(--fcc-shadow-soft);
}

.about-overview__stats article {
    padding: 18px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid rgba(226, 232, 240, .85);
}

.about-overview__stats strong {
    display: block;
    color: var(--fcc-red);
    font-family: Manrope, Inter, sans-serif;
    font-size: 2rem;
    line-height: 1;
}

.about-overview__stats span {
    display: block;
    margin-top: 6px;
    color: var(--fcc-gray-600);
    font-weight: 800;
}

.about-editor-content {
    padding: 0 0 34px;
}

.about-editor-content .prose {
    max-width: 900px;
    padding: 28px;
    border-left: 4px solid var(--fcc-red);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--fcc-shadow-soft);
}

.nosotros-mv-grid {
    margin-bottom: 0;
}

.about-deep-links {
    border-block: 1px solid rgba(226, 232, 240, .86);
}

.about-link-card {
    min-height: 170px;
    border-radius: 8px;
}

.about-timeline-compact {
    background: linear-gradient(180deg, #f8fafc, #fff);
    margin-inline: calc(50% - 50vw);
    padding-inline: calc(50vw - 50%);
}

.about-timeline-compact__heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.about-timeline-compact__heading h2 {
    margin: 0;
    font-size: clamp(2rem, 4vw, 3rem);
    letter-spacing: -.04em;
}

.about-milestone-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.about-milestone-card {
    padding: 24px;
    border: 1px solid rgba(226, 232, 240, .92);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--fcc-shadow-soft);
}

.about-milestone-card h3 {
    margin: 8px 0 10px;
    font-family: Manrope, Inter, sans-serif;
    font-size: 1.08rem;
    line-height: 1.2;
}

.about-milestone-card p {
    margin: 0;
    color: var(--fcc-gray-600);
    font-size: .94rem;
    line-height: 1.62;
}

.about-history-modal[hidden] {
    display: none;
}

.about-history-modal {
    position: fixed;
    inset: 0;
    z-index: 6000;
    display: grid;
    place-items: center;
    padding: clamp(16px, 3vw, 32px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, visibility .22s ease;
}

.about-history-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.about-history-modal__backdrop {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 15% 18%, rgba(30, 163, 218, .22), transparent 28%),
        radial-gradient(circle at 85% 12%, rgba(185, 7, 0, .2), transparent 30%),
        rgba(4, 10, 24, .78);
    backdrop-filter: blur(16px);
}

.about-history-modal__panel {
    position: relative;
    z-index: 1;
    width: min(980px, 100%);
    max-height: min(88vh, 920px);
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid rgba(226, 232, 240, .9);
    border-radius: 12px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(248, 251, 255, .98)),
        #fff;
    box-shadow: 0 34px 90px rgba(2, 8, 23, .36);
    transform: translateY(14px) scale(.985);
    transition: transform .22s ease;
}

.about-history-modal.is-open .about-history-modal__panel {
    transform: translateY(0) scale(1);
}

.about-history-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 24px;
    border-bottom: 1px solid rgba(226, 232, 240, .9);
    background: rgba(255, 255, 255, .92);
}

.about-history-modal__brand {
    display: flex;
    align-items: center;
    min-width: 0;
}

.about-history-modal__logo {
    width: auto;
    max-width: min(220px, 52vw);
    max-height: 62px;
    object-fit: contain;
}

.about-history-modal__close {
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 8px;
    background: #fff;
    color: var(--fcc-ink);
    font-family: Inter, system-ui, sans-serif;
    font-weight: 900;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, transform .2s ease, border-color .2s ease;
}

.about-history-modal__close:hover,
.about-history-modal__close:focus-visible {
    border-color: var(--fcc-red);
    background: var(--fcc-red);
    color: #fff;
    outline: none;
    transform: translateY(-1px);
}

.about-history-modal__intro {
    padding: 28px 34px 20px;
    background:
        linear-gradient(135deg, rgba(239, 246, 255, .72), rgba(255, 247, 246, .64)),
        #fff;
}

.about-history-modal__intro h2 {
    margin: 8px 0 10px;
    color: var(--fcc-ink);
    font-family: Manrope, Inter, sans-serif;
    font-size: clamp(2rem, 4vw, 3.35rem);
    line-height: 1;
    letter-spacing: -.04em;
}

.about-history-modal__intro p {
    max-width: 740px;
    margin: 0;
    color: var(--fcc-gray-600);
    font-size: 1.02rem;
    line-height: 1.65;
}

.about-history-modal__body {
    min-height: 0;
    padding: 30px 34px 36px;
    overflow-y: auto;
    color: var(--fcc-ink);
    background:
        linear-gradient(90deg, rgba(185, 7, 0, .08) 1px, transparent 1px) 0 0 / 42px 42px,
        #fff;
    scrollbar-color: rgba(185, 7, 0, .45) rgba(226, 232, 240, .8);
}

.about-history-modal__body p {
    max-width: 820px;
    margin: 0 auto 18px;
    color: #273244;
    font-size: 1.02rem;
    line-height: 1.85;
}

.about-history-modal__body p:first-child {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--fcc-ink);
}

.about-history-modal__body p:last-child {
    margin-bottom: 0;
    padding: 18px 20px;
    border-left: 4px solid var(--fcc-red);
    border-radius: 8px;
    background: rgba(248, 250, 252, .94);
    font-weight: 800;
}

.nosotros-team-section {
    padding-bottom: 88px;
}

@media(max-width: 980px) {
    .about-overview,
    .about-milestone-grid {
        grid-template-columns: 1fr 1fr;
    }

    .about-timeline-compact__heading {
        align-items: stretch;
        flex-direction: column;
    }

@media(max-width: 640px) {
    .about-overview,
    .about-milestone-grid {
        grid-template-columns: 1fr;
    }

    .about-history-modal {
        padding: 10px;
    }

    .about-history-modal__panel {
        max-height: calc(100vh - 20px);
        border-radius: 10px;
    }

    .about-history-modal__header {
        padding: 16px;
    }

    .about-history-modal__logo {
        max-width: 150px;
        max-height: 48px;
    }

    .about-history-modal__intro,
    .about-history-modal__body {
        padding-inline: 20px;
    }

    .about-history-modal__body p {
        font-size: .98rem;
        line-height: 1.75;
    }
}

/* Internal page hero spacing and subtle background texture */
.contacto-main.page-main,
.nosotros-main.page-main,
.institutional-page.page-main,
.services-page.page-main {
    padding-top: 0;
}

.contacto-hero,
.nosotros-hero,
.institutional-hero,
.services-page-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.contacto-hero,
.nosotros-hero {
    padding: clamp(62px, 7vw, 88px) 0 clamp(48px, 6vw, 66px);
    margin-bottom: clamp(34px, 5vw, 48px);
    background:
        radial-gradient(circle at 8% 32%, rgba(30, 163, 218, .13), transparent 28%),
        radial-gradient(circle at 92% 18%, rgba(185, 7, 0, .055), transparent 24%),
        linear-gradient(135deg, #ffffff 0%, #fbfcff 58%, #fff8f6 100%);
}

.contacto-hero::before,
.nosotros-hero::before,
.institutional-hero::before,
.services-page-hero::before {
    content: "";
    position: absolute;
    inset: -18% -8%;
    z-index: -1;
    pointer-events: none;
    opacity: .32;
    background-image: url("data:image/svg+xml,%3Csvg width='520' height='320' viewBox='0 0 520 320' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23b90700' stroke-width='2.2' opacity='.55'%3E%3Cpath d='M-30 84c54-48 111-66 170-54 66 13 83 71 35 111-36 30-94 23-104 66-8 34 27 55 67 60 82 11 99-65 151-53 39 9 34 58 5 83'/%3E%3Cpath d='M248-28c-12 49 2 86 43 111 43 26 91 20 107 62 17 44-27 80-72 73-59-9-76-79-129-62-44 14-54 77-31 121'/%3E%3Cpath d='M402-22c50 45 61 91 35 140-19 36-64 72-43 112 22 42 95 27 151 72'/%3E%3Cpath d='M-42 218c42-15 74-9 96 18 33 41 16 94 64 110 42 14 76-25 111-53 46-37 91-33 136 12'/%3E%3C/g%3E%3C/svg%3E");
    background-size: 520px 320px;
    background-position: left top;
}

.contacto-hero::after,
.nosotros-hero::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -1px;
    width: min(760px, 82vw);
    height: 1px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent, rgba(185, 7, 0, .24), transparent);
}

.contacto-hero .container,
.nosotros-hero .container,
.institutional-hero .container,
.services-page-hero .container {
    position: relative;
    z-index: 1;
}

@media(max-width: 640px) {
    .contacto-hero,
    .nosotros-hero {
        padding-top: 48px;
    }

    .contacto-hero::before,
    .nosotros-hero::before,
    .institutional-hero::before,
    .services-page-hero::before {
        opacity: .2;
        background-size: 420px 258px;
    }
}

@media(max-width: 640px) {
    .hero {
        background: linear-gradient(180deg, #fff 0%, #f6fbff 100%);
    }

    .hero-grid {
        gap: 28px;
    }

    .hero h1 {
        font-size: 2.58rem;
        line-height: 1.08;
        letter-spacing: 0;
    }

    .lead {
        font-size: 1rem;
        line-height: 1.65;
    }

    .hero-actions {
        margin-top: 22px;
    }

    .trust-row {
        gap: 10px;
        margin-top: 18px;
    }

    .trust-row span {
        width: 100%;
        background: #fff;
        border: 1px solid var(--fcc-gray-100);
        border-radius: 14px;
        padding: 11px 13px;
    }

    .hero-photo-card {
        min-height: 320px;
    }

    .hero-photo-placeholder {
        height: 292px;
        padding: 24px;
    }

    .floating-impact-card {
        position: relative;
        left: auto;
        right: auto;
        bottom: auto;
        margin: 18px 0 0;
        max-width: none;
    }

    .hero-badge-card {
        top: 16px;
        right: 16px;
    }
}

/* Blog archive guardrails: keep the featured image inside its grid column. */
.archive-main .featured-post-card {
    display: grid !important;
    grid-template-columns: minmax(0, 1.12fr) minmax(320px, 0.78fr) !important;
    gap: 0 !important;
    align-items: stretch !important;
    overflow: hidden !important;
    isolation: isolate;
}

.archive-main .featured-post-card__media {
    grid-column: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 430px !important;
    aspect-ratio: auto !important;
    align-self: stretch !important;
    z-index: 0;
}

.archive-main .featured-post-card__media img,
.archive-main .featured-post-card__media .wp-post-image {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.archive-main .featured-post-card__body {
    grid-column: 2 !important;
    min-width: 0 !important;
    padding: clamp(28px, 4vw, 48px) !important;
    background: #fff;
    z-index: 1;
}

@media(max-width: 980px) {
    .archive-main .featured-post-card {
        grid-template-columns: 1fr !important;
    }

    .archive-main .featured-post-card__media,
    .archive-main .featured-post-card__body {
        grid-column: 1 !important;
    }

    .archive-main .featured-post-card__media {
        min-height: 320px !important;
    }
}

@media(max-width: 640px) {
    .archive-main .featured-post-card__media {
        min-height: 230px !important;
    }
}
