/* =========================================================
   BIRI TOURISM PAGE
========================================================= */

:root {
    --biri-red: #d73827;
    --biri-blue: #1493c1;
    --biri-blue-dark: #08749f;

    --biri-navy: #123d58;
    --biri-text: #586e78;

    --biri-light: #f6fafc;
    --biri-light-blue: #edf8fc;

    --biri-border:
        rgba(18, 61, 88, .11);

    --biri-shadow:
        0 20px 50px
        rgba(18, 61, 88, .11);
}


/* GENERAL */

.biri-page {
    overflow: hidden;
}

.biri-section {
    padding: 100px 0;
}

.biri-label,
.biri-eyebrow {
    display: inline-block;

    margin-bottom: 12px;

    color: var(--biri-red);

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 2px;

    text-transform: uppercase;
}

.biri-section-heading {
    max-width: 750px;

    margin-bottom: 45px;
}

.biri-section-heading h2 {
    margin: 0;

    color: var(--biri-navy);

    font-size:
        clamp(
            38px,
            5vw,
            58px
        );

    line-height: 1.05;

    letter-spacing: -2px;
}

.biri-section-heading p {
    margin: 17px 0 0;

    color: var(--biri-text);

    font-size: 15px;
    line-height: 1.8;
}

.biri-center {
    margin-left: auto;
    margin-right: auto;

    text-align: center;
}


/* =========================================================
   HERO
========================================================= */

.biri-hero {
    position: relative;

    min-height: 590px;

    display: flex;
    align-items: flex-end;

    overflow: hidden;

    background: var(--biri-navy);
}

.biri-hero-image {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;
}

.biri-hero-overlay {
    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(6, 37, 55, .85),
            rgba(6, 37, 55, .48) 55%,
            rgba(6, 37, 55, .10)
        ),
        linear-gradient(
            0deg,
            rgba(6, 37, 55, .65),
            transparent
        );
}

.biri-hero-content {
    position: relative;

    z-index: 3;

    padding-bottom: 70px;

    color: #fff;
}

.biri-eyebrow {
    padding: 7px 12px;

    border-radius: 999px;

    color: #fff;

    background: var(--biri-red);
}

.biri-hero h1 {
    margin: 0;

    color: #fff;

    font-size:
        clamp(
            60px,
            10vw,
            110px
        );

    line-height: .9;

    letter-spacing: -5px;
}

.biri-hero p {
 max-width: 1050px;

    margin: 25px 0 0;

    color:
        rgba(255,255,255,.88);

    font-size: 17px;

    line-height: 1.75;
}


/* =========================================================
   GET HERE
========================================================= */

.biri-get-here {
    background:
        linear-gradient(
            135deg,
            var(--biri-light-blue),
            #fff
        );
}


/* =========================================================
   ATTRACTIONS
========================================================= */

.biri-attraction-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 24px;
}

.biri-attraction-card {
    overflow: hidden;

    border:
        1px solid
        var(--biri-border);

    border-radius: 22px;

    background: #fff;

    box-shadow:
        0 8px 28px
        rgba(18,61,88,.06);

    transition:
        transform .3s ease,
        box-shadow .3s ease;
}

.biri-attraction-card:hover {
    transform:
        translateY(-7px);

    box-shadow:
        var(--biri-shadow);
}

.biri-attraction-image {
    height: 240px;

    overflow: hidden;
}

.biri-attraction-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform .6s ease;
}

.biri-attraction-card:hover img {
    transform: scale(1.05);
}

.biri-attraction-body {
    padding: 24px;
}

.biri-attraction-body > span {
    color: var(--biri-blue);

    font-size: 9px;
    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 1.5px;
}

.biri-attraction-body h3 {
    margin: 7px 0 11px;

    color: var(--biri-navy);

    font-size: 22px;
}

.biri-attraction-body p {
    margin: 0;

    color: var(--biri-text);

    font-size: 13px;
    line-height: 1.7;
}

.biri-attraction-body button {
    margin-top: 20px;

    padding: 0;

    border: 0;

    color: var(--biri-red);

    background: transparent;

    cursor: pointer;

    font-size: 12px;
    font-weight: 800;
}


/* =========================================================
   EAT / STAY
========================================================= */

.biri-eat {
    background: var(--biri-light);
}

.biri-stay {
    background: #fff;
}

.biri-place-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 23px;
}

.biri-place-card {
    overflow: hidden;

    border:
        1px solid
        var(--biri-border);

    border-radius: 20px;

    background: #fff;

    box-shadow:
        0 8px 25px
        rgba(18,61,88,.055);
}

.biri-place-image {
    height: 215px;

    overflow: hidden;
}

.biri-place-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.biri-place-body {
    padding: 22px;
}

.biri-place-body h3 {
    margin: 0;

    color: var(--biri-navy);

    font-size: 19px;
}

.biri-place-body p {
    margin: 11px 0 0;

    color: var(--biri-text);

    font-size: 12px;
}

.biri-place-body a {
    display: inline-block;

    margin-top: 15px;

    color: var(--biri-blue-dark);

    font-size: 12px;
    font-weight: 800;
}


/* PAGINATION */

.biri-pagination {
    display: flex;
    justify-content: center;

    gap: 7px;

    margin-top: 38px;
}

.biri-pagination button {
    width: 40px;
    height: 40px;

    border:
        1px solid
        var(--biri-border);

    border-radius: 10px;

    color: var(--biri-navy);

    background: #fff;

    cursor: pointer;

    font-weight: 700;
}

.biri-pagination button.active,
.biri-pagination button:hover {
    color: #fff;

    border-color: var(--biri-blue);

    background: var(--biri-blue);
}


/* =========================================================
   ACTIVITIES
========================================================= */

.biri-activities {
    background:
        linear-gradient(
            135deg,
            #edf8fc,
            #fff7f1
        );
}

.biri-activity-grid {
    display: grid;

    grid-template-columns:
        repeat(5, 1fr);

    gap: 17px;
}

.biri-activity-card {
    padding: 28px 18px;

    border:
        1px solid
        var(--biri-border);

    border-radius: 19px;

    text-align: center;

    background: #fff;
}

.biri-activity-icon {
    font-size: 30px;
}

.biri-activity-card h3 {
    margin: 12px 0 0;

    color: var(--biri-navy);

    font-size: 14px;
}


/* =========================================================
   MAP
========================================================= */

.biri-map {
    height: 530px;

    overflow: hidden;

    border-radius: 27px;

    box-shadow: var(--biri-shadow);
}

.biri-map iframe {
    width: 100%;
    height: 100%;

    border: 0;
}


/* =========================================================
   MODAL
========================================================= */

.biri-modal {
    position: fixed;

    inset: 0;

    z-index: 999999;

    display: none;

    align-items: center;
    justify-content: center;

    padding: 25px;
}

.biri-modal.open {
    display: flex;
}

.biri-modal-backdrop {
    position: absolute;

    inset: 0;

    background:
        rgba(4,24,37,.77);

    backdrop-filter:
        blur(6px);
}

.biri-modal-dialog {
    position: relative;

    z-index: 3;

    width:
        min(
            1000px,
            100%
        );

    max-height: 90vh;

    display: grid;

    grid-template-columns:
        1.05fr
        .95fr;

    overflow-y: auto;

    border-radius: 25px;

    background: #fff;

    box-shadow:
        0 35px 100px
        rgba(0,0,0,.32);
}

.biri-modal-close {
    position: absolute;

    z-index: 10;

    top: 15px;
    right: 15px;

    width: 42px;
    height: 42px;

    border: 0;

    border-radius: 50%;

    color: var(--biri-navy);

    background:
        rgba(255,255,255,.94);

    cursor: pointer;

    font-size: 27px;
}

.biri-modal-gallery {
    padding: 22px;

    background: var(--biri-light);
}

.biri-modal-main {
    height: 420px;

    overflow: hidden;

    border-radius: 16px;
}

.biri-modal-main img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.biri-modal-thumbs {
    display: flex;

    gap: 8px;

    margin-top: 10px;

    overflow-x: auto;
}

.biri-thumb {
    width: 75px;
    height: 60px;

    flex: 0 0 75px;

    padding: 0;

    overflow: hidden;

    border:
        2px solid
        transparent;

    border-radius: 9px;

    background: transparent;

    cursor: pointer;
}

.biri-thumb.active {
    border-color: var(--biri-blue);
}

.biri-thumb img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.biri-modal-content {
    padding: 48px 38px;
}

.biri-modal-content > span {
    color: var(--biri-red);

    font-size: 10px;
    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 1.5px;
}

.biri-modal-content h2 {
    margin: 8px 0 28px;

    color: var(--biri-navy);

    font-size: 36px;

    line-height: 1.1;
}

.biri-modal-block {
    padding-top: 19px;

    border-top:
        1px solid
        var(--biri-border);
}

.biri-modal-block + .biri-modal-block {
    margin-top: 22px;
}

.biri-modal-block strong {
    color: var(--biri-navy);

    font-size: 12px;
}

.biri-modal-block p {
    margin: 8px 0 0;

    color: var(--biri-text);

    font-size: 14px;

    line-height: 1.8;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 900px) {

    .biri-attraction-grid,
    .biri-place-grid {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .biri-activity-grid {
        grid-template-columns:
            repeat(3, 1fr);
    }

    .biri-modal-dialog {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 600px) {

    .biri-section {
        padding: 75px 0;
    }

    .biri-hero {
        min-height: 520px;
    }

    .biri-hero h1 {
        font-size: 62px;
    }

    .biri-attraction-grid,
    .biri-place-grid,
    .biri-activity-grid {
        grid-template-columns: 1fr;
    }

    .biri-map {
        height: 420px;
    }

    .biri-modal {
        padding: 12px;
    }

    .biri-modal-main {
        height: 270px;
    }

    .biri-modal-content {
        padding: 30px 24px;
    }

}

.biri-page-nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 12px;

    min-width: 150px;
    height: 48px;

    padding: 0 24px;

    border: 1px solid #dfe8e5;
    border-radius: 999px;

    background: #ffffff;

    color: #234e49;

    font-size: 14px;
    font-weight: 700;

    cursor: pointer;

    box-shadow:
        0 5px 15px rgba(20, 55, 50, 0.06);

    transition:
        background .25s ease,
        color .25s ease,
        border-color .25s ease,
        transform .25s ease,
        box-shadow .25s ease;
}
