:root {
    --fbi-primary: #075b3a;
    --fbi-secondary: #0b8f55;
    --fbi-ink: #153229;
    --fbi-muted: #60756e;
    --fbi-soft: #f2f7f4;
    --fbi-border: #dce9e2;
    --fbi-white: #fff;
    --fbi-shadow: 0 18px 50px rgba(7, 91, 58, .10);
}

html { scroll-behavior: smooth; }
body { color: var(--fbi-ink); background: var(--fbi-white); font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif; }
a { color: var(--fbi-primary); }
.text-primary-fbi { color: var(--fbi-primary) !important; }
.bg-primary-fbi { background-color: var(--fbi-primary) !important; }
.bg-soft { background-color: var(--fbi-soft); }
.section-space { padding: 5rem 0; }
.eyebrow { color: var(--fbi-secondary); font-weight: 800; font-size: .78rem; letter-spacing: .13em; text-transform: uppercase; }
.section-title { color: var(--fbi-primary); font-weight: 800; letter-spacing: -.035em; }

.site-header { background: rgba(255,255,255,.97); border-bottom: 1px solid rgba(7,91,58,.1); backdrop-filter: blur(14px); }
.navbar-brand { max-width: 255px; color: var(--fbi-primary); font-weight: 800; line-height: 1.05; }
.brand-logo { width: 62px; height: 62px; object-fit: contain; border-radius: 50%; background: #fff; }
.brand-text small { display: block; color: var(--fbi-muted); font-size: .7rem; font-weight: 650; letter-spacing: .05em; }
.navbar .nav-link { color: var(--fbi-ink); font-weight: 650; padding: .65rem .9rem !important; border-radius: .65rem; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--fbi-primary); background: var(--fbi-soft); }
.dropdown-menu { border: 1px solid var(--fbi-border); border-radius: .9rem; box-shadow: var(--fbi-shadow); padding: .55rem; }
.dropdown-item { border-radius: .55rem; padding: .65rem .8rem; }
.dropdown-item:active, .dropdown-item:hover { background: var(--fbi-soft); color: var(--fbi-primary); }

.hero-carousel, .hero-carousel .carousel-item { position: relative; height: clamp(500px, 44vw, 650px); max-height: 650px; min-height: 500px; overflow: hidden; background: #073d2b; }
.hero-slide-image { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-slide-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2, 26, 18, .88) 0%, rgba(2, 34, 22, .63) 36%, rgba(2, 24, 17, .12) 72%, rgba(2, 24, 17, .05) 100%); }
.hero-slide-content { position: absolute; inset: 0; display: flex; align-items: center; color: #fff; }
.hero-slide-copy { max-width: 720px; padding: 3rem 4.5rem 4rem 0; }
.hero-kicker { color: #b6f0cb; font-size: .78rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.hero-title { color: #fff; font-size: clamp(2.6rem, 5.5vw, 5.2rem); font-weight: 850; line-height: .98; letter-spacing: -.055em; text-shadow: 0 3px 24px rgba(0,0,0,.28); }
.hero-copy { max-width: 650px; color: rgba(255,255,255,.9); font-size: clamp(1rem, 1.8vw, 1.2rem); text-shadow: 0 2px 12px rgba(0,0,0,.25); }
.btn-hero { color: var(--fbi-primary); background: #fff; border: 2px solid #fff; border-radius: .8rem; padding: .82rem 1.2rem; font-weight: 800; }
.btn-hero:hover { color: #fff; background: var(--fbi-secondary); border-color: var(--fbi-secondary); transform: translateY(-1px); }
.hero-carousel .carousel-indicators { margin-bottom: 1.5rem; }
.hero-carousel .carousel-indicators [data-bs-target] { width: 34px; height: 4px; border: 0; border-radius: 4px; }
.hero-carousel .carousel-control-prev, .hero-carousel .carousel-control-next { width: 7%; }
.btn-fbi { background: var(--fbi-primary); color: #fff; border: 2px solid var(--fbi-primary); font-weight: 750; padding: .8rem 1.2rem; border-radius: .8rem; }
.btn-fbi:hover { background: var(--fbi-secondary); border-color: var(--fbi-secondary); color: #fff; transform: translateY(-1px); }
.btn-outline-fbi { border: 2px solid var(--fbi-primary); color: var(--fbi-primary); font-weight: 750; padding: .8rem 1.2rem; border-radius: .8rem; }
.btn-outline-fbi:hover { background: var(--fbi-primary); color: #fff; }

.feature-card, .content-card, .service-card { height: 100%; background: #fff; border: 1px solid var(--fbi-border); border-radius: 1.2rem; padding: 1.6rem; box-shadow: 0 10px 30px rgba(7,91,58,.06); transition: .2s ease; }
.feature-card:hover, .service-card:hover { transform: translateY(-4px); box-shadow: var(--fbi-shadow); }
.icon-box { width: 52px; height: 52px; display: grid; place-items: center; border-radius: .9rem; background: var(--fbi-soft); color: var(--fbi-primary); font-size: 1.45rem; }
.page-hero { padding: 5rem 0 3.5rem; background: linear-gradient(135deg, var(--fbi-primary), color-mix(in srgb, var(--fbi-primary) 70%, #000)); color: #fff; }
.page-hero h1 { font-weight: 850; letter-spacing: -.045em; }
.page-hero .eyebrow { color: #97e6ba; }

.schedule-row { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 1rem; padding: 1.15rem 1.25rem; border-bottom: 1px solid var(--fbi-border); align-items: center; }
.schedule-row:last-child { border-bottom: 0; }
.schedule-row strong { color: var(--fbi-primary); }
.form-control, .form-select { border-color: #cddfd5; border-radius: .75rem; padding: .75rem .9rem; }
.form-control:focus, .form-select:focus { border-color: var(--fbi-secondary); box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--fbi-secondary) 18%, transparent); }
.form-label { color: var(--fbi-ink); font-weight: 700; }
.required::after { content: " *"; color: #b42318; }
.privacy-box { background: var(--fbi-soft); border: 1px solid var(--fbi-border); border-radius: .9rem; padding: 1rem; }
.alert { border: 0; border-radius: .9rem; }
.footer { color: rgba(255,255,255,.82); background: #043c28; }
.footer a { color: #fff; text-decoration: none; }
.footer a:hover { color: #9be5bb; }

.admin-body { background: #f1f6f3; min-height: 100vh; }
.admin-sidebar { width: 275px; min-height: 100vh; position: fixed; inset: 0 auto 0 0; background: #043c28; color: #fff; padding: 1.4rem; z-index: 1030; }
.admin-brand img { width: 54px; height: 54px; border-radius: 50%; object-fit: contain; background: #fff; }
.admin-nav a { display: flex; align-items: center; gap: .75rem; padding: .78rem .9rem; margin-bottom: .35rem; border-radius: .7rem; color: rgba(255,255,255,.78); text-decoration: none; font-weight: 650; }
.admin-nav a:hover, .admin-nav a.active { color: #fff; background: rgba(255,255,255,.12); }
.admin-main { margin-left: 275px; padding: 2rem; }
.stat-card { background: #fff; border: 1px solid var(--fbi-border); border-radius: 1rem; padding: 1.3rem; }
.table-card { background: #fff; border: 1px solid var(--fbi-border); border-radius: 1rem; overflow: hidden; }
.table > :not(caption) > * > * { padding: .9rem 1rem; border-color: var(--fbi-border); }
.badge-pending { color: #854d0e; background: #fef3c7; }
.badge-approved { color: #166534; background: #dcfce7; }
.badge-rejected { color: #991b1b; background: #fee2e2; }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 1.5rem; background: linear-gradient(135deg, #043c28, var(--fbi-primary)); }
.login-card { width: min(100%, 440px); background: #fff; border-radius: 1.4rem; padding: 2rem; box-shadow: 0 25px 80px rgba(0,0,0,.25); }
.slide-admin-preview-wrap { min-height: 280px; background: #dfeae4; }
.slide-admin-preview { width: 100%; height: 100%; min-height: 280px; object-fit: cover; }
.about-main-image { width: 100%; max-height: 540px; object-fit: cover; }
.history-stat { display: grid; place-items: center; min-height: 110px; padding: 1rem; border-radius: 1rem; background: var(--fbi-soft); border: 1px solid var(--fbi-border); text-align: center; }
.history-stat strong { color: var(--fbi-primary); font-size: clamp(1.7rem, 4vw, 2.6rem); line-height: 1; }
.history-stat span { color: var(--fbi-muted); font-size: .82rem; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.timeline-card { display: grid; grid-template-columns: minmax(155px, 38%) 1fr; gap: 1.4rem; align-items: center; height: 100%; padding: 1rem; background: #fff; border: 1px solid var(--fbi-border); border-radius: 1.2rem; box-shadow: 0 10px 30px rgba(7,91,58,.06); }
.timeline-card img { width: 100%; height: 190px; object-fit: cover; border-radius: .9rem; }
.timeline-year { display: inline-block; color: #fff; background: var(--fbi-primary); border-radius: 999px; padding: .35rem .7rem; margin-bottom: .7rem; font-size: .78rem; font-weight: 800; letter-spacing: .06em; }
.value-item { display: flex; align-items: flex-start; gap: .8rem; height: 100%; padding: 1rem; border: 1px solid var(--fbi-border); border-radius: .9rem; background: #fff; }
.value-item > i { color: var(--fbi-secondary); font-size: 1.25rem; }
.value-item strong, .value-item span { display: block; }
.value-item span { color: var(--fbi-muted); font-size: .92rem; }
.service-image-card, .raffle-product-card { height: 100%; overflow: hidden; background: #fff; border: 1px solid var(--fbi-border); border-radius: 1.2rem; box-shadow: 0 10px 30px rgba(7,91,58,.07); }
.service-image-card img { width: 100%; height: 310px; object-fit: cover; }
.contact-locations { display: grid; gap: .9rem; }
.contact-location { display: flex; align-items: flex-start; gap: .8rem; padding-bottom: .9rem; border-bottom: 1px solid var(--fbi-border); }
.contact-location:last-child { border-bottom: 0; }
.contact-location > i { color: var(--fbi-secondary); }
.contact-location strong, .contact-location span { display: block; }
.contact-location span { color: var(--fbi-muted); font-size: .92rem; }
.contact-gallery { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; }
.contact-gallery figure { grid-column: span 2; margin: 0; overflow: hidden; border-radius: 1rem; background: #fff; border: 1px solid var(--fbi-border); }
.contact-gallery figure:nth-child(4), .contact-gallery figure:nth-child(5) { grid-column: span 3; }
.contact-gallery img { width: 100%; height: 250px; object-fit: cover; }
.contact-gallery figcaption { padding: .9rem 1rem; color: var(--fbi-primary); font-weight: 750; }
.raffle-hero { background: linear-gradient(135deg, #043c28, #816400); }
.raffle-product-card img { width: 100%; height: 260px; object-fit: cover; }
.raffle-admin-image { width: 100%; height: 300px; object-fit: cover; background: var(--fbi-soft); }
.photo-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.photo-gallery-item { margin: 0; overflow: hidden; border-radius: 1rem; background: #fff; border: 1px solid var(--fbi-border); box-shadow: 0 10px 30px rgba(7,91,58,.06); }
.photo-gallery-link { position: relative; display: block; overflow: hidden; }
.photo-gallery-link img { width: 100%; height: 260px; object-fit: cover; transition: transform .35s ease; }
.photo-gallery-link:hover img { transform: scale(1.06); }
.photo-gallery-zoom { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.6rem; background: rgba(4,60,40,.45); opacity: 0; transition: opacity .25s ease; }
.photo-gallery-link:hover .photo-gallery-zoom, .photo-gallery-link:focus-visible .photo-gallery-zoom { opacity: 1; }
.photo-gallery figcaption { padding: .9rem 1rem; color: var(--fbi-primary); font-weight: 750; }
.gallery-admin-preview { width: 100%; height: 100%; min-height: 240px; object-fit: cover; background: var(--fbi-soft); }
.gallery-lightbox-image { max-height: 80vh; width: auto; margin: 0 auto; }
.gallery-lightbox-caption { text-shadow: 0 1px 6px rgba(0,0,0,.6); }

@media (max-width: 991.98px) {
    .hero-carousel, .hero-carousel .carousel-item { height: 580px; min-height: 580px; }
    .hero-slide-shade { background: linear-gradient(90deg, rgba(2,26,18,.86), rgba(2,26,18,.35)); }
    .hero-slide-copy { max-width: 82%; padding-right: 2rem; }
    .navbar-collapse { padding: 1rem 0; }
    .admin-sidebar { position: static; width: 100%; min-height: auto; }
    .admin-main { margin-left: 0; padding: 1.2rem; }
    .contact-gallery figure, .contact-gallery figure:nth-child(4), .contact-gallery figure:nth-child(5) { grid-column: span 3; }
    .photo-gallery { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 575.98px) {
    .brand-text { display: none; }
    .brand-logo { width: 52px; height: 52px; }
    .section-space { padding: 3.5rem 0; }
    .schedule-row { grid-template-columns: 1fr; gap: .25rem; }
    .hero-carousel, .hero-carousel .carousel-item { height: 520px; min-height: 520px; }
    .hero-slide-image { object-position: 64% center; }
    .hero-slide-shade { background: linear-gradient(90deg, rgba(2,26,18,.86), rgba(2,26,18,.48)); }
    .hero-slide-copy { max-width: 92%; padding: 2rem 2.4rem 3.5rem 0; }
    .hero-title { font-size: 2.55rem; }
    .hero-carousel .carousel-control-prev, .hero-carousel .carousel-control-next { width: 12%; }
    .timeline-card { grid-template-columns: 1fr; }
    .timeline-card img { height: 220px; }
    .contact-gallery { grid-template-columns: 1fr; }
    .contact-gallery figure, .contact-gallery figure:nth-child(4), .contact-gallery figure:nth-child(5) { grid-column: auto; }
    .photo-gallery { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .carousel-item { transition: none; }
}
