@charset "UTF-8";

/**************************************
            GENERAL STYLES
**************************************/

:root {
    --color-groom: #a8c6ba;
    --color-bride: #c3a5c3;
    --color-bride-groom: #b6b6be;
    --color-groom-dark: #007748;
    --color-bride-dark: #790079;
    --color-bride-groom-dark: #00007e;
}

html {
    scroll-behavior: smooth;
}

body,
html {
    width: 100%;
    height: 100%;
    font-family: "Roboto Slab", "Droid Sans", sans;
    overflow-x: hidden;
}

body {
    position: relative;
    overflow-x: hidden !important;
    background-color: #F4F7FD;
}

a {
    text-decoration: none !important;
}

p {
    font-size: 1rem;
}

ul,
ol {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

.blanket {
    background: rgba(0, 0, 0, 0.5);
}

#toTop {
    position: fixed;
    bottom: 10px;
    right: 10px;
    cursor: pointer;
    display: none;
    border-radius: 6px;
    z-index: 999;
}

.text-cursive {
    font-family: 'Parisienne', serif;
}

.text-cursive2 {
    font-family: 'Pacifico', serif;
}

.text-body {
    font-size: 1.25rem;
}

.link-theme {
    color: var(--color-bride-groom-dark);
}

.link-theme:hover,
.link-theme:active {
    text-decoration: underline !important;
}

.form-control-theme {
    border-color: var(--color-bride-groom-dark);
}


/**************************************
               BUTTONS
**************************************/

.btn.btn-theme {
    color: var(--color-bride-groom-dark);
    border-color: var(--color-bride-groom);
    background: var(--color-bride-groom);
    background: linear-gradient(45deg, var(--color-bride) 0%, var(--color-groom) 100%);
}

.btn.btn-theme:hover,
.btn.btn-theme:active {
    color: #FFF;
    border-color: var(--color-bride-groom-dark);
    background: var(--color-bride-groom-dark);
    background: linear-gradient(45deg, var(--color-bride-dark) 0%, var(--color-groom-dark) 100%);
}

.btn.btn-outline-theme {
    color: var(--color-bride-groom-dark);
    border-color: var(--color-bride-groom-dark);
}

.btn.btn-outline-theme:hover,
.btn.btn-outline-theme:active {
    color: #FFF;
    border-color: var(--color-bride-groom-dark);
    background: var(--color-bride-groom-dark);
    background: linear-gradient(45deg, var(--color-bride-dark) 0%, var(--color-groom-dark) 100%);
}

.input-group .btn.btn-outline-theme {
    border-color: var(--bs-border-color);
}

.input-group.input-group-theme .form-control,
.input-group.input-group-theme .input-group-text,
.input-group.input-group-theme button {
    border-color: var(--color-bride-groom-dark) !important;
}


/**************************************
              SECTIONS
**************************************/

section.section-padded {
    padding: 4rem 0;
}

section.section-inverse {
    /* background-color: #FFF; */
    color: #000;
    background: var(--color-bride-groom);
    background: linear-gradient(45deg, var(--color-bride) 0%, var(--color-groom) 100%);
}

section.section-inverse .section-title::before,
section.section-inverse .section-title::after {
    background-color: var(--color-groom-dark);
}

section.section-inverse .section-title h3::after {
    color: var(--color-bride-dark);
}

section .section-content {
    width: 70%;
    margin: auto;
}

section.section-light {
    background-color: #FFF;
}


/**************************************
             COLOR THEME
**************************************/

.text-groom {
    color: var(--color-groom);
}

.text-bride {
    color: var(--color-bride);
}

.text-bride-groom {
    background: -webkit-linear-gradient(45deg, var(--color-groom), var(--color-bride));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
}

.text-bride-groom-dark {
    background: -webkit-linear-gradient(45deg, var(--color-bride-dark), var(--color-groom-dark));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
}

.bg-groom {
    background-color: var(--color-groom);
}

.bg-bride {
    background-color: var(--color-bride);
}

.bg-bride-groom {
    background: rgb(168, 198, 186);
    background: linear-gradient(90deg, rgba(168, 198, 186, 1) 0%, rgba(195, 165, 195, 1) 100%);
}


/**************************************
             PAGE SUBTITLE
**************************************/

.section-title {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 1rem;
}

.section-title i {
    font-size: 1.75rem;
    /* color: var(--color-bride); */
    /* text-shadow: 1px 1px 1px var(--color-bride-dark); */
    background: -webkit-linear-gradient(0deg, var(--color-bride-dark), var(--color-groom-dark));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
    margin-bottom: .5rem;
}

.section-title h3 {
    font-size: 2.5rem;
    font-family: 'Pacifico';
    position: relative;
    padding-bottom: .5rem;
    text-align: center;
}

.section-title h3::after {
    width: 36px;
    content: '\F69E';
    font-family: 'bootstrap-icons';
    font-size: 2rem;
    position: absolute;
    left: calc(50% - 18px);
    bottom: -26px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-bride);
}

.section-title::before,
.section-title::after {
    content: '';
    width: 128px;
    height: 1px;
    background-color: var(--color-groom);
    position: absolute;
    bottom: 0;
}

.section-title::before {
    /* margin-right: 104px; */
    right: calc(50% + 24px);
}

.section-title::after {
    /* margin-left: 104px; */
    left: calc(50% + 24px);
}


/**************************************
                HEADER
**************************************/

header {
    width: 100%;
    height: auto;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999;
}

header .header-info {
    height: 56px;
    background-color: #FFF;
}

header .header-info h1 {
    font-weight: bold;
    text-align: center;
    margin: 0;
    padding: 4px 8px;
}

header .header-info p {
    margin-bottom: 0;
}

header .header-nav {
    height: 56px;
}

header .header-nav .nav-control {
    display: none;
    font-size: 1.25rem;
    cursor: pointer;
    padding: 4px 12px;
    transform: perspective(16px) rotateX(1deg);
    transform-style: preserve-3d;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: .5rem;
    display: none;
}

header .header-nav .nav-control:hover {
    font-weight: bold;
    background: var(--color-bride-groom);
    background: linear-gradient(45deg, var(--color-bride) 0%, var(--color-groom) 100%);
}

header .header-nav .nav-control:active {
    color: #FFF;
    font-weight: bold;
    background: var(--color-bride-groom);
    background: linear-gradient(45deg, var(--color-bride-dark) 0%, var(--color-groom-dark) 100%);
}

header .header-nav .nav-control i {
    font-size: 1.5rem;
    margin-right: .25rem;
}

header .header-nav .nav-control span {
    position: relative;
    top: -1px;
}

header .header-nav .header-nav-content {
    height: 56px;
    position: relative;
    background-color: #FFF;
    transform: perspective(16px) rotateX(-1deg);
    border-bottom-left-radius: 1rem;
    border-bottom-right-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

header .header-nav ul {
    transform: perspective(16px) rotateX(1deg);
}

header .header-nav ul .nav-item {
    border-radius: .5rem;
    transition: all .5s;
    background: #FFF;
}

header .header-nav ul .nav-item.active {
    font-weight: bold;
    background: var(--color-bride-groom);
    background: linear-gradient(45deg, var(--color-bride) 0%, var(--color-groom) 100%);
}

header .header-nav ul .nav-link {
    color: #000;
    /* transition: all .5s; */
}

header .header-nav ul .nav-item:hover,
header .header-nav ul .nav-item:active,
#nav-mobile ul .nav-item:hover,
#nav-mobile ul .nav-item:active {
    background: var(--color-bride-groom);
    background: linear-gradient(45deg, var(--color-bride) 0%, var(--color-groom) 100%);
}

header .header-nav ul .nav-item:hover .nav-link {
    /* color: #FFF; */
    /* text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.4); */
    font-weight: bold;
}


/**************************************
              MOBILE MENU
**************************************/

#nav-mobile {
    width: 100%;
    height: 0;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    background: var(--color-bride-groom);
    background: linear-gradient(45deg, rgba(168, 198, 186, 0.9) 0%, rgba(195, 165, 195, 0.9) 100%);
    /* position: relative; */
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .5s;
    overflow: hidden;
}

#nav-mobile.open {
    height: 100%;
}


/* #nav-mobile::before {
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, .5);
    position: absolute;
    top: 0;
    left: 0;
} */

#nav-mobile .btn-nav-close {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 0;
    left: 0;
    cursor: pointer;
}

#nav-mobile .btn-nav-close i {
    color: #FFF;
    font-size: 1.25rem;
    transition: all .5s;
}

#nav-mobile .btn-nav-close:hover i,
#nav-mobile .btn-nav-close:active i {
    color: red;
}

#nav-mobile .nav-mobile-container {
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, .4);
    /* padding: 4rem 0; */
    overflow-y: auto;
    display: flex;
    /* flex-direction: column;
    justify-content: center; */
}

#nav-mobile ul {
    padding: 4rem 0;
    margin: auto;
}

#nav-mobile ul .nav-item {
    width: 100%;
    display: block;
    text-align: center;
    /* border-radius: .5rem; */
}

#nav-mobile ul .nav-item .nav-link {
    color: #FFF;
    font-size: 1.5rem;
    transition: all .5s;
}

#nav-mobile ul .nav-item:hover .nav-link,
#nav-mobile ul .nav-item:active .nav-link {
    color: #000;
}


/**************************************
               HOME PAGE
**************************************/

section#about-bride-groom {
    position: relative;
    top: -70px;
    margin-bottom: calc(-70px + 3rem);
}

#introduction {
    width: 100%;
    height: 100vh;
    position: relative;
}

/* #introduction::before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    background: url('../images/bg-cta.webp');
    position: absolute;
    top: 0;
    left: 0;
} */

#introduction .shade {
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    background-image: url('../images/bg-cta.webp');
    background-position: center center;
    background-attachment: fixed;
    background-size: cover;
}

#introduction .shade::before {
    content: '';
    display: block;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    position: absolute;
    top: 0;
    left: 0;
}

#introduction .intro-content {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: 56px;
    /* z-index: 99999; */
    position: relative;
}

#introduction img {
    width: 100%;
    height: auto;
    max-width: 640px;
}

#introduction h2 {
    font-family: 'Parisienne', serif;
    font-size: 6rem;
    font-weight: bold;
    margin: 0;
    text-shadow: 4px 4px 4px rgb(0, 0, 0, 0.2);
}

#introduction .intro-image {
    position: relative;
}

#introduction .intro-image h2 {
    position: absolute;
}

#introduction .intro-image .cover {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

#introduction .intro-image .cover h2 {
    position: absolute;
    font-size: 16rem;
    color: #FFF;
}


/**************************************
           COUNTDOWN TIMER
**************************************/

.countdown-timer {
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 1rem;
    font-family: 'Pacifico';
}

.countdown-timer li {
    min-width: 96px;
    padding: 0 16px;
    text-align: center;
}

.countdown-timer li h4 {
    font-size: 6rem;
    margin: 0 0 8px 0;
    line-height: 4rem;
    position: relative;
    top: -0.5rem;
}

.countdown-timer li p {
    margin: 0;
}


/**************************************
               FOOTER
**************************************/

footer {
    position: relative;
    background: var(--color-bride-groom);
    background: linear-gradient(90deg, var(--color-bride) 0%, var(--color-groom) 100%);
}

footer .shade {
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
}

footer img {
    width: 100%;
    height: auto;
    max-width: 200px;
    margin-bottom: .5rem;
}

footer h5 {
    color: #FFF;
    margin-bottom: .25rem;
}

footer h5 i {
    margin: 0 .25rem;
    background: -webkit-linear-gradient(45deg, var(--color-groom), var(--color-bride));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
}

footer p {
    color: #FFF;
    margin: 0;
}


/**************************************
               PROFILE
**************************************/

.profile {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.profile .profile-picture {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    border: 4px solid #FFF;
    margin-bottom: .5rem;
    position: relative;
}

.profile .profile-picture::before {
    content: '';
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: #FFF;
    position: absolute;
    left: calc(50% - 16px);
    bottom: -16px;
}

.profile .profile-picture::after {
    content: '\F69E';
    font-family: 'bootstrap-icons';
    font-weight: bold;
    font-size: 1.25rem;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    position: absolute;
    left: calc(50% - 16px);
    bottom: -16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: -webkit-linear-gradient(45deg, var(--color-bride-dark), var(--color-groom-dark));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
}

.profile img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
}

.profile h5 {
    font-size: 1.5rem;
    margin-bottom: .25rem;
}

.profile h6 {
    margin-bottom: .5rem;
    color: #666;
}


/**************************************
              PAGE TITLE
**************************************/

#page-title {
    position: relative;
    background: var(--color-bride-groom);
    background: linear-gradient(90deg, var(--color-bride) 0%, var(--color-groom) 100%);
}

#page-title .page-title-inner {
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    padding: calc(52px * 2 + 2rem) 0 2rem 0;
}

#page-title .page-title-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

#page-title .page-title-content>i {
    font-size: 1.5rem;
    /* color: var(--color-bride); */
    /* text-shadow: 1px 1px 1px var(--color-bride-dark); */
    background: -webkit-linear-gradient(0deg, var(--color-groom), var(--color-bride));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
    margin-bottom: .5rem;
}

#page-title .page-title-heading {
    position: relative;
    margin-bottom: .5rem;
}

#page-title .page-title-heading h1 {
    color: #FFF;
    /* font-size: 2.5rem; */
    text-align: center;
    font-family: 'Pacifico';
    position: relative;
    padding-bottom: .5rem;
}

#page-title .page-title-heading h1::after {
    width: 36px;
    content: '\F69E';
    font-family: 'bootstrap-icons';
    font-size: 2rem;
    position: absolute;
    left: calc(50% - 18px);
    bottom: -26px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-bride);
}

#page-title .page-title-heading::before,
#page-title .page-title-heading::after {
    content: '';
    width: 128px;
    height: 1px;
    background-color: var(--color-groom);
    position: absolute;
    bottom: 0;
}

#page-title .page-title-heading::before {
    /* margin-right: 104px; */
    right: calc(50% + 24px);
}

#page-title .page-title-heading::after {
    /* margin-left: 104px; */
    left: calc(50% + 24px);
}

#page-title .container-breadcrumb {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-top: .5rem;
}

#page-title .container-breadcrumb .breadcrumb {
    margin: 0;
}

#page-title .container-breadcrumb .breadcrumb a {
    color: #FFF;
    /* transition: all .5s; */
}

#page-title .container-breadcrumb .breadcrumb a:hover,
#page-title .container-breadcrumb .breadcrumb a:active {
    /* text-decoration: underline !important; */
    font-weight: bold;
}

#page-title .container-breadcrumb .breadcrumb .breadcrumb-item+.breadcrumb-item::before {
    content: '›';
    color: #FFF;
}

#page-title .container-breadcrumb .breadcrumb .breadcrumb-item.active {
    color: rgba(255, 255, 255, 0.8);
}


/**************************************
             PHOTO GALLERY
**************************************/

.card.card-gallery-photo {
    padding: 0;
    border-radius: 1rem;
    border-color: var(--color-bride-groom-dark);
    background: var(--color-bride-groom-dark);
    background: linear-gradient(45deg, var(--color-bride-dark) 0%, var(--color-groom-dark) 100%);
    cursor: pointer;
}

.card.card-gallery-photo .preview {
    overflow: hidden;
    border-radius: 1rem;
    vertical-align: middle;
}

.card.card-gallery-photo .preview img {
    width: 100%;
    height: auto;
    transition: all .5s;
    position: relative;
}

.card.card-gallery-photo .preview::after {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

.card.card-gallery-photo:hover .preview img,
.card.card-gallery-photo:active .preview img {
    width: 110%;
    margin-top: -5%;
    margin-left: -5%;
}


/* .modal,
.modal-backdrop {
    z-index: 9999;
} */

.modal.lightbox .ratio {
    background-color: rgba(0, 0, 0, 0.8) !important;
    border-radius: 1rem;
}


/**************************************
                 LOGIN
**************************************/

#login,
#page-admin {
    position: relative;
    background: var(--color-bride-groom);
    background: linear-gradient(90deg, var(--color-bride) 0%, var(--color-groom) 100%);
}

#login img,
#page-admin img {
    max-width: 240px;
}


/**************************************
                 ADMIN
**************************************/

.nav-admin {
    border-radius: 360px;
}

.nav-admin li a {
    display: block;
    padding: 12px 24px;
    color: #222;
    border-radius: 360px;
}

.nav-admin li a:hover,
.nav-admin li a:active {
    color: var(--color-bride-groom-dark);
}


/**************************************
             CHECK BUTTON
**************************************/

.btn-group .btn.btn-outline-primary {
    color: var(--color-bride-groom-dark);
    border-color: var(--color-bride-groom-dark);
}

.btn-group .btn-check:checked+.btn {
    color: #FFF;
    background-color: var(--color-bride-groom-dark);
    border-color: var(--color-bride-groom-dark);
}


/**************************************
             RESPONSIVE UI
**************************************/

@media (max-width: 768px) {
    /* header .header-nav ul {
        display: none;
    } */
    /* header .header-nav .nav-control {
        display: flex;
    }
    header .header-nav .container-nav {
        width: 100vw;
        height: 100vh;
        position: fixed;
        top: 0;
        left: 0;
        display: block;
        transform: none;
        background: var(--color-bride-groom);
        background: linear-gradient(90deg, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .5) 100%);
    }
    header .header-nav .container-nav ul {
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        transform: none;
    } */
    header .header-info .header-info-left,
    header .header-info .header-info-right {
        display: none;
    }
    header .header-nav .nav-control {
        display: flex;
    }
    header .header-nav .container-nav {
        display: none;
    }
    #nav-mobile ul .nav-item.active {
        font-weight: bold;
    }
    #introduction .intro-image .cover h2 {
        font-size: 12rem;
    }
    section .section-content {
        width: 100%;
    }
    section#about-bride-groom {
        top: 0px;
        margin-bottom: 0;
        padding: 4rem 0;
    }
}

@media (max-width: 576px) {
    header .header-info  {
        display: none;
    }
    /* #countdown-timer-wedding-day,
    #countdown-timer-wedding-day-status {
        display: none;
    } */
    .countdown-timer {
        column-gap: .5rem;
    }
    .countdown-timer li h4 {
        font-size: 3rem;
        margin-bottom: 0;
    }
    #page-title .page-title-inner {
        padding: calc(52px + 2rem) 0 2rem 0;
    }
    #introduction h2 {
        font-size: 4rem;
    }
    #introduction .intro-image .cover h2 {
        font-size: 8rem;
    }
}

@media (min-width: 768px) {
    .section-title h3 {
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
    }
}