/* Custom CSS for Masjid Al-Amin Website */

/* ================================== */
/* == 1. GLOBAL & FONT DEFINITIONS == */
/* ================================== */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,700;1,400;1,700&family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800&display=swap');

:root {
    --primary: #16a34a;
    --primary-light: #4ade80;
    --accent: #fbbf24;
    --bg: #f8fafc;
    --text: #222;
    --text-muted: #6c757d;
    --white: #fff;
    --shadow: 0 4px 24px rgba(22, 163, 74, 0.10);
}

* {
    box-sizing: border-box;
}
html {
    overflow-x: hidden;
}
body {
    font-family: 'Poppins', Arial, sans-serif;
    background: var(--bg);
    color: var(--text);
    margin: 0;
    padding: 0;
    font-size: 16px;
}
p {
    line-height: 1.7;
}

/* ================================== */
/* == 2. KOMPONEN WEBSITE UTAMA    == */
/* ================================== */

/* --- Navigation --- */
.navbar {
    background: rgba(255,255,255,0.85);
    box-shadow: var(--shadow);
    padding: 0.7rem 0;
    transition: background-color 0.3s;
}
.navbar .navbar-brand {
    font-weight: 700;
    font-size: 1.5rem;
    color: var(--primary);
    letter-spacing: 1px;
    display: flex;
    align-items: center;
}
.navbar .navbar-brand i {
    font-size: 1.7rem;
    margin-right: 8px;
    color: var(--primary-light);
}
.navbar .nav-link {
    color: var(--text);
    font-weight: 500;
    margin-left: 1.2rem;
    transition: color 0.2s;
}
.navbar .nav-link.active, .navbar .nav-link:hover {
    color: var(--primary);
}

/* --- Hero Section (Homepage Carousel) --- */
.hero-section .carousel-item {
    height: 85vh;
    min-height: 450px;
    background-size: cover;
    background-position: center;
    position: relative;
}
.hero-section .carousel-item::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.35);
}
.hero-section .hero-content {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 2;
    color: var(--white);
    text-align: center;
    padding: 0 24px;
}
.hero-section .hero-content h1 {
    font-size: 2.7rem;
    font-weight: 700;
    margin-bottom: 1rem;
    text-shadow: 0 2px 8px rgba(0,0,0,.3);
}

/* --- Halaman Standar (DKM, Sejarah, dll.) --- */
.page-content {
    padding-top: 100px;
    padding-bottom: 50px;
}
.page-header .page-title {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--primary);
}
.page-header .page-subtitle {
    font-size: 1.2rem;
    color: var(--text-muted);
}
.sub-section-title {
    font-size: 1.75rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
}

/* --- General Sections & Cards --- */
.section-title {
    font-size: 2rem;
    font-weight: 700;
    color: var(--primary);
    margin-bottom: 1.5rem;
    text-align: center;
}
.card-modern {
    background: var(--white);
    border-radius: 18px;
    box-shadow: var(--shadow);
    padding: 2rem 1.5rem;
    margin-bottom: 2rem;
    transition: box-shadow 0.2s;
}
.card-modern:hover {
    box-shadow: 0 8px 32px rgba(22,163,74,0.18);
}
/* ... (Gaya komponen lain seperti prayer-card, profile-section, dll, tetap sama) ... */
.prayer-times-grid{display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:center}.prayer-card{flex:1 1 120px;min-width:120px;max-width:160px;background:linear-gradient(120deg,var(--primary-light) 0%,var(--primary) 100%);color:#fff;border-radius:14px;padding:1.2rem .7rem;text-align:center;box-shadow:0 2px 8px rgba(22,163,74,.1);font-size:1.1rem;font-weight:600;position:relative}.prayer-card .icon{font-size:1.7rem;margin-bottom:.3rem;color:var(--accent)}.prayer-card.next{border:2.5px solid var(--accent);color:var(--accent);background:var(--white)}.profile-section{display:flex;flex-wrap:wrap;gap:2rem;align-items:flex-start}.profile-img-container{flex:1 1 400px;max-width:720px;box-shadow:var(--shadow);border-radius:18px;overflow:hidden}.profile-carousel-img{aspect-ratio:16 / 9;object-fit:cover;width:100%}.profile-info{flex:1 1 320px}.facility-card-simple{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px 10px;background-color:#fff;border-radius:12px;border:1px solid #e2e8f0;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;height:100%}.facility-card-simple:hover{transform:translateY(-5px);box-shadow:0 8px 25px rgba(0,0,0,.07)}.facility-icon{font-size:2rem;color:#16a34a;margin-bottom:12px}.facility-text{font-size:.9rem;font-weight:500;color:#4a5568}#profilMasjidCarousel .carousel-inner{border-radius:12px}#profilMasjidCarousel img{aspect-ratio:4 / 3;object-fit:cover}.facility-grid{display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:center;margin-top:1.5rem}.facility-card{flex:1 1 120px;min-width:120px;max-width:160px;background:var(--white);border-radius:14px;box-shadow:0 2px 8px rgba(22,163,74,.1);text-align:center;padding:1.2rem .7rem;font-size:1rem;font-weight:500;cursor:pointer;transition:transform .2s,box-shadow .2s}.facility-card:hover{transform:translateY(-4px);box-shadow:0 6px 16px rgba(22,163,74,.15)}.facility-card .icon{font-size:1.5rem;color:var(--primary);margin-bottom:.3rem}.contact-section{display:flex;flex-wrap:wrap;gap:2rem;align-items:stretch}.contact-card{flex:1 1 320px;background:var(--white);border-radius:18px;box-shadow:var(--shadow);padding:2rem 1.5rem}.map-embed{flex:1 1 400px;width:100%;min-height:350px;border-radius:18px;border:none;box-shadow:var(--shadow)}.footer{background:var(--primary);color:var(--white);text-align:center;padding:1.5rem 0;margin-top:2rem}.footer .social-links a{color:var(--white);margin:0 .5rem;font-size:1.3rem;transition:color .2s}.footer .social-links a:hover{color:var(--accent)}


/* --- Berita di Halaman Utama --- */
.content-item {
    display: flex;
    gap: 25px;
    align-items: flex-start;
    padding: 20px;
    background-color: var(--white);
    border-radius: 18px;
    box-shadow: var(--shadow);
    transition: box-shadow 0.2s;
}
.content-item:hover {
    box-shadow: 0 8px 32px rgba(22,163,74,0.18);
}
.content-image {
    flex: 0 0 220px;
}
.content-image img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    display: block;
}
.content-text {
    flex: 1 1 auto;
}
.content-text h3 {
    margin-top: 0;
    font-size: 1.5rem;
    font-weight: 600;
}

/* --- Footer --- */
.footer {
    background: var(--primary);
    color: var(--white);
    text-align: center;
    padding: 1.5rem 0;
    margin-top: 2rem;
}
.footer .social-links a {
    color: var(--white);
    margin: 0 0.5rem;
    font-size: 1.3rem;
    transition: color 0.2s;
}
.footer .social-links a:hover {
    color: var(--accent);
}

/* ==================================================== */
/* == 3. GAYA & PERBAIKAN UNTUK TEMA HALAMAN ARTIKEL == */
/* ==================================================== */

.body-artikel {
    font-size: 19px;
    color: #343a40;
    font-family: 'Lora', 'Times New Roman', serif;
    padding-top: 72px; 
}
.body-artikel p {
    line-height: 1.7;
    margin: 30px 0;
}
.body-artikel h1, .body-artikel h2, .body-artikel h3, .body-artikel h4, .body-artikel h5, .body-artikel h6 {
    font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 800;
}

/* --- Navbar di Halaman Artikel --- */
.body-artikel .navbar {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1030;
    background-color: transparent !important;
    box-shadow: none !important;
    transition: background-color 0.3s ease-in-out;
}
.body-artikel .navbar .nav-link,
.body-artikel .navbar .navbar-brand {
    color: var(--white) !important;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.6);
}
.body-artikel .navbar .navbar-toggler-icon {
    filter: brightness(0) invert(1);
}

/* --- Efek scroll pada Navbar Artikel --- */
.body-artikel .navbar-scrolled {
    background-color: var(--white) !important;
    box-shadow: var(--shadow) !important;
}
.body-artikel .navbar-scrolled .nav-link,
.body-artikel .navbar-scrolled .navbar-brand {
    color: var(--primary) !important;
    text-shadow: none;
}
.body-artikel .navbar-scrolled .navbar-toggler-icon {
    filter: none;
}

/* --- Header Gambar (Masthead) Artikel --- */
.body-artikel .masthead {
    margin-top: -72px;
    position: relative;
    padding: 8rem 0;
    background: no-repeat center center;
    background-size: cover;
}
.body-artikel .masthead::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: rgba(0, 0, 0, 0.45);
}
.body-artikel .masthead .post-heading {
    color: white;
    text-align: center;
    position: relative;
    z-index: 2;
    padding: 2rem 0;
}
.body-artikel .masthead .post-heading h1 { font-size: 45px; }
.body-artikel .masthead .post-heading .subheading { font-size: 22px; font-weight: 300; }
.body-artikel .masthead .post-heading .meta { font-size: 18px; font-style: italic; margin-top: 20px; }

/* --- Konten Artikel --- */
.article-content .section-heading { font-size: 32px; font-weight: 700; margin-top: 50px; }
.article-content .blockquote { font-style: italic; color: var(--text-muted); border-left: 4px solid #e9ecef; padding-left: 20px; margin: 30px 0; }
.article-content .caption { font-size: 14px; font-style: italic; display: block; text-align: center; color: var(--text-muted); margin: 10px 0 30px; }
.article-content img { border-radius: 8px; }

/* ======================================= */
/* == 4. RESPONSIVE DESIGN & PENYESUAIAN == */
/* ======================================= */

@media (max-width: 992px) {
    .profile-section, .contact-section {
        flex-direction: column;
        gap: 2rem;
    }
}

@media (max-width: 768px) {
    /* Ukuran font di layar kecil */
    .hero-section .hero-content h1 { font-size: 2rem; }
    .section-title { font-size: 1.75rem; }
    .body-artikel .masthead .post-heading h1 { font-size: 32px; }
    .body-artikel .masthead .post-heading .subheading { font-size: 18px; }

    /* Layout berita di homepage menjadi vertikal */
    .content-item {
        flex-direction: column;
        gap: 15px;
    }
    .content-image {
        flex-basis: auto;
        width: 100%;
    }
}