```css
/* =========================================================
   SPMB RA DARURRAHMAN
   Modern Islamic • Child Friendly • Lightweight
   ========================================================= */

/* =========================================================
   01. ROOT & RESET
   ========================================================= */

:root {
    --green-950: #064e3b;
    --green-900: #065f46;
    --green-800: #047857;
    --green-700: #059669;
    --green-600: #10b981;
    --green-500: #34d399;
    --green-400: #6ee7b7;
    --green-300: #a7f3d0;
    --green-200: #d1fae5;
    --green-100: #ecfdf5;

    --cream: #fffdf7;
    --cream-2: #f8f7ef;
    --white: #ffffff;

    --text-dark: #16352b;
    --text: #36544a;
    --text-soft: #6b8178;

    --border: rgba(6, 95, 70, 0.10);

    --shadow-sm:
        0 4px 16px rgba(6, 78, 59, 0.06);

    --shadow:
        0 12px 35px rgba(6, 78, 59, 0.10);

    --shadow-lg:
        0 25px 70px rgba(6, 78, 59, 0.15);

    --radius-sm: 12px;
    --radius: 20px;
    --radius-lg: 30px;
    --radius-xl: 40px;

    --container: 1160px;

    --transition:
        0.3s cubic-bezier(0.4, 0, 0.2, 1);
}


/* =========================================================
   RESET
   ========================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 30px;
}

body {
    margin: 0;
    padding: 0;

    background:
        radial-gradient(
            circle at 10% 20%,
            rgba(167, 243, 208, 0.20),
            transparent 25%
        ),
        var(--cream);

    color: var(--text);

    font-family:
        "Nunito",
        Arial,
        sans-serif;

    font-size: 16px;
    line-height: 1.7;

    overflow-x: hidden;

    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body::selection {
    background: var(--green-600);
    color: var(--white);
}

img {
    display: block;
    max-width: 100%;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

button {
    font-family: inherit;
}

iframe {
    max-width: 100%;
}

p,
h1,
h2,
h3,
h4 {
    margin-top: 0;
}


/* =========================================================
   CONTAINER
   ========================================================= */

.container {
    width: min(
        calc(100% - 32px),
        var(--container)
    );

    margin-inline: auto;
}


/* =========================================================
   BUTTON
   ========================================================= */

.btn {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    min-height: 52px;
    padding: 13px 24px;

    border: 0;
    border-radius: 16px;

    font-size: 15px;
    font-weight: 800;

    cursor: pointer;

    transition:
        transform var(--transition),
        box-shadow var(--transition),
        background var(--transition);

    overflow: hidden;
}

.btn:hover {
    transform: translateY(-3px);
}

.btn:active {
    transform: translateY(-1px);
}

.btn i {
    font-size: 16px;
}

.btn--primary {
    color: var(--white);

    background:
        linear-gradient(
            135deg,
            var(--green-800),
            var(--green-600)
        );

    box-shadow:
        0 10px 25px rgba(5, 150, 105, 0.25);
}

.btn--primary:hover {
    color: var(--white);

    box-shadow:
        0 15px 32px rgba(5, 150, 105, 0.32);
}

.btn--light {
    color: var(--green-900);
    background: rgba(255, 255, 255, 0.92);

    box-shadow:
        0 8px 25px rgba(0, 0, 0, 0.08);
}

.btn--light:hover {
    color: var(--green-900);
    background: var(--white);
}

.btn--outline {
    color: var(--green-800);

    background: var(--white);

    border: 2px solid var(--green-200);
}

.btn--outline:hover {
    color: var(--white);

    background: var(--green-700);
    border-color: var(--green-700);
}

.btn--large {
    min-height: 56px;
    padding-inline: 28px;
}

.btn--xl {
    width: 100%;
    min-height: 72px;

    justify-content: space-between;

    padding: 12px 22px;
}

.btn--xl span {
    flex: 1;

    display: flex;
    flex-direction: column;

    align-items: flex-start;

    text-align: left;
}

.btn--xl strong {
    font-size: 15px;
}

.btn--xl small {
    margin-top: 2px;

    font-size: 12px;
    font-weight: 600;

    opacity: 0.75;
}


/* =========================================================
   SECTION
   ========================================================= */

.section {
    position: relative;

    padding: 90px 0;
}

.section-heading {
    max-width: 720px;
    margin-bottom: 48px;
}

.section-heading--center {
    margin-inline: auto;

    text-align: center;
}

.section-heading__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;

    margin-bottom: 12px;

    color: var(--green-700);

    font-size: 14px;
    font-weight: 900;
    letter-spacing: 0.3px;
}

.section-heading h2 {
    margin-bottom: 14px;

    color: var(--text-dark);

    font-size: clamp(
        30px,
        5vw,
        46px
    );

    line-height: 1.18;
    letter-spacing: -1px;
}

.section-heading h2 strong {
    display: block;

    color: var(--green-700);
}

.section-heading p {
    margin: 0;

    color: var(--text-soft);

    font-size: 16px;
}

.section-heading p strong {
    color: var(--green-800);
}


/* =========================================================
   HERO
   ========================================================= */

.hero {
    position: relative;

    min-height: 720px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 80px 20px 130px;

    color: var(--white);

    isolation: isolate;

    overflow: hidden;
}

.hero__background {
    position: absolute;
    inset: 0;

    z-index: -3;

    background:
        linear-gradient(
            135deg,
            rgba(4, 78, 59, 0.98),
            rgba(5, 150, 105, 0.94)
        );

    background-image:
        linear-gradient(
            135deg,
            rgba(4, 78, 59, 0.96),
            rgba(5, 150, 105, 0.90)
        ),
        url("img/BG.png");

    background-size: cover;
    background-position: center;
}

.hero__pattern {
    position: absolute;
    inset: 0;

    z-index: -2;

    opacity: 0.16;

    background-image:
        radial-gradient(
            circle at 20% 20%,
            white 0 2px,
            transparent 2px
        );

    background-size: 35px 35px;
}

.hero::before,
.hero::after {
    content: "";

    position: absolute;

    border-radius: 50%;

    z-index: -1;

    pointer-events: none;
}

.hero::before {
    width: 280px;
    height: 280px;

    top: -120px;
    left: -80px;

    background: rgba(167, 243, 208, 0.12);
}

.hero::after {
    width: 420px;
    height: 420px;

    right: -170px;
    bottom: -180px;

    background: rgba(255, 255, 255, 0.08);
}

.hero__content {
    width: min(100%, 820px);

    margin-inline: auto;

    text-align: center;
}

.hero__logo {
    width: 110px;
    height: 110px;

    display: grid;
    place-items: center;

    margin: 0 auto 22px;

    padding: 12px;

    background: rgba(255, 255, 255, 0.95);

    border: 5px solid rgba(255, 255, 255, 0.22);

    border-radius: 50%;

    box-shadow:
        0 15px 40px rgba(0, 0, 0, 0.15);
}

.hero__logo img {
    width: 100%;
    height: 100%;

    object-fit: contain;
}

.hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding: 7px 15px;

    border: 1px solid rgba(255, 255, 255, 0.25);

    border-radius: 999px;

    background: rgba(255, 255, 255, 0.12);

    backdrop-filter: blur(8px);

    font-size: 13px;
    font-weight: 800;
}

.hero__badge i {
    color: #fef08a;
}

.hero__title {
    margin: 18px 0 8px;

    font-size: clamp(
        48px,
        10vw,
        92px
    );

    line-height: 0.95;

    font-weight: 900;

    letter-spacing: -3px;

    text-shadow:
        0 5px 20px rgba(0, 0, 0, 0.12);
}

.hero__title span {
    display: block;

    margin-top: 12px;

    font-size: clamp(
        23px,
        5vw,
        40px
    );

    letter-spacing: 0;

    color: #d1fae5;
}

.hero__subtitle {
    margin: 18px 0 12px;

    color: var(--white);

    font-size: 20px;
    font-weight: 800;
}

.hero__description {
    max-width: 580px;

    margin: 0 auto 30px;

    color: rgba(255, 255, 255, 0.88);

    font-size: 16px;
}

.hero__actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
}

.hero__trust {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;

    gap: 22px;

    margin-top: 38px;
}

.trust-item {
    display: flex;
    align-items: center;
    gap: 7px;

    color: rgba(255, 255, 255, 0.88);

    font-size: 12px;
    font-weight: 700;
}

.trust-item i {
    color: #a7f3d0;
}

.hero__wave {
    position: absolute;

    left: -2%;
    bottom: -1px;

    width: 104%;
    height: 80px;

    background: var(--cream);

    clip-path:
        ellipse(
            55% 70% at 50% 100%
        );

    z-index: 2;
}


/* =========================================================
   GREETING
   ========================================================= */

.greeting {
    padding: 35px 0 10px;

    text-align: center;

    background: var(--cream);
}

.section-decoration {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;

    margin-bottom: 12px;
}

.section-decoration i {
    color: var(--green-600);

    font-size: 18px;
}

.decoration-line {
    width: 65px;
    height: 1px;

    background:
        linear-gradient(
            to right,
            transparent,
            var(--green-300)
        );
}

.decoration-line:last-child {
    background:
        linear-gradient(
            to left,
            transparent,
            var(--green-300)
        );
}

.arabic-greeting {
    margin: 0;

    color: var(--green-800);

    font-family: "Amiri", serif;

    font-size: clamp(
        22px,
        4vw,
        32px
    );

    font-weight: 700;

    line-height: 1.5;
}

.greeting-text {
    margin: 5px 0 0;

    color: var(--text-soft);

    font-size: 13px;
    font-weight: 700;
}


/* =========================================================
   INTRODUCTION
   ========================================================= */

.introduction {
    padding-top: 70px;
}

.introduction__grid {
    display: grid;

    grid-template-columns:
        minmax(0, 0.9fr)
        minmax(0, 1.1fr);

    gap: 60px;

    align-items: center;
}

.image-card {
    position: relative;

    padding: 12px;

    border-radius: var(--radius-xl);

    background:
        linear-gradient(
            145deg,
            var(--green-200),
            var(--white)
        );

    box-shadow: var(--shadow);
}

.image-card::before {
    content: "✦";

    position: absolute;

    top: -18px;
    right: 30px;

    width: 46px;
    height: 46px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    background: #fef3c7;

    color: #d97706;

    font-size: 20px;

    box-shadow: var(--shadow-sm);

    z-index: 2;
}

.image-card img {
    width: 100%;

    aspect-ratio: 4 / 3;

    object-fit: cover;

    border-radius: 25px;
}

.image-card__badge {
    position: absolute;

    right: 28px;
    bottom: 28px;

    display: flex;
    align-items: center;
    gap: 8px;

    padding: 9px 14px;

    border-radius: 999px;

    background: rgba(255, 255, 255, 0.94);

    color: var(--green-800);

    font-size: 12px;
    font-weight: 800;

    box-shadow: var(--shadow-sm);
}

.image-card__badge i {
    color: #f43f5e;
}

.title-story {
    margin: 0;

    color: var(--text);

    font-size: 16px;
    line-height: 1.9;
}

.introduction__highlight {
    display: flex;
    align-items: flex-start;
    gap: 14px;

    margin-top: 28px;
    padding: 18px;

    border: 1px solid var(--green-200);

    border-radius: 18px;

    background: var(--green-100);
}

.highlight-icon {
    flex: 0 0 45px;

    width: 45px;
    height: 45px;

    display: grid;
    place-items: center;

    border-radius: 14px;

    background: var(--green-700);

    color: var(--white);
}

.introduction__highlight strong,
.introduction__highlight span {
    display: block;
}

.introduction__highlight strong {
    margin-bottom: 3px;

    color: var(--green-900);

    font-size: 14px;
}

.introduction__highlight span {
    color: var(--text-soft);

    font-size: 12px;
}


/* =========================================================
   REGISTRATION
   ========================================================= */

.registration {
    background:
        linear-gradient(
            180deg,
            var(--cream),
            var(--green-100)
        );
}

.registration-card {
    max-width: 920px;

    margin: 0 auto;

    padding: 30px;

    border: 1px solid rgba(255, 255, 255, 0.8);

    border-radius: var(--radius-lg);

    background: var(--white);

    box-shadow: var(--shadow-lg);
}

.registration-card__top {
    display: flex;
    align-items: center;
    gap: 24px;

    padding-bottom: 26px;

    border-bottom: 1px dashed var(--green-200);
}

.registration-logo {
    flex: 0 0 100px;

    width: 100px;
    height: 100px;

    display: grid;
    place-items: center;

    padding: 10px;

    border-radius: 25px;

    background: var(--green-100);
}

.registration-logo img {
    width: 100%;
    height: 100%;

    object-fit: contain;
}

.registration-label {
    display: inline-block;

    margin-bottom: 5px;

    color: var(--green-600);

    font-size: 13px;
    font-weight: 900;
}

.registration-card h3 {
    margin-bottom: 4px;

    color: var(--green-900);

    font-size: 30px;
    line-height: 1.2;
}

.registration-card p {
    margin: 0;

    color: var(--text-soft);

    font-size: 14px;
    font-weight: 700;
}

.registration-card p i {
    margin-right: 5px;

    color: var(--green-600);
}

.registration-card__action {
    padding-top: 25px;
}


/* =========================================================
   INFO GRID
   ========================================================= */

.info-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 0.75fr)
        minmax(0, 1.25fr);

    gap: 20px;

    max-width: 920px;

    margin: 25px auto 0;
}

.info-card {
    display: flex;
    align-items: flex-start;
    gap: 16px;

    padding: 24px;

    border: 1px solid var(--border);

    border-radius: 22px;

    background: rgba(255, 255, 255, 0.82);

    box-shadow: var(--shadow-sm);

    transition:
        transform var(--transition),
        box-shadow var(--transition);
}

.info-card:hover {
    transform: translateY(-4px);

    box-shadow: var(--shadow);
}

.info-card__icon {
    flex: 0 0 50px;

    width: 50px;
    height: 50px;

    display: grid;
    place-items: center;

    border-radius: 16px;

    background: var(--green-100);

    color: var(--green-700);

    font-size: 19px;
}

.info-card__content span {
    display: block;

    margin-bottom: 3px;

    color: var(--text-soft);

    font-size: 12px;
    font-weight: 800;
}

.info-card h3 {
    margin-bottom: 3px;

    color: var(--green-900);

    font-size: 18px;
    line-height: 1.35;
}

.info-card p {
    margin: 5px 0 0;

    color: var(--text-soft);

    font-size: 12px;
    line-height: 1.7;
}


/* =========================================================
   REMINDER
   ========================================================= */

.reminder {
    max-width: 920px;

    display: flex;
    align-items: center;
    gap: 15px;

    margin: 20px auto 0;
    padding: 17px 20px;

    border-radius: 18px;

    background: var(--green-950);

    color: var(--white);
}

.reminder__icon {
    flex: 0 0 45px;

    width: 45px;
    height: 45px;

    display: grid;
    place-items: center;

    border-radius: 14px;

    background: rgba(255, 255, 255, 0.12);

    color: #a7f3d0;
}

.reminder__content {
    flex: 1;

    display: flex;
    flex-direction: column;
}

.reminder__content strong {
    font-size: 14px;
}

.reminder__content span {
    color: rgba(255, 255, 255, 0.68);

    font-size: 12px;
}


/* =========================================================
   COUNTDOWN SPMB - MODERN ISLAMIC CHILDISH
   ========================================================= */

.countdown-section {
    position: relative;

    padding: 95px 0;

    overflow: hidden;

    color: #ffffff;

    background:
        radial-gradient(
            circle at 15% 20%,
            rgba(110, 231, 183, 0.30),
            transparent 25%
        ),
        radial-gradient(
            circle at 85% 80%,
            rgba(253, 230, 138, 0.18),
            transparent 25%
        ),
        linear-gradient(
            135deg,
            #064e3b 0%,
            #047857 45%,
            #059669 100%
        );
}


/* Decorative circles */

.countdown-section::before,
.countdown-section::after {
    content: "";

    position: absolute;

    border-radius: 50%;

    pointer-events: none;
}

.countdown-section::before {

    width: 420px;
    height: 420px;

    top: -240px;
    left: -180px;

    border: 50px solid rgba(
        255,
        255,
        255,
        0.04
    );
}

.countdown-section::after {

    width: 500px;
    height: 500px;

    right: -280px;
    bottom: -300px;

    border: 70px solid rgba(
        167,
        243,
        208,
        0.07
    );
}


/* Islamic pattern ringan */

.countdown-section .container {
    position: relative;
    z-index: 2;
}

.countdown-section .section-heading__eyebrow {
    color: #a7f3d0;
}

.countdown-section .section-heading__eyebrow::before {
    content: "✦";

    margin-right: 6px;

    color: #fde68a;
}

.countdown-section .section-heading h2 {
    color: #ffffff;
}

.countdown-section .section-heading h2 strong {
    color: #d1fae5;
}

.countdown-section .section-heading p {
    color: rgba(
        255,
        255,
        255,
        0.75
    );
}


/* =========================================================
   COUNTDOWN GRID
   ========================================================= */

.countdown {

    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 18px;

    max-width: 900px;

    margin: 42px auto 0;
}


/* =========================================================
   COUNTDOWN ITEM
   ========================================================= */

.countdown__item {

    position: relative;

    min-height: 190px;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    padding: 25px 15px;

    overflow: hidden;

    border: 1px solid rgba(
        255,
        255,
        255,
        0.18
    );

    border-radius: 30px;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,0.17),
            rgba(255,255,255,0.07)
        );

    backdrop-filter: blur(12px);

    -webkit-backdrop-filter: blur(12px);

    box-shadow:
        0 18px 45px rgba(
            0,
            0,
            0,
            0.12
        );

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}


.countdown__item:hover {

    transform:
        translateY(-8px);

    box-shadow:
        0 25px 55px rgba(
            0,
            0,
            0,
            0.20
        );
}


/* Inner glow */

.countdown__item::before {

    content: "";

    position: absolute;

    width: 100px;
    height: 100px;

    top: -50px;
    right: -50px;

    border-radius: 50%;

    background: rgba(
        255,
        255,
        255,
        0.10
    );
}


/* =========================================================
   ICON
   ========================================================= */

.countdown__icon {

    width: 46px;
    height: 46px;

    display: grid;

    place-items: center;

    margin-bottom: 12px;

    border-radius: 15px;

    background:
        rgba(
            255,
            255,
            255,
            0.13
        );

    color: #fde68a;

    font-size: 17px;

    box-shadow:
        inset 0 1px 0
        rgba(
            255,
            255,
            255,
            0.15
        );
}


/* =========================================================
   NUMBER
   ========================================================= */

.countdown__item strong {

    display: block;

    color: #ffffff;

    font-size: clamp(
        42px,
        6vw,
        68px
    );

    line-height: 0.95;

    font-weight: 900;

    letter-spacing: -2px;

    text-shadow:
        0 5px 20px rgba(
            0,
            0,
            0,
            0.15
        );

    font-variant-numeric:
        tabular-nums;
}


/* =========================================================
   LABEL
   ========================================================= */

.countdown__item span {

    display: block;

    margin-top: 12px;

    color:
        rgba(
            255,
            255,
            255,
            0.70
        );

    font-size: 13px;

    font-weight: 800;

    letter-spacing: 1px;

    text-transform: uppercase;
}


/* =========================================================
   NOTE
   ========================================================= */

.countdown-note {

    max-width: 620px;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 10px;

    margin: 30px auto 0;

    padding: 13px 20px;

    border: 1px solid rgba(
        255,
        255,
        255,
        0.10
    );

    border-radius: 999px;

    background:
        rgba(
            255,
            255,
            255,
            0.07
        );

    color:
        rgba(
            255,
            255,
            255,
            0.75
        );

    font-size: 12px;

    font-weight: 700;

    text-align: center;
}

.countdown-note i {

    color: #fda4af;

    animation:
        heartbeat 1.8s
        ease-in-out
        infinite;
}


/* =========================================================
   FINISHED
   ========================================================= */

.countdown-finished-message {

    min-height: 20px;

    margin-top: 18px;

    color: #fde68a;

    font-size: 13px;

    font-weight: 800;

    text-align: center;
}


.countdown-finished
.countdown__item {

    opacity: 0.75;
}


/* =========================================================
   HEARTBEAT
   ========================================================= */

@keyframes heartbeat {

    0%,
    100% {
        transform: scale(1);
    }

    15% {
        transform: scale(1.18);
    }

    30% {
        transform: scale(1);
    }
}


/* =========================================================
   QUOTE
   ========================================================= */

.quote-section {
    padding: 80px 0;

    background: var(--cream);
}

.quote-card {
    position: relative;

    max-width: 820px;

    margin: 0 auto;

    padding: 45px 35px;

    border-radius: var(--radius-lg);

    background:
        linear-gradient(
            145deg,
            var(--green-100),
            var(--white)
        );

    border: 1px solid var(--green-200);

    text-align: center;

    box-shadow: var(--shadow-sm);
}

.quote-card__icon {
    width: 48px;
    height: 48px;

    display: grid;
    place-items: center;

    margin: 0 auto 20px;

    border-radius: 50%;

    background: var(--green-700);

    color: var(--white);
}

.quote-card p {
    margin: 0 auto;

    max-width: 680px;

    color: var(--green-900);

    font-size: clamp(
        18px,
        3vw,
        25px
    );

    font-weight: 800;

    line-height: 1.6;
}

.quote-card__decoration {
    margin-top: 20px;

    color: var(--green-500);

    letter-spacing: 8px;
}


/* =========================================================
   LOCATION
   ========================================================= */

.location {
    background: var(--white);
}

.location-card {
    max-width: 1000px;

    margin: 0 auto;

    overflow: hidden;

    border: 1px solid var(--border);

    border-radius: var(--radius-lg);

    background: var(--white);

    box-shadow: var(--shadow);
}

.location-card__header {
    display: flex;
    align-items: flex-start;
    gap: 16px;

    padding: 28px;
}

.location-card__icon {
    flex: 0 0 52px;

    width: 52px;
    height: 52px;

    display: grid;
    place-items: center;

    border-radius: 16px;

    background: var(--green-100);

    color: var(--green-700);

    font-size: 20px;
}

.location-card__header h3 {
    margin-bottom: 4px;

    color: var(--green-900);

    font-size: 21px;
}

.location-card__header p {
    max-width: 680px;

    margin: 0;

    color: var(--text-soft);

    font-size: 13px;
    line-height: 1.7;
}

.map-wrapper {
    position: relative;

    width: 100%;

    min-height: 350px;

    background: var(--green-100);
}

.map-wrapper iframe {
    display: block;

    width: 100%;
    min-height: 400px;

    border: 0;
}

.location-card__action {
    display: flex;
    justify-content: center;

    padding: 25px;
}


/* =========================================================
   SOCIAL
   ========================================================= */

.social-section {
    padding: 90px 0;

    background:
        linear-gradient(
            180deg,
            var(--green-100),
            var(--cream)
        );
}

.social-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 18px;

    max-width: 950px;

    margin: 0 auto;
}

.social-card {
    display: flex;
    align-items: center;
    gap: 13px;

    padding: 17px;

    border: 1px solid var(--border);

    border-radius: 20px;

    background: var(--white);

    box-shadow: var(--shadow-sm);

    transition:
        transform var(--transition),
        box-shadow var(--transition);
}

.social-card:hover {
    transform: translateY(-5px);

    box-shadow: var(--shadow);
}

.social-card__icon {
    flex: 0 0 46px;

    width: 46px;
    height: 46px;

    display: grid;
    place-items: center;

    border-radius: 14px;

    color: var(--white);

    font-size: 19px;
}

.social-card__text {
    flex: 1;

    display: flex;
    flex-direction: column;
}

.social-card__text strong {
    color: var(--text-dark);

    font-size: 14px;
}

.social-card__text small {
    color: var(--text-soft);

    font-size: 11px;
}

.social-card > i {
    color: var(--green-400);

    font-size: 12px;
}

.social-card--facebook .social-card__icon {
    background: #1877f2;
}

.social-card--youtube .social-card__icon {
    background: #ff0000;
}

.social-card--instagram .social-card__icon {
    background:
        linear-gradient(
            135deg,
            #833ab4,
            #fd1d1d,
            #fcb045
        );
}


/* =========================================================
   FOOTER
   ========================================================= */

.footer {
    position: relative;

    padding: 70px 0 100px;

    background: var(--green-950);

    color: var(--white);

    text-align: center;

    overflow: hidden;
}

.footer::before,
.footer::after {
    content: "";

    position: absolute;

    border-radius: 50%;

    background: rgba(167, 243, 208, 0.06);
}

.footer::before {
    width: 300px;
    height: 300px;

    top: -180px;
    left: -120px;
}

.footer::after {
    width: 400px;
    height: 400px;

    right: -220px;
    bottom: -280px;
}

.footer__decoration {
    position: relative;
    z-index: 1;

    margin-bottom: 20px;

    color: var(--green-400);

    letter-spacing: 8px;
}

.footer__logo {
    position: relative;
    z-index: 1;

    width: 82px;
    height: 82px;

    display: grid;
    place-items: center;

    margin: 0 auto 20px;

    padding: 8px;

    border-radius: 50%;

    background: var(--white);
}

.footer__logo img {
    width: 100%;
    height: 100%;

    object-fit: contain;
}

.footer__greeting {
    position: relative;
    z-index: 1;

    margin: 0;

    color: rgba(255, 255, 255, 0.90);

    font-size: 15px;
    font-weight: 700;
}

.footer__divider {
    width: 70px;
    height: 2px;

    margin: 20px auto;

    border-radius: 99px;

    background: var(--green-500);
}

.footer__website {
    position: relative;
    z-index: 1;

    display: inline-flex;
    align-items: center;
    gap: 7px;

    color: var(--green-300);

    font-size: 14px;
    font-weight: 800;

    transition: color var(--transition);
}

.footer__website:hover {
    color: var(--white);
}

.footer__copyright {
    position: relative;
    z-index: 1;

    margin: 8px 0 0;

    color: rgba(255, 255, 255, 0.45);

    font-size: 11px;
}


/* =========================================================
   FLOATING REGISTER
   ========================================================= */

.floating-register {
    position: fixed;

    right: 22px;
    bottom: 22px;

    z-index: 90;

    display: inline-flex;
    align-items: center;
    gap: 9px;

    padding: 8px 15px 8px 8px;

    border-radius: 999px;

    background:
        linear-gradient(
            135deg,
            var(--green-900),
            var(--green-600)
        );

    color: var(--white);

    box-shadow:
        0 12px 30px rgba(4, 78, 59, 0.30);

    font-size: 12px;
    font-weight: 900;

    transition:
        transform var(--transition),
        box-shadow var(--transition);
}

.floating-register:hover {
    color: var(--white);

    transform: translateY(-4px);

    box-shadow:
        0 18px 35px rgba(4, 78, 59, 0.38);
}

.floating-register__icon {
    width: 38px;
    height: 38px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.15);
}


/* =========================================================
   BACK TO TOP
   ========================================================= */

.back-to-top {
    position: fixed;

    right: 22px;
    bottom: 82px;

    z-index: 80;

    width: 42px;
    height: 42px;

    display: grid;
    place-items: center;

    border: 0;

    border-radius: 50%;

    background: var(--white);

    color: var(--green-800);

    box-shadow: var(--shadow);

    cursor: pointer;

    opacity: 0;
    visibility: hidden;

    transform: translateY(15px);

    transition:
        opacity var(--transition),
        visibility var(--transition),
        transform var(--transition);
}

.back-to-top.show {
    opacity: 1;
    visibility: visible;

    transform: translateY(0);
}

.back-to-top:hover {
    background: var(--green-700);
    color: var(--white);
}


/* =========================================================
   MOBILE NAVIGATION
   ========================================================= */

.mobile-nav {
    position: fixed;

    left: 50%;
    bottom: 12px;

    z-index: 100;

    width: calc(100% - 24px);
    max-width: 520px;

    display: none;

    grid-template-columns:
        repeat(4, 1fr);

    padding: 7px;

    transform: translateX(-50%);

    border: 1px solid rgba(255, 255, 255, 0.65);

    border-radius: 22px;

    background:
        rgba(255, 255, 255, 0.93);

    backdrop-filter: blur(15px);

    box-shadow:
        0 12px 40px rgba(6, 78, 59, 0.18);
}

.mobile-nav__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 2px;

    min-height: 54px;

    border-radius: 16px;

    color: var(--text-soft);

    font-size: 10px;
    font-weight: 800;

    transition:
        background var(--transition),
        color var(--transition);
}

.mobile-nav__item i {
    font-size: 17px;
}

.mobile-nav__item.active {
    color: var(--white);

    background: var(--green-700);
}


/* =========================================================
   ACCESSIBILITY
   ========================================================= */

:focus-visible {
    outline: 3px solid var(--green-400);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}


/* =========================================================
   DESKTOP LARGE
   ========================================================= */

@media (min-width: 1200px) {

    .hero {
        min-height: 760px;
    }

    .section {
        padding: 110px 0;
    }

    .introduction {
        padding-top: 90px;
    }
}
/* =========================================================
   GLOBAL VISUAL ENHANCEMENT
   ========================================================= */

body {

    background:
        radial-gradient(
            circle at 5% 10%,
            rgba(
                167,
                243,
                208,
                0.18
            ),
            transparent 20%
        ),
        radial-gradient(
            circle at 95% 45%,
            rgba(
                253,
                230,
                138,
                0.12
            ),
            transparent 18%
        ),
        #fffdf7;
}


/* =========================================================
   SECTION ALTERNATION
   ========================================================= */

.greeting {

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #ecfdf5 100%
        );
}


.introduction {

    background:
        linear-gradient(
            180deg,
            #ecfdf5 0%,
            #fffdf7 100%
        );
}


.registration {

    background:
        radial-gradient(
            circle at 10% 20%,
            rgba(
                167,
                243,
                208,
                0.45
            ),
            transparent 22%
        ),
        #fff7ed;
}


.quote-section {

    background:
        linear-gradient(
            180deg,
            #fffdf7,
            #ecfdf5
        );
}


.location {

    background:
        #ffffff;
}


.social-section {

    background:
        linear-gradient(
            180deg,
            #ecfdf5,
            #fefce8
        );
}
/* =========================================================
   CHILD FRIENDLY DECORATIONS
   ========================================================= */

.introduction,
.registration,
.quote-section,
.location,
.social-section {
    position: relative;
    overflow: hidden;
}


/* Decorative bubbles */

.introduction::before,
.registration::after,
.social-section::before {

    content: "";

    position: absolute;

    width: 120px;
    height: 120px;

    border-radius: 50%;

    pointer-events: none;

    opacity: 0.45;
}


.introduction::before {

    left: -65px;
    top: 100px;

    background:
        #d1fae5;
}


.registration::after {

    right: -65px;
    top: 150px;

    background:
        #fef3c7;
}


.social-section::before {

    left: -60px;
    bottom: 100px;

    background:
        #dbeafe;
}
