/* =========================================================
   DONOR YUK
   USER LANDING PAGE
   RSUD TELUK KUANTAN
   ========================================================= */

/* =========================================================
   ROOT
========================================================= */

:root {
    --red: #dc2626;
    --red-dark: #b91c1c;
    --red-deep: #991b1b;
    --red-light: #fee2e2;
    --red-soft: #fff5f5;

    --green: #10b981;
    --green-dark: #059669;
    --green-soft: #ecfdf5;

    --blue: #2563eb;
    --blue-soft: #eff6ff;

    --slate-50: #f8fafc;
    --slate-100: #f1f5f9;
    --slate-200: #e2e8f0;
    --slate-300: #cbd5e1;
    --slate-400: #94a3b8;
    --slate-500: #64748b;
    --slate-600: #475569;
    --slate-700: #334155;
    --slate-800: #1e293b;
    --slate-900: #0f172a;

    --white: #ffffff;

    --shadow-sm:
        0 2px 8px rgba(15, 23, 42, 0.05);

    --shadow-md:
        0 10px 30px rgba(15, 23, 42, 0.08);

    --shadow-lg:
        0 20px 50px rgba(15, 23, 42, 0.12);

    --shadow-xl:
        0 30px 70px rgba(15, 23, 42, 0.16);

    --radius-sm: 10px;
    --radius-md: 14px;
    --radius-lg: 20px;
    --radius-xl: 28px;

    --transition:
        all .25s ease;

    --transition-slow:
        all .4s cubic-bezier(.4, 0, .2, 1);
}


/* =========================================================
   RESET
========================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 90px;
}

body {
    margin: 0;
    padding: 0;

    font-family:
        'Inter',
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        'Segoe UI',
        sans-serif;

    background: var(--white);
    color: var(--slate-800);

    line-height: 1.6;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body::selection {
    background: rgba(220, 38, 38, .18);
    color: var(--red-deep);
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font-family: inherit;
}

img {
    max-width: 100%;
    display: block;
}


/* =========================================================
   FONT
========================================================= */

.heading-font,
.hero-title,
.section-title,
.information-title,
.cta-card h2,
.about-content h2,
.footer-brand-name {
    font-family:
        'Plus Jakarta Sans',
        'Inter',
        sans-serif;
}


/* =========================================================
   CONTAINER
========================================================= */

.container-modern {
    width: min(1200px, calc(100% - 40px));
    margin-inline: auto;
}


/* =========================================================
   NAVBAR
========================================================= */

.navbar-modern {
    height: 76px;

    background:
        linear-gradient(
            135deg,
            rgba(153, 27, 27, .98),
            rgba(220, 38, 38, .97)
        );

    border-bottom:
        1px solid rgba(255, 255, 255, .10);

    transition:
        background .3s ease,
        box-shadow .3s ease,
        backdrop-filter .3s ease,
        height .3s ease;

    z-index: 9999;
}

.navbar-modern.navbar-scrolled {
    background:
        rgba(127, 29, 29, .96);

    box-shadow:
        0 8px 30px rgba(0, 0, 0, .14);

    backdrop-filter: blur(16px);
}

.navbar-inner {
    height: 76px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}


/* =========================================================
   BRAND
========================================================= */

.brand-logo {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    transition: var(--transition);
}

.brand-logo:hover {
    transform: translateY(-1px);
}

.brand-icon {
    width: 43px;
    height: 43px;

    border-radius: 13px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: rgba(255, 255, 255, .98);

    color: var(--red);

    font-size: 18px;

    box-shadow:
        0 7px 18px rgba(0, 0, 0, .15);
}

.brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1;
}

.brand-name {
    color: white;

    font-family:
        'Plus Jakarta Sans',
        sans-serif;

    font-size: 15px;
    font-weight: 800;

    letter-spacing: .03em;
}

.brand-subtitle {
    margin-top: 5px;

    color: rgba(255, 255, 255, .70);

    font-size: 9px;
    font-weight: 600;

    letter-spacing: .12em;
    text-transform: uppercase;
}


/* =========================================================
   DESKTOP NAV
========================================================= */

.desktop-nav {
    display: flex;
    align-items: center;
    gap: 30px;
}

.nav-link {
    position: relative;

    color: rgba(255, 255, 255, .72);

    font-size: 13px;
    font-weight: 700;

    padding: 28px 0;

    transition: var(--transition);
}

.nav-link:hover,
.nav-link.active {
    color: white;
}

.nav-link::after {
    content: "";

    position: absolute;

    left: 50%;
    bottom: 17px;

    width: 0;
    height: 3px;

    border-radius: 99px;

    background: white;

    transform:
        translateX(-50%);

    transition: width .25s ease;
}

.nav-link:hover::after,
.nav-link.active::after {
    width: 22px;
}


/* =========================================================
   NAVBAR ACTION
========================================================= */

.navbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.btn-login {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    min-height: 42px;

    padding:
        0 17px;

    border-radius: 12px;

    background: white;
    color: var(--red);

    font-size: 12px;
    font-weight: 800;

    box-shadow:
        0 7px 18px rgba(0, 0, 0, .12);

    transition: var(--transition);
}

.btn-login:hover {
    background: #fff7f7;

    transform:
        translateY(-2px);

    box-shadow:
        0 12px 25px rgba(0, 0, 0, .16);
}


/* =========================================================
   MOBILE BUTTON
========================================================= */

.mobile-menu-button {
    display: none;

    width: 42px;
    height: 42px;

    border: 1px solid rgba(255,255,255,.15);
    border-radius: 12px;

    background: rgba(255,255,255,.10);

    color: white;

    cursor: pointer;

    font-size: 17px;

    transition: var(--transition);
}

.mobile-menu-button:hover {
    background: rgba(255,255,255,.18);
}


/* =========================================================
   MOBILE MENU
========================================================= */

.mobile-menu {
    display: none;

    position: absolute;

    top: calc(100% + 8px);
    left: 20px;
    right: 20px;

    padding: 10px;

    background: rgba(255,255,255,.98);

    border:
        1px solid rgba(226,232,240,.9);

    border-radius: 18px;

    box-shadow:
        0 25px 60px rgba(15,23,42,.18);

    backdrop-filter: blur(20px);

    transform:
        translateY(-8px);

    opacity: 0;

    transition: var(--transition);
}

.mobile-menu.show {
    display: block;

    opacity: 1;

    transform:
        translateY(0);
}

.mobile-menu > a {
    display: flex;
    align-items: center;
    gap: 12px;

    padding: 13px 14px;

    border-radius: 11px;

    color: var(--slate-600);

    font-size: 13px;
    font-weight: 700;

    transition: var(--transition);
}

.mobile-menu > a i {
    width: 20px;

    color: var(--red);
    text-align: center;
}

.mobile-menu > a:hover {
    background: var(--red-soft);
    color: var(--red);
}

.mobile-menu .mobile-login {
    margin-top: 7px;

    background: var(--red);
    color: white;

    justify-content: center;
}

.mobile-menu .mobile-login i {
    color: white;
}

.mobile-menu .mobile-login:hover {
    background: var(--red-dark);
    color: white;
}


/* =========================================================
   HERO
========================================================= */

.hero-modern {
    position: relative;

    min-height: 720px;

    padding-top: 76px;
    padding-bottom: 80px;

    display: flex;
    align-items: center;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 75% 30%,
            rgba(248, 113, 113, .18),
            transparent 28%
        ),
        radial-gradient(
            circle at 20% 80%,
            rgba(255,255,255,.08),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            #7f1d1d 0%,
            #991b1b 32%,
            #dc2626 72%,
            #b91c1c 100%
        );

    color: white;
}

.hero-content-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.03fr)
        minmax(460px, .97fr);

    gap: 70px;

    align-items: center;

    min-height: 590px;
}


/* =========================================================
   HERO ORBS
========================================================= */

.hero-orb {
    position: absolute;

    border-radius: 50%;

    pointer-events: none;

    filter: blur(.2px);

    background:
        radial-gradient(
            circle,
            rgba(255,255,255,.13),
            rgba(255,255,255,0)
        );

    animation:
        heroFloat 8s ease-in-out infinite;
}

.hero-orb-one {
    width: 480px;
    height: 480px;

    right: -170px;
    top: 30px;
}

.hero-orb-two {
    width: 300px;
    height: 300px;

    left: -140px;
    bottom: -100px;

    animation-delay: -3s;
}

.hero-orb-three {
    width: 150px;
    height: 150px;

    right: 45%;
    top: 10%;

    opacity: .55;

    animation-delay: -5s;
}

@keyframes heroFloat {
    0%,100% {
        transform: translate3d(0,0,0);
    }

    50% {
        transform: translate3d(0,-16px,0);
    }
}


/* =========================================================
   HERO GRID
========================================================= */

.hero-grid {
    position: absolute;
    inset: 0;

    opacity: .12;

    background-image:
        linear-gradient(
            rgba(255,255,255,.18) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.18) 1px,
            transparent 1px
        );

    background-size:
        45px 45px;

    mask-image:
        linear-gradient(
            to bottom,
            black,
            transparent 85%
        );

    pointer-events: none;
}


/* =========================================================
   HERO COPY
========================================================= */

.hero-copy {
    position: relative;
    z-index: 5;
}

.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    padding: 8px 13px;

    border:
        1px solid rgba(255,255,255,.16);

    border-radius: 999px;

    background:
        rgba(255,255,255,.08);

    color: rgba(255,255,255,.92);

    font-size: 10px;
    font-weight: 800;

    letter-spacing: .07em;
    text-transform: uppercase;

    backdrop-filter: blur(10px);
}

.hero-eyebrow i {
    font-size: 9px;

    opacity: .55;
}

.hero-status-dot {
    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: #6ee7b7;

    box-shadow:
        0 0 0 4px rgba(110,231,183,.10);

    animation:
        pulseDot 2s ease-in-out infinite;
}

@keyframes pulseDot {
    0%,100% {
        opacity: 1;
    }

    50% {
        opacity: .55;
    }
}


/* =========================================================
   HERO TITLE
========================================================= */

.hero-title {
    margin: 25px 0 0;

    max-width: 680px;

    font-size:
        clamp(42px, 5.3vw, 67px);

    line-height: 1.04;

    letter-spacing: -.045em;

    font-weight: 800;

    color: white;
}

.hero-title span {
    display: inline-block;

    color: #fecaca;

    background:
        linear-gradient(
            90deg,
            #fee2e2,
            #fca5a5
        );

    -webkit-background-clip: text;
    background-clip: text;

    -webkit-text-fill-color: transparent;
}


/* =========================================================
   HERO DESCRIPTION
========================================================= */

.hero-description {
    max-width: 590px;

    margin-top: 24px;

    color:
        rgba(255,255,255,.76);

    font-size: 16px;

    line-height: 1.8;
}

.hero-description strong {
    color: white;
    font-weight: 800;
}


/* =========================================================
   HERO BUTTONS
========================================================= */

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;

    margin-top: 32px;
}

.hero-btn-primary,
.hero-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    min-height: 52px;

    padding:
        0 19px;

    border-radius: 14px;

    font-size: 13px;
    font-weight: 800;

    transition: var(--transition);
}

.hero-btn-primary {
    background: white;
    color: var(--red);

    box-shadow:
        0 15px 30px rgba(0,0,0,.16);
}

.hero-btn-primary:hover {
    transform: translateY(-3px);

    box-shadow:
        0 20px 40px rgba(0,0,0,.22);
}

.hero-btn-primary > i {
    font-size: 11px;

    transition:
        transform .25s ease;
}

.hero-btn-primary:hover > i {
    transform: translateX(3px);
}

.hero-btn-secondary {
    color: white;

    border:
        1px solid rgba(255,255,255,.20);

    background:
        rgba(255,255,255,.08);

    backdrop-filter: blur(10px);
}

.hero-btn-secondary:hover {
    background:
        rgba(255,255,255,.15);

    border-color:
        rgba(255,255,255,.30);

    transform:
        translateY(-3px);
}

.hero-btn-icon {
    width: 27px;
    height: 27px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 8px;

    background: rgba(220,38,38,.08);
}


/* =========================================================
   HERO TRUST
========================================================= */

.hero-trust {
    display: flex;
    align-items: center;
    flex-wrap: wrap;

    margin-top: 28px;

    gap: 17px;

    color:
        rgba(255,255,255,.68);

    font-size: 11px;
    font-weight: 600;
}

.trust-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.trust-icon {
    color: #a7f3d0;
}

.trust-divider {
    width: 1px;
    height: 17px;

    background:
        rgba(255,255,255,.18);
}


/* =========================================================
   HERO VISUAL
========================================================= */

.hero-visual {
    position: relative;

    min-height: 520px;

    display: flex;
    align-items: center;
    justify-content: center;
}


/* =========================================================
   DASHBOARD
========================================================= */

.hero-dashboard {
    position: relative;

    width: min(100%, 520px);

    padding: 25px;

    border:
        1px solid rgba(255,255,255,.15);

    border-radius: 30px;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.13),
            rgba(255,255,255,.055)
        );

    box-shadow:
        0 35px 80px rgba(50,0,0,.28),
        inset 0 1px 0 rgba(255,255,255,.10);

    backdrop-filter:
        blur(18px);

    overflow: hidden;

    z-index: 2;
}

.hero-dashboard::before {
    content: "";

    position: absolute;

    width: 240px;
    height: 240px;

    right: -100px;
    top: -110px;

    border-radius: 50%;

    background:
        rgba(255,255,255,.08);
}

.hero-dashboard::after {
    content: "";

    position: absolute;

    width: 180px;
    height: 180px;

    left: -100px;
    bottom: -90px;

    border-radius: 50%;

    background:
        rgba(255,255,255,.05);
}

.dashboard-top,
.dashboard-message,
.dashboard-items,
.dashboard-footer {
    position: relative;
    z-index: 2;
}


/* =========================================================
   DASHBOARD TOP
========================================================= */

.dashboard-top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding-bottom: 19px;

    border-bottom:
        1px solid rgba(255,255,255,.10);
}

.dashboard-brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.dashboard-brand-icon {
    width: 43px;
    height: 43px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 13px;

    background: white;
    color: var(--red);

    box-shadow:
        0 8px 20px rgba(0,0,0,.12);
}

.dashboard-brand-name {
    color: white;

    font-size: 13px;
    font-weight: 800;
}

.dashboard-brand-sub {
    margin-top: 2px;

    color:
        rgba(255,255,255,.48);

    font-size: 10px;
}

.dashboard-active {
    display: inline-flex;
    align-items: center;
    gap: 7px;

    padding:
        6px 9px;

    border-radius: 999px;

    background:
        rgba(16,185,129,.10);

    border:
        1px solid rgba(110,231,183,.18);

    color: #a7f3d0;

    font-size: 9px;
    font-weight: 800;

    letter-spacing: .07em;
}

.dashboard-active span {
    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: #34d399;

    box-shadow:
        0 0 0 4px rgba(52,211,153,.10);
}


/* =========================================================
   DASHBOARD MESSAGE
========================================================= */

.dashboard-message {
    padding:
        38px 4px 30px;
}

.dashboard-label {
    color:
        rgba(254,202,202,.65);

    font-size: 9px;
    font-weight: 800;

    letter-spacing: .14em;
}

.dashboard-title {
    margin-top: 9px;

    color: white;

    font-family:
        'Plus Jakarta Sans',
        sans-serif;

    font-size: 29px;
    line-height: 1.15;

    font-weight: 800;

    letter-spacing: -.035em;
}

.dashboard-title span {
    color: #fecaca;
}

.dashboard-message p {
    margin-top: 11px;

    max-width: 390px;

    color:
        rgba(255,255,255,.55);

    font-size: 12px;

    line-height: 1.7;
}


/* =========================================================
   DASHBOARD ITEMS
========================================================= */

.dashboard-items {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 10px;
}

.dashboard-item {
    min-height: 130px;

    padding: 15px;

    border:
        1px solid rgba(255,255,255,.09);

    border-radius: 17px;

    background:
        rgba(255,255,255,.055);

    transition: var(--transition);
}

.dashboard-item:hover {
    background:
        rgba(255,255,255,.10);

    transform:
        translateY(-4px);
}

.dashboard-item-icon {
    width: 32px;
    height: 32px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    background:
        rgba(255,255,255,.10);

    color: #fecaca;

    font-size: 12px;
}

.dashboard-item-title {
    margin-top: 14px;

    color: white;

    font-size: 11px;
    font-weight: 800;
}

.dashboard-item-sub {
    margin-top: 3px;

    color:
        rgba(255,255,255,.40);

    font-size: 9px;
}


/* =========================================================
   DASHBOARD FOOTER
========================================================= */

.dashboard-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-top: 20px;
    padding-top: 16px;

    border-top:
        1px solid rgba(255,255,255,.08);

    color:
        rgba(255,255,255,.40);

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .04em;
}

.dashboard-footer > div {
    display: flex;
    align-items: center;
    gap: 7px;
}

.dashboard-footer-dot {
    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: #34d399;
}


/* =========================================================
   FLOATING CARDS
========================================================= */

.floating-trust-card,
.floating-blood-card {
    position: absolute;

    display: flex;
    align-items: center;
    gap: 11px;

    background: white;

    border:
        1px solid var(--slate-100);

    box-shadow:
        0 20px 45px rgba(15,23,42,.16);

    z-index: 5;

    animation:
        floatingCard 5s ease-in-out infinite;
}

.floating-trust-card {
    left: -34px;
    bottom: 26px;

    padding: 13px 15px;

    border-radius: 16px;
}

.floating-blood-card {
    right: -24px;
    top: 55px;

    padding: 12px 14px;

    border-radius: 15px;

    animation-delay: -2s;
}

@keyframes floatingCard {
    0%,100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }
}

.floating-icon {
    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 11px;

    background: var(--green-soft);
    color: var(--green);

    font-size: 15px;
}

.floating-label {
    color: var(--slate-400);

    font-size: 8px;
    font-weight: 800;

    letter-spacing: .12em;
}

.floating-title {
    margin-top: 2px;

    color: var(--slate-800);

    font-size: 11px;
    font-weight: 800;
}

.floating-blood-icon {
    width: 35px;
    height: 35px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    background: var(--red-soft);
    color: var(--red);

    font-size: 13px;
}

.floating-blood-card strong {
    display: block;

    color: var(--slate-800);

    font-size: 11px;
    font-weight: 800;
}

.floating-blood-card span {
    display: block;

    margin-top: 1px;

    color: var(--slate-400);

    font-size: 9px;
}


/* =========================================================
   SECTION
========================================================= */

.section-modern {
    position: relative;

    padding:
        100px 0;
}

.section-gray {
    background:
        linear-gradient(
            180deg,
            #f8fafc 0%,
            #f5f7fa 100%
        );
}

.section-white {
    background: white;
}

.section-header {
    max-width: 760px;

    margin:
        0 auto 48px;

    text-align: center;
}

.section-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding:
        7px 12px;

    border-radius: 999px;

    background: var(--red-soft);
    color: var(--red);

    font-size: 9px;
    font-weight: 800;

    letter-spacing: .08em;

    text-transform: uppercase;
}

.section-badge i {
    font-size: 10px;
}

.section-title {
    margin-top: 16px;

    color: var(--slate-900);

    font-size:
        clamp(29px, 4vw, 43px);

    line-height: 1.15;

    font-weight: 800;

    letter-spacing: -.04em;
}

.section-title span {
    color: var(--red);
}

.section-description {
    max-width: 650px;

    margin:
        16px auto 0;

    color: var(--slate-500);

    font-size: 14px;

    line-height: 1.8;
}


/* =========================================================
   DONOR TABLE CARD
========================================================= */

.donor-table-card {
    overflow: hidden;

    background: white;

    border:
        1px solid var(--slate-100);

    border-radius: 25px;

    box-shadow:
        var(--shadow-lg);
}

.table-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding:
        22px 26px;

    border-bottom:
        1px solid var(--slate-100);
}

.table-title-wrapper {
    display: flex;
    align-items: center;
    gap: 13px;
}

.table-title-icon {
    width: 43px;
    height: 43px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 13px;

    background: var(--red-soft);
    color: var(--red);

    font-size: 15px;
}

.table-title-wrapper h3 {
    margin: 0;

    color: var(--slate-900);

    font-family:
        'Plus Jakarta Sans',
        sans-serif;

    font-size: 14px;
    font-weight: 800;
}

.table-title-wrapper p {
    margin: 3px 0 0;

    color: var(--slate-400);

    font-size: 10px;
}

.active-data-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding:
        8px 11px;

    border-radius: 999px;

    background: var(--green-soft);
    color: var(--green-dark);

    font-size: 9px;
    font-weight: 800;
}

.active-data-badge span {
    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: var(--green);

    box-shadow:
        0 0 0 4px rgba(16,185,129,.08);
}

.table-container {
    padding: 8px 22px 24px;
}

.donor-table-wrapper {
    width: 100%;
    overflow-x: auto;
    scrollbar-width: thin;
}


/* =========================================================
   DATATABLE
========================================================= */

#tabelRelawan {
    width: 100% !important;

    border-collapse: separate !important;
    border-spacing: 0;
}

#tabelRelawan thead th {
    padding:
        16px 13px !important;

    border-bottom:
        1px solid var(--slate-200) !important;

    background: #fafbfc;

    color: var(--slate-500);

    font-size: 10px;

    font-weight: 800;

    letter-spacing: .05em;

    text-transform: uppercase;

    white-space: nowrap;
}

#tabelRelawan tbody td {
    padding:
        16px 13px !important;

    border-bottom:
        1px solid #f1f5f9 !important;

    color: var(--slate-600);

    font-size: 12px;

    vertical-align: middle;
}

#tabelRelawan tbody tr {
    transition:
        background .2s ease;
}

#tabelRelawan tbody tr:hover {
    background:
        #fffafa;
}

#tabelRelawan tbody tr:last-child td {
    border-bottom: none !important;
}

.table-number {
    color: var(--slate-400) !important;

    font-weight: 800;

    font-size: 11px !important;
}


/* =========================================================
   VOLUNTEER NAME
========================================================= */

.volunteer-name {
    display: flex;
    align-items: center;
    gap: 11px;

    min-width: 190px;
}

.volunteer-avatar {
    width: 38px;
    height: 38px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 11px;

    background:
        linear-gradient(
            135deg,
            #fff1f2,
            #fee2e2
        );

    color: var(--red);

    font-size: 12px;
}

.volunteer-name-text {
    color: var(--slate-800);

    font-size: 12px;
    font-weight: 800;
}

.volunteer-subtext {
    margin-top: 2px;

    color: var(--slate-400);

    font-size: 9px;
}


/* =========================================================
   LOCATION
========================================================= */

.location-cell {
    display: inline-flex;
    align-items: center;
    gap: 7px;

    white-space: nowrap;

    color: var(--slate-600);

    font-size: 11px;
}

.location-cell span {
    width: 25px;
    height: 25px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 8px;

    background: #fff1f2;

    color: #f87171;

    font-size: 10px;
}


/* =========================================================
   BLOOD BADGE
========================================================= */

.blood-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    min-width: 54px;

    justify-content: center;

    padding:
        6px 10px;

    border-radius: 9px;

    background: var(--red-soft);

    border:
        1px solid #fee2e2;

    color: var(--red-dark);

    font-size: 10px;
    font-weight: 800;
}

.blood-badge i {
    font-size: 8px;
}


/* =========================================================
   READY DATE
========================================================= */

.ready-date {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;

    padding:
        6px 9px;

    border-radius: 9px;

    background: #f8fafc;

    color: var(--slate-600);

    font-size: 10px;
    font-weight: 700;

    white-space: nowrap;
}

.ready-date i {
    color: var(--red);
}

.empty-date {
    color: var(--slate-300);

    font-size: 14px;
}


/* =========================================================
   STATUS
========================================================= */

.donor-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;

    padding:
        7px 10px;

    border-radius: 999px;

    font-size: 9px;

    font-weight: 800;

    white-space: nowrap;

    border: 1px solid transparent;
}

.donor-status i {
    font-size: 9px;
}

.status-ready {
    background: #ecfdf5;
    border-color: #d1fae5;
    color: #047857;
}

.status-belum {
    background: #fffbeb;
    border-color: #fef3c7;
    color: #b45309;
}

.status-sudah {
    background: #eff6ff;
    border-color: #dbeafe;
    color: #1d4ed8;
}

.status-not-ready {
    background: #fef2f2;
    border-color: #fee2e2;
    color: #b91c1c;
}

.status-default {
    background: #f1f5f9;
    border-color: #e2e8f0;
    color: #475569;
}


/* =========================================================
   DATATABLE CONTROLS
========================================================= */

div.dt-container {
    width: 100%;

    font-family: 'Inter', sans-serif;
}

div.dt-container .dt-layout-row {
    margin: 14px 0 !important;

    align-items: center;
}

div.dt-container .dt-search {
    display: flex;
    align-items: center;
}

div.dt-container .dt-search input {
    width: 230px;

    margin-left: 0 !important;

    padding:
        10px 13px 10px 38px !important;

    border:
        1px solid var(--slate-200) !important;

    border-radius: 11px !important;

    background:
        #f8fafc
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")
        no-repeat
        14px center !important;

    color: var(--slate-700);

    font-size: 11px !important;

    outline: none;

    transition: var(--transition);
}

div.dt-container .dt-search input:focus {
    border-color: #fca5a5 !important;

    background-color: white;

    box-shadow:
        0 0 0 4px rgba(220,38,38,.06);
}

div.dt-container .dt-length select {
    min-width: 70px;

    padding:
        8px 28px 8px 10px !important;

    border:
        1px solid var(--slate-200) !important;

    border-radius: 9px !important;

    color: var(--slate-600);

    font-size: 10px;

    outline: none;
}

div.dt-container .dt-info {
    color: var(--slate-400) !important;

    font-size: 10px !important;
}

div.dt-container .dt-paging button {
    min-width: 30px;
    height: 30px;

    margin-left: 4px !important;

    border:
        1px solid var(--slate-200) !important;

    border-radius: 8px !important;

    background: white !important;

    color: var(--slate-500) !important;

    font-size: 10px !important;

    transition: var(--transition);
}

div.dt-container .dt-paging button:hover {
    border-color: #fecaca !important;

    background: var(--red-soft) !important;

    color: var(--red) !important;
}

div.dt-container .dt-paging button.current {
    border-color: var(--red) !important;

    background: var(--red) !important;

    color: white !important;
}

div.dt-container .dt-paging button.disabled {
    opacity: .4;
}


/* =========================================================
   SERVICES
========================================================= */

.services-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 22px;
}

.service-card {
    position: relative;

    padding: 29px;

    min-height: 300px;

    border:
        1px solid var(--slate-100);

    border-radius: 24px;

    background: white;

    box-shadow:
        var(--shadow-sm);

    overflow: hidden;

    transition: var(--transition-slow);
}

.service-card::after {
    content: "";

    position: absolute;

    right: -70px;
    bottom: -80px;

    width: 180px;
    height: 180px;

    border-radius: 50%;

    background:
        rgba(220,38,38,.035);

    transition:
        transform .4s ease;
}

.service-card:hover {
    transform:
        translateY(-8px);

    box-shadow:
        var(--shadow-lg);

    border-color:
        rgba(220,38,38,.12);
}

.service-card:hover::after {
    transform:
        scale(1.3);
}

.service-icon {
    width: 54px;
    height: 54px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 17px;

    font-size: 19px;

    position: relative;
    z-index: 2;
}

.service-icon-red {
    background: var(--red-soft);
    color: var(--red);
}

.service-icon-green {
    background: var(--green-soft);
    color: var(--green-dark);
}

.service-icon-blue {
    background: var(--blue-soft);
    color: var(--blue);
}

.service-number {
    position: absolute;

    right: 25px;
    top: 27px;

    color: #e2e8f0;

    font-family:
        'Plus Jakarta Sans',
        sans-serif;

    font-size: 34px;
    font-weight: 800;

    line-height: 1;
}

.service-card h3 {
    position: relative;
    z-index: 2;

    margin:
        23px 0 0;

    color: var(--slate-900);

    font-family:
        'Plus Jakarta Sans',
        sans-serif;

    font-size: 17px;
    font-weight: 800;
}

.service-card p {
    position: relative;
    z-index: 2;

    margin-top: 9px;

    color: var(--slate-500);

    font-size: 12px;

    line-height: 1.75;
}

.service-link {
    position: relative;
    z-index: 2;

    display: inline-flex;
    align-items: center;
    gap: 8px;

    margin-top: 20px;

    color: var(--red);

    font-size: 11px;
    font-weight: 800;

    transition: gap .25s ease;
}

.service-link:hover {
    gap: 12px;
}

.service-link i {
    font-size: 9px;
}


/* =========================================================
   INFORMATION
========================================================= */

.information-grid {
    display: grid;

    grid-template-columns:
        minmax(0, .92fr)
        minmax(0, 1.08fr);

    gap: 80px;

    align-items: center;
}

.information-visual {
    position: relative;
}

.information-card {
    position: relative;

    min-height: 450px;

    display: flex;
    align-items: center;
    justify-content: center;

    overflow: hidden;

    border-radius: 32px;

    background:
        linear-gradient(
            145deg,
            #fff1f2,
            #fee2e2
        );

    border:
        1px solid #fecaca;

    box-shadow:
        var(--shadow-md);
}

.information-circle {
    position: absolute;

    border-radius: 50%;

    background:
        rgba(255,255,255,.42);
}

.circle-one {
    width: 330px;
    height: 330px;

    top: -120px;
    right: -130px;
}

.circle-two {
    width: 250px;
    height: 250px;

    bottom: -120px;
    left: -110px;
}

.information-visual-content {
    position: relative;
    z-index: 2;

    width: 100%;

    padding: 45px;

    text-align: center;
}

.information-heart-icon {
    width: 100px;
    height: 100px;

    margin:
        0 auto 25px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 30px;

    background: white;

    color: var(--red);

    font-size: 39px;

    box-shadow:
        0 20px 40px rgba(127,29,29,.12);

    animation:
        gentlePulse 3s ease-in-out infinite;
}

@keyframes gentlePulse {
    0%,100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.04);
    }
}

.information-quote {
    max-width: 350px;

    margin-inline: auto;

    color: var(--slate-900);

    font-family:
        'Plus Jakarta Sans',
        sans-serif;

    font-size: 22px;
    line-height: 1.35;

    font-weight: 800;

    letter-spacing: -.03em;
}

.information-small {
    max-width: 300px;

    margin:
        11px auto 0;

    color: var(--slate-500);

    font-size: 12px;
}

.information-divider {
    width: 50px;
    height: 2px;

    margin:
        25px auto;

    border-radius: 99px;

    background: #fca5a5;
}

.information-hospital {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding:
        8px 12px;

    border-radius: 999px;

    background:
        rgba(255,255,255,.7);

    color: var(--red-dark);

    font-size: 10px;
    font-weight: 800;
}

.information-content {
    max-width: 570px;
}

.information-title {
    margin-top: 18px;

    color: var(--slate-900);

    font-size:
        clamp(30px, 4vw, 43px);

    line-height: 1.15;

    font-weight: 800;

    letter-spacing: -.045em;
}

.information-title span {
    display: block;

    color: var(--red);
}

.information-description {
    margin-top: 18px;

    color: var(--slate-500);

    font-size: 13px;

    line-height: 1.85;
}

.information-list {
    display: flex;
    flex-direction: column;
    gap: 22px;

    margin-top: 30px;
}

.information-item {
    display: flex;
    gap: 14px;
}

.information-item-icon {
    width: 42px;
    height: 42px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 12px;

    font-size: 14px;
}

.information-item-icon.red {
    background: var(--red-soft);
    color: var(--red);
}

.information-item-icon.green {
    background: var(--green-soft);
    color: var(--green-dark);
}

.information-item-icon.blue {
    background: var(--blue-soft);
    color: var(--blue);
}

.information-item h4 {
    margin: 0;

    color: var(--slate-900);

    font-size: 13px;
    font-weight: 800;
}

.information-item p {
    margin-top: 4px;

    color: var(--slate-500);

    font-size: 11px;

    line-height: 1.7;
}
/* =========================================================
   INFORMASI & BERITA
   DONOR YUK
========================================================= */

.poster-section {
    position: relative;
    padding: 110px 0 120px;
    background:
        linear-gradient(
            180deg,
            #f8fafc 0%,
            #ffffff 100%
        );
    overflow: hidden;
}


/* =========================================================
   DECORATION
========================================================= */

.poster-section::before {
    content: "";
    position: absolute;
    width: 420px;
    height: 420px;
    top: -220px;
    right: -160px;
    border-radius: 50%;
    background: rgba(220, 38, 38, 0.035);
    pointer-events: none;
}


.poster-section::after {
    content: "";
    position: absolute;
    width: 320px;
    height: 320px;
    bottom: -180px;
    left: -140px;
    border-radius: 50%;
    background: rgba(37, 99, 235, 0.035);
    pointer-events: none;
}


/* =========================================================
   FEATURED SECTION
========================================================= */

.poster-featured-section {
    position: relative;
    z-index: 2;
    margin-top: 55px;
}


/* =========================================================
   BLOCK HEADING
========================================================= */

.poster-block-heading,
.poster-news-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 22px;
}


.poster-block-kicker {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 8px;

    font-family: "Inter", sans-serif;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: #dc2626;
}


.poster-block-kicker i {
    font-size: 11px;
}


.poster-block-heading h3,
.poster-news-heading h3 {
    margin: 0;

    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 25px;
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.025em;
    color: #0f172a;
}


.poster-slider-count {
    display: flex;
    align-items: center;
    gap: 7px;

    padding: 9px 13px;

    border: 1px solid #e2e8f0;
    border-radius: 12px;

    background: rgba(255, 255, 255, 0.8);

    font-family: "Inter", sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #64748b;

    white-space: nowrap;
}


.poster-slider-count i {
    color: #dc2626;
}


.poster-slider-count #posterCurrent {
    color: #0f172a;
    font-weight: 800;
}


.poster-count-divider {
    color: #cbd5e1;
}


/* =========================================================
   SLIDER
========================================================= */

.poster-slider {
    position: relative;
    width: 100%;
    height: 570px;
    border-radius: 28px;
    overflow: hidden;

    background: #0f172a;

    box-shadow:
        0 30px 70px rgba(15, 23, 42, 0.14),
        0 10px 25px rgba(15, 23, 42, 0.08);
}


.poster-slider-track {
    position: relative;
    width: 100%;
    height: 100%;
}


.poster-slide {
    position: absolute;
    inset: 0;

    opacity: 0;
    visibility: hidden;

    transform: scale(1.025);

    transition:
        opacity 0.65s ease,
        visibility 0.65s ease,
        transform 1.2s ease;
}


.poster-slide.active {
    opacity: 1;
    visibility: visible;
    transform: scale(1);
    z-index: 2;
}


/* =========================================================
   FEATURED IMAGE
========================================================= */

.poster-featured-image {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}


.poster-featured-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 1.2s cubic-bezier(.2,.7,.2,1),
        filter 0.5s ease;
}


.poster-slide.active:hover
.poster-featured-image img {
    transform: scale(1.045);
}


.poster-featured-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(15, 23, 42, 0.05) 0%,
            rgba(15, 23, 42, 0.08) 30%,
            rgba(15, 23, 42, 0.32) 55%,
            rgba(15, 23, 42, 0.90) 100%
        );

    pointer-events: none;
}


/* =========================================================
   EMPTY FEATURED IMAGE
========================================================= */

.poster-featured-empty {
    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;

    background:
        linear-gradient(
            135deg,
            #e2e8f0,
            #cbd5e1
        );

    color: #64748b;

    font-family: "Inter", sans-serif;
}


.poster-featured-empty i {
    font-size: 55px;
}


.poster-featured-empty span {
    font-size: 13px;
    font-weight: 700;
}


/* =========================================================
   STATUS FEATURED
========================================================= */

.poster-featured-status {
    position: absolute;
    top: 25px;
    left: 27px;

    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding: 8px 13px;

    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;

    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    color: #ffffff;

    font-family: "Inter", sans-serif;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
}


.poster-featured-status span {
    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: #4ade80;

    box-shadow:
        0 0 0 4px rgba(74, 222, 128, 0.13);
}


/* =========================================================
   FEATURED CONTENT
========================================================= */

.poster-featured-content {
    position: absolute;
    left: 50px;
    right: 120px;
    bottom: 48px;

    max-width: 780px;

    color: #ffffff;
}


.poster-featured-date {
    display: flex;
    align-items: center;
    gap: 7px;

    margin-bottom: 13px;

    color: rgba(255,255,255,.78);

    font-family: "Inter", sans-serif;
    font-size: 12px;
    font-weight: 600;
}


.poster-featured-date i {
    color: #fca5a5;
}


.poster-featured-content h3 {
    margin: 0 0 12px;

    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: clamp(28px, 4vw, 46px);
    line-height: 1.12;
    font-weight: 800;
    letter-spacing: -0.035em;

    color: #ffffff;
}


.poster-featured-content p {
    margin: 0;

    max-width: 650px;

    color: rgba(255,255,255,.82);

    font-family: "Inter", sans-serif;
    font-size: 14px;
    line-height: 1.75;

    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


/* =========================================================
   SLIDER BUTTON
========================================================= */

.poster-slider-btn {
    position: absolute;
    top: 50%;
    z-index: 10;

    width: 48px;
    height: 48px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(255,255,255,.25);
    border-radius: 50%;

    background: rgba(15, 23, 42, 0.52);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    color: #ffffff;

    cursor: pointer;

    transform: translateY(-50%);

    transition:
        background .25s ease,
        transform .25s ease,
        border-color .25s ease;
}


.poster-slider-btn:hover {
    background: #ffffff;
    border-color: #ffffff;
    color: #0f172a;

    transform:
        translateY(-50%)
        scale(1.06);
}


.poster-slider-prev {
    left: 22px;
}


.poster-slider-next {
    right: 22px;
}


/* =========================================================
   DOTS
========================================================= */

.poster-slider-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;

    margin-top: 18px;
}


.poster-dot {
    width: 8px;
    height: 8px;

    padding: 0;

    border: 0;
    border-radius: 999px;

    background: #cbd5e1;

    cursor: pointer;

    transition:
        width .3s ease,
        background .3s ease,
        transform .3s ease;
}


.poster-dot:hover {
    transform: scale(1.2);
}


.poster-dot.active {
    width: 27px;
    background: #dc2626;
}


/* =========================================================
   NEWS SECTION
========================================================= */

.poster-news-section {
    position: relative;
    z-index: 2;

    margin-top: 75px;
}


.poster-news-heading {
    align-items: center;
    margin-bottom: 26px;
}


.poster-news-total {
    padding: 8px 12px;

    border: 1px solid #e2e8f0;
    border-radius: 999px;

    background: #ffffff;

    color: #64748b;

    font-family: "Inter", sans-serif;
    font-size: 11px;
    font-weight: 700;
}


/* =========================================================
   NEWS GRID
========================================================= */

.poster-news-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 22px;
}


/* =========================================================
   NEWS CARD
========================================================= */

.poster-news-card {
    position: relative;

    min-width: 0;

    overflow: hidden;

    border: 1px solid #e2e8f0;
    border-radius: 18px;

    background: #ffffff;

    box-shadow:
        0 8px 25px rgba(15, 23, 42, 0.045);

    transition:
        transform .35s ease,
        box-shadow .35s ease,
        border-color .35s ease;
}


.poster-news-card:hover {
    transform: translateY(-7px);

    border-color: #fecaca;

    box-shadow:
        0 20px 40px rgba(15, 23, 42, 0.10);
}


/* =========================================================
   NEWS IMAGE
========================================================= */

.poster-news-image {
    position: relative;

    width: 100%;
    height: 190px;

    overflow: hidden;

    background: #f1f5f9;
}


.poster-news-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform .55s cubic-bezier(.2,.7,.2,1);
}


.poster-news-card:hover
.poster-news-image img {
    transform: scale(1.07);
}


.poster-news-empty {
    width: 100%;
    height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #94a3b8;

    background:
        linear-gradient(
            135deg,
            #f1f5f9,
            #e2e8f0
        );
}


.poster-news-empty i {
    font-size: 35px;
}


/* =========================================================
   NEWS STATUS
========================================================= */

.poster-news-status {
    position: absolute;

    top: 12px;
    left: 12px;

    padding: 6px 9px;

    border-radius: 999px;

    background: rgba(15, 23, 42, .68);

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    color: #ffffff;

    font-family: "Inter", sans-serif;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .07em;
}


/* =========================================================
   NEWS CONTENT
========================================================= */

.poster-news-content {
    padding: 18px 18px 17px;
}


.poster-news-date {
    display: flex;
    align-items: center;
    gap: 6px;

    margin-bottom: 9px;

    color: #94a3b8;

    font-family: "Inter", sans-serif;
    font-size: 10px;
    font-weight: 700;
}


.poster-news-date i {
    color: #dc2626;
}


.poster-news-content h4 {
    margin: 0;

    color: #0f172a;

    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 15px;
    line-height: 1.45;
    font-weight: 800;
    letter-spacing: -.015em;

    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;

    min-height: 43px;
}


.poster-news-content p {
    margin: 9px 0 0;

    color: #64748b;

    font-family: "Inter", sans-serif;
    font-size: 11px;
    line-height: 1.65;

    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


.poster-news-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-top: 17px;
    padding-top: 13px;

    border-top: 1px solid #f1f5f9;
}


.poster-news-footer span {
    color: #94a3b8;

    font-family: "Inter", sans-serif;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .08em;
}


.poster-news-footer i {
    color: #dc2626;
    font-size: 11px;

    transition:
        transform .25s ease;
}


.poster-news-card:hover
.poster-news-footer i {
    transform: translateX(4px);
}


/* =========================================================
   EMPTY STATE
========================================================= */

.poster-empty-state {
    position: relative;
    z-index: 2;

    max-width: 600px;

    margin: 55px auto 0;
    padding: 60px 30px;

    text-align: center;

    border: 1px dashed #cbd5e1;
    border-radius: 24px;

    background: rgba(255,255,255,.75);
}


.poster-empty-state-icon {
    width: 70px;
    height: 70px;

    margin: 0 auto 18px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 20px;

    background: #fef2f2;

    color: #dc2626;

    font-size: 27px;
}


.poster-empty-state h3 {
    margin: 0 0 8px;

    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 20px;
    font-weight: 800;

    color: #0f172a;
}


.poster-empty-state p {
    margin: 0;

    font-family: "Inter", sans-serif;
    font-size: 13px;
    line-height: 1.7;

    color: #64748b;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1100px) {

    .poster-news-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    .poster-slider {
        height: 500px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .poster-section {
        padding: 80px 0 90px;
    }


    .poster-featured-section {
        margin-top: 40px;
    }


    .poster-block-heading,
    .poster-news-heading {
        align-items: flex-start;
    }


    .poster-block-heading h3,
    .poster-news-heading h3 {
        font-size: 21px;
    }


    .poster-slider-count {
        display: none;
    }


    .poster-slider {
        height: 480px;
        border-radius: 22px;
    }


    .poster-featured-status {
        top: 17px;
        left: 17px;
    }


    .poster-featured-content {
        left: 25px;
        right: 25px;
        bottom: 35px;
    }


    .poster-featured-content h3 {
        font-size: 27px;
        line-height: 1.18;
    }


    .poster-featured-content p {
        font-size: 12px;
        -webkit-line-clamp: 3;
    }


    .poster-slider-btn {
        width: 40px;
        height: 40px;
    }


    .poster-slider-prev {
        left: 14px;
    }


    .poster-slider-next {
        right: 14px;
    }


    .poster-news-section {
        margin-top: 60px;
    }


    .poster-news-grid {
        grid-template-columns: 1fr;
        gap: 17px;
    }


    .poster-news-image {
        height: 210px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .poster-slider {
        height: 430px;
        border-radius: 18px;
    }


    .poster-featured-content {
        left: 20px;
        right: 20px;
        bottom: 27px;
    }


    .poster-featured-content h3 {
        font-size: 23px;
    }


    .poster-featured-content p {
        font-size: 11px;
    }


    .poster-slider-dots {
        margin-top: 13px;
    }


    .poster-news-image {
        height: 190px;
    }


    .poster-news-content {
        padding: 16px;
    }

}

/* =========================================================
   CTA
========================================================= */

.cta-section {
    padding:
        90px 0;

    background: white;
}

.cta-card {
    position: relative;

    overflow: hidden;

    padding:
        50px 55px;

    border-radius: 30px;

    background:
        linear-gradient(
            125deg,
            #991b1b,
            #dc2626 55%,
            #b91c1c
        );

    box-shadow:
        0 25px 60px rgba(153,27,27,.20);
}

.cta-card::before {
    content: "";

    position: absolute;

    inset: 0;

    background:
        radial-gradient(
            circle at 80% 20%,
            rgba(255,255,255,.12),
            transparent 30%
        );
}

.cta-decoration {
    position: absolute;

    border-radius: 50%;

    pointer-events: none;
}

.cta-decoration-one {
    width: 300px;
    height: 300px;

    right: -140px;
    top: -170px;

    border:
        1px solid rgba(255,255,255,.10);
}

.cta-decoration-two {
    width: 220px;
    height: 220px;

    left: -110px;
    bottom: -150px;

    background:
        rgba(0,0,0,.08);
}

.cta-content {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 35px;
}

.cta-label {
    color:
        rgba(254,226,226,.72);

    font-size: 9px;
    font-weight: 800;

    letter-spacing: .13em;
}

.cta-card h2 {
    margin-top: 9px;

    color: white;

    font-size:
        clamp(25px, 4vw, 34px);

    line-height: 1.2;

    font-weight: 800;

    letter-spacing: -.035em;
}

.cta-copy p {
    max-width: 550px;

    margin-top: 7px;

    color:
        rgba(255,255,255,.68);

    font-size: 12px;
}

.cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    flex-shrink: 0;

    min-height: 49px;

    padding:
        0 19px;

    border-radius: 13px;

    background: white;

    color: var(--red);

    font-size: 12px;
    font-weight: 800;

    box-shadow:
        0 12px 25px rgba(0,0,0,.14);

    transition: var(--transition);
}

.cta-button:hover {
    transform: translateY(-3px);

    box-shadow:
        0 17px 30px rgba(0,0,0,.20);
}


/* =========================================================
   ABOUT
========================================================= */

.about-section {
    padding:
        100px 0;

    background: white;

    border-top:
        1px solid var(--slate-100);
}

.about-content {
    max-width: 760px;

    margin-inline: auto;

    text-align: center;
}

.about-logo {
    width: 62px;
    height: 62px;

    margin:
        0 auto 20px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 20px;

    background:
        linear-gradient(
            135deg,
            #fff1f2,
            #fee2e2
        );

    color: var(--red);

    font-size: 24px;

    box-shadow:
        0 12px 25px rgba(220,38,38,.08);
}

.about-content > .section-badge {
    margin-bottom: 0;
}

.about-content h2 {
    margin-top: 17px;

    color: var(--slate-900);

    font-size:
        clamp(29px, 4vw, 40px);

    font-weight: 800;

    letter-spacing: -.04em;
}

.about-content h2 span {
    color: var(--red);
}

.about-content > p {
    max-width: 680px;

    margin:
        16px auto 0;

    color: var(--slate-500);

    font-size: 13px;

    line-height: 1.85;
}

.about-tags {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;

    gap: 9px;

    margin-top: 25px;
}

.about-tags span {
    display: inline-flex;
    align-items: center;
    gap: 7px;

    padding:
        8px 12px;

    border:
        1px solid var(--slate-100);

    border-radius: 999px;

    background: var(--slate-50);

    color: var(--slate-600);

    font-size: 9px;
    font-weight: 700;
}

.about-tags i {
    color: var(--red);

    font-size: 9px;
}


/* =========================================================
   FOOTER
========================================================= */

.site-footer {
    padding:
        48px 0 30px;

    background:
        #0f172a;

    color: white;
}

.footer-main {
    text-align: center;
}

.footer-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    text-align: left;
}

.footer-brand-icon {
    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 12px;

    background: white;

    color: var(--red);

    font-size: 17px;
}

.footer-brand-name {
    color: white;

    font-size: 14px;
    font-weight: 800;
}

.footer-brand-sub {
    margin-top: 3px;

    color: var(--slate-400);

    font-size: 8px;

    letter-spacing: .13em;

    text-transform: uppercase;
}

.footer-description {
    max-width: 450px;

    margin:
        17px auto 0;

    color: #94a3b8;

    font-size: 11px;

    line-height: 1.7;
}

.footer-divider {
    width: 100%;
    height: 1px;

    margin:
        30px 0 22px;

    background:
        rgba(255,255,255,.08);
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    color: #64748b;

    font-size: 9px;
}

.footer-made {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.footer-made i {
    color: #f87171;
}


/* =========================================================
   SCROLLBAR
========================================================= */

::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: #f1f5f9;
}

::-webkit-scrollbar-thumb {
    background: #cbd5e1;

    border-radius: 999px;
}

::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}


/* =========================================================
   SELECTION
========================================================= */

::selection {
    background: rgba(220,38,38,.18);
    color: var(--red-deep);
}


/* =========================================================
   RESPONSIVE
========================================================= */

/* =========================================================
   LARGE DESKTOP
========================================================= */

@media (max-width: 1200px) {

    .container-modern {
        width:
            min(
                1100px,
                calc(100% - 40px)
            );
    }

    .hero-content-grid {
        gap: 45px;
    }

    .information-grid {
        gap: 55px;
    }

}


/* =========================================================
   TABLET / SMALL DESKTOP
========================================================= */

@media (max-width: 1024px) {

    .desktop-nav {
        gap: 20px;
    }

    .hero-modern {
        min-height: auto;

        padding-bottom: 70px;
    }

    .hero-content-grid {
        grid-template-columns: 1fr;

        gap: 55px;

        padding-top: 55px;
    }

    .hero-copy {
        max-width: 760px;

        margin-inline: auto;

        text-align: center;
    }

    .hero-eyebrow,
    .hero-actions,
    .hero-trust {
        justify-content: center;
    }

    .hero-description {
        margin-inline: auto;
    }

    .hero-visual {
        min-height: 500px;
    }

    .hero-dashboard {
        margin-inline: auto;
    }

    .services-grid {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .information-grid {
        grid-template-columns: 1fr;

        gap: 45px;
    }

    .information-visual {
        max-width: 620px;

        margin-inline: auto;
    }

    .information-content {
        max-width: 700px;

        margin-inline: auto;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .container-modern {
        width:
            calc(100% - 32px);
    }


    /* NAVBAR */

    .navbar-modern,
    .navbar-inner {
        height: 68px;
    }

    .desktop-nav {
        display: none;
    }

    .mobile-menu-button {
        display: inline-flex;

        align-items: center;
        justify-content: center;
    }

    .btn-login {
        display: none;
    }

    .brand-icon {
        width: 39px;
        height: 39px;

        border-radius: 11px;

        font-size: 16px;
    }

    .brand-name {
        font-size: 13px;
    }

    .brand-subtitle {
        font-size: 8px;
    }


    /* HERO */

    .hero-modern {
        padding-top: 68px;
        padding-bottom: 70px;
    }

    .hero-content-grid {
        padding-top: 45px;

        gap: 45px;
    }

    .hero-title {
        font-size:
            clamp(38px, 11vw, 52px);
    }

    .hero-description {
        font-size: 13px;

        line-height: 1.75;
    }

    .hero-actions {
        flex-direction: column;

        align-items: stretch;

        max-width: 330px;

        margin-inline: auto;
    }

    .hero-btn-primary,
    .hero-btn-secondary {
        width: 100%;
    }

    .hero-trust {
        flex-direction: column;

        gap: 9px;
    }

    .trust-divider {
        display: none;
    }

    .hero-visual {
        min-height: 450px;
    }

    .hero-dashboard {
        padding: 19px;

        border-radius: 24px;
    }

    .dashboard-title {
        font-size: 24px;
    }

    .dashboard-items {
        gap: 7px;
    }

    .dashboard-item {
        min-height: 112px;

        padding: 11px;
    }

    .dashboard-item-title {
        margin-top: 10px;
    }

    .floating-trust-card {
        left: -8px;
        bottom: 5px;

        transform: scale(.9);
        transform-origin: left bottom;
    }

    .floating-blood-card {
        right: -8px;
        top: 15px;

        transform: scale(.9);
        transform-origin: right top;
    }


    /* SECTIONS */

    .section-modern {
        padding:
            75px 0;
    }

    .section-header {
        margin-bottom: 34px;
    }

    .section-description {
        font-size: 12px;
    }


    /* TABLE */

    .table-card-header {
        align-items: flex-start;

        flex-direction: column;

        padding: 19px;
    }

    .active-data-badge {
        align-self: flex-start;
    }

    .table-container {
        padding:
            6px 10px 18px;
    }

    div.dt-container .dt-layout-row {
        flex-direction: column;

        align-items: stretch !important;

        gap: 10px;
    }

    div.dt-container .dt-search {
        width: 100%;
    }

    div.dt-container .dt-search input {
        width: 100%;
    }

    div.dt-container .dt-length,
    div.dt-container .dt-info {
        text-align: center;
    }

    div.dt-container .dt-paging {
        text-align: center;
    }


    /* SERVICES */

    .services-grid {
        grid-template-columns: 1fr;

        gap: 15px;
    }

    .service-card {
        min-height: auto;

        padding: 24px;
    }


    /* INFORMATION */

    .information-card {
        min-height: 390px;

        border-radius: 25px;
    }

    .information-visual-content {
        padding: 30px 20px;
    }

    .information-heart-icon {
        width: 80px;
        height: 80px;

        border-radius: 23px;

        font-size: 31px;
    }

    .information-quote {
        font-size: 19px;
    }

    .information-title {
        font-size: 30px;
    }


    /* CTA */

    .cta-section {
        padding:
            65px 0;
    }

    .cta-card {
        padding:
            35px 25px;

        border-radius: 24px;
    }

    .cta-content {
        flex-direction: column;

        align-items: flex-start;

        gap: 25px;
    }

    .cta-button {
        width: 100%;
    }


    /* ABOUT */

    .about-section {
        padding:
            75px 0;
    }

    .about-content > p {
        font-size: 12px;
    }


    /* FOOTER */

    .site-footer {
        padding:
            40px 0 25px;
    }

    .footer-bottom {
        flex-direction: column;

        gap: 10px;

        text-align: center;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .container-modern {
        width:
            calc(100% - 24px);
    }

    .hero-modern {
        padding-bottom: 60px;
    }

    .hero-content-grid {
        padding-top: 35px;
    }

    .hero-eyebrow {
        font-size: 8px;

        padding:
            7px 10px;
    }

    .hero-title {
        font-size: 39px;
    }

    .hero-description {
        font-size: 12px;
    }

    .hero-actions {
        max-width: none;
    }

    .hero-visual {
        min-height: 400px;
    }

    .hero-dashboard {
        width: 100%;

        padding: 16px;

        border-radius: 20px;
    }

    .dashboard-brand-icon {
        width: 37px;
        height: 37px;
    }

    .dashboard-brand-name {
        font-size: 11px;
    }

    .dashboard-brand-sub {
        font-size: 8px;
    }

    .dashboard-active {
        font-size: 8px;
    }

    .dashboard-message {
        padding:
            27px 2px 22px;
    }

    .dashboard-title {
        font-size: 21px;
    }

    .dashboard-message p {
        font-size: 10px;
    }

    .dashboard-items {
        grid-template-columns: 1fr;

        gap: 7px;
    }

    .dashboard-item {
        min-height: auto;

        display: flex;
        align-items: center;
        gap: 10px;

        padding: 10px;
    }

    .dashboard-item-icon {
        flex-shrink: 0;
    }

    .dashboard-item-title {
        margin: 0;
    }

    .dashboard-item-sub {
        margin: 0 0 0 auto;
    }

    .dashboard-footer {
        font-size: 8px;
    }

    .floating-trust-card {
        bottom: -8px;
    }

    .floating-blood-card {
        top: -10px;
    }

    .section-modern {
        padding:
            65px 0;
    }

    .section-title {
        font-size: 28px;
    }

    .table-card-header {
        padding: 16px;
    }

    .table-title-icon {
        width: 39px;
        height: 39px;
    }

    .table-title-wrapper h3 {
        font-size: 13px;
    }

    .table-container {
        padding-inline: 5px;
    }

    .information-card {
        min-height: 350px;
    }

    .information-title {
        font-size: 27px;
    }

    .information-quote {
        font-size: 17px;
    }

    .cta-card h2 {
        font-size: 25px;
    }

}


/* =========================================================
   ACCESSIBILITY
========================================================= */

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible {
    outline:
        3px solid rgba(220,38,38,.25);

    outline-offset: 3px;
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }

}
/* =========================================================
   POSTER / INFORMASI
   DONOR YUK
========================================================= */

.poster-section {
    position: relative;
    padding: 110px 0;
    background: #f8fafc;
    overflow: hidden;
}


.poster-section::before {
    content: "";
    position: absolute;
    width: 420px;
    height: 420px;
    top: -180px;
    right: -160px;
    border-radius: 50%;
    background: rgba(239, 68, 68, 0.05);
    pointer-events: none;
}


.poster-section::after {
    content: "";
    position: absolute;
    width: 300px;
    height: 300px;
    bottom: -140px;
    left: -120px;
    border-radius: 50%;
    background: rgba(37, 99, 235, 0.04);
    pointer-events: none;
}


.poster-grid {
    position: relative;
    z-index: 2;

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 26px;

    margin-top: 48px;
}


.poster-card {
    position: relative;

    display: flex;
    flex-direction: column;

    overflow: hidden;

    background: #ffffff;

    border: 1px solid #e5e7eb;

    border-radius: 22px;

    box-shadow:
        0 8px 30px rgba(15, 23, 42, 0.06);

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}


.poster-card:hover {
    transform: translateY(-7px);

    border-color: rgba(239, 68, 68, 0.18);

    box-shadow:
        0 20px 45px rgba(15, 23, 42, 0.11);
}


/* =========================================================
   IMAGE
========================================================= */

.poster-image-wrapper {
    position: relative;

    width: 100%;

    height: 225px;

    overflow: hidden;

    background: #f1f5f9;
}


.poster-image {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 0.5s ease;
}


.poster-card:hover .poster-image {
    transform: scale(1.05);
}


.poster-image-empty {
    width: 100%;
    height: 100%;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 10px;

    color: #94a3b8;

    background:
        linear-gradient(
            135deg,
            #f8fafc,
            #eef2f7
        );
}


.poster-image-empty i {
    font-size: 34px;
}


.poster-image-empty span {
    font-size: 13px;
    font-weight: 600;
}


/* =========================================================
   STATUS
========================================================= */

.poster-status {
    position: absolute;

    top: 15px;
    left: 15px;

    display: inline-flex;

    align-items: center;

    gap: 7px;

    padding: 7px 11px;

    border-radius: 999px;

    background: rgba(255, 255, 255, 0.94);

    color: #15803d;

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 0.05em;

    box-shadow:
        0 5px 15px rgba(15, 23, 42, 0.12);

    backdrop-filter: blur(8px);
}


.poster-status i {
    font-size: 10px;
}


/* =========================================================
   CONTENT
========================================================= */

.poster-content {
    display: flex;
    flex-direction: column;

    flex: 1;

    padding: 23px 23px 20px;
}


.poster-date {
    display: flex;

    align-items: center;

    gap: 7px;

    margin-bottom: 10px;

    color: #94a3b8;

    font-size: 12px;

    font-weight: 600;
}


.poster-date i {
    color: #ef4444;
}


.poster-title {
    margin: 0;

    color: #0f172a;

    font-family:
        "Plus Jakarta Sans",
        sans-serif;

    font-size: 19px;

    line-height: 1.4;

    font-weight: 800;

    display: -webkit-box;

    -webkit-line-clamp: 2;

    -webkit-box-orient: vertical;

    overflow: hidden;
}


.poster-description {
    margin: 12px 0 20px;

    color: #64748b;

    font-size: 14px;

    line-height: 1.7;

    display: -webkit-box;

    -webkit-line-clamp: 3;

    -webkit-box-orient: vertical;

    overflow: hidden;
}


/* =========================================================
   FOOTER CARD
========================================================= */

.poster-footer {
    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-top: auto;

    padding-top: 15px;

    border-top: 1px solid #f1f5f9;

    color: #ef4444;

    font-size: 11px;

    font-weight: 800;

    letter-spacing: 0.06em;
}


.poster-footer i {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 30px;
    height: 30px;

    border-radius: 50%;

    background: #fef2f2;

    font-size: 11px;

    transition:
        transform 0.25s ease,
        background 0.25s ease;
}


.poster-card:hover .poster-footer i {
    transform: translateX(4px);

    background: #fee2e2;
}


/* =========================================================
   EMPTY STATE
========================================================= */

.poster-empty {
    grid-column: 1 / -1;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    min-height: 300px;

    padding: 50px 30px;

    background: #ffffff;

    border: 1px dashed #cbd5e1;

    border-radius: 22px;

    text-align: center;
}


.poster-empty-icon {
    width: 68px;
    height: 68px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin-bottom: 18px;

    border-radius: 20px;

    background: #fef2f2;

    color: #ef4444;

    font-size: 27px;
}


.poster-empty h3 {
    margin: 0 0 8px;

    color: #0f172a;

    font-family:
        "Plus Jakarta Sans",
        sans-serif;

    font-size: 19px;

    font-weight: 800;
}


.poster-empty p {
    max-width: 480px;

    margin: 0;

    color: #64748b;

    font-size: 14px;

    line-height: 1.7;
}
/* =========================================================
   SERVICE PURPLE
========================================================= */

.service-icon-purple {
    background: #f5f3ff;
    color: #7c3aed;
}


.service-card:hover .service-icon-purple {
    background: #ede9fe;
}
/* =========================================================
   LAYANAN - SERVICES DIVIDER
========================================================= */

.services-divider {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 65px 0 30px;
}

.services-divider > div {
    flex: 1;
    height: 1px;
    background: #e2e8f0;
}

.services-divider span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid #e2e8f0;

    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #64748b;

    white-space: nowrap;
}


/* =========================================================
   SERVICE CARD - 4 CARD
========================================================= */

.services-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}


/* =========================================================
   SERVICE CARD
========================================================= */

.service-card {
    position: relative;
    padding: 28px 24px 25px;
    background: #ffffff;
    border: 1px solid #e8edf3;
    border-radius: 22px;

    box-shadow:
        0 8px 25px rgba(15, 23, 42, .045);

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;
}

.service-card:hover {
    transform: translateY(-6px);

    box-shadow:
        0 18px 40px rgba(15, 23, 42, .09);

    border-color: #dbe3ec;
}


/* =========================================================
   SERVICE NUMBER
========================================================= */

.service-number {
    position: absolute;
    top: 25px;
    right: 23px;

    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 800;

    color: #cbd5e1;
}


/* =========================================================
   SERVICE ICON
========================================================= */

.service-icon {
    width: 52px;
    height: 52px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 15px;

    margin-bottom: 22px;

    font-size: 19px;

    transition: transform .3s ease;
}

.service-card:hover .service-icon {
    transform: scale(1.07);
}


/* RED */

.service-icon-red {
    color: #dc2626;
    background: #fef2f2;
}


/* GREEN */

.service-icon-green {
    color: #059669;
    background: #ecfdf5;
}


/* BLUE */

.service-icon-blue {
    color: #2563eb;
    background: #eff6ff;
}


/* PURPLE */

.service-icon-purple {
    color: #7c3aed;
    background: #f5f3ff;
}


/* =========================================================
   SERVICE TITLE
========================================================= */

.service-card h3 {
    margin: 0 0 10px;

    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 17px;
    font-weight: 800;

    line-height: 1.35;

    color: #0f172a;
}


/* =========================================================
   SERVICE DESCRIPTION
========================================================= */

.service-card p {
    margin: 0 0 21px;

    min-height: 66px;

    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 400;

    line-height: 1.7;

    color: #64748b;
}


/* =========================================================
   SERVICE LINK
========================================================= */

.service-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 700;

    color: #2563eb;

    text-decoration: none;

    transition:
        gap .25s ease,
        color .25s ease;
}

.service-link:hover {
    gap: 12px;
    color: #1d4ed8;
}

.service-link i {
    font-size: 11px;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1100px) {

    .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }

}


@media (max-width: 768px) {

    .services-divider {
        margin: 50px 0 25px;
        gap: 12px;
    }

    .services-divider span {
        font-size: 10px;
        padding: 7px 12px;
    }

    .services-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .service-card {
        padding: 24px 22px;
    }

    .service-card p {
        min-height: auto;
    }

}


@media (max-width: 480px) {

    .services-divider > div {
        min-width: 15px;
    }

    .services-divider span {
        font-size: 9px;
    }

}
/* =========================================================
   SPACING FIX - DONOR YUK
   Merapatkan jarak antar section
========================================================= */

/* Semua section utama */
.section-modern,
.poster-section,
.cta-section,
.about-section {
    margin: 0 !important;
}

/* Padding section dibuat lebih compact */
.section-modern {
    padding-top: 70px !important;
    padding-bottom: 70px !important;
}

.poster-section {
    padding-top: 70px !important;
    padding-bottom: 70px !important;
}

.about-section {
    padding-top: 70px !important;
    padding-bottom: 70px !important;
}

/* CTA jangan terlalu jauh dari section sebelumnya */
.cta-section {
    padding-top: 45px !important;
    padding-bottom: 45px !important;
}


/* =========================================================
   SECTION HEADER
========================================================= */

.section-header {
    margin-bottom: 38px !important;
}

.section-title {
    margin-top: 14px !important;
    margin-bottom: 14px !important;
}

.section-description {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    max-width: 720px;
}


/* =========================================================
   JARAK GRID DENGAN HEADER
========================================================= */

.services-grid {
    margin-top: 0 !important;
}

.poster-grid {
    margin-top: 0 !important;
}


/* =========================================================
   RELAWAN
========================================================= */

#relawan {
    padding-top: 65px !important;
    padding-bottom: 65px !important;
}

#relawan .section-header {
    margin-bottom: 32px !important;
}


/* =========================================================
   LAYANAN
========================================================= */

#layanan {
    padding-top: 65px !important;
    padding-bottom: 65px !important;
}

#layanan .section-header {
    margin-bottom: 34px !important;
}


/* =========================================================
   INFORMASI / POSTER
========================================================= */

#informasi {
    padding-top: 65px !important;
    padding-bottom: 65px !important;
}

#informasi .section-header {
    margin-bottom: 34px !important;
}


/* =========================================================
   TENTANG
========================================================= */

#tentang {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}
/* =========================================================
   SECTION TRANSITION
========================================================= */

.section-gray,
.section-white,
.poster-section {
    position: relative;
}

/* Hilangkan kemungkinan margin bawaan elemen pertama/terakhir */
.section-modern > .container-modern,
.poster-section > .container-modern,
.about-section > .container-modern {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}


/* Elemen pertama jangan punya margin atas */
.section-modern .container-modern > *:first-child,
.poster-section .container-modern > *:first-child {
    margin-top: 0 !important;
}


/* Elemen terakhir jangan punya margin bawah */
.section-modern .container-modern > *:last-child,
.poster-section .container-modern > *:last-child {
    margin-bottom: 0 !important;
}
/* =========================================================
   HERO SPACING
========================================================= */

.hero-modern {
    padding-bottom: 75px !important;
}

/* Jangan biarkan hero terlalu tinggi */
.hero-content-grid {
    padding-top: 30px;
    padding-bottom: 20px;
}


/* =========================================================
   MOBILE HERO
========================================================= */

@media (max-width: 768px) {

    .hero-modern {
        padding-bottom: 50px !important;
    }

    .hero-content-grid {
        padding-top: 20px;
        padding-bottom: 10px;
    }

}
/* =========================================================
   SERVICE CARD - COMPACT
========================================================= */

.services-grid {
    gap: 22px !important;
}

.service-card {
    padding: 28px !important;
}

.service-card h3 {
    margin-top: 16px !important;
    margin-bottom: 9px !important;
}

.service-card p {
    margin-bottom: 18px !important;
}

.service-number {
    margin-top: 12px !important;
}


/* Desktop */
@media (min-width: 1024px) {

    .services-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }

}
/* =========================================================
   POSTER SECTION
========================================================= */

.poster-section {
    background: #f8fafc;
}

.poster-section .container-modern {
    max-width: 1280px;
}

.poster-grid {
    gap: 22px !important;
}


/* =========================================================
   POSTER CARD
========================================================= */

.poster-card {
    margin: 0 !important;
}

.poster-image-wrapper {
    margin: 0 !important;
}

.poster-content {
    padding: 20px !important;
}


/* Judul tidak terlalu makan tempat */
.poster-title {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
}

.poster-description {
    margin-top: 0 !important;
    margin-bottom: 14px !important;
}
/* =========================================================
   GLOBAL LANDING PAGE COMPACT MODE
========================================================= */

.container-modern {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}


/* Jangan ada margin bawaan dari heading */
.section-modern h1,
.section-modern h2,
.section-modern h3,
.poster-section h1,
.poster-section h2,
.poster-section h3,
.about-section h1,
.about-section h2,
.about-section h3 {
    margin-bottom: 0;
}


/* Rapikan paragraf */
.section-modern p,
.poster-section p,
.about-section p {
    margin-top: 0;
}


/* Desktop */
@media (min-width: 1024px) {

    .section-modern,
    .poster-section {
        padding-top: 65px !important;
        padding-bottom: 65px !important;
    }

}


/* Tablet */
@media (max-width: 1023px) {

    .section-modern,
    .poster-section {
        padding-top: 55px !important;
        padding-bottom: 55px !important;
    }

}


/* Mobile */
@media (max-width: 640px) {

    .section-modern,
    .poster-section,
    .about-section {
        padding-top: 45px !important;
        padding-bottom: 45px !important;
    }

    .section-header {
        margin-bottom: 28px !important;
    }

    .section-title {
        font-size: 30px !important;
        line-height: 1.2 !important;
    }

    .section-description {
        font-size: 14px !important;
        line-height: 1.7 !important;
    }

}
/* =========================================================
   PREMIUM INFORMATION / POSTER
   OVERRIDE
========================================================= */

.poster-section {
    position: relative;
    padding: 72px 0 82px;
    background:
        linear-gradient(
            180deg,
            #f8fafc 0%,
            #ffffff 100%
        );
}


/* =========================================================
   HEADER
========================================================= */

.poster-main-header {
    margin-bottom: 38px;
}


.poster-main-header .section-description {
    max-width: 680px;
}


/* =========================================================
   FEATURED WRAPPER
========================================================= */

.poster-featured-section {
    position: relative;
    margin-top: 28px;
}


/* =========================================================
   BLOCK HEADING
========================================================= */

.poster-block-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;

    margin-bottom: 18px;
}


.poster-block-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    margin-bottom: 6px;

    font-family: "Inter", sans-serif;
    font-size: 10px;
    font-weight: 800;

    letter-spacing: .14em;
    text-transform: uppercase;

    color: #dc2626;
}


.poster-block-kicker i {
    font-size: 11px;
}


.poster-block-heading h3,
.poster-news-heading h3 {
    margin: 0;

    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 25px;
    font-weight: 800;

    letter-spacing: -.025em;

    color: #0f172a;
}


/* =========================================================
   COUNTER
========================================================= */

.poster-slider-count {
    display: flex;
    align-items: center;
    gap: 7px;

    padding: 8px 13px;

    border: 1px solid #e2e8f0;
    border-radius: 999px;

    background: rgba(255,255,255,.85);

    box-shadow:
        0 5px 16px rgba(15,23,42,.05);

    font-family: "Inter", sans-serif;
    font-size: 12px;
    font-weight: 700;

    color: #64748b;
}


.poster-slider-count #posterCurrent {
    color: #dc2626;
}


.poster-count-divider {
    color: #cbd5e1;
}


/* =========================================================
   MAIN SLIDER
========================================================= */

.poster-slider {
    position: relative;

    width: 100%;
    height: 420px;

    overflow: hidden;

    border-radius: 28px;

    background: #0f172a;

    box-shadow:
        0 24px 60px rgba(15,23,42,.12),
        0 8px 24px rgba(15,23,42,.06);
}


.poster-slider-track {
    position: relative;

    width: 100%;
    height: 100%;
}


/* =========================================================
   SLIDE
========================================================= */

.poster-slide {
    position: absolute;

    inset: 0;

    display: grid;

    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(320px, .85fr);

    opacity: 0;
    visibility: hidden;

    transform: translateX(28px) scale(.985);

    transition:
        opacity .55s ease,
        transform .65s cubic-bezier(.22,.61,.36,1),
        visibility .55s ease;

    pointer-events: none;
}


.poster-slide.active {
    opacity: 1;
    visibility: visible;

    transform:
        translateX(0)
        scale(1);

    pointer-events: auto;
}


/* =========================================================
   FEATURED IMAGE
========================================================= */

.poster-featured-image {
    position: relative;

    width: 100%;
    height: 100%;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            #e2e8f0,
            #cbd5e1
        );
}


.poster-featured-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 1.2s cubic-bezier(.22,.61,.36,1),
        filter .7s ease;
}


.poster-slide.active
.poster-featured-image img {
    animation:
        posterImageZoom
        7s ease-in-out infinite alternate;
}


@keyframes posterImageZoom {

    from {
        transform: scale(1);
    }

    to {
        transform: scale(1.055);
    }

}


/* image shine */

.poster-featured-image::after {
    content: "";

    position: absolute;

    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            90deg,
            rgba(15,23,42,.04),
            transparent 40%
        );
}


/* =========================================================
   EMPTY IMAGE
========================================================= */

.poster-featured-empty {
    width: 100%;
    height: 100%;

    display: flex;

    flex-direction: column;

    align-items: center;
    justify-content: center;

    gap: 10px;

    color: #94a3b8;

    background:
        linear-gradient(
            135deg,
            #f1f5f9,
            #e2e8f0
        );
}


.poster-featured-empty i {
    font-size: 42px;
}


.poster-featured-empty span {
    font-family: "Inter", sans-serif;
    font-size: 12px;
}


/* =========================================================
   FEATURED CONTENT - SAMPING
========================================================= */

.poster-featured-content {
    position: relative;

    display: flex;

    flex-direction: column;

    justify-content: center;

    padding: 45px 45px 42px;

    background:
        linear-gradient(
            145deg,
            #ffffff 0%,
            #f8fafc 100%
        );

    border-left: 1px solid rgba(226,232,240,.8);
}


/* decorative red line */

.poster-featured-content::before {
    content: "";

    position: absolute;

    left: 0;
    top: 36px;
    bottom: 36px;

    width: 3px;

    border-radius: 0 8px 8px 0;

    background:
        linear-gradient(
            180deg,
            #ef4444,
            #b91c1c
        );
}


/* =========================================================
   LABEL
========================================================= */

.poster-featured-label {
    display: inline-flex;

    align-items: center;

    gap: 8px;

    width: fit-content;

    margin-bottom: 15px;

    padding: 7px 11px;

    border-radius: 999px;

    background: #fef2f2;

    color: #b91c1c;

    font-family: "Inter", sans-serif;
    font-size: 9px;
    font-weight: 800;

    letter-spacing: .12em;
}


.poster-live-dot {
    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: #ef4444;

    box-shadow:
        0 0 0 4px rgba(239,68,68,.10);

    animation: posterPulse 2s infinite;
}


@keyframes posterPulse {

    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: .55;
        transform: scale(.82);
    }

}


/* =========================================================
   DATE
========================================================= */

.poster-featured-date {
    display: flex;

    align-items: center;

    gap: 7px;

    margin-bottom: 12px;

    color: #94a3b8;

    font-family: "Inter", sans-serif;
    font-size: 11px;
    font-weight: 600;
}


.poster-featured-date i {
    color: #ef4444;
}


/* =========================================================
   TITLE
========================================================= */

.poster-featured-content h3 {
    margin: 0 0 14px;

    max-width: 440px;

    font-family: "Plus Jakarta Sans", sans-serif;

    font-size: 29px;
    line-height: 1.18;

    font-weight: 800;

    letter-spacing: -.035em;

    color: #0f172a;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;

    overflow: hidden;
}


/* =========================================================
   DESCRIPTION
========================================================= */

.poster-featured-content p {
    margin: 0 0 23px;

    max-width: 430px;

    color: #64748b;

    font-family: "Inter", sans-serif;

    font-size: 13px;
    line-height: 1.75;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;

    overflow: hidden;
}


/* =========================================================
   DETAIL BUTTON
========================================================= */

.poster-detail-button {
    display: inline-flex;

    align-items: center;

    justify-content: space-between;

    gap: 14px;

    width: fit-content;

    padding: 10px 10px 10px 17px;

    border-radius: 999px;

    text-decoration: none;

    background: #0f172a;

    color: white;

    font-family: "Inter", sans-serif;

    font-size: 12px;
    font-weight: 700;

    transition:
        transform .25s ease,
        background .25s ease,
        box-shadow .25s ease;
}


.poster-detail-button span {
    width: 29px;
    height: 29px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #ef4444;

    transition:
        transform .25s ease;
}


.poster-detail-button:hover {
    color: white;

    background: #1e293b;

    transform: translateY(-2px);

    box-shadow:
        0 10px 24px rgba(15,23,42,.16);
}


.poster-detail-button:hover span {
    transform: translateX(3px);
}


/* =========================================================
   SLIDER BUTTON
========================================================= */

.poster-slider-btn {
    position: absolute;

    top: 50%;

    z-index: 20;

    width: 43px;
    height: 43px;

    display: flex;

    align-items: center;
    justify-content: center;

    transform: translateY(-50%);

    border: 1px solid rgba(255,255,255,.5);

    border-radius: 50%;

    background: rgba(15,23,42,.58);

    backdrop-filter: blur(10px);

    color: white;

    cursor: pointer;

    transition:
        background .25s ease,
        transform .25s ease,
        box-shadow .25s ease;
}


.poster-slider-btn:hover {
    background: #dc2626;

    transform:
        translateY(-50%)
        scale(1.06);

    box-shadow:
        0 8px 22px rgba(220,38,38,.28);
}


.poster-slider-prev {
    left: 18px;
}


.poster-slider-next {
    right: 18px;
}


/* =========================================================
   DOTS
========================================================= */

.poster-slider-dots {
    display: flex;

    justify-content: center;
    align-items: center;

    gap: 7px;

    margin-top: 15px;
}


.poster-dot {
    width: 7px;
    height: 7px;

    padding: 0;

    border: 0;

    border-radius: 999px;

    background: #cbd5e1;

    cursor: pointer;

    transition:
        width .3s ease,
        background .3s ease;
}


.poster-dot.active {
    width: 24px;

    background: #dc2626;
}


/* =========================================================
   NEWS SECTION
========================================================= */

.poster-news-section {
    margin-top: 55px;
}


.poster-news-heading {
    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    gap: 20px;

    margin-bottom: 19px;
}


.poster-news-total {
    padding: 7px 12px;

    border-radius: 999px;

    background: #f1f5f9;

    color: #64748b;

    font-family: "Inter", sans-serif;

    font-size: 11px;
    font-weight: 700;
}


/* =========================================================
   NEWS GRID
========================================================= */

.poster-news-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 17px;
}


/* =========================================================
   NEWS CARD
========================================================= */

.poster-news-card {
    position: relative;

    overflow: hidden;

    border: 1px solid #e2e8f0;

    border-radius: 18px;

    background: white;

    box-shadow:
        0 7px 24px rgba(15,23,42,.045);

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        border-color .3s ease;
}


.poster-news-card:hover {
    transform: translateY(-6px);

    border-color: #fecaca;

    box-shadow:
        0 18px 35px rgba(15,23,42,.09);
}


/* =========================================================
   NEWS IMAGE
========================================================= */

.poster-news-image {
    position: relative;

    height: 170px;

    overflow: hidden;

    background: #f1f5f9;
}


.poster-news-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform .55s cubic-bezier(.22,.61,.36,1);
}


.poster-news-card:hover
.poster-news-image img {
    transform: scale(1.07);
}


.poster-news-image::after {
    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(15,23,42,.02),
            rgba(15,23,42,.16)
        );

    pointer-events: none;
}


/* =========================================================
   NEWS EMPTY
========================================================= */

.poster-news-empty {
    width: 100%;
    height: 100%;

    display: flex;

    align-items: center;
    justify-content: center;

    color: #94a3b8;

    background:
        linear-gradient(
            135deg,
            #f8fafc,
            #e2e8f0
        );
}


.poster-news-empty i {
    font-size: 30px;
}


/* =========================================================
   NEWS STATUS
========================================================= */

.poster-news-status {
    position: absolute;

    top: 12px;
    left: 12px;

    z-index: 3;

    padding: 5px 8px;

    border-radius: 999px;

    background: rgba(15,23,42,.78);

    backdrop-filter: blur(8px);

    color: white;

    font-family: "Inter", sans-serif;

    font-size: 8px;
    font-weight: 800;

    letter-spacing: .08em;
}


/* =========================================================
   NEWS CONTENT
========================================================= */

.poster-news-content {
    padding: 17px 17px 16px;
}


.poster-news-date {
    display: flex;

    align-items: center;

    gap: 6px;

    margin-bottom: 8px;

    color: #94a3b8;

    font-family: "Inter", sans-serif;

    font-size: 10px;
    font-weight: 600;
}


.poster-news-date i {
    color: #ef4444;
}


.poster-news-content h4 {
    margin: 0 0 8px;

    font-family: "Plus Jakarta Sans", sans-serif;

    font-size: 15px;
    line-height: 1.4;

    font-weight: 800;

    letter-spacing: -.015em;

    color: #0f172a;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;

    overflow: hidden;
}


.poster-news-content p {
    margin: 0 0 13px;

    color: #64748b;

    font-family: "Inter", sans-serif;

    font-size: 11px;
    line-height: 1.65;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;

    overflow: hidden;
}


/* =========================================================
   NEWS LINK
========================================================= */

.poster-news-link {
    display: inline-flex;

    align-items: center;

    gap: 7px;

    text-decoration: none;

    color: #dc2626;

    font-family: "Inter", sans-serif;

    font-size: 10px;
    font-weight: 800;

    transition:
        gap .25s ease,
        color .25s ease;
}


.poster-news-link i {
    font-size: 9px;
}


.poster-news-link:hover {
    gap: 11px;

    color: #991b1b;
}


/* =========================================================
   EMPTY STATE
========================================================= */

.poster-empty-state {
    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    text-align: center;

    min-height: 320px;

    padding: 45px 25px;

    border: 1px dashed #cbd5e1;

    border-radius: 24px;

    background: white;
}


.poster-empty-state-icon {
    width: 60px;
    height: 60px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin-bottom: 15px;

    border-radius: 18px;

    background: #fef2f2;

    color: #dc2626;

    font-size: 23px;
}


.poster-empty-state h3 {
    margin: 0 0 7px;

    font-family: "Plus Jakarta Sans", sans-serif;

    font-size: 19px;
    font-weight: 800;

    color: #0f172a;
}


.poster-empty-state p {
    max-width: 420px;

    margin: 0;

    color: #64748b;

    font-family: "Inter", sans-serif;

    font-size: 12px;

    line-height: 1.7;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1100px) {

    .poster-slider {
        height: 400px;
    }


    .poster-slide {
        grid-template-columns:
            minmax(0, 1.05fr)
            minmax(300px, .95fr);
    }


    .poster-featured-content {
        padding: 35px;
    }


    .poster-featured-content h3 {
        font-size: 25px;
    }


    .poster-news-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .poster-section {
        padding: 60px 0 70px;
    }


    .poster-main-header {
        margin-bottom: 28px;
    }


    .poster-block-heading,
    .poster-news-heading {
        align-items: flex-start;
    }


    .poster-block-heading h3,
    .poster-news-heading h3 {
        font-size: 21px;
    }


    .poster-slider {
        height: auto;

        min-height: 560px;

        border-radius: 22px;
    }


    .poster-slide {
        grid-template-columns: 1fr;

        grid-template-rows:
            235px
            1fr;

        height: 100%;

        overflow: hidden;

        border-radius: 22px;
    }


    .poster-featured-image {
        height: 235px;
    }


    .poster-featured-content {
        min-height: 325px;

        padding: 27px 27px 30px;

        border-left: 0;

        border-top: 1px solid #e2e8f0;
    }


    .poster-featured-content::before {
        top: 0;
        bottom: auto;

        left: 27px;
        right: 27px;

        width: auto;
        height: 3px;

        border-radius: 0 0 8px 8px;
    }


    .poster-featured-content h3 {
        font-size: 24px;
    }


    .poster-featured-content p {
        font-size: 12px;

        -webkit-line-clamp: 3;
    }


    .poster-slider-btn {
        width: 38px;
        height: 38px;
    }


    .poster-slider-prev {
        left: 12px;
        top: 117px;
    }


    .poster-slider-next {
        right: 12px;
        top: 117px;
    }


    .poster-slider-dots {
        margin-top: 12px;
    }


    .poster-news-section {
        margin-top: 42px;
    }


    .poster-news-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 13px;
    }


    .poster-news-image {
        height: 145px;
    }


    .poster-news-content {
        padding: 14px;
    }


    .poster-news-content h4 {
        font-size: 14px;
    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .poster-section {
        padding-top: 50px;
        padding-bottom: 60px;
    }


    .poster-slider {
        min-height: 535px;

        border-radius: 19px;
    }


    .poster-slide {
        grid-template-rows:
            210px
            1fr;
    }


    .poster-featured-image {
        height: 210px;
    }


    .poster-featured-content {
        min-height: 325px;

        padding: 24px 21px 25px;
    }


    .poster-featured-content h3 {
        font-size: 21px;
    }


    .poster-featured-content p {
        font-size: 11px;
    }


    .poster-news-grid {
        grid-template-columns: 1fr;

        gap: 14px;
    }


    .poster-news-image {
        height: 190px;
    }


    .poster-news-content {
        padding: 15px;
    }


    .poster-slider-count {
        display: none;
    }

}
.poster-description-wrap .poster-featured-description,
.poster-news-description-wrap .poster-news-description {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


/* DESKRIPSI POSTER BESAR */

.poster-description-wrap .poster-featured-description {
    -webkit-line-clamp: 4;
}


/* DESKRIPSI BERITA KECIL */

.poster-news-description-wrap .poster-news-description {
    -webkit-line-clamp: 3;
}


/* SAAT DIBUKA */

.poster-description-wrap.expanded
.poster-featured-description,

.poster-news-description-wrap.expanded
.poster-news-description {
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
}


/* BUTTON */

.poster-more-btn {
    border: 0;
    background: transparent;
    padding: 0;
    margin-top: 10px;

    display: inline-flex;
    align-items: center;
    gap: 7px;

    font-weight: 700;
    cursor: pointer;
}


/* ICON BERPUTAR */

.poster-more-btn i {
    transition: transform .3s ease;
}


.poster-description-wrap.expanded
.poster-more-btn i,

.poster-news-description-wrap.expanded
.poster-more-btn i {
    transform: rotate(180deg);
}
/* =========================================================
   TOMBOL SELENGKAPNYA - FORCE VISIBLE
========================================================= */

.poster-description-wrap,
.poster-news-description-wrap {
    position: relative;
}

.poster-more-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;

    margin-top: 10px !important;
    padding: 0 !important;

    border: 0 !important;
    outline: none !important;

    background: transparent !important;

    color: #dc2626 !important;

    font-family: "Inter", sans-serif !important;
    font-size: 12px !important;
    font-weight: 800 !important;

    line-height: 1.4 !important;

    cursor: pointer !important;

    visibility: visible !important;
    opacity: 1 !important;

    position: relative;
    z-index: 10;
}

.poster-more-btn:hover {
    color: #991b1b !important;
}

.poster-more-btn .poster-more-text {
    display: inline !important;
    visibility: visible !important;
}

.poster-more-btn i {
    display: inline-block !important;
    visibility: visible !important;

    font-size: 10px !important;

    transition: transform .25s ease;
}

.poster-description-wrap.expanded
.poster-more-btn i,

.poster-news-description-wrap.expanded
.poster-more-btn i {
    transform: rotate(180deg);
}
/* =========================================================
   SELENGKAPNYA - EXPAND POSTER
========================================================= */

.poster-slider {
    height: 420px;
    transition: height .45s ease;
}

.poster-slide {
    height: 100%;
}

/* Saat deskripsi dibuka */
.poster-slider:has(.poster-description-wrap.expanded) {
    height: auto;
    min-height: 420px;
}

.poster-slider:has(.poster-description-wrap.expanded)
.poster-slide.active {
    height: auto;
    min-height: 420px;
}

/* Content boleh memanjang */
.poster-featured-content {
    overflow: visible;
}

/* Deskripsi ketika dibuka */
.poster-description-wrap.expanded
.poster-featured-description {
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;

    max-height: none;
}

/* Button tetap di bawah teks */
.poster-description-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.poster-more-btn {
    flex-shrink: 0;
}
/* =========================================================
   LIHAT SEMUA INFORMASI
========================================================= */

.poster-all-link {
    display: flex;
    justify-content: center;
    margin-top: 30px;
}

.poster-all-button {
    display: inline-flex;
    align-items: center;
    gap: 12px;

    padding: 12px 16px 12px 20px;

    border: 1px solid #e2e8f0;
    border-radius: 999px;

    background: #ffffff;
    color: #0f172a;

    font-family: "Inter", sans-serif;
    font-size: 12px;
    font-weight: 800;

    text-decoration: none;

    box-shadow:
        0 7px 22px rgba(15, 23, 42, .06);

    transition:
        transform .25s ease,
        background .25s ease,
        color .25s ease,
        box-shadow .25s ease;
}

.poster-all-button i {
    width: 30px;
    height: 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #fef2f2;
    color: #dc2626;

    font-size: 10px;

    transition:
        transform .25s ease,
        background .25s ease;
}

.poster-all-button:hover {
    transform: translateY(-3px);

    background: #0f172a;
    color: #ffffff;

    box-shadow:
        0 12px 28px rgba(15, 23, 42, .12);
}

.poster-all-button:hover i {
    transform: translateX(3px);

    background: #dc2626;
    color: #ffffff;
}