/* =========================
    COMMON
========================= */

:root {
    --bs-primary: #FFFFFF;
    --bs-primary-rgb: 255, 255, 255;

    --swiper-pagination-bullet-inactive-opacity: 0.4;
    --swiper-theme-color: #FFFFFF;
}

body {
    min-height: 100vh;
    background: linear-gradient(
        to bottom,
        #444444 0%,
        #FFFFFF 40vh,
        #FFFFFF 100%
    );
}

.section-title {
    color: #505050;
    font-family: Montserrat, sans-serif;
    font-weight: 450;
    font-size: 1.75rem;
}

.chapter-title {
    color: #626262;
    font-family: Montserrat, sans-serif;
    font-weight: 400;
    font-size: 1.50rem;
}

.article-text {
    color: #4A4A4A;
    font-size: 1.25rem;
}

.list-icon {
    width: 32px;
    height: 32px;
}


/* =========================
    HEADER
========================= */

.top-bar {
    margin: 25px 10px 25px 10px;
}

.header-title {
    color: white;
    font-family: Montserrat, sans-serif;
    font-weight: 700;
    font-size: 30px;
    line-height: 28px;
}

.header-addresses {
    line-height: 20px;
}

.header-phone {
    font-size: 24px;
    line-height: 22px;
}

.text-header-muted {
    color: #303030;
}

.nav-item:not(:last-child) {
    border-right: 1px solid rgba(255,255,255,0.5);
}

.swiper {
  height: 300px;
}

.swiper-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* =========================
    PAGE CONTACTS
========================= */

.select-address {
    position: relative;

    display: flex;
    overflow: hidden;
    max-width: 400px;
    padding: 0.5rem;

    background: #FFFFFF;
    border-radius: 10px;
    box-shadow: inset 0 0 10px #222222;
}

.select-address input {
    display: none;
}

.select-address label {
    position: relative;
    z-index: 2;

    flex: 1;
    margin: 0;
    padding: 0.75rem 1rem;

    border-radius: 10px;
    color: #212529;

    text-align: center;
    font-weight: 500;

    transition: color 0.3s ease;

    cursor: pointer;
}

#tab1:checked ~ label[for="tab1"],
#tab2:checked ~ label[for="tab2"] {
    color: white;
}

.slider {
    position: absolute;
    top: 0.4rem;
    left: 0.4rem;

    width: calc(50% - 0.4rem);
    height: calc(100% - 0.8rem);

    background: #212529;
    border-radius: 10px;

    transition: transform 0.3s ease;
}

#tab2:checked ~ .slider {
    transform: translateX(100%);
}

.map-pane {
    border-radius: 10px;
}


/* =========================
    PAGE CERTIFICATE
========================= */

.scene {
    width: 400px;
    height: 300px;
    display: flex;
    justify-content: center;
    align-items: center;
    perspective: 1200px;
    cursor: pointer;
}

.book-toggle {
    display: none;
}

.book-hover {
    position: absolute;
    inset: 0px;
    z-index: 10;
    transition: inset 0.3s ease;
}

.book-hover:hover,
.book-toggle:checked ~ .book-hover {
    inset: -100px 0px -100px 0px;
}

.stand {
    transform-style: preserve-3d;
    transform: rotateX(-10deg) rotateY(-30deg) translateY(-100px);
    transition: transform 0.5s ease-in-out, box-shadow 0.3s ease-in-out;
    pointer-events: none;
}

.book-hover:hover ~ .stand,
.book-toggle:checked ~ .stand {
    transform: rotateY(0deg);
}

.book {
    position: relative;
    width: 280px;
    height: 400px;
    transform-style: preserve-3d;
    backface-visibility: visible;
}

.panel {
    position: absolute;
    width: 280px;
    height: 200px;
    transform-style: preserve-3d;
    transition: transform 0.5s ease-in-out, box-shadow 0.3s ease-in-out;
}

.sheet {
    position: absolute;
    inset: 0;
    transform-style: preserve-3d;
    transform-origin: center;
}

.top {
    top: 0;
    transform-origin: center bottom;
    transform: rotateX(-200deg);
    box-shadow: 0 1em 3em 0 rgba(0, 0, 0, .2);
}

.bottom {
    bottom: 0;
    transform-style: preserve-3d;
    transform-origin: center top;
    transform: rotateX(20deg);
    box-shadow: 0 1em 3em 0 rgba(0, 0, 0, .2);
}

.scene:hover .bottom,
.book-toggle:checked ~ .stand .bottom {
    transform: rotateX(170deg) scale(1.2);
}

.scene:hover .top,
.book-toggle:checked ~ .stand .top {
    transform: rotateX(-160deg) scale(1.2);
}

.face {
    position: absolute;
    transform-style: preserve-3d;
    inset: 0;
    background-size: 100% 200%;
    background-repeat: no-repeat;
    backface-visibility: hidden;
}

.outer {
    background-image:
        linear-gradient(
            120deg,
            rgba(255,255,255,0) 0%,
            rgba(255,255,255,0.25) 60%,
            rgba(255,255,255,0.05) 75%,
            rgba(0,0,0,0.08) 100%
        ), url("/img/cert-outer.png");
}

.inner {
    transform: rotateY(180deg) scale(-1);
    background-image:
        linear-gradient(
            0deg,
            rgba(0,0,0, 0.2) 0%,
            rgba(0,0,0, 0.0) 30%,
            rgba(0,0,0, 0.1) 49%,
            rgba(0,0,0, 0.2) 50%,
            rgba(0,0,0, 0.1) 65%,
            rgba(0,0,0, 0.0) 80%,
            rgba(0,0,0, 0.1) 100%
        ), url("/img/cert-inner.png");
}

.bottom .outer {
    background-position: center bottom;
}

.top .inner {
    background-position: center bottom;
}

.book-shadow {
    position: absolute;
    width: 400px;
    height: 100px;

    bottom: 5px;
    left: 50%;
    transform: translateX(-50%);

    pointer-events: none;

    background: radial-gradient(
        ellipse at center,
        rgba(0,0,0,0.9) 0%,
        rgba(0,0,0,0.7) 25%,
        rgba(0,0,0,0) 60%
    );

    filter: blur(10px);
    transform-origin: center;

    transition: transform 0.2s ease-in-out, opacity 0.5s ease-in-out;
}

.scene:hover .book-shadow,
.book-toggle:checked ~ .book-shadow {
    transform: translateX(-50%) scale(1.5);
    opacity: 0.2;
    transition: transform 0.5s ease-in-out, opacity 0.2s ease-in-out;
}